Annotation of kupuMPIWG/common/kupuinit_form.js, revision 1.1
1.1 ! dwinter 1: /*****************************************************************************
! 2: *
! 3: * Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
! 4: *
! 5: * This software is distributed under the terms of the Kupu
! 6: * License. See LICENSE.txt for license text. For a list of Kupu
! 7: * Contributors see CREDITS.txt.
! 8: *
! 9: *****************************************************************************/
! 10:
! 11: // $Id: kupuinit.js 4015 2004-04-13 13:31:49Z guido $
! 12:
! 13:
! 14: function initKupu(iframe) {
! 15: /* This is a copy of initKupu for the form support
! 16:
! 17: We only want to disable the save button, but unfortunately
! 18: that currently still means this method should be overridden
! 19: completely
! 20: */
! 21:
! 22: // first we create a logger
! 23: var l = new PlainLogger('kupu-toolbox-debuglog', 5);
! 24:
! 25: // now some config values
! 26: var conf = loadDictFromXML(document, 'kupuconfig');
! 27:
! 28: // the we create the document, hand it over the id of the iframe
! 29: var doc = new KupuDocument(iframe);
! 30:
! 31: // now we can create the controller
! 32: var kupu = new KupuEditor(doc, conf, l);
! 33:
! 34: var contextmenu = new ContextMenu();
! 35: kupu.setContextMenu(contextmenu);
! 36:
! 37: // now we can create a UI object which we can use from the UI
! 38: var ui = new KupuUI('kupu-tb-styles');
! 39:
! 40: // the ui must be registered to the editor like a tool so it can be notified
! 41: // of state changes
! 42: kupu.registerTool('ui', ui); // XXX Should this be a different method?
! 43:
! 44: // function that returns a function to execute a button command
! 45: var execCommand = function(cmd) {
! 46: return function(button, editor) {
! 47: editor.execCommand(cmd);
! 48: };
! 49: };
! 50:
! 51: var boldchecker = ParentWithStyleChecker(new Array('b', 'strong'),
! 52: 'fontWeight', 'bold');
! 53: var boldbutton = new KupuStateButton('kupu-bold-button',
! 54: execCommand('bold'),
! 55: boldchecker,
! 56: 'kupu-bold',
! 57: 'kupu-bold-pressed');
! 58: kupu.registerTool('boldbutton', boldbutton);
! 59:
! 60: var italicschecker = ParentWithStyleChecker(new Array('i', 'em'),
! 61: 'fontStyle', 'italic');
! 62: var italicsbutton = new KupuStateButton('kupu-italic-button',
! 63: execCommand('italic'),
! 64: italicschecker,
! 65: 'kupu-italic',
! 66: 'kupu-italic-pressed');
! 67: kupu.registerTool('italicsbutton', italicsbutton);
! 68:
! 69: var underlinechecker = ParentWithStyleChecker(new Array('u'),
! 70: 'textDecoration', 'underline');
! 71: var underlinebutton = new KupuStateButton('kupu-underline-button',
! 72: execCommand('underline'),
! 73: underlinechecker,
! 74: 'kupu-underline',
! 75: 'kupu-underline-pressed');
! 76: kupu.registerTool('underlinebutton', underlinebutton);
! 77:
! 78: var subscriptchecker = ParentWithStyleChecker(new Array('sub'));
! 79: var subscriptbutton = new KupuStateButton('kupu-subscript-button',
! 80: execCommand('subscript'),
! 81: subscriptchecker,
! 82: 'kupu-subscript',
! 83: 'kupu-subscript-pressed');
! 84: kupu.registerTool('subscriptbutton', subscriptbutton);
! 85:
! 86: var superscriptchecker = ParentWithStyleChecker(new Array('super', 'sup'));
! 87: var superscriptbutton = new KupuStateButton('kupu-superscript-button',
! 88: execCommand('superscript'),
! 89: superscriptchecker,
! 90: 'kupu-superscript',
! 91: 'kupu-superscript-pressed');
! 92: kupu.registerTool('superscriptbutton', superscriptbutton);
! 93:
! 94: var justifyleftbutton = new KupuButton('kupu-justifyleft-button',
! 95: execCommand('justifyleft'));
! 96: kupu.registerTool('justifyleftbutton', justifyleftbutton);
! 97:
! 98: var justifycenterbutton = new KupuButton('kupu-justifycenter-button',
! 99: execCommand('justifycenter'));
! 100: kupu.registerTool('justifycenterbutton', justifycenterbutton);
! 101:
! 102: var justifyrightbutton = new KupuButton('kupu-justifyright-button',
! 103: execCommand('justifyright'));
! 104: kupu.registerTool('justifyrightbutton', justifyrightbutton);
! 105:
! 106: var outdentbutton = new KupuButton('kupu-outdent-button', execCommand('outdent'));
! 107: kupu.registerTool('outdentbutton', outdentbutton);
! 108:
! 109: var indentbutton = new KupuButton('kupu-indent-button', execCommand('indent'));
! 110: kupu.registerTool('indentbutton', indentbutton);
! 111:
! 112: var undobutton = new KupuButton('kupu-undo-button', execCommand('undo'));
! 113: kupu.registerTool('undobutton', undobutton);
! 114:
! 115: var redobutton = new KupuButton('kupu-redo-button', execCommand('redo'));
! 116: kupu.registerTool('redobutton', redobutton);
! 117:
! 118: var removeimagebutton = new KupuRemoveElementButton('kupu-removeimage-button',
! 119: 'img',
! 120: 'kupu-removeimage');
! 121: kupu.registerTool('removeimagebutton', removeimagebutton);
! 122: var removelinkbutton = new KupuRemoveElementButton('kupu-removelink-button',
! 123: 'a',
! 124: 'kupu-removelink');
! 125: kupu.registerTool('removelinkbutton', removelinkbutton);
! 126:
! 127: // add some tools
! 128: // XXX would it be better to pass along elements instead of ids?
! 129: // var colorchoosertool = new ColorchooserTool('kupu-forecolor-button',
! 130: // 'kupu-hilitecolor-button',
! 131: // 'kupu-colorchooser');
! 132: // kupu.registerTool('colorchooser', colorchoosertool);
! 133:
! 134: var listtool = new ListTool('kupu-list-ul-addbutton',
! 135: 'kupu-list-ol-addbutton',
! 136: 'kupu-ulstyles', 'kupu-olstyles');
! 137: kupu.registerTool('listtool', listtool);
! 138:
! 139: var definitionlisttool = new DefinitionListTool('kupu-list-dl-addbutton');
! 140: kupu.registerTool('definitionlisttool', definitionlisttool);
! 141:
! 142: var proptool = new PropertyTool('kupu-properties-title', 'kupu-properties-description');
! 143: kupu.registerTool('proptool', proptool);
! 144:
! 145: var linktool = new LinkTool();
! 146: kupu.registerTool('linktool', linktool);
! 147: var linktoolbox = new LinkToolBox("kupu-link-input", "kupu-link-button", 'kupu-toolbox-links', 'kupu-toolbox', 'kupu-toolbox-active');
! 148: linktool.registerToolBox('linktoolbox', linktoolbox);
! 149:
! 150: var imagetool = new ImageTool();
! 151: kupu.registerTool('imagetool', imagetool);
! 152: var imagetoolbox = new ImageToolBox('kupu-image-input', 'kupu-image-addbutton',
! 153: 'kupu-image-float-select', 'kupu-toolbox-images',
! 154: 'kupu-toolbox', 'kupu-toolbox-active');
! 155: imagetool.registerToolBox('imagetoolbox', imagetoolbox);
! 156:
! 157: // var tabletool = new TableTool();
! 158: // kupu.registerTool('tabletool', tabletool);
! 159:
! 160: // var tabletoolbox = new TableToolBox('kupu-toolbox-addtable',
! 161: // 'kupu-toolbox-edittable', 'kupu-table-newrows', 'kupu-table-newcols',
! 162: // 'kupu-table-makeheader', 'kupu-table-classchooser', 'kupu-table-alignchooser',
! 163: // 'kupu-table-addtable-button', 'kupu-table-addrow-button', 'kupu-table-delrow-button',
! 164: // 'kupu-table-addcolumn-button', 'kupu-table-delcolumn-button',
! 165: // 'kupu-table-fix-button', 'kupu-table-fixall-button', 'kupu-toolbox-tables',
! 166: // 'kupu-toolbox', 'kupu-toolbox-active'
! 167: // );
! 168: // tabletool.registerToolBox('tabletoolbox', tabletoolbox);
! 169:
! 170: var showpathtool = new ShowPathTool();
! 171: kupu.registerTool('showpathtool', showpathtool);
! 172:
! 173: var sourceedittool = new SourceEditTool('kupu-source-button',
! 174: 'kupu-editor-textarea');
! 175: kupu.registerTool('sourceedittool', sourceedittool);
! 176:
! 177: // Drawers...
! 178:
! 179: // Function that returns function to open a drawer
! 180: var opendrawer = function(drawerid) {
! 181: return function(button, editor) {
! 182: drawertool.openDrawer(drawerid);
! 183: };
! 184: };
! 185:
! 186: var imagelibdrawerbutton = new KupuButton('kupu-imagelibdrawer-button',
! 187: opendrawer('imagelibdrawer'));
! 188: kupu.registerTool('imagelibdrawerbutton', imagelibdrawerbutton);
! 189:
! 190: var linklibdrawerbutton = new KupuButton('kupu-linklibdrawer-button',
! 191: opendrawer('linklibdrawer'));
! 192: kupu.registerTool('linklibdrawerbutton', linklibdrawerbutton);
! 193:
! 194: var linkdrawerbutton = new KupuButton('kupu-linkdrawer-button',
! 195: opendrawer('linkdrawer'));
! 196: kupu.registerTool('linkdrawerbutton', linkdrawerbutton);
! 197:
! 198: // var tabledrawerbutton = new KupuButton('kupu-tabledrawer-button',
! 199: // opendrawer('tabledrawer'));
! 200: // kupu.registerTool('tabledrawerbutton', tabledrawerbutton);
! 201:
! 202: // create some drawers, drawers are some sort of popups that appear when a
! 203: // toolbar button is clicked
! 204: var drawertool = new DrawerTool();
! 205: kupu.registerTool('drawertool', drawertool);
! 206:
! 207: var linklibdrawer = new LinkLibraryDrawer(linktool, conf['link_xsl_uri'],
! 208: conf['link_libraries_uri'],
! 209: conf['link_images_uri']);
! 210: drawertool.registerDrawer('linklibdrawer', linklibdrawer);
! 211:
! 212: var imagelibdrawer = new ImageLibraryDrawer(imagetool, conf['image_xsl_uri'],
! 213: conf['image_libraries_uri'],
! 214: conf['search_images_uri']);
! 215: drawertool.registerDrawer('imagelibdrawer', imagelibdrawer);
! 216:
! 217: var linkdrawer = new LinkDrawer('kupu-linkdrawer', linktool);
! 218: drawertool.registerDrawer('linkdrawer', linkdrawer);
! 219:
! 220: //var tabledrawer = new TableDrawer('kupu-tabledrawer', tabletool);
! 221: //drawertool.registerDrawer('tabledrawer', tabledrawer);
! 222:
! 223: // make the prepareForm method get called on form submit
! 224: // some bug in IE makes it crash on saving the form when a lib drawer
! 225: // was added to the page at some point, remove it on form submit
! 226: var savebutton = getFromSelector('kupu-save-button');
! 227: function prepareForm() {
! 228: var drawer = window.document.getElementById('kupu-librarydrawer');
! 229: if (drawer) {
! 230: drawer.parentNode.removeChild(drawer);
! 231: }
! 232: kupu.prepareForm(savebutton.form, 'kupu');
! 233: savebutton.form.submit();
! 234: };
! 235: addEventHandler(savebutton, 'click', prepareForm, kupu);
! 236:
! 237: //erweiterung preview dw
! 238: var previewbutton = getFromSelector('kupu-preview-button');
! 239: function preparePreviewForm() {
! 240: var drawer = window.document.getElementById('kupu-librarydrawer');
! 241: if (drawer) {
! 242: drawer.parentNode.removeChild(drawer);
! 243: }
! 244: kupu.prepareForm(previewbutton.form, 'preview');
! 245: previewbutton.form.submit();
! 246: };
! 247: addEventHandler(previewbutton, 'click', preparePreviewForm, kupu);
! 248:
! 249: // register some cleanup filter
! 250: // remove tags that aren't in the XHTML DTD
! 251: var nonxhtmltagfilter = new NonXHTMLTagFilter();
! 252: kupu.registerFilter(nonxhtmltagfilter);
! 253:
! 254: return kupu;
! 255: };
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>