diff --git a/.versioneer-lookup b/.versioneer-lookup index 35264944..1d894ff5 100644 --- a/.versioneer-lookup +++ b/.versioneer-lookup @@ -10,10 +10,10 @@ # master shall not use the lookup table, only tags master -# maintenance is currently the branch for preparation of maintenance release 1.2.5 +# maintenance is currently the branch for preparation of maintenance release 1.2.6 # so are any fix/... branches -maintenance 1.2.5 9a6099ffc2982455d631c9d68a3273d9eb55885c -fix/.* 1.2.5 9a6099ffc2982455d631c9d68a3273d9eb55885c +maintenance 1.2.6 96fc70bdb2dd74ba04c3071f70da385b0408904a +fix/.* 1.2.6 96fc70bdb2dd74ba04c3071f70da385b0408904a # every other branch is a development branch and thus gets resolved to 1.3.0-dev for now .* 1.3.0 198d3450d94be1a2 pep440-dev diff --git a/CHANGELOG.md b/CHANGELOG.md index 535e7b0d..a6279b45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,78 @@ GCODE) for printing on the file API. * Changes to a user's personal settings via the UI now propagate across sessions. +## 1.2.5 (2015-08-31) + +### Improvements + + * [#986](https://github.com/foosel/OctoPrint/issues/986) - Added tooltip for + "additional data" button in file list. + * [#1028](https://github.com/foosel/OctoPrint/issues/1028) - Hint about why + timelapse configuration is disabled. + * New central configuration option for commands to restart OctoPrint and to + restart and shut down the system OctoPrint is running on. This allows plugins + (like the Software Update Plugin or the Plugin Manager) and core functionality + to perform these common administrative tasks without the user needing to define + everything redundantly. + * Settings dialog now visualizes when settings are saving and when they being + retrieved. Also the Send/Cancel buttons are disabled while settings are saving + to prevent duplicated requests and concurrent retrieval of the settings by + multiple viewmodels is disabled as well. + * Better protection against rendering errors from templates provided by third + party plugins. + * Better protection against corrupting the configuration by using a temporary + file as intermediate buffer. + * Added warning to UI regarding Z timelapses and spiralized objects. + * Better compatibility with Repetier firmware: + * Added "Format Error" to whitelisted recoverable communication errors + (see also [#1032](https://github.com/foosel/OctoPrint/pull/1032)). + * Added option to ignore repeated resend requests for the same line (see + also discussion in [#1015](https://github.com/foosel/OctoPrint/pull/1015)). + * Software Update Plugin: + * Adjusted to utilize new centralized restart commands (see above). + * Allow configuration of checkout folder and version tracking type via + Plugin Configuration. + * Display message to user if OctoPrint's checkout folder is not configured + or a non-release version is running and version tracking against releases + is enabled. + * Clear version cache when a change in the check configuration is detected. + * Mark check configurations for which an update is not possible. + * Made disk space running low a bit more obvious through visual warning on + configurable thresholds. + +### Bug Fixes + + * [#985](https://github.com/foosel/OctoPrint/issues/985) - Do not hiccup on + unset `Content-Type` part headers for multipart file uploads. + * [#1001](https://github.com/foosel/OctoPrint/issues/1001) - Fixed connection + tab not unfolding properly (see also [#1002](https://github.com/foosel/OctoPrint/pull/1002)). + * [#1012](https://github.com/foosel/OctoPrint/issues/1012) - All API + responses now set no-cache headers, making the Edge browser behave a bit better + * [#1019](https://github.com/foosel/OctoPrint/issues/1019) - Better error + handling of problems when trying to write the webassets cache. + * [#1021](https://github.com/foosel/OctoPrint/issues/1021) - Properly handle + serial close on Macs. + * [#1031](https://github.com/foosel/OctoPrint/issues/1031) - Special + handling of `M112` (emergency stop) command: + * Jump send queue + * In case the printer's firmware doesn't understand it yet, at least + shutdown all of the heaters + * Disconnect + * Properly reset job progress to 0% when restarting a previously completed + printjob (see [#998](https://github.com/foosel/OctoPrint/pull/998)). + * Report an update as failed if the `pip` command returns a return code that + indicates failure. + * Fixed sorting of templates: could only be sorted by name, individual + configurations were ignored (see [#1022](https://github.com/foosel/OctoPrint/pull/1022)). + * Fixed positioning of custom context menus: were offset due to changes in + overall positioning settings (see [#1023](https://github.com/foosel/OctoPrint/pull/1023)). + * Software Update: Don't use display version for comparison of git commit + hashs. + * Fixed temperature parsing for multi extruder setups. + * Fixed nested vertical and horizontal custom control layouts. + +([Commits](https://github.com/foosel/OctoPrint/compare/1.2.4...1.2.5)) + ## 1.2.4 (2015-07-23) ### Improvements diff --git a/src/octoprint/plugins/softwareupdate/__init__.py b/src/octoprint/plugins/softwareupdate/__init__.py index 6ac86bdf..14f277a8 100644 --- a/src/octoprint/plugins/softwareupdate/__init__.py +++ b/src/octoprint/plugins/softwareupdate/__init__.py @@ -668,6 +668,30 @@ class SoftwareUpdatePlugin(octoprint.plugin.BlueprintPlugin, self._logger.warn("Restart stderr:\n%s" % e.stderr) raise exceptions.RestartFailed() + def _populated_check(self, target, check): + result = dict(check) + + if target == "octoprint": + from flask.ext.babel import gettext + result["displayName"] = check.get("displayName", gettext("OctoPrint")) + result["displayVersion"] = check.get("displayVersion", "{octoprint_version}") + + from octoprint._version import get_versions + versions = get_versions() + if check["type"] == "github_commit": + result["current"] = versions.get("full-revisionid", versions.get("full", "unknown")) + else: + result["current"] = versions["version"] + else: + result["displayName"] = check.get("displayName", target) + result["displayVersion"] = check.get("displayVersion", check.get("current", "unknown")) + if check["type"] in ("github_commit"): + result["current"] = check.get("current", None) + else: + result["current"] = check.get("current", check.get("displayVersion", None)) + + return result + def _log(self, lines, prefix=None, stream=None, strip=True): if strip: lines = map(lambda x: x.strip(), lines) diff --git a/src/octoprint/plugins/softwareupdate/static/js/softwareupdate.js b/src/octoprint/plugins/softwareupdate/static/js/softwareupdate.js index a018f688..5f0e2f18 100644 --- a/src/octoprint/plugins/softwareupdate/static/js/softwareupdate.js +++ b/src/octoprint/plugins/softwareupdate/static/js/softwareupdate.js @@ -146,6 +146,25 @@ $(function() { } } + var octoprint = data.information["octoprint"]; + if (octoprint && octoprint.hasOwnProperty("check")) { + var check = octoprint.check; + if (BRANCH != "master" && check["type"] == "github_release") { + self.octoprintUnreleased(true); + } else { + self.octoprintUnreleased(false); + } + + var checkoutFolder = (check["checkout_folder"] || "").trim(); + var updateFolder = (check["update_folder"] || "").trim(); + var checkType = check["type"] || ""; + if ((checkType == "github_release" || checkType == "git_commit") && checkoutFolder == "" && updateFolder == "") { + self.octoprintUnconfigured(true); + } else { + self.octoprintUnconfigured(false); + } + } + if (data.status == "updateAvailable" || data.status == "updatePossible") { var text = gettext("There are updates available for the following components:"); diff --git a/src/octoprint/plugins/virtual_printer/virtual.py b/src/octoprint/plugins/virtual_printer/virtual.py index c590ce4e..7ae28378 100644 --- a/src/octoprint/plugins/virtual_printer/virtual.py +++ b/src/octoprint/plugins/virtual_printer/virtual.py @@ -717,6 +717,9 @@ class VirtualPrinter(object): self.buffered = None def _sendOk(self): + if self.outgoing is None: + return + if settings().getBoolean(["devel", "virtualPrinter", "okWithLinenumber"]): self._send("ok %d" % self.lastN) else: diff --git a/src/octoprint/templates/dialogs/settings/features.jinja2 b/src/octoprint/templates/dialogs/settings/features.jinja2 index abb0c38a..68038d5a 100644 --- a/src/octoprint/templates/dialogs/settings/features.jinja2 +++ b/src/octoprint/templates/dialogs/settings/features.jinja2 @@ -48,6 +48,13 @@ +
+
+ +
+