Libor Spevak has uploaded a new change for review. Change subject: userportal, webadmin: Show warning for non-exportable disks ......................................................................
userportal, webadmin: Show warning for non-exportable disks Display warning in Create VM template, Export VM, Create VM snapshot dialogs, if non-exportable disks are detected (e.g. shared disk, direct lun , ...), that these disks will not be part of the export. For the detection, the Disk.isAllowSnapshot() is used. Change-Id: I6a183931e36ccd4668225ad206edc4a5e58795e3 Bug-Url: https://bugzilla.redhat.com/855625 Signed-off-by: Libor Spevak <lspe...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.ui.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/VmBaseListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExportVmModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java 16 files changed, 177 insertions(+), 31 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/11144/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java index 93713ad..d400ec7 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java @@ -5,6 +5,7 @@ import org.ovirt.engine.core.compat.Event; import org.ovirt.engine.core.compat.EventArgs; import org.ovirt.engine.core.compat.IEventListener; +import org.ovirt.engine.core.compat.PropertyChangedEventArgs; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; import org.ovirt.engine.ui.common.idhandler.WithElementId; @@ -12,6 +13,7 @@ import org.ovirt.engine.ui.common.widget.editor.EntityModelCheckBoxEditor; import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxEditor; import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor; +import org.ovirt.engine.ui.common.widget.label.HtmlLabel; import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer; import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget; import org.ovirt.engine.ui.common.widget.uicommon.storage.DisksAllocationView; @@ -70,7 +72,8 @@ EntityModelCheckBoxEditor isTemplatePublicEditor; @UiField - Label message; + @Ignore + HtmlLabel messageHTML; @UiField @Ignore @@ -146,6 +149,16 @@ disksAllocationLabel.getElement().getStyle().setColor(isDisksAllocationEnabled ? "black" : "grey"); //$NON-NLS-1$ //$NON-NLS-2$ } }); + + model.getPropertyChangedEvent().addListener(new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + String propName = ((PropertyChangedEventArgs) args).PropertyName; + if ("Message".equals(propName)) { //$NON-NLS-1$ + VmMakeTemplatePopupWidget.this.setMessage(model.getMessage()); + } + } + }); } private void addDiskAllocation(UnitVmModel model) { @@ -174,4 +187,9 @@ isTemplatePublicEditor.setTabIndex(nextTabIndex++); return nextTabIndex; } + + public void setMessage(String message) { + messageHTML.appendText(message); + } + } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml index 703a9fc..d5dc6b3 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml @@ -1,7 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" - xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" xmlns:w="urn:import:org.ovirt.engine.ui.common.widget.uicommon.storage"> + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" + xmlns:w="urn:import:org.ovirt.engine.ui.common.widget.uicommon.storage" + xmlns:l="urn:import:org.ovirt.engine.ui.common.widget.label" > <ui:style type="org.ovirt.engine.ui.common.widget.uicommon.popup.vm.VmMakeTemplatePopupWidget.WidgetStyle"> .content { @@ -15,12 +17,12 @@ .errorMessageLabel { color: #CD2127; position: absolute; - bottom: 10px; + bottom: 15px; } .isTemplatePublicEditor { position: absolute; - bottom: 30px; + bottom: 40px; } .disksAllocationPanel { @@ -44,7 +46,7 @@ <w:DisksAllocationView ui:field="disksAllocationView" listHeight="170px" listWidth="445px" addStyleNames="{style.disksAllocationPanel}" /> <g:VerticalPanel> <e:EntityModelCheckBoxEditor ui:field="isTemplatePublicEditor" addStyleNames="{style.isTemplatePublicEditor}" /> - <g:Label ui:field="message" addStyleNames="{style.errorMessageLabel}" /> + <l:HtmlLabel ui:field="messageHTML" addStyleNames="{style.errorMessageLabel}" /> </g:VerticalPanel> </g:FlowPanel> diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java index 917680b..a920655 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java @@ -1,9 +1,14 @@ package org.ovirt.engine.ui.common.widget.uicommon.popup.vm; +import org.ovirt.engine.core.compat.Event; +import org.ovirt.engine.core.compat.EventArgs; +import org.ovirt.engine.core.compat.IEventListener; +import org.ovirt.engine.core.compat.PropertyChangedEventArgs; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; import org.ovirt.engine.ui.common.idhandler.WithElementId; import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxEditor; +import org.ovirt.engine.ui.common.widget.label.HtmlLabel; import org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget; import org.ovirt.engine.ui.uicommonweb.models.vms.SnapshotModel; @@ -11,7 +16,6 @@ import com.google.gwt.editor.client.SimpleBeanEditorDriver; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; public class VmSnapshotCreatePopupWidget extends AbstractModelBoundPopupWidget<SnapshotModel> { @@ -34,7 +38,8 @@ EntityModelTextBoxEditor descriptionEditor; @UiField - Label message; + @Ignore + HtmlLabel messageHTML; public VmSnapshotCreatePopupWidget(CommonApplicationConstants constants) { initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); @@ -48,8 +53,18 @@ } @Override - public void edit(SnapshotModel object) { - Driver.driver.edit(object); + public void edit(final SnapshotModel model) { + Driver.driver.edit(model); + + model.getPropertyChangedEvent().addListener(new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + String propName = ((PropertyChangedEventArgs) args).PropertyName; + if ("Message".equals(propName)) { //$NON-NLS-1$ + VmSnapshotCreatePopupWidget.this.setMessage(model.getMessage()); + } + } + }); } @Override @@ -62,4 +77,8 @@ descriptionEditor.setFocus(true); } + public void setMessage(String message) { + messageHTML.appendText(message); + } + } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.ui.xml index 7529521..cee58d1 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.ui.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" - xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"> + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" + xmlns:l="urn:import:org.ovirt.engine.ui.common.widget.label" > <ui:style> .content { @@ -20,7 +21,7 @@ <g:VerticalPanel verticalAlignment="ALIGN_MIDDLE" addStyleNames="{style.content}"> <e:EntityModelTextBoxEditor ui:field="descriptionEditor" addStyleNames="{style.descriptionEditor}" /> - <g:Label ui:field="message" addStyleNames="{style.errorMessageLabel}" /> + <l:HtmlLabel ui:field="messageHTML" addStyleNames="{style.errorMessageLabel}" /> </g:VerticalPanel> </ui:UiBinder> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java index f4c838b..b7c7464 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java @@ -762,4 +762,9 @@ protected String extractNameFromEntity(VmTemplate entity) { return entity.getname(); } + + @Override + protected void sendWarningForNonExportableDisks(VmTemplate entity) { + // no op + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/VmBaseListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/VmBaseListModel.java index 5202757..b2a340c 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/VmBaseListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/VmBaseListModel.java @@ -64,6 +64,9 @@ vmListModel.PostExportGetStorageDomainList(filteredStorageDomains); } }), extractStoragePoolIdNullSafe(selectedEntity)); + + // check, if the VM has a disk which doesn't allow snapshot + sendWarningForNonExportableDisks(selectedEntity); } private void PostExportGetStorageDomainList(List<storage_domains> storageDomains) @@ -198,12 +201,14 @@ } private String composeExistingVmsWarningMessage(List<T> existingVms) { - String res = ""; //$NON-NLS-1$ + final StringBuffer s = new StringBuffer(); for (T t : existingVms) { - String name = extractNameFromEntity(t); - res += "\u2022 " + name + " "; //$NON-NLS-1$ //$NON-NLS-2$ + if(s.length() > 0) { + s.append(", "); //$NON-NLS-1$ + } + s.append(extractNameFromEntity(t)); } - return res; + return s.toString(); } protected void setupExportModel(ExportVmModel model) { @@ -228,4 +233,6 @@ protected abstract VdcQueryType getEntityExportDomain(); + protected abstract void sendWarningForNonExportableDisks(T entity); + } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExportVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExportVmModel.java index 9ae178f..e90fd85 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExportVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExportVmModel.java @@ -6,10 +6,8 @@ import org.ovirt.engine.ui.uicommonweb.validation.IValidation; import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation; -@SuppressWarnings("unused") public class ExportVmModel extends Model { - private ListModel privateStorage; public ListModel getStorage() diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java index 12ce131..cbdf3cd 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java @@ -4,6 +4,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.Iterator; +import java.util.List; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.Disk; @@ -107,6 +108,7 @@ NewTemplateVmModelBehavior behavior = (NewTemplateVmModelBehavior) target; ArrayList<Disk> disks = new ArrayList<Disk>(); + List<Disk> nonExportableDisks = new ArrayList<Disk>(); Iterable disksEnumerable = (Iterable) returnValue; Iterator disksIterator = disksEnumerable.iterator(); @@ -116,11 +118,14 @@ if (disk.getDiskStorageType() == DiskStorageType.IMAGE && !disk.isShareable()) { disks.add(disk); + } else if(!disk.isAllowSnapshot()) { + nonExportableDisks.add(disk); } } behavior.InitStorageDomains(); InitDisks(disks); + sendWarningForNonExportableDisks(nonExportableDisks); } }, getModel().getHash()), vm.getId(), @@ -133,6 +138,23 @@ } } + private void sendWarningForNonExportableDisks(List<Disk> nonExportableDisks) { + if(!nonExportableDisks.isEmpty()) { + final StringBuilder s = new StringBuilder(); + + for(Disk disk : nonExportableDisks) { + if(s.length() > 0) { + s.append(", "); //$NON-NLS-1$ + } + + s.append(disk.getDiskAlias()); + } + + // append warning message + getModel().setMessage(ConstantsManager.getInstance().getMessages().disksWillNotBePartOfTheExportedVMTemplate(s.toString())); + } + } + private void InitDisks(ArrayList<Disk> disks) { Collections.sort(disks, new Linq.DiskByAliasComparer()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java index df71d88..e6d11ba 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java @@ -5,6 +5,7 @@ import java.util.List; import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions; +import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.VM; @@ -18,8 +19,8 @@ import org.ovirt.engine.ui.uicommonweb.validation.LengthValidation; import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation; import org.ovirt.engine.ui.uicommonweb.validation.SpecialAsciiI18NOrNoneValidation; +import org.ovirt.engine.ui.uicompat.ConstantsManager; -@SuppressWarnings("unused") public class SnapshotModel extends EntityModel { private VM vm; @@ -153,4 +154,31 @@ return getDescription().getIsValid(); } + + // send warning message, if a disk which doesn't allow snapshot is detected (e.g. LUN) + void sendWarningForNonExportableDisks(ArrayList<Disk> disks) { + // filter non-exportable disks + final List<Disk> nonExportableDisks = new ArrayList<Disk>(); + for(Disk disk : disks) { + if(!disk.isAllowSnapshot()) { + nonExportableDisks.add(disk); + } + } + + if(!nonExportableDisks.isEmpty()) { + final StringBuilder s = new StringBuilder(); + + for(Disk disk : nonExportableDisks) { + if(s.length() > 0) { + s.append(", "); //$NON-NLS-1$ + } + + s.append(disk.getDiskAlias()); + } + + // append warning message + setMessage(ConstantsManager.getInstance().getMessages().disksWillNotBePartOfTheExportedVMSnapshot(s.toString())); + } + } + } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java index af13928..c7c7224 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java @@ -1327,6 +1327,41 @@ }, model); } + @Override + protected void sendWarningForNonExportableDisks(VM entity) { + // load VM disks and check if there is one which doesn't allow snapshot + AsyncDataProvider.GetVmDiskList(new AsyncQuery((ExportVmModel) getWindow(), + new INewAsyncCallback() { + @Override + public void OnSuccess(Object target, Object returnValue) { + final ExportVmModel model = (ExportVmModel) target; + @SuppressWarnings("unchecked") + final ArrayList<Disk> diskList = (ArrayList<Disk>) returnValue; + final List<Disk> nonExportableDisks = new ArrayList<Disk>(); + for(Disk disk : diskList) { + if(!disk.isAllowSnapshot()) { + nonExportableDisks.add(disk); + } + } + + if(!nonExportableDisks.isEmpty()) { + final StringBuilder s = new StringBuilder(); + + for(Disk disk : nonExportableDisks) { + if(s.length() > 0) { + s.append(", "); //$NON-NLS-1$ + } + + s.append(disk.getDiskAlias()); + } + + // append warning message + model.setMessage(ConstantsManager.getInstance().getMessages().disksWillNotBePartOfTheExportedVM(s.toString())); + } + } + }), entity.getId()); + } + private void RunOnce() { VM vm = (VM) getSelectedItem(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java index daad8be..fe6be7d 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java @@ -483,6 +483,8 @@ ArrayList<Disk> disks = (ArrayList<Disk>) returnValue; vmSnapshotListModel.PostNew(disks); + // show message + snapshotModel.sendWarningForNonExportableDisks(disks); snapshotModel.StopProgress(); } }), diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java index a602d27..5ba4294 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java @@ -90,12 +90,21 @@ @DefaultMessage("Import process has begun for Template(s): {0}.\nYou can check import status in the ''Events'' tab of the specific destination storage domain, or in the main ''Events'' tab") String importProcessHasBegunForTemplates(String importedTemplates); - @DefaultMessage("Template(s):\n{0} already exist on the target Export Domain. If you want to override them, please check the ''Force Override'' check-box.") + @DefaultMessage("Template(s): {0} already exist on the target Export Domain. If you want to override them, please check the ''Force Override'' check-box.") String templatesAlreadyExistonTargetExportDomain(String existingTemplates); - @DefaultMessage("VM(s):\n{0} already exist on the target Export Domain. If you want to override them, please check the ''Force Override'' check-box.") + @DefaultMessage("VM(s): {0} already exist on the target Export Domain. If you want to override them, please check the ''Force Override'' check-box.") String vmsAlreadyExistOnTargetExportDomain(String existingVMs); + @DefaultMessage("Shared disk(s): {0} will not be part of the exported virtual machine.") + String disksWillNotBePartOfTheExportedVM(String diskList); + + @DefaultMessage("Shared disk(s): {0} will not be part of the exported template.") + String disksWillNotBePartOfTheExportedVMTemplate(String diskList); + + @DefaultMessage("Shared disk(s): {0} will not be part of the exported snapshot.") + String disksWillNotBePartOfTheExportedVMSnapshot(String diskList); + @DefaultMessage("Error connecting to Virtual Machine using Spice:\n{0}") String errConnectingVmUsingSpiceMsg(Object errCode); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java index c239f49..90548b5 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java @@ -20,7 +20,7 @@ @Inject public VmMakeTemplatePopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants) { - super(eventBus, resources, new VmMakeTemplatePopupWidget(constants), "460px", "490px"); //$NON-NLS-1$ //$NON-NLS-2$ + super(eventBus, resources, new VmMakeTemplatePopupWidget(constants), "490px", "490px"); //$NON-NLS-1$ //$NON-NLS-2$ ViewIdHandler.idHandler.generateAndSetIds(this); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.java index 27f7a18..b5397f1 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.java @@ -4,6 +4,7 @@ import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; import org.ovirt.engine.ui.common.widget.editor.EntityModelCheckBoxEditor; +import org.ovirt.engine.ui.common.widget.label.HtmlLabel; import org.ovirt.engine.ui.uicommonweb.models.vms.ExportVmModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.ApplicationResources; @@ -14,7 +15,6 @@ import com.google.gwt.event.shared.EventBus; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.Label; import com.google.inject.Inject; public class VmExportPopupView extends AbstractModelBoundPopupView<ExportVmModel> @@ -38,7 +38,7 @@ @UiField @Ignore - Label messageLabel; + HtmlLabel messageHTML; @Inject public VmExportPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants) { @@ -61,9 +61,7 @@ @Override public void setMessage(String message) { - super.setMessage(message); - - messageLabel.setText(message); + messageHTML.appendText(message); } @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.ui.xml index ecd36d5..0f632df 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmExportPopupView.ui.xml @@ -1,7 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" - xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"> + xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" + xmlns:l="urn:import:org.ovirt.engine.ui.common.widget.label" > <ui:style> .messageLabel { @@ -12,18 +14,18 @@ } .messagePanel { - height: 70px; + height: 90px; width: 100%; } </ui:style> - <d:SimpleDialogPanel width="400px" height="270px"> + <d:SimpleDialogPanel width="440px" height="270px"> <d:content> <g:FlowPanel> <e:EntityModelCheckBoxEditor ui:field="forceOverride"/> <e:EntityModelCheckBoxEditor ui:field="collapseSnapshots"/> <g:ScrollPanel addStyleNames="{style.messagePanel}" > - <g:Label ui:field="messageLabel" addStyleNames="{style.messageLabel}" /> + <l:HtmlLabel ui:field="messageHTML" addStyleNames="{style.messageLabel}" /> </g:ScrollPanel> </g:FlowPanel> </d:content> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java index 1d78b99..b4ca68f 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java @@ -20,7 +20,7 @@ @Inject public VmMakeTemplatePopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants) { - super(eventBus, resources, new VmMakeTemplatePopupWidget(constants), "460px", "490px"); //$NON-NLS-1$ //$NON-NLS-2$ + super(eventBus, resources, new VmMakeTemplatePopupWidget(constants), "490px", "490px"); //$NON-NLS-1$ //$NON-NLS-2$ ViewIdHandler.idHandler.generateAndSetIds(this); } -- To view, visit http://gerrit.ovirt.org/11144 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6a183931e36ccd4668225ad206edc4a5e58795e3 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Libor Spevak <lspe...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches