Amit Aviram has uploaded a new change for review. Change subject: webadmin: Warning message for cloning a VM with LUN. ......................................................................
webadmin: Warning message for cloning a VM with LUN. When cloning a VM with an attached LUN, a warning message added which informs the user that the LUN won't be cloned as well. the user should know this when cloning a VM. Change-Id: Icb2d5205baaadd17646b5076bf5f3add481f0709 Bug-Url: https://bugzilla.redhat.com/1152023 Signed-off-by: Amit Aviram <aavi...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java 4 files changed, 57 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/34786/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java index 8394dc0..50b91d9 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java @@ -11,6 +11,10 @@ import org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelTextBoxEditor; import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget; import org.ovirt.engine.ui.uicommonweb.models.vms.CloneVmModel; +import org.ovirt.engine.ui.uicompat.Event; +import org.ovirt.engine.ui.uicompat.IEventListener; +import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; +import com.google.gwt.user.client.ui.Label; public class CloneVmWidget extends AbstractModelBoundPopupWidget<CloneVmModel> { @@ -34,6 +38,11 @@ @WithElementId("cloneName") StringEntityModelTextBoxEditor cloneNameEditor; + @UiField + @Path(value = "Message.entity") + @WithElementId("Message") + FlowPanel messagePanel; + public CloneVmWidget(CommonApplicationConstants constants) { this.constants = constants; @@ -44,6 +53,14 @@ localize(); } + public void appendMessage(String message) { + if (message == null) { + return; + } + + messagePanel.add(new Label(message)); + } + private void localize() { cloneNameEditor.setLabel(constants.clonedVmName()); } @@ -51,6 +68,16 @@ @Override public void edit(final CloneVmModel object) { driver.edit(object); + + object.getPropertyChangedEvent().addListener(new IEventListener<PropertyChangedEventArgs>() { + @Override + public void eventRaised(Event<? extends PropertyChangedEventArgs> ev, Object sender, PropertyChangedEventArgs args) { + String propName = args.propertyName; + if ("Message".equals(propName)) { //$NON-NLS-1$ + appendMessage(object.getMessage()); + } + } + }); } @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml index db34f4c..7b7715e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml @@ -4,10 +4,17 @@ xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic"> <ui:style> + .messagePanel { + color: #CD2127; + height: 30px; + padding: 15px 5px; + width: 100% + } </ui:style> <g:FlowPanel> <ge:StringEntityModelTextBoxEditor ui:field="cloneNameEditor" /> + <g:FlowPanel ui:field="messagePanel" addStyleNames="{style.messagePanel}" /> </g:FlowPanel> </ui:UiBinder> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java index 54bdfe3..cb609ab 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java @@ -2,10 +2,12 @@ import org.ovirt.engine.core.common.action.CloneVmParameters; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; +import org.ovirt.engine.ui.uicommonweb.Linq; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.Model; @@ -13,9 +15,12 @@ import org.ovirt.engine.ui.uicommonweb.validation.IValidation; import org.ovirt.engine.ui.uicommonweb.validation.LengthValidation; import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation; +import org.ovirt.engine.ui.uicompat.ConstantsManager; import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult; import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback; import org.ovirt.engine.ui.uicompat.UIConstants; + +import java.util.ArrayList; public class CloneVmModel extends Model { @@ -32,6 +37,21 @@ cloneName = new EntityModel<String>(); } + @Override + public void initialize() { + AsyncDataProvider.getInstance().getVmDiskList(new AsyncQuery(this, new INewAsyncCallback() { + @Override + public void onSuccess(Object target, Object returnValue) { + CloneVmModel cloneVmModel = (CloneVmModel) target; + ArrayList<Disk> disks = (ArrayList<Disk>) returnValue; + + if (!Linq.filterDisksByStorageType(disks, Disk.DiskStorageType.LUN).isEmpty()) { + setMessage(ConstantsManager.getInstance().getConstants().cloneVmLunsWontBeCloned()); + } + } + }), vm.getId()); + } + public EntityModel<String> getCloneName() { return cloneName; } 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 0403166..6dc1ca5 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 @@ -127,6 +127,9 @@ @DefaultStringValue("Clone Virtual Machine") String cloneVmTitle(); + @DefaultStringValue("VM's LUN(s) will not be cloned.") + String cloneVmLunsWontBeCloned(); + // Tag @DefaultStringValue("Root") String rootTag(); -- To view, visit http://gerrit.ovirt.org/34786 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icb2d5205baaadd17646b5076bf5f3add481f0709 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Amit Aviram <aavi...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches