From bf88b244cdb067ffc371ca20bb2da7a2195b2b95 Mon Sep 17 00:00:00 2001 From: azaozz Date: Mon, 4 May 2009 10:34:50 +0000 Subject: [PATCH] Hide text while editor is loading, show html editor on error git-svn-id: http://svn.automattic.com/wordpress/trunk@11171 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/admin-header.php | 2 +- wp-admin/includes/post.php | 6 ++-- wp-admin/js/editor.dev.js | 57 ++++++++++++++++---------------- wp-admin/js/editor.js | 2 +- wp-admin/wp-admin.css | 9 +++-- wp-includes/general-template.php | 51 ++++++++++++++-------------- wp-includes/script-loader.php | 2 +- 7 files changed, 68 insertions(+), 61 deletions(-) diff --git a/wp-admin/admin-header.php b/wp-admin/admin-header.php index bc4af483f5..2898199cc2 100644 --- a/wp-admin/admin-header.php +++ b/wp-admin/admin-header.php @@ -40,7 +40,7 @@ var pagenow = ''; 'none', - 'onpageload' => 'switchEditors.edInit', + 'mode' => 'specific_textareas', + 'editor_selector' => 'theEditor', 'width' => '100%', 'theme' => 'advanced', 'skin' => 'wp_theme', @@ -1334,7 +1334,7 @@ function wp_tiny_mce( $teeny = false ) { $language = $initArray['language']; $zip = $compress_scripts ? 1 : 0; - $ver = apply_filters('tiny_mce_version', '3211'); + $ver = apply_filters('tiny_mce_version', '323'); if ( 'en' != $language ) include_once(ABSPATH . WPINC . '/js/tinymce/langs/wp-langs.php'); diff --git a/wp-admin/js/editor.dev.js b/wp-admin/js/editor.dev.js index 2fd9157209..17c01928e7 100644 --- a/wp-admin/js/editor.dev.js +++ b/wp-admin/js/editor.dev.js @@ -1,4 +1,16 @@ +jQuery(document).ready(function($){ + var h = wpCookies.getHash('TinyMCE_content_size'); + + if ( getUserSetting( 'editor' ) == 'html' ) { + if ( h ) + $('#content').css('height', h.ch - 15 + 'px'); + } else { + $('#content').css('color', 'white'); + $('#quicktags').hide(); + } +}); + var switchEditors = { mode : '', @@ -8,18 +20,6 @@ var switchEditors = { }, edInit : function() { - var h = tinymce.util.Cookie.getHash("TinyMCE_content_size"); - - // Activate TinyMCE if it's the user's default editor - if ( getUserSetting( 'editor' ) == 'html' ) { - if ( h ) - try { this.I('content').style.height = h.ch - 30 + 'px'; } catch(e){}; - } else { - try { - this.I("quicktags").style.display = "none"; - } catch(e){}; - tinyMCE.execCommand("mceAddControl", false, "content"); - } }, saveCallback : function(el, content, body) { @@ -94,43 +94,44 @@ var switchEditors = { id = id || 'content'; mode = mode || this.mode || ''; - var ed = tinyMCE.get(id) || false, qt = this.I('quicktags'), H = this.I('edButtonHTML'), P = this.I('edButtonPreview'), ta = this.I(id); + var ed, qt = this.I('quicktags'), H = this.I('edButtonHTML'), P = this.I('edButtonPreview'), ta = this.I(id); + + try { ed = tinyMCE.get(id); } + catch(e) { ed = false; } if ( 'tinymce' == mode ) { - if ( ed && ! ed.isHidden() ) return false; + setUserSetting( 'editor', 'tinymce' ); this.mode = 'html'; - ta.style.color = '#fff'; P.className = 'active'; H.className = ''; edCloseAllTags(); // :-( - qt.style.display = 'none'; ta.value = this.wpautop(ta.value); - if ( ed ) ed.show(); - else tinyMCE.execCommand("mceAddControl", false, id); - - setUserSetting( 'editor', 'tinymce' ); + if ( ed ) { + ed.show(); + } else { + try{tinyMCE.execCommand("mceAddControl", false, id);} + catch(e){} + } } else { - if ( ! ed || ed.isHidden() ) - return false; - + setUserSetting( 'editor', 'html' ); + ta.style.color = '#000'; this.mode = 'tinymce'; H.className = 'active'; P.className = ''; - ta.style.height = ed.getContentAreaContainer().offsetHeight + 6 + 'px'; + if ( ed && !ed.isHidden() ) { + ta.style.height = ed.getContentAreaContainer().offsetHeight + 24 + 'px'; + ed.hide(); + } - ed.hide(); qt.style.display = 'block'; - - ta.style.color = ''; - setUserSetting( 'editor', 'html' ); } return false; }, diff --git a/wp-admin/js/editor.js b/wp-admin/js/editor.js index 15279f0795..f3e5415450 100644 --- a/wp-admin/js/editor.js +++ b/wp-admin/js/editor.js @@ -1 +1 @@ -var switchEditors={mode:"",I:function(a){return document.getElementById(a)},edInit:function(){var a=tinymce.util.Cookie.getHash("TinyMCE_content_size");if(getUserSetting("editor")=="html"){if(a){try{this.I("content").style.height=a.ch-30+"px"}catch(b){}}}else{try{this.I("quicktags").style.display="none"}catch(b){}tinyMCE.execCommand("mceAddControl",false,"content")}},saveCallback:function(b,c,a){if(tinyMCE.activeEditor.isHidden()){c=this.I(b).value}else{c=this.pre_wpautop(c)}return c},pre_wpautop:function(b){var c,a;b=b.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(d){d=d.replace(/
[\r\n]*/g,"");return d.replace(/<\/?p( [^>]*)?>[\r\n]*/g,"")});c="blockquote|ul|ol|li|table|thead|tbody|tr|th|td|div|h[1-6]|p";b=b.replace(new RegExp("\\s*\\s*","mg"),"\n");b=b.replace(new RegExp("\\s*<(("+c+")[^>]*)>","mg"),"\n<$1>");b=b.replace(new RegExp("(

]+>.*?)

","mg"),"$1");b=b.replace(new RegExp("]*)>\\s*

","mgi"),"\n\n");b=b.replace(new RegExp("\\s*

","mgi"),"");b=b.replace(new RegExp("\\s*

\\s*","mgi"),"\n\n");b=b.replace(new RegExp("\\n\\s*\\n","mgi"),"\n\n");b=b.replace(new RegExp("\\s*
\\s*","gi"),"\n");b=b.replace(new RegExp("\\s*\\s*","mg"),"\n");b=b.replace(new RegExp("\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*","gi"),"\n\n[caption$1[/caption]\n\n");b=b.replace(new RegExp("caption\\]\\n\\n+\\[caption","g"),"caption]\n\n[caption");a="blockquote|ul|ol|li|table|thead|tr|th|td|h[1-6]|pre";b=b.replace(new RegExp("\\s*<(("+a+") ?[^>]*)\\s*>","mg"),"\n<$1>");b=b.replace(new RegExp("\\s*\\s*","mg"),"\n");b=b.replace(new RegExp("]*)>","g"),"\t");if(b.indexOf("/g,function(d){return d.replace(/[\r\n]+/g,"")})}b=b.replace(new RegExp("","g"),"

\n");b=b.replace(new RegExp("\\s*(

]+>.*

)","mg"),"\n$1");b=b.replace(new RegExp("^\\s*",""),"");b=b.replace(new RegExp("[\\s\\u00a0]*$",""),"");b=b.replace(//g,"\n");return b},go:function(g,e){g=g||"content";e=e||this.mode||"";var b=tinyMCE.get(g)||false,f=this.I("quicktags"),c=this.I("edButtonHTML"),d=this.I("edButtonPreview"),a=this.I(g);if("tinymce"==e){if(b&&!b.isHidden()){return false}this.mode="html";a.style.color="#fff";d.className="active";c.className="";edCloseAllTags();f.style.display="none";a.value=this.wpautop(a.value);if(b){b.show()}else{tinyMCE.execCommand("mceAddControl",false,g)}setUserSetting("editor","tinymce")}else{if(!b||b.isHidden()){return false}this.mode="tinymce";c.className="active";d.className="";a.style.height=b.getContentAreaContainer().offsetHeight+6+"px";b.hide();f.style.display="block";a.style.color="";setUserSetting("editor","html")}return false},wpautop:function(a){var b="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6]";if(a.indexOf("/g,function(c){return c.replace(/[\r\n]+/g,"")})}a=a.replace(/<[^<>]+>/g,function(c){return c.replace(/[\r\n]+/g," ")});a=a+"\n\n";a=a.replace(new RegExp("
\\s*
","gi"),"\n\n");a=a.replace(new RegExp("(<(?:"+b+")[^>]*>)","gi"),"\n$1");a=a.replace(new RegExp("()","gi"),"$1\n\n");a=a.replace(new RegExp("\\r\\n|\\r","g"),"\n");a=a.replace(new RegExp("\\n\\s*\\n+","g"),"\n\n");a=a.replace(new RegExp("([\\s\\S]+?)\\n\\n","mg"),"

$1

\n");a=a.replace(new RegExp("

\\s*?

","gi"),"");a=a.replace(new RegExp("

\\s*(]*>)\\s*

","gi"),"$1");a=a.replace(new RegExp("

(","gi"),"$1");a=a.replace(new RegExp("

\\s*]*)>","gi"),"

");a=a.replace(new RegExp("\\s*

","gi"),"

");a=a.replace(new RegExp("

\\s*(]*>)","gi"),"$1");a=a.replace(new RegExp("(]*>)\\s*

","gi"),"$1");a=a.replace(new RegExp("\\s*\\n","gi"),"
\n");a=a.replace(new RegExp("(]*>)\\s*
","gi"),"$1");a=a.replace(new RegExp("
(\\s*)","gi"),"$1");a=a.replace(new RegExp("(?:

|
)*\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*(?:

|
)*","gi"),"[caption$1[/caption]");a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(c){c=c.replace(/
[\r\n]*/g,"\n");return c.replace(/<\/?p( [^>]*)?>[\r\n]*/g,"\n")});return a}}; \ No newline at end of file +jQuery(document).ready(function(b){var a=wpCookies.getHash("TinyMCE_content_size");if(getUserSetting("editor")=="html"){if(a){b("#content").css("height",a.ch-15+"px")}}else{b("#content").css("color","white");b("#quicktags").hide()}});var switchEditors={mode:"",I:function(a){return document.getElementById(a)},edInit:function(){},saveCallback:function(b,c,a){if(tinyMCE.activeEditor.isHidden()){c=this.I(b).value}else{c=this.pre_wpautop(c)}return c},pre_wpautop:function(b){var c,a;b=b.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(d){d=d.replace(/
[\r\n]*/g,"");return d.replace(/<\/?p( [^>]*)?>[\r\n]*/g,"")});c="blockquote|ul|ol|li|table|thead|tbody|tr|th|td|div|h[1-6]|p";b=b.replace(new RegExp("\\s*\\s*","mg"),"\n");b=b.replace(new RegExp("\\s*<(("+c+")[^>]*)>","mg"),"\n<$1>");b=b.replace(new RegExp("(

]+>.*?)

","mg"),"$1");b=b.replace(new RegExp("]*)>\\s*

","mgi"),"\n\n");b=b.replace(new RegExp("\\s*

","mgi"),"");b=b.replace(new RegExp("\\s*

\\s*","mgi"),"\n\n");b=b.replace(new RegExp("\\n\\s*\\n","mgi"),"\n\n");b=b.replace(new RegExp("\\s*
\\s*","gi"),"\n");b=b.replace(new RegExp("\\s*\\s*","mg"),"\n");b=b.replace(new RegExp("\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*","gi"),"\n\n[caption$1[/caption]\n\n");b=b.replace(new RegExp("caption\\]\\n\\n+\\[caption","g"),"caption]\n\n[caption");a="blockquote|ul|ol|li|table|thead|tr|th|td|h[1-6]|pre";b=b.replace(new RegExp("\\s*<(("+a+") ?[^>]*)\\s*>","mg"),"\n<$1>");b=b.replace(new RegExp("\\s*\\s*","mg"),"\n");b=b.replace(new RegExp("]*)>","g"),"\t");if(b.indexOf("/g,function(d){return d.replace(/[\r\n]+/g,"")})}b=b.replace(new RegExp("","g"),"

\n");b=b.replace(new RegExp("\\s*(

]+>.*

)","mg"),"\n$1");b=b.replace(new RegExp("^\\s*",""),"");b=b.replace(new RegExp("[\\s\\u00a0]*$",""),"");b=b.replace(//g,"\n");return b},go:function(i,g){i=i||"content";g=g||this.mode||"";var b,h=this.I("quicktags"),c=this.I("edButtonHTML"),d=this.I("edButtonPreview"),a=this.I(i);try{b=tinyMCE.get(i)}catch(f){b=false}if("tinymce"==g){if(b&&!b.isHidden()){return false}setUserSetting("editor","tinymce");this.mode="html";d.className="active";c.className="";edCloseAllTags();h.style.display="none";a.value=this.wpautop(a.value);if(b){b.show()}else{try{tinyMCE.execCommand("mceAddControl",false,i)}catch(f){}}}else{setUserSetting("editor","html");a.style.color="#000";this.mode="tinymce";c.className="active";d.className="";if(b&&!b.isHidden()){a.style.height=b.getContentAreaContainer().offsetHeight+24+"px";b.hide()}h.style.display="block"}return false},wpautop:function(a){var b="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6]";if(a.indexOf("/g,function(c){return c.replace(/[\r\n]+/g,"")})}a=a.replace(/<[^<>]+>/g,function(c){return c.replace(/[\r\n]+/g," ")});a=a+"\n\n";a=a.replace(new RegExp("
\\s*
","gi"),"\n\n");a=a.replace(new RegExp("(<(?:"+b+")[^>]*>)","gi"),"\n$1");a=a.replace(new RegExp("()","gi"),"$1\n\n");a=a.replace(new RegExp("\\r\\n|\\r","g"),"\n");a=a.replace(new RegExp("\\n\\s*\\n+","g"),"\n\n");a=a.replace(new RegExp("([\\s\\S]+?)\\n\\n","mg"),"

$1

\n");a=a.replace(new RegExp("

\\s*?

","gi"),"");a=a.replace(new RegExp("

\\s*(]*>)\\s*

","gi"),"$1");a=a.replace(new RegExp("

(","gi"),"$1");a=a.replace(new RegExp("

\\s*]*)>","gi"),"

");a=a.replace(new RegExp("\\s*

","gi"),"

");a=a.replace(new RegExp("

\\s*(]*>)","gi"),"$1");a=a.replace(new RegExp("(]*>)\\s*

","gi"),"$1");a=a.replace(new RegExp("\\s*\\n","gi"),"
\n");a=a.replace(new RegExp("(]*>)\\s*
","gi"),"$1");a=a.replace(new RegExp("
(\\s*)","gi"),"$1");a=a.replace(new RegExp("(?:

|
)*\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*(?:

|
)*","gi"),"[caption$1[/caption]");a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(c){c=c.replace(/
[\r\n]*/g,"\n");return c.replace(/<\/?p( [^>]*)?>[\r\n]*/g,"\n")});return a}}; \ No newline at end of file diff --git a/wp-admin/wp-admin.css b/wp-admin/wp-admin.css index 946fc8d6f5..9dde982b5e 100644 --- a/wp-admin/wp-admin.css +++ b/wp-admin/wp-admin.css @@ -1806,9 +1806,8 @@ input#link_url { border-style: none none solid; } -#poststuff #edButtonPreview, -#poststuff #edButtonHTML { - display: block; +#edButtonPreview, +#edButtonHTML { height: 18px; margin: 5px 5px 0 0; padding: 4px 5px 2px; @@ -1825,6 +1824,10 @@ input#link_url { border-top-left-radius: 3px; } +.js .theEditor { + color: white; +} + #poststuff #edButtonHTML { margin-right: 15px; } diff --git a/wp-includes/general-template.php b/wp-includes/general-template.php index 826a888992..7201ce1386 100644 --- a/wp-includes/general-template.php +++ b/wp-includes/general-template.php @@ -1619,49 +1619,52 @@ function the_editor($content, $id = 'content', $prev_id = 'title', $media_button $media_buttons = false; $richedit = user_can_richedit(); - $rows = "rows='$rows'"; + $class = ''; if ( $richedit || $media_buttons ) { ?>
-
- - - - ', 'html');"> + + - - - ', 'html');"> + + -
- -
- + if ( $media_buttons ) { ?> +
+ +
+
- - -
- + +
-
\n"); +\n"); $the_editor_content = apply_filters('the_editor_content', $content); printf($the_editor, $the_editor_content); - ?> +?> -