Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Fixed buggy profiles in edit network dialog
......................................................................

webadmin: Fixed buggy profiles in edit network dialog

A recent careless bug fix introduced a couple of bugs to the profiles
section of the edit network dialog, e.g. an attempt to create profiles
is made every time a network is updated and it is impossible to
approve the dialog when the list of profiles is empty. Hopefully this
fixed everything.

Change-Id: I20ed93c4b0a02118ce9732ce7db3c446b8a07803
Bug-Url: https://bugzilla.redhat.com/1043386
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
4 files changed, 27 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/22407/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
index 00e32d9..678e06a2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
@@ -5,6 +5,7 @@
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
@@ -38,6 +39,7 @@
         getExport().setIsChangable(false);
         getExternalProviders().setIsChangable(false);
         getNetworkLabel().setIsChangable(false);
+        toggleProfilesAvailability();
     }
 
     @Override
@@ -93,4 +95,9 @@
                 },
                 null);
     }
+
+    @Override
+    protected void toggleProfilesAvailability() {
+        getProfiles().setIsAvailable((Boolean) getIsVmNetwork().getEntity() && 
!getNetwork().isVmNetwork());
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
index 031e8cd..4f4a371 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
@@ -124,6 +124,13 @@
         EntityModel isVmNetwork = new EntityModel();
         isVmNetwork.setEntity(true);
         setIsVmNetwork(isVmNetwork);
+        isVmNetwork.getEntityChangedEvent().addListener(new IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                toggleProfilesAvailability();
+            }
+        });
+
         EntityModel publicUse = new EntityModel();
         publicUse.setEntity(true);
 
@@ -486,19 +493,15 @@
 
     protected void postSaveAction(Guid networkGuid, boolean succeeded) {
         if (succeeded) {
-            if ((Boolean) getIsVmNetwork().getEntity()) {
-                performProfilesActions(networkGuid);
-                stopProgress();
-            } else {
-                stopProgress();
-                cancel();
-            }
+            performProfilesActions(networkGuid);
+            stopProgress();
+            cancel();
         }
     }
 
     private void performProfilesActions(Guid networkGuid) {
         List<VnicProfileModel> profileModels = (List<VnicProfileModel>) 
getProfiles().getItems();
-        if (profileModels.isEmpty()) {
+        if (profileModels.isEmpty() || !getProfiles().getIsAvailable()) {
             return;
         }
 
@@ -514,15 +517,11 @@
                 paramlist.add(parameters);
             }
         }
+        
Frontend.getInstance().runMultipleActions(VdcActionType.AddVnicProfile, 
paramlist);
+    }
 
-        IFrontendActionAsyncCallback callback = new 
IFrontendActionAsyncCallback() {
-            @Override
-            public void executed(FrontendActionAsyncResult result) {
-                stopProgress();
-                cancel();
-            }
-        };
-        
Frontend.getInstance().runMultipleActions(VdcActionType.AddVnicProfile, 
paramlist, callback);
+    protected void toggleProfilesAvailability() {
+        getProfiles().setIsAvailable((Boolean) getIsVmNetwork().getEntity());
     }
 
     void cancel() {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
index c7f359f..8d84a44 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
@@ -43,11 +43,13 @@
             }
         });
 
-        getView().toggleProfilesVisibility((Boolean) 
model.getIsVmNetwork().getEntity());
-        model.getIsVmNetwork().getEntityChangedEvent().addListener(new 
IEventListener() {
+        
getView().toggleProfilesVisibility(model.getProfiles().getIsAvailable());
+        model.getProfiles().getPropertyChangedEvent().addListener(new 
IEventListener() {
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
-                getView().toggleProfilesVisibility((Boolean) 
model.getIsVmNetwork().getEntity());
+                if ("IsAvailable".equals(((PropertyChangedEventArgs) 
args).PropertyName)) {
+                    
getView().toggleProfilesVisibility(model.getProfiles().getIsAvailable());
+                }
             }
         });
     }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
index 58fd239..3e7974d 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
@@ -1,6 +1,5 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.popup.datacenter;
 
-import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.ui.uicommonweb.models.datacenters.EditNetworkModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
@@ -19,8 +18,6 @@
     }
 
     private final Driver driver = GWT.create(Driver.class);
-
-    private Network network;
 
     @Inject
     public EditNetworkPopupView(EventBus eventBus,
@@ -42,7 +39,6 @@
     public void edit(EditNetworkModel object) {
         super.edit(object);
         driver.edit(object);
-        network = object.getNetwork();
     }
 
     @Override
@@ -56,11 +52,6 @@
     public EditNetworkModel flush() {
         super.flush();
         return driver.flush();
-    }
-
-    @Override
-    public void toggleProfilesVisibility(boolean visible) {
-        super.toggleProfilesVisibility(visible && !network.isVmNetwork());
     }
 
 }


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

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

Reply via email to