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
 
(11 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(5))) {
if (cell != '') {
alert('jest');
if (!isNaN(cell)) //normal index
var n = parseInt(row.cells[1].innerHTML.substr(5));
row.cells[0].innerHTML = parseInt(cell) + delta;
alert('n = ' + n);
else { //range index
var spl = cell.split("-");
row.cells[1].innerHTML.replace(n, n + delta);
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 45: 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>';
}