diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index 8734970..f6b1aca 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -122,10 +122,20 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, self.print_complete = False def get_settings_version(self): - return 5 + return 6 - def on_settings_migrate(self, target, current): + def on_settings_migrate(self, target, current=None): self._logger.warn("######### current settings version %s target settings version %s #########", current, target) + + if current >= 4 and target == 6: + self._logger.warn( + "######### migrating settings to v6 #########") + old_outputs = self._settings.get(["rpi_outputs"]) + for rpi_output in old_outputs: + if 'shutdown_on_failed' not in rpi_output: + rpi_output['shutdown_on_failed'] = False + if 'shell_script' not in rpi_output: + rpi_output['shell_script'] = "" if current == 4 and target == 5: self._logger.warn("######### migrating settings from v4 to v5 #########") old_outputs = self._settings.get(["rpi_outputs"]) @@ -170,7 +180,6 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, val = GPIO.input(pin) if not rpi_output['active_low'] else ( not GPIO.input(pin)) index = self.to_int(rpi_output['index_id']) - # result.append(dict(index_id=rpi_output['index_id'], value=val)) gpio_status.append(dict(index_id=index, status=val)) return flask.Response(json.dumps(gpio_status), mimetype='application/json') @@ -187,13 +196,9 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, @octoprint.plugin.BlueprintPlugin.route("/sendShellCommand", methods=["GET"]) def send_shell_command(self): output_index = self.to_int(flask.request.values["index_id"]) - rpi_output = [r_out for r_out in self.rpi_outputs if self.to_int( r_out['index_id']) == output_index].pop() - - if rpi_output: - command = rpi_output['shell_script'] - self.shell_command(command) + self.send_gcode_command(rpi_output['shell_script']) return flask.jsonify(success=True) diff --git a/octoprint_enclosure/static/js/enclosure.js b/octoprint_enclosure/static/js/enclosure.js index b51dfad..ffc07a3 100644 --- a/octoprint_enclosure/static/js/enclosure.js +++ b/octoprint_enclosure/static/js/enclosure.js @@ -511,6 +511,19 @@ $(function () { }); }; + self.handleShellOutput = function (item, form) { + var request = { + "index_id": item.index_id() + }; + + $.ajax({ + type: "GET", + dataType: "json", + data: request, + url: self.buildPluginUrl("/sendShellCommand") + }); + }; + self.switchAutoStartUp = function (item) { var request = { diff --git a/octoprint_enclosure/templates/enclosure_navbar.jinja2 b/octoprint_enclosure/templates/enclosure_navbar.jinja2 index 64a6b42..143bcaa 100644 --- a/octoprint_enclosure/templates/enclosure_navbar.jinja2 +++ b/octoprint_enclosure/templates/enclosure_navbar.jinja2 @@ -5,6 +5,7 @@ diff --git a/octoprint_enclosure/templates/enclosure_tab.jinja2 b/octoprint_enclosure/templates/enclosure_tab.jinja2 index 3b8b479..474041f 100644 --- a/octoprint_enclosure/templates/enclosure_tab.jinja2 +++ b/octoprint_enclosure/templates/enclosure_tab.jinja2 @@ -170,6 +170,16 @@ + +

+ + Shell Script +

+
+ +
+ +

@@ -292,4 +302,4 @@

- + \ No newline at end of file