mirror of
https://github.com/nextcloud/server.git
synced 2026-03-28 13:23:49 -04:00
2 lines
No EOL
11 KiB
JavaScript
2 lines
No EOL
11 KiB
JavaScript
(()=>{var e,t={91028(e,t,o){"use strict";var i=o(10810),n=o(61338),r=o(35810),d=o(85471);const a=(0,o(35947).YK)().setApp("files").detectUser().build();var s=o(21777),l=o(63814),c=o(9487),u=o(44719),v=o(70970);const p=["d:getcontentlength","d:getcontenttype","d:getetag","d:getlastmodified","d:creationdate","d:displayname","d:quota-available-bytes","d:resourcetype","nc:has-preview","nc:is-encrypted","nc:mount-type","oc:comments-unread","oc:favorite","oc:fileid","oc:owner-display-name","oc:owner-id","oc:permissions","oc:size"],f={d:"DAV:",nc:"http://nextcloud.org/ns",oc:"http://owncloud.org/ns",ocs:"http://open-collaboration-services.org/ns"};function h(){return(0,c.f)()?`/files/${(0,c.G)()}`:`/files/${(0,s.HW)()?.uid}`}const b=h();function m(){const e=(0,l.dC)("dav");return(0,c.f)()?e.replace("remote.php","public.php"):e}const w=m();const g=new r.vd({id:0,source:m()+h(),root:h(),owner:(0,s.HW)()?.uid||null,permissions:r.aX.NONE}),y=(0,i.nY)("active",()=>{const e=(0,d.IJ)(),t=(0,d.KR)(),o=(0,d.IJ)(),i=(0,d.KR)(g);function s(e){t.value&&t.value.source===e.source&&(t.value=void 0)}function l(e=null){a.debug("Setting active view",{view:e}),o.value=e??void 0,t.value=void 0}return(0,d.wB)(t,()=>{"number"==typeof t.value?.fileid&&t.value.fileid!==i.value?.fileid&&(a.debug("Updating active fileid in URL query",{fileid:t.value.fileid}),window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:String(t.value.fileid)},{...window.OCP.Files.Router.query},!0))}),function(){const e=(0,r.bh)();l(e.active),(0,n.B1)("files:node:deleted",s),e.addEventListener("updateActive",e=>{l(e.detail)})}(),{activeAction:e,activeFolder:i,activeNode:t,activeView:o}}),P=function(e=w,t={}){const o=(0,u.UU)(e,{headers:t});function i(e){o.setHeaders({...t,"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})}return(0,s.zo)(i),i((0,s.do)()),(0,u.Gu)().patch("fetch",(e,t)=>{const o=t.headers;return o?.method&&(t.method=o.method,delete o.method),fetch(e,t)}),o}();async function N(e){const t=`<?xml version="1.0"?>\n\t\t<d:propfind ${v.s.davNamespaces??={...f},Object.keys(v.s.davNamespaces).map(e=>`xmlns:${e}="${v.s.davNamespaces?.[e]}"`).join(" ")}>\n\t\t\t<d:prop>\n\t\t\t\t${v.s.davProperties??=[...p],v.s.davProperties.map(e=>`<${e} />`).join(" ")}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;return function(e,t=b,o=w){let i=(0,s.HW)()?.uid;if((0,c.f)())i=i??"anonymous";else if(!i)throw new Error("No user id found");const n=e.props,r=function(e=""){let t=v.P.NONE;return e?(e.includes("G")&&(t|=v.P.READ),e.includes("W")&&(t|=v.P.WRITE),e.includes("CK")&&(t|=v.P.CREATE),e.includes("NV")&&(t|=v.P.UPDATE),e.includes("D")&&(t|=v.P.DELETE),e.includes("R")&&(t|=v.P.SHARE),t):t}(n?.permissions),d=String(n?.["owner-id"]||i),a=n.fileid||0,l=new Date(Date.parse(e.lastmod)),u=new Date(Date.parse(n.creationdate)),p={id:a,source:`${o}${e.filename}`,mtime:isNaN(l.getTime())||0===l.getTime()?void 0:l,crtime:isNaN(u.getTime())||0===u.getTime()?void 0:u,mime:e.mime||"application/octet-stream",displayname:void 0!==n.displayname?String(n.displayname):void 0,size:n?.size||Number.parseInt(n.getcontentlength||"0"),status:a<0?v.c.FAILED:void 0,permissions:r,owner:d,root:t,attributes:{...e,...n,hasPreview:n?.["has-preview"]}};return delete p.attributes?.props,"file"===e.type?new v.a(p):new v.b(p)}((await P.stat(`${h()}${e}`,{details:!0,data:t})).data)}var O=o(71225);const R=(0,i.nY)("files",()=>{const e=(0,d.KR)({}),t=(0,d.KR)({});function o(t){return e.value[t]}function s(t){return t.map(t=>e.value[t]).filter(Boolean)}function l(t){return Object.values(e.value).filter(e=>e.id===t)}function c(e){return t.value[e]}function u(e,t){const s=function(...e){const t=R(...e),o=(0,i.nY)("paths",{state:()=>({paths:{}}),getters:{getPath:e=>(t,o)=>{if(e.paths[t])return e.paths[t][o]}},actions:{addPath(e){this.paths[e.service]||d.Ay.set(this.paths,e.service,{}),d.Ay.set(this.paths[e.service],e.path,e.source)},deletePath(e,t){this.paths[e]&&d.Ay.delete(this.paths[e],t)},onCreatedNode(e){const t=(0,r.bh)()?.active?.id||"files";e.fileid?(e.type===r.pt.Folder&&this.addPath({service:t,path:e.path,source:e.source}),this.addNodeToParentChildren(e)):a.error("Node has no fileid",{node:e})},onDeletedNode(e){const t=(0,r.bh)()?.active?.id||"files";e.type===r.pt.Folder&&this.deletePath(t,e.path),this.deleteNodeFromParentChildren(e)},onMovedNode({node:e,oldSource:t}){const o=(0,r.bh)()?.active?.id||"files";if(e.type===r.pt.Folder){const i=Object.entries(this.paths[o]).find(([,e])=>e===t);i?.[0]&&this.deletePath(o,i[0]),this.addPath({service:o,path:e.path,source:e.source})}const i=new r.ZH({source:t,owner:e.owner,mime:e.mime,root:e.root});this.deleteNodeFromParentChildren(i),this.addNodeToParentChildren(e)},deleteNodeFromParentChildren(e){const o=(0,r.bh)()?.active?.id||"files",i=(0,O.pD)(e.source),n="/"===e.dirname?t.getRoot(o):t.getNode(i);if(n){const t=new Set(n._children??[]);return t.delete(e.source),d.Ay.set(n,"_children",[...t.values()]),void a.debug("Children updated",{parent:n,node:e,children:n._children})}a.debug("Parent path does not exists, skipping children update",{node:e})},addNodeToParentChildren(e){const o=(0,r.bh)()?.active?.id||"files",i=(0,O.pD)(e.source),n="/"===e.dirname?t.getRoot(o):t.getNode(i);if(n){const t=new Set(n._children??[]);return t.add(e.source),d.Ay.set(n,"_children",[...t.values()]),void a.debug("Children updated",{parent:n,node:e,children:n._children})}a.debug("Parent path does not exists, skipping children update",{node:e})}}})(...e);return o._initialized||((0,n.B1)("files:node:created",o.onCreatedNode),(0,n.B1)("files:node:deleted",o.onDeletedNode),(0,n.B1)("files:node:moved",o.onMovedNode),o._initialized=!0),o}();let l;if(t&&"/"!==t){const i=s.getPath(e,t);i&&(l=o(i))}else l=c(e);return l}function v(t){const o=t.reduce((t,o)=>e.value[o.source]?.id&&!o.id?(a.error("Trying to update/set a node without id",{node:o}),t):(t[o.source]=o,t),{});e.value={...e.value,...o}}function p(t){const o=Object.entries(e.value).filter(([,e])=>!t.some(t=>t.source===e.source));e.value=Object.fromEntries(o)}return(0,n.B1)("files:node:created",function(e){v([e])}),(0,n.B1)("files:node:deleted",function(e){p([e])}),(0,n.B1)("files:node:updated",async function(e){const t=e.id?l(e.id):s([e.source]);if(t.length>1)return await Promise.all(t.map(e=>N(e.path))).then(v),void a.debug(t.length+" nodes updated in store",{fileid:e.id,source:e.source});1!==t.length||e.source!==t[0].source?N(e.path).then(e=>v([e])):v([e])}),(0,n.B1)("files:node:moved",function({node:t,oldSource:o}){delete e.value[o],v([t])}),(0,n.B1)("files:favorites:added",function(e){const t=o(e.source);t&&d.Ay.set(t.attributes,"favorite",1)}),(0,n.B1)("files:favorites:removed",function(e){const t=o(e.source);t&&d.Ay.set(t.attributes,"favorite",0)}),{files:e,roots:t,deleteNodes:p,getDirectoryByPath:u,getNode:o,getNodes:s,getNodesById:l,getNodesByPath:function(e,t){const i=u(e,t);return(i?._children??[]).map(e=>o(e)).filter(Boolean)},getRoot:c,setRoot:function({service:e,root:o}){t.value={...t.value,[e]:o}},updateNodes:v}}),C=(0,i.nY)("sidebar",()=>{const e=(0,d.KR)(),t=(0,d.KR)(!1),o=y(),i=(0,d.EW)(()=>t.value?o.activeNode:void 0),s=(0,d.EW)(()=>!!(i.value&&o.activeFolder&&o.activeView)),l=(0,d.EW)(()=>{if(s.value)return{node:i.value,folder:o.activeFolder,view:o.activeView}}),c=(0,d.EW)(()=>l.value?h(l.value):[]),u=(0,d.EW)(()=>l.value?f(l.value):[]);function v(n,r){if(!(n&&o.activeFolder&&o.activeView))throw a.debug("sidebar: cannot open sidebar because the active folder or view is not set.",{node:n,activeFolder:o.activeFolder,activeView:o.activeView}),new Error("Cannot open sidebar because the active folder or view is not set.");if(t.value&&i.value?.source===n.source)return a.debug("sidebar: already open for current node"),void(r&&(a.debug("sidebar: already open for current node - switching tab",{tabId:r}),b(r)));const d=f({node:n,folder:o.activeFolder,view:o.activeView});r&&!d.find(({id:e})=>e===r)?(a.warn(`sidebar: cannot open tab '${r}' because it is not available for the current context.`),e.value=d[0]?.id):e.value=r??d[0]?.id,a.debug(`sidebar: opening for ${n.displayname}`,{node:n}),o.activeNode=n,t.value=!0}function p(){t.value=!1}function f(e){let t=(0,r.Dn)();return e&&(t=t.filter(t=>void 0===t.enabled||t.enabled(e))),t.sort((e,t)=>e.order-t.order)}function h(e){let t=(0,r._2)();return e&&(t=t.filter(t=>void 0===t.enabled||t.enabled(e))),t.sort((e,t)=>e.order-t.order)}function b(t){if(!u.value.find(({id:e})=>e===t))throw new Error(`Cannot set sidebar tab '${t}' because it is not available for the current context.`);e.value=t}(0,n.B1)("files:node:updated",e=>{e.source===i.value?.source&&(o.activeNode=e)}),(0,n.B1)("files:node:deleted",e=>{e.fileid===i.value?.fileid&&p()}),(0,n.B1)("viewer:sidebar:open",({source:e})=>{const t=R().getNode(e);t?(a.debug("sidebar: opening for node from Viewer.",{node:t}),v(t)):a.error(`sidebar: cannot open for node '${e}' because it was not found in the current view.`)});let m=!1;return(0,n.B1)("files:list:updated",()=>{m||(m=!0,window.OCP.Files.Router._router.afterEach((e,t)=>{t.query&&"opendetails"in t.query&&e.query&&!("opendetails"in e.query)&&(a.debug('sidebar: closing because "opendetails" query parameter was removed from URL.'),p())}))}),(0,d.wB)(t,e=>{const t={...window.OCP?.Files?.Router?.params??{}},i={...window.OCP?.Files?.Router?.query??{}};a.debug("sidebar: current node changed: "+(e?"open":"closed"),{query:i,params:t,node:o.activeNode}),!e&&"opendetails"in i&&(delete i.opendetails,window.OCP.Files.Router.goToRoute(null,t,i,!0)),e&&!("opendetails"in i)&&window.OCP.Files.Router.goToRoute(null,t,{...i,opendetails:"true"},!0)}),{activeTab:e,currentActions:c,currentContext:l,currentNode:i,currentTabs:u,hasContext:s,isOpen:(0,d.tB)(t),open:v,close:p,getActions:h,getTabs:f,setActiveTab:b}});window.OCA.Files??={},window.OCA.Files._sidebar=()=>C((window._nc_files_pinia||(window._nc_files_pinia=(0,i.Ey)()),window._nc_files_pinia))},63779(){},77199(){}},o={};function i(e){var n=o[e];if(void 0!==n)return n.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return t[e].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=t,e=[],i.O=(t,o,n,r)=>{if(!o){var d=1/0;for(c=0;c<e.length;c++){for(var[o,n,r]=e[c],a=!0,s=0;s<o.length;s++)(!1&r||d>=r)&&Object.keys(i.O).every(e=>i.O[e](o[s]))?o.splice(s--,1):(a=!1,r<d&&(d=r));if(a){e.splice(c--,1);var l=n();void 0!==l&&(t=l)}}return t}r=r||0;for(var c=e.length;c>0&&e[c-1][2]>r;c--)e[c]=e[c-1];e[c]=[o,n,r]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.e=()=>Promise.resolve(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=4763,(()=>{i.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={4763:0};i.O.j=t=>0===e[t];var t=(t,o)=>{var n,r,[d,a,s]=o,l=0;if(d.some(t=>0!==e[t])){for(n in a)i.o(a,n)&&(i.m[n]=a[n]);if(s)var c=s(i)}for(t&&t(o);l<d.length;l++)r=d[l],i.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return i.O(c)},o=globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),i.nc=void 0;var n=i.O(void 0,[4208],()=>i(91028));n=i.O(n)})();
|
|
//# sourceMappingURL=files-sidebar.js.map?v=e977f6a84fc8a62ffea4
|