From c7da95e91af199d8e8bdbec5e616cc0028f2f303 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Wed, 30 Mar 2016 11:26:19 +0200 Subject: [PATCH] Added wizard for setup of server commands --- src/octoprint/plugins/corewizard/__init__.py | 26 ++++++++++++++++--- .../corewizard/static/js/corewizard.js | 10 +++++++ .../corewizard_servercommands_wizard.jinja2 | 19 ++++++++++++++ .../server/serverCommandServerRestart.jinja2 | 6 +++++ .../server/serverCommandSystemRestart.jinja2 | 6 +++++ .../server/serverCommandSystemShutdown.jinja2 | 6 +++++ .../templates/dialogs/settings/server.jinja2 | 21 +++------------ 7 files changed, 72 insertions(+), 22 deletions(-) create mode 100644 src/octoprint/plugins/corewizard/templates/corewizard_servercommands_wizard.jinja2 create mode 100644 src/octoprint/templates/_snippets/settings/server/serverCommandServerRestart.jinja2 create mode 100644 src/octoprint/templates/_snippets/settings/server/serverCommandSystemRestart.jinja2 create mode 100644 src/octoprint/templates/_snippets/settings/server/serverCommandSystemShutdown.jinja2 diff --git a/src/octoprint/plugins/corewizard/__init__.py b/src/octoprint/plugins/corewizard/__init__.py index 37d734a9..2e4db13b 100644 --- a/src/octoprint/plugins/corewizard/__init__.py +++ b/src/octoprint/plugins/corewizard/__init__.py @@ -9,6 +9,9 @@ __copyright__ = "Copyright (C) 2015 The OctoPrint Project - Released under terms import octoprint.plugin +from flask.ext.babel import gettext + + class CoreWizardPlugin(octoprint.plugin.AssetPlugin, octoprint.plugin.TemplatePlugin, octoprint.plugin.WizardPlugin, @@ -23,7 +26,7 @@ class CoreWizardPlugin(octoprint.plugin.AssetPlugin, additional = self._get_subwizard_attrs("_get_", "_additional_wizard_template_data") result = list() - for key, method in required.iteritems(): + for key, method in required.items(): if not method(): continue @@ -74,7 +77,7 @@ class CoreWizardPlugin(octoprint.plugin.AssetPlugin, return dict() def _get_acl_wizard_name(self): - return "Access Control" + return gettext("Access Control") def _get_acl_additional_wizard_template_data(self): return dict(mandatory=self._is_acl_wizard_required()) @@ -119,7 +122,22 @@ class CoreWizardPlugin(octoprint.plugin.AssetPlugin, return dict() def _get_webcam_wizard_name(self): - return "Webcam & Timelapse" + return gettext("Webcam & Timelapse") + + #~~ Server commands subwizard + + def _is_servercommands_wizard_required(self): + system_shutdown_command = self._settings.global_get(["server", "commands", "systemShutdownCommand"]) + system_restart_command = self._settings.global_get(["server", "commands", "systemRestartCommand"]) + server_restart_command = self._settings.global_get(["server", "commands", "serverRestartCommand"]) + + return not (system_shutdown_command and system_restart_command and server_restart_command) + + def _get_servercommands_wizard_details(self): + return dict() + + def _get_servercommands_wizard_name(self): + return gettext("Server Commands") #~~ helpers @@ -143,5 +161,5 @@ class CoreWizardPlugin(octoprint.plugin.AssetPlugin, __plugin_name__ = "Core Wizard" -__plugin_description__ = "Provides wizard dialogs for core components" +__plugin_description__ = "Provides wizard dialogs for core components and functionality" __plugin_implementation__ = CoreWizardPlugin() diff --git a/src/octoprint/plugins/corewizard/static/js/corewizard.js b/src/octoprint/plugins/corewizard/static/js/corewizard.js index 3a269993..789fcbff 100644 --- a/src/octoprint/plugins/corewizard/static/js/corewizard.js +++ b/src/octoprint/plugins/corewizard/static/js/corewizard.js @@ -102,6 +102,12 @@ $(function() { } } + function CoreWizardServerCommandsViewModel(parameters) { + var self = this; + + self.settingsViewModel = parameters[0]; + } + OCTOPRINT_VIEWMODELS.push([ CoreWizardAclViewModel, ["loginStateViewModel"], @@ -110,5 +116,9 @@ $(function() { CoreWizardWebcamViewModel, ["settingsViewModel"], "#wizard_plugin_corewizard_webcam" + ], [ + CoreWizardServerCommandsViewModel, + ["settingsViewModel"], + "#wizard_plugin_corewizard_servercommands" ]); }); diff --git a/src/octoprint/plugins/corewizard/templates/corewizard_servercommands_wizard.jinja2 b/src/octoprint/plugins/corewizard/templates/corewizard_servercommands_wizard.jinja2 new file mode 100644 index 00000000..509070d7 --- /dev/null +++ b/src/octoprint/plugins/corewizard/templates/corewizard_servercommands_wizard.jinja2 @@ -0,0 +1,19 @@ +

{{ _('Server Commands') }}

+ +{% trans %}

+ OctoPrint supports calling external commands in order to restart itself or restarting and/or shutting + down the system it is running on. You may configure those here. +

{% endtrans %} + +

{{ _('OctoPrint related commands') }}

+ +
+ {% include "_snippets/settings/server/serverCommandServerRestart.jinja2" %} +
+ +

{{ _('System related commands') }}

+ +
+ {% include "_snippets/settings/server/serverCommandSystemRestart.jinja2" %} + {% include "_snippets/settings/server/serverCommandSystemShutdown.jinja2" %} +
diff --git a/src/octoprint/templates/_snippets/settings/server/serverCommandServerRestart.jinja2 b/src/octoprint/templates/_snippets/settings/server/serverCommandServerRestart.jinja2 new file mode 100644 index 00000000..3b8127a5 --- /dev/null +++ b/src/octoprint/templates/_snippets/settings/server/serverCommandServerRestart.jinja2 @@ -0,0 +1,6 @@ +
+ +
+ +
+
diff --git a/src/octoprint/templates/_snippets/settings/server/serverCommandSystemRestart.jinja2 b/src/octoprint/templates/_snippets/settings/server/serverCommandSystemRestart.jinja2 new file mode 100644 index 00000000..3ef286c2 --- /dev/null +++ b/src/octoprint/templates/_snippets/settings/server/serverCommandSystemRestart.jinja2 @@ -0,0 +1,6 @@ +
+ +
+ +
+
diff --git a/src/octoprint/templates/_snippets/settings/server/serverCommandSystemShutdown.jinja2 b/src/octoprint/templates/_snippets/settings/server/serverCommandSystemShutdown.jinja2 new file mode 100644 index 00000000..b566a73e --- /dev/null +++ b/src/octoprint/templates/_snippets/settings/server/serverCommandSystemShutdown.jinja2 @@ -0,0 +1,6 @@ +
+ +
+ +
+
diff --git a/src/octoprint/templates/dialogs/settings/server.jinja2 b/src/octoprint/templates/dialogs/settings/server.jinja2 index afcf16fc..282618a7 100644 --- a/src/octoprint/templates/dialogs/settings/server.jinja2 +++ b/src/octoprint/templates/dialogs/settings/server.jinja2 @@ -1,22 +1,7 @@

{{ _('Commands') }}

-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
+ {% include "_snippets/settings/server/serverCommandServerRestart.jinja2" %} + {% include "_snippets/settings/server/serverCommandSystemRestart.jinja2" %} + {% include "_snippets/settings/server/serverCommandSystemShutdown.jinja2" %}