Fix hide empty folders option

Now hides folders which contain no files at all
This commit is contained in:
Gina Häußge 2016-07-04 16:01:50 +02:00
parent 0371fdd497
commit 1991a9e2c7
3 changed files with 6 additions and 2 deletions

View file

@ -34,10 +34,14 @@
if (!element.hasOwnProperty("date")) element.date = undefined;
if (element.type == "folder") {
element.weight = 0;
_.each(element.children, function(e, i, l) {
e.parent = element;
recursiveCheck(e, i, l);
element.weight += e.weight;
});
} else {
element.weight = 1;
}
};
_.each(response.files, recursiveCheck);

View file

@ -111,7 +111,7 @@ $(function() {
return data["type"] && (data["type"] == "model" || data["type"] == "folder");
},
"emptyFolder": function(data) {
return data["type"] && (data["type"] != "folder" || data["children"].length != 0);
return data["type"] && (data["type"] != "folder" || data["weight"] > 0);
}
},
"name",

View file

@ -23,7 +23,7 @@
<li><a href="#" data-bind="click: function() { $root.listHelper.toggleFilter('sd'); }"><i class="icon-ok" data-bind="style: {visibility: _.contains(listHelper.currentFilters(), 'sd') ? 'visible' : 'hidden'}"></i> {{ _('Only show files stored on SD') }}</a></li>
{% endif %}
<li class="divider"></li>
<li><a href="#" data-bind="click: function() { $root.listHelper.toggleFilter('emptyFolder'); }"><i class="icon-ok" data-bind="style: {visibility: _.contains(listHelper.currentFilters(), 'emptyFolder') ? 'visible' : 'hidden'}"></i> {{ _('Hide empty folders') }}</a></li>
<li><a href="#" data-bind="click: function() { $root.listHelper.toggleFilter('emptyFolder'); }"><i class="icon-ok" data-bind="style: {visibility: _.contains(listHelper.currentFilters(), 'emptyFolder') ? 'visible' : 'hidden'}"></i> {{ _('Hide folders without files') }}</a></li>
<li><a href="#" data-bind="click: function() { $root.listHelper.toggleFilter('printed'); }"><i class="icon-ok" data-bind="style: {visibility: _.contains(listHelper.currentFilters(), 'printed') ? 'visible' : 'hidden'}"></i> {{ _('Hide successfully printed files') }}</a></li>
</ul>
</div>