Sergey Gotliv has uploaded a new change for review.

Change subject: webadmin: Add confirmation window when deactivating a VM disk
......................................................................

webadmin: Add confirmation window when deactivating a VM disk

Change-Id: I13d9aa5386efd676d7b9d043c72c921ac3f07bf6
Bug-Url: https://bugzilla.redhat.com/1038980
Signed-off-by: Sergey Gotliv <sgot...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
2 files changed, 71 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/24266/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
index f8f960b..ca9f438 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
@@ -34,6 +34,7 @@
 import org.ovirt.engine.ui.uicommonweb.Linq.DiskByAliasComparer;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.ISupportSystemTreeContext;
 import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel;
 import org.ovirt.engine.ui.uicommonweb.models.quota.ChangeQuotaItemModel;
@@ -453,29 +454,67 @@
                 this);
     }
 
-    private void plug(boolean plug) {
-        VM vm = getEntity();
-
-        ArrayList<VdcActionParametersBase> paramerterList = new 
ArrayList<VdcActionParametersBase>();
-        for (Object item : getSelectedItems()) {
-            Disk disk = (Disk) item;
-            disk.setPlugged(plug);
-
-            paramerterList.add(new HotPlugDiskToVmParameters(vm.getId(), 
disk.getId()));
-        }
-
-        VdcActionType plugAction = VdcActionType.HotPlugDiskToVm;
-        if (!plug) {
-            plugAction = VdcActionType.HotUnPlugDiskFromVm;
-        }
-
-        Frontend.getInstance().runMultipleAction(plugAction, paramerterList,
+    private void plug() {
+        
Frontend.getInstance().runMultipleAction(VdcActionType.HotPlugDiskToVm, 
createHotPlugDiskToVmParameters(true),
                 new IFrontendMultipleActionAsyncCallback() {
                     @Override
                     public void executed(FrontendMultipleActionAsyncResult 
result) {
                     }
                 },
                 this);
+    }
+
+    private void unplug() {
+        final ConfirmationModel model = (ConfirmationModel) getWindow();
+        model.startProgress(null);
+
+        
Frontend.getInstance().runMultipleAction(VdcActionType.HotUnPlugDiskFromVm, 
createHotPlugDiskToVmParameters(false),
+                new IFrontendMultipleActionAsyncCallback() {
+                    @Override
+                    public void executed(FrontendMultipleActionAsyncResult 
result) {
+                        model.stopProgress();
+                        setWindow(null);
+                    }
+                },
+                this);
+    }
+
+    private ArrayList<VdcActionParametersBase> 
createHotPlugDiskToVmParameters(boolean plug) {
+        ArrayList<VdcActionParametersBase> parametersList = new 
ArrayList<VdcActionParametersBase>();
+        VM vm = getEntity();
+
+        for (Object item : getSelectedItems()) {
+            Disk disk = (Disk) item;
+            disk.setPlugged(plug);
+
+            parametersList.add(new HotPlugDiskToVmParameters(vm.getId(), 
disk.getId()));
+        }
+
+        return parametersList;
+    }
+
+    private void confirmUnplug() {
+        ConfirmationModel model = new ConfirmationModel();
+        
model.setTitle(ConstantsManager.getInstance().getConstants().deactivateVmDisksTitle());
+        
model.setMessage(ConstantsManager.getInstance().getConstants().areYouSureYouWantDeactivateVMDisksMsg());
+        model.setHashName("deactivate_vm_disk"); //$NON-NLS-1$
+        setWindow(model);
+
+        ArrayList<String> items = new ArrayList<String>();
+        for (Object selected : getSelectedItems()) {
+            items.add(((Disk) selected).getDiskAlias());
+        }
+        model.setItems(items);
+
+        UICommand unPlug = new UICommand("OnUnplug", this); //$NON-NLS-1$
+        unPlug.setTitle(ConstantsManager.getInstance().getConstants().ok());
+        unPlug.setIsDefault(true);
+        model.getCommands().add(unPlug);
+
+        UICommand cancel = new UICommand("Cancel", this); //$NON-NLS-1$
+        
cancel.setTitle(ConstantsManager.getInstance().getConstants().cancel());
+        cancel.setIsCancel(true);
+        model.getCommands().add(cancel);
     }
 
     private void move()
@@ -765,12 +804,18 @@
         }
         else if (command == getPlugCommand())
         {
-            plug(true);
+            plug();
         }
         else if (command == getUnPlugCommand())
         {
-            plug(false);
-        } else if (command == getChangeQuotaCommand()) {
+            confirmUnplug();
+        }
+        else if (StringHelper.stringsEqual(command.getName(), "OnUnplug")) 
//$NON-NLS-1$
+        {
+            unplug();
+        }
+
+        else if (command == getChangeQuotaCommand()) {
             changeQuota();
         } else if (command.getName().equals("onChangeQuota")) { //$NON-NLS-1$
             onChangeQuota();
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index 8ce3dd9..149a200 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -2185,5 +2185,11 @@
 
     @DefaultStringValue("An IDE disk can't be read-only.")
     String cannotEnableIdeInterfaceForReadOnlyDisk();
+
+    @DefaultStringValue("Deactivate VM Disk(s)")
+    String deactivateVmDisksTitle();
+
+    @DefaultStringValue("Are you sure you want to deactivate the following VM 
disk(s)?")
+    String areYouSureYouWantDeactivateVMDisksMsg();
 }
 


-- 
To view, visit http://gerrit.ovirt.org/24266
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I13d9aa5386efd676d7b9d043c72c921ac3f07bf6
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Sergey Gotliv <sgot...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to