Files
InvoiceShelf/public/build/assets/BackupSetting-mmKrsMfR.js
Darko Gjorgjijoski 7b3dd0288e Update build
2024-01-28 17:17:48 +01:00

2 lines
7.5 KiB
JavaScript

import{a2 as W,v as G,$ as x,u as P,g as y,F as E,D as O,e as R,l as w,h as j,i as F,k as Y,r as i,o as L,n as U,w as l,b as D,q as $,t as S,m as s,a as o,H as A,I as Z,s as ee,a5 as te,c as ae,L as se}from"./main-vzIkKseS.js";import{u as H}from"./disk-GjCD9u7d.js";const X=(I=!1)=>{const m=I?window.pinia.defineStore:W,{global:_}=window.i18n;return m({id:"backup",state:()=>({backups:[],currentBackupData:{option:"full",selected_disk:null}}),actions:{fetchBackups(f){return new Promise((n,a)=>{G.get("/api/v1/backups",{params:f}).then(e=>{this.backups=e.data.data,n(e)}).catch(e=>{x(e),a(e)})})},createBackup(f){return new Promise((n,a)=>{G.post("/api/v1/backups",f).then(e=>{P().showNotification({type:"success",message:_.t("settings.backup.created_message")}),n(e)}).catch(e=>{x(e),a(e)})})},removeBackup(f){return new Promise((n,a)=>{G.delete(`/api/v1/backups/${f.disk}`,{params:f}).then(e=>{P().showNotification({type:"success",message:_.t("settings.backup.deleted_message")}),n(e)}).catch(e=>{x(e),a(e)})})}}})()},oe={class:"flex justify-between w-full"},ne=["onSubmit"],le={class:"p-6"},ce={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},ie={setup(I){y(null),y(!1);let m=y(!1),_=y(!1);const f=E(["full","only-db","only-files"]),n=X(),a=O(),e=H(),{t:p}=R(),k=w(()=>a.active&&a.componentName==="BackupModal"),M=w(()=>e.disks.map(c=>({...c,name:c.name+" — ["+c.driver+"]"}))),V=w(()=>({currentBackupData:{option:{required:j.withMessage(p("validation.required"),F)},selected_disk:{required:j.withMessage(p("validation.required"),F)}}})),b=Y(V,w(()=>n));async function N(){if(b.value.currentBackupData.$touch(),b.value.currentBackupData.$invalid)return!0;let c={option:n.currentBackupData.option,file_disk_id:n.currentBackupData.selected_disk.id};try{m.value=!0,(await n.createBackup(c)).data&&(m.value=!1,a.refreshData&&a.refreshData(),a.closeModal())}catch{m.value=!1}}async function z(){_.value=!0;let c=await e.fetchDisks({limit:"all"});n.currentBackupData.selected_disk=c.data.data[0],_.value=!1}function C(){a.closeModal(),setTimeout(()=>{b.value.$reset(),n.$reset()})}return(c,B)=>{const t=i("BaseIcon"),r=i("BaseMultiselect"),d=i("BaseInputGroup"),u=i("BaseInputGrid"),v=i("BaseButton"),T=i("BaseModal");return L(),U(T,{show:s(k),onClose:C,onOpen:z},{header:l(()=>[D("div",oe,[$(S(s(a).title)+" ",1),o(t,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:C})])]),default:l(()=>[D("form",{onSubmit:ee(N,["prevent"])},[D("div",le,[o(u,{layout:"one-column"},{default:l(()=>[o(d,{label:c.$t("settings.backup.select_backup_type"),error:s(b).currentBackupData.option.$error&&s(b).currentBackupData.option.$errors[0].$message,horizontal:"",required:"",class:"py-2"},{default:l(()=>[o(r,{modelValue:s(n).currentBackupData.option,"onUpdate:modelValue":B[0]||(B[0]=h=>s(n).currentBackupData.option=h),options:s(f),"can-deselect":!1,placeholder:c.$t("settings.backup.select_backup_type"),searchable:""},null,8,["modelValue","options","placeholder"])]),_:1},8,["label","error"]),o(d,{label:c.$t("settings.disk.select_disk"),error:s(b).currentBackupData.selected_disk.$error&&s(b).currentBackupData.selected_disk.$errors[0].$message,horizontal:"",required:"",class:"py-2"},{default:l(()=>[o(r,{modelValue:s(n).currentBackupData.selected_disk,"onUpdate:modelValue":B[1]||(B[1]=h=>s(n).currentBackupData.selected_disk=h),"content-loading":s(_),options:s(M),searchable:!0,"allow-empty":!1,label:"name","value-prop":"id",placeholder:c.$t("settings.disk.select_disk"),"track-by":"name",object:""},null,8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["label","error"])]),_:1})]),D("div",ce,[o(v,{class:"mr-3",variant:"primary-outline",type:"button",onClick:C},{default:l(()=>[$(S(c.$t("general.cancel")),1)]),_:1}),o(v,{loading:s(m),disabled:s(m),variant:"primary",type:"submit"},{left:l(h=>[s(m)?Z("",!0):(L(),U(t,{key:0,name:"SaveIcon",class:A(h.class)},null,8,["class"]))]),default:l(()=>[$(" "+S(c.$t("general.create")),1)]),_:1},8,["loading","disabled"])])],40,ne)]),_:1},8,["show"])}}},re={class:"grid my-14 md:grid-cols-3"},ue={class:"inline-block"},ke={setup(I){const m=te(),_=X(),f=O(),n=H(),{t:a}=R(),e=E({selected_disk:{driver:"local"}}),p=y("");let k=y(!0);const M=w(()=>[{key:"path",label:a("settings.backup.path"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"created_at",label:a("settings.backup.created_at"),tdClass:"font-medium text-gray-900"},{key:"size",label:a("settings.backup.size"),tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]),V=w(()=>n.disks.map(t=>({...t,name:t.name+" — ["+t.driver+"]"})));z();function b(t){m.openDialog({title:a("general.are_you_sure"),message:a("settings.backup.backup_confirm_delete"),yesLabel:a("general.ok"),noLabel:a("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async r=>{if(r){let d={disk:e.selected_disk.driver,file_disk_id:e.selected_disk.id,path:t.path},u=await _.removeBackup(d);if(u.data.success||u.data.backup)return p.value&&p.value.refresh(),!0}})}function N(){setTimeout(()=>{p.value.refresh()},100)}async function z(){k.value=!0;let t=await n.fetchDisks({limit:"all"});t.data.error,e.selected_disk=t.data.data.find(r=>r.set_as_default==0),k.value=!1}async function C({page:t,filter:r,sort:d}){let u={disk:e.selected_disk.driver,filed_disk_id:e.selected_disk.id};k.value=!0;let v=await _.fetchBackups(u);return k.value=!1,{data:v.data.backups,pagination:{totalPages:1,currentPage:1}}}async function c(){f.openModal({title:a("settings.backup.create_backup"),componentName:"BackupModal",refreshData:p.value&&p.value.refresh,size:"sm"})}async function B(t){k.value=!0,window.axios({method:"GET",url:"/api/v1/download-backup",responseType:"blob",params:{disk:e.selected_disk.driver,file_disk_id:e.selected_disk.id,path:t.path}}).then(r=>{const d=window.URL.createObjectURL(new Blob([r.data])),u=document.createElement("a");u.href=d,u.setAttribute("download",t.path.split("/")[1]),document.body.appendChild(u),u.click(),k.value=!1}).catch(r=>{k.value=!1})}return(t,r)=>{const d=i("BaseIcon"),u=i("BaseButton"),v=i("BaseMultiselect"),T=i("BaseInputGroup"),h=i("BaseDropdownItem"),J=i("BaseDropdown"),K=i("BaseTable"),Q=i("BaseSettingCard");return L(),ae(se,null,[o(ie),o(Q,{title:t.$tc("settings.backup.title",1),description:t.$t("settings.backup.description")},{action:l(()=>[o(u,{variant:"primary-outline",onClick:c},{left:l(g=>[o(d,{class:A(g.class),name:"PlusIcon"},null,8,["class"])]),default:l(()=>[$(" "+S(t.$t("settings.backup.new_backup")),1)]),_:1})]),default:l(()=>[D("div",re,[o(T,{label:t.$t("settings.disk.select_disk"),"content-loading":s(k)},{default:l(()=>[o(v,{modelValue:s(e).selected_disk,"onUpdate:modelValue":r[0]||(r[0]=g=>s(e).selected_disk=g),"content-loading":s(k),options:s(V),"track-by":"name",placeholder:t.$t("settings.disk.select_disk"),label:"name",searchable:!0,object:"",class:"w-full","value-prop":"id",onSelect:N},null,8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["label","content-loading"])]),o(K,{ref:(g,q)=>{q.table=g,p.value=g},class:"mt-10","show-filter":!1,data:C,columns:s(M)},{"cell-actions":l(({row:g})=>[o(J,null,{activator:l(()=>[D("div",ue,[o(d,{name:"DotsHorizontalIcon",class:"text-gray-500"})])]),default:l(()=>[o(h,{onClick:q=>B(g.data)},{default:l(()=>[o(d,{name:"CloudDownloadIcon",class:"mr-3 text-gray-600"}),$(" "+S(t.$t("general.download")),1)]),_:2},1032,["onClick"]),o(h,{onClick:q=>b(g.data)},{default:l(()=>[o(d,{name:"TrashIcon",class:"mr-3 text-gray-600"}),$(" "+S(t.$t("general.delete")),1)]),_:2},1032,["onClick"])]),_:2},1024)]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{ke as default};