PageSourceSearch

https://fels-wagram.at/assets/dashboard.7d61c7e3.js

js fels-wagram.at collected 2026-10-02 20:08:16 UTC 7,301 bytes, 1 lines download raw bytes

1import{c as i,o as n,a as s,b as _,d as P,t as r,bb as E,e as m,_ as R,m as U,F as D,r as L,w as M,g as T,B as A,n as I,i as K}from"./client.7d61c7e.js";const Q={class:"cms-admincenter-quota-dashboard"},H={key:0,class:"cms-modern-card-content-grid full-width"},J={class:"cms-modern-card-main-column"},O={class:"cms-modern-card"},W={class:"cms-modern-card-content"},X={class:"cms-modern-card-inner"},Y={class:"quota-stats"},Z={class:"quota-stat-row"},$={class:"value"},ss={class:"quota-stat-row"},ts={class:"value"},es={key:0,class:"quota-stat-row"},as={class:"value"},os={class:"cms-modern-card"},ns={class:"cms-modern-card-content"},rs={class:"cms-modern-card-inner"},is={class:"quota-stats"},cs={class:"quota-stat-row"},ls={class:"value"},ds={class:"quota-stat-row"},ms={class:"value"},us={class:"quota-stat-row"},ps={class:"value"},_s={class:"quota-stat-row"},hs={class:"value"},vs={key:0,class:"cms-modern-card"},gs={class:"cms-modern-card-header"},fs={class:"cms-modern-card-header-actions"},ys={class:"cms-modern-card-content"},Bs={class:"cms-modern-card-inner"},ks={class:"user-stats-table"},bs={class:"col-name"},ws={class:"col-role"},Ss={class:"col-files"},zs={class:"col-size"},qs={class:"col-percent"},js={key:0},Fs={key:1},xs={key:1,class:"cms-modern-card-content-grid full-width"};function Cs(e,t,l,d,a,c){var h,v,g,f,y,B,k,b,w,S,z,q,j,F,x;const u=E,V=R,G=A("router-link");return n(),i("div",Q,[t[13]||(t[13]=s("div",{class:"cms-modern-card-page-header"},[s("div",{class:"cms-modern-card-page-header-icon"},[s("i",{class:"material-icons"},"storage")]),s("div",{class:"cms-modern-card-page-header-content"},[s("h1",null,"Speicherplatz"),s("p",null,"Übersicht über die Speichernutzung")])],-1)),a.loading?(n(),i("div",xs,[...t[12]||(t[12]=[U('<div class="cms-modern-card-main-column" data-v-56aa56c2><div class="cms-modern-card" data-v-56aa56c2><div class="cms-modern-card-content" data-v-56aa56c2><div class="cms-modern-card-inner" data-v-56aa56c2><div class="loading-state" data-v-56aa56c2><i class="material-icons spinning" data-v-56aa56c2>sync</i><span data-v-56aa56c2>Lade Daten...</span></div></div></div></div></div>',1)])])):(n(),i("div",H,[s("div",J,[s("div",O,[t[3]||(t[3]=s("div",{class:"cms-modern-card-header"},[s("div",{class:"cms-modern-card-icon primary"},[s("i",{class:"material-icons"},"folder")]),s("div",{class:"cms-modern-card-title-wrapper"},[s("h2",null,"Projekt Speicher"),s("p",null,"Gesamter belegter Speicherplatz")])],-1)),s("div",W,[s("div",X,[s("div",Y,[s("div",Z,[t[0]||(t[0]=s("span",{class:"label"},"Belegt:",-1)),s("span",$,r(c.formatBytes(((h=a.stats.project)==null?void 0:h.used)||0)),1)]),s("div",ss,[t[1]||(t[1]=s("span",{class:"label"},"Limit:",-1)),s("span",ts,r((v=a.stats.project)!=null&&v.limit?c.formatBytes(a.stats.project.limit):"Unbegrenzt"),1)]),(g=a.stats.project)!=null&&g.limit?(n(),i("div",es,[t[2]||(t[2]=s("span",{class:"label"},"Nutzung:",-1)),s("span",as,r(((y=(f=a.stats.project)==null?void 0:f.percentage)==null?void 0:y.toFixed(1))||0)+"%",1)])):_("",!0)]),(B=a.stats.project)!=null&&B.limit?(n(),P(u,{key:0,current:((k=a.stats.project)==null?void 0:k.used)||0,total:((b=a.stats.project)==null?void 0:b.limit)||1,formatBytes:!0,showLabel:!1},null,8,["current","total"])):_("",!0)])])]),s("div",os,[t[8]||(t[8]=s("div",{class:"cms-modern-card-header"},[s("div",{class:"cms-modern-card-icon secondary"},[s("i",{class:"material-icons"},"dns")]),s("div",{class:"cms-modern-card-title-wrapper"},[s("h2",null,"Festplatte"),s("p",null,"Server Speicherplatz")])],-1)),s("div",ns,[s("div",rs,[s("div",is,[s("div",cs,[t[4]||(t[4]=s("span",{class:"label"},"Belegt:",-1)),s("span",ls,r(c.formatBytes(((w=a.stats.disk)==null?void 0:w.used)||0)),1)]),s("div",ds,[t[5]||(t[5]=s("span",{class:"label"},"Gesamt:",-1)),s("span",ms,r(c.formatBytes(((S=a.stats.disk)==null?void 0:S.total)||0)),1)]),s("div",us,[t[6]||(t[6]=s("span",{class:"label"},"Frei:",-1)),s("span",ps,r(c.formatBytes(((z=a.stats.disk)==null?void 0:z.free)||0)),1)]),s("div",_s,[t[7]||(t[7]=s("span",{class:"label"},"Nutzung:",-1)),s("span",hs,r(((j=(q=a.stats.disk)==null?void 0:q.percentage)==null?void 0:j.toFixed(1))||0)+"%",1)])]),m(u,{current:((F=a.stats.disk)==null?void 0:F.used)||0,total:((x=a.stats.disk)==null?void 0:x.total)||1,formatBytes:!0,showLabel:!1},null,8,["current","total"])])])]),a.userStats.length?(n(),i("div",vs,[s("div",gs,[t[9]||(t[9]=s("div",{class:"cms-modern-card-icon 
1info"},[s("i",{class:"material-icons"},"people")],-1)),t[10]||(t[10]=s("div",{class:"cms-modern-card-title-wrapper"},[s("h2",null,"Benutzer Speicher"),s("p",null,"Top Nutzer nach Speicherverbrauch")],-1)),s("div",fs,[m(V,{icon:"refresh",variant:"icon",onClick:c.loadStats,loading:a.loading},null,8,["onClick","loading"])])]),s("div",ys,[s("div",Bs,[s("div",ks,[t[11]||(t[11]=U('<div class="user-stats-header" data-v-56aa56c2><span class="col-name" data-v-56aa56c2>Benutzer</span><span class="col-role" data-v-56aa56c2>Rolle</span><span class="col-files" data-v-56aa56c2>Dateien</span><span class="col-size" data-v-56aa56c2>Größe</span><span class="col-percent" data-v-56aa56c2>%</span></div>',1)),(n(!0),i(D,null,L(a.userStats,o=>{var C,N;return n(),i("div",{class:"user-stats-row",key:o._id},[s("span",bs,[m(G,{to:`/users/edit/${o._id}`},{default:M(()=>[T(r(c.getUserDisplay(o._id)),1)]),_:2},1032,["to"])]),s("span",ws,[(n(!0),i(D,null,L(c.getUserRolesArray(o._id),p=>(n(),i("span",{class:I(["role-badge",p]),key:p},r(p),3))),128))]),s("span",Ss,r(o.fileCount),1),s("span",zs,r(c.formatBytes(o.used)),1),s("span",qs,[m(u,{current:o.used||0,total:o.limit>0?o.limit:((C=a.stats.project)==null?void 0:C.limit)||((N=a.stats.disk)==null?void 0:N.total)||o.used*2,formatBytes:!0,showLabel:!0,variant:"inline",size:"md"},{label:M(()=>[o.limit>0?(n(),i("span",js,r(c.getUserPercentage(o))+"%",1)):(n(),i("span",Fs,"∞"))]),_:2},1032,["current","total"])])])}),128))])])])])):_("",!0)])]))])}const Ns={name:"QuotaDashboard",async asyncData({store:e}){await e.dispatch("quota/getStats")},data(){return{loading:!0,stats:{project:{used:0,limit:0,percentage:0},disk:{used:0,total:0,free:0,percentage:0}},userStats:[]}},computed:{storeStats(){var e;return(e=this.$store.state.quota)==null?void 0:e.stats}},watch:{storeStats:{immediate:!0,handler(e){e&&(this.stats=e,this.userStats=e.users||[],this.loading=!1)}}},methods:{async loadStats(){var e;this.loading=!0;try{const t=await this.$store.dispatch("quota/getStats");t&&(this.stats=t,this.userStats=t.users||[])}catch(t){console.error("Failed to load quota stats:",t),(e=this.$notify)==null||e.call(this,{content:"Fehler beim Laden der Statistiken",type:"error"})}this.loading=!1},formatBytes(e){if(e===0)return"0 B";if(e===1/0)return"Unbegrenzt";const t=1e3,l=["B","KB","MB","GB","TB"],d=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,d)).toFixed(2))+" "+l[d]},getUserDisplay(e){const t=this.$store.getters["auth/getById"](e);return t&&(t.email||t.username||t.handle)||e},getUserRolesArray(e){var l;const t=this.$store.getters["auth/getById"](e);return(l=t==null?void 0:t.roles)!=null&&l.length?t.roles.filter(d=>d!=="internal"):[]},getUserPercentage(e){return!e.limit||e.limit===0?0:Math.min(100,(e.used/e.limit*100).toFixed(1))}}},Ds=K(Ns,[["render",Cs],["__scopeId","data-v-56aa56c2"]]);export{Ds as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.