Added left space on filesystem holding the uploads folder to the gcode files list

Closes #186
master
Gina Häußge 2013-07-20 16:01:17 +02:00
parent 22ea55746c
commit 31d86cd0a2
5 changed files with 29 additions and 3 deletions

View File

@ -301,7 +301,7 @@ def readGcodeFiles():
"date": "n/a",
"origin": "sd"
})
return jsonify(files=files)
return jsonify(files=files, free=util.getFormattedSize(util.getFreeBytes(settings().getBaseFolder("uploads"))))
@app.route(BASEURL + "gcodefiles/<path:filename>", methods=["GET"])
def readGcodeFile(filename):

View File

@ -385,6 +385,10 @@ ul.dropdown-menu li a {
margin-bottom: 0;
}
}
table {
margin-bottom: 0;
}
}
/** Control tab */

View File

@ -784,6 +784,8 @@ function GcodeFilesViewModel(printerStateViewModel, loginStateViewModel) {
self.isLoading = ko.observable(undefined);
self.isSdReady = ko.observable(undefined);
self.freeSpace = ko.observable(undefined);
// initialize list helper
self.listHelper = new ItemListHelper(
"gcodeFiles",
@ -884,6 +886,8 @@ function GcodeFilesViewModel(printerStateViewModel, loginStateViewModel) {
self.listHelper.switchToItem(function(item) {return item.name == response.filename});
}
self.freeSpace(response.free);
self.highlightFilename(self.printerState.filename());
}

View File

@ -186,6 +186,9 @@
</tr>
</tbody>
</table>
<div class="muted text-right">
<small>Free: <span data-bind="text: freeSpace"></span></small>
</div>
<div class="pagination pagination-mini pagination-centered">
<ul>
<li data-bind="css: {disabled: listHelper.currentPage() === 0}"><a href="#" data-bind="click: listHelper.prevPage">«</a></li>

View File

@ -11,7 +11,7 @@ from octoprint.settings import settings
def getFormattedSize(num):
"""
Taken from http://stackoverflow.com/questions/1094841/reusable-library-to-get-human-readable-version-of-file-size
Taken from http://stackoverflow.com/a/1094933/2028598
"""
for x in ["bytes","KB","MB","GB"]:
if num < 1024.0:
@ -42,7 +42,7 @@ def getFormattedDateTime(d):
def getClass(name):
"""
Taken from http://stackoverflow.com/a/452981/2028598
Taken from http://stackoverflow.com/a/452981/2028598
"""
parts = name.split(".")
module = ".".join(parts[:-1])
@ -89,3 +89,18 @@ def getNewTimeout(type):
return now # timeout immediately for unknown timeout type
return now + settings().getFloat(["serial", "timeout", type])
def getFreeBytes(path):
"""
Taken from http://stackoverflow.com/a/2372171/2028598
"""
if sys.platform == "win32":
import ctypes
freeBytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(path), None, None, ctypes.pointer(freeBytes))
return freeBytes.value
else:
st = os.statvfs(path)
return st.f_bavail * st.f_frsize