diff --git a/src/octoprint/static/js/app/client/files.js b/src/octoprint/static/js/app/client/files.js index 67cb6cbd..902a3c18 100644 --- a/src/octoprint/static/js/app/client/files.js +++ b/src/octoprint/static/js/app/client/files.js @@ -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); diff --git a/src/octoprint/static/js/app/viewmodels/files.js b/src/octoprint/static/js/app/viewmodels/files.js index 348fc365..18256d39 100644 --- a/src/octoprint/static/js/app/viewmodels/files.js +++ b/src/octoprint/static/js/app/viewmodels/files.js @@ -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", diff --git a/src/octoprint/templates/sidebar/files_header.jinja2 b/src/octoprint/templates/sidebar/files_header.jinja2 index 88275082..efc592f7 100644 --- a/src/octoprint/templates/sidebar/files_header.jinja2 +++ b/src/octoprint/templates/sidebar/files_header.jinja2 @@ -23,7 +23,7 @@
  • {{ _('Only show files stored on SD') }}
  • {% endif %}
  • -
  • {{ _('Hide empty folders') }}
  • +
  • {{ _('Hide folders without files') }}
  • {{ _('Hide successfully printed files') }}