Mercurial > hg > isophonics-drupal-site
diff core/misc/tableheader.js @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line diff
--- a/core/misc/tableheader.js Tue Jul 10 15:07:59 2018 +0100 +++ b/core/misc/tableheader.js Thu Feb 28 13:21:36 2019 +0000 @@ -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); + + 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 scrollValue(position) { - return document.documentElement[position] || document.body[position]; } 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: [] }); @@ -164,4 +164,4 @@ }); Drupal.TableHeader = TableHeader; -})(jQuery, Drupal, window.parent.Drupal.displace); \ No newline at end of file +})(jQuery, Drupal, window.Drupal.displace); \ No newline at end of file