3 lines
12 KiB
JavaScript
3 lines
12 KiB
JavaScript
import{N as Y,c as T,d as b,e as s,m as z,j as w,a as F,o as J,K as X,h as $,i as k,q as o,O as n,P as Z,p as v,u as ee,y as p,v as h}from"./vendor-core.B6UiYhU_.js";import{h as L,u as te,b as ae,c as se}from"./sharedStores.Bb_IRn4Y.js";import{_ as le,u as re,a as ie,b as A,d as x,e as ne}from"./index.B8XI8FQW.js";import{B as oe,g as ue,s as I,d as de,G as ce,H as O,M as P}from"./vendor-primevue.BN-meDW0.js";import{M as pe}from"./MobileTopBar.BnL78WPy.js";import{M as ve}from"./MobileBottomNav.Cp8OR33w.js";import"./vendor-utils.CO3CyGpV.js";import"./vendor-export.BWjBvx7Z.js";const he=Y("cache",{state:()=>({stats:null,loading:!1,error:null}),getters:{isLoading:t=>t.loading,hasError:t=>t.error!==null,cacheEnabled:t=>{var a;return((a=t.stats)==null?void 0:a.enabled)??!1},hitRate:t=>{var a;return((a=t.stats)==null?void 0:a.hit_rate)??0},queriesSaved:t=>{var a;return((a=t.stats)==null?void 0:a.queries_saved)??{today:0,week:0,total:0}},responseTimes:t=>{var a;return((a=t.stats)==null?void 0:a.response_times)??{}},cacheSize:t=>{var a;return((a=t.stats)==null?void 0:a.cache_size)??{memory:0,sqlite:0}}},actions:{async getStats(){var t,a;this.loading=!0,this.error=null;try{const l=await L.get("/cache/stats");return this.stats=l.data,l.data}catch(l){throw this.error=((a=(t=l.response)==null?void 0:t.data)==null?void 0:a.detail)||l.message,l}finally{this.loading=!1}},async invalidateCache(t=null,a=null){var l,i;this.loading=!0,this.error=null;try{return(await L.post("/cache/invalidate",{company_id:t,cache_type:a})).data}catch(m){throw this.error=((i=(l=m.response)==null?void 0:l.data)==null?void 0:i.detail)||m.message,m}finally{this.loading=!1}},async toggleUserCache(t){var a,l;this.loading=!0,this.error=null;try{const i=await L.post("/cache/toggle-user",{enabled:t});return this.stats&&(this.stats.user_enabled=t),i.data}catch(i){throw this.error=((l=(a=i.response)==null?void 0:a.data)==null?void 0:l.detail)||i.message,i}finally{this.loading=!1}},async toggleGlobalCache(t){var a,l;this.loading=!0,this.error=null;try{const i=await L.post("/cache/toggle-global",{enabled:t});return this.stats&&(this.stats.global_enabled=t,this.stats.enabled=t),i.data}catch(i){throw this.error=((l=(a=i.response)==null?void 0:a.data)==null?void 0:l.detail)||i.message,i}finally{this.loading=!1}},async toggleAutoInvalidate(t){var a,l;this.loading=!0,this.error=null;try{const i=await L.post("/cache/toggle-auto-invalidate",{enabled:t});return this.stats&&(this.stats.auto_invalidate=t),i.data}catch(i){throw this.error=((l=(a=i.response)==null?void 0:a.data)==null?void 0:l.detail)||i.message,i}finally{this.loading=!1}},clearError(){this.error=null}}});var me={root:{position:"relative"}},ge={root:function(a){var l=a.instance,i=a.props;return["p-inputswitch p-component",{"p-highlight":l.checked,"p-disabled":i.disabled,"p-invalid":i.invalid}]},input:"p-inputswitch-input",slider:"p-inputswitch-slider"},ye=oe.extend({name:"inputswitch",classes:ge,inlineStyles:me}),fe={name:"BaseInputSwitch",extends:ue,props:{modelValue:{type:null,default:!1},trueValue:{type:null,default:!0},falseValue:{type:null,default:!1},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},tabindex:{type:Number,default:null},inputId:{type:String,default:null},inputClass:{type:[String,Object],default:null},inputStyle:{type:Object,default:null},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:ye,provide:function(){return{$parentInstance:this}}},U={name:"InputSwitch",extends:fe,inheritAttrs:!1,emits:["update:modelValue","change","focus","blur"],methods:{getPTOptions:function(a){var l=a==="root"?this.ptmi:this.ptm;return l(a,{context:{checked:this.checked,disabled:this.disabled}})},onChange:function(a){if(!this.disabled&&!this.readonly){var l=this.checked?this.falseValue:this.trueValue;this.$emit("update:modelValue",l),this.$emit("change",a)}},onFocus:function(a){this.$emit("focus",a)},onBlur:function(a){this.$emit("blur",a)}},computed:{checked:function(){return this.modelValue===this.trueValue}}},be=["data-p-highlight","data-p-disabled"],Ce=["id","checked","tabindex","disabled","readonly","aria-checked","aria-labelledby","aria-label","aria-invalid"];function Se(t,a,l,i,m,d){return b(),T("div",z({class:t.cx("root"),style:t.sx("root")},d.getPTOptions("root"),{"data-p-highlight":d.checked,"data-p-disabled":t.disabled}),[s("input",z({id:t.inputId,type:"checkbox",role:"switch",class:[t.cx("input"),t.inputClass],style:t.inputStyle,checked:d.checked,tabindex:t.tabindex,disabled:t.disabled,readonly:t.readonly,"aria-checked":d.checked,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-invalid":t.invalid||void 0,onFocus:a[0]||(a[0]=function(){return d.onFocus&&d.onFocus.apply(d,arguments)}),onBlur:a[1]||(a[1]=function(){return d.onBlur&&d.onBlur.apply(d,arguments)}),onChange:a[2]||(a[2]=function(){return d.onChange&&d.onChange.apply(d,arguments)})},d.getPTOptions("input")),null,16,Ce),s("span",z({class:t.cx("slider")},d.getPTOptions("slider")),null,16)],16,be)}U.render=Se;const we={key:1,class:"stats-header"},ke={class:"actions"},Be={key:3,class:"stats-grid"},Ve={class:"status-content"},Ee={class:"status-item"},Le={class:"status-item"},Ae={class:"status-item"},Te={class:"hit-rate"},_e={class:"queries-list"},qe={key:0,class:"average-row"},Fe={class:"details-list"},Ie={class:"clear-options"},Oe={class:"p-field-radiobutton"},ze={class:"p-field-radiobutton"},$e={__name:"CacheStatsView",setup(t){const a=Z(),l=he(),i=te();ae();const m=re();se();const d=w(()=>l.isLoading),D=w(()=>l.error),c=w(()=>l.stats),y=F(!0),B=F(!1),V=F("current"),E=F(window.innerWidth<768),R=w(()=>[{icon:"pi pi-refresh",label:"Actualizează",tooltip:"Actualizează statistici"}]),j=u=>{u.icon==="pi pi-refresh"&&q()},N=()=>{E.value=window.innerWidth<768},W=w(()=>{var u;return(u=c.value)!=null&&u.response_times?Object.entries(c.value.response_times).map(([e,r])=>({endpoint:Q(e),cached:r.cached,oracle:r.oracle,improvement:r.improvement})):[]}),_=w(()=>{var f;const u=Object.values(((f=c.value)==null?void 0:f.response_times)||{});if(u.length===0)return null;const e=u.reduce((g,S)=>g+S.cached,0)/u.length,r=u.reduce((g,S)=>g+S.oracle,0)/u.length,C=((r-e)/r*100).toFixed(0);return{cached:e.toFixed(0),oracle:r.toFixed(0),improvement:C}});async function q(){var u;try{await l.getStats(),y.value=((u=c.value)==null?void 0:u.user_enabled)??!0}catch{m.add({severity:"error",summary:"Error",detail:"Failed to load cache statistics",life:3e3})}}async function G(){try{await l.toggleUserCache(y.value),m.add({severity:"success",summary:"Success",detail:`Cache ${y.value?"enabled":"disabled"} for you`,life:3e3})}catch{m.add({severity:"error",summary:"Error",detail:"Failed to toggle cache",life:3e3}),y.value=!y.value}}async function H(){var u;try{const e=V.value==="current"?(u=i.currentCompany)==null?void 0:u.id_firma:null;await l.invalidateCache(e,null),m.add({severity:"success",summary:"Success",detail:"Cache cleared successfully",life:3e3}),B.value=!1,await q()}catch{m.add({severity:"error",summary:"Error",detail:"Failed to clear cache",life:3e3})}}function Q(u){return{schema:"Schema Lookup",dashboard_summary:"Dashboard",dashboard_trends:"Dashboard Trends",companies:"Companies List",invoices:"Invoices",treasury:"Treasury"}[u]||u}function K(){l.clearError()}return J(()=>{window.addEventListener("resize",N),q()}),X(()=>{window.removeEventListener("resize",N)}),(u,e)=>(b(),T("div",{class:ee(["cache-stats-view",{"mobile-layout":E.value}])},[E.value?(b(),$(pe,{key:0,title:"Statistici Cache","show-back":!0,actions:R.value,onBackClick:e[0]||(e[0]=r=>n(a).push("/settings")),onActionClick:j},null,8,["actions"])):k("",!0),E.value?k("",!0):(b(),T("div",we,[e[7]||(e[7]=s("h1",null,"Cache Statistics",-1)),s("div",ke,[o(n(I),{label:"Clear Cache",icon:"pi pi-trash",severity:"danger",onClick:e[1]||(e[1]=r=>B.value=!0),loading:d.value},null,8,["loading"]),o(n(I),{label:"Refresh",icon:"pi pi-refresh",onClick:q,loading:d.value},null,8,["loading"])])])),D.value?(b(),$(n(ie),{key:2,severity:"error",closable:!0,onClose:K},{default:v(()=>[p(h(D.value),1)]),_:1})):k("",!0),!d.value&&c.value?(b(),T("div",Be,[o(n(A),{class:"status-card"},{title:v(()=>[...e[8]||(e[8]=[p("Cache Status",-1)])]),content:v(()=>[s("div",Ve,[s("div",Ee,[e[9]||(e[9]=s("label",null,"Global Status:",-1)),o(n(x),{value:c.value.global_enabled?"ENABLED":"DISABLED",severity:c.value.global_enabled?"success":"danger"},null,8,["value","severity"])]),s("div",Le,[e[10]||(e[10]=s("label",null,"Your Setting:",-1)),o(n(U),{modelValue:y.value,"onUpdate:modelValue":e[2]||(e[2]=r=>y.value=r),onChange:G},null,8,["modelValue"]),s("span",null,h(y.value?"ON":"OFF"),1)]),s("div",Ae,[e[11]||(e[11]=s("label",null,"Auto-Invalidation:",-1)),o(n(x),{value:c.value.auto_invalidate?"ENABLED":"DISABLED",severity:c.value.auto_invalidate?"success":"warning"},null,8,["value","severity"])])])]),_:1}),o(n(A),{class:"metrics-card"},{title:v(()=>[...e[12]||(e[12]=[p("Performance Metrics",-1)])]),content:v(()=>{var r;return[s("div",Te,[s("h3",null,"Hit Rate: "+h((r=c.value.hit_rate)==null?void 0:r.toFixed(1))+"%",1),s("p",null,h(c.value.total_hits)+" hits / "+h(c.value.total_hits+c.value.total_misses)+" total requests ",1),o(n(ne),{value:c.value.hit_rate},null,8,["value"])])]}),_:1}),o(n(A),{class:"queries-card"},{title:v(()=>[...e[13]||(e[13]=[p("Queries Saved",-1)])]),content:v(()=>{var r,C,f,g,S,M;return[s("ul",_e,[s("li",null,[e[14]||(e[14]=p(" Today: ",-1)),s("strong",null,h((C=(r=c.value.queries_saved)==null?void 0:r.today)==null?void 0:C.toLocaleString()),1),e[15]||(e[15]=p(" queries avoided ",-1))]),s("li",null,[e[16]||(e[16]=p(" This week: ",-1)),s("strong",null,h((g=(f=c.value.queries_saved)==null?void 0:f.week)==null?void 0:g.toLocaleString()),1),e[17]||(e[17]=p(" queries avoided ",-1))]),s("li",null,[e[18]||(e[18]=p(" All time: ",-1)),s("strong",null,h((M=(S=c.value.queries_saved)==null?void 0:S.total)==null?void 0:M.toLocaleString()),1),e[19]||(e[19]=p(" queries avoided ",-1))])])]}),_:1}),o(n(A),{class:"response-times-card"},{title:v(()=>[...e[20]||(e[20]=[p("Response Time Comparison",-1)])]),content:v(()=>[o(n(ce),{value:W.value,class:"p-datatable-sm"},{default:v(()=>[o(n(O),{field:"endpoint",header:"Endpoint"}),o(n(O),{field:"cached",header:"With Cache"},{body:v(({data:r})=>[p(h(r.cached)+" ms",1)]),_:1}),o(n(O),{field:"oracle",header:"Without Cache"},{body:v(({data:r})=>[p(h(r.oracle)+" ms",1)]),_:1}),o(n(O),{field:"improvement",header:"Improvement"},{body:v(({data:r})=>[o(n(x),{value:`${r.improvement}% ↓`,severity:"success"},null,8,["value"])]),_:1})]),_:1},8,["value"]),_.value?(b(),T("div",qe,[e[21]||(e[21]=s("strong",null,"Overall Average:",-1)),p(" "+h(_.value.cached)+" ms vs "+h(_.value.oracle)+" ms ("+h(_.value.improvement)+"% faster) ",1)])):k("",!0)]),_:1}),o(n(A),{class:"details-card"},{title:v(()=>[...e[22]||(e[22]=[p("Cache Details",-1)])]),content:v(()=>{var r,C,f,g;return[s("ul",Fe,[s("li",null,[e[23]||(e[23]=p(" Memory entries: ",-1)),s("strong",null,h((C=(r=c.value.cache_size)==null?void 0:r.memory)==null?void 0:C.toLocaleString()),1)]),s("li",null,[e[24]||(e[24]=p(" SQLite entries: ",-1)),s("strong",null,h((g=(f=c.value.cache_size)==null?void 0:f.sqlite)==null?void 0:g.toLocaleString()),1)]),s("li",null,[e[25]||(e[25]=p(" Cache type: ",-1)),s("strong",null,h(c.value.cache_type),1)])])]}),_:1})])):k("",!0),o(n(de),{visible:B.value,"onUpdate:visible":e[6]||(e[6]=r=>B.value=r),header:"Clear Cache",modal:!0,style:{width:"450px"}},{footer:v(()=>[o(n(I),{label:"Cancel",text:"",onClick:e[5]||(e[5]=r=>B.value=!1)}),o(n(I),{label:"Clear",severity:"danger",onClick:H,loading:d.value},null,8,["loading"])]),default:v(()=>[e[28]||(e[28]=s("p",null,"Are you sure you want to clear the cache?",-1)),s("div",Ie,[s("div",Oe,[o(n(P),{id:"clear_all",modelValue:V.value,"onUpdate:modelValue":e[3]||(e[3]=r=>V.value=r),value:"all"},null,8,["modelValue"]),e[26]||(e[26]=s("label",{for:"clear_all"},"All companies",-1))]),s("div",ze,[o(n(P),{id:"clear_current",modelValue:V.value,"onUpdate:modelValue":e[4]||(e[4]=r=>V.value=r),value:"current"},null,8,["modelValue"]),e[27]||(e[27]=s("label",{for:"clear_current"},"Current company only",-1))])])]),_:1},8,["visible"]),E.value?(b(),$(ve,{key:4})):k("",!0)],2))}},We=le($e,[["__scopeId","data-v-30640deb"]]);export{We as default};
|
|
//# sourceMappingURL=CacheStatsView.BsCa3PTo.js.map
|