Frank Kobzik has uploaded a new change for review. Change subject: frontend: Add console open link to basic UP ......................................................................
frontend: Add console open link to basic UP This patch adds a link that opens console to details view of vm in UP. This is useful for tablet browser users (who can't double-click). Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1043559 Change-Id: I758d487360de8812539e98da3fd8eae68b243edf Signed-off-by: Frantisek Kobzik <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.ui.xml 4 files changed, 61 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/10/26110/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index 3c408f2..b45d863 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -1717,4 +1717,7 @@ @DefaultStringValue("Provide custom serial number policy") String overrideSerialNumberPolicy(); + + @DefaultStringValue("Connect") + String connect(); } diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java index c3b5fd0..15e81a1 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java @@ -8,6 +8,7 @@ import org.ovirt.engine.ui.common.presenter.popup.ConsoleModelChangedEvent.ConsoleModelChangedHandler; import org.ovirt.engine.ui.common.utils.DynamicMessages; import org.ovirt.engine.ui.common.widget.HasEditorDriver; +import org.ovirt.engine.ui.uicommonweb.ErrorPopupManager; import org.ovirt.engine.ui.uicommonweb.models.ConsoleProtocol; import org.ovirt.engine.ui.uicommonweb.models.VmConsoles; import org.ovirt.engine.ui.uicommonweb.models.userportal.UserPortalBasicListModel; @@ -40,7 +41,11 @@ void setConsoleProtocol(String protocol); + void setConsoleConnectLinkEnabled(boolean enabled); + void setEditConsoleEnabled(boolean enabled); + + HasClickHandlers getConsoleConnectAnchor(); HasClickHandlers getEditButton(); @@ -53,6 +58,7 @@ private final ApplicationMessages messages; private final DynamicMessages dynamicMessages; + private final ErrorPopupManager errorPopupManager; private final Map<ConsoleProtocol, String> consoleTypeToName = new HashMap<ConsoleProtocol, String>(); @Inject @@ -61,10 +67,12 @@ final UserPortalBasicListProvider modelProvider, final ApplicationMessages messages, final DynamicMessages dynamicMessages, + final ErrorPopupManager errorPopupManager, final CommonApplicationConstants constants) { super(eventBus, view); this.messages = messages; this.dynamicMessages = dynamicMessages; + this.errorPopupManager = errorPopupManager; initConsoleTypeToNameMap(constants); @@ -72,6 +80,7 @@ listenOnDiskModelChangeEvent(modelProvider); + listenOnConsoleConnectAnchor(modelProvider); listenOnEditButton(modelProvider); listenOnConsoleClientResourcesAnchor(); @@ -86,6 +95,19 @@ } }); + } + + private void listenOnConsoleConnectAnchor(final UserPortalBasicListProvider modelProvider) { + registerHandler(getView().getConsoleConnectAnchor().addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + try { + modelProvider.getModel().getSelectedItem().getVmConsoles().connect(); + } catch (VmConsoles.ConsoleConnectException e) { + errorPopupManager.show(e.getLocalizedErrorMessage()); + } + } + })); } private void listenOnConsoleClientResourcesAnchor() { @@ -172,6 +194,7 @@ private void setupConsole(final UserPortalBasicListProvider modelProvider) { UserPortalItemModel item = modelProvider.getModel().getSelectedItem(); + getView().setConsoleConnectLinkEnabled(canConnectToConsole(item)); getView().setEditConsoleEnabled(isEditConsoleEnabled(item)); if (!item.getVmConsoles().canConnectToConsole()) { @@ -181,6 +204,14 @@ } } + private boolean canConnectToConsole(UserPortalItemModel item) { + if (item == null) { + return false; + } + + return item.getVmConsoles().canConnectToConsole(); + } + private String determineProtocolMessage(VmConsoles vmConsoles) { boolean smartcardEnabled = vmConsoles.getSelectedProcotol() == ConsoleProtocol.SPICE && vmConsoles.getVm().isSmartcardEnabled(); boolean smartcardOverriden = vmConsoles.getConsoleModel(SpiceConsoleModel.class).getspice().isSmartcardEnabledOverridden(); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java index e9bff8e..89b4071 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java @@ -94,6 +94,11 @@ @UiField @Ignore @WithElementId + Anchor consoleConnectAnchor; + + @UiField + @Ignore + @WithElementId Anchor editProtocolLink; @UiField(provided = true) @@ -151,6 +156,15 @@ } @Override + public void setConsoleConnectLinkEnabled(boolean enabled) { + if (enabled) { + consoleConnectAnchor.setStyleName(style.basicInfoDetailsLink()); + } else { + consoleConnectAnchor.setStyleName(style.basicInfoDetailsLinkDisabled()); + } + } + + @Override public void setEditConsoleEnabled(boolean enabled) { if (enabled) { editProtocolLink.setStyleName(style.basicInfoDetailsLink()); @@ -175,6 +189,10 @@ return consoleClientResourcesUrl; } + public HasClickHandlers getConsoleConnectAnchor() { + return consoleConnectAnchor; + } + @Override public void clear() { vmName.setText(null); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.ui.xml b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.ui.xml index 9b39ef5..8696b49 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.ui.xml +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.ui.xml @@ -159,6 +159,7 @@ } .consoleLabel, .clientResourcesLink { + float: left; font-family: Arial, sans-serif; color: #3A5F7C; text-align: left; @@ -172,6 +173,7 @@ } .clientResourcesLink { + clear: left; font-size: 15px; } </ui:style> @@ -234,12 +236,13 @@ </g:FlowPanel> <g:FlowPanel addStyleNames="{style.detailsRow}"> <g:Image resource='{resources.basicConsoleIcon}' addStyleNames="{style.rowIcon}" /> - <g:FlowPanel addStyleNames="{style.leftConsolePanel}"> - <g:Label text="{constants.consoleBasicDetails} : " addStyleNames="{style.consoleLabel}" /> - <g:Anchor ui:field="consoleClientResourcesUrl" styleName="{style.clientResourcesLink}"/> - </g:FlowPanel> - <g:Anchor ui:field="editProtocolLink" text="({constants.editBasicDetails})" addStyleNames="{style.basicInfoDetailsLinkDisabled}"/> - <g:Label ui:field="protocolMessage" /> + <g:FlowPanel addStyleNames="{style.leftConsolePanel}"> + <g:Label text="{constants.consoleBasicDetails} : " addStyleNames="{style.consoleLabel}" /> + <g:Anchor ui:field="consoleConnectAnchor" text="{constants.connect}" addStyleNames="{style.consoleLabel}" /> + <g:Anchor ui:field="consoleClientResourcesUrl" styleName="{style.clientResourcesLink}"/> + </g:FlowPanel> + <g:Anchor ui:field="editProtocolLink" text="({constants.editBasicDetails})" addStyleNames="{style.basicInfoDetailsLinkDisabled}"/> + <g:Label ui:field="protocolMessage" /> </g:FlowPanel> </g:FlowPanel> </g:layer> -- To view, visit http://gerrit.ovirt.org/26110 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I758d487360de8812539e98da3fd8eae68b243edf Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
