MediaWiki:Common.js: Difference between revisions

From LBA File Information
Jump to navigation Jump to search
No edit summary
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 15: Line 15:
function reindexTable(id)
function reindexTable(id)
{
{
   var cb = document.getElementById('index0_' + id);
   var cb = document.getElementById('index1_' + id);
   if (cb && reid_tables[id]) {
   if (cb && reid_tables[id]) {
     var delta;
     var delta;
     if (cb.checked)
     if (cb.checked)
      delta = 1;
    else
       delta = -1;
       delta = -1;
    else
      delta = 1;
     for (a = 0; a < reid_tables[id].rows.length; a++) {
     for (a = 0; a < reid_tables[id].rows.length; a++) {
       var row = reid_tables[id].rows[a];   
       var row = reid_tables[id].rows[a];   
       if (!isNaN(row.cells[0].innerHTML))
       var cell = row.cells[0].innerHTML.trim();   
         row.cells[0].innerHTML = parseInt(row.cells[0].innerHTML) + delta;
     
      if (!isNaN(row.cells[1].innerHTML.substr(4).trim())) {
      if (cell != '') {   
         var n = parseInt(row.cells[1].innerHTML.substr(4).trim());
         if (!isNaN(cell)) //normal index
         alert('n = ' + n);
          row.cells[0].innerHTML = parseInt(cell) + delta;
        row.cells[1].innerHTML.replace(n, n + delta);
        else { //range index
          var spl = cell.split("-");
          if (spl.length > 1) {
            spl[0] = spl[0].trim();
            spl[1] = spl[1].trim();
            if (!isNaN(spl[0]) && !isNaN(spl[1]))
              row.cells[0].innerHTML = (parseInt(spl[0]) + delta) + " - " + (parseInt(spl[1]) + delta);
           
          }
        }
      }   
 
      //repeated index
      if (row.cells.length > 1) {
         cell = row.cells[1].innerHTML.trim().substr(4);
         if (!isNaN(cell)) {
          var n = parseInt(cell);
          row.cells[1].innerHTML = row.cells[1].innerHTML.replace(n, n + delta);
        }
       }
       }
     }
     }
Line 44: Line 62:
     reid_tables[a].caption.innerHTML += '<br>';
     reid_tables[a].caption.innerHTML += '<br>';
   reid_tables[a].caption.innerHTML +=
   reid_tables[a].caption.innerHTML +=
     '<form><input type="checkbox" name="index0" value="1" id="index0_'+(a)+'"'
     '<form><input type="checkbox" name="index1" value="1" id="index1_'+(a)+'"'
   + ' style="margin-left:0;vertical-align:middle"'
   + ' style="margin-left:0;vertical-align:middle"'
   + ' onclick="reindexTable('+a+')" />'
   + ' onclick="reindexTable('+a+')" />'
   + '<label for="index0_'+(a)+'" style="vertical-align:middle;font-weight:normal">Index from 0</label>'
   + '<label for="index1_'+(a)+'" style="vertical-align:middle;font-weight:normal">Index from 1</label>'
   + '</form>';
   + '</form>';
}
}

Latest revision as of 07:24, 20 May 2013

/* Any JavaScript here will be loaded for all users on every page load. */

function findIndexableTables()
{
  var tabs = document.getElementsByTagName("table");
  var res = new Array();
  for (a = 0; a < tabs.length; a++) {
    var cls = tabs[a].className.split(/\s+/);
    if (cls.indexOf("indexable") > -1)
      res.push(tabs[a]);
  }
  return res;
}

function reindexTable(id)
{
  var cb = document.getElementById('index1_' + id);
  if (cb && reid_tables[id]) {
    var delta;
    if (cb.checked)
      delta = 1;
    else
      delta = -1;
    for (a = 0; a < reid_tables[id].rows.length; a++) {
      var row = reid_tables[id].rows[a];   
      var cell = row.cells[0].innerHTML.trim();     
      
      if (cell != '') {     
        if (!isNaN(cell)) //normal index
          row.cells[0].innerHTML = parseInt(cell) + delta;
        else { //range index
          var spl = cell.split("-");
          if (spl.length > 1) {
            spl[0] = spl[0].trim();
            spl[1] = spl[1].trim();
            if (!isNaN(spl[0]) && !isNaN(spl[1]))
              row.cells[0].innerHTML = (parseInt(spl[0]) + delta) + " - " + (parseInt(spl[1]) + delta);
            
          }
        }
      }    
  
      //repeated index
      if (row.cells.length > 1) {
        cell = row.cells[1].innerHTML.trim().substr(4);
        if (!isNaN(cell)) {
          var n = parseInt(cell);
          row.cells[1].innerHTML = row.cells[1].innerHTML.replace(n, n + delta);
        }
      }
    }
  }
}

var reid_tables = findIndexableTables();

for (a = 0; a < reid_tables.length; a++) {
  var tr = reid_tables[a].rows[0];
  if (reid_tables[a].caption == null)
    reid_tables[a].createCaption();
  else
    reid_tables[a].caption.innerHTML += '<br>';
  reid_tables[a].caption.innerHTML +=
    '<form><input type="checkbox" name="index1" value="1" id="index1_'+(a)+'"'
  + ' style="margin-left:0;vertical-align:middle"'
  + ' onclick="reindexTable('+a+')" />'
  + '<label for="index1_'+(a)+'" style="vertical-align:middle;font-weight:normal">Index from 1</label>'
  + '</form>';
}