Changes

no edit summary
Line 243: Line 243:  
// 1) table with "header-fixed" class
 
// 1) table with "header-fixed" class
 
// 2) a table row with "header-row" class
 
// 2) a table row with "header-row" class
console.debug('FixedHeader: before jquery.tablesorter')
   
mw.loader.using('jquery.tablesorter', function() {
 
mw.loader.using('jquery.tablesorter', function() {
  −
console.debug('FixedHeader: after jquery.tablesorter')
  −
  −
var ts = $.fn.tablesorter;
  −
$.fn.tablesorter = function() {
  −
  ts.apply(this, arguments);
  −
  initializeStickyHeader();
  −
}
  −
   
function initializeStickyHeader() {
 
function initializeStickyHeader() {
 
  var tables = [];
 
  var tables = [];
 
  var $tables = $('.header-fixed');
 
  var $tables = $('.header-fixed');
 +
 +
  console.debug('FixedHeader: ' + $tables.length)
 
 
 
  if ($tables.length == 0) return;
 
  if ($tables.length == 0) return;
+
 
 
  $tables.each(function() {
 
  $tables.each(function() {
 
    // If this table is under tabber AND is hidden,
 
    // If this table is under tabber AND is hidden,
Line 270: Line 262:  
      tabberTabParent.style.display = "block";
 
      tabberTabParent.style.display = "block";
 
    }
 
    }
+
 
 
    // Build fixed-header-table content
 
    // Build fixed-header-table content
 
    var $headerRow = $(this).find('.header-row');
 
    var $headerRow = $(this).find('.header-row');
 
    var $newHeaderContent = $('<tbody>');
 
    var $newHeaderContent = $('<tbody>');
 
    $newHeaderContent.append($headerRow.clone());
 
    $newHeaderContent.append($headerRow.clone());
+
 
 
    // Add fixed-header-table colgroup to fix width
 
    // Add fixed-header-table colgroup to fix width
 
    var $columnsOld = $headerRow.find('td:not([colspan]),th:not([colspan])');
 
    var $columnsOld = $headerRow.find('td:not([colspan]),th:not([colspan])');
 
    var $newHeaderColgroup = $('<colgroup>');
 
    var $newHeaderColgroup = $('<colgroup>');
+
 
 
    for (var i = 0; i < $columnsOld.length; i++) {
 
    for (var i = 0; i < $columnsOld.length; i++) {
 
      var width = $columnsOld[i].getBoundingClientRect().width;
 
      var width = $columnsOld[i].getBoundingClientRect().width;
Line 286: Line 278:  
      );
 
      );
 
    }
 
    }
+
 
 
    $(this).before(
 
    $(this).before(
 
      $('<table>')
 
      $('<table>')
Line 307: Line 299:  
    });
 
    });
 
    $(this.previousSibling).css('width', $(this).width() + 1);
 
    $(this.previousSibling).css('width', $(this).width() + 1);
+
 
 
    // Restore original tab display status
 
    // Restore original tab display status
 
    // if this table was under tabber and hidden
 
    // if this table was under tabber and hidden
Line 315: Line 307:  
    }
 
    }
 
  });
 
  });
+
 
 
  $(window).on('scroll', function() {
 
  $(window).on('scroll', function() {
 
    var scrollOffset = $(this).scrollTop();
 
    var scrollOffset = $(this).scrollTop();
Line 330: Line 322:  
    }
 
    }
 
  });
 
  });
 +
}
 +
 +
var ts = $.fn.tablesorter;
 +
$.fn.tablesorter = function() {
 +
  ts.apply(this, arguments);
 +
  initializeStickyHeader();
 
}
 
}
 
})
 
})
 
});
 
});
cssedit, gkautomate
6,926

edits