var logger = Logger('package.js');
var $tree = $('#tic-package-left-col-tree');
+ var defaultFilters = [];
var repos = [];
var packages = [];
var pkgInfo = null;
// button - image creation
$('#tic-package-create').on('click', onClickHandlerForImgCreationBtn);
- function _filter(text) {
- var matchNodes = $tree.treeview('search', [ text, {
- ignoreCase: true, // case insensitive
- exactMatch: false, // like or equals
- revealResults: true, // reveal matching nodes
- }]);
+ function _filter(patternList) {
+ var matchNodes = [];
+ _.forEach(patternList, function (pattern) {
+ if (!_.isEmpty(_.trim(pattern))) {
+ var nodes = $tree.treeview('search', [ pattern, {
+ ignoreCase: true, // case insensitive
+ exactMatch: false, // like or equals
+ revealResults: true, // reveal matching nodes
+ }]);
+ matchNodes = _.union(matchNodes, nodes);
+ }
+ })
+
+ var filterNodes = [];
+ _.forEach(defaultFilters, function (pattern) {
+ if (!_.isEmpty(_.trim(pattern))) {
+ var nodes = $tree.treeview('search', [ pattern, {
+ ignoreCase: true, // case insensitive
+ exactMatch: false, // like or equals
+ revealResults: true, // reveal matching nodes
+ }]);
+ filterNodes = _.union(filterNodes, nodes);
+ }
+ })
_.forEach(packages, function (node) {
node.$el.hide();
});
+
if (!_.isEmpty(matchNodes)) {
_.forEach(matchNodes, function (node) {
node.$el.show();
});
} else {
- if (_.isEmpty(text)) {
+ // empty input text
+ if (_.isEmpty(_.trim(_.take(patternList)))) {
_.forEach(packages, function (node) {
node.$el.show();
});
}
}
+
+ _.forEach(filterNodes, function (node) {
+ node.$el.hide();
+ });
+ $tree.treeview('clearSearch');
}
function _filterInput() {
var filterText = $('#tic-package-toolbar-input').val();
- _filter(filterText);
+ _filter([filterText]);
$('#tic-package-toolbar-input-clear').toggleClass('hidden', _.isEmpty(filterText));
}
$('#tic-package-toolbar-input').on('keyup', _.debounce(_filterInput, 500));
- function _filterAll() {
- _filter('');
- }
- $('#tic-package-toolbar-all').on('click', _filterAll);
- function _filterDebug() {
- _filter('debug');
- }
- $('#tic-package-toolbar-debug').on('click', _filterDebug);
- function _filterDevel() {
- _filter('devel');
+ function _filterType() {
+ var debug = $('#tic-package-toolbar-debug').is(':checked');
+ if (debug) {
+ if (!_.includes(defaultFilters, '-debug')) {
+ defaultFilters.push('-debug');
+ }
+ } else {
+ _.remove(defaultFilters, function(filter) {
+ return filter === '-debug';
+ });
+ }
+ var devel = $('#tic-package-toolbar-devel').is(':checked');
+ if (devel) {
+ if (!_.includes(defaultFilters, '-devel')) {
+ defaultFilters.push('-devel');
+ }
+ } else {
+ _.remove(defaultFilters, function(filter) {
+ return filter === '-devel';
+ });
+ }
+ _filter([$('#tic-package-toolbar-input').val()]);
}
- $('#tic-package-toolbar-devel').on('click', _filterDevel);
+ $("#tic-package-toolbar-debug").on('click', _filterType);
+ $("#tic-package-toolbar-devel").on('click', _filterType);
function _inputClearBtnHandler() {
$('#tic-package-toolbar-input').val('').focus();
- _filter('');
+ _filter([]);
$(this).toggleClass('hidden', true);
}
$('#tic-package-toolbar-input-clear').on('click', _inputClearBtnHandler);