-import{l as R}from"./activity-sidebar.mjs";import{b as A,h as G,j as I,g as j,m as x}from"./_plugin-vue_export-helper-BF__gIrg.chunk.mjs";import{d as _,C as V,F as H,D as T,e as i,f as o,b as E,a3 as p,P as h,A as n,j as S,l as u,t as M,H as g,n as O,g as r,m as v,I as y,O as k,z as q}from"./translation-DoG5ZELJ-TzxQQOUi.chunk.mjs";import{N as B,_ as F,A as W}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-C6NUHBos.chunk.mjs";import{l as f}from"./logger-Cenfe6qV.chunk.mjs";import{g as U,a as z,b as Z}from"./api-DeQrAcz-.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";import"./index-NjYp13Ld.chunk.mjs";var w;(function(t){t[t.User=0]="User",t[t.Group=1]="Group",t[t.Link=3]="Link",t[t.Email=4]="Email",t[t.Remote=6]="Remote",t[t.Team=7]="Team",t[t.Guest=8]="Guest",t[t.RemoteGroup=9]="RemoteGroup",t[t.Room=10]="Room",t[t.Deck=12]="Deck",t[t.FederatedGroup=14]="FederatedGroup",t[t.ScienceMesh=15]="ScienceMesh"})(w||(w={}));const $=_({__name:"ActivitySidebarPlugin",props:{plugin:{},node:{}},emits:["reload-activities"],setup(t,{emit:e}){const a=t,s=e,l=E();return V(()=>a.plugin.mount(l.value,{node:a.node,context:H()?.proxy??void 0,reload:()=>s("reload-activities")})),T(()=>a.plugin.unmount()),(b,c)=>(i(),o("div",{ref_key:"attachTarget",ref:l},null,512))}}),J='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-download-circle" viewBox="0 0 24 24"><path d="M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M8 17H16V15H8V17M16 10H13.5V6H10.5V10H8L12 14L16 10Z" /></svg>',K=_({name:"DownloadSummary",components:{NcIconSvgWrapper:A},props:{fileId:{type:Number,required:!0}},data(){return{totalCount:0,monthlyCount:0,downloadSVG:J}},computed:{summaryText(){return this.monthlyCount>0&&this.monthlyCount<this.totalCount?p("activity","Downloaded %n time (%s in the last 30 days)","Downloaded %n times (%s in the last 30 days)",this.totalCount,[String(this.monthlyCount)]):p("activity","Downloaded %n time","Downloaded %n times",this.totalCount)}},watch:{fileId:{immediate:!0,handler(){this.fetchCounts()}}},methods:{async fetchCounts(){if(this.fileId){this.totalCount=0,this.monthlyCount=0;try{const t=await G.get(I("apps/activity/api/v2/activity/downloads/count"),{params:{format:"json",object_type:"files",object_id:this.fileId}});this.totalCount=t.data.ocs.data.total,this.monthlyCount=t.data.ocs.data.last30d}catch(t){f.error("Failed to fetch download counts",{error:t})}}},t:h,n:p}}),Q={key:0,class:"download-summary"},X={class:"download-summary__icon"},Y={class:"download-summary__text"};function tt(t,e,a,s,l,b){const c=n("NcIconSvgWrapper");return t.totalCount>0?(i(),o("div",Q,[S("span",X,[u(c,{svg:t.downloadSVG,size:20},null,8,["svg"])]),S("span",Y,M(t.summaryText),1)])):g("",!0)}const it=j(K,[["render",tt],["__scopeId","data-v-039613d8"]]),et=_({name:"ActivityTab",components:{ActivityComponent:F,DownloadSummary:it,NcEmptyContent:B,NcIconSvgWrapper:A,NcLoadingIcon:x,ActivitySidebarPlugin:$},props:{node:{type:Object,required:!0},folder:{type:Object,required:!1,default:void 0},view:{type:Object,required:!1,default:void 0}},expose:["update"],data(){return{error:"",loading:!0,activities:[],lightningBoltSVG:R,sidebarPlugins:[]}},computed:{hasPublicLink(){return Object.values(this.node?.attributes?.["share-types"]??{}).flat().includes(w.Link)}},watch:{node:{immediate:!0,async handler(){await this.update()}}},async mounted(){this.node&&await this.update()},methods:{async update(){this.sidebarPlugins=[];const t=Z();t.length>0&&O(()=>{this.sidebarPlugins=t}),this.resetState(),await this.getActivities()},async getActivities(){try{this.loading=!0;const t=await this.processActivities(await this.loadRealActivities()),e=await z({node:this.node});this.activities=[...t,...e].sort((a,s)=>s.timestamp-a.timestamp)}catch(t){this.error=h("activity","Unable to load the activity list"),f.error("Error loading the activity list",{error:t})}finally{this.loading=!1}},resetState(){this.loading=!0,this.error="",this.activities=[]},async loadRealActivities(){try{const{data:t}=await G.get(I("apps/activity/api/v2/activity/filter"),{params:{format:"json",object_type:"files",object_id:this.node.fileid}});return t.ocs.data}catch(t){if(t.response!==void 0&&t.response.status===304)return[];throw t}},processActivities(t){t=t.map(a=>new W(a)),f.debug(`Processed ${t.length} activity(ies)`,{activities:t,node:this.node});const e=U();return t.filter(a=>!e||e.every(s=>s(a)))},t:h}}),at={key:0,class:"activity__actions"},ot={key:4,class:"activity__list","aria-live":"polite","aria-relevant":"additions"};function st(t,e,a,s,l,b){const c=n("NcIconSvgWrapper"),m=n("NcEmptyContent"),P=n("ActivitySidebarPlugin"),N=n("DownloadSummary"),D=n("NcLoadingIcon"),L=n("ActivityComponent");return i(),o("div",{class:q([{"icon-loading":t.loading},"activity"])},[t.error||!t.node?(i(),r(m,{key:0,name:t.error},{icon:v(()=>[u(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o(y,{key:1},[t.sidebarPlugins.length>0?(i(),o("div",at,[(i(!0),o(y,null,k(t.sidebarPlugins,(d,C)=>(i(),r(P,{key:C,plugin:d,node:t.node,onReloadActivities:e[0]||(e[0]=nt=>t.getActivities())},null,8,["plugin","node"]))),128))])):g("",!0),t.hasPublicLink&&t.node.fileid?(i(),r(N,{key:1,"file-id":t.node.fileid},null,8,["file-id"])):g("",!0),t.loading?(i(),r(m,{key:2,class:"activity__empty-content",name:t.t("activity","Loading activities")},{icon:v(()=>[u(D)]),_:1},8,["name"])):t.activities.length===0?(i(),r(m,{key:3,class:"activity__empty-content",name:t.t("activity","No activity yet")},{icon:v(()=>[u(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o("ul",ot,[(i(!0),o(y,null,k(t.activities,d=>(i(),r(L,{key:d.id,activity:d,"show-previews":!1,onReload:e[1]||(e[1]=C=>t.getActivities())},null,8,["activity"]))),128))]))],64))],2)}const yt=j(et,[["render",st],["__scopeId","data-v-4f6611e0"]]);export{yt as default};
0 commit comments