Hide article category if no article matches the search
This commit is contained in:
parent
9f083dd4d0
commit
a87ced2646
3 changed files with 30 additions and 5 deletions
|
@ -45,21 +45,21 @@ var CustomizedList = function(id, options, values) {
|
||||||
|
|
||||||
var resetSearchButton = h.getByClass(options.resetSearchClass, self.list.listContainer);
|
var resetSearchButton = h.getByClass(options.resetSearchClass, self.list.listContainer);
|
||||||
$(resetSearchButton).removeClass(options.highlightClass);
|
$(resetSearchButton).removeClass(options.highlightClass);
|
||||||
}
|
};
|
||||||
|
|
||||||
this.searchDelayEnd = function(searchString, columns) {
|
this.searchDelayEnd = function(searchString, columns) {
|
||||||
self.list.search(searchString, columns);
|
self.list.search(searchString, columns);
|
||||||
}
|
};
|
||||||
|
|
||||||
this.highlightResetButton = function() {
|
this.highlightResetButton = function() {
|
||||||
var resetSearchButton = h.getByClass(options.resetSearchClass, self.list.listContainer);
|
var resetSearchButton = h.getByClass(options.resetSearchClass, self.list.listContainer);
|
||||||
$(resetSearchButton).toggleClass(options.highlightClass, self.list.searched);
|
$(resetSearchButton).toggleClass(options.highlightClass, self.list.searched);
|
||||||
}
|
};
|
||||||
|
|
||||||
this.resetSearch = function() {
|
this.resetSearch = function() {
|
||||||
$('.' + options.delayedSearchClass + ', .' + options.searchClass, self.list.listContainer).val('');
|
$('.' + options.delayedSearchClass + ', .' + options.searchClass, self.list.listContainer).val('');
|
||||||
self.list.search('');
|
self.list.search('');
|
||||||
}
|
};
|
||||||
|
|
||||||
init.start(id, options, values);
|
init.start(id, options, values);
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,19 @@ List.prototype.templateEngines.unlist = function(list, settings) {
|
||||||
itemSource = getItemSource(settings.item),
|
itemSource = getItemSource(settings.item),
|
||||||
templater = this;
|
templater = this;
|
||||||
|
|
||||||
|
var init = {
|
||||||
|
start: function(options) {
|
||||||
|
this.defaults(options);
|
||||||
|
this.callbacks(options);
|
||||||
|
},
|
||||||
|
defaults: function(options) {
|
||||||
|
options.listHeadingsClass = options.listHeadingsClass || 'list-heading';
|
||||||
|
},
|
||||||
|
callbacks: function(options) {
|
||||||
|
list.on('updated', templater.updateListHeadings);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
function getItemSource(item) {
|
function getItemSource(item) {
|
||||||
if (item === undefined) {
|
if (item === undefined) {
|
||||||
var nodes = listSource.childNodes,
|
var nodes = listSource.childNodes,
|
||||||
|
@ -143,6 +156,18 @@ List.prototype.templateEngines.unlist = function(list, settings) {
|
||||||
this.clear = function() {
|
this.clear = function() {
|
||||||
$(listSource.childNodes).addClass('unlisted');
|
$(listSource.childNodes).addClass('unlisted');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.updateListHeadings = function() {
|
||||||
|
var headSel = '.' + settings.listHeadingsClass;
|
||||||
|
|
||||||
|
$(headSel, listSource).each(function() {
|
||||||
|
if( $(this).nextUntil(headSel, ':not(.unlisted)').length ) {
|
||||||
|
$(this).removeClass('unlisted');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
init.start(settings);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
%th{style: "width:15px;"}= t '.sum'
|
%th{style: "width:15px;"}= t '.sum'
|
||||||
%tbody.list
|
%tbody.list
|
||||||
- @order.articles_grouped_by_category.each do |category, order_articles|
|
- @order.articles_grouped_by_category.each do |category, order_articles|
|
||||||
%tr.no-unlist.article-category
|
%tr.list-heading.article-category
|
||||||
%td
|
%td
|
||||||
= category
|
= category
|
||||||
%i.icon-tag
|
%i.icon-tag
|
||||||
|
|
Loading…
Reference in a new issue