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