From f91b4ac83275ef1ba6f69b45759beb4bcfe56a69 Mon Sep 17 00:00:00 2001 From: Erik Moeller Date: Thu, 25 Aug 2005 21:11:22 +0000 Subject: [PATCH] Remove "info"-toolbar. This used to be shown for browsers which don't support retrieving text selections in a textarea. It prompted the user for text and put the resulting wiki-markup in a textfield for copy&pasting. However, this behavior confused many users, so the toolbar is now only shown for browsers which fully support it (presently IE and Gecko). Someone with some more time at their hands may want to experiment with the latest versions of Konqueror, Safari and Opera to determine whether they support retrieving selections so we can enable the full toolbar for those browsers. --- includes/EditPage.php | 3 -- languages/Language.php | 3 -- skins/common/wikibits.js | 63 ++++++---------------------------------- 3 files changed, 9 insertions(+), 60 deletions(-) diff --git a/includes/EditPage.php b/includes/EditPage.php index 13242a0e24..5efe8c026b 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -1304,10 +1304,7 @@ END $toolbar.="addButton('$image','$tip','$open','$close','$sample');\n"; } - $toolbar.="addInfobox('" . wfEscapeJsString( wfMsg( "infobox" ) ) . - "','" . wfEscapeJsString( wfMsg( "infobox_alert" ) ) . "');\n"; $toolbar.="document.writeln(\"\");\n"; - $toolbar.="/*]]>*/\n"; return $toolbar; } diff --git a/languages/Language.php b/languages/Language.php index 7c94e14aac..51bb58bd01 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -666,9 +666,6 @@ format. Please enter a well-formatted address or empty that field.', 'media_tip'=>'Media file link', 'sig_tip'=>'Your signature with timestamp', 'hr_tip'=>'Horizontal line (use sparingly)', -'infobox'=>'Click a button to get an example text', -# alert box shown in browsers where text selection does not work, test e.g. with mozilla or konqueror -'infobox_alert'=>"Please enter the text you want to be formatted.\\n It will be shown in the infobox for copy and pasting.\\nExample:\\n$1\\nwill become:\\n$2", # Edit pages # diff --git a/skins/common/wikibits.js b/skins/common/wikibits.js index 3abb9f7892..b19bfc3727 100644 --- a/skins/common/wikibits.js +++ b/skins/common/wikibits.js @@ -1,7 +1,5 @@ // Wikipedia JavaScript support functions -// if this is true, the toolbar will no longer overwrite the infobox when you move the mouse over individual items -var noOverwrite=false; -var alertText; + var clientPC = navigator.userAgent.toLowerCase(); // Get client info var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1)); @@ -261,6 +259,11 @@ function toggleToc() { // we use it to avoid creating the toolbar where javascript is not enabled function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { + // Don't generate buttons for browsers which don't fully + // support it. + if(!document.selection && !is_gecko) { + return false; + } imageFile=escapeQuotesHTML(imageFile); speedTip=escapeQuotesHTML(speedTip); tagOpen=escapeQuotes(tagOpen); @@ -268,43 +271,13 @@ function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { sampleText=escapeQuotes(sampleText); var mouseOver=""; - // we can't change the selection, so we show example texts - // when moving the mouse instead, until the first button is clicked - if(!document.selection && !is_gecko) { - // filter backslashes so it can be shown in the infobox - var re=new RegExp("\\\\n","g"); - tagOpen=tagOpen.replace(re,""); - tagClose=tagClose.replace(re,""); - mouseOver = "onMouseover=\"if(!noOverwrite){document.infoform.infobox.value='"+tagOpen+sampleText+tagClose+"'};\""; - } - document.write(""); - document.write("\""+speedTip+"\""); document.write(""); return; } -function addInfobox(infoText,text_alert) { - alertText=text_alert; - var clientPC = navigator.userAgent.toLowerCase(); // Get client info - - var re=new RegExp("\\\\n","g"); - alertText=alertText.replace(re,"\n"); - - // if no support for changing selection, add a small copy & paste field - // document.selection is an IE-only property. The full toolbar works in IE and - // Gecko-based browsers. - if(!document.selection && !is_gecko) { - infoText=escapeQuotesHTML(infoText); - document.write("
"+ - "
"); - } - -} - function escapeQuotes(text) { var re=new RegExp("'","g"); text=text.replace(re,"\\'"); @@ -364,27 +337,9 @@ function insertTags(tagOpen, tagClose, sampleText) { txtarea.selectionEnd=cPos; txtarea.scrollTop=scrollTop; - // All others - } else { - var copy_alertText=alertText; - var re1=new RegExp("\\$1","g"); - var re2=new RegExp("\\$2","g"); - copy_alertText=copy_alertText.replace(re1,sampleText); - copy_alertText=copy_alertText.replace(re2,tagOpen+sampleText+tagClose); - var text; - if (sampleText) { - text=prompt(copy_alertText); - } else { - text=""; - } - if(!text) { text=sampleText;} - text=tagOpen+text+tagClose; - document.infoform.infobox.value=text; - // in Safari this causes scrolling - if(!is_safari) { - txtarea.focus(); - } - noOverwrite=true; + // All other browsers get no toolbar. + // There was previously support for a crippled "help" + // bar, but that caused more problems than it solved. } // reposition cursor if possible if (txtarea.createTextRange) txtarea.caretPos = document.selection.createRange().duplicate(); -- 2.20.1