From 6bc07363489cab5217c60661c6496769cdd8fa45 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 24 Nov 2002 17:36:07 +0000 Subject: [PATCH] Added new rich editor and removed old ones. --- docs/credits.txt | 3 +- docs/upgrades/upgrade_4.8.0-4.9.0.sql | 5 +- lib/WebGUI/Form.pm | 50 +- lib/WebGUI/Session.pm | 3 +- www/extras/colorPicker.gif | Bin 15962 -> 0 bytes www/extras/colorPicker.html | 364 ------ www/extras/htmlArea/editor.js | 1009 +++++++++++++++++ www/extras/htmlArea/example.html | 148 +++ www/extras/htmlArea/images/ed_about.gif | Bin 0 -> 87 bytes .../htmlArea/images/ed_align_center.gif | Bin 0 -> 69 bytes www/extras/htmlArea/images/ed_align_left.gif | Bin 0 -> 69 bytes www/extras/htmlArea/images/ed_align_right.gif | Bin 0 -> 68 bytes www/extras/htmlArea/images/ed_blank.gif | Bin 0 -> 56 bytes www/extras/htmlArea/images/ed_charmap.gif | Bin 0 -> 143 bytes www/extras/htmlArea/images/ed_color_bg.gif | Bin 0 -> 181 bytes www/extras/htmlArea/images/ed_color_fg.gif | Bin 0 -> 171 bytes www/extras/htmlArea/images/ed_copy.gif | Bin 0 -> 110 bytes www/extras/htmlArea/images/ed_custom.gif | Bin 0 -> 67 bytes www/extras/htmlArea/images/ed_cut.gif | Bin 0 -> 91 bytes www/extras/htmlArea/images/ed_delete.gif | Bin 0 -> 90 bytes www/extras/htmlArea/images/ed_format_bold.gif | Bin 0 -> 74 bytes .../htmlArea/images/ed_format_italic.gif | Bin 0 -> 77 bytes .../htmlArea/images/ed_format_strike.gif | Bin 0 -> 78 bytes www/extras/htmlArea/images/ed_format_sub.gif | Bin 0 -> 78 bytes www/extras/htmlArea/images/ed_format_sup.gif | Bin 0 -> 77 bytes .../htmlArea/images/ed_format_underline.gif | Bin 0 -> 85 bytes www/extras/htmlArea/images/ed_help.gif | Bin 0 -> 70 bytes www/extras/htmlArea/images/ed_hr.gif | Bin 0 -> 70 bytes www/extras/htmlArea/images/ed_html.gif | Bin 0 -> 75 bytes www/extras/htmlArea/images/ed_image.gif | Bin 0 -> 148 bytes www/extras/htmlArea/images/ed_indent_less.gif | Bin 0 -> 87 bytes www/extras/htmlArea/images/ed_indent_more.gif | Bin 0 -> 87 bytes www/extras/htmlArea/images/ed_link.gif | Bin 0 -> 97 bytes www/extras/htmlArea/images/ed_list_bullet.gif | Bin 0 -> 80 bytes www/extras/htmlArea/images/ed_list_num.gif | Bin 0 -> 82 bytes www/extras/htmlArea/images/ed_redo.gif | Bin 0 -> 80 bytes www/extras/htmlArea/images/ed_undo.gif | Bin 0 -> 81 bytes .../htmlArea/images/fullscreen_maximize.gif | Bin 0 -> 97 bytes .../htmlArea/images/fullscreen_minimize.gif | Bin 0 -> 97 bytes www/extras/htmlArea/images/insert_table.gif | Bin 0 -> 121 bytes www/extras/htmlArea/images/macro.gif | Bin 0 -> 127 bytes www/extras/htmlArea/popups/about.html | 19 + www/extras/htmlArea/popups/custom2.html | 100 ++ www/extras/htmlArea/popups/editor_help.html | 16 + www/extras/htmlArea/popups/fullscreen.html | 96 ++ www/extras/htmlArea/popups/insert_image.html | 206 ++++ www/extras/htmlArea/popups/insert_table.html | 170 +++ www/extras/htmlArea/popups/macros.html | 100 ++ www/extras/htmlArea/popups/select_color.html | 343 ++++++ www/extras/htmlArea/readme.html | 639 +++++++++++ www/extras/ieEdit.html | 545 --------- www/extras/ieEdit.js | 669 ----------- www/extras/nonIeEdit.html | 108 -- www/extras/nonIeEdit.js | 82 -- www/extras/toolbar.gif | Bin 4201 -> 0 bytes 55 files changed, 2877 insertions(+), 1798 deletions(-) delete mode 100644 www/extras/colorPicker.gif delete mode 100644 www/extras/colorPicker.html create mode 100644 www/extras/htmlArea/editor.js create mode 100644 www/extras/htmlArea/example.html create mode 100644 www/extras/htmlArea/images/ed_about.gif create mode 100644 www/extras/htmlArea/images/ed_align_center.gif create mode 100644 www/extras/htmlArea/images/ed_align_left.gif create mode 100644 www/extras/htmlArea/images/ed_align_right.gif create mode 100644 www/extras/htmlArea/images/ed_blank.gif create mode 100644 www/extras/htmlArea/images/ed_charmap.gif create mode 100644 www/extras/htmlArea/images/ed_color_bg.gif create mode 100644 www/extras/htmlArea/images/ed_color_fg.gif create mode 100644 www/extras/htmlArea/images/ed_copy.gif create mode 100644 www/extras/htmlArea/images/ed_custom.gif create mode 100644 www/extras/htmlArea/images/ed_cut.gif create mode 100644 www/extras/htmlArea/images/ed_delete.gif create mode 100644 www/extras/htmlArea/images/ed_format_bold.gif create mode 100644 www/extras/htmlArea/images/ed_format_italic.gif create mode 100644 www/extras/htmlArea/images/ed_format_strike.gif create mode 100644 www/extras/htmlArea/images/ed_format_sub.gif create mode 100644 www/extras/htmlArea/images/ed_format_sup.gif create mode 100644 www/extras/htmlArea/images/ed_format_underline.gif create mode 100644 www/extras/htmlArea/images/ed_help.gif create mode 100644 www/extras/htmlArea/images/ed_hr.gif create mode 100644 www/extras/htmlArea/images/ed_html.gif create mode 100644 www/extras/htmlArea/images/ed_image.gif create mode 100644 www/extras/htmlArea/images/ed_indent_less.gif create mode 100644 www/extras/htmlArea/images/ed_indent_more.gif create mode 100644 www/extras/htmlArea/images/ed_link.gif create mode 100644 www/extras/htmlArea/images/ed_list_bullet.gif create mode 100644 www/extras/htmlArea/images/ed_list_num.gif create mode 100644 www/extras/htmlArea/images/ed_redo.gif create mode 100644 www/extras/htmlArea/images/ed_undo.gif create mode 100644 www/extras/htmlArea/images/fullscreen_maximize.gif create mode 100644 www/extras/htmlArea/images/fullscreen_minimize.gif create mode 100644 www/extras/htmlArea/images/insert_table.gif create mode 100644 www/extras/htmlArea/images/macro.gif create mode 100644 www/extras/htmlArea/popups/about.html create mode 100644 www/extras/htmlArea/popups/custom2.html create mode 100644 www/extras/htmlArea/popups/editor_help.html create mode 100644 www/extras/htmlArea/popups/fullscreen.html create mode 100644 www/extras/htmlArea/popups/insert_image.html create mode 100644 www/extras/htmlArea/popups/insert_table.html create mode 100644 www/extras/htmlArea/popups/macros.html create mode 100644 www/extras/htmlArea/popups/select_color.html create mode 100644 www/extras/htmlArea/readme.html delete mode 100644 www/extras/ieEdit.html delete mode 100644 www/extras/ieEdit.js delete mode 100644 www/extras/nonIeEdit.html delete mode 100644 www/extras/nonIeEdit.js delete mode 100644 www/extras/toolbar.gif diff --git a/docs/credits.txt b/docs/credits.txt index 8a5732cd0..06727796d 100644 --- a/docs/credits.txt +++ b/docs/credits.txt @@ -20,6 +20,7 @@ Contributing Developers..............Peter Beardsley / Appropriate Solutions, In Andy Grundman Koen de Jonge / ProcoliX Martin Kamerbeek / ProcoliX + Len Kranendonk Christophe Marcant Tavis Parker / ParkerOne Consulting Daniel Quinlan @@ -45,7 +46,7 @@ to WebGUI, but who's work has made WebGUI possible: Perl.................................Larry Wall / O'Reilly -IE Rich Edit.........................Brattli +Rich Edit............................interactivetools.com Data::Config.........................Sébastien Aperghis-Tramoni diff --git a/docs/upgrades/upgrade_4.8.0-4.9.0.sql b/docs/upgrades/upgrade_4.8.0-4.9.0.sql index a44662add..fb1218b3b 100644 --- a/docs/upgrades/upgrade_4.8.0-4.9.0.sql +++ b/docs/upgrades/upgrade_4.8.0-4.9.0.sql @@ -25,10 +25,9 @@ alter table discussion add column userDefined2 varchar(255); alter table discussion add column userDefined3 varchar(255); alter table discussion add column userDefined4 varchar(255); alter table discussion add column userDefined5 varchar(255); - ---- SMB authentication module ---------------------------------------------- +delete from international where languageId=1 and namespace='WebGUI' and internationalId=495; +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (495,1,'WebGUI','htmlArea (default)', 1038159820); insert into settings (name,value) values ('smbPDC','your PDC'); insert into settings (name,value) values ('smbBDC','your BDC'); insert into settings (name,value) values ('smbDomain','your NT Domain'); ----------------------------------------------------------------------------- diff --git a/lib/WebGUI/Form.pm b/lib/WebGUI/Form.pm index 53de0fb65..96500b58a 100644 --- a/lib/WebGUI/Form.pm +++ b/lib/WebGUI/Form.pm @@ -638,7 +638,7 @@ sub hiddenList { =cut sub HTMLArea { - my ($output, $value); + my ($output, $rows, $columns); $output = ''; if ($session{setting}{richEditor} eq "edit-on-pro") { $output .= ''; } else { - $output .= ''; - } - $output .= ''."
\n"; - $output .= textarea({ - name=>$_[0]->{name}, - value=>$_[0]->{value}, - wrap=>$_[0]->{wrap}, - columns=>$_[0]->{columns}, - rows=>$_[0]->{rows}, - extras=>$_[0]->{extras}.' onBlur="fixChars(this.form.'.$_[0]->{name}.')"' - }); + $output .= ''."\n"; + $output .= ''."\n"; + } + if ($session{setting}{richEditor} ne "built-in") { + $output .= '
'; + } + $rows = $_[0]->{rows} || ($session{setting}{textAreaRows}+7); + $columns = $_[0]->{rows} || ($session{setting}{textAreaCols}+5); + $output .= textarea({ + name=>$_[0]->{name}, + value=>$_[0]->{value}, + wrap=>$_[0]->{wrap}, + columns=>$columns, + rows=>$rows, + extras=>$_[0]->{extras}.' onBlur="fixChars(this.form.'.$_[0]->{name}.')"' + }); + if ($session{setting}{richEditor} eq "built-in") { + $output .= ''."\n"; + } return $output; } diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm index ee42f6ffb..1990a9dcf 100644 --- a/lib/WebGUI/Session.pm +++ b/lib/WebGUI/Session.pm @@ -355,7 +355,8 @@ sub refreshUserInfo { #------------------------------------------------------------------- sub setCookie { my $ttl = $_[2] || '+10y'; - my $domain = $session{env}{SERVER_NAME} if ($session{env}{HTTP_USER_AGENT} =~ m/MSIE/i); + #my $domain = $session{env}{SERVER_NAME} if ($session{env}{HTTP_USER_AGENT} =~ m/MSIE/i); + my $domain; push @{$session{header}{cookie}}, $session{cgi}->cookie( -name=>$_[0], -value=>$_[1], diff --git a/www/extras/colorPicker.gif b/www/extras/colorPicker.gif deleted file mode 100644 index a36307109fcf18a2d351e89b889bd4bc30df963b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15962 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 - -Color Picker - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - diff --git a/www/extras/htmlArea/editor.js b/www/extras/htmlArea/editor.js new file mode 100644 index 000000000..3eb90be25 --- /dev/null +++ b/www/extras/htmlArea/editor.js @@ -0,0 +1,1009 @@ +// +// htmlArea v2.00 - Copyright (c) 2002 interactivetools.com, inc. +// A free WYSIWYG editor replacement for '; + + // add context menu + editor += ''; + + // hide original textarea and insert htmlarea after it + if (!config.debug) { document.all[objname].style.display = "none"; } + document.all[objname].insertAdjacentHTML('afterEnd', editor) + + // convert htmlarea from textarea to wysiwyg editor + editor_setmode(objname, 'init'); + + // call filterOutput when user submits form + for (var idx=0; idx < document.forms.length; idx++) { + var r = document.forms[idx].attachEvent('onsubmit', function() { editor_filterOutput(objname); }); + if (!r) { alert("Error attaching event to form!"); } + } + +} + +/* ---------------------------------------------------------------------- *\ + Function : editor_action + Description : perform an editor command on selected editor content + Usage : + Arguments : button_id - button id string with editor and action name +\* ---------------------------------------------------------------------- */ + +function editor_action(button_id) { + + // split up button name into "editorID" and "cmdID" + var BtnParts = Array(); + BtnParts = button_id.split("_"); + var objname = button_id.replace(/^_(.*)_[^_]*$/, '$1'); + var cmdID = BtnParts[ BtnParts.length-1 ]; + var button_obj = document.all[button_id]; + var editor_obj = document.all["_" +objname + "_editor"]; + var config = document.all[objname].config; + + // help popup + if (cmdID == 'showhelp') { + window.open(_editor_url + "popups/editor_help.html", 'EditorHelp'); + return; + } + + // check editor mode (don't perform actions in textedit mode) + if (editor_obj.tagName.toLowerCase() == 'textarea') { return; } + + var editdoc = editor_obj.contentWindow.document; + editor_focus(editor_obj); + + // get index and value for pulldowns + var idx = button_obj.selectedIndex; + var val = (idx != null) ? button_obj[ idx ].value : null; + + if (0) {} // use else if for easy cutting and pasting + + // + // CUSTOM BUTTONS START HERE + // + + // Custom1 + else if (cmdID == 'custom1') { + alert("Hello, I am custom button 1!"); + } + + // Custom2 + else if (cmdID == 'Macros') { // insert some text from a popup window + var myTitle = "Insert WebGUI macro"; + var myText = showModalDialog(_editor_url + "popups/macros.html", + myTitle, // str or obj specified here can be read from dialog as "window.dialogArguments" + "resizable: yes; help: no; status: no; scroll: no; "); + if (myText) { editor_insertHTML(objname, myText); } + } + + // Custom3 + else if (cmdID == 'custom3') { // insert some text + editor_insertHTML(objname, "It's easy to add buttons that insert text!"); + } + + // + // END OF CUSTOM BUTTONS + // + + // popup editor + else if (cmdID == 'popupeditor') { + showModalDialog(_editor_url + "popups/fullscreen.html?"+objname, window, "resizable: yes; help: no; status: no; scroll: no; "); + } + + // FontName + else if (cmdID == 'FontName' && val) { + editdoc.execCommand(cmdID,0,val); + } + + // FontSize + else if (cmdID == 'FontSize' && val) { + editdoc.execCommand(cmdID,0,val); + } + + // FontStyle (change CSS className) + else if (cmdID == 'FontStyle' && val) { + editdoc.execCommand('RemoveFormat'); + editdoc.execCommand('FontName',0,'636c6173734e616d6520706c616365686f6c646572'); + var fontArray = editdoc.all.tags("FONT"); + for (i=0; i 0) { return setTimeout(function(){ editor_event(objname); }, runDelay); } + + // don't execute more than 3 times a second (eg: too soon after last execution) + if (this.tooSoon == 1 && runDelay >= 0) { this.queue = 1; return; } // queue all but urgent events + this.tooSoon = 1; + setTimeout(function(){ + this.tooSoon = 0; + if (this.queue) { editor_event(objname,-1); }; + this.queue = 0; + }, 333); // 1/3 second + + + editor_updateOutput(objname); + editor_updateToolbar(objname); + +} + +/* ---------------------------------------------------------------------- *\ + Function : editor_updateToolbar + Description : update toolbar state + Usage : + Arguments : objname - ID of textarea to replace + action - enable, disable, or update (default action) +\* ---------------------------------------------------------------------- */ + +function editor_updateToolbar(objname,action) { + var config = document.all[objname].config; + var editor_obj = document.all["_" +objname+ "_editor"]; + + // disable or enable toolbar + + if (action == "enable" || action == "disable") { + var tbItems = new Array('FontName','FontSize','FontStyle'); // add pulldowns + for (var btnName in config.btnList) { tbItems.push(config.btnList[btnName][0]); } // add buttons + + for (var idxN in tbItems) { + var cmdID = tbItems[idxN].toLowerCase(); + var tbObj = document.all["_" +objname+ "_" +tbItems[idxN]]; + if (cmdID == "htmlmode" || cmdID == "about" || cmdID == "showhelp") { continue; } // don't change these buttons + if (tbObj == null) { continue; } + var isBtn = (tbObj.tagName.toLowerCase() == "button") ? true : false; + + if (action == "enable") { tbObj.disabled = false; if (isBtn) { tbObj.className = 'btn' }} + if (action == "disable") { tbObj.disabled = true; if (isBtn) { tbObj.className = 'btnNA' }} + } + return; + } + + // update toolbar state + + if (editor_obj.tagName.toLowerCase() == 'textarea') { return; } // don't update state in textedit mode + var editdoc = editor_obj.contentWindow.document; + + // Set FontName pulldown + var fontname_obj = document.all["_" +objname+ "_FontName"]; + if (fontname_obj) { + var fontname = editdoc.queryCommandValue('FontName'); + if (fontname == null) { fontname_obj.value = null; } + else { + var found = 0; + for (i=0; i