Frank Kobzik has uploaded a new change for review. Change subject: frontend: ctrl-alt-delete changes ......................................................................
frontend: ctrl-alt-delete changes this patch - removes "pass c-a-d to vm" from console options as this option doesn't behave well on windows > xp - adds a function "remap c-a-d to control-alt-end" for spice and vnc Change-Id: I0ef2c0a2c071cafa13ec90a10635ea61b78344a1 Signed-off-by: Frantisek Kobzik <fkob...@redhat.com> Bug-Url: https://bugzilla.redhat.com/1029441 --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.ui.xml M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_de_DE.properties M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_es_ES.properties M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_fr_FR.properties M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ja_JP.properties M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ko_KR.properties M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_pt_BR.properties M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_zh_CN.properties M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java 24 files changed, 210 insertions(+), 121 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/21174/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 2418a9e..61a686b 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 @@ -1367,9 +1367,6 @@ @DefaultStringValue("SPICE HTML5 browser client (Tech preview)") String spiceHtml5(); - @DefaultStringValue("Pass Ctrl-Alt-Del to virtual machine") - String ctrlAltDel(); - @DefaultStringValue("Enable USB Auto-Share") String usbAutoshare(); @@ -1378,9 +1375,6 @@ @DefaultStringValue("Enable SPICE Proxy") String enableSpiceProxy(); - - @DefaultStringValue("Ctrl-Alt-Del is always passed for this client OS") - String ctrlAltDeletIsNotSupportedOnWindows(); @DefaultStringValue("Your browser doesn't support SPICE plugin") String spicePluginNotSupportedByBrowser(); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java index ab015b7..676232c 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java @@ -131,4 +131,7 @@ @DefaultMessage("Role: {0} on User {1}") SafeHtml roleOnUser(String roleName, String userName); + + @DefaultMessage("Map control-alt-del shortcut to {0}") + String remapCtrlAltDelete(String hotkey); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java index 03a291c..11e443b 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java @@ -98,8 +98,6 @@ void setDisableSmartcardVisible(boolean visible); - void setCtrlAltDelEnabled(boolean enabled, String reason); - void setSpiceProxyEnabled(boolean enabled, String reason); void selectVncImplementation(VncConsoleModel.ClientConsoleMode clientConsoleMode); @@ -110,6 +108,7 @@ void flushToPrivateModel(); + void setCtrlAltDeleteRemapHotkey(String hotkey); } private final ConsoleUtils consoleUtils; @@ -146,6 +145,7 @@ String vmName = model.getModel().getVM().getName(); getView().setVmName(vmName); + getView().setCtrlAltDeleteRemapHotkey(consoleUtils.getRemapCtrlAltDelHotkey()); super.init(model); } @@ -258,9 +258,6 @@ getView().setAdditionalConsoleAvailable(rdpAvailable); getView().setSpiceConsoleAvailable(currentItem.getDefaultConsoleModel() instanceof SpiceConsoleModel); - - boolean ctrlAltDelEnabled = consoleUtils.isCtrlAltDelEnabled(); - getView().setCtrlAltDelEnabled(ctrlAltDelEnabled, constants.ctrlAltDeletIsNotSupportedOnWindows()); boolean spiceProxyEnabled = consoleUtils.isSpiceProxyDefined(); getView().setSpiceProxyEnabled(spiceProxyEnabled, constants.spiceProxyCanBeEnabledOnlyWhenDefined()); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java index 0579f96..0d03431 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java @@ -4,6 +4,8 @@ import java.util.List; import org.ovirt.engine.core.compat.Version; +import org.ovirt.engine.ui.uicommonweb.ConsoleUtils; +import org.ovirt.engine.ui.uicommonweb.TypeResolver; import org.ovirt.engine.ui.uicommonweb.models.vms.SpiceConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.WANDisableEffects; import org.ovirt.engine.ui.uicommonweb.models.vms.WanColorDepth; @@ -47,6 +49,7 @@ protected String menu; protected String guestID; protected boolean noTaskMgrExecution; + protected boolean remapCtrlAltDelete; protected boolean sendCtrlAltDelete; protected boolean usbAutoShare; protected String usbFilter; @@ -65,14 +68,15 @@ // even the spice proxy is globally configured, user can choose to disable it for specific VM private boolean spiceProxyEnabled; + private final ConsoleUtils consoleUtils = (ConsoleUtils) TypeResolver.getInstance().resolve(ConsoleUtils.class); + public AbstractSpice() { setWANDisableEffects(new ArrayList<WANDisableEffects>()); setWanOptionsEnabled(false); setWANColorDepth(WanColorDepth.depth16); - - // send the ctrl + alt + delete by default - setSendCtrlAltDelete(true); - setNoTaskMgrExecution(true); + setRemapCtrlAltDel(true); + setNoTaskMgrExecution(false); + setSendCtrlAltDelete(false); } public void setWANDisableEffects(List<WANDisableEffects> disableEffects) { @@ -314,12 +318,20 @@ this.noTaskMgrExecution = noTaskMgrExecution; } + public boolean isRemapCtrlAltDel() { + return remapCtrlAltDelete; + } + + public void setRemapCtrlAltDel(boolean remapCtrlAltDelete) { + this.remapCtrlAltDelete = remapCtrlAltDelete; + } + public boolean getSendCtrlAltDelete() { return sendCtrlAltDelete; } - public void setSendCtrlAltDelete(boolean sendCtrlAltDelete) { - this.sendCtrlAltDelete = sendCtrlAltDelete; + public void setSendCtrlAltDelete(boolean value) { + this.sendCtrlAltDelete = value; } public boolean getUsbAutoShare() { @@ -417,4 +429,8 @@ return spiceProxyEnabled; } + protected String getSecureAttentionMapping() { + return consoleUtils.getRemapCtrlAltDelHotkey(); + } + } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java index 429a83a..4b48694 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java @@ -1,11 +1,22 @@ package org.ovirt.engine.ui.common.uicommon; +import org.ovirt.engine.ui.uicommonweb.ConsoleUtils; +import org.ovirt.engine.ui.uicommonweb.TypeResolver; + public class AbstractVnc { private String vncHost; private String vncPort; private String ticket; private String title; + private boolean remapCtrlAltDelete; + + private final ConsoleUtils consoleUtils = (ConsoleUtils) TypeResolver.getInstance().resolve(ConsoleUtils.class); + + + public AbstractVnc() { + setRemapCtrlAltDelete(true); + } public String getTitle() { return title; @@ -39,4 +50,16 @@ this.ticket = ticket; } + public boolean isRemapCtrlAltDelete() { + return remapCtrlAltDelete; + } + + public void setRemapCtrlAltDelete(boolean remapCtrlAltDelete) { + this.remapCtrlAltDelete = remapCtrlAltDelete; + } + + protected String getSecureAttentionMapping() { + return consoleUtils.getRemapCtrlAltDelHotkey(); + } + } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java index b7ca3b1..b915054 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java @@ -1,6 +1,8 @@ package org.ovirt.engine.ui.common.uicommon; import org.ovirt.engine.core.compat.StringHelper; +import org.ovirt.engine.ui.uicommonweb.ConsoleUtils; +import org.ovirt.engine.ui.uicommonweb.TypeResolver; import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpiceNative; @@ -73,6 +75,10 @@ configBuilder.append("\nrelease-cursor=").append(getReleaseCursorHotKey()); //$NON-NLS-1$ } + if (isRemapCtrlAltDel() && !StringHelper.isNullOrEmpty(getSecureAttentionMapping())) { + configBuilder.append("\nsecure-attention=").append(getSecureAttentionMapping()); //$NON-NLS-1$ + } + if (!StringHelper.isNullOrEmpty(getSpiceProxy())) { configBuilder.append("\nproxy=").append(getSpiceProxy()); //$NON-NLS-1$ } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java index 343faeb..3c6404e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java @@ -1,5 +1,7 @@ package org.ovirt.engine.ui.common.uicommon; +import java.util.LinkedList; +import java.util.List; import java.util.logging.Logger; import org.ovirt.engine.core.compat.StringHelper; @@ -46,20 +48,37 @@ } public String getHotKeysAsString() { - if (StringHelper.isNullOrEmpty(getToggleFullscreenHotKey()) && StringHelper.isNullOrEmpty(getReleaseCursorHotKey())) { + List<String> hotKeysList = getHotKeysAsList(); + + if (hotKeysList.size() == 0) { return null; } - String comma = (!StringHelper.isNullOrEmpty(getReleaseCursorHotKey()) && !StringHelper.isNullOrEmpty(getToggleFullscreenHotKey())) ? "," //$NON-NLS-1$ - : ""; //$NON-NLS-1$ + StringBuilder hotKeysAsString = new StringBuilder(); + for (String hotkey : hotKeysList) { + hotKeysAsString.append(hotkey); + hotKeysAsString.append(","); // $NON-NLS-1$ + } - String releaseCursorKeysParameter = - StringHelper.isNullOrEmpty(getReleaseCursorHotKey()) ? "" : "release-cursor=" + getReleaseCursorHotKey(); //$NON-NLS-1$ //$NON-NLS-2$ + return hotKeysAsString.substring(0, hotKeysAsString.length() - 1); // chop last comma + } - String toggleFullScreenKeysParameter = - StringHelper.isNullOrEmpty(getToggleFullscreenHotKey()) ? "" : "toggle-fullscreen=" + getToggleFullscreenHotKey(); //$NON-NLS-1$ //$NON-NLS-2$ + private List<String> getHotKeysAsList() { + List<String> result = new LinkedList<String>(); - return releaseCursorKeysParameter + comma + toggleFullScreenKeysParameter; + if (!StringHelper.isNullOrEmpty(getReleaseCursorHotKey())) { + result.add("release-cursor=" + getReleaseCursorHotKey()); // $NON-NLS-1$ + } + + if (!StringHelper.isNullOrEmpty(getToggleFullscreenHotKey())) { + result.add("toggle-fullscreen=" + getToggleFullscreenHotKey()); // $NON-NLS-1$ + } + + if (isRemapCtrlAltDel() && !StringHelper.isNullOrEmpty(getSecureAttentionMapping())) { + result.add("secure-attention=" + getSecureAttentionMapping()); // $NON-NLS-1$ + } + + return result; } public native String loadActiveX(String id, String codebase, String classId) /*-{ diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java index 378706e..8824457 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.common.uicommon; +import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.IVnc; @@ -15,6 +16,10 @@ .append("\ndelete-this-file=1") //$NON-NLS-1$ .append("\ntitle=").append(getTitle()); //$NON-NLS-1$ + if (isRemapCtrlAltDelete() && !StringHelper.isNullOrEmpty(getSecureAttentionMapping())) { + configBuilder.append("\nsecure-attention=").append(getSecureAttentionMapping()); //$NON-NLS-1$ + } + ConsoleModel.makeConsoleConfigRequest("console.vv", "application/x-virt-viewer; charset=UTF-8", configBuilder.toString()); //$NON-NLS-1$ $NON-NLS-2$ } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java index 6b59aca..9299d29 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java @@ -21,15 +21,16 @@ // spice options private static final String SPICE_CLIENT_MODE = "_spiceClientMode"; //$NON-NLS-1$ - private static final String CTRL_ALT_DEL = "_ctrlAltDel"; //$NON-NLS-1$ private static final String OPEN_IN_FULL_SCREEN = "_openInFullScreen"; //$NON-NLS-1$ private static final String SMARTCARD_ENABLED_OVERRIDDEN = "_smartcardEnabledOverridden"; //$NON-NLS-1$ private static final String WAN_OPTIONS = "_wanOptions"; //$NON-NLS-1$ private static final String USB_AUTOSHARE = "_usbAutoshare"; //$NON-NLS-1$ private static final String SPICE_PROXY_ENABLED = "_spiceProxyEnabled"; //$NON-NLS-1$ + private static final String REMAP_CAD_SPICE = "_remapCtrlAltDelSpice"; //$NON-NLS-1$ // vnc options private static final String VNC_CLIENT_MODE = "_vncClientMode"; //$NON-NLS-1$ + private static final String REMAP_CAD_VNC = "_remapCtrlAltDelVnc"; //$NON-NLS-1$ // rdp options private static final String RDP_CLIENT_MODE = "_rdpClientMode"; //$NON-NLS-1$ @@ -102,6 +103,7 @@ try { asVncConsoleModel(model).setVncImplementation(VncConsoleModel.ClientConsoleMode .valueOf(clientStorage.getLocalItem(keyMaker.make(VNC_CLIENT_MODE)))); + asVncConsoleModel(model).getVncImpl().setRemapCtrlAltDelete(readBool(keyMaker.make(REMAP_CAD_VNC))); } catch (Exception e) { } } @@ -117,18 +119,19 @@ clientStorage.setLocalItem(keyMaker.make(SPICE_CLIENT_MODE), consoleModel.getClientConsoleMode().toString()); - storeBool(keyMaker.make(CTRL_ALT_DEL), spice.getSendCtrlAltDelete()); storeBool(keyMaker.make(OPEN_IN_FULL_SCREEN), spice.isFullScreen()); storeBool(keyMaker.make(SMARTCARD_ENABLED_OVERRIDDEN), spice.isSmartcardEnabledOverridden()); storeBool(keyMaker.make(WAN_OPTIONS), spice.isWanOptionsEnabled()); storeBool(keyMaker.make(USB_AUTOSHARE), spice.getUsbAutoShare()); storeBool(keyMaker.make(SPICE_PROXY_ENABLED), spice.isSpiceProxyEnabled()); + storeBool(keyMaker.make(REMAP_CAD_SPICE), spice.isRemapCtrlAltDel()); } private void storeVncData(HasConsoleModel model, KeyMaker keyMaker) { VncConsoleModel consoleModel = asVncConsoleModel(model); if (consoleModel != null) { clientStorage.setLocalItem(keyMaker.make(VNC_CLIENT_MODE), consoleModel.getClientConsoleMode().toString()); + storeBool(keyMaker.make(REMAP_CAD_VNC), consoleModel.getVncImpl().isRemapCtrlAltDelete()); } } @@ -168,10 +171,6 @@ ISpice spice = asSpice(model); - if (consoleUtils.isCtrlAltDelEnabled()) { - spice.setSendCtrlAltDelete(readBool(keyMaker.make(CTRL_ALT_DEL))); - } - if (consoleUtils.isWanOptionsAvailable(model)) { spice.setWanOptionsEnabled(readBool(keyMaker.make(WAN_OPTIONS))); } @@ -183,6 +182,7 @@ spice.setFullScreen(readBool(keyMaker.make(OPEN_IN_FULL_SCREEN))); spice.setOverrideEnabledSmartcard(readBool(keyMaker.make(SMARTCARD_ENABLED_OVERRIDDEN))); spice.setUsbAutoShare(readBool(keyMaker.make(USB_AUTOSHARE))); + spice.setRemapCtrlAltDel(readBool(keyMaker.make(REMAP_CAD_SPICE))); } protected ISpice asSpice(HasConsoleModel model) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java index e01fa8f..5273334 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java @@ -24,6 +24,8 @@ private final ClientAgentType clientAgentType; private final Configurator configurator; + private static final String SECURE_ATTENTION_MAPPING = "ctrl+alt+end";// $NON-NLS-1$ + @Inject public ConsoleUtilsImpl(Configurator configurator, CommonApplicationConstants constants) { this.configurator= configurator; @@ -138,29 +140,6 @@ return null; } - /** - * The ctrl+alt+del is enabled for all OS except windows newer than 7 - * @return false if and only if the client OS type is Windows 7 or newer otherwise returns true - */ - @Override - public boolean isCtrlAltDelEnabled() { - if (!configurator.isClientWindows()) { - return true; - } - - float ntVersion = extractNtVersion(getUserAgentString()); - - // For Windows 7 and Windows Server 2008 R2 it is NT 6.1 - // For Windows 8 and Windows Server 2012 it is NT 6.2 - // The passing of ctrl+alt+del is enabled only on windows older - // than Windows 7, so NT less than 6.1 - if (ntVersion >= 6.1f) { - return false; - } - - return true; - } - private float extractNtVersion(String userAgentType) { RegExp pattern = RegExp.compile(".*windows nt (\\d+\\.\\d+).*"); //$NON-NLS-1$ MatchResult matcher = pattern.exec(userAgentType.toLowerCase()); @@ -219,6 +198,11 @@ } @Override + public String getRemapCtrlAltDelHotkey() { + return SECURE_ATTENTION_MAPPING; + } + + @Override public boolean isBrowserPluginSupported(ConsoleProtocol protocol) { switch (protocol) { case SPICE: diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java index 449cf8a..81248df 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java @@ -16,6 +16,7 @@ import org.ovirt.engine.ui.uicommonweb.models.ConsoleProtocol; import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpice; +import org.ovirt.engine.ui.uicommonweb.models.vms.IVnc; import org.ovirt.engine.ui.uicommonweb.models.vms.RdpConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.SpiceConsoleModel; @@ -43,7 +44,7 @@ } interface Style extends CssResource { - String ctrlAltDelContentWidget(); + String remapCADContentWidget(); String consoleResourcesLink(); } @@ -83,7 +84,11 @@ @UiField(provided = true) @WithElementId - EntityModelValueCheckBoxEditor<ConsoleModel> ctrlAltDel; + EntityModelValueCheckBoxEditor<ConsoleModel> remapCtrlAltDeleteSpice; + + @UiField(provided = true) + @WithElementId + EntityModelValueCheckBoxEditor<ConsoleModel> remapCtrlAltDeleteVnc; @UiField(provided = true) @WithElementId @@ -222,21 +227,30 @@ }); wanEnabled.setLabel(constants.enableWanOptions()); - ctrlAltDel = new EntityModelValueCheckBoxEditor<ConsoleModel>(Align.RIGHT, new SpiceRenderer() { + remapCtrlAltDeleteSpice = new EntityModelValueCheckBoxEditor<ConsoleModel>(Align.RIGHT, new SpiceRenderer() { @Override protected void updateModel(ISpice spice, boolean value) { - spice.setSendCtrlAltDelete(value); - spice.setNoTaskMgrExecution(value); + spice.setRemapCtrlAltDel(value); } @Override protected boolean extractBoolean(ISpice spice) { - return spice.getSendCtrlAltDelete(); + return spice.isRemapCtrlAltDel(); } }); - ctrlAltDel.setLabel(constants.ctrlAltDel()); + remapCtrlAltDeleteVnc = new EntityModelValueCheckBoxEditor<ConsoleModel>(Align.RIGHT, new VncRenderer() { + @Override + protected void updateModel(IVnc vnc, boolean value) { + vnc.setRemapCtrlAltDelete(value); + } + + @Override + protected boolean extractBoolean(IVnc vnc) { + return vnc.isRemapCtrlAltDelete(); + } + }); enableUsbAutoshare = new EntityModelValueCheckBoxEditor<ConsoleModel>(Align.RIGHT, new SpiceRenderer() { @@ -319,7 +333,8 @@ rdpPanel.setVisible(false); clientConsoleResourcesUrl.asWidget().addStyleName(style.consoleResourcesLink()); - ctrlAltDel.getContentWidgetContainer().addStyleName(style.ctrlAltDelContentWidget()); + remapCtrlAltDeleteSpice.getContentWidgetContainer().addStyleName(style.remapCADContentWidget()); + remapCtrlAltDeleteVnc.getContentWidgetContainer().addStyleName(style.remapCADContentWidget()); asWidget().addStatusWidget(clientConsoleResourcesUrl); } @@ -331,7 +346,8 @@ ConsoleModel defaultConsole = model.getModel().getDefaultConsoleModel(); editCheckBoxes(defaultConsole, - ctrlAltDel, + remapCtrlAltDeleteSpice, + remapCtrlAltDeleteVnc, enableUsbAutoshare, openInFullScreen, enableSpiceProxy, @@ -365,13 +381,20 @@ } flushCheckBoxes( - ctrlAltDel, + remapCtrlAltDeleteSpice, + remapCtrlAltDeleteVnc, enableUsbAutoshare, openInFullScreen, enableSpiceProxy, useLocalDrives, wanEnabled, disableSmartcard); + } + + @Override + public void setCtrlAltDeleteRemapHotkey(String hotkey) { + remapCtrlAltDeleteSpice.setLabel(messages.remapCtrlAltDelete(hotkey)); + remapCtrlAltDeleteVnc.setLabel(messages.remapCtrlAltDelete(hotkey)); } private void setSelectedSpiceImpl() { @@ -551,9 +574,36 @@ protected abstract boolean extractBoolean(ISpice spice); } + private abstract class VncRenderer implements ValueCheckboxRenderer<ConsoleModel> { + + + @Override + public boolean render(ConsoleModel value) { + if (value instanceof VncConsoleModel) { + return extractBoolean(((VncConsoleModel) value).getVncImpl()); + } + + return false; + } + + @Override + public ConsoleModel read(boolean value, ConsoleModel model) { + if (model instanceof VncConsoleModel) { + updateModel(((VncConsoleModel) model).getVncImpl(), value); + } + + return model; + } + + protected abstract void updateModel(IVnc spice, boolean value); + + protected abstract boolean extractBoolean(IVnc spice); + } + + @Override public void setSpiceConsoleAvailable(boolean hasSpiceConsole) { - ctrlAltDel.setVisible(hasSpiceConsole); + remapCtrlAltDeleteSpice.setVisible(hasSpiceConsole); enableUsbAutoshare.setVisible(hasSpiceConsole); openInFullScreen.setVisible(hasSpiceConsole); } @@ -576,14 +626,6 @@ @Override public void setVmName(String vmName) { consoleTitle.setText(messages.selectConsoleFor(vmName)); - } - - @Override - public void setCtrlAltDelEnabled(boolean enabled, String reason) { - ctrlAltDel.setEnabled(enabled); - if (!enabled) { - ctrlAltDel.setTitle(reason); - } } @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.ui.xml index fa7d7cb..9e5dd57 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.ui.xml @@ -9,41 +9,41 @@ <ui:with field='constants' type='org.ovirt.engine.ui.common.CommonApplicationConstants' /> <ui:style type="org.ovirt.engine.ui.common.view.popup.ConsolePopupView.Style"> - .explanationLabel { - font-style: italic; - margin-left: 40px; - margin-bottom: 10px; - width: 300px; - } + .explanationLabel { + font-style: italic; + margin-left: 40px; + margin-bottom: 10px; + width: 300px; + } - .fullWidth { - width: 100%; - } + .fullWidth { + width: 100%; + } - .labelStyle { - font-size: 11px; - font-weight: bold; - color: #333333; - } + .labelStyle { + font-size: 11px; + font-weight: bold; + color: #333333; + } - .ctrlAltDelContentWidget { - width: 300px; - } + .remapCADContentWidget { + width: 300px; + } - .protocolRadioButton { - float:left; - display:inline; - } + .protocolRadioButton { + float: left; + display: inline; + } - .protocolPanel { - float: left; + .protocolPanel { + float: left; width: 90%; - } + } .consoleResourcesLink { margin-left: 12px; - } - </ui:style> + } + </ui:style> <d:SimpleDialogPanel width="500px" height="420px"> <d:content> @@ -65,7 +65,7 @@ <e:EntityModelRadioButtonEditor ui:field="spiceHtml5ImplRadioButton" title="{constants.spiceInvokeHtml5}"/> <g:Label ui:field="spiceTitle" text="{constants.spiceOptions}" addStyleNames="{style.labelStyle}" /> - <w:EntityModelValueCheckBoxEditor ui:field="ctrlAltDel" /> + <w:EntityModelValueCheckBoxEditor ui:field="remapCtrlAltDeleteSpice" /> <w:EntityModelValueCheckBoxEditor ui:field="enableUsbAutoshare" /> <w:EntityModelValueCheckBoxEditor ui:field="openInFullScreen" /> <w:EntityModelValueCheckBoxEditor ui:field="enableSpiceProxy" /> @@ -83,6 +83,7 @@ <g:Label text="{constants.consoleInvocation}" addStyleNames="{style.labelStyle}" /> <e:EntityModelRadioButtonEditor ui:field="vncNativeImplRadioButton" title="{constants.nativeClient}"/> <e:EntityModelRadioButtonEditor ui:field="noVncImplRadioButton" title="{constants.noVnc}"/> + <w:EntityModelValueCheckBoxEditor ui:field="remapCtrlAltDeleteVnc" /> </g:FlowPanel> <g:FlowPanel ui:field="rdpPanel" addStyleNames="{style.protocolPanel}"> diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_de_DE.properties b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_de_DE.properties index 4490ec6..ee77d6e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_de_DE.properties +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_de_DE.properties @@ -103,7 +103,7 @@ cpuSocketsVmPopup=CPU Sockets createSnapshot=Erstellen creationDateDisk=Erstellungsdatum -ctrlAltDel=\u00DCbergabe von Strg-Alt-Del zur virtuellen Maschine +remapCtrlAltDelete=\u00DCbergabe von Strg-Alt-Del zur virtuellen Maschine ctrlAltDeletIsNotSupportedOnWindows=Ctrl-Alt-Del wird immer f\u00FCr dieses Client OS weitergegeben currentQuota=Aktuell currentSnapshotLabel=Aktuell diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_es_ES.properties b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_es_ES.properties index 57599c9..31bc67a 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_es_ES.properties +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_es_ES.properties @@ -140,7 +140,7 @@ createSnapshot=Crear # auto translated by TM merge creationDateDisk=Fecha de creaci\u00F3n -ctrlAltDel=Pulse Ctrl-Alt-Borrar para la m\u00E1quina virtual +remapCtrlAltDelete=Pulse Ctrl-Alt-Borrar para la m\u00E1quina virtual ctrlAltDeletIsNotSupportedOnWindows=Siempre se pasaCtrl-Alt-Borr para el SO de este cliente currentQuota=Actual # auto translated by TM merge diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_fr_FR.properties b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_fr_FR.properties index 3335c93..e2a0fe6 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_fr_FR.properties +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_fr_FR.properties @@ -110,7 +110,7 @@ # auto translated by TM merge createSnapshot=Cr\u00E9er creationDateDisk=Date de cr\u00E9ation -ctrlAltDel=Passer Ctrl-Alt-Del \u00E0 la machine virtuelle +remapCtrlAltDelete=Passer Ctrl-Alt-Del \u00E0 la machine virtuelle ctrlAltDeletIsNotSupportedOnWindows=Ctrl-Alt-Del est toujours pass\u00E9 pour ce Client OS currentQuota=En cours currentSnapshotLabel=En cours diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ja_JP.properties b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ja_JP.properties index 75c3a5e..16d3870 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ja_JP.properties +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ja_JP.properties @@ -103,7 +103,7 @@ cpuSocketsVmPopup=CPU \u30BD\u30B1\u30C3\u30C8 createSnapshot=\u4F5C\u6210 creationDateDisk=\u4F5C\u6210\u65E5 -ctrlAltDel=\u4EEE\u60F3\u30DE\u30B7\u30F3\u306B Ctrl-Alt-Del \u3092\u9001\u4FE1\u3059\u308B +remapCtrlAltDelete=\u4EEE\u60F3\u30DE\u30B7\u30F3\u306B Ctrl-Alt-Del \u3092\u9001\u4FE1\u3059\u308B ctrlAltDeletIsNotSupportedOnWindows=\u3053\u306E\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u3067\u306F Ctrl-Alt-Del \u3092\u5E38\u306B\u9001\u4FE1 currentQuota=\u73FE\u5728 currentSnapshotLabel=\u73FE\u5728 diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ko_KR.properties b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ko_KR.properties index 68ec3b1..74b8170 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ko_KR.properties +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_ko_KR.properties @@ -56,7 +56,7 @@ createSnapshot=\uC0DD\uC131 creationDateDisk=\uC0DD\uC131 \uC77C\uC790 # translation auto-copied from project oVirt, version master, document frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/org.ovirt.engine.ui.userportal.ApplicationConstants, author Junwan Park -ctrlAltDel=\uAC00\uC0C1\uBA38\uC2E0\uC5D0 Ctrl-Alt-Del \uC804\uC1A1 +remapCtrlAltDelete=\uAC00\uC0C1\uBA38\uC2E0\uC5D0 Ctrl-Alt-Del \uC804\uC1A1 currentQuota=\uD604\uC7AC currentSnapshotLabel=\uD604\uC7AC customEventIdEvent=\uC0AC\uC6A9\uC790 \uC815\uC758 \uC774\uBC34\uD2B8 ID diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_pt_BR.properties b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_pt_BR.properties index 3e44867..56ffa93 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_pt_BR.properties +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_pt_BR.properties @@ -142,7 +142,7 @@ createSnapshot=Criar # auto translated by TM merge from project: oVirt, version: master, DocId: frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/org.ovirt.engine.ui.webadmin.ApplicationConstants creationDateDisk=Data da Cria\u00E7\u00E3o -ctrlAltDel=Efetuar Ctrl-Alt-Del \u00E0 m\u00E1quina virtual +remapCtrlAltDelete=Efetuar Ctrl-Alt-Del \u00E0 m\u00E1quina virtual ctrlAltDeletIsNotSupportedOnWindows=Ctrl-Alt-Del \u00E9 sempre passado a estes clientes OS # auto translated by TM merge from project: oVirt, version: master, DocId: frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/org.ovirt.engine.ui.webadmin.ApplicationConstants currentQuota=Atual diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_zh_CN.properties b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_zh_CN.properties index 2e6d388..f202e00 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_zh_CN.properties +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/CommonApplicationConstants_zh_CN.properties @@ -144,7 +144,7 @@ createSnapshot=\u521B\u5EFA # auto translated by TM merge creationDateDisk=\u521B\u5EFA\u65E5\u671F -ctrlAltDel=\u4F20\u9012 Ctrl-Alt-Del \u7ED9\u865A\u62DF\u673A +remapCtrlAltDelete=\u4F20\u9012 Ctrl-Alt-Del \u7ED9\u865A\u62DF\u673A ctrlAltDeletIsNotSupportedOnWindows=Ctrl-Alt-Del \u603B\u662F\u4F20\u9012\u7ED9\u8FD9\u4E2A\u5BA2\u6237\u64CD\u4F5C\u7CFB\u7EDF # auto translated by TM merge currentQuota=\u5F53\u524D\u7684 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java index 990b92b2..08b5578 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java @@ -18,12 +18,6 @@ public boolean canShowConsole(ConsoleProtocol selectedProtocol, HasConsoleModel item); /** - * The ctrl+alt+del is enabled for all OS except windows newer than 7 - * @return false if and only if the client OS type is Windows 7 or newer otherwise returns true - */ - public boolean isCtrlAltDelEnabled(); - - /** * Returns true if the smartcard is enabled for the specific VM entity (edit VM popup) */ public boolean isSmartcardGloballyEnabled(HasConsoleModel item); @@ -40,4 +34,7 @@ public boolean isSpiceProxyDefined(); public boolean isWebSocketProxyDefined(); + + public String getRemapCtrlAltDelHotkey(); + } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java index c2fd62d..ced3405 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java @@ -115,6 +115,10 @@ void setNoTaskMgrExecution(boolean value); + boolean isRemapCtrlAltDel(); + + void setRemapCtrlAltDel(boolean value); + boolean getSendCtrlAltDelete(); void setSendCtrlAltDelete(boolean value); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java index 3d58739..a597437 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java @@ -6,6 +6,8 @@ void setVncPort(String port); void setTicket(String ticket); void setTitle(String title); + boolean isRemapCtrlAltDelete(); + void setRemapCtrlAltDelete(boolean remapCtrlAltDelete); void invokeClient(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java index 0e8a7af..f33f54f 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java @@ -34,7 +34,6 @@ import org.ovirt.engine.ui.frontend.Frontend; import org.ovirt.engine.ui.frontend.INewAsyncCallback; import org.ovirt.engine.ui.uicommonweb.BaseCommandTarget; -import org.ovirt.engine.ui.uicommonweb.ConsoleUtils; import org.ovirt.engine.ui.uicommonweb.ILogger; import org.ovirt.engine.ui.uicommonweb.TypeResolver; import org.ovirt.engine.ui.uicommonweb.UICommand; @@ -155,13 +154,6 @@ // If it is not windows or SPICE guest agent is not installed, make sure the WAN options are disabled. if (!AsyncDataProvider.isWindowsOsType(getEntity().getVmOsId()) || !getEntity().getHasSpiceDriver()) { getspice().setWanOptionsEnabled(false); - } - - // make sure to not send the ctrl+alt+delete and TaskMgrExecution if not supported - ConsoleUtils consoleUtils = (ConsoleUtils) TypeResolver.getInstance().resolve(ConsoleUtils.class); - if (!consoleUtils.isCtrlAltDelEnabled()) { - getspice().setSendCtrlAltDelete(false); - getspice().setNoTaskMgrExecution(false); } UICommand setVmTicketCommand = new UICommand("setVmCommand", new BaseCommandTarget() { //$NON-NLS-1$ diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java index f849059..a1be177 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java @@ -60,6 +60,10 @@ this.vncImpl = (IVnc) TypeResolver.getInstance().resolve(implClass); } + public IVnc getVncImpl() { + return vncImpl; + } + public ClientConsoleMode getClientConsoleMode() { return consoleMode; } -- To view, visit http://gerrit.ovirt.org/21174 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0ef2c0a2c071cafa13ec90a10635ea61b78344a1 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <fkob...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches