From 6f25a990d02fcce47c5839d8478a3cd576768110 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Tue, 28 Jan 2014 23:29:12 +0000 Subject: [PATCH] TinyMCE: fix Ctrl + s shortcut (trigger autosave), see #24067. Built from https://develop.svn.wordpress.org/trunk@27052 git-svn-id: http://core.svn.wordpress.org/trunk@26926 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../js/tinymce/plugins/wordpress/plugin.js | 4 ++-- .../tinymce/plugins/wordpress/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 117804 -> 117808 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/wp-includes/js/tinymce/plugins/wordpress/plugin.js b/wp-includes/js/tinymce/plugins/wordpress/plugin.js index 8529c483e1..670a59c1e8 100644 --- a/wp-includes/js/tinymce/plugins/wordpress/plugin.js +++ b/wp-includes/js/tinymce/plugins/wordpress/plugin.js @@ -368,8 +368,8 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) { editor.addShortcut( modKey + '+h', '', 'WP_Help' ); editor.addShortcut( modKey + '+p', '', 'WP_Page' ); editor.addShortcut( 'ctrl+s', '', function() { - if ( typeof autosave === 'function' ) { - autosave(); + if ( typeof wp !== 'undefined' && wp.autosave ) { + wp.autosave.server.triggerSave(); } }); diff --git a/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js b/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js index 41b78e665f..6bdfdd2a1d 100644 --- a/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js @@ -1 +1 @@ -tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f),"hide"===b?(setUserSetting("hidetb","1"),g&&g.active(!1)):(setUserSetting("hidetb","0"),g&&g.active(!0))))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return''})}function d(a){return a.replace(/]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this}}),a.on("PostRender",function(){"1"===getUserSetting("hidetb","1")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(a){a.content&&(-1!==a.content.indexOf("/g,function(a,b){return''})),-1!==a.content.indexOf("")&&(a.content=a.content.replace(//g,'')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/]+>/g,function(a){var b,c="";return-1!==a.indexOf("wp-more-tag")&&(-1!==a.indexOf("mce-wp-more")?((b=a.match(/data-wp-more="([^"]+)"/))&&(c=b[1]),a=""):-1!==a.indexOf("mce-wp-nextpage")&&(a="")),a}))}),a.on("ResolveName",function(b){var c=a.dom,d=b.target;"IMG"===d.nodeName&&c.hasClass(d,"wp-more-tag")&&(c.hasClass(d,"mce-wp-more")?b.name="more":c.hasClass(d,"mce-wp-nextpage")&&(b.name="nextpage"))}),a.on("PreProcess",function(b){var c;b.save&&(c=a.dom.select("img.wp-more-tag",b.node),c.length&&tinymce.each(c,function(b){var c,d=b.parentNode;"P"===d.nodeName&&d.childNodes.length>1&&(c=a.dom.create("p"),d.parentNode.insertBefore(c,d),c.appendChild(b))}))}),a.addCommand("WP_More",function(b){var c,d,e,f,g,h="wp-more-tag",i=tinymce.Env.ie?"":'
',j=a.dom,k=a.selection.getNode();return b=b||"more",h+=" mce-wp-"+b,e="more"===b?"More...":"Next Page",d='',"BODY"===k.nodeName?(a.insertContent("

"+d+"

"),void 0):(c=j.getParent(k,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),c&&(f=j.create("p",null,d),j.insertAfter(f,c),(g=f.nextSibling)||(g=j.create("p",null,i),j.insertAfter(g,f)),a.nodeChanged(),a.selection.setCursorLocation(g,0)),void 0)}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",width:450,height:420,inline:1})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Help",cmd:"WP_Help"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getBody();"rtl"===a.getParam("directionality")&&c.push("rtl"),b.ie&&(9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7")),c.push("wp-editor"),tinymce.each(c,function(b){b&&a.dom.addClass(d,b)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,""))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a])}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return a.isHidden()?(b.content=b.element.value,void 0):(b.content=b.content.replace(/

(
|\u00a0|\uFEFF)?<\/p>/g,"

 

"),a.getParam("wpautop",!0)&&"undefined"!=typeof switchEditors&&(b.content=switchEditors.pre_wpautop(b.content)),void 0)}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+a","","WP_Link"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut("ctrl+s","",function(){"function"==typeof autosave&&autosave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}}); \ No newline at end of file +tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f),"hide"===b?(setUserSetting("hidetb","1"),g&&g.active(!1)):(setUserSetting("hidetb","0"),g&&g.active(!0))))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return''})}function d(a){return a.replace(/]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this}}),a.on("PostRender",function(){"1"===getUserSetting("hidetb","1")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(a){a.content&&(-1!==a.content.indexOf("/g,function(a,b){return''})),-1!==a.content.indexOf("")&&(a.content=a.content.replace(//g,'')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/]+>/g,function(a){var b,c="";return-1!==a.indexOf("wp-more-tag")&&(-1!==a.indexOf("mce-wp-more")?((b=a.match(/data-wp-more="([^"]+)"/))&&(c=b[1]),a=""):-1!==a.indexOf("mce-wp-nextpage")&&(a="")),a}))}),a.on("ResolveName",function(b){var c=a.dom,d=b.target;"IMG"===d.nodeName&&c.hasClass(d,"wp-more-tag")&&(c.hasClass(d,"mce-wp-more")?b.name="more":c.hasClass(d,"mce-wp-nextpage")&&(b.name="nextpage"))}),a.on("PreProcess",function(b){var c;b.save&&(c=a.dom.select("img.wp-more-tag",b.node),c.length&&tinymce.each(c,function(b){var c,d=b.parentNode;"P"===d.nodeName&&d.childNodes.length>1&&(c=a.dom.create("p"),d.parentNode.insertBefore(c,d),c.appendChild(b))}))}),a.addCommand("WP_More",function(b){var c,d,e,f,g,h="wp-more-tag",i=tinymce.Env.ie?"":'
',j=a.dom,k=a.selection.getNode();return b=b||"more",h+=" mce-wp-"+b,e="more"===b?"More...":"Next Page",d='',"BODY"===k.nodeName?(a.insertContent("

"+d+"

"),void 0):(c=j.getParent(k,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),c&&(f=j.create("p",null,d),j.insertAfter(f,c),(g=f.nextSibling)||(g=j.create("p",null,i),j.insertAfter(g,f)),a.nodeChanged(),a.selection.setCursorLocation(g,0)),void 0)}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",width:450,height:420,inline:1})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Help",cmd:"WP_Help"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getBody();"rtl"===a.getParam("directionality")&&c.push("rtl"),b.ie&&(9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7")),c.push("wp-editor"),tinymce.each(c,function(b){b&&a.dom.addClass(d,b)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/

\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,""))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a])}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return a.isHidden()?(b.content=b.element.value,void 0):(b.content=b.content.replace(/

(
|\u00a0|\uFEFF)?<\/p>/g,"

 

"),a.getParam("wpautop",!0)&&"undefined"!=typeof switchEditors&&(b.content=switchEditors.pre_wpautop(b.content)),void 0)}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+a","","WP_Link"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut("ctrl+s","",function(){"undefined"!=typeof wp&&wp.autosave&&wp.autosave.server.triggerSave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}}); \ No newline at end of file diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index 61786372cf3cc0f924c2bd5d75cc68dffe4ad3b3..ab6704561c7696f003f6e002c1f603abe5283ad6 100644 GIT binary patch delta 4561 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 vYHbCK4(eeAID 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