From 0b4da6117fff4d999cb492503a8b6fc04eb75f9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= Date: Thu, 23 Mar 2023 08:37:37 +0100 Subject: [PATCH] feat(files): actions api MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ --- apps/files/js/app.js | 5 +- apps/files/src/actions/deleteAction.ts | 12 +- .../src/components/CustomSvgIconRender.vue | 63 ++++ apps/files/src/components/FileEntry.vue | 307 +++++++++++------- apps/files/src/components/FilesListHeader.vue | 29 +- .../files/src/components/FilesListVirtual.vue | 11 +- apps/files/src/mixins/fileslist-row.scss | 64 +++- .../src/actions/restoreAction.ts | 59 ++++ apps/files_trashbin/src/css/trashbin.css | 3 +- apps/files_trashbin/src/main.ts | 14 +- 10 files changed, 412 insertions(+), 155 deletions(-) create mode 100644 apps/files/src/components/CustomSvgIconRender.vue create mode 100644 apps/files_trashbin/src/actions/restoreAction.ts diff --git a/apps/files/js/app.js b/apps/files/js/app.js index 36afd9a80b7..8ebd506c1a3 100644 --- a/apps/files/js/app.js +++ b/apps/files/js/app.js @@ -144,6 +144,8 @@ } window._nc_event_bus.emit('files:legacy-view:initialized', this); + + this.navigation = OCP.Files.Navigation }, /** @@ -224,7 +226,8 @@ * @return view id */ getActiveView: function() { - return this.navigation.active + return this.navigation + && this.navigation.active && this.navigation.active.id; }, diff --git a/apps/files/src/actions/deleteAction.ts b/apps/files/src/actions/deleteAction.ts index b1bf2cb2105..cd12c15ba10 100644 --- a/apps/files/src/actions/deleteAction.ts +++ b/apps/files/src/actions/deleteAction.ts @@ -23,6 +23,7 @@ import { registerFileAction, Permission, FileAction } from '@nextcloud/files' import { translate as t } from '@nextcloud/l10n' import axios from '@nextcloud/axios' import TrashCan from '@mdi/svg/svg/trash-can.svg?raw' +import logger from '../logger' registerFileAction(new FileAction({ id: 'delete', @@ -38,12 +39,9 @@ registerFileAction(new FileAction({ .every(permission => (permission & Permission.DELETE) !== 0) }, async exec(node) { - try { - await axios.delete(node.source) - return true - } catch (error) { - console.error(error) - return false - } + // No try...catch here, let the files app handle the error + await axios.delete(node.source) + return true }, + order: 100, })) diff --git a/apps/files/src/components/CustomSvgIconRender.vue b/apps/files/src/components/CustomSvgIconRender.vue new file mode 100644 index 00000000000..f025319946f --- /dev/null +++ b/apps/files/src/components/CustomSvgIconRender.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/apps/files/src/components/FileEntry.vue b/apps/files/src/components/FileEntry.vue index d507fe6945c..ea9615af596 100644 --- a/apps/files/src/components/FileEntry.vue +++ b/apps/files/src/components/FileEntry.vue @@ -19,9 +19,95 @@ - along with this program. If not, see . - --> + + + diff --git a/apps/files/src/components/FilesListHeader.vue b/apps/files/src/components/FilesListHeader.vue index 81b56331f9c..1fe6d230a20 100644 --- a/apps/files/src/components/FilesListHeader.vue +++ b/apps/files/src/components/FilesListHeader.vue @@ -25,12 +25,13 @@ - - - - + + + + + {{ t('files', 'Name') }}