Eli Mesika has uploaded a new change for review. Change subject: webadmin: Adding external status to host ......................................................................
webadmin: Adding external status to host This patch actually displays the external status icon in the host main view Change-Id: I99e7066176e70ec94f543aa1120bb355acad9b0a Signed-off-by: emesika <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java A frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_error.png A frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_failure.png A frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_info.png A frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_warning.png 10 files changed, 94 insertions(+), 13 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/40999/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index 7140b84..c2fbdd1 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -2140,4 +2140,7 @@ @DefaultStringValue("Update available") String updateAvailable(); + + @DefaultStringValue("External status: ") + String ExternalStatus(); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml index 6ecd48a..4df534b 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml @@ -128,6 +128,7 @@ <include name="common/businessentities/VdsStatic.java" /> <include name="common/businessentities/VdsStatistics.java" /> <include name="common/businessentities/VDSStatus.java" /> + <include name="common/businessentities/ExternalStatus.java" /> <include name="common/businessentities/VDSType.java" /> <include name="common/businessentities/VmPoolMap.java" /> <include name="common/businessentities/VmPool.java" /> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java index 994c85f..7324fa7 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationResources.java @@ -148,6 +148,19 @@ @Source("images/update_available.png") ImageResource updateAvailableImage(); + @Source("images/icn_ext_info.png") + ImageResource ExternalInfoStatusImage(); + + @Source("images/icn_ext_warning.png") + ImageResource ExternalWarningStatusImage(); + + @Source("images/icn_ext_error.png") + ImageResource ExternalErrorStatusImage(); + + @Source("images/icn_ext_failure.png") + ImageResource ExternalFailureStatusImage(); + + @Source("images/tag_locked.png") ImageResource readOnlyTagImage(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java index a0fb2e6..113c58c 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabHostView.java @@ -105,7 +105,7 @@ getTable().enableColumnResizing(); getTable().addColumn(new HostStatusColumn<VDS>(), constants.empty(), "30px"); //$NON-NLS-1$ - getTable().addColumn(new HostAdditionalStatusColumn<VDS>(), constants.empty(), "30px"); //$NON-NLS-1$ + getTable().addColumn(new HostAdditionalStatusColumn<VDS>(), constants.empty(), "60px"); //$NON-NLS-1$ AbstractTextColumn<VDS> nameColumn = new AbstractTextColumn<VDS>() { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java index 0112a40..6e9c443 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/HostAdditionalStatusCell.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.webadmin.widget.table.cell; +import org.ovirt.engine.core.common.businessentities.ExternalStatus; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.ui.common.widget.table.cell.AbstractCell; import org.ovirt.engine.ui.webadmin.ApplicationResources; @@ -11,6 +12,10 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.client.ui.AbstractImagePrototype; +import org.ovirt.engine.ui.webadmin.widget.table.column.MultiImageColumnHelper; + +import java.util.ArrayList; +import java.util.List; public class HostAdditionalStatusCell extends AbstractCell<VDS> { @@ -19,16 +24,40 @@ @Override public void render(Context context, VDS host, SafeHtmlBuilder sb, String id) { - // Nothing to render if no host is provided or if no updates are available: - if (host == null || !host.isUpdateAvailable()) { + // Nothing to render if no host is provided + if (host == null) { return; } + List<SafeHtml> imagesHtml = new ArrayList<>(); + if (host.isUpdateAvailable()) { + // Generate the HTML for the image: + imagesHtml.add(SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.updateAvailableImage()) + .getHTML())); + } - ImageResource statusImage = resources.updateAvailableImage(); - // Generate the HTML for the image: - SafeHtml statusImageHtml = - SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(statusImage).getHTML()); - - sb.append(templates.hostAdditionalStatusIcon(id, statusImageHtml)); + if (host.getExternalStatus() != ExternalStatus.Ok) { + ImageResource statusImage; + switch (host.getExternalStatus()) { + case Info: + statusImage = resources.ExternalInfoStatusImage(); + break; + case Warning: + statusImage = resources.ExternalWarningStatusImage(); + break; + case Error: + statusImage = resources.ExternalErrorStatusImage(); + break; + case Failure: + statusImage = resources.ExternalFailureStatusImage(); + break; + default: + return; + } + imagesHtml.add(SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(statusImage).getHTML())); + } + if (! imagesHtml.isEmpty()) { + SafeHtml safeHtml = MultiImageColumnHelper.getValue(imagesHtml); + sb.append(templates.hostAdditionalStatusIcon(id, safeHtml)); + } } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java index 3312372..5861495 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/HostAdditionalStatusColumn.java @@ -1,17 +1,25 @@ package org.ovirt.engine.ui.webadmin.widget.table.column; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.user.client.ui.AbstractImagePrototype; +import org.ovirt.engine.core.common.businessentities.ExternalStatus; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.ui.common.widget.table.column.AbstractColumn; import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.gin.AssetProvider; import org.ovirt.engine.ui.webadmin.widget.table.cell.HostAdditionalStatusCell; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import java.util.LinkedHashMap; +import java.util.Map; + public class HostAdditionalStatusColumn<S> extends AbstractColumn<S, VDS> { private final static ApplicationConstants constants = AssetProvider.getConstants(); + private final static ApplicationResources resources = AssetProvider.getResources(); public HostAdditionalStatusColumn() { super(new HostAdditionalStatusCell()); @@ -29,12 +37,39 @@ @Override public SafeHtml getTooltip(S object) { VDS host = getValue(object); - - if (host != null && host.isUpdateAvailable()) { - String tooltip = constants.updateAvailable(); - return SafeHtmlUtils.fromSafeConstant(tooltip); + if (host == null) { + return null; } + Map<SafeHtml, String> imagesToText = new LinkedHashMap<>(); + if (host.isUpdateAvailable()) { + imagesToText.put(SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.updateAvailableImage()) + .getHTML()), constants.updateAvailable()); + } + if (host.getExternalStatus() != ExternalStatus.Ok) { + ImageResource statusImage; + switch (host.getExternalStatus()) { + case Info: + statusImage = resources.ExternalInfoStatusImage(); + break; + case Warning: + statusImage = resources.ExternalWarningStatusImage(); + break; + case Error: + statusImage = resources.ExternalErrorStatusImage(); + break; + case Failure: + statusImage = resources.ExternalFailureStatusImage(); + break; + default: + return null; + } + imagesToText.put(SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(statusImage).getHTML()), + constants.ExternalStatus() + host.getExternalStatus().name()); + } + if (! imagesToText.isEmpty()) { + return MultiImageColumnHelper.getTooltip(imagesToText); + } return null; } } diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_error.png b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_error.png new file mode 100644 index 0000000..964f047 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_error.png Binary files differ diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_failure.png b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_failure.png new file mode 100644 index 0000000..420530b --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_failure.png Binary files differ diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_info.png b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_info.png new file mode 100644 index 0000000..904c4bd --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_info.png Binary files differ diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_warning.png b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_warning.png new file mode 100644 index 0000000..9e1a765 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/webadmin/images/icn_ext_warning.png Binary files differ -- To view, visit https://gerrit.ovirt.org/40999 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I99e7066176e70ec94f543aa1120bb355acad9b0a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Eli Mesika <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
