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