Jump to content

User:Karl Dickman/tablebutton.js

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//============================================================
// Table generator
//============================================================

/**
 *
 * English: Generate an array using Mediawiki syntax
 *
 * @author: fr:user:dake (language conversion and  new options added by en:user:Voice of All)
 * @version: 0.1
 */
 
function generateTable(nbCol, nbRow, exfield)
{
        code = '\n{| class="wikitable"\n';
        code += "|+ TABLE CAPTION <!-- if required -->\n";
        if (exfield==true) code += '!\n';
        
        for (var i=1;i<nbCol+1;i++) code += '! FIELD ' + i + '\n';

        var items = 0;
        for (var j=0;j<nbRow;j++) 
        {
                   if (exfield==true) { 
                        items++;        
                        code += '|-\n'
                        code += '! ITEM ' + items + '\n';
                   }  else if (exfield==false) {                
                        code += '|-\n'
                   }    
                for (var i=0;i<nbCol;i++) code += '| element\n';
        }
        code += '|}\n';
        insertTags('','', code); 
}

/**
 *
 * English: Open a popup with parameters to generate an array. 
 * The number of rows/columns can be modified. Some additional
 * parameters are related to templates available on :fr
 *
 * @author: fr:user:dake
 * @version: 0.1
 */
 
function popupTable()
{
  var popup = window.open('about:blank','WPtable','height=350,width=400,scrollbars=yes');
  
  javaCode = '<script type="text\/javascript">function insertCode(){';
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ';
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ';
  javaCode += 'var exfield = document.paramForm.inputItems.checked; ';
  javaCode += 'window.opener.generateTable(col,row,exfield);';
  javaCode += 'window.close(); '
  javaCode += '}<\/script>';
  
  popup.document.write('<html><head><title>Make table</title>');
  popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
  popup.document.write('<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "\/skins-1.5\/wikistandard\/main.css?5"; /*]]>*/<\/style>');
  popup.document.write(javaCode); 
  popup.document.write('</head><body>');
  popup.document.write('<p>Enter the table parameters below: </p>');
  popup.document.write('<form name="paramForm">');
  popup.document.write('Number of rows: <input type="text" name="inputRow" value="3" ><p>');
  popup.document.write('Number of columns: <input type="text" name="inputCol" value="3" ><p>');
  popup.document.write('Item column: <input type="checkbox" name="inputItems" ><p>');
  popup.document.write('</form">');
  popup.document.write('<i>The default table contains one row of fields.</i><p>');
  popup.document.write('Check "Item column" to give the table a field row <i>and</i> an item column.</i><p>');
  popup.document.write('<p><a href="javascript:insertCode()"> Insert table</a>     |');
  popup.document.write('    <a href="javascript:self.close()">Cancel</a></p>');
  popup.document.write('</body></html>');
  popup.document.close();
}

//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
function table_button()
{
 var toolbar = document.getElementById('toolbar');
 if (!toolbar) return false;
 
 var textbox = document.getElementById('wpTextbox1');
 if (!textbox) return false;
 
 if (!document.selection && textbox.selectionStart == null)
 return false;
 
 var image = document.createElement("img");
 image.width = 23;
 image.height = 22;
 image.src = '/media/wikipedia/commons/0/04/Button_array.png';
 image.border = 0;
 image.alt = 'Table';
 image.title = 'Make table';
 image.style.cursor = "pointer";
 image.onclick = function() {
   popupTable();
   return false;
 }
 toolbar.appendChild(image);
}

// Changes made on Sat, 30 Sep 2006 20:28 UTC, seems to work on IE
addOnloadHook(table_button);