From 19310d586d901bf0fb6687772c0bdabc8065d17f Mon Sep 17 00:00:00 2001 From: Jan Messer Date: Wed, 17 Jul 2024 01:42:51 +0200 Subject: [PATCH] fix: forces sidebarPlugins to unmount and mount during an ActivityTab update sidebarPlugins is initialized as empty array and during next reattached so vue force a remount Signed-off-by: Jan Messer --- js/ActivityTab-CKk7P44F.mjs | 3 +++ js/ActivityTab-CKk7P44F.mjs.map | 1 + src/views/ActivityTab.vue | 8 ++++++++ 3 files changed, 12 insertions(+) create mode 100644 js/ActivityTab-CKk7P44F.mjs create mode 100644 js/ActivityTab-CKk7P44F.mjs.map diff --git a/js/ActivityTab-CKk7P44F.mjs b/js/ActivityTab-CKk7P44F.mjs new file mode 100644 index 000000000..5b3823145 --- /dev/null +++ b/js/ActivityTab-CKk7P44F.mjs @@ -0,0 +1,3 @@ +(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".activity[data-v-4f32db6b]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-4f32db6b]{display:flex;flex-direction:column;width:100%}.activity__empty-content[data-v-4f32db6b]{height:100%}[data-v-4f32db6b] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); +/*! third party licenses: js/vendor.LICENSE.txt */ +import{b as c,e as l,f as u,v}from"./NcCheckboxRadioSwitch-D2GbHtCS-C8gN2dlh.mjs";import{d as f,r as p,o as d,g as y,f as g,t as o}from"./index-BK2GMarY.mjs";import{a as m,b as h,N as _,c as b}from"./Activity-B8_MJ-Qt.mjs";import{g as r,a as I,b as A}from"./api-D5L3rAZA.mjs";import{l as S}from"./logger-CcLDq3iB.mjs";import{l as P}from"./activity-sidebar.mjs";import"./_commonjsHelpers-BdswosdL.mjs";const x=f({__name:"ActivitySidebarPlugin",props:{plugin:null,fileInfo:null},emits:["reload-activities"],setup(t,{emit:i}){const a=t,s=p();return d(()=>{var n;return a.plugin.mount(s.value,{context:(n=y())==null?void 0:n.proxy,fileInfo:a.fileInfo,reload:()=>i("reload-activities")})}),g(()=>a.plugin.unmount()),{__sfc:!0,props:a,emit:i,attachTarget:s}}});var N=function(){var t=this,i=t._self._c;return t._self._setupProxy,i("div",{ref:"attachTarget"})},w=[],C=c(x,N,w,!1,null,null,null,null);const k=C.exports,E={name:"ActivityTab",components:{Activity:m,NcEmptyContent:h,NcIconSvgWrapper:_,NcLoadingIcon:l,ActivitySidebarPlugin:k},data(){return{error:"",loading:!0,fileInfo:null,activities:[],lightningBoltSVG:P,sidebarPlugins:[]}},mounted(){this.sidebarPlugins=r()},methods:{async update(t){this.sidebarPlugins=[];let i=r();i.length>0&&this.$nextTick(()=>{this.sidebarPlugins=i}),this.fileInfo=t,this.resetState(),await this.getActivities()},async getActivities(){try{this.loading=!0;const t=await this.processActivities(await this.loadRealActivities()),i=await I({fileInfo:this.fileInfo});this.activities=[...t,...i].sort((a,s)=>s.timestamp-a.timestamp)}catch(t){this.error=o("activity","Unable to load the activity list"),console.error("Error loading the activity list",t)}finally{this.loading=!1}},resetState(){this.loading=!0,this.error="",this.activities=[]},async loadRealActivities(){try{const{data:t}=await u.get(v("apps/activity/api/v2/activity/filter"),{params:{format:"json",object_type:"files",object_id:this.fileInfo.id}});return t.ocs.data}catch(t){if(t.response!==void 0&&t.response.status===304)return[];throw e}},processActivities(t){t=t.map(a=>new b(a)),S.debug("Processed ".concat(t.length," activity(ies)"),{activities:t,fileInfo:this.fileInfo});const i=A();return t.filter(a=>!i||i.every(s=>s(a)))},t:o}};var T=function(){var t=this,i=t._self._c;return i("div",{staticClass:"activity",class:{"icon-loading":t.loading}},[t.error?i("NcEmptyContent",{attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[i("NcIconSvgWrapper",{attrs:{svg:t.lightningBoltSVG}})]},proxy:!0}],null,!1,63559581)}):[t.sidebarPlugins.length>0?i("div",{staticClass:"activity__actions"},t._l(t.sidebarPlugins,function(a,s){return i("ActivitySidebarPlugin",{key:s,attrs:{plugin:a,"file-info":t.fileInfo},on:{"reload-activities":function(n){return t.getActivities()}}})}),1):t._e(),t.loading?i("NcEmptyContent",{staticClass:"activity__empty-content",attrs:{name:t.t("activity","Loading activities")},scopedSlots:t._u([{key:"icon",fn:function(){return[i("NcLoadingIcon")]},proxy:!0}],null,!1,3085876643)}):t.activities.length===0?i("NcEmptyContent",{staticClass:"activity__empty-content",attrs:{name:t.t("activity","No activity yet")},scopedSlots:t._u([{key:"icon",fn:function(){return[i("span",{staticClass:"icon-activity"})]},proxy:!0}])}):i("ul",t._l(t.activities,function(a){return i("Activity",{key:a.id,attrs:{activity:a,"show-previews":!1},on:{reload:function(s){return t.getActivities()}}})}),1)]],2)},j=[],L=c(E,T,j,!1,null,"4f32db6b",null,null);const U=L.exports;export{U as default}; diff --git a/js/ActivityTab-CKk7P44F.mjs.map b/js/ActivityTab-CKk7P44F.mjs.map new file mode 100644 index 000000000..9f5fd67a4 --- /dev/null +++ b/js/ActivityTab-CKk7P44F.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ActivityTab-CKk7P44F.mjs","sources":["../src/components/ActivitySidebarPlugin.vue","../src/views/ActivityTab.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["attachTarget","ref","onMounted","props","_a","getCurrentInstance","emit","onBeforeUnmount","_sfc_main","Activity","NcEmptyContent","NcIconSvgWrapper","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","getSidebarActions","fileInfo","sidebarPlugins","activities","otherEntries","getAdditionalEntries","a","b","error","t","data","axios","generateOcsUrl","activity","ActivityModel","logger","filters","getActivityFilters","filter"],"mappings":";qhBAuBMA,EAAeC,IAErB,OAAAC,EAAU,IAAG,OAAS,OAAAC,EAAA,OAAO,MAAMH,EAAa,MAAyB,CACxE,SAASI,EAAmBC,EAAA,IAAnB,KAAsB,OAAAD,EAAA,MAC/B,SAAUD,EAAM,SAChB,OAAQ,IAAMG,EAAK,mBAAmB,CAAA,CACtC,CAAA,CAAC,EACFC,EAAgB,IAAMJ,EAAM,OAAO,QAAS,CAAA,0MCqC5CK,EAAA,CACA,KAAA,cACA,WAAA,CACA,SAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,sBAAAC,CACA,EACA,MAAA,CACA,MAAA,CACA,MAAA,GACA,QAAA,GACA,SAAA,KACA,WAAA,CAAA,EACA,iBAAAC,EACA,eAAA,CAAA,CACA,CACA,EACA,SAAA,CACA,KAAA,eAAAC,EAAA,CACA,EACA,QAAA,CAMA,MAAA,OAAAC,EAAA,CACA,KAAA,eAAA,CAAA,EACA,IAAAC,EAAAF,EAAA,EACAE,EAAA,OAAA,GACA,KAAA,UAAA,IAAA,CACA,KAAA,eAAAA,CACA,CAAA,EAGA,KAAA,SAAAD,EACA,KAAA,WAAA,EACA,MAAA,KAAA,cAAA,CACA,EAIA,MAAA,eAAA,CACA,GAAA,CACA,KAAA,QAAA,GAEA,MAAAE,EAAA,MAAA,KAAA,kBAAA,MAAA,KAAA,oBAAA,EACAC,EAAA,MAAAC,EAAA,CAAA,SAAA,KAAA,SAAA,EACA,KAAA,WAAA,CAAA,GAAAF,EAAA,GAAAC,CAAA,EAAA,KAAA,CAAAE,EAAAC,IAAAA,EAAA,UAAAD,EAAA,SAAA,CACA,OAAAE,EAAA,CACA,KAAA,MAAAC,EAAA,WAAA,kCAAA,EACA,QAAA,MAAA,kCAAAD,CAAA,CACA,QAAA,CACA,KAAA,QAAA,EACA,CACA,EAIA,YAAA,CACA,KAAA,QAAA,GACA,KAAA,MAAA,GACA,KAAA,WAAA,CAAA,CACA,EAKA,MAAA,oBAAA,CACA,GAAA,CACA,KAAA,CAAA,KAAAE,CAAA,EAAA,MAAAC,EAAA,IACAC,EAAA,sCAAA,EACA,CACA,OAAA,CACA,OAAA,OACA,YAAA,QACA,UAAA,KAAA,SAAA,EACA,CACA,CACA,EACA,OAAAF,EAAA,IAAA,IACA,OAAAF,EAAA,CAEA,GAAAA,EAAA,WAAA,QAAAA,EAAA,SAAA,SAAA,IACA,MAAA,CAAA,EAEA,MAAA,CACA,CACA,EAOA,kBAAAL,EAAA,CACAA,EAAAA,EAAA,IAAAU,GAAA,IAAAC,EAAAD,CAAA,CAAA,EAEAE,EAAA,MAAA,aAAAZ,OAAAA,EAAA,OAAA,kBAAA,CAAA,WAAAA,EAAA,SAAA,KAAA,QAAA,CAAA,EAEA,MAAAa,EAAAC,EAAA,EACA,OAAAd,EAAA,OAAAU,GAAA,CAAAG,GAAAA,EAAA,MAAAE,GAAAA,EAAAL,CAAA,CAAA,CAAA,CACA,EAEA,EAAAJ,CACA,CACA"} \ No newline at end of file diff --git a/src/views/ActivityTab.vue b/src/views/ActivityTab.vue index 178575439..34c5603a5 100644 --- a/src/views/ActivityTab.vue +++ b/src/views/ActivityTab.vue @@ -108,6 +108,14 @@ export default { * @param {object} fileInfo the current file FileInfo */ async update(fileInfo) { + this.sidebarPlugins = [] + let sidebarPlugins = getSidebarActions() + if (sidebarPlugins.length > 0) { + this.$nextTick(() => { + this.sidebarPlugins = sidebarPlugins + }) + } + this.fileInfo = fileInfo this.resetState() await this.getActivities()