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

Reply via email to