Kanagaraj M has uploaded a new change for review. Change subject: webadmin: [WIP] Gluster hooks - view content popup ......................................................................
webadmin: [WIP] Gluster hooks - view content popup A new action 'View Content' added to Gluster Hooks sub tab in cluster. This will open a popup which will show the content of the hook. If the hook is a binary file, an error message will be shown in the popup. Change-Id: Ic304b8155d5bf769813197a9796bf6d86fd10bfe Signed-off-by: Kanagaraj M <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.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/PresenterModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java 10 files changed, 225 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/11592/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 7faad45..72b103c 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 @@ -25,6 +25,7 @@ private UICommand enableHookCommand; private UICommand disableHookCommand; + private UICommand viewHookCommand; public UICommand getEnableHookCommand() { return enableHookCommand; @@ -42,6 +43,14 @@ this.disableHookCommand = disableHookCommand; } + public UICommand getViewHookCommand() { + return viewHookCommand; + } + + public void setViewHookCommand(UICommand viewHookCommand) { + this.viewHookCommand = viewHookCommand; + } + @Override public VDSGroup getEntity() { return (VDSGroup) super.getEntity(); @@ -54,9 +63,11 @@ setEnableHookCommand(new UICommand("EnableHook", this)); //$NON-NLS-1$ setDisableHookCommand(new UICommand("DisableHook", this)); //$NON-NLS-1$ + setViewHookCommand(new UICommand("ViewHook", this)); //$NON-NLS-1$ getEnableHookCommand().setIsExecutionAllowed(false); getDisableHookCommand().setIsExecutionAllowed(false); + getViewHookCommand().setIsExecutionAllowed(false); } private void enableHook() { @@ -144,6 +155,30 @@ setConfirmWindow(null); } + private void viewHook() { + if (getWindow() != null) + { + return; + } + + GlusterHookEntity hookEntity = (GlusterHookEntity) getSelectedItem(); + + if (hookEntity == null) + { + return; + } + + GlusterHookContentModel contentModel = new GlusterHookContentModel(); + contentModel.setTitle(ConstantsManager.getInstance().getConstants().viewContentGlusterHookTitle()); + contentModel.setHashName("view_gluster_hook"); //$NON-NLS-1$ + setWindow(contentModel); + + UICommand command = new UICommand("Cancel", this); //$NON-NLS-1$ + command.setTitle(ConstantsManager.getInstance().getConstants().close()); + command.setIsCancel(true); + contentModel.getCommands().add(command); + } + @Override protected void SelectedItemsChanged() { super.SelectedItemsChanged(); @@ -154,8 +189,11 @@ if (getSelectedItems() == null || getSelectedItems().size() == 0) { getEnableHookCommand().setIsExecutionAllowed(false); getDisableHookCommand().setIsExecutionAllowed(false); + getViewHookCommand().setIsExecutionAllowed(false); return; } + + getViewHookCommand().setIsExecutionAllowed(getSelectedItems().size() == 1); getEnableHookCommand().setIsExecutionAllowed(true); getDisableHookCommand().setIsExecutionAllowed(true); @@ -230,5 +268,8 @@ else if (command.getName().equals("OnCancelConfirmation")) { //$NON-NLS-1$ cancelConfirmation(); } + else if (command.equals(getViewHookCommand())) { + viewHook(); + } } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.java new file mode 100644 index 0000000..4be87a9 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/GlusterHookContentModel.java @@ -0,0 +1,21 @@ +package org.ovirt.engine.ui.uicommonweb.models.clusters; + +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicommonweb.models.Model; + +public class GlusterHookContentModel extends Model { + + EntityModel content; + + public EntityModel getContent() { + return content; + } + + public void setContent(EntityModel content) { + this.content = content; + } + + public GlusterHookContentModel() { + setContent(new EntityModel()); + } +} 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 2ba820b..d44eb7e 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 @@ -1483,6 +1483,9 @@ @DefaultStringValue("Are you sure you want to disable the following Hook(s)?") String disableGlusterHooksMessage(); + + @DefaultStringValue("Hook Content") + String viewContentGlusterHookTitle(); @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 82b7ee1..ab853f4 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 @@ -1683,6 +1683,9 @@ @DefaultStringValue("Disable") String disableHook(); + @DefaultStringValue("View Content") + String viewHookContent(); + // Interface @DefaultStringValue("Empty") String emptyInterface(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java index aea46c2..2536d35 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java @@ -18,6 +18,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.bookmark.BookmarkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.GlusterHookContentPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.NewClusterNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.configure.ConfigurePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.configure.RolePopupPresenterWidget; @@ -200,6 +201,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.popup.bookmark.BookmarkPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.ClusterManageNetworkPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.ClusterPopupView; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.GlusterHookContentPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster.NewClusterNetworkPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.configure.ConfigurePopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.configure.RolePopupView; @@ -908,6 +910,10 @@ DetachGlusterHostsPopupPresenterWidget.ViewDef.class, DetachGlusterHostsPopupView.class); + bindPresenterWidget(GlusterHookContentPopupPresenterWidget.class, + GlusterHookContentPopupPresenterWidget.ViewDef.class, + GlusterHookContentPopupView.class); + // Host bindPresenterWidget(HostPopupPresenterWidget.class, HostPopupPresenterWidget.ViewDef.class, 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 b908dec..90a918a 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 @@ -33,6 +33,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.PermissionsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.GlusterHookContentPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.NewClusterNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.DetachGlusterHostsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.guide.GuidePopupPresenterWidget; @@ -170,16 +171,29 @@ @Provides @Singleton public SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> getClusterGlusterHookListProvider(ClientGinjector ginjector, - final Provider<DefaultConfirmationPopupPresenterWidget> confirmPopupProvider) { + final Provider<DefaultConfirmationPopupPresenterWidget> confirmPopupProvider, + final Provider<GlusterHookContentPopupPresenterWidget> contentPopupProvider) { return new SearchableDetailTabModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel>(ginjector, ClusterListModel.class, ClusterGlusterHookListModel.class) { + @Override + public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup( ClusterGlusterHookListModel source, + UICommand lastExecutedCommand, Model windowModel) { + if (lastExecutedCommand == getModel().getViewHookCommand()) { + return contentPopupProvider.get(); + } + else { + return super.getModelPopup(source, lastExecutedCommand, windowModel); + } + } + @Override public AbstractModelBoundPopupPresenterWidget<? extends ConfirmationModel, ?> getConfirmModelPopup(ClusterGlusterHookListModel source, UICommand lastExecutedCommand) { if (lastExecutedCommand == getModel().getDisableHookCommand()) { return confirmPopupProvider.get(); - } else { + } + else { return super.getConfirmModelPopup(source, lastExecutedCommand); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java new file mode 100644 index 0000000..52438b8 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/cluster/GlusterHookContentPopupPresenterWidget.java @@ -0,0 +1,24 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster; + +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.uicommonweb.models.clusters.GlusterHookContentModel; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; + +public class GlusterHookContentPopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<GlusterHookContentModel, GlusterHookContentPopupPresenterWidget.ViewDef> { + + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<GlusterHookContentModel> { + } + + @Inject + public GlusterHookContentPopupPresenterWidget(EventBus eventBus, ViewDef view) { + super(eventBus, view); + } + + @Override + public void init(GlusterHookContentModel model) { + super.init(model); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java new file mode 100644 index 0000000..0dbe79b --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.java @@ -0,0 +1,74 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.cluster; + +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; +import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; +import org.ovirt.engine.ui.common.widget.editor.EntityModelTextAreaLabelEditor; +import org.ovirt.engine.ui.uicommonweb.models.clusters.GlusterHookContentModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.GlusterHookContentPopupPresenterWidget; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Label; +import com.google.inject.Inject; + +public class GlusterHookContentPopupView extends AbstractModelBoundPopupView<GlusterHookContentModel> implements GlusterHookContentPopupPresenterWidget.ViewDef { + + interface Driver extends SimpleBeanEditorDriver<GlusterHookContentModel, GlusterHookContentPopupView> { + Driver driver = GWT.create(Driver.class); + } + + interface ViewUiBinder extends UiBinder<SimpleDialogPanel, GlusterHookContentPopupView> { + ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); + } + + interface ViewIdHandler extends ElementIdHandler<GlusterHookContentPopupView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + + @UiField + @Path(value = "content.entity") + EntityModelTextAreaLabelEditor contentEditor; + + @UiField + @Ignore + Label messageLabel; + + @Inject + public GlusterHookContentPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants) { + super(eventBus, resources); + initComboBox(); + initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); + ViewIdHandler.idHandler.generateAndSetIds(this); + localize(constants); + Driver.driver.initialize(this); + } + + private void localize(ApplicationConstants constants) { + } + + void initComboBox() { + } + + @Override + public void edit(GlusterHookContentModel object) { + Driver.driver.edit(object); + } + + @Override + public GlusterHookContentModel flush() { + return Driver.driver.flush(); + } + + @Override + public void setMessage(String message) { + super.setMessage(message); + messageLabel.setText(message); + } +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml new file mode 100644 index 0000000..9ce1caf --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/GlusterHookContentPopupView.ui.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" + xmlns:w="urn:import:org.ovirt.engine.ui.common.widget"> + + <ui:style> + .content textarea{ + height: 100%; + width: 100%; + } + + .messageLabel { + color: #FF0000; + left: 10px; + padding-top: 5px; + padding-left: 5px; + } + </ui:style> + + <d:SimpleDialogPanel width="450px" height="320px"> + <d:content> + <g:VerticalPanel> + <e:EntityModelTextAreaLabelEditor addStyleNames="{style.content}" ui:field="contentEditor"/> + <g:Label ui:field="messageLabel" addStyleNames="{style.messageLabel}" /> + </g:VerticalPanel> + </d:content> + </d:SimpleDialogPanel> + +</ui:UiBinder> \ No newline at end of file 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 95b82d0..09d32fb 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 @@ -76,5 +76,11 @@ return getDetailModel().getDisableHookCommand(); } }); + getTable().addActionButton(new WebAdminButtonDefinition<GlusterHookEntity>(constants.viewHookContent()) { + @Override + protected UICommand resolveCommand() { + return getDetailModel().getViewHookCommand(); + } + }); } } -- To view, visit http://gerrit.ovirt.org/11592 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic304b8155d5bf769813197a9796bf6d86fd10bfe Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Kanagaraj M <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
