Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: [WIP] Disable Gluster hooks
......................................................................

webadmin: [WIP] Disable Gluster hooks

Disable action added for Gluster Hooks sub tab in cluster.

Change-Id: I18d86bf20931482b6389c542a037967a70b622c2
Signed-off-by: Kanagaraj M <kmayi...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java
5 files changed, 135 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/13574/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java
index 244b81e..2c4c205 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java
@@ -15,12 +15,17 @@
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
+import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
+import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 
 public class ClusterGlusterHookListModel extends SearchableListModel {
 
     private UICommand enableHookCommand;
+
+    private UICommand disableHookCommand;
 
     public UICommand getEnableHookCommand() {
         return enableHookCommand;
@@ -28,6 +33,14 @@
 
     public void setEnableHookCommand(UICommand enableHookCommand) {
         this.enableHookCommand = enableHookCommand;
+    }
+
+    public UICommand getDisableHookCommand() {
+        return disableHookCommand;
+    }
+
+    public void setDisableHookCommand(UICommand disableHookCommand) {
+        this.disableHookCommand = disableHookCommand;
     }
 
     @Override
@@ -41,8 +54,9 @@
         setAvailableInModes(ApplicationMode.GlusterOnly);
 
         setEnableHookCommand(new UICommand("EnableHook", this)); //$NON-NLS-1$
-
         getEnableHookCommand().setIsExecutionAllowed(false);
+        setDisableHookCommand(new UICommand("DisableHook", this)); 
//$NON-NLS-1$
+        getDisableHookCommand().setIsExecutionAllowed(false);
     }
 
     private void enableHook() {
@@ -58,6 +72,78 @@
         Frontend.RunMultipleAction(VdcActionType.EnableGlusterHook, list, 
null, null);
     }
 
+    private void disableHook() {
+        if (getWindow() != null) {
+            return;
+        }
+
+        if (getSelectedItems() == null || getSelectedItems().size() == 0) {
+            return;
+        }
+
+        ConfirmationModel model = new ConfirmationModel();
+        setConfirmWindow(model);
+        
model.setTitle(ConstantsManager.getInstance().getConstants().confirmDisableGlusterHooks());
+        model.setHashName("disable_hooks"); //$NON-NLS-1$
+        
model.setMessage(ConstantsManager.getInstance().getConstants().disableGlusterHooksMessage());
+
+        if (getSelectedItems() == null) {
+            return;
+        }
+
+        ArrayList<String> list = new ArrayList<String>();
+        for (Object item : getSelectedItems()) {
+            GlusterHookEntity hook = (GlusterHookEntity) item;
+            list.add(hook.getName());
+        }
+        model.setItems(list);
+
+        UICommand okCommand = new UICommand("OnDisableHook", this); 
//$NON-NLS-1$
+        okCommand.setTitle(ConstantsManager.getInstance().getConstants().ok());
+        okCommand.setIsDefault(true);
+        model.getCommands().add(okCommand);
+        UICommand cancelCommand = new UICommand("OnCancelConfirmation", this); 
//$NON-NLS-1$
+        
cancelCommand.setTitle(ConstantsManager.getInstance().getConstants().cancel());
+        cancelCommand.setIsCancel(true);
+        model.getCommands().add(cancelCommand);
+    }
+
+    private void onDisableHook() {
+        if (getConfirmWindow() == null) {
+            return;
+        }
+
+        ConfirmationModel model = (ConfirmationModel) getConfirmWindow();
+
+        if (model.getProgress() != null) {
+            return;
+        }
+
+        ArrayList<VdcActionParametersBase> list = new 
ArrayList<VdcActionParametersBase>();
+
+        for (Object item : getSelectedItems()) {
+            GlusterHookEntity hook = (GlusterHookEntity) item;
+            list.add(new GlusterHookParameters(getEntity().getId(), 
hook.getId()));
+        }
+
+        model.StartProgress(null);
+
+        Frontend.RunMultipleAction(VdcActionType.EnableGlusterHook, list,
+                new IFrontendMultipleActionAsyncCallback() {
+                    @Override
+                    public void Executed(FrontendMultipleActionAsyncResult 
result) {
+
+                        ConfirmationModel localModel = (ConfirmationModel) 
result.getState();
+                        localModel.StopProgress();
+                        cancelConfirmation();
+                    }
+                }, model);
+    }
+
+    private void cancelConfirmation() {
+        setConfirmWindow(null);
+    }
+
     @Override
     protected void SelectedItemsChanged() {
         super.SelectedItemsChanged();
@@ -67,15 +153,23 @@
     private void updateActionAvailability() {
         if (getSelectedItems() == null || getSelectedItems().size() == 0) {
             getEnableHookCommand().setIsExecutionAllowed(false);
+            getDisableHookCommand().setIsExecutionAllowed(false);
             return;
         }
 
         getEnableHookCommand().setIsExecutionAllowed(true);
+        getDisableHookCommand().setIsExecutionAllowed(true);
 
         for (Object item : getSelectedItems()) {
             GlusterHookEntity hook = (GlusterHookEntity) item;
             if (hook.getStatus() == GlusterHookStatus.ENABLED) {
                 getEnableHookCommand().setIsExecutionAllowed(false);
+            }
+            else if (hook.getStatus() == GlusterHookStatus.DISABLED) {
+                getDisableHookCommand().setIsExecutionAllowed(false);
+            }
+
+            if (!getEnableHookCommand().getIsExecutionAllowed() && 
!getDisableHookCommand().getIsExecutionAllowed()) {
                 break;
             }
         }
@@ -127,5 +221,14 @@
         if (command.equals(getEnableHookCommand())) {
             enableHook();
         }
+        else if (command.equals(getDisableHookCommand())) {
+            disableHook();
+        }
+        else if (command.getName().equals("OnDisableHook")) { //$NON-NLS-1$
+            onDisableHook();
+        }
+        else if (command.getName().equals("OnCancelConfirmation")) { 
//$NON-NLS-1$
+            cancelConfirmation();
+        }
     }
 }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
index a3a90d1..9a4713c 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
@@ -1528,6 +1528,12 @@
     @DefaultStringValue("Cannot choose Volume's Cluster in tree context")
     String cannotChooseVolumesClusterinTreeContect();
 
+    @DefaultStringValue("Disable Gluster Hooks")
+    String confirmDisableGlusterHooks();
+
+    @DefaultStringValue("Are you sure you want to disable the following 
Hook(s)?")
+    String disableGlusterHooksMessage();
+
     @DefaultStringValue("VMs already exist")
     String vmAlreadyExistsMsg();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index dc6e03d..fc6f591 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -1707,6 +1707,9 @@
     @DefaultStringValue("Enable")
     String enableHook();
 
+    @DefaultStringValue("Disable")
+    String disableHook();
+
     // Interface
     @DefaultStringValue("Empty")
     String emptyInterface();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java
index 0692c71..914a636 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java
@@ -8,6 +8,7 @@
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
 import org.ovirt.engine.ui.common.presenter.ModelBoundPresenterWidget;
+import 
org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget;
 import 
org.ovirt.engine.ui.common.presenter.popup.RemoveConfirmationPopupPresenterWidget;
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
 import org.ovirt.engine.ui.common.uicommon.model.DetailTabModelProvider;
@@ -177,10 +178,21 @@
 
     @Provides
     @Singleton
-    public SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, 
ClusterGlusterHookListModel> getClusterGlusterHookListProvider(ClientGinjector 
ginjector) {
+    public SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, 
ClusterGlusterHookListModel> getClusterGlusterHookListProvider(ClientGinjector 
ginjector,
+            final Provider<DefaultConfirmationPopupPresenterWidget> 
confirmPopupProvider) {
         return new SearchableDetailTabModelProvider<GlusterHookEntity, 
ClusterListModel, ClusterGlusterHookListModel>(ginjector,
                 ClusterListModel.class,
-                ClusterGlusterHookListModel.class);
+                ClusterGlusterHookListModel.class) {
+            @Override
+            public AbstractModelBoundPopupPresenterWidget<? extends 
ConfirmationModel, ?> getConfirmModelPopup(ClusterGlusterHookListModel source,
+                    UICommand lastExecutedCommand) {
+                if (lastExecutedCommand == getModel().getDisableHookCommand()) 
{
+                    return confirmPopupProvider.get();
+                } else {
+                    return super.getConfirmModelPopup(source, 
lastExecutedCommand);
+                }
+            }
+        };
     }
 
     @Provides
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java
index ebd2e32..475d0ca 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java
@@ -18,6 +18,7 @@
 import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabTableView;
 import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition;
 import 
org.ovirt.engine.ui.webadmin.widget.table.column.GlusterHookSyncStatusColumn;
+import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition;
 
 public class SubTabClusterGlusterHookView extends 
AbstractSubTabTableView<VDSGroup, GlusterHookEntity, ClusterListModel, 
ClusterGlusterHookListModel>
         implements SubTabClusterGlusterHookPresenter.ViewDef {
@@ -83,5 +84,12 @@
                 return getDetailModel().getEnableHookCommand();
             }
         });
+
+        getTable().addActionButton(new 
WebAdminButtonDefinition<GlusterHookEntity>(constants.disableHook()) {
+            @Override
+            protected UICommand resolveCommand() {
+                return getDetailModel().getDisableHookCommand();
+            }
+        });
     }
 }


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

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

Reply via email to