From f1f55036e8da3ef82a015027f91b54f873cf859c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Wed, 18 Nov 2015 18:36:23 +0100 Subject: [PATCH] Simplistic folder add dialog --- .../static/js/app/viewmodels/files.js | 27 ++++++++++++++++++- src/octoprint/templates/dialogs/files.jinja2 | 21 +++++++++++++++ src/octoprint/templates/index.jinja2 | 1 + src/octoprint/templates/sidebar/files.jinja2 | 5 ++++ 4 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/octoprint/static/js/app/viewmodels/files.js b/src/octoprint/static/js/app/viewmodels/files.js index d19e9bc4..8f9c0d2a 100644 --- a/src/octoprint/static/js/app/viewmodels/files.js +++ b/src/octoprint/static/js/app/viewmodels/files.js @@ -55,6 +55,12 @@ $(function() { self.uploadButton = undefined; self.uploadSdButton = undefined; + self.addFolderDialog = undefined; + self.addFolderName = ko.observable(undefined); + self.enableAddFolder = ko.computed(function() { + return self.loginState.isUser() && self.addFolderName() && self.addFolderName().trim() != ""; + }); + self.allItems = ko.observable(undefined); self.listStyle = ko.observable("folders_files"); self.currentPath = ko.observable(""); @@ -256,6 +262,23 @@ $(function() { self.highlightCurrentFilename(); }; + self.showAddFolderDialog = function() { + if (self.addFolderDialog) { + self.addFolderDialog.modal("show"); + } + }; + + self.addFolder = function() { + var name = self.addFolderName(); + + // "local" only for now since we only support local and sdcard, + // and sdcard doesn't support creating folders... + OctoPrint.files.createFolder("local", name, self.currentPath()) + .done(function() { + self.addFolderDialog.modal("hide"); + }); + }; + self.loadFile = function(file, printAfterLoad) { if (!file) { return; @@ -471,6 +494,8 @@ $(function() { scrollBy: "102px" }); + self.addFolderDialog = $("#add_folder_dialog"); + //~~ Gcode upload self.uploadButton = $("#gcode_upload"); @@ -656,6 +681,6 @@ $(function() { OCTOPRINT_VIEWMODELS.push([ GcodeFilesViewModel, ["settingsViewModel", "loginStateViewModel", "printerStateViewModel", "slicingViewModel"], - "#files_wrapper" + ["#files_wrapper", "#add_folder_dialog"] ]); }); diff --git a/src/octoprint/templates/dialogs/files.jinja2 b/src/octoprint/templates/dialogs/files.jinja2 index e69de29b..6962d9bd 100644 --- a/src/octoprint/templates/dialogs/files.jinja2 +++ b/src/octoprint/templates/dialogs/files.jinja2 @@ -0,0 +1,21 @@ + diff --git a/src/octoprint/templates/index.jinja2 b/src/octoprint/templates/index.jinja2 index 2a316380..cbd644c0 100644 --- a/src/octoprint/templates/index.jinja2 +++ b/src/octoprint/templates/index.jinja2 @@ -130,6 +130,7 @@ {% include 'dialogs/usersettings.jinja2' %} {% include 'dialogs/wizard.jinja2' %} {% include 'dialogs/about.jinja2' %} + {% include 'dialogs/files.jinja2' %} diff --git a/src/octoprint/templates/sidebar/files.jinja2 b/src/octoprint/templates/sidebar/files.jinja2 index 994d7a0a..983af43f 100644 --- a/src/octoprint/templates/sidebar/files.jinja2 +++ b/src/octoprint/templates/sidebar/files.jinja2 @@ -44,6 +44,11 @@ {{ _('Free') }}: / {{ _('Total') }}:
+
+ + {{ _('Create folder...') }} + +
{% if enableSdSupport %}