ofri masad has uploaded a new change for review.

Change subject: webadmin: Add notification to quota resize (#848289)
......................................................................

webadmin: Add notification to quota resize (#848289)

https://bugzilla.redhat.com/848289

This patch continues the previous backend change.
An alert icon will appear next to the quota utilization status in
the edit-quota dialog next to any exceeded storage quota.

Change-Id: I784da6102463158f5c30a821a00fce78210767ec
Signed-off-by: Ofri Masad <oma...@redhat.com>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/quota/QuotaPopupView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/QuotaUtilizationStatusColumn.java
2 files changed, 52 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/7858/1

diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/quota/QuotaPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/quota/QuotaPopupView.java
index af9c97a..d6928c3 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/quota/QuotaPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/quota/QuotaPopupView.java
@@ -42,6 +42,7 @@
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.ScrollPanel;
 import com.google.inject.Inject;
+import 
org.ovirt.engine.ui.webadmin.widget.table.column.QuotaUtilizationStatusColumn;
 
 public class QuotaPopupView extends AbstractModelBoundPopupView<QuotaModel> 
implements QuotaPopupPresenterWidget.ViewDef, SliderValueChange {
 
@@ -250,6 +251,8 @@
             }
         }, constants.storageNameQuota(), "200px"); //$NON-NLS-1$
 
+        quotaStorageTable.addColumn(new 
QuotaUtilizationStatusColumn<QuotaStorage>(), constants.empty(), "1px"); 
//$NON-NLS-1$
+
         quotaStorageTable.addColumn(new TextColumnWithTooltip<QuotaStorage>() {
             @Override
             public String getValue(QuotaStorage object) {
@@ -336,6 +339,8 @@
             }
         }, constants.clusterNameQuota(), "200px"); //$NON-NLS-1$
 
+        quotaClusterTable.addColumn(new 
QuotaUtilizationStatusColumn<QuotaVdsGroup>(), constants.empty(), "1px"); 
//$NON-NLS-1$
+
         quotaClusterTable.addColumn(new TextColumnWithTooltip<QuotaVdsGroup>() 
{
             @Override
             public String getValue(QuotaVdsGroup object) {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/QuotaUtilizationStatusColumn.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/QuotaUtilizationStatusColumn.java
new file mode 100644
index 0000000..3f69366
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/QuotaUtilizationStatusColumn.java
@@ -0,0 +1,47 @@
+package org.ovirt.engine.ui.webadmin.widget.table.column;
+
+import org.ovirt.engine.core.common.businessentities.QuotaStorage;
+
+import com.google.gwt.resources.client.ImageResource;
+import org.ovirt.engine.core.common.businessentities.QuotaVdsGroup;
+import org.ovirt.engine.ui.common.widget.table.column.ImageResourceColumn;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
+
+public class QuotaUtilizationStatusColumn<IVdcQueryable> extends 
ImageResourceColumn<IVdcQueryable> {
+
+    @Override
+    public ImageResource getValue(IVdcQueryable quota) {
+        boolean quotaExceeded = false;
+        if (quota instanceof QuotaStorage) {
+            quotaExceeded = getQuotaExceeded((QuotaStorage)quota);
+        } else if (quota instanceof QuotaVdsGroup) {
+            quotaExceeded = getQuotaExceeded((QuotaVdsGroup)quota);
+        } else {
+            return null;
+        }
+
+        if (quotaExceeded) {
+            setTitle("Quota exceeded");//$NON-NLS-1$
+        }
+
+        return quotaExceeded ? getResources().alertImage() : null;
+    }
+
+    private boolean getQuotaExceeded(QuotaStorage quota) {
+        return quota.getStorageSizeGB() != QuotaStorage.UNLIMITED
+                && quota.getStorageSizeGB() < quota.getStorageSizeGBUsage();
+    }
+
+    private boolean getQuotaExceeded(QuotaVdsGroup quota) {
+        return (quota.getMemSizeMB() != QuotaVdsGroup.UNLIMITED_MEM
+                && quota.getMemSizeMB() < quota.getMemSizeMBUsage())
+                || (quota.getVirtualCpu() != QuotaVdsGroup.UNLIMITED_VCPU
+                && quota.getVirtualCpu() < quota.getVirtualCpuUsage());
+    }
+
+    private ApplicationResources getResources() {
+        // Get a reference to the application resources:
+        return ClientGinjectorProvider.instance().getApplicationResources();
+    }
+}


--
To view, visit http://gerrit.ovirt.org/7858
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I784da6102463158f5c30a821a00fce78210767ec
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: ofri masad <oma...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to