[ Index ]
 

Code source de e107 0.7.8

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

title

Body

[fermer]

/e107_handlers/tiny_mce/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      if (!AutoValidator.validate(formObj)) {
  12          alert(tinyMCE.getLang('lang_invalid_data'));
  13          return false;
  14      }
  15  
  16      tinyMCEPopup.restoreSelection();
  17  
  18      // Get form data
  19      cols = formObj.elements['cols'].value;
  20      rows = formObj.elements['rows'].value;
  21      border = formObj.elements['border'].value != "" ? formObj.elements['border'].value  : 0;
  22      cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
  23      cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
  24      align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
  25      width = formObj.elements['width'].value;
  26      height = formObj.elements['height'].value;
  27      bordercolor = formObj.elements['bordercolor'].value;
  28      bgcolor = formObj.elements['bgcolor'].value;
  29      className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
  30      id = formObj.elements['id'].value;
  31      summary = formObj.elements['summary'].value;
  32      style = formObj.elements['style'].value;
  33      dir = formObj.elements['dir'].value;
  34      lang = formObj.elements['lang'].value;
  35      background = formObj.elements['backgroundimage'].value;
  36  
  37      cellLimit = tinyMCE.getParam('table_cell_limit', false);
  38      rowLimit = tinyMCE.getParam('table_row_limit', false);
  39      colLimit = tinyMCE.getParam('table_col_limit', false);
  40  
  41      // Validate table size
  42      if (colLimit && cols > colLimit) {
  43          alert(tinyMCE.getLang('lang_table_col_limit', '', true, {cols : colLimit}));
  44          return false;
  45      } else if (rowLimit && rows > rowLimit) {
  46          alert(tinyMCE.getLang('lang_table_row_limit', '', true, {rows : rowLimit}));
  47          return false;
  48      } else if (cellLimit && cols * rows > cellLimit) {
  49          alert(tinyMCE.getLang('lang_table_cell_limit', '', true, {cells : cellLimit}));
  50          return false;
  51      }
  52  
  53      // Update table
  54      if (action == "update") {
  55          inst.execCommand('mceBeginUndoLevel');
  56  
  57          tinyMCE.setAttrib(elm, 'cellPadding', cellpadding, true);
  58          tinyMCE.setAttrib(elm, 'cellSpacing', cellspacing, true);
  59          tinyMCE.setAttrib(elm, 'border', border, true);
  60          tinyMCE.setAttrib(elm, 'align', align);
  61          tinyMCE.setAttrib(elm, 'class', className);
  62          tinyMCE.setAttrib(elm, 'style', style);
  63          tinyMCE.setAttrib(elm, 'id', id);
  64          tinyMCE.setAttrib(elm, 'summary', summary);
  65          tinyMCE.setAttrib(elm, 'dir', dir);
  66          tinyMCE.setAttrib(elm, 'lang', lang);
  67  
  68          // Not inline styles
  69          if (!tinyMCE.getParam("inline_styles"))
  70              tinyMCE.setAttrib(elm, 'width', width, true);
  71  
  72          // Remove these since they are not valid XHTML
  73          tinyMCE.setAttrib(elm, 'borderColor', '');
  74          tinyMCE.setAttrib(elm, 'bgColor', '');
  75          tinyMCE.setAttrib(elm, 'background', '');
  76          tinyMCE.setAttrib(elm, 'height', '');
  77  
  78          if (background != '')
  79              elm.style.backgroundImage = "url('" + background + "')";
  80          else
  81              elm.style.backgroundImage = '';
  82  
  83          if (tinyMCE.getParam("inline_styles"))
  84              elm.style.borderWidth = border + "px";
  85  
  86          if (tinyMCE.getParam("inline_styles")) {
  87              if (width != '')
  88                  elm.style.width = getCSSSize(width);
  89          }
  90  
  91          if (bordercolor != "") {
  92              elm.style.borderColor = bordercolor;
  93              elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
  94              elm.style.borderWidth = border == "" ? "1px" : border;
  95          } else
  96              elm.style.borderColor = '';
  97  
  98          elm.style.backgroundColor = bgcolor;
  99          elm.style.height = getCSSSize(height);
 100  
 101          tinyMCE.handleVisualAid(tinyMCE.tableElm, false, inst.visualAid, inst);
 102  
 103          // Fix for stange MSIE align bug
 104          tinyMCE.tableElm.outerHTML = tinyMCE.tableElm.outerHTML;
 105  
 106          tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
 107          tinyMCE.triggerNodeChange();
 108          inst.execCommand('mceEndUndoLevel');
 109  
 110          // Repaint if dimensions changed
 111          if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
 112              inst.repaint();
 113  
 114          tinyMCEPopup.close();
 115          return true;
 116      }
 117  
 118      // Create new table
 119      html += '<table';
 120  
 121      html += makeAttrib('id', id);
 122      html += makeAttrib('border', border);
 123      html += makeAttrib('cellpadding', cellpadding);
 124      html += makeAttrib('cellspacing', cellspacing);
 125      html += makeAttrib('width', width);
 126      //html += makeAttrib('height', height);
 127      //html += makeAttrib('bordercolor', bordercolor);
 128      //html += makeAttrib('bgcolor', bgcolor);
 129      html += makeAttrib('align', align);
 130      html += makeAttrib('class', tinyMCE.getVisualAidClass(className, border == 0));
 131      html += makeAttrib('style', style);
 132      html += makeAttrib('summary', summary);
 133      html += makeAttrib('dir', dir);
 134      html += makeAttrib('lang', lang);
 135  
 136      html += '>';
 137  
 138      for (var y=0; y<rows; y++) {
 139          html += "<tr>";
 140  
 141          for (var x=0; x<cols; x++)
 142              html += '<td>&nbsp;</td>';
 143  
 144          html += "</tr>";
 145      }
 146  
 147      html += "</table>";
 148  
 149      inst.execCommand('mceBeginUndoLevel');
 150      inst.execCommand('mceInsertContent', false, html);
 151      tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual']);
 152      inst.execCommand('mceEndUndoLevel');
 153  
 154      tinyMCEPopup.close();
 155  }
 156  
 157  function makeAttrib(attrib, value) {
 158      var formObj = document.forms[0];
 159      var valueElm = formObj.elements[attrib];
 160  
 161      if (typeof(value) == "undefined" || value == null) {
 162          value = "";
 163  
 164          if (valueElm)
 165              value = valueElm.value;
 166      }
 167  
 168      if (value == "")
 169          return "";
 170  
 171      // XML encode it
 172      value = value.replace(/&/g, '&amp;');
 173      value = value.replace(/\"/g, '&quot;');
 174      value = value.replace(/</g, '&lt;');
 175      value = value.replace(/>/g, '&gt;');
 176  
 177      return ' ' + attrib + '="' + value + '"';
 178  }
 179  
 180  function init() {
 181      tinyMCEPopup.resizeToInnerSize();
 182  
 183      document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
 184      document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
 185      document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
 186      document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
 187  
 188      var cols = 2, rows = 2, border = tinyMCE.getParam('table_default_border', '0'), cellpadding = tinyMCE.getParam('table_default_cellpadding', ''), cellspacing = tinyMCE.getParam('table_default_cellspacing', '');
 189      var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
 190      var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "";
 191      var inst = tinyMCE.selectedInstance;
 192      var formObj = document.forms[0];
 193      var elm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
 194  
 195      tinyMCE.tableElm = elm;
 196      action = tinyMCE.getWindowArg('action');
 197      if (action == null)
 198          action = tinyMCE.tableElm ? "update" : "insert";
 199  
 200      if (tinyMCE.tableElm && action != "insert") {
 201          var rowsAr = tinyMCE.tableElm.rows;
 202          var cols = 0;
 203          for (var i=0; i<rowsAr.length; i++)
 204              if (rowsAr[i].cells.length > cols)
 205                  cols = rowsAr[i].cells.length;
 206  
 207          cols = cols;
 208          rows = rowsAr.length;
 209  
 210          st = tinyMCE.parseStyle(tinyMCE.getAttrib(tinyMCE.tableElm, "style"));
 211          border = trimSize(getStyle(elm, 'border', 'borderWidth'));
 212          cellpadding = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellpadding', "");
 213          cellspacing = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellspacing', "");
 214          width = trimSize(getStyle(elm, 'width', 'width'));
 215          height = trimSize(getStyle(elm, 'height', 'height'));
 216          bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
 217          bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
 218          align = tinyMCE.getAttrib(tinyMCE.tableElm, 'align', align);
 219          className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm, 'class'), false);
 220          id = tinyMCE.getAttrib(tinyMCE.tableElm, 'id');
 221          summary = tinyMCE.getAttrib(tinyMCE.tableElm, 'summary');
 222          style = tinyMCE.serializeStyle(st);
 223          dir = tinyMCE.getAttrib(tinyMCE.tableElm, 'dir');
 224          lang = tinyMCE.getAttrib(tinyMCE.tableElm, 'lang');
 225          background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
 226  
 227          orgTableWidth = width;
 228          orgTableHeight = height;
 229  
 230          action = "update";
 231      }
 232  
 233      addClassesToList('class', "table_styles");
 234  
 235      // Update form
 236      selectByValue(formObj, 'align', align);
 237      selectByValue(formObj, 'class', className);
 238      formObj.cols.value = cols;
 239      formObj.rows.value = rows;
 240      formObj.border.value = border;
 241      formObj.cellpadding.value = cellpadding;
 242      formObj.cellspacing.value = cellspacing;
 243      formObj.width.value = width;
 244      formObj.height.value = height;
 245      formObj.bordercolor.value = bordercolor;
 246      formObj.bgcolor.value = bgcolor;
 247      formObj.id.value = id;
 248      formObj.summary.value = summary;
 249      formObj.style.value = style;
 250      formObj.dir.value = dir;
 251      formObj.lang.value = lang;
 252      formObj.backgroundimage.value = background;
 253      formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); 
 254  
 255      updateColor('bordercolor_pick', 'bordercolor');
 256      updateColor('bgcolor_pick', 'bgcolor');
 257  
 258      // Resize some elements
 259      if (isVisible('backgroundimagebrowser'))
 260          document.getElementById('backgroundimage').style.width = '180px';
 261  
 262      // Disable some fields in update mode
 263      if (action == "update") {
 264          formObj.cols.disabled = true;
 265          formObj.rows.disabled = true;
 266      }
 267  }
 268  
 269  function changedSize() {
 270      var formObj = document.forms[0];
 271      var st = tinyMCE.parseStyle(formObj.style.value);
 272  
 273      var width = formObj.width.value;
 274      if (width != "")
 275          st['width'] = tinyMCE.getParam("inline_styles") ? getCSSSize(width) : "";
 276      else
 277          st['width'] = "";
 278  
 279      var height = formObj.height.value;
 280      if (height != "")
 281          st['height'] = getCSSSize(height);
 282      else
 283          st['height'] = "";
 284  
 285      formObj.style.value = tinyMCE.serializeStyle(st);
 286  }
 287  
 288  function changedBackgroundImage() {
 289      var formObj = document.forms[0];
 290      var st = tinyMCE.parseStyle(formObj.style.value);
 291  
 292      st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
 293  
 294      formObj.style.value = tinyMCE.serializeStyle(st);
 295  }
 296  
 297  function changedBorder() {
 298      var formObj = document.forms[0];
 299      var st = tinyMCE.parseStyle(formObj.style.value);
 300  
 301      // Update border width if the element has a color
 302      if (formObj.border.value != "" && formObj.bordercolor.value != "")
 303          st['border-width'] = formObj.border.value + "px";
 304  
 305      formObj.style.value = tinyMCE.serializeStyle(st);
 306  }
 307  
 308  function changedColor() {
 309      var formObj = document.forms[0];
 310      var st = tinyMCE.parseStyle(formObj.style.value);
 311  
 312      st['background-color'] = formObj.bgcolor.value;
 313  
 314      if (formObj.bordercolor.value != "") {
 315          st['border-color'] = formObj.bordercolor.value;
 316  
 317          // Add border-width if it's missing
 318          if (!st['border-width'])
 319              st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";
 320      }
 321  
 322      formObj.style.value = tinyMCE.serializeStyle(st);
 323  }
 324  
 325  function changedStyle() {
 326      var formObj = document.forms[0];
 327      var st = tinyMCE.parseStyle(formObj.style.value);
 328  
 329      if (st['background-image'])
 330          formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
 331      else
 332          formObj.backgroundimage.value = '';
 333  
 334      if (st['width'])
 335          formObj.width.value = trimSize(st['width']);
 336  
 337      if (st['height'])
 338          formObj.height.value = trimSize(st['height']);
 339  
 340      if (st['background-color']) {
 341          formObj.bgcolor.value = st['background-color'];
 342          updateColor('bgcolor_pick','bgcolor');
 343      }
 344  
 345      if (st['border-color']) {
 346          formObj.bordercolor.value = st['border-color'];
 347          updateColor('bordercolor_pick','bordercolor');
 348      }
 349  }


Généré le : Sun Apr 1 01:23:32 2007 par Balluche grâce à PHPXref 0.7