[ Index ]
 

Code source de Kupu-1.3.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/common/ -> kupuinit_form.js (source)

   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      var tabletoolbox = new TableToolBox('kupu-toolbox-addtable', 
 160          'kupu-toolbox-edittable', 'kupu-table-newrows', 'kupu-table-newcols',
 161          'kupu-table-makeheader', 'kupu-table-classchooser', 'kupu-table-alignchooser',
 162          'kupu-table-addtable-button', 'kupu-table-addrow-button', 'kupu-table-delrow-button', 
 163          'kupu-table-addcolumn-button', 'kupu-table-delcolumn-button', 
 164          'kupu-table-fix-button', 'kupu-table-fixall-button', 'kupu-toolbox-tables',
 165          'kupu-toolbox', 'kupu-toolbox-active'
 166          );
 167      tabletool.registerToolBox('tabletoolbox', tabletoolbox);
 168  
 169      var showpathtool = new ShowPathTool();
 170      kupu.registerTool('showpathtool', showpathtool);
 171  
 172      var sourceedittool = new SourceEditTool('kupu-source-button',
 173                                              'kupu-editor-textarea');
 174      kupu.registerTool('sourceedittool', sourceedittool);
 175  
 176      // Drawers...
 177  
 178      // Function that returns function to open a drawer
 179      var opendrawer = function(drawerid) {
 180          return function(button, editor) {
 181              drawertool.openDrawer(drawerid);
 182          };
 183      };
 184  
 185      var imagelibdrawerbutton = new KupuButton('kupu-imagelibdrawer-button',
 186                                                opendrawer('imagelibdrawer'));
 187      kupu.registerTool('imagelibdrawerbutton', imagelibdrawerbutton);
 188  
 189      var linklibdrawerbutton = new KupuButton('kupu-linklibdrawer-button',
 190                                               opendrawer('linklibdrawer'));
 191      kupu.registerTool('linklibdrawerbutton', linklibdrawerbutton);
 192  
 193      var linkdrawerbutton = new KupuButton('kupu-linkdrawer-button',
 194                                            opendrawer('linkdrawer'));
 195      kupu.registerTool('linkdrawerbutton', linkdrawerbutton);
 196  
 197      var tabledrawerbutton = new KupuButton('kupu-tabledrawer-button',
 198                                             opendrawer('tabledrawer'));
 199      kupu.registerTool('tabledrawerbutton', tabledrawerbutton);
 200  
 201      // create some drawers, drawers are some sort of popups that appear when a 
 202      // toolbar button is clicked
 203      var drawertool = new DrawerTool();
 204      kupu.registerTool('drawertool', drawertool);
 205  
 206      var linklibdrawer = new LinkLibraryDrawer(linktool, conf['link_xsl_uri'],
 207                                                conf['link_libraries_uri'],
 208                                                conf['link_images_uri']);
 209      drawertool.registerDrawer('linklibdrawer', linklibdrawer);
 210  
 211      var imagelibdrawer = new ImageLibraryDrawer(imagetool, conf['image_xsl_uri'],
 212                                                  conf['image_libraries_uri'],
 213                                                  conf['search_images_uri']);
 214      drawertool.registerDrawer('imagelibdrawer', imagelibdrawer);
 215  
 216      var linkdrawer = new LinkDrawer('kupu-linkdrawer', linktool);
 217      drawertool.registerDrawer('linkdrawer', linkdrawer);
 218  
 219      var tabledrawer = new TableDrawer('kupu-tabledrawer', tabletool);
 220      drawertool.registerDrawer('tabledrawer', tabledrawer);
 221  
 222      // make the prepareForm method get called on form submit
 223      // some bug in IE makes it crash on saving the form when a lib drawer
 224      // was added to the page at some point, remove it on form submit
 225      var savebutton = getFromSelector('kupu-save-button');
 226      function prepareForm() {
 227          var drawer = window.document.getElementById('kupu-librarydrawer');
 228          if (drawer) {
 229              drawer.parentNode.removeChild(drawer);
 230          }
 231          kupu.prepareForm(savebutton.form, 'kupu');
 232          savebutton.form.submit();
 233      };
 234      addEventHandler(savebutton, 'click', prepareForm, kupu);
 235  
 236      // register some cleanup filter
 237      // remove tags that aren't in the XHTML DTD
 238      var nonxhtmltagfilter = new NonXHTMLTagFilter();
 239      kupu.registerFilter(nonxhtmltagfilter);
 240  
 241      return kupu;
 242  };


Généré le : Sun Feb 25 15:30:41 2007 par Balluche grâce à PHPXref 0.7