[ Index ]
 

Code source de Seagull 0.6.1

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

title

Body

[fermer]

/tinyfck/plugins/table/jscripts/ -> table.js (source)

   1  var action, orgTableWidth, orgTableHeight;
   2  
   3  function insertTable() {
   4      var formObj = document.forms[0];
   5      var inst = tinyMCE.selectedInstance;
   6      var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className;
   7      var html = '';
   8      var elm = tinyMCE.tableElm;
   9      var cellLimit, rowLimit, colLimit;
  10  
  11      tinyMCEPopup.restoreSelection();
  12  
  13      // Get form data

  14      cols = formObj.elements['cols'].value;
  15      rows = formObj.elements['rows'].value;
  16      border = formObj.elements['border'].value != "" ? formObj.elements['border'].value  : 0;
  17      cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
  18      cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
  19      align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
  20      width = formObj.elements['width'].value;
  21      height = formObj.elements['height'].value;
  22      bordercolor = formObj.elements['bordercolor'].value;
  23      bgcolor = formObj.elements['bgcolor'].value;
  24      className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
  25      id = formObj.elements['id'].value;
  26      summary = formObj.elements['summary'].value;
  27      style = formObj.elements['style'].value;
  28      dir = formObj.elements['dir'].value;
  29      lang = formObj.elements['lang'].value;
  30      background = formObj.elements['backgroundimage'].value;
  31  
  32      cellLimit = tinyMCE.getParam('table_cell_limit', false);
  33      rowLimit = tinyMCE.getParam('table_row_limit', false);
  34      colLimit = tinyMCE.getParam('table_col_limit', false);
  35  
  36      // Validate table size

  37      if (colLimit && cols > colLimit) {
  38          alert(tinyMCE.getLang('lang_table_col_limit', '', true, {cols : colLimit}));
  39          return false;
  40      } else if (rowLimit && rows > rowLimit) {
  41          alert(tinyMCE.getLang('lang_table_row_limit', '', true, {rows : rowLimit}));
  42          return false;
  43      } else if (cellLimit && cols * rows > cellLimit) {
  44          alert(tinyMCE.getLang('lang_table_cell_limit', '', true, {cells : cellLimit}));
  45          return false;
  46      }
  47  
  48      // Update table

  49      if (action == "update") {
  50          inst.execCommand('mceBeginUndoLevel');
  51  
  52          tinyMCE.setAttrib(elm, 'cellPadding', cellpadding, true);
  53          tinyMCE.setAttrib(elm, 'cellSpacing', cellspacing, true);
  54          tinyMCE.setAttrib(elm, 'border', border, true);
  55          tinyMCE.setAttrib(elm, 'align', align);
  56          tinyMCE.setAttrib(elm, 'class', className);
  57          tinyMCE.setAttrib(elm, 'style', style);
  58          tinyMCE.setAttrib(elm, 'id', id);
  59          tinyMCE.setAttrib(elm, 'summary', summary);
  60          tinyMCE.setAttrib(elm, 'dir', dir);
  61          tinyMCE.setAttrib(elm, 'lang', lang);
  62  
  63          // Not inline styles

  64          if (!tinyMCE.getParam("inline_styles"))
  65              tinyMCE.setAttrib(elm, 'width', width, true);
  66  
  67          // Remove these since they are not valid XHTML

  68          tinyMCE.setAttrib(elm, 'borderColor', '');
  69          tinyMCE.setAttrib(elm, 'bgColor', '');
  70          tinyMCE.setAttrib(elm, 'background', '');
  71          tinyMCE.setAttrib(elm, 'height', '');
  72  
  73          if (background != '')
  74              elm.style.backgroundImage = "url('" + background + "')";
  75          else
  76              elm.style.backgroundImage = '';
  77  
  78          if (tinyMCE.getParam("inline_styles"))
  79              elm.style.borderWidth = border + "px";
  80  
  81          if (tinyMCE.getParam("inline_styles")) {
  82              if (width != '')
  83                  elm.style.width = getCSSSize(width);
  84          }
  85  
  86          if (bordercolor != "") {
  87              elm.style.borderColor = bordercolor;
  88              elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
  89              elm.style.borderWidth = border == "" ? "1px" : border;
  90          } else
  91              elm.style.borderColor = '';
  92  
  93          elm.style.backgroundColor = bgcolor;
  94          elm.style.height = getCSSSize(height);
  95  
  96          tinyMCE.handleVisualAid(tinyMCE.tableElm, false, inst.visualAid, inst);
  97  
  98          // Fix for stange MSIE align bug

  99          tinyMCE.tableElm.outerHTML = tinyMCE.tableElm.outerHTML;
 100  
 101          tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
 102          tinyMCE.triggerNodeChange();
 103          inst.execCommand('mceEndUndoLevel');
 104  
 105          // Repaint if dimensions changed

 106          if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
 107              inst.repaint();
 108  
 109          tinyMCEPopup.close();
 110          return true;
 111      }
 112  
 113      // Create new table

 114      html += '<table';
 115  
 116      html += makeAttrib('id', id);
 117      html += makeAttrib('border', border);
 118      html += makeAttrib('cellpadding', cellpadding);
 119      html += makeAttrib('cellspacing', cellspacing);
 120      html += makeAttrib('width', width);
 121      //html += makeAttrib('height', height);

 122      //html += makeAttrib('bordercolor', bordercolor);

 123      //html += makeAttrib('bgcolor', bgcolor);

 124      html += makeAttrib('align', align);
 125      html += makeAttrib('class', tinyMCE.getVisualAidClass(className, border == 0));
 126      html += makeAttrib('style', style);
 127      html += makeAttrib('summary', summary);
 128      html += makeAttrib('dir', dir);
 129      html += makeAttrib('lang', lang);
 130  
 131      html += '>';
 132  
 133      for (var y=0; y<rows; y++) {
 134          html += "<tr>";
 135  
 136          for (var x=0; x<cols; x++)
 137              html += '<td>&nbsp;</td>';
 138  
 139          html += "</tr>";
 140      }
 141  
 142      html += "</table>";
 143  
 144      inst.execCommand('mceBeginUndoLevel');
 145      inst.execCommand('mceInsertContent', false, html);
 146      tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual']);
 147      inst.execCommand('mceEndUndoLevel');
 148  
 149      tinyMCEPopup.close();
 150  }
 151  
 152  function makeAttrib(attrib, value) {
 153      var formObj = document.forms[0];
 154      var valueElm = formObj.elements[attrib];
 155  
 156      if (typeof(value) == "undefined" || value == null) {
 157          value = "";
 158  
 159          if (valueElm)
 160              value = valueElm.value;
 161      }
 162  
 163      if (value == "")
 164          return "";
 165  
 166      // XML encode it

 167      value = value.replace(/&/g, '&amp;');
 168      value = value.replace(/\"/g, '&quot;');
 169      value = value.replace(/</g, '&lt;');
 170      value = value.replace(/>/g, '&gt;');
 171  
 172      return ' ' + attrib + '="' + value + '"';
 173  }
 174  
 175  function init() {
 176      tinyMCEPopup.resizeToInnerSize();
 177  
 178      document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
 179      document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
 180      document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
 181      document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
 182  
 183      var cols = 2, rows = 2, border = 0, cellpadding = "", cellspacing = "";
 184      var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
 185      var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "";
 186      var inst = tinyMCE.selectedInstance;
 187      var formObj = document.forms[0];
 188      var elm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
 189  
 190      tinyMCE.tableElm = elm;
 191      action = tinyMCE.getWindowArg('action');
 192      if (action == null)
 193          action = tinyMCE.tableElm ? "update" : "insert";
 194  
 195      if (tinyMCE.tableElm && action != "insert") {
 196          var rowsAr = tinyMCE.tableElm.rows;
 197          var cols = 0;
 198          for (var i=0; i<rowsAr.length; i++)
 199              if (rowsAr[i].cells.length > cols)
 200                  cols = rowsAr[i].cells.length;
 201  
 202          cols = cols;
 203          rows = rowsAr.length;
 204  
 205          st = tinyMCE.parseStyle(tinyMCE.getAttrib(tinyMCE.tableElm, "style"));
 206          border = trimSize(getStyle(elm, 'border', 'borderWidth'));
 207          cellpadding = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellpadding', "");
 208          cellspacing = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellspacing', "");
 209          width = trimSize(getStyle(elm, 'width', 'width'));
 210          height = trimSize(getStyle(elm, 'height', 'height'));
 211          bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
 212          bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
 213          align = tinyMCE.getAttrib(tinyMCE.tableElm, 'align', align);
 214          className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm, 'class'), false);
 215          id = tinyMCE.getAttrib(tinyMCE.tableElm, 'id');
 216          summary = tinyMCE.getAttrib(tinyMCE.tableElm, 'summary');
 217          style = tinyMCE.serializeStyle(st);
 218          dir = tinyMCE.getAttrib(tinyMCE.tableElm, 'dir');
 219          lang = tinyMCE.getAttrib(tinyMCE.tableElm, 'lang');
 220          background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
 221  
 222          orgTableWidth = width;
 223          orgTableHeight = height;
 224  
 225          action = "update";
 226      }
 227  
 228      addClassesToList('class', "table_styles");
 229  
 230      // Update form

 231      selectByValue(formObj, 'align', align);
 232      selectByValue(formObj, 'class', className);
 233      formObj.cols.value = cols;
 234      formObj.rows.value = rows;
 235      formObj.border.value = border;
 236      formObj.cellpadding.value = cellpadding;
 237      formObj.cellspacing.value = cellspacing;
 238      formObj.width.value = width;
 239      formObj.height.value = height;
 240      formObj.bordercolor.value = bordercolor;
 241      formObj.bgcolor.value = bgcolor;
 242      formObj.id.value = id;
 243      formObj.summary.value = summary;
 244      formObj.style.value = style;
 245      formObj.dir.value = dir;
 246      formObj.lang.value = lang;
 247      formObj.backgroundimage.value = background;
 248      formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); 
 249  
 250      updateColor('bordercolor_pick', 'bordercolor');
 251      updateColor('bgcolor_pick', 'bgcolor');
 252  
 253      // Resize some elements

 254      if (isVisible('backgroundimagebrowser'))
 255          document.getElementById('backgroundimage').style.width = '180px';
 256  
 257      // Disable some fields in update mode

 258      if (action == "update") {
 259          formObj.cols.disabled = true;
 260          formObj.rows.disabled = true;
 261      }
 262  }
 263  
 264  function changedSize() {
 265      var formObj = document.forms[0];
 266      var st = tinyMCE.parseStyle(formObj.style.value);
 267  
 268      var width = formObj.width.value;
 269      if (width != "")
 270          st['width'] = tinyMCE.getParam("inline_styles") ? getCSSSize(width) : "";
 271      else
 272          st['width'] = "";
 273  
 274      var height = formObj.height.value;
 275      if (height != "")
 276          st['height'] = getCSSSize(height);
 277      else
 278          st['height'] = "";
 279  
 280      formObj.style.value = tinyMCE.serializeStyle(st);
 281  }
 282  
 283  function changedBackgroundImage() {
 284      var formObj = document.forms[0];
 285      var st = tinyMCE.parseStyle(formObj.style.value);
 286  
 287      st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
 288  
 289      formObj.style.value = tinyMCE.serializeStyle(st);
 290  }
 291  
 292  function changedBorder() {
 293      var formObj = document.forms[0];
 294      var st = tinyMCE.parseStyle(formObj.style.value);
 295  
 296      // Update border width if the element has a color

 297      if (formObj.border.value != "" && formObj.bordercolor.value != "")
 298          st['border-width'] = formObj.border.value + "px";
 299  
 300      formObj.style.value = tinyMCE.serializeStyle(st);
 301  }
 302  
 303  function changedColor() {
 304      var formObj = document.forms[0];
 305      var st = tinyMCE.parseStyle(formObj.style.value);
 306  
 307      st['background-color'] = formObj.bgcolor.value;
 308  
 309      if (formObj.bordercolor.value != "") {
 310          st['border-color'] = formObj.bordercolor.value;
 311  
 312          // Add border-width if it's missing

 313          if (!st['border-width'])
 314              st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";
 315      }
 316  
 317      formObj.style.value = tinyMCE.serializeStyle(st);
 318  }
 319  
 320  function changedStyle() {
 321      var formObj = document.forms[0];
 322      var st = tinyMCE.parseStyle(formObj.style.value);
 323  
 324      if (st['background-image'])
 325          formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
 326      else
 327          formObj.backgroundimage.value = '';
 328  
 329      if (st['width'])
 330          formObj.width.value = trimSize(st['width']);
 331  
 332      if (st['height'])
 333          formObj.height.value = trimSize(st['height']);
 334  
 335      if (st['background-color']) {
 336          formObj.bgcolor.value = st['background-color'];
 337          updateColor('bgcolor_pick','bgcolor');
 338      }
 339  
 340      if (st['border-color']) {
 341          formObj.bordercolor.value = st['border-color'];
 342          updateColor('bordercolor_pick','bordercolor');
 343      }
 344  }


Généré le : Fri Mar 30 01:27:52 2007 par Balluche grâce à PHPXref 0.7