MediaWiki:Common.js: Difference between revisions

From LBA File Information
Jump to navigation Jump to search
Content deleted Content added
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 24: Line 24:
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];
var cell = row.cells[0].innerHTML.trim();
var cell = row.cells[0].innerHTML.trim();
if ((cell != '') && !isNaN(cell))
if (cell != '') {
row.cells[0].innerHTML = parseInt(cell) + delta;
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) {
if (row.cells.length > 1) {
cell = row.cells[1].innerHTML.trim().substr(4);
cell = row.cells[1].innerHTML.trim().substr(4);

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>';
}