diff --git a/src/octoprint/filemanager/storage.py b/src/octoprint/filemanager/storage.py index 81e6eb60..f67ef68c 100644 --- a/src/octoprint/filemanager/storage.py +++ b/src/octoprint/filemanager/storage.py @@ -1150,16 +1150,23 @@ class LocalFileStorage(StorageInterface): if not filter or filter(entry, entry_data): def get_size(start_path): total_size = 0 - for dirpath, dirnames, filenames in os.walk(start_path): - for f in filenames: - fp = os.path.join(dirpath, f) + for root, dirs, files in os.walk(start_path): + for f in files: + if f is ".metadata.yaml": + continue + + fp = os.path.join(root, f) total_size += os.path.getsize(fp) + return total_size # only add folders passing the optional filter extended_entry_data = dict() extended_entry_data.update(entry_data) extended_entry_data["size"] = get_size(entry_path) + stat = os.stat(entry_path) + if stat: + extended_entry_data["date"] = int(stat.st_ctime) result[entry] = extended_entry_data diff --git a/src/octoprint/static/js/app/viewmodels/files.js b/src/octoprint/static/js/app/viewmodels/files.js index b4d85fed..481d7c29 100644 --- a/src/octoprint/static/js/app/viewmodels/files.js +++ b/src/octoprint/static/js/app/viewmodels/files.js @@ -99,7 +99,10 @@ $(function() { return data["type"] && (data["type"] == "model" || data["type"] == "folder"); }, "emptyFolder": function(data) { - return data["type"] && data["type"] != "folder" || (data["size"] && data["size"] != 0); + if (data["type"] && data["type"] != "folder") + return true; + + return data.children.length != 0; } }, "name", diff --git a/src/octoprint/templates/sidebar/files.jinja2 b/src/octoprint/templates/sidebar/files.jinja2 index 5b128027..1d16d1c5 100644 --- a/src/octoprint/templates/sidebar/files.jinja2 +++ b/src/octoprint/templates/sidebar/files.jinja2 @@ -3,7 +3,7 @@
-
{{ _('Back') }}
+
{{ _('Back') }}