From 23387d6e48c82efd4b40dfacb449466a54681b99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Thu, 15 Jan 2015 11:06:59 +0100 Subject: [PATCH] More work on the template refactoring and new template plugin types --- docs/images/template-plugin-types-main.png | Bin 0 -> 102066 bytes .../images/template-plugin-types-settings.png | Bin 0 -> 48156 bytes src/octoprint/plugin/core.py | 39 ++- src/octoprint/plugin/types.py | 172 +++++++++++- src/octoprint/server/__init__.py | 104 +++++--- src/octoprint/static/js/app/main.js | 37 +-- src/octoprint/static/less/octoprint.less | 3 + .../templates/dialogs/settings.jinja2 | 16 +- src/octoprint/templates/index.jinja2 | 246 +++++------------- src/octoprint/templates/initscript.jinja2 | 28 ++ src/octoprint/templates/javascripts.jinja2 | 72 +++++ src/octoprint/templates/navbar/login.jinja2 | 38 ++- .../templates/navbar/settings.jinja2 | 8 +- .../templates/navbar/systemmenu.jinja2 | 16 +- .../templates/sidebar/connection.jinja2 | 35 +-- src/octoprint/templates/sidebar/files.jinja2 | 157 ++++------- .../templates/sidebar/files_header.jinja2 | 33 +++ src/octoprint/templates/sidebar/state.jinja2 | 45 ++-- src/octoprint/templates/stylesheets.jinja2 | 34 +++ src/octoprint/templates/tabs/control.jinja2 | 238 +++++++++-------- .../templates/tabs/gcodeviewer.jinja2 | 138 +++++----- .../templates/tabs/temperature.jinja2 | 108 ++++---- src/octoprint/templates/tabs/terminal.jinja2 | 24 +- src/octoprint/templates/tabs/timelapse.jinja2 | 116 ++++----- tests/plugin/test_core.py | 10 +- 25 files changed, 971 insertions(+), 746 deletions(-) create mode 100644 docs/images/template-plugin-types-main.png create mode 100644 docs/images/template-plugin-types-settings.png create mode 100644 src/octoprint/templates/initscript.jinja2 create mode 100644 src/octoprint/templates/javascripts.jinja2 create mode 100644 src/octoprint/templates/sidebar/files_header.jinja2 create mode 100644 src/octoprint/templates/stylesheets.jinja2 diff --git a/docs/images/template-plugin-types-main.png b/docs/images/template-plugin-types-main.png new file mode 100644 index 0000000000000000000000000000000000000000..3b4267fafa8a4946a6038e69d50ac8d28d715365 GIT binary patch literal 102066 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

hRkk7Kp_|s5Rl&Ked6_QxSpR~^wI93s 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 SUt%Bdx@dmIjAU{n=Klcod*aLh literal 0 HcmV?d00001 diff --git a/docs/images/template-plugin-types-settings.png b/docs/images/template-plugin-types-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad2b5dd249f943d892ebc2657e4a08b93f5d0e3 GIT binary patch literal 48156 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

D-T1$-6a<{ef6X>JE+y#r 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 jDGv_settings.jinja2`` (e.g. ``myplugin_settings.jinja2``). + The template will be already included in the necessary wrapper divs, you just need to supply the pure content. + _tab + Configures the tab component to inject. The value must be a dictionary, supported values are the following: + + name + The name under which to include the tab, will be visible in the list of tabs on the top of the main view + data_bind + Additional knockout data bindings to apply to the template container, can be used to add further behaviour to + the container based on internal state if necessary. Note that if you include this and set ``custom_bindings`` + to ``True``, you need to also supply ``allowBindings: true`` as part of your custom data binding, otherwise + it won't work. + + The template included into the tab pane section must be called ``_tab.jinja2`` (e.g. ``myplugin_tab.jinja2``). + The template will be already included in the necessary wrapper divs, you just need to supply the pure content. + _sidebar + Configures the sidebar component to inject. The value must be a dictionary, supported values are the following: + + name + The name of the sidebar entry + icon + Icon to use for the sidebar header, should be the name of a Font Awesome icon without the leading ``icon-`` part + header_addon + Additional template to include in the head section of the sidebar item. For an example of this, see the additional + options included in the "Files" section + data_bind + Additional knockout data bindings to apply to the template container, can be used to add further behaviour to + the container based on internal state if necessary. Note that if you include this and set ``custom_bindings`` + to ``True``, you need to also supply ``allowBindings: true`` as part of your custom data binding, otherwise + it won't work. + + The template included into the sidebar section must be called ``_sidebar.jinja2`` (e.g. ``myplugin_sidebar.jinja2``). + The template will be already included in the necessary wrapper divs, you just need to supply the pure content. + _navbar + Configures the navbar component to inject. The value must be an empty dictionary. + + The template included into the sidebar section must be called ``_navbar.jinja2`` + + The following is an example for a simple plugin which injects all four types of templates into the interfaces: + + ``helloworld/__init__.py`` + + .. code-block:: python + + import octoprint.plugin + + class HelloWorldPlugin(octoprint.plugin.TemplatePlugin, octoprint.plugin.AssetPlugin): + def get_template_vars(self): + return dict( + _settings=dict(name="Hello World"), + _tab=dict(name="Hello World", custom_bindings=True, data_bind="allowBindings: true, visible: self.loginState.isUser()"), + _sidebar=dict(name="Hello World", icon="gear"), + _navbar=dict() + ) + + def get_assets(self): + return dict( + js=["js/helloworld.js"] + ) + + __plugin_name__ = "Hello World" + __plugin_version__ = "1.0" + __plugin_implementations__ = [HelloWorldPlugin()] + + ``helloworld/templates/helloworld_settings.jinja2`` + + .. code-block:: html+jinja + +

Hello World!

+ + This is a custom settings pane. + + ``helloworld/templates/helloworld_tab.jinja2`` + + .. code-block:: html+jinja + +

Hello World!

+ + This is a custom tab. + + ``helloworld/templates/helloworld_sidebar.jinja2`` + + .. code-block:: html+jinja + + Hello World! This is a custom side bar. + + ``helloworld/templates/helloworld_navbar.jinja2`` + + .. code-block:: html+jinja + +
  • + {{ _('Hello World!') }} +
  • + + """ + def get_template_vars(self): return dict() def get_template_folder(self): - return None + """ + Defines the folder where the plugin stores its templates. Override this if your plugin stores its templates at + some other place than the ``templates`` sub folder in the plugin base directory. + + :return: the absolute path to the folder where the plugin stores its jinja2 templates + """ + import os + return os.path.join(self._basefolder, "templates") class SimpleApiPlugin(Plugin): diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index 962c9c3f..fee5149b 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -111,41 +111,78 @@ def index(): template_plugins = pluginManager.get_implementations(octoprint.plugin.TemplatePlugin) plugin_vars = dict() - plugin_includes = dict() + plugin_includes_navbar = [] + plugin_includes_sidebar = [] + plugin_includes_tabs = [] + plugin_includes_settings = [] + plugin_names = template_plugins.keys() for name, implementation in template_plugins.items(): vars = implementation.get_template_vars() + if not isinstance(vars, dict): + continue - plugin_data = dict() + if "_navbar" in vars and isinstance(vars["_navbar"], dict): + data = dict(vars["_navbar"]) + data["_div"] = "navbar_plugin_" + name + data["_template"] = name + "_navbar.jinja2" + plugin_includes_navbar.append(data) + del vars["_navbar"] - if "_settings" in vars and "name" in vars["_settings"]: - plugin_data["_settings"] = dict(vars["_settings"]) - plugin_data["_settings"]["_div"] = "settings_plugin_" + name - plugin_data["_settings"]["_template"] = name + "_settings.jinja2" - del vars["_settings"] - - if "_tab" in vars and "name" in vars["_tab"]: - plugin_data["_tab"] = dict(vars["_tab"]) - plugin_data["_tab"]["_div"] = "tab_plugin_" + name - plugin_data["_tab"]["_template"] = name + "_tab.jinja2" - del vars["_tab"] - - if "_sidebar" in vars and "name" in vars["_sidebar"]: - plugin_data["_sidebar"] = vars["_sidebar"] - plugin_data["_sidebar"]["_div"] = "sidebar_plugin_" + name - plugin_data["_sidebar"]["_template"] = name + "_sidebar.jinja2" + if "_sidebar" in vars and isinstance(vars["_sidebar"], dict) and "name" in vars["_sidebar"]: + data = dict(vars["_sidebar"]) + data["_div"] = "sidebar_plugin_" + name + data["_template"] = name + "_sidebar.jinja2" + plugin_includes_sidebar.append((data["name"], data)) del vars["_sidebar"] - if len(plugin_data): - plugin_includes[name] = plugin_data + if "_tab" in vars and isinstance(vars["_tab"], dict) and "name" in vars["_tab"]: + data = dict(vars["_tab"]) + data["_div"] = "tab_plugin_" + name + data["_template"] = name + "_tab.jinja2" + plugin_includes_tabs.append((data["name"], data)) + del vars["_tab"] + + if "_settings" in vars and isinstance(vars["_settings"], dict) and "name" in vars["_settings"]: + data = dict(vars["_settings"]) + data["_div"] = "settings_plugin_" + name + data["_template"] = name + "_settings.jinja2" + plugin_includes_settings.append((data["name"], data)) + del vars["_settings"] for var_name, var_value in vars.items(): plugin_vars["plugin_" + name + "_" + var_name] = var_value + #~~ navbar + + navbar_entries = plugin_includes_navbar + [ + dict(_template="navbar/settings.jinja2", _div="navbar_settings", styles=["display: none"], data_bind="visible: loginState.isAdmin"), + dict(_template="navbar/systemmenu.jinja2", _div="navbar_systemmenu", styles=["display: none"], classes=["dropdown"], data_bind="visible: loginState.isAdmin"), + dict(_template="navbar/login.jinja2", _div="navbar_login", classes=["dropdown"]) + ] + + #~~ sidebar + + sidebar_entries = [ + (gettext("Connection"), dict(_template="sidebar/connection.jinja2", _div="connection", icon="signal", styles_wrapper=["display: none"], data_bind="visible: loginState.isAdmin")), + (gettext("State"), dict(_template="sidebar/state.jinja2", _div="state", icon="info-sign")), + (gettext("Files"), dict(_template="sidebar/files.jinja2", _div="files", icon="list", classes_content=["overflow_visible"], header_addon="sidebar/files_header.jinja2")) + ] + plugin_includes_sidebar + + #~~ tabs + + tab_entries = [ + (gettext("Temperature"), dict(_template="tabs/temperature.jinja2", _div="temp")), + (gettext("Control"), dict(_template="tabs/control.jinja2", _div="control")), + (gettext("GCode Viewer"), dict(_template="tabs/gcodeviewer.jinja2", _div="gcode")), + (gettext("Terminal"), dict(_template="tabs/terminal.jinja2", _div="term")), + (gettext("Timelapse"), dict(_template="tabs/timelapse.jinja2", _div="timelapse")) + ] + plugin_includes_tabs + #~~ settings dialog settings_entries = [ (gettext("Printer"), None), - (gettext("Serial Connection"), dict(_template="dialogs/settings/serialconnection.jinja2", _div="settings_serialConnection", _active=True)), + (gettext("Serial Connection"), dict(_template="dialogs/settings/serialconnection.jinja2", _div="settings_serialConnection")), (gettext("Printer Profiles"), dict(_template="dialogs/settings/printerprofiles.jinja2", _div="settings_printerProfiles")), (gettext("Temperatures"), dict(_template="dialogs/settings/temperatures.jinja2", _div="settings_temperature")), (gettext("Terminal Filters"), dict(_template="dialogs/settings/terminalfilters.jinja2", _div="settings_terminalFilters")), @@ -159,14 +196,9 @@ def index(): (gettext("Appearance"), dict(_template="dialogs/settings/appearance.jinja2", _div="settings_appearance")), (gettext("Logs"), dict(_template="dialogs/settings/logs.jinja2", _div="settings_logs", data_bind="allowBindings: false")) ] - if len(plugin_includes): - plugin_tuples = [] - for name, data in plugin_includes.items(): - if "_settings" in data: - plugin_tuples.append((data["_settings"]["name"], data["_settings"])) - if len(plugin_tuples): - settings_entries.append((gettext("Plugins"), None)) - settings_entries.extend(sorted(plugin_tuples, key=lambda x: x[0])) + if len(plugin_includes_settings): + settings_entries.append((gettext("Plugins"), None)) + settings_entries.extend(sorted(plugin_includes_settings, key=lambda x: x[0])) #~~ prepare full set of template vars for rendering @@ -186,7 +218,11 @@ def index(): gcodeMobileThreshold=settings().get(["gcodeViewer", "mobileSizeThreshold"]), gcodeThreshold=settings().get(["gcodeViewer", "sizeThreshold"]), uiApiKey=UI_API_KEY, + navbarEntries=navbar_entries, + sidebarEntries=sidebar_entries, + tabEntries=tab_entries, settingsEntries=settings_entries, + pluginNames=plugin_names, assetPlugins=asset_plugin_urls, ) render_kwargs.update(plugin_vars) @@ -309,6 +345,16 @@ class Server(): printer = Printer(fileManager, analysisQueue, printerProfileManager) appSessionManager = util.flask.AppSessionManager() + pluginManager.initialize_implementations(dict( + printer_profile_manager=printerProfileManager, + event_manager=eventManager, + analysis_queue=analysisQueue, + slicing_manager=slicingManager, + storage_managers=storage_managers, + file_manager=fileManager, + app_session_manager=appSessionManager + )) + # configure additional template folders for jinja2 template_plugins = pluginManager.get_implementations(octoprint.plugin.TemplatePlugin) additional_template_folders = [] diff --git a/src/octoprint/static/js/app/main.js b/src/octoprint/static/js/app/main.js index d4511c55..8a84919f 100644 --- a/src/octoprint/static/js/app/main.js +++ b/src/octoprint/static/js/app/main.js @@ -418,9 +418,9 @@ $(function() { settingsViewModel.requestData(function() { ko.applyBindings(settingsViewModel, document.getElementById("settings_dialog")); - ko.applyBindings(connectionViewModel, document.getElementById("connection_accordion")); - ko.applyBindings(printerStateViewModel, document.getElementById("state_accordion")); - ko.applyBindings(gcodeFilesViewModel, document.getElementById("files_accordion")); + ko.applyBindings(connectionViewModel, document.getElementById("connection_wrapper")); + ko.applyBindings(printerStateViewModel, document.getElementById("state_wrapper")); + ko.applyBindings(gcodeFilesViewModel, document.getElementById("files_wrapper")); ko.applyBindings(temperatureViewModel, document.getElementById("temp")); ko.applyBindings(controlViewModel, document.getElementById("control")); ko.applyBindings(terminalViewModel, document.getElementById("term")); @@ -444,24 +444,31 @@ $(function() { // apply bindings and signal startup _.each(additionalViewModels, function(additionalViewModel) { - if (additionalViewModel[1] === undefined) { + var viewModel = additionalViewModel[0]; + var targets = additionalViewModel[1]; + + if (targets === undefined) { return; } - if (additionalViewModel[0].hasOwnProperty("onBeforeBinding")) { - additionalViewModel[0].onBeforeBinding(); + if (!Array.isArray(targets)) { + targets = [targets]; } - // model instance, target container - try { - ko.applyBindings(additionalViewModel[0], additionalViewModel[1]); - } catch (exc) { - console.log("Could not apply bindings for additional view model " + additionalViewModel[0] + ": " + exc.message); + if (viewModel.hasOwnProperty("onBeforeBinding")) { + viewModel.onBeforeBinding(); } + _.each(targets, function(target) { + try { + ko.applyBindings(viewModel, target); + } catch (exc) { + console.log("Could not apply bindings for additional view model " + viewModel + ": " + exc.message); + } + }); - if (additionalViewModel[0].hasOwnProperty("onAfterBinding")) { - additionalViewModel[0].onAfterBinding(); + if (viewModel.hasOwnProperty("onAfterBinding")) { + viewModel.onAfterBinding(); } }); }); @@ -517,14 +524,14 @@ $(function() { } }); - $(".accordion-toggle[href='#files']").click(function() { + $(".accordion-toggle[data-target='#files']").click(function() { var files = $("#files"); if (files.hasClass("in")) { files.removeClass("overflow_visible"); } else { setTimeout(function() { files.addClass("overflow_visible"); - }, 1000); + }, 100); } }); diff --git a/src/octoprint/static/less/octoprint.less b/src/octoprint/static/less/octoprint.less index e2c5ecfb..34d16856 100644 --- a/src/octoprint/static/less/octoprint.less +++ b/src/octoprint/static/less/octoprint.less @@ -665,6 +665,9 @@ ul.dropdown-menu li a { overflow: visible !important; } +.hidden { + display: none; +} #drop_overlay { diff --git a/src/octoprint/templates/dialogs/settings.jinja2 b/src/octoprint/templates/dialogs/settings.jinja2 index df9e1a4e..ac2e773d 100644 --- a/src/octoprint/templates/dialogs/settings.jinja2 +++ b/src/octoprint/templates/dialogs/settings.jinja2 @@ -10,7 +10,15 @@ {% if data is none %} {% else %} -
  • {{ entry }}
  • + {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} + + {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} {% endif %} {% endfor %} @@ -19,7 +27,11 @@ {% for entry, data in settingsEntries %} {% if data is not none %} {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} -
    +
    {% include data._template ignore missing %}
    {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} diff --git a/src/octoprint/templates/index.jinja2 b/src/octoprint/templates/index.jinja2 index d76f0950..071218ba 100644 --- a/src/octoprint/templates/index.jinja2 +++ b/src/octoprint/templates/index.jinja2 @@ -7,68 +7,8 @@ - - - - - - - - {% if stylesheet == "less" %} - - - - {% for name, assets in assetPlugins.items() %} - {% if "less" in assets %} - {% for asset in assets["less"] %} - - {% endfor %} - {% endif %} - {% endfor %} - - - - {% else %} - - - {% for name, assets in assetPlugins.items() %} - {% if "css" in assets %} - {% for asset in assets["css"] %} - - {% endfor %} - {% endif %} - {% endfor %} - - {% endif %} - - + {% include 'stylesheets.jinja2' %} + {% include 'initscript.jinja2' %}
    +
    - {% include 'sidebar/connection.jinja2' %} - {% include 'sidebar/state.jinja2' %} - {% include 'sidebar/files.jinja2' %} - - {% if templatePlugins %} - {% for plugin_name, vars in templatePlugins.items() %} - {% include plugin_name+"_sidebar.jinja2" ignore missing %} - {% endfor %} - {% endif %} + {% for entry, data in sidebarEntries %} + {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} +
    +
    + + {% if "icon" in data %} {% endif %}{{ entry }} + + {% if "header_addon" in data %} + {% include data.header_addon ignore missing %} + {% endif %} +
    +
    +
    + {% include data._template ignore missing %} +
    +
    +
    + {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} + {% endfor %}
    +
    - {% include 'tabs/temperature.jinja2' %} - {% include 'tabs/control.jinja2' %} - {% include 'tabs/gcodeviewer.jinja2' %} - {% include 'tabs/terminal.jinja2' %} - {% include 'tabs/timelapse.jinja2' %} - - {% if templatePlugins %} - {% for plugin_name, vars in templatePlugins.items() %} - {% if "_tab_entry" in vars %} -
    - {% include plugin_name + "_tab.jinja2" ignore missing %} -
    - {% endif %} - {% endfor %} - {% endif %} - + {% for entry, data in tabEntries %} + {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} +
    + {% include data._template ignore missing %} +
    + {% if "custom_bindings" in data and data["custom_bindings"] %}{% endif %} + {% endfor %}
    @@ -161,85 +122,14 @@ {% include 'overlays/offline.jinja2' %} - + {% if templatePlugins %} - {% for plugin_name in templatePlugins %} + {% for plugin_name in pluginNames %} {% include plugin_name + ".jinja2" ignore missing %} {% endfor %} {% endif %} - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% for name, assets in assetPlugins.items() %} - {% if "js" in assets %} - {% for asset in assets["js"] %} - - {% endfor %} - {% endif %} - {% endfor %} - - - - - - - - - - {% if g.locale != 'en' %} - - {% endif %} - - - - - + {% include 'javascripts.jinja2' %} diff --git a/src/octoprint/templates/initscript.jinja2 b/src/octoprint/templates/initscript.jinja2 new file mode 100644 index 00000000..a3d203ec --- /dev/null +++ b/src/octoprint/templates/initscript.jinja2 @@ -0,0 +1,28 @@ + diff --git a/src/octoprint/templates/javascripts.jinja2 b/src/octoprint/templates/javascripts.jinja2 new file mode 100644 index 00000000..e9b3401c --- /dev/null +++ b/src/octoprint/templates/javascripts.jinja2 @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% for name, assets in assetPlugins.items() %} + {% if "js" in assets %} + {% for asset in assets["js"] %} + + {% endfor %} + {% endif %} +{% endfor %} + + + + + + + + + +{% if g.locale != 'en' %} + +{% endif %} + + + + + diff --git a/src/octoprint/templates/navbar/login.jinja2 b/src/octoprint/templates/navbar/login.jinja2 index cc3154ed..1b776aaf 100644 --- a/src/octoprint/templates/navbar/login.jinja2 +++ b/src/octoprint/templates/navbar/login.jinja2 @@ -1,22 +1,20 @@ {% if enableAccessControl %} - + + {{ _('Login') }} + + + + {% endif %} diff --git a/src/octoprint/templates/navbar/settings.jinja2 b/src/octoprint/templates/navbar/settings.jinja2 index d4940ce4..a2710dbe 100644 --- a/src/octoprint/templates/navbar/settings.jinja2 +++ b/src/octoprint/templates/navbar/settings.jinja2 @@ -1,5 +1,3 @@ -
  • - - {{ _('Settings') }} - -
  • + + {{ _('Settings') }} + diff --git a/src/octoprint/templates/navbar/systemmenu.jinja2 b/src/octoprint/templates/navbar/systemmenu.jinja2 index 0719ab9d..b14c83c3 100644 --- a/src/octoprint/templates/navbar/systemmenu.jinja2 +++ b/src/octoprint/templates/navbar/systemmenu.jinja2 @@ -1,11 +1,9 @@ {% if enableSystemMenu %} - + + {{ _('System') }} + + + {% endif %} diff --git a/src/octoprint/templates/sidebar/connection.jinja2 b/src/octoprint/templates/sidebar/connection.jinja2 index 59570251..5481485e 100644 --- a/src/octoprint/templates/sidebar/connection.jinja2 +++ b/src/octoprint/templates/sidebar/connection.jinja2 @@ -1,22 +1,13 @@ -
    - -
    -
    - - - - - - - - - -
    -
    -
    + + + + + + + + + diff --git a/src/octoprint/templates/sidebar/files.jinja2 b/src/octoprint/templates/sidebar/files.jinja2 index 8ca633a5..e9ca34c2 100644 --- a/src/octoprint/templates/sidebar/files.jinja2 +++ b/src/octoprint/templates/sidebar/files.jinja2 @@ -1,108 +1,65 @@ -
    -
    - {{ _('Files') }} + +
    +
    -
    - - - - + + + + +
    +
    + {{ _('Free') }}: +
    +
    +
    {% if enableSdSupport %} - + + + {{ _('Upload') }} + + + + + {{ _('Upload to SD') }} + + + {% else %} + + + {{ _('Upload') }} + + {% endif %}
    -
    -
    - -
    -
    - - - - - - -
    -
    - {{ _('Free') }}: -
    -
    -
    - {% if enableSdSupport %} - - - {{ _('Upload') }} - - - - - {{ _('Upload to SD') }} - - - {% else %} - - - {{ _('Upload') }} - - - {% endif %} -
    -
    -
    -
    -
    - {{ _('Hint: You can also drag and drop files on this page to upload them.') }} -
    -
    -
    +
    +
    +
    +
    + {{ _('Hint: You can also drag and drop files on this page to upload them.') }}
    diff --git a/src/octoprint/templates/sidebar/files_header.jinja2 b/src/octoprint/templates/sidebar/files_header.jinja2 new file mode 100644 index 00000000..3a4810a0 --- /dev/null +++ b/src/octoprint/templates/sidebar/files_header.jinja2 @@ -0,0 +1,33 @@ + + +{% if enableSdSupport %} + +{% endif %} diff --git a/src/octoprint/templates/sidebar/state.jinja2 b/src/octoprint/templates/sidebar/state.jinja2 index 393aa92b..7bcfdd25 100644 --- a/src/octoprint/templates/sidebar/state.jinja2 +++ b/src/octoprint/templates/sidebar/state.jinja2 @@ -1,29 +1,20 @@ -
    - -
    -
    - {{ _('Machine State') }}:
    - {{ _('File') }}:  (SD)
    - {{ _('Timelapse') }}:
    - -
    - - {{ _('Approx. Total Print Time') }}:
    - {{ _('Print Time') }}:
    - {{ _('Print Time Left') }}:
    - {{ _('Printed') }}:
    +{{ _('Machine State') }}:
    +{{ _('File') }}:  (SD)
    +{{ _('Timelapse') }}:
    + +
    + +{{ _('Approx. Total Print Time') }}:
    +{{ _('Print Time') }}:
    +{{ _('Print Time Left') }}:
    +{{ _('Printed') }}:
    -
    -
    -
    - - -
    -
    +
    +
    +
    + + diff --git a/src/octoprint/templates/stylesheets.jinja2 b/src/octoprint/templates/stylesheets.jinja2 new file mode 100644 index 00000000..1fabcd2c --- /dev/null +++ b/src/octoprint/templates/stylesheets.jinja2 @@ -0,0 +1,34 @@ + + + + + + + +{% if stylesheet == "less" %} + + + + {% for name, assets in assetPlugins.items() %} + {% if "less" in assets %} + {% for asset in assets["less"] %} + + {% endfor %} + {% endif %} + {% endfor %} + + + +{% else %} + + + {% for name, assets in assetPlugins.items() %} + {% if "css" in assets %} + {% for asset in assets["css"] %} + + {% endfor %} + {% endif %} + {% endfor %} + +{% endif %} + diff --git a/src/octoprint/templates/tabs/control.jinja2 b/src/octoprint/templates/tabs/control.jinja2 index a047cd72..93c54ef6 100644 --- a/src/octoprint/templates/tabs/control.jinja2 +++ b/src/octoprint/templates/tabs/control.jinja2 @@ -1,133 +1,131 @@ -
    - {% if webcamStream %} -
    - -
    -
    {{ _("Keyboard controls active") }}
    -
    -
    - / : {{ _("X Axis") }} +/-
    - / : {{ _("Y Axis") }} +/-
    - W, {{ _("Page↑") }} / S, {{ _("Page↓") }}: {{ _("Z Axis") }} +/- -
    -
    - Home: {{ _("Home X/Y") }}
    - End: {{ _("Home Z") }}
    - 1, 2, 3, 4: {{ _("Stepsize") }} 0.1, 1, 10, 100mm -
    +{% if webcamStream %} +
    + +
    +
    {{ _("Keyboard controls active") }}
    +
    +
    + / : {{ _("X Axis") }} +/-
    + / : {{ _("Y Axis") }} +/-
    + W, {{ _("Page↑") }} / S, {{ _("Page↓") }}: {{ _("Z Axis") }} +/- +
    +
    + Home: {{ _("Home X/Y") }}
    + End: {{ _("Home Z") }}
    + 1, 2, 3, 4: {{ _("Stepsize") }} 0.1, 1, 10, 100mm
    -
    - {{ _("Hint: If you move your mouse over the picture, you enter keyboard control mode.") }} -
    - {% endif %} - - - -