Tal Nisan has uploaded a new change for review.

Change subject: webadmin: Remove unallowed options in import domain dialog
......................................................................

webadmin: Remove unallowed options in import domain dialog

When we are selecting a data center that does not support import of data
domains, make those options unselectable

Change-Id: I79e57dc3d2bcc8a3efb717f0261d9ca66636b463
Bug-Url: https://bugzilla.redhat.com/1176436
Signed-off-by: Tal Nisan <tni...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
2 files changed, 22 insertions(+), 44 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/36328/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
index 49a18a9..54dd3d0 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
@@ -1,14 +1,11 @@
 package org.ovirt.engine.ui.uicommonweb.models.storage;
 
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
-import org.ovirt.engine.core.compat.Version;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.Linq;
@@ -29,6 +26,20 @@
     public void initialize() {
         super.initialize();
         getModel().getActivateDomain().setEntity(false);
+        initializeItems();
+    }
+
+    private void initializeItems() {
+        List<IStorageModel> items = 
AsyncDataProvider.getInstance().getIsoStorageModels();
+
+        NfsStorageModel tempVar2 = new NfsStorageModel();
+        tempVar2.setRole(StorageDomainType.ImportExport);
+        items.add(tempVar2);
+
+        
items.addAll(AsyncDataProvider.getInstance().getFileDataStorageModels());
+        
items.addAll(AsyncDataProvider.getInstance().getImportBlockDataStorageModels());
+
+        getModel().setItems(items);
     }
 
     @Override
@@ -80,35 +91,7 @@
     }
 
     private void updateAvailabilityByDatacenter(StoragePool datacenter) {
-        if (datacenter == null) {
-            return;
-        }
-
-        boolean isUnassignedDC = 
StorageModel.UnassignedDataCenterId.equals(datacenter.getId());
-        Version dcVersion = !isUnassignedDC ? 
datacenter.getcompatibility_version() : Version.v3_5;
-        boolean ovfStoreOnAnyDomainEnabled = (Boolean) 
AsyncDataProvider.getInstance().getConfigValuePreConverted(
-                ConfigurationValues.ImportDataStorageDomain, 
dcVersion.getValue());
-
-        if (ovfStoreOnAnyDomainEnabled && !isItemsContainDataDomains()) {
-            Collection<IStorageModel> items = new ArrayList<IStorageModel>();
-            items.addAll(getModel().getItems());
-            
items.addAll(AsyncDataProvider.getInstance().getFileDataStorageModels());
-            
items.addAll(AsyncDataProvider.getInstance().getImportBlockDataStorageModels());
-
-            // Set items manually to invoke itemsChanged event
-            getModel().setItems(items);
-        }
-
         
getModel().getActivateDomain().setIsAvailable(!StorageModel.UnassignedDataCenterId.equals(datacenter.getId()));
-    }
-
-    private boolean isItemsContainDataDomains() {
-        for (IStorageModel storageModel : getModel().getItems()) {
-            if (storageModel.getRole() == StorageDomainType.Data) {
-                return true;
-            }
-        }
-        return false;
     }
 
     public void postUpdateItemsAvailability(IStorageModel item, boolean 
isNoStorageAttached)
@@ -137,10 +120,6 @@
     }
 
     private boolean isItemSelectable(IStorageModel item, StoragePool 
dataCenter, boolean isNoStorageAttached) {
-        // Allow import of data domains
-        if (item.getRole() == StorageDomainType.Data) {
-            return true;
-        }
 
         // Local SD can be attached to a local DC only
         if (isLocalStorage(item) && !dataCenter.isLocal()) {
@@ -148,7 +127,7 @@
         }
 
         // All storage domains can be attached to Unassigned DC
-        if (dataCenter.getId().equals(StorageModel.UnassignedDataCenterId)) {
+        if (StorageModel.UnassignedDataCenterId.equals(dataCenter.getId())) {
             return true;
         }
 
@@ -159,6 +138,13 @@
             return true;
         }
 
+        // Allow import of data domains only if the data center supports OVF 
on any domain or in the "None" data center
+        if (item.getRole() == StorageDomainType.Data) {
+            boolean ovfStoreOnAnyDomainEnabled = (Boolean) 
AsyncDataProvider.getInstance().getConfigValuePreConverted(
+                    ConfigurationValues.ImportDataStorageDomain, 
dataCenter.getcompatibility_version().getValue());
+            return ovfStoreOnAnyDomainEnabled;
+        }
+
         return false;
     }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
index d83e042..0343852 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
@@ -617,14 +617,6 @@
         model.getComment().setIsAvailable(false);
         model.getFormat().setIsAvailable(false);
 
-        List<IStorageModel> items = 
AsyncDataProvider.getInstance().getIsoStorageModels();
-
-        NfsStorageModel tempVar2 = new NfsStorageModel();
-        tempVar2.setRole(StorageDomainType.ImportExport);
-        items.add(tempVar2);
-
-        model.setItems(items);
-
         model.initialize();
 
         UICommand command;


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

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

Reply via email to