X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmisc%2Ftableheader.js;h=1fd60086db89dc1a0516c7d2c3944f725c9d9926;hb=f8fc16ae6b862bef59baaad5d051dd37b7ff11b2;hp=bce54ec7d43d9cf9d6bbac087ba22a455b9fa088;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/web/core/misc/tableheader.js b/web/core/misc/tableheader.js index bce54ec7d..1fd60086d 100644 --- a/web/core/misc/tableheader.js +++ b/web/core/misc/tableheader.js @@ -6,14 +6,37 @@ **/ (function ($, Drupal, displace) { - Drupal.behaviors.tableHeader = { - attach: function attach(context) { - $(window).one('scroll.TableHeaderInit', { context: context }, tableHeaderInitHandler); - } - }; + function TableHeader(table) { + var $table = $(table); - function scrollValue(position) { - return document.documentElement[position] || document.body[position]; + this.$originalTable = $table; + + this.$originalHeader = $table.children('thead'); + + this.$originalHeaderCells = this.$originalHeader.find('> tr > th'); + + this.displayWeight = null; + this.$originalTable.addClass('sticky-table'); + this.tableHeight = $table[0].clientHeight; + this.tableOffset = this.$originalTable.offset(); + + this.$originalTable.on('columnschange', { tableHeader: this }, function (e, display) { + var tableHeader = e.data.tableHeader; + if (tableHeader.displayWeight === null || tableHeader.displayWeight !== display) { + tableHeader.recalculateSticky(); + } + tableHeader.displayWeight = display; + }); + + this.createSticky(); + } + + function forTables(method, arg) { + var tables = TableHeader.tables; + var il = tables.length; + for (var i = 0; i < il; i++) { + tables[i][method](arg); + } } function tableHeaderInitHandler(e) { @@ -25,12 +48,14 @@ forTables('onScroll'); } - function forTables(method, arg) { - var tables = TableHeader.tables; - var il = tables.length; - for (var i = 0; i < il; i++) { - tables[i][method](arg); + Drupal.behaviors.tableHeader = { + attach: function attach(context) { + $(window).one('scroll.TableHeaderInit', { context: context }, tableHeaderInitHandler); } + }; + + function scrollValue(position) { + return document.documentElement[position] || document.body[position]; } function tableHeaderResizeHandler(e) { @@ -57,31 +82,6 @@ 'drupalViewportOffsetChange.TableHeader': tableHeaderOffsetChangeHandler }); - function TableHeader(table) { - var $table = $(table); - - this.$originalTable = $table; - - this.$originalHeader = $table.children('thead'); - - this.$originalHeaderCells = this.$originalHeader.find('> tr > th'); - - this.displayWeight = null; - this.$originalTable.addClass('sticky-table'); - this.tableHeight = $table[0].clientHeight; - this.tableOffset = this.$originalTable.offset(); - - this.$originalTable.on('columnschange', { tableHeader: this }, function (e, display) { - var tableHeader = e.data.tableHeader; - if (tableHeader.displayWeight === null || tableHeader.displayWeight !== display) { - tableHeader.recalculateSticky(); - } - tableHeader.displayWeight = display; - }); - - this.createSticky(); - } - $.extend(TableHeader, { tables: [] });