diff --git a/dist/tablefilter/1-eda749d2ef2fcdb2e245.js b/dist/tablefilter/1-d577df757d4add915f61.js similarity index 99% rename from dist/tablefilter/1-eda749d2ef2fcdb2e245.js rename to dist/tablefilter/1-d577df757d4add915f61.js index 0345d5af..1035d435 100644 --- a/dist/tablefilter/1-eda749d2ef2fcdb2e245.js +++ b/dist/tablefilter/1-d577df757d4add915f61.js @@ -1176,7 +1176,7 @@ webpackJsonp([1],[ this.icnExpandHtml = 'Expand filters'; this.icnCollapseHtml = 'Collapse filters'; - this.defaultText = 'Expand/Collapse filters'; + this.defaultText = 'Toggle filters'; //id of container element this.targetId = f.target_id || null; @@ -1244,7 +1244,7 @@ webpackJsonp([1],[ span.className = this.contCssClass; //Container element (rdiv or custom element) - if (this.targetId) { + if (!this.targetId) { tf.setToolbar(); } var targetEl = !this.targetId ? tf.rDiv : _Dom2['default'].id(this.targetId); @@ -1888,4 +1888,4 @@ webpackJsonp([1],[ /***/ } ]); -//# sourceMappingURL=1-eda749d2ef2fcdb2e245.js.map \ No newline at end of file +//# sourceMappingURL=1-d577df757d4add915f61.js.map \ No newline at end of file diff --git a/dist/tablefilter/style/filtersVisibility.css b/dist/tablefilter/style/filtersVisibility.css index 735ff399..bd4f823b 100644 --- a/dist/tablefilter/style/filtersVisibility.css +++ b/dist/tablefilter/style/filtersVisibility.css @@ -17,10 +17,7 @@ span.expClpFlt img{ margin:1px 1px 1px 1px; /*background:#f4f4f4;*/ } -span.expClpFlt img:hover{ - background:#fff; - /*border:1px solid #666; */ -} +span.expClpFlt img:hover{} /* button */ .btnExpClpFlt{ margin:0 5px 0 5px; } \ No newline at end of file diff --git a/dist/tablefilter/tablefilter.js b/dist/tablefilter/tablefilter.js index 11a67780..e0b77c98 100644 --- a/dist/tablefilter/tablefilter.js +++ b/dist/tablefilter/tablefilter.js @@ -83,7 +83,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ script.charset = 'utf-8'; /******/ script.async = true; /******/ -/******/ script.src = __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "-" + {"1":"eda749d2ef2fcdb2e245"}[chunkId] + ".js"; +/******/ script.src = __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "-" + {"1":"d577df757d4add915f61"}[chunkId] + ".js"; /******/ head.appendChild(script); /******/ } /******/ }; diff --git a/src/extensions/filtersVisibility/filtersVisibility.js b/src/extensions/filtersVisibility/filtersVisibility.js index 9f8043f7..8c0d6217 100644 --- a/src/extensions/filtersVisibility/filtersVisibility.js +++ b/src/extensions/filtersVisibility/filtersVisibility.js @@ -30,7 +30,7 @@ export default class FiltersVisibility{ '" alt="Expand filters" >'; this.icnCollapseHtml = 'Collapse filters'; - this.defaultText = 'Expand/Collapse filters'; + this.defaultText = 'Toggle filters'; //id of container element this.targetId = f.target_id || null; @@ -100,7 +100,7 @@ export default class FiltersVisibility{ span.className = this.contCssClass; //Container element (rdiv or custom element) - if(this.targetId){ + if(!this.targetId){ tf.setToolbar(); } let targetEl = !this.targetId ? tf.rDiv : Dom.id(this.targetId); diff --git a/test/test-filters-visibility.html b/test/test-filters-visibility.html new file mode 100644 index 00000000..83784cb2 --- /dev/null +++ b/test/test-filters-visibility.html @@ -0,0 +1,80 @@ + + + + + TableFilter filters visibility extension tests + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FromDestinationRoad Distance (km)By Air (hrs)By Rail (hrs)
SydneyAdelaide14121.425.3
SydneyBrisbane9821.516
SydneyCanberra286.64.3
SydneyMelbourne8721.110.5
AdelaidePerth27813.138
AdelaideAlice Springs1533220.25
AdelaideBrisbane20452.1540
+ + + + +
+
+ + diff --git a/test/test-filters-visibility.js b/test/test-filters-visibility.js new file mode 100644 index 00000000..f6ed04bd --- /dev/null +++ b/test/test-filters-visibility.js @@ -0,0 +1,111 @@ +(function(win, TableFilter){ + + var tf = new TableFilter('demo', { + base_path: '../dist/tablefilter/', + extensions:[{ + name: 'filtersVisibility' + }] + }); + tf.init(); + + var extTargetElement = document.createElement('div'); + extTargetElement.setAttribute('id', 'test'); + document.body.insertBefore(extTargetElement, tf.tbl); + + module('Sanity checks'); + test('Filters visibility extension', function() { + var ext = tf.ExtRegistry.filtersVisibility; + deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated'); + notEqual(ext, null, 'Extension instanciated'); + deepEqual(ext.initialized, true, 'Extension initialized'); + }); + + module('Check UI'); + test('UI elements', function() { + var ext = tf.ExtRegistry.filtersVisibility; + var cont = ext.contEl; + var btn = ext.btnEl; + deepEqual(cont.nodeName, 'SPAN', 'Container element'); + deepEqual(btn.nodeName, 'A', 'Button element'); + deepEqual(btn.title, 'Toggle filters', 'Button tooltip'); + deepEqual(btn.firstChild.nodeName, 'IMG', 'Image element'); + deepEqual(btn.firstChild.alt, 'Collapse filters', 'Button tooltip'); + }); + + module('Check behaviours'); + test('Toggle filters', function() { + var ext = tf.ExtRegistry.filtersVisibility; + ext.toggle(); + var filtersRow = tf.tbl.rows[tf.getFiltersRowIndex()]; + deepEqual(filtersRow.style.display, 'none', 'Filters hidden'); + ext.toggle(); + deepEqual(filtersRow.style.display, '', 'Filters displayed'); + }); + + test('Remove extension', function() { + var ext = tf.ExtRegistry.filtersVisibility; + ext.destroy(); + deepEqual(ext.contEl, null, 'Container element removed'); + deepEqual(ext.btnEl, null, 'Button element removed'); + deepEqual(ext.initialized, false, 'Extension not initialized'); + }); + + test('Button without icon', function() { + tf.destroy(); + tf = new TableFilter('demo', { + base_path: '../dist/tablefilter/', + extensions:[{ + name: 'filtersVisibility', + enable_icon: false + }] + }); + tf.init(); + var ext = tf.ExtRegistry.filtersVisibility; + deepEqual(ext.contEl.nodeName, 'SPAN', 'Container element'); + deepEqual(ext.btnEl.nodeName, 'A', 'Button element'); + deepEqual(ext.btnEl.innerHTML, 'Toggle filters', 'Expected text'); + }); + + test('Button in external Container', function() { + tf.destroy(); + tf = new TableFilter('demo', { + base_path: '../dist/tablefilter/', + extensions:[{ + name: 'filtersVisibility', + target_id: 'test', + btn_text: 'Hello' + }] + }); + tf.init(); + + var ext = tf.ExtRegistry.filtersVisibility; + var btn = ext.btnEl; + deepEqual( + extTargetElement.firstChild.nodeName, 'SPAN', 'Container element'); + deepEqual(btn.nodeName, 'A', 'Button element'); + deepEqual(btn.textContent || btn.innerText, 'Hello', 'Expected text'); + }); + + test('Grid layout: filters hidden at start', function() { + tf.destroy(); + tf = new TableFilter('demo', { + base_path: '../dist/tablefilter/', + grid_layout: true, + extensions:[{ + name: 'filtersVisibility', + visible_at_start: false + }] + }); + tf.init(); + + var ext = tf.ExtRegistry.filtersVisibility; + var gridLayout = tf.Cpt.gridLayout; + var filtersRow = gridLayout.headTbl.rows[tf.getFiltersRowIndex()]; + var cont = ext.contEl; + var btn = ext.btnEl; + deepEqual(filtersRow.style.display, 'none', 'Filters hidden'); + deepEqual(cont.nodeName, 'SPAN', 'Container element'); + deepEqual(btn.nodeName, 'A', 'Button element'); + }); + +})(window, TableFilter);