]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Fix RBD actions disable 24637/head
authorRicardo Marques <rimarques@suse.com>
Wed, 17 Oct 2018 13:10:46 +0000 (14:10 +0100)
committerRicardo Marques <rimarques@suse.com>
Mon, 22 Oct 2018 13:02:37 +0000 (14:02 +0100)
Fixes: https://tracker.ceph.com/issues/36403
Signed-off-by: Ricardo Marques <rimarques@suse.com>
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts

index 5db4a6a67e2d8f575f0320d86dc9eacbbf327483..aabb3e767de79ba82d3f1c1a8aca60a81046b23b 100644 (file)
@@ -103,7 +103,8 @@ export class RbdListComponent implements OnInit {
     const copyAction: CdTableAction = {
       permission: 'create',
       buttonCondition: (selection: CdTableSelection) => selection.hasSingleSelection,
-      disable: (selection: CdTableSelection) => !selection.hasSingleSelection,
+      disable: (selection: CdTableSelection) =>
+        !selection.hasSingleSelection || selection.first().cdExecuting,
       icon: 'fa-copy',
       routerLink: () => `/block/rbd/copy/${getImageUri()}`,
       name: 'Copy'
@@ -118,8 +119,6 @@ export class RbdListComponent implements OnInit {
     };
     const moveAction: CdTableAction = {
       permission: 'delete',
-      disable: (selection: CdTableSelection) =>
-        !selection.hasSingleSelection || selection.first().cdExecuting,
       icon: 'fa-trash-o',
       click: () => this.trashRbdModal(),
       name: 'Move to Trash'
index 7b6907e24be2efd1645089293ebbadca333695b9..0aeb84283770eeb381b48b2b0e857b7910a1d172 100644 (file)
@@ -5,7 +5,6 @@ export class RbdSnapshotActionsModel {
   create: CdTableAction = {
     permission: 'create',
     icon: 'fa-plus',
-    buttonCondition: (selection: CdTableSelection) => !selection.hasSingleSelection,
     name: 'Create'
   };
   rename: CdTableAction = {
@@ -30,29 +29,31 @@ export class RbdSnapshotActionsModel {
   clone: CdTableAction = {
     permission: 'create',
     buttonCondition: (selection: CdTableSelection) => selection.hasSingleSelection,
-    disable: (selection: CdTableSelection) => !selection.hasSingleSelection,
+    disable: (selection: CdTableSelection) =>
+      !selection.hasSingleSelection || selection.first().cdExecuting,
     icon: 'fa-clone',
     name: 'Clone'
   };
   copy: CdTableAction = {
     permission: 'create',
     buttonCondition: (selection: CdTableSelection) => selection.hasSingleSelection,
-    disable: (selection: CdTableSelection) => !selection.hasSingleSelection,
+    disable: (selection: CdTableSelection) =>
+      !selection.hasSingleSelection || selection.first().cdExecuting,
     icon: 'fa-copy',
     name: 'Copy'
   };
   rollback: CdTableAction = {
     permission: 'update',
-    disable: (selection: CdTableSelection) =>
-      selection.hasSingleSelection && !selection.first().parent,
     icon: 'fa-undo',
     name: 'Rollback'
   };
   deleteSnap: CdTableAction = {
     permission: 'delete',
     icon: 'fa-times',
-    disable: (selection: CdTableSelection) =>
-      selection.hasSingleSelection && !selection.first().is_protected,
+    disable: (selection: CdTableSelection) => {
+      const first = selection.first();
+      return !selection.hasSingleSelection || first.cdExecuting || first.is_protected;
+    },
     name: 'Delete'
   };
   ordering = [