Added linked filters test
This commit is contained in:
parent
132214c026
commit
c4f90f0bc2
|
@ -10,10 +10,10 @@ webpackJsonp([1],[
|
|||
"./cookie.js": 5,
|
||||
"./date": 8,
|
||||
"./date.js": 8,
|
||||
"./dom": 3,
|
||||
"./dom.js": 3,
|
||||
"./event": 2,
|
||||
"./event.js": 2,
|
||||
"./dom": 2,
|
||||
"./dom.js": 2,
|
||||
"./event": 3,
|
||||
"./event.js": 3,
|
||||
"./extensions/advancedGrid/adapterEzEditTable": 24,
|
||||
"./extensions/advancedGrid/adapterEzEditTable.js": 24,
|
||||
"./extensions/advancedGrid/advancedGrid": 25,
|
||||
|
@ -115,7 +115,7 @@ webpackJsonp([1],[
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -534,7 +534,7 @@ webpackJsonp([1],[
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -868,7 +868,7 @@ webpackJsonp([1],[
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -876,7 +876,7 @@ webpackJsonp([1],[
|
|||
|
||||
var _Types2 = _interopRequireDefault(_Types);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -1469,7 +1469,7 @@ webpackJsonp([1],[
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -1477,7 +1477,7 @@ webpackJsonp([1],[
|
|||
|
||||
var _Types2 = _interopRequireDefault(_Types);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -1694,7 +1694,7 @@ webpackJsonp([1],[
|
|||
|
||||
var _Types2 = _interopRequireDefault(_Types);
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -1702,7 +1702,7 @@ webpackJsonp([1],[
|
|||
|
||||
var _Arr2 = _interopRequireDefault(_Arr);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -2237,4 +2237,4 @@ webpackJsonp([1],[
|
|||
|
||||
/***/ }
|
||||
]);
|
||||
//# sourceMappingURL=1-d59e614953f2afdbdeca.js.map
|
||||
//# sourceMappingURL=1-7e7f7c02333b80894c94.js.map
|
|
@ -83,7 +83,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
/******/ script.charset = 'utf-8';
|
||||
/******/ script.async = true;
|
||||
/******/
|
||||
/******/ script.src = __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "-" + {"1":"d59e614953f2afdbdeca"}[chunkId] + ".js";
|
||||
/******/ script.src = __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "-" + {"1":"7e7f7c02333b80894c94"}[chunkId] + ".js";
|
||||
/******/ head.appendChild(script);
|
||||
/******/ }
|
||||
/******/ };
|
||||
|
@ -117,11 +117,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -1142,7 +1142,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
}
|
||||
}
|
||||
|
||||
if (!this.loader && !this.statusBar) {
|
||||
if (!this.loader && !this.statusBar && !this.linkedFilters) {
|
||||
efx.call(this);
|
||||
} else {
|
||||
if (this.loader) {
|
||||
|
@ -3140,67 +3140,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
/**
|
||||
* DOM event utilities
|
||||
*/
|
||||
|
||||
exports['default'] = {
|
||||
add: function add(obj, type, func, capture) {
|
||||
if (obj.addEventListener) {
|
||||
obj.addEventListener(type, func, capture);
|
||||
} else if (obj.attachEvent) {
|
||||
obj.attachEvent('on' + type, func);
|
||||
} else {
|
||||
obj['on' + type] = func;
|
||||
}
|
||||
},
|
||||
remove: function remove(obj, type, func, capture) {
|
||||
if (obj.detachEvent) {
|
||||
obj.detachEvent('on' + type, func);
|
||||
} else if (obj.removeEventListener) {
|
||||
obj.removeEventListener(type, func, capture);
|
||||
} else {
|
||||
obj['on' + type] = null;
|
||||
}
|
||||
},
|
||||
stop: function stop(evt) {
|
||||
if (!evt) {
|
||||
evt = window.event;
|
||||
}
|
||||
if (evt.stopPropagation) {
|
||||
evt.stopPropagation();
|
||||
} else {
|
||||
evt.cancelBubble = true;
|
||||
}
|
||||
},
|
||||
cancel: function cancel(evt) {
|
||||
if (!evt) {
|
||||
evt = window.event;
|
||||
}
|
||||
if (evt.preventDefault) {
|
||||
evt.preventDefault();
|
||||
} else {
|
||||
evt.returnValue = false;
|
||||
}
|
||||
},
|
||||
target: function target(evt) {
|
||||
return evt && evt.target || window.event && window.event.srcElement;
|
||||
},
|
||||
keyCode: function keyCode(evt) {
|
||||
return evt.charCode ? evt.charCode : evt.keyCode ? evt.keyCode : evt.which ? evt.which : 0;
|
||||
}
|
||||
};
|
||||
module.exports = exports['default'];
|
||||
|
||||
/***/ },
|
||||
/* 3 */
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
|
@ -3372,6 +3311,67 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
}
|
||||
module.exports = exports['default'];
|
||||
|
||||
/***/ },
|
||||
/* 3 */
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
/**
|
||||
* DOM event utilities
|
||||
*/
|
||||
|
||||
exports['default'] = {
|
||||
add: function add(obj, type, func, capture) {
|
||||
if (obj.addEventListener) {
|
||||
obj.addEventListener(type, func, capture);
|
||||
} else if (obj.attachEvent) {
|
||||
obj.attachEvent('on' + type, func);
|
||||
} else {
|
||||
obj['on' + type] = func;
|
||||
}
|
||||
},
|
||||
remove: function remove(obj, type, func, capture) {
|
||||
if (obj.detachEvent) {
|
||||
obj.detachEvent('on' + type, func);
|
||||
} else if (obj.removeEventListener) {
|
||||
obj.removeEventListener(type, func, capture);
|
||||
} else {
|
||||
obj['on' + type] = null;
|
||||
}
|
||||
},
|
||||
stop: function stop(evt) {
|
||||
if (!evt) {
|
||||
evt = window.event;
|
||||
}
|
||||
if (evt.stopPropagation) {
|
||||
evt.stopPropagation();
|
||||
} else {
|
||||
evt.cancelBubble = true;
|
||||
}
|
||||
},
|
||||
cancel: function cancel(evt) {
|
||||
if (!evt) {
|
||||
evt = window.event;
|
||||
}
|
||||
if (evt.preventDefault) {
|
||||
evt.preventDefault();
|
||||
} else {
|
||||
evt.returnValue = false;
|
||||
}
|
||||
},
|
||||
target: function target(evt) {
|
||||
return evt && evt.target || window.event && window.event.srcElement;
|
||||
},
|
||||
keyCode: function keyCode(evt) {
|
||||
return evt.charCode ? evt.charCode : evt.keyCode ? evt.keyCode : evt.which ? evt.which : 0;
|
||||
}
|
||||
};
|
||||
module.exports = exports['default'];
|
||||
|
||||
/***/ },
|
||||
/* 4 */
|
||||
/***/ function(module, exports, __webpack_require__) {
|
||||
|
@ -3966,7 +3966,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -3974,7 +3974,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _Types2 = _interopRequireDefault(_Types);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -4349,7 +4349,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -4467,7 +4467,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -4617,11 +4617,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _Types2 = _interopRequireDefault(_Types);
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -4888,7 +4888,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -4941,15 +4941,15 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
/**
|
||||
* Build drop-down filter UI asynchronously
|
||||
* @param {Number} colIndex Column index
|
||||
* @param {Boolean} isRefreshed Enable linked refresh behaviour
|
||||
* @param {Boolean} isLinked Enable linked refresh behaviour
|
||||
* @param {Boolean} isExternal Render in external container
|
||||
* @param {String} extSlcId External container id
|
||||
*/
|
||||
value: function build(colIndex, isRefreshed, isExternal, extSlcId) {
|
||||
value: function build(colIndex, isLinked, isExternal, extSlcId) {
|
||||
var tf = this.tf;
|
||||
tf.EvtManager(tf.Evt.name.dropdown, {
|
||||
slcIndex: colIndex,
|
||||
slcRefreshed: isRefreshed,
|
||||
slcRefreshed: isLinked,
|
||||
slcExternal: isExternal,
|
||||
slcId: extSlcId
|
||||
});
|
||||
|
@ -4960,12 +4960,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
/**
|
||||
* Build drop-down filter UI
|
||||
* @param {Number} colIndex Column index
|
||||
* @param {Boolean} isRefreshed Enable linked refresh behaviour
|
||||
* @param {Boolean} isLinked Enable linked refresh behaviour
|
||||
* @param {Boolean} isExternal Render in external container
|
||||
* @param {String} extSlcId External container id
|
||||
*/
|
||||
value: function _build(colIndex) {
|
||||
var isRefreshed = arguments[1] === undefined ? false : arguments[1];
|
||||
var isLinked = arguments[1] === undefined ? false : arguments[1];
|
||||
var isExternal = arguments[2] === undefined ? false : arguments[2];
|
||||
var extSlcId = arguments[3] === undefined ? null : arguments[3];
|
||||
|
||||
|
@ -4989,7 +4989,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
//custom selects text
|
||||
var activeFlt;
|
||||
if (isRefreshed && tf.activeFilterId) {
|
||||
if (isLinked && tf.activeFilterId) {
|
||||
activeFlt = tf.activeFilterId.split('_')[0];
|
||||
activeFlt = activeFlt.split(tf.prfxFlt)[1];
|
||||
}
|
||||
|
@ -5010,7 +5010,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var excludedOpts = null,
|
||||
filteredDataCol = null;
|
||||
if (isRefreshed && tf.disableExcludedOptions) {
|
||||
if (isLinked && tf.disableExcludedOptions) {
|
||||
excludedOpts = [];
|
||||
filteredDataCol = [];
|
||||
}
|
||||
|
@ -5032,7 +5032,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
// this loop retrieves cell data
|
||||
for (var j = 0; j < nchilds; j++) {
|
||||
if (colIndex === j && (!isRefreshed || isRefreshed && tf.disableExcludedOptions) || colIndex == j && isRefreshed && (rows[k].style.display === '' && !tf.paging || tf.paging && (!tf.validRowsIndex || tf.validRowsIndex && _Arr2['default'].has(tf.validRowsIndex, k)) && (activeFlt === undefined || activeFlt == colIndex || activeFlt != colIndex && _Arr2['default'].has(tf.validRowsIndex, k)))) {
|
||||
if (colIndex === j && (!isLinked || isLinked && tf.disableExcludedOptions) || colIndex == j && isLinked && (rows[k].style.display === '' && !tf.paging || tf.paging && (!tf.validRowsIndex || tf.validRowsIndex && _Arr2['default'].has(tf.validRowsIndex, k)) && (activeFlt === undefined || activeFlt == colIndex || activeFlt != colIndex && _Arr2['default'].has(tf.validRowsIndex, k)))) {
|
||||
var cell_data = tf.getCellData(j, cell[j]),
|
||||
|
||||
//Vary Peter's patch
|
||||
|
@ -5043,7 +5043,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
this.opts.push(cell_data);
|
||||
}
|
||||
|
||||
if (isRefreshed && tf.disableExcludedOptions) {
|
||||
if (isLinked && tf.disableExcludedOptions) {
|
||||
var filteredCol = filteredDataCol[j];
|
||||
if (!filteredCol) {
|
||||
filteredCol = this.GetFilteredDataCol(j);
|
||||
|
@ -5119,7 +5119,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
}
|
||||
|
||||
//populates drop-down
|
||||
this.addOptions(colIndex, slc, isRefreshed, excludedOpts, fltsValues, fltArr);
|
||||
this.addOptions(colIndex, slc, isLinked, excludedOpts, fltsValues, fltArr);
|
||||
}
|
||||
}, {
|
||||
key: 'addOptions',
|
||||
|
@ -5128,12 +5128,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
* Add drop-down options
|
||||
* @param {Number} colIndex Column index
|
||||
* @param {Object} slc Select Dom element
|
||||
* @param {Boolean} isRefreshed Enable linked refresh behaviour
|
||||
* @param {Boolean} isLinked Enable linked refresh behaviour
|
||||
* @param {Array} excludedOpts Array of excluded options
|
||||
* @param {Array} fltsValues Collection of persisted filter values
|
||||
* @param {Array} fltArr Collection of persisted filter values
|
||||
*/
|
||||
value: function addOptions(colIndex, slc, isRefreshed, excludedOpts, fltsValues, fltArr) {
|
||||
value: function addOptions(colIndex, slc, isLinked, excludedOpts, fltsValues, fltArr) {
|
||||
var tf = this.tf,
|
||||
fillMethod = _Str2['default'].lower(this.slcFillingMethod),
|
||||
slcValue = slc.value;
|
||||
|
@ -5148,7 +5148,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
var val = this.opts[y]; //option value
|
||||
var lbl = this.isCustom ? this.optsTxt[y] : val; //option text
|
||||
var isDisabled = false;
|
||||
if (isRefreshed && this.disableExcludedOptions && _Arr2['default'].has(excludedOpts, _Str2['default'].matchCase(val, tf.matchCase), tf.matchCase)) {
|
||||
if (isLinked && this.disableExcludedOptions && _Arr2['default'].has(excludedOpts, _Str2['default'].matchCase(val, tf.matchCase), tf.matchCase)) {
|
||||
isDisabled = true;
|
||||
}
|
||||
|
||||
|
@ -5235,7 +5235,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -5251,7 +5251,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _Sort2 = _interopRequireDefault(_Sort);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -5677,7 +5677,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -5851,7 +5851,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -6012,7 +6012,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
@ -6024,7 +6024,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
|
||||
var _Str2 = _interopRequireDefault(_Str);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -6800,11 +6800,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -6927,11 +6927,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
var _Event = __webpack_require__(2);
|
||||
var _Event = __webpack_require__(3);
|
||||
|
||||
var _Event2 = _interopRequireDefault(_Event);
|
||||
|
||||
|
@ -7108,7 +7108,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
value: true
|
||||
});
|
||||
|
||||
var _Dom = __webpack_require__(3);
|
||||
var _Dom = __webpack_require__(2);
|
||||
|
||||
var _Dom2 = _interopRequireDefault(_Dom);
|
||||
|
||||
|
|
|
@ -263,10 +263,9 @@ export class CheckList{
|
|||
Dom.addClass(li, this.checkListItemDisabledCssClass);
|
||||
li.check.disabled = true;
|
||||
li.disabled = true;
|
||||
} else{
|
||||
} else {
|
||||
Event.add(li.check, 'click',
|
||||
(evt) => { this.optionClick(evt);
|
||||
});
|
||||
(evt) => { this.optionClick(evt); });
|
||||
}
|
||||
ul.appendChild(li);
|
||||
|
||||
|
|
|
@ -37,17 +37,17 @@ export class Dropdown{
|
|||
/**
|
||||
* Build drop-down filter UI asynchronously
|
||||
* @param {Number} colIndex Column index
|
||||
* @param {Boolean} isRefreshed Enable linked refresh behaviour
|
||||
* @param {Boolean} isLinked Enable linked refresh behaviour
|
||||
* @param {Boolean} isExternal Render in external container
|
||||
* @param {String} extSlcId External container id
|
||||
*/
|
||||
build(colIndex, isRefreshed, isExternal, extSlcId){
|
||||
build(colIndex, isLinked, isExternal, extSlcId){
|
||||
var tf = this.tf;
|
||||
tf.EvtManager(
|
||||
tf.Evt.name.dropdown,
|
||||
{
|
||||
slcIndex: colIndex,
|
||||
slcRefreshed: isRefreshed,
|
||||
slcRefreshed: isLinked,
|
||||
slcExternal: isExternal,
|
||||
slcId: extSlcId
|
||||
}
|
||||
|
@ -57,11 +57,11 @@ export class Dropdown{
|
|||
/**
|
||||
* Build drop-down filter UI
|
||||
* @param {Number} colIndex Column index
|
||||
* @param {Boolean} isRefreshed Enable linked refresh behaviour
|
||||
* @param {Boolean} isLinked Enable linked refresh behaviour
|
||||
* @param {Boolean} isExternal Render in external container
|
||||
* @param {String} extSlcId External container id
|
||||
*/
|
||||
_build(colIndex, isRefreshed=false, isExternal=false, extSlcId=null){
|
||||
_build(colIndex, isLinked=false, isExternal=false, extSlcId=null){
|
||||
var tf = this.tf;
|
||||
colIndex = parseInt(colIndex, 10);
|
||||
|
||||
|
@ -83,7 +83,7 @@ export class Dropdown{
|
|||
|
||||
//custom selects text
|
||||
var activeFlt;
|
||||
if(isRefreshed && tf.activeFilterId){
|
||||
if(isLinked && tf.activeFilterId){
|
||||
activeFlt = tf.activeFilterId.split('_')[0];
|
||||
activeFlt = activeFlt.split(tf.prfxFlt)[1];
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ export class Dropdown{
|
|||
|
||||
var excludedOpts = null,
|
||||
filteredDataCol = null;
|
||||
if(isRefreshed && tf.disableExcludedOptions){
|
||||
if(isLinked && tf.disableExcludedOptions){
|
||||
excludedOpts = [];
|
||||
filteredDataCol = [];
|
||||
}
|
||||
|
@ -128,9 +128,9 @@ export class Dropdown{
|
|||
// this loop retrieves cell data
|
||||
for(var j=0; j<nchilds; j++){
|
||||
if((colIndex===j &&
|
||||
(!isRefreshed ||
|
||||
(isRefreshed && tf.disableExcludedOptions))) ||
|
||||
(colIndex==j && isRefreshed &&
|
||||
(!isLinked ||
|
||||
(isLinked && tf.disableExcludedOptions))) ||
|
||||
(colIndex==j && isLinked &&
|
||||
((rows[k].style.display === '' && !tf.paging) ||
|
||||
(tf.paging && (!tf.validRowsIndex ||
|
||||
(tf.validRowsIndex &&
|
||||
|
@ -147,7 +147,7 @@ export class Dropdown{
|
|||
this.opts.push(cell_data);
|
||||
}
|
||||
|
||||
if(isRefreshed && tf.disableExcludedOptions){
|
||||
if(isLinked && tf.disableExcludedOptions){
|
||||
var filteredCol = filteredDataCol[j];
|
||||
if(!filteredCol){
|
||||
filteredCol = this.GetFilteredDataCol(j);
|
||||
|
@ -225,19 +225,19 @@ export class Dropdown{
|
|||
|
||||
//populates drop-down
|
||||
this.addOptions(
|
||||
colIndex, slc, isRefreshed, excludedOpts, fltsValues, fltArr);
|
||||
colIndex, slc, isLinked, excludedOpts, fltsValues, fltArr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add drop-down options
|
||||
* @param {Number} colIndex Column index
|
||||
* @param {Object} slc Select Dom element
|
||||
* @param {Boolean} isRefreshed Enable linked refresh behaviour
|
||||
* @param {Boolean} isLinked Enable linked refresh behaviour
|
||||
* @param {Array} excludedOpts Array of excluded options
|
||||
* @param {Array} fltsValues Collection of persisted filter values
|
||||
* @param {Array} fltArr Collection of persisted filter values
|
||||
*/
|
||||
addOptions(colIndex, slc, isRefreshed, excludedOpts, fltsValues, fltArr){
|
||||
addOptions(colIndex, slc, isLinked, excludedOpts, fltsValues, fltArr){
|
||||
var tf = this.tf,
|
||||
fillMethod = Str.lower(this.slcFillingMethod),
|
||||
slcValue = slc.value;
|
||||
|
@ -252,7 +252,7 @@ export class Dropdown{
|
|||
var val = this.opts[y]; //option value
|
||||
var lbl = this.isCustom ? this.optsTxt[y] : val; //option text
|
||||
var isDisabled = false;
|
||||
if(isRefreshed && this.disableExcludedOptions &&
|
||||
if(isLinked && this.disableExcludedOptions &&
|
||||
Arr.has(
|
||||
excludedOpts,
|
||||
Str.matchCase(val, tf.matchCase),
|
||||
|
|
|
@ -1021,7 +1021,7 @@ export class TableFilter{
|
|||
}
|
||||
}
|
||||
|
||||
if(!this.loader && !this.statusBar) {
|
||||
if(!this.loader && !this.statusBar && !this.linkedFilters) {
|
||||
efx.call(this);
|
||||
} else {
|
||||
if(this.loader){
|
||||
|
@ -2546,7 +2546,7 @@ export class TableFilter{
|
|||
this.Mod.dropdown._build(slcIndex[i], true);
|
||||
}
|
||||
|
||||
this.setFilterValue(slcIndex[i],slcSelectedValue);
|
||||
this.setFilterValue(slcIndex[i], slcSelectedValue);
|
||||
}
|
||||
}// for i
|
||||
}
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>TableFilter with linked filters tests</title>
|
||||
<link rel="stylesheet" href="libs/qunit/qunit.css">
|
||||
<script src="libs/qunit/qunit.js"></script>
|
||||
<script src="libs/polyfill.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<table id="demo">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>From</th>
|
||||
<th>Destination</th>
|
||||
<th>Road Distance (km)</th>
|
||||
<th>By Air (hrs)</th>
|
||||
<th>By Rail (hrs)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Adelaide</td>
|
||||
<td>1412</td>
|
||||
<td>1.4</td>
|
||||
<td>25.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>982</td>
|
||||
<td>1.5</td>
|
||||
<td>16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Canberra</td>
|
||||
<td>286</td>
|
||||
<td>.6</td>
|
||||
<td>4.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Melbourne</td>
|
||||
<td>872</td>
|
||||
<td>1.1</td>
|
||||
<td>10.5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Perth</td>
|
||||
<td>2781</td>
|
||||
<td>3.1</td>
|
||||
<td>38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Alice Springs</td>
|
||||
<td>1533</td>
|
||||
<td>2</td>
|
||||
<td>20.25</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>2045</td>
|
||||
<td>2.15</td>
|
||||
<td>40</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script src="../dist/tablefilter/tablefilter.js"></script>
|
||||
<script src="test-linked-filters.js"></script>
|
||||
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,35 @@
|
|||
(function(win, TableFilter){
|
||||
|
||||
var tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
linked_filters: true,
|
||||
col_0: 'multiple',
|
||||
col_1: 'checklist',
|
||||
on_after_filter: testLinked
|
||||
});
|
||||
tf.init();
|
||||
|
||||
module('Sanity checks');
|
||||
test('Linked filters feature', function() {
|
||||
deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
|
||||
deepEqual(tf.linkedFilters, true, 'Linked filters enabled');
|
||||
});
|
||||
|
||||
var option = document.getElementById('flt1_demo_1');
|
||||
option.click();
|
||||
|
||||
function testLinked(tf) {
|
||||
test('Check filters are linked', function() {
|
||||
var filter0 = tf.getFilterElement(0);
|
||||
deepEqual(tf.activeFilterId, 'flt1_demo_1', 'Active filter');
|
||||
deepEqual(
|
||||
filter0.options.length,
|
||||
2,
|
||||
'Linked filter expected options number'
|
||||
);
|
||||
});
|
||||
|
||||
tf.destroy();
|
||||
}
|
||||
|
||||
})(window, TableFilter);
|
Loading…
Reference in New Issue