From: Reini U. <ru...@us...> - 2004-11-16 17:58:24
|
Update of /cvsroot/phpwiki/phpwiki/themes/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17977/themes/default Modified Files: toolbar.js Log Message: fix search&replace button use new addTagButton machinery new showPulldown for categories, TODO: in a seperate request Index: toolbar.js =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/themes/default/toolbar.js,v retrieving revision 1.4 retrieving revision 1.5 diff -u -2 -b -p -d -r1.4 -r1.5 --- toolbar.js 2 Jun 2004 20:46:41 -0000 1.4 +++ toolbar.js 16 Nov 2004 17:57:44 -0000 1.5 @@ -1,24 +1,49 @@ -// Toolbar JavaScript support functions from mediawiki +// Toolbar JavaScript support functions. Taken from mediawiki // $Id$ // Un-trap us from framesets if( window.top != window ) window.top.location = window.location; +var pullwin; // This function generates the actual toolbar buttons with localized text // We use it to avoid creating the toolbar where javascript is not enabled // Not all buttons use this helper, some need special javascript treatment. -function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { +function addButton(imageFile, speedTip, func, args) { + var i; speedTip=escapeQuotes(speedTip); - tagOpen=escapeQuotes(tagOpen); - tagClose=escapeQuotes(tagClose); - sampleText=escapeQuotes(sampleText); - document.write("<a href=\"javascript:insertTags"); - document.write("('"+tagOpen+"','"+tagClose+"','"+sampleText+"');\">"); + document.write("<a href=\"javascript:"+func+"("); + for (i=0; i<args.length; i++){ + if (i>0) document.write(","); + document.write("'"+escapeQuotes(args[i])+"'"); + } //width=\"23\" height=\"22\" - document.write("<img src=\""+imageFile+"\" width=\"18\" height=\"18\" border=\"0\" alt=\""+speedTip+"\" title=\""+speedTip+"\">"); + document.write(");\"><img src=\""+imageFile+"\" width=\"18\" height=\"18\" border=\"0\" alt=\""+speedTip+"\" title=\""+speedTip+"\">"); document.write("</a>"); return; } - +function addTagButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { + addButton(imageFile, speedTip, "insertTags", [tagOpen, tagClose, sampleText]); + return; +} +// This function generates a pulldown list to select from. +// plugins, pagenames, categories. not with document.write because we cannot use self.opener then. +//function addPulldown(imageFile, speedTip, pages) { +// addButton(imageFile, speedTip, "showPulldown", pages); +// return; +//} +function showPulldown(title, pages) { + pullwin = window.open('','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,height=350,width=250'); + pullwin.window.document.write('<html><head><title>'+escapeQuotes(title)+'</title><style type=\"text/css\"><'+'!'+'-- body, input {font-family:Tahoma,Arial,Helvetica,sans-serif;font-size:10pt;font-weight:bold;} option {font-size:9pt} --'+'></style></head><body bgcolor=\"#dddddd\"><form><select name=\"select\" size=\"'+((pages.length>20)?'20':new String(pages.length))+'\" ondblclick=\"if(self.opener)self.opener.do_pulldown(document.forms[0].select.value); return false;\">'); + for (i=0; i<pages.length; i++){ + pullwin.window.document.write('<option value="'+pages[i]+'">'+escapeQuotes(pages[i])+'<option>\n'); + } + pullwin.window.document.write('</select><br /><input type=\"button\" value=\"Ok\" onclick=\"if(self.opener)self.opener.do_pulldown(document.forms[0].select.value); return false;\"><input type=\"button\" value=\"Close\" onclick=\"self.close(); return false;\"></form></body></html>'); + pullwin.window.document.close(); + return false; +} +function do_pulldown(value) { + insertTags(value, '', '\n'); + return; +} function addInfobox(infoText) { // if no support for changing selection, add a small copy & paste field @@ -33,5 +58,4 @@ function addInfobox(infoText) { } } - function escapeQuotes(text) { var re=new RegExp("'","g"); @@ -43,5 +67,4 @@ function escapeQuotes(text) { return text; } - function escapeQuotesHTML(text) { var re=new RegExp('"',"g"); @@ -49,5 +72,4 @@ function escapeQuotesHTML(text) { return text; } - // apply tagOpen/tagClose to selection in textarea, // use sampleText instead of selection if there is none @@ -90,10 +112,10 @@ function insertTags(tagOpen, tagClose, s } else { // Append at the end: Some people find that annoying - //txtarea.value += tagOpen + sampleText + tagClose; + txtarea.value += tagOpen + sampleText + tagClose; //txtarea.focus(); - var re=new RegExp("\\n","g"); - tagOpen=tagOpen.replace(re,""); - tagClose=tagClose.replace(re,""); - document.infoform.infobox.value=tagOpen+sampleText+tagClose; + //var re=new RegExp("\\n","g"); + //tagOpen=tagOpen.replace(re,""); + //tagClose=tagClose.replace(re,""); + //document.infoform.infobox.value=tagOpen+sampleText+tagClose; txtarea.focus(); } |