From d67db8a90a931d95131a7ce424b9c7f5044d9f9d Mon Sep 17 00:00:00 2001 From: perploug Date: Wed, 20 Nov 2013 14:37:28 +0100 Subject: [PATCH] Fixes ctrl+s hotkeys in legacy editors --- .../lib/umbraco/compat.js | 38 +------------------ .../Application/UmbracoApplicationActions.js | 25 ++++++++++-- 2 files changed, 22 insertions(+), 41 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/lib/umbraco/compat.js b/src/Umbraco.Web.UI.Client/lib/umbraco/compat.js index 3cc91174e8..873f8ecbe0 100644 --- a/src/Umbraco.Web.UI.Client/lib/umbraco/compat.js +++ b/src/Umbraco.Web.UI.Client/lib/umbraco/compat.js @@ -28,18 +28,6 @@ UmbClientMgr.closeModalWindow(undefined); }); - - $.ctrl("S", function(){ - var link = $(".umb-panel-header .btn-primary"); - - //this is made of bad, to work around webforms horrible wiring - if(!link.hasClass("client-side") && link.attr("href").indexOf("javascript:") == 0){ - eval(link.attr('href').replace('javascript:','')); - }else{ - link.click(); - } - }); - }); function scaleScrollables(selector) { @@ -55,29 +43,5 @@ }); } - $.ctrl = function(key, callback, args) { - var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0; - var isCtrl = false; - - $(document).keydown(function(e) { - if(!args) args=[]; // IE barks when args is null - var modKey = isMac ? e.metaKey : e.ctrlKey; - //if(modKey){ - // isCtrl = true; - //} - - if(modKey && e.keyCode == key.charCodeAt(0)) { - callback.apply(this, args); - return false; - } - - }); - - /*.keyup(function(e) { - var modKey = isMac ? e.metaKey : e.ctrlKey; - if(modKey){ - isCtrl = false; - } - }); */ - }; + })(jQuery); \ No newline at end of file diff --git a/src/Umbraco.Web.UI/umbraco_client/Application/UmbracoApplicationActions.js b/src/Umbraco.Web.UI/umbraco_client/Application/UmbracoApplicationActions.js index 1b0acc0150..fb0c0f7a91 100644 --- a/src/Umbraco.Web.UI/umbraco_client/Application/UmbracoApplicationActions.js +++ b/src/Umbraco.Web.UI/umbraco_client/Application/UmbracoApplicationActions.js @@ -87,18 +87,35 @@ Umbraco.Application.Actions = function () { }, submitDefaultWindow: function () { + if (!this._isSaving) { this._isSaving = true; - jQuery(".editorIcon[id*=save]:first, .editorIcon:input:image[id*=Save]:first").click(); + + //v6 way + var link = jQuery(".btn[id*=save]:first, .editorIcon[id*=save]:first, .editorIcon:input:image[id*=Save]:first"); + + //var link = $(".umb-panel-header .btn-primary"); + + //this is made of bad, to work around webforms horrible wiring + if(!link.hasClass("client-side") && link.attr("href").indexOf("javascript:") == 0){ + eval(link.attr('href').replace('javascript:','')); + }else{ + link.click(); + } } this._isSaving = false; return false; }, bindSaveShortCut: function () { - jQuery(document).bind('keydown', 'ctrl+s', function (evt) { UmbClientMgr.appActions().submitDefaultWindow(); return false; }); - jQuery(":input").bind('keydown', 'ctrl+s', function (evt) { UmbClientMgr.appActions().submitDefaultWindow(); return false; }); - jQuery(document).bind('UMBRACO_TINYMCE_SAVE', function (evt, orgEvent) { UmbClientMgr.appActions().submitDefaultWindow(); return false; }); + alert("mac"); + var keys = "ctrl+s"; + if (navigator.platform.toUpperCase().indexOf('MAC') >= 0) { + keys = "meta+s"; + } + + jQuery(document).bind('keydown', keys, function (evt) { UmbClientMgr.appActions().submitDefaultWindow(); return false; }); + jQuery(":input").bind('keydown', keys, function (evt) { UmbClientMgr.appActions().submitDefaultWindow(); return false; }); }, shiftApp: function (whichApp, appName) {