1import{j as a,A as m,c as E,ag as x,ah as S,S as P,a3 as g,a as C,s as R,B as j,M as D,Q as k,n as h,q as f,o as M,T as w}from"./index.D89Ptodw.js";import{E as F}from"./EmptyState.BIxgnAoj.js";import{P as o}from"./charts.Xucaesy1.js";import{C as $}from"./Card.BWdMMhT5.js";import{u as p}from"./i18n.B5PADymj.js";import{r as B}from"./router.CrG4uXDR.js";import{T as I}from"./Table.BD9xeMR9.js";import"./http.DWSTd2rM.js";import"./forms.DxV8EmvE.js";import"./Pagination.DK1pH-iI.js";import"./Checkbox.ByB3bz6y.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"99974e3139a959f25517126c07ed286661dfae1f"};var s=new e.Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="14cfd313-2b33-4f6a-872f-39365152e8b7",e._sentryDebugIdIdentifier="sentry-dbid-14cfd313-2b33-4f6a-872f-39365152e8b7")}catch{}})();const y=["B","KB","MB","GB","TB"];function A(e,s="pt-BR"){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";let t=e,n=0;for(;t>=1024&&n<y.length-1;)t/=1024,n+=1;return`${new Intl.NumberFormat(s,{maximumFractionDigits:n===0?0:1}).format(t)} ${y[n]}`}function q(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"";const s=Math.round(e),t=Math.floor(s/3600),n=Math.floor(s%3600/60),r=s%60,l=[];return t>0&&l.push(`${t} h`),n>0&&l.push(`${n} min`),(r>0||l.length===0)&&l.push(`${r} s`),l.join(" ")}function H(e){return e?.last_success_at?e.is_healthy?"healthy":"stale":"never"}const V="AdminBackups-module__page___fO9Pa",Q="AdminBackups-module__header___DS7kS",z="AdminBackups-module__title___mQF3-",K="AdminBackups-module__subtitle___7-18U",L="AdminBackups-module__statsRow___tslMz",O="AdminBackups-module__statCard___K3O8e",U="AdminBackups-module__cardHeader___LxyPJ",W="AdminBackups-module__cardIcon___rhgol",G="AdminBackups-module__neutral___QGMwo",Y="AdminBackups-module__healthy___toeMj",J="AdminBackups-module__stale___5dNg3",X="AdminBackups-module__never___xuqgo",Z="AdminBackups-module__cardContent___gAyyj",ee="AdminBackups-module__cardTitle___4Tj-H",ae="AdminBackups-module__cardValue___hK9U-",te="AdminBackups-module__alerts___DmwFq",se="AdminBackups-module__alert___PzACc",re="AdminBackups-module__alertDanger___w4-wX",ne="AdminBackups-module__alertWarning___PhHki",oe="AdminBackups-module__errorMeta___EmjfQ",ie="AdminBackups-module__errorMessage___vxoTD",i={page:V,header:Q,title:z,subtitle:K,statsRow:L,statCard:O,cardHeader:U,cardIcon:W,neutral:G,healthy:Y,stale:J,never:X,cardContent:Z,cardTitle:ee,cardValue:ae,alerts:te,alert:se,alertDanger:re,alertWarning:ne,errorMeta:oe,errorMessage:ie},le={healthy:a.jsx(C,{}),stale:a.jsx(g,{}),never:a.jsx(g,{})};function d({icon:e,iconVariant:s,label:t,value:n,isLoading:r}){return a.jsx($,{noPadding:!0,className:i.statCard,children:a.jsxs("div",{className:i.cardHeader,children:[a.jsx("div",{className:`${i.cardIcon} ${i[s]}`,children:e}),a.jsxs("div",{className:i.cardContent,children:[a.jsx("h3",{className:i.cardTitle,children:t}),r?a.jsx(P,{variant:"text",width:"55%",height:20}):a.jsx("p",{className:i.cardValue,children:n})]})]})})}d.propTypes={icon:o.node.isRequired,iconVariant:o.string.isRequired,label:o.string.isRequired,value:o.oneOfType([o.string,o.number]),isLoading:o.bool};function T({summary:e,isLoading:s=!1}){const{t,i18n:n}=p("adminBackups"),r=H(e),l=e?.storage;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:i.statsRow,children:[a.jsx(d,{icon:le[r],iconVariant:s?"neutral":r,label:t("stats.status"),value:t(`health.${r}`),isLoading:s}),a.jsx(d,{icon:a.jsx(E,{}),iconVariant:"neutral",label:t("stats.lastSuccess"),value:e?.last_success_at?m.formatDate(e.last_success_at,{includeTime:!0}):t("stats.never"),isLoading:s}),a.jsx(d,{icon:a.jsx(x,{}),iconVariant:"neutral",label:t("stats.stored"),value:l?.reachable?l.count:"â",isLoading:s}),a.jsx(d,{icon:a.jsx(S,{}),iconVariant:"neutral",label:t("stats.usedSpace"),value:l?.reachable?A(l.bytes,n.language):"â",isLoading:s})]}),e&&a.jsxs("div",{className:i.alerts,children:[r==="stale"&&a.jsx("p",{className:`${i.alert} ${i.alertDanger}`,children:t("alerts.stale",{hours:e.stale_after_hours})}),!e.is_encrypted&&a.jsx("p",{className:`${i.alert} ${i.alertWarning}`,children:t("alerts.notEncrypted")}
1),!l.reachable&&a.jsx("p",{className:`${i.alert} ${i.alertWarning}`,children:t("alerts.storageUnreachable")})]})]})}T.propTypes={summary:o.shape({is_healthy:o.bool,is_encrypted:o.bool,stale_after_hours:o.number,last_success_at:o.string,storage:o.shape({reachable:o.bool,count:o.number,bytes:o.number})}),isLoading:o.bool};const ce={succeeded:"success",failed:"danger",running:"info"};function v({runs:e,pagination:s,isLoading:t,onPageChange:n}){const{t:r,i18n:l}=p("adminBackups"),[u,_]=B.useState(null),N=[{key:"started_at",title:r("columns.date"),render:c=>m.formatDate(c.started_at,{includeTime:!0})},{key:"status",title:r("columns.status"),render:c=>a.jsx(R,{variant:ce[c.status]||"neutral",children:r(`status.${c.status}`)})},{key:"size_bytes",title:r("columns.size"),render:c=>A(c.size_bytes,l.language)||"â"},{key:"duration_seconds",title:r("columns.duration"),render:c=>q(c.duration_seconds)||"â"},{key:"error_message",title:r("columns.details"),render:c=>c.error_message?a.jsx(j,{variant:"secondary",onClick:()=>_(c),children:r("actions.viewError")}):"â"}];return a.jsxs(a.Fragment,{children:[a.jsx(I,{columns:N,data:e,isLoading:t,emptyMessage:r("empty.title"),pagination:s,onPageChange:n}),a.jsx(D,{isOpen:u!==null,onClose:()=>_(null),title:r("errorModal.title"),children:u&&a.jsxs(a.Fragment,{children:[a.jsx("p",{className:i.errorMeta,children:m.formatDate(u.started_at,{includeTime:!0})}),a.jsx("pre",{className:i.errorMessage,children:u.error_message})]})})]})}v.propTypes={runs:o.array.isRequired,pagination:o.object,isLoading:o.bool,onPageChange:o.func.isRequired};async function ue(){return(await k.get("/admin/backups/summary")).data.data}async function de(e={}){return(await k.get("/admin/backups",{params:e})).data}const b={getSummary:ue,getRuns:de};function _e(e){const s=e?.meta??e,t=s?.last_page;return t?{currentPage:s.current_page,totalPages:t,totalItems:s.total,itemsPerPage:s.per_page}:null}const me=15;function pe(){const[e,s]=B.useState(1),t=h({queryKey:f.admin.backupsSummary(),queryFn:()=>b.getSummary()}),n=h({queryKey:f.admin.backupRuns(e),queryFn:()=>b.getRuns({page:e,per_page:me}),placeholderData:M});return{summary:t.data??null,runs:n.data?.data??[],pagination:_e(n.data),isLoading:t.isLoading||n.isLoading,isError:t.isError||n.isError,goToPage:s,refetch:()=>Promise.all([t.refetch(),n.refetch()])}}function ve(){const{t:e}=p("adminBackups"),{summary:s,runs:t,pagination:n,isLoading:r,isError:l,goToPage:u,refetch:_}=pe();return a.jsxs("div",{className:i.page,children:[a.jsx(w,{}),a.jsxs("header",{className:i.header,children:[a.jsx("h1",{className:i.title,children:e("title")}),a.jsx("p",{className:i.subtitle,children:e("subtitle")})]}),l||!r&&!s?a.jsx(F,{icon:x,title:e("loadError.title"),description:e("loadError.description"),action:a.jsx(j,{onClick:_,children:e("actions.retry")})}):a.jsxs(a.Fragment,{children:[a.jsx(T,{summary:s,isLoading:r}),a.jsx(v,{runs:t,pagination:n,isLoading:r,onPageChange:u})]})]})}export{ve as default}; 2//# sourceMappingURL=index.gvGljnM6.js.map
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.