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

Reply via email to