Daniel Erez has uploaded a new change for review.
Change subject: webadmin: move dialog - modified warnings and styling
......................................................................
webadmin: move dialog - modified warnings and styling
In order to provide a better indication to which of the
selected disks cannot be moved/copied:
* Added a list of problematic disks into the dialog's warning.
* Added an alert icon next to the warning.
* Altered warnings position and style.
[1] Disks that cannot be moved/copied (e.g. since the source/target
domain is not available).
Change-Id: Ib327915336dfbbdd6e71665b5d3ca603a8843698
Bug-Url: https://bugzilla.redhat.com/975096
Signed-off-by: Daniel Erez <[email protected]>
---
M
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/CopyDiskModel.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/MoveDiskModel.java
M
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
M
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.ui.xml
9 files changed, 53 insertions(+), 27 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/19882/1
diff --git
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
index 143d470..6c96d4b 100644
---
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
+++
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationTemplates.java
@@ -82,4 +82,6 @@
@Template("<div style='width: {0}; font-style: italic;'>{1}</div>")
SafeHtml italicFixedWidth(String pxWidth, String text);
+ @Template("<span>{0} {1}</span>")
+ SafeHtml iconWithText(SafeHtml icon, String text);
}
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
index 7cc4460..a0dad63 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/DisksAllocationModel.java
@@ -31,10 +31,12 @@
import org.ovirt.engine.ui.uicompat.IEventListener;
import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
import org.ovirt.engine.ui.uicompat.UIConstants;
+import org.ovirt.engine.ui.uicompat.UIMessages;
public class DisksAllocationModel extends EntityModel
{
protected static UIConstants constants =
ConstantsManager.getInstance().getConstants();
+ protected static UIMessages messages =
ConstantsManager.getInstance().getMessages();
private final IEventListener quota_storageEventListener = new
IEventListener() {
@Override
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
index 517b591..79fe544 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/MoveOrCopyDiskModel.java
@@ -2,6 +2,7 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.List;
import org.ovirt.engine.core.common.action.MoveOrCopyImageGroupParameters;
import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -71,13 +72,16 @@
this.vmId = vmId;
}
+ // Disks that cannot be moved/copied
+ protected List<String> problematicDisks = new ArrayList<String>();
+
public abstract void init(ArrayList<DiskImage> diskImages);
protected abstract void initStorageDomains();
protected abstract VdcActionType getActionType();
- protected abstract String getWarning();
+ protected abstract String getWarning(List<String> disks);
protected abstract String getNoActiveSourceDomainMessage();
@@ -139,8 +143,6 @@
}
protected void postInitStorageDomains() {
- boolean showWarning = false;
-
for (DiskModel disk : getDisks()) {
DiskImage diskImage = ((DiskImage) disk.getDisk());
@@ -162,7 +164,7 @@
// Add prohibition reasons
if (sourceStorageDomains.isEmpty() ||
destStorageDomains.isEmpty()) {
- showWarning = true;
+ problematicDisks.add((String) disk.getAlias().getEntity());
updateChangeability(disk, isDiskBasedOnTemplate,
sourceStorageDomains.isEmpty(),
destStorageDomains.isEmpty());
}
@@ -176,7 +178,7 @@
}
sortDisks();
- postCopyOrMoveInit(showWarning);
+ postCopyOrMoveInit();
}
private void updateChangeability(DiskModel disk, boolean
isDiskBasedOnTemplate, boolean noSources, boolean noTargets) {
@@ -195,7 +197,7 @@
disk.getSourceStorageDomainName().setEntity(sourceStorageName);
}
- protected void postCopyOrMoveInit(boolean showWarning) {
+ protected void postCopyOrMoveInit() {
ICommandTarget target = (ICommandTarget) getEntity();
if (getActiveStorageDomains().isEmpty()) {
@@ -209,8 +211,8 @@
}
else
{
- if (showWarning) {
- setMessage(getWarning());
+ if (!problematicDisks.isEmpty()) {
+ setMessage(getWarning(problematicDisks));
}
UICommand actionCommand = new UICommand("OnExecute", this);
//$NON-NLS-1$
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/CopyDiskModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/CopyDiskModel.java
index 1027973..cf2ade8 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/CopyDiskModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/CopyDiskModel.java
@@ -1,6 +1,7 @@
package org.ovirt.engine.ui.uicommonweb.models.templates;
import java.util.ArrayList;
+import java.util.List;
import org.ovirt.engine.core.common.action.MoveOrCopyImageGroupParameters;
import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -11,6 +12,7 @@
import org.ovirt.engine.core.common.businessentities.ImageOperation;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.StringHelper;
import org.ovirt.engine.ui.frontend.AsyncQuery;
import org.ovirt.engine.ui.frontend.Frontend;
import org.ovirt.engine.ui.frontend.INewAsyncCallback;
@@ -67,8 +69,8 @@
}
@Override
- protected String getWarning() {
- return constants.cannotCopyDisks();
+ protected String getWarning(List<String> disks) {
+ return messages.cannotCopyDisks(StringHelper.join(", ",
disks.toArray())); //$NON-NLS-1$
}
@Override
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/MoveDiskModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/MoveDiskModel.java
index a57b032..5a8c5c8 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/MoveDiskModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/MoveDiskModel.java
@@ -13,6 +13,7 @@
import org.ovirt.engine.core.common.businessentities.DiskImage;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.StringHelper;
import org.ovirt.engine.ui.frontend.AsyncQuery;
import org.ovirt.engine.ui.frontend.Frontend;
import org.ovirt.engine.ui.frontend.INewAsyncCallback;
@@ -68,8 +69,8 @@
}
@Override
- protected String getWarning() {
- return constants.cannotMoveDisks();
+ protected String getWarning(List<String> disks) {
+ return messages.cannotMoveDisks(StringHelper.join(", ",
disks.toArray())); //$NON-NLS-1$
}
@Override
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 e44eac8..da950d4 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
@@ -907,13 +907,7 @@
String diskExistsOnAllActiveStorageDomainsMsg();
@DefaultStringValue("The Template that the VM is based on does not exist
on any active Storage Domain")
- String noActiveStorageDomainWithTemplateMsg();
-
- @DefaultStringValue("Warning: Some of the disks cannot be moved")
- String cannotMoveDisks();
-
- @DefaultStringValue("Warning: Some of the disks cannot be copied")
- String cannotCopyDisks();
+ String noActiveStorageDomainWithTemplateMsg();;
@DefaultStringValue("Field value should follow:
<parameter=value;parameter=value;...>")
String fieldValueShouldFollowMsg();
@@ -1728,7 +1722,7 @@
@DefaultStringValue("Wipe after delete is not supported for file domains")
String wipeAfterDeleteNotSupportedForFileDomains();
- @DefaultStringValue("Note: Moving the disk(s) while the VM is running")
+ @DefaultStringValue("Moving disk(s) while the VM is running")
String liveStorageMigrationWarning();
@DefaultStringValue("Cannot remove more than one brick from a Replicate
volume at a time")
diff --git
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
index c7da6f4..31aa2ce 100644
---
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
+++
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
@@ -1,5 +1,7 @@
package org.ovirt.engine.ui.uicompat;
+import com.google.gwt.i18n.client.Constants;
+
import java.util.Date;
import java.util.List;
@@ -297,4 +299,10 @@
@DefaultMessage("No Rebalance ever happened on volume : {0}")
String rebalanceStatusConfirmationMessage(String name);
+
+ @DefaultMessage("The following disks cannot be moved: {0}")
+ String cannotMoveDisks(String disks);
+
+ @DefaultMessage("The following disks cannot be copied: {0}")
+ String cannotCopyDisks(String disks);
}
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.java
index 67755f4..127e085 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.java
@@ -1,5 +1,10 @@
package org.ovirt.engine.ui.webadmin.section.main.view.popup.storage;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+import com.google.gwt.user.client.ui.HTML;
+import org.ovirt.engine.ui.common.CommonApplicationTemplates;
import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel;
import org.ovirt.engine.ui.common.widget.uicommon.storage.DisksAllocationView;
@@ -13,7 +18,6 @@
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.Label;
import com.google.inject.Inject;
public class DisksAllocationPopupView extends
AbstractModelBoundPopupView<DisksAllocationModel> implements
DisksAllocationPopupPresenterWidget.ViewDef {
@@ -21,6 +25,10 @@
interface ViewUiBinder extends UiBinder<SimpleDialogPanel,
DisksAllocationPopupView> {
ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
}
+
+ final CommonApplicationTemplates templates =
GWT.create(CommonApplicationTemplates.class);
+
+ SafeHtml warningImage;
@UiField
FlowPanel messagePanel;
@@ -34,6 +42,9 @@
@Inject
public DisksAllocationPopupView(EventBus eventBus, ApplicationResources
resources, ApplicationConstants constants) {
super(eventBus, resources);
+
+ warningImage =
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(
+ resources.logWarningImage()).getHTML());
disksAllocationView = new DisksAllocationView(constants);
initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
@@ -54,9 +65,11 @@
public void setMessage(String message) {
super.setMessage(message);
- boolean isMessageEmpty = message == null || message.isEmpty();
- messagePanel.setVisible(!isMessageEmpty);
- messagePanel.add(new Label(message));
+ if (message != null && !message.isEmpty()) {
+ messagePanel.add(new HTML(templates.iconWithText(warningImage,
message)));
+ }
+
+ messagePanel.setVisible(messagePanel.iterator().hasNext());
}
}
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.ui.xml
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.ui.xml
index 149472a..1e115f2 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.ui.xml
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/DisksAllocationPopupView.ui.xml
@@ -7,16 +7,18 @@
<ui:style>
.messagePanel {
color: #CD2127;
- text-align: center;
- padding: 10px;
+ position: absolute;
+ bottom: 0;
+ height: 35px;
+ overflow: auto;
}
</ui:style>
<d:SimpleDialogPanel width="540px" height="400px">
<d:content>
<g:FlowPanel>
- <g:FlowPanel ui:field="messagePanel"
visible="false" addStyleNames="{style.messagePanel}" />
<w:DisksAllocationView
ui:field="disksAllocationView" listHeight="245px" listWidth="525px"
showSource="true" />
+ <g:FlowPanel ui:field="messagePanel" visible="false"
addStyleNames="{style.messagePanel}" />
</g:FlowPanel>
</d:content>
</d:SimpleDialogPanel>
--
To view, visit http://gerrit.ovirt.org/19882
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib327915336dfbbdd6e71665b5d3ca603a8843698
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches