Jump to content

MediaWiki:Gadget-Table.js

From Wikipedia!

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
function generateRowHeader(nbHCol, row_i)
{
    var code = "";
    for (var i=0;i<nbHCol;i++)
        code += "! entêteR"+row_i+"Ch"+(i+1)+"\n";
    return code;
}
function generateTableau(nbCol, nbRow, nbHCol, nbHRow, border, styleHeader, styleLine, arrayTitle)
{
    var code = "\n{| " +
        ((styleHeader==1) ? 'class="wikitable"' : '')+
        ' border="' + border + '"\n'+(arrayTitle.length>0?'|+ '+arrayTitle+'\n':'');

    for (var y=0;y<nbHRow;y++)
    {
        var y_coord = 'h'+(y+1);
        if (y>0) code += '|-----\n';
        code += generateRowHeader(nbHCol, y_coord);
        for (var i=0;i<nbCol;i++)
        {
            code += '! entêteR'+y_coord+'C'+(i+1)+'\n';
        }
    }

    for (var j=0;j<nbRow;j++)
    {
        var y_coord = (j+1);
        code += '|-' + ( ((j&1)==1 && styleLine==1)
              ? '{'+'{ligne grise}'+'}\n'
              : '----\n');
        code += generateRowHeader(nbHCol, y_coord);
        for (var i=0;i<nbCol;i++)
        {
            code += '| élémentR'+y_coord+'C'+(i+1)+'\n';
        }
    }

    code += '|}';
    insertTags('','', code); 
}
function popupTableau()
{
    var popup = window.open('','name','width=550,height=300');

    popup.document.write(
        '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'+
        '<title>Table Unicode</title><script type="text\/javascript">'+
        '\nwgBreakFrames=1;\nvar stylepath = "'+stylepath+'";\nvar wgContentLanguage = "'+wgContentLanguage+'";\n</script>'+
        '<script type="text\/javascript" src="'+stylepath+'\/common\/wikibits.js"><!-- wikibits js --><\/script>'+
        '<style type="text\/css" media="screen,projection">/*<![CDATA[*/ @import "'+stylepath+'\/monobook\/main.css"; /*]]>*/<\/style>'+
        '<style type="text\/css">body, td { font-size: 12pt; }<\/style>'+
        '<script type="text\/javascript">function insertCode(){'+
        'window.opener.generateTableau('+
            'parseInt(document.paramForm.inputCol.value),'+
            'parseInt(document.paramForm.inputRow.value),'+
            'parseInt(document.paramForm.inputColHeader.value),'+
            'parseInt(document.paramForm.inputRowHeader.value),'+
            'parseInt(document.paramForm.inputBorder.value),'+
            'document.paramForm.inputHeader.checked,'+
            'document.paramForm.inputLine.checked,'+
            'document.paramForm.arrayTitle.value);'+
        '}<\/script>'+
        '</head><body>'+
        '<p>Veuillez entrer les paramètres du tableau : </p>'+
        '<form name="paramForm"><table>'+
        '<tr><td>Paramètres</td><td>En-tête</td><td>Normal</td></tr>'+
        '<tr><td>Lignes :</td><td><input type="text" name="inputRowHeader" value="1" title="Nombre de lignes d\'en-tête"></td>'+
        '<td><input type="text" name="inputRow" value="3" ></td></tr>'+
        '<tr><td>Colonnes :</td><td><input type="text" name="inputColHeader" value="0" title="Nombre de colonnes d\'en-tête"></td>'+
        '<td><input type="text" name="inputCol" value="3" ></td></tr>'+
        '<tr><td>Largeur de la bordure :</td><td colspan="2"><input type="text" name="inputBorder" value="1" ></td></tr>'+
        '<tr><td colspan="3">Titre du tableau :<input type="text" name="arrayTitle" value="" size="40" style="width:400px;"></td></tr>'+
        '<tr><td colspan="2"><input type="checkbox" id="inputHeader" name="inputHeader" checked="1" >'+
        ' <label for="inputHeader">En-tête en gris (style « charte graphique »)</label></td></tr>'+
        '<tr><td colspan="2"><input type="checkbox" id="inputLine" name="inputLine" checked="1" >'+
        ' <label for="inputLine">Lignes grises alternées (style « charte graphique »)</td></tr>'+
        '<tr><td><input type="button" onclick="insertCode()" value="Insérer" title="Insérer le code wiki dans la fenêtre d\'édition"></td>'+
        '<td><input type="button" onclick="javascript:self.close()" value="Fermer"></td></tr>'+
        '</table></form">'+
        '</body></html>');
    popup.document.close();
}
function marqueTab() {
    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 = url_wpcm+'0/04/Button_array.png';
    image.border = 0;
    image.alt = 'Tableau';
    image.title = 'Tableau';
    image.style.cursor = "pointer";
    image.onclick = function() {
        popupTableau();
        return false;
    };
    toolbar.appendChild(image);
if (!wgIsScriptPage)
	 $(marqueTab);