From eafca5d77a1d0e891ab2569f80f5b53d7a777ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Fri, 25 Sep 2015 17:09:07 +0200 Subject: [PATCH] Some bug fixing of client migration --- .../pluginmanager/static/js/pluginmanager.js | 10 +++++----- src/octoprint/server/__init__.py | 2 +- src/octoprint/server/api/__init__.py | 9 +++++++-- .../js/app/client/{octoprint.js => base.js} | 0 .../static/js/app/client/settings.js | 20 +++++++++++++++++++ 5 files changed, 33 insertions(+), 8 deletions(-) rename src/octoprint/static/js/app/client/{octoprint.js => base.js} (100%) diff --git a/src/octoprint/plugins/pluginmanager/static/js/pluginmanager.js b/src/octoprint/plugins/pluginmanager/static/js/pluginmanager.js index 476434e6..00ba335d 100644 --- a/src/octoprint/plugins/pluginmanager/static/js/pluginmanager.js +++ b/src/octoprint/plugins/pluginmanager/static/js/pluginmanager.js @@ -20,7 +20,7 @@ $(function() { url: pluginUrl, dependency_links: !!dependencyLinks }; - return OctoPrint.simpleApiCommand(plugin, "install", data, opts); + return OctoPrint.simpleApiCommand("pluginmanager", "install", data, opts); }; exports.reinstall = function(plugin, pluginUrl, dependencyLinks, opts) { @@ -30,28 +30,28 @@ $(function() { reinstall: plugin, force: true }; - return OctoPrint.simpleApiCommand(plugin, "install", data, opts); + return OctoPrint.simpleApiCommand("pluginmanager", "install", data, opts); }; exports.uninstall = function(plugin, opts) { var data = { plugin: plugin }; - return OctoPrint.simpleApiCommand(plugin, "uninstall", data, opts); + return OctoPrint.simpleApiCommand("pluginmanager", "uninstall", data, opts); }; exports.enable = function(plugin, opts) { var data = { plugin: plugin }; - return OctoPrint.simpleApiCommand(plugin, "enable", data, opts); + return OctoPrint.simpleApiCommand("pluginmanager", "enable", data, opts); }; exports.disable = function(plugin, opts) { var data = { plugin: plugin }; - return OctoPrint.simpleApiCommand(plugin, "disable", data, opts); + return OctoPrint.simpleApiCommand("pluginmanager", "disable", data, opts); }; exports.upload = function(file) { diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index ed303df8..4d1a04b7 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -913,7 +913,7 @@ class Server(object): "js/lib/sockjs-0.3.4.min.js" ] js_client = [ - "js/app/client/octoprint.js", + "js/app/client/base.js", "js/app/client/socket.js", "js/app/client/browser.js", "js/app/client/connection.js", diff --git a/src/octoprint/server/api/__init__.py b/src/octoprint/server/api/__init__.py index 9d953edf..8f6d6db4 100644 --- a/src/octoprint/server/api/__init__.py +++ b/src/octoprint/server/api/__init__.py @@ -185,8 +185,13 @@ def apiVersion(): @admin_permission.require(403) def performSystemAction(): logger = logging.getLogger(__name__) - if "action" in request.values.keys(): - action = request.values["action"] + + data = request.values + if hasattr(request, "json") and request.json: + data = request.json + + if "action" in data: + action = data["action"] available_actions = s().get(["system", "actions"]) for availableAction in available_actions: if availableAction["action"] == action: diff --git a/src/octoprint/static/js/app/client/octoprint.js b/src/octoprint/static/js/app/client/base.js similarity index 100% rename from src/octoprint/static/js/app/client/octoprint.js rename to src/octoprint/static/js/app/client/base.js diff --git a/src/octoprint/static/js/app/client/settings.js b/src/octoprint/static/js/app/client/settings.js index cf701699..b0c2b423 100644 --- a/src/octoprint/static/js/app/client/settings.js +++ b/src/octoprint/static/js/app/client/settings.js @@ -12,5 +12,25 @@ OctoPrint.settings = (function($, _) { return OctoPrint.postJson(url, settings, opts); }; + exports.getPluginSettings = function(plugin, opts) { + return exports.get(opts) + .then(function(settings, statusText, request) { + if (!settings.plugins || !settings.plugins[plugin]) { + return $.Deferred() + .reject(request, "dataerror", "No settings for plugin " + plugin) + .promise(); + } else { + return settings.plugins[plugin]; + } + }); + }; + + exports.savePluginSettings = function(plugin, settings, opts) { + var data = {}; + data["plugins"] = {}; + data["plugins"][plugin] = settings; + return exports.save(data, opts); + }; + return exports; })($, _);