1 line
11 KiB
Plaintext
1 line
11 KiB
Plaintext
{"version":3,"file":"ActivityTab-B7qiKgFz.chunk.mjs","sources":["../src/components/ActivitySidebarPlugin.vue","../src/views/ActivityTab.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div ref=\"attachTarget\" />\n</template>\n\n<script setup lang=\"ts\">\nimport type { IActivitySidebarAction } from '../models/ActivityAPI.ts'\n\nimport { getCurrentInstance, onBeforeUnmount, onMounted, ref } from 'vue'\n\nconst props = defineProps<{\n\t/** The sidebar plugin */\n\tplugin: IActivitySidebarAction\n\tfileInfo: object | null\n}>()\n\nconst emit = defineEmits<{\n\t(e: 'reload-activities'): void\n}>()\n\nconst attachTarget = ref<HTMLDivElement>()\n\nonMounted(() => props.plugin.mount(attachTarget.value as HTMLDivElement, {\n\tcontext: getCurrentInstance()?.proxy,\n\tfileInfo: props.fileInfo,\n\treload: () => emit('reload-activities'),\n}))\nonBeforeUnmount(() => props.plugin.unmount())\n</script>\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div\n\t\t:class=\"{ 'icon-loading': loading }\"\n\t\tclass=\"activity\">\n\t\t<!-- error message -->\n\t\t<NcEmptyContent v-if=\"error || fileInfo === null\" :name=\"error\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"lightningBoltSVG\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<template v-else>\n\t\t\t<!-- activities actions -->\n\t\t\t<div v-if=\"sidebarPlugins.length > 0\" class=\"activity__actions\">\n\t\t\t\t<ActivitySidebarPlugin\n\t\t\t\t\tv-for=\"plugin, index of sidebarPlugins\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t:plugin=\"plugin\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@reload-activities=\"getActivities()\" />\n\t\t\t</div>\n\n\t\t\t<!-- activities content -->\n\t\t\t<NcEmptyContent\n\t\t\t\tv-if=\"loading\"\n\t\t\t\tclass=\"activity__empty-content\"\n\t\t\t\t:name=\"t('activity', 'Loading activities')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t\t<NcEmptyContent\n\t\t\t\tv-else-if=\"activities.length === 0\"\n\t\t\t\tclass=\"activity__empty-content\"\n\t\t\t\t:name=\"t('activity', 'No activity yet')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<span class=\"icon-activity\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t\t<ul v-else class=\"activity__list\">\n\t\t\t\t<ActivityComponent\n\t\t\t\t\tv-for=\"activity in activities\"\n\t\t\t\t\t:key=\"activity.id\"\n\t\t\t\t\t:activity=\"activity\"\n\t\t\t\t\t:show-previews=\"false\"\n\t\t\t\t\t@reload=\"getActivities()\" />\n\t\t\t</ul>\n\t\t</template>\n\t</div>\n</template>\n\n<script lang='ts'>\nimport type { IActivitySidebarAction, IActivitySidebarEntry } from '../models/ActivityAPI.ts'\n\nimport lightningBoltSVG from '@mdi/svg/svg/lightning-bolt.svg?raw'\nimport axios from '@nextcloud/axios'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { defineComponent, nextTick } from 'vue'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport ActivityComponent from '../components/ActivityComponent.vue'\nimport ActivitySidebarPlugin from '../components/ActivitySidebarPlugin.vue'\nimport ActivityModel from '../models/ActivityModel.ts'\nimport { getActivityFilters, getAdditionalEntries, getSidebarActions } from '../utils/api.ts'\nimport logger from '../utils/logger.ts'\n\nconst ActivityTab = defineComponent({\n\tname: 'ActivityTab',\n\tcomponents: {\n\t\tActivityComponent,\n\t\tNcEmptyContent,\n\t\tNcIconSvgWrapper,\n\t\tNcLoadingIcon,\n\t\tActivitySidebarPlugin,\n\t},\n\n\texpose: ['update'],\n\n\tdata() {\n\t\treturn {\n\t\t\terror: '',\n\t\t\tloading: true,\n\t\t\tfileInfo: null,\n\t\t\tactivities: [] as (IActivitySidebarEntry | ActivityModel)[],\n\t\t\tlightningBoltSVG,\n\t\t\tsidebarPlugins: [] as IActivitySidebarAction[],\n\t\t}\n\t},\n\n\tmounted() {\n\t\tthis.sidebarPlugins = getSidebarActions()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new activities\n\t\t *\n\t\t * @param fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.sidebarPlugins = []\n\t\t\tconst sidebarPlugins = getSidebarActions()\n\t\t\tif (sidebarPlugins.length > 0) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tthis.sidebarPlugins = sidebarPlugins\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tawait this.getActivities()\n\t\t},\n\n\t\t/**\n\t\t * Get the existing activities\n\t\t */\n\t\tasync getActivities() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\n\t\t\t\tconst activities = await this.processActivities(await this.loadRealActivities())\n\t\t\t\tconst otherEntries = await getAdditionalEntries({ fileInfo: this.fileInfo })\n\t\t\t\tthis.activities = [...activities, ...otherEntries].sort((a, b) => b.timestamp - a.timestamp)\n\t\t\t} catch (error) {\n\t\t\t\tthis.error = t('activity', 'Unable to load the activity list')\n\t\t\t\tlogger.error('Error loading the activity list', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.activities = []\n\t\t},\n\n\t\t/**\n\t\t * Load activites from API\n\t\t */\n\t\tasync loadRealActivities() {\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.get(\n\t\t\t\t\tgenerateOcsUrl('apps/activity/api/v2/activity/filter'),\n\t\t\t\t\t{\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\t\tobject_type: 'files',\n\t\t\t\t\t\t\tobject_id: this.fileInfo.id,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\treturn data.ocs.data\n\t\t\t} catch (error) {\n\t\t\t\t// Status 304 is not an error.\n\t\t\t\tif (error.response !== undefined && error.response.status === 304) {\n\t\t\t\t\treturn []\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the API response activities and apply filter\n\t\t *\n\t\t * @param activities the activites\n\t\t */\n\t\tprocessActivities(activities): ActivityModel[] {\n\t\t\tactivities = activities.map((activity) => new ActivityModel(activity))\n\n\t\t\tlogger.debug(`Processed ${activities.length} activity(ies)`, { activities, fileInfo: this.fileInfo })\n\n\t\t\tconst filters = getActivityFilters()\n\t\t\treturn activities.filter((activity) => !filters || filters.every((filter) => filter(activity)))\n\t\t},\n\n\t\tt,\n\t},\n})\n\nexport default ActivityTab\nexport type ActivityTabType = typeof ActivityTab\n</script>\n\n<style scoped lang=\"scss\">\n.activity {\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\theight: 100%;\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t}\n\n\t&__list {\n\t\tflex-grow: 1;\n\t\toverflow: scroll;\n\t}\n\n\t&__empty-content {\n\t\theight: 100%;\n\t}\n}\n\n:deep(.empty-content__icon span) {\n\tbackground-size: 64px;\n\twidth: 64px;\n\theight: 64px;\n}\n</style>\n"],"names":["props","__props","emit","__emit","attachTarget","ref","onMounted","_a","getCurrentInstance","onBeforeUnmount","_createElementBlock","ActivityTab","defineComponent","ActivityComponent","NcEmptyContent","NcIconSvgWrapper","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","getSidebarActions","fileInfo","sidebarPlugins","nextTick","activities","otherEntries","getAdditionalEntries","a","b","error","t","logger","data","axios","generateOcsUrl","activity","ActivityModel","filters","getActivityFilters","filter","_normalizeClass","_ctx","_createBlock","_component_NcEmptyContent","_withCtx","_createVNode","_component_NcIconSvgWrapper","_Fragment","_openBlock","_hoisted_1","_renderList","plugin","index","_component_ActivitySidebarPlugin","_cache","_component_NcLoadingIcon","_createElementVNode","_hoisted_2","_component_ActivityComponent"],"mappings":"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"} |