diff --git a/config/sections/files.php b/config/sections/files.php index e2d48a8034..10bfe7f47f 100644 --- a/config/sections/files.php +++ b/config/sections/files.php @@ -129,7 +129,8 @@ 'mime' => $file->mime(), 'parent' => $file->parent()->panel()->path(), 'permissions' => [ - 'sort' => $permissions->can('sort'), + 'delete' => $permissions->can('delete'), + 'sort' => $permissions->can('sort'), ], 'template' => $file->template(), 'text' => $file->toSafeString($this->text), diff --git a/config/sections/pages.php b/config/sections/pages.php index bdbd61346a..fe3d47cc2c 100644 --- a/config/sections/pages.php +++ b/config/sections/pages.php @@ -184,10 +184,11 @@ 'link' => $panel->url(true), 'parent' => $page->parentId(), 'permissions' => [ - 'sort' => $permissions->can('sort'), + 'delete' => $permissions->can('delete'), 'changeSlug' => $permissions->can('changeSlug'), 'changeStatus' => $permissions->can('changeStatus'), 'changeTitle' => $permissions->can('changeTitle'), + 'sort' => $permissions->can('sort'), ], 'status' => $page->status(), 'template' => $page->intendedTemplate()->name(), diff --git a/panel/src/components/Sections/FilesSection.vue b/panel/src/components/Sections/FilesSection.vue index cd782c74cb..eb4fd83429 100644 --- a/panel/src/components/Sections/FilesSection.vue +++ b/panel/src/components/Sections/FilesSection.vue @@ -22,23 +22,29 @@ export default { }; }, items() { - return this.data.map((file) => ({ - ...file, - column: this.column, - data: { - "data-id": file.id, - "data-template": file.template - }, - options: this.$dropdown(file.link, { - query: { - view: "list", - delete: this.data.length > this.options.min - } - }), - selectable: this.isSelecting, - sortable: - file.permissions.sort && this.options.sortable && !this.isSelecting - })); + return this.data.map((file) => { + const sortable = + file.permissions.sort && this.options.sortable && !this.isSelecting; + const deletable = + file.permissions.delete && this.data.length > this.options.min; + + return { + ...file, + column: this.column, + data: { + "data-id": file.id, + "data-template": file.template + }, + options: this.$dropdown(file.link, { + query: { + view: "list", + delete: deletable + } + }), + selectable: this.isSelecting && deletable, + sortable: sortable + }; + }); }, type() { return "files"; diff --git a/panel/src/components/Sections/ModelsSection.vue b/panel/src/components/Sections/ModelsSection.vue index 33d37d98ae..0522c53ad1 100644 --- a/panel/src/components/Sections/ModelsSection.vue +++ b/panel/src/components/Sections/ModelsSection.vue @@ -178,7 +178,7 @@ export default { help: this.options.help, items: this.items, pagination: this.pagination, - selectable: !this.isProcessing && this.isSelecting, + selecting: !this.isProcessing && this.isSelecting, sortable: !this.isProcessing && this.options.sortable, size: this.options.size }; diff --git a/panel/src/components/Sections/PagesSection.vue b/panel/src/components/Sections/PagesSection.vue index 6b2fabd459..70cadc8d31 100644 --- a/panel/src/components/Sections/PagesSection.vue +++ b/panel/src/components/Sections/PagesSection.vue @@ -11,7 +11,8 @@ export default { return this.data.map((page) => { const sortable = page.permissions.sort && this.options.sortable && !this.isSelecting; - const deletable = this.data.length > this.options.min; + const deletable = + page.permissions.delete && this.data.length > this.options.min; const flag = { ...this.$helper.page.status( @@ -41,7 +42,7 @@ export default { sort: sortable } }), - selectable: this.isSelecting, + selectable: this.isSelecting && deletable, sortable }; });