</d:propertyupdate>`})}async function bi(e){await U.deleteFile(e.filename)}const wi={key:0,class:"versions-tab__container"},yi=["aria-label"],Wi=O({__name:"FilesVersionsSidebarTab",props:{active:{type:Boolean},node:{},folder:{},view:{}},setup(e){const t=e,i=ae(),n=x([]),v=x(!1),r=x(!1),l=x(null);we(Ce(()=>t.node),async()=>{if(t.node)try{v.value=!0,n.value=await pi(t.node)}finally{v.value=!1}},{immediate:!0});const H=h(()=>t.node?.mtime?.getTime()??0),p=h(()=>[...n.value].sort((o,u)=>t.node?o.mtime===t.node.mtime?.getTime()?-1:u.mtime===t.node.mtime?.getTime()?1:u.mtime-o.mtime:0)),w=h(()=>[{key:"versions",rows:p.value.map(o=>({key:o.mtime.toString(),height:68,sectionKey:"versions",items:[{id:o.mtime.toString(),version:o}]})),height:68*p.value.length}]),s=h(()=>n.value.map(o=>o.mtime).reduce((o,u)=>Math.min(o,u))),k=h(()=>t.node?window.OCA.Viewer?.mimetypes?.includes(t.node?.mime):!1),A=h(()=>!i.value&&window.OCA.Viewer?.mimetypesCompare?.includes(t.node?.mime));async function z(o){if(!t.node)return;const u=t.node.clone();u.attributes.etag=o.etag,u.size=o.size,u.mtime=new Date(o.mtime);const g={preventDefault:!1,node:u,version:o};if(T("files_versions:restore:requested",g),!g.preventDefault)try{await fi(o),o.label?j(c("files_versions",`${o.label} restored`)):o.mtime===s.value?j(c("files_versions","Initial version restored")):j(c("files_versions","Version restored")),T("files:node:updated",u),T("files_versions:restore:restored",{node:u,version:o})}catch{Y(c("files_versions","Could not restore version")),T("files_versions:restore:failed",o)}}function F(o){r.value=!0,l.value=o}async function N(o){if(l.value===null)throw new Error("editedVersion should be set at that point");const u=l.value.label;l.value.label=o,r.value=!1;try{await gi(l.value,o),l.value=null}catch(g){l.value.label=u,Y(c("files_versions","Could not set version label")),D.error("Could not set version label",{exception:g})}}async function q(o){const u=n.value.indexOf(o);n.value.splice(u,1);try{await bi(o)}catch{n.value.push(o),Y(c("files_versions","Could not delete version"))}}function K(o){if(t.node!==null){if(o.mtime===t.node?.mtime?.getTime()){window.OCA.Viewer.open({path:t.node.path});return}window.OCA.Viewer.open({fileInfo:{...o,filename:o.filename,previewUrl:void 0},enableSidebar:!1})}}function W(o){const u=n.value.map(g=>({...g,previewUrl:void 0}));window.OCA.Viewer.compare({path:t.node.path},u.find(g=>g.source===o.source))}return(o,u)=>e.node?(a(),m("div",wi,[S(vi,{sections:w.value,headerHeight:0},{default:f(({visibleSections:g})=>[C("ul",{"aria-label":d(c)("files_versions","File versions"),"data-files-versions-versions-list":""},[g.length===1?(a(!0),m(ye,{key:0},_e(g[0].rows,L=>(a(),V(ni,{key:L.items[0].version.mtime,canView:k.value,canCompare:A.value,loadPreview:e.active,version:L.items[0].version,node:e.node,isCurrent:L.items[0].version.mtime===H.value,isFirstVersion:L.items[0].version.mtime===s.value,onClick:K,onCompare:W,onRestore:z,onLabelUpdateRequest:y=>F(L.items[0].version),onDelete:q},null,8,["canView","canCompare","loadPreview","version","node","isCurrent","isFirstVersion","onLabelUpdateRequest"]))),128)):b("",!0)],8,yi)]),loader:f(()=>[v.value?(a(),V(d(le),{key:0,class:"files-list-viewer__loader"})):b("",!0)]),_:1},8,["sections"]),l.value?(a(),V(li,{key:0,open:r.value,"onUpdate:open":u[0]||(u[0]=g=>r.value=g),label:l.value.label,"onUpdate:label":N},null,8,["open","label"])):b("",!0)])):b("",!0)}});export{Wi as default};
0 commit comments