diff --git a/.versioneer-lookup b/.versioneer-lookup
index 9bc29b46..3d72f7f7 100644
--- a/.versioneer-lookup
+++ b/.versioneer-lookup
@@ -16,11 +16,11 @@ rc
HEAD
\(detached.*
-# maintenance is currently the branch for preparation of maintenance release 1.2.13
+# maintenance is currently the branch for preparation of maintenance release 1.2.14
# so are any fix/... and improve/... branches
-maintenance 1.2.13 685ce16c85eea9c4f11586ea99c9a84aca382bd4 pep440-dev
-fix/.* 1.2.13 685ce16c85eea9c4f11586ea99c9a84aca382bd4 pep440-dev
-improve/.* 1.2.13 685ce16c85eea9c4f11586ea99c9a84aca382bd4 pep440-dev
+maintenance 1.2.14 cb2e0d449f607bbc89c7ad13c983a0cf11bbfdee pep440-dev
+fix/.* 1.2.14 cb2e0d449f607bbc89c7ad13c983a0cf11bbfdee pep440-dev
+improve/.* 1.2.14 cb2e0d449f607bbc89c7ad13c983a0cf11bbfdee pep440-dev
# 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 de984d39..b8cd3d2f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -74,6 +74,18 @@
* [#1047](https://github.com/foosel/OctoPrint/issues/1047) - Fixed 90 degree
webcam rotation for iOS Safari.
+## 1.2.13 (2016-06-16)
+
+### Bug Fixes
+
+ * [#1373](https://github.com/foosel/OctoPrint/issues/1373): Don't parse `B:` as bed temperature when it shows up as part of a position report from `M114`.
+ * [#1374](https://github.com/foosel/OctoPrint/issues/1374): Don't try to perform a passive login when the components we'd need to inform about a change in login state aren't yet available. Solves a bug that lead - among other things - to the Plugin Manager and the Software Update Plugin not showing anything but misleading errors until the user logged out and back in.
+ * Fixed the temperature graph staying uninitialized until a connection to a printer was established.
+ * Fixed an error causing issues during frontend startup if the browser doesn't support tracking browser visibility.
+ * Fixed an error causing issues during frontend startup if the browser doesn't support the capabilities needed for the GCODE viewer.
+
+([Commits](https://github.com/foosel/OctoPrint/compare/1.2.12...1.2.13))
+
## 1.2.12 (2016-06-09)
### Improvements
diff --git a/src/octoprint/plugins/virtual_printer/virtual.py b/src/octoprint/plugins/virtual_printer/virtual.py
index ab0773f2..556bd5ba 100644
--- a/src/octoprint/plugins/virtual_printer/virtual.py
+++ b/src/octoprint/plugins/virtual_printer/virtual.py
@@ -332,7 +332,7 @@ class VirtualPrinter(object):
self._deleteSdFile(filename)
def _gcode_M114(self, data):
- output = "C: X:{} Y:{} Z:{} E:{}".format(self._lastX, self._lastY, self._lastZ, self._lastE)
+ output = "X:{} Y:{} Z:{} E:{} Count: A:{} B:{} C:{}".format(self._lastX, self._lastY, self._lastZ, self._lastE, int(self._lastX*100), int(self.lastY*100), int(self.lastZ*100))
if not self._okBeforeCommandOutput:
output = "ok " + output
self._send(output)
diff --git a/src/octoprint/static/gcodeviewer/js/ui.js b/src/octoprint/static/gcodeviewer/js/ui.js
index 47d539fd..31a4aeef 100644
--- a/src/octoprint/static/gcodeviewer/js/ui.js
+++ b/src/octoprint/static/gcodeviewer/js/ui.js
@@ -104,8 +104,11 @@ GCODE.ui = (function(){
if(!Modernizr.webworkers)fatal.push("
Your browser doesn't seem to support HTML5 Web Workers, this application won't work without it.");
if(!Modernizr.svg)fatal.push("Your browser doesn't seem to support HTML5 SVG, this application won't work without it.");
+ var errorList = document.getElementById("errorList");
if(fatal.length>0){
- document.getElementById('errorList').innerHTML = '';
+ if (errorList) {
+ errorList.innerHTML = '';
+ }
console.log("Initialization failed: unsupported browser.")
return false;
}
@@ -117,8 +120,10 @@ GCODE.ui = (function(){
if(!Modernizr.draganddrop)warnings.push("Your browser doesn't seem to support HTML5 Drag'n'Drop, Drop area will not work.");
if(warnings.length>0){
- document.getElementById('errorList').innerHTML = '';
- console.log("Initialization succeeded with warnings.")
+ if (errorList) {
+ errorList.innerHTML = '' + warnings.join('') + '
';
+ }
+ console.log("Initialization succeeded with warnings.", warnings);
}
return true;
};
@@ -138,12 +143,12 @@ GCODE.ui = (function(){
init: function(options){
if (options) setOptions(options);
if (!options.container) {
- return;
+ return false;
}
var capabilitiesResult = checkCapabilities();
if (!capabilitiesResult) {
- return;
+ return false;
}
setProgress("", 0);
@@ -159,6 +164,8 @@ GCODE.ui = (function(){
toolOffsets: options.toolOffsets
});
GCODE.renderer.render(0, 0);
+
+ return true;
},
clear: function() {
@@ -196,4 +203,4 @@ GCODE.ui = (function(){
switchCommands(layerNum, first, last);
}
}
-}());
\ No newline at end of file
+}());
diff --git a/src/octoprint/static/js/app/main.js b/src/octoprint/static/js/app/main.js
index 8f55cdd2..e3d9e8b8 100644
--- a/src/octoprint/static/js/app/main.js
+++ b/src/octoprint/static/js/app/main.js
@@ -74,12 +74,12 @@ $(function() {
// register for browser visibility tracking
var prop = getHiddenProp();
- if (!prop) return undefined;
+ if (prop) {
+ var eventName = prop.replace(/[H|h]idden/, "") + "visibilitychange";
+ document.addEventListener(eventName, updateBrowserVisibility);
- var eventName = prop.replace(/[H|h]idden/, "") + "visibilitychange";
- document.addEventListener(eventName, updateBrowserVisibility);
-
- updateBrowserVisibility();
+ updateBrowserVisibility();
+ }
// exports
diff --git a/src/octoprint/static/js/app/viewmodels/gcode.js b/src/octoprint/static/js/app/viewmodels/gcode.js
index c3f60296..2aa4044e 100644
--- a/src/octoprint/static/js/app/viewmodels/gcode.js
+++ b/src/octoprint/static/js/app/viewmodels/gcode.js
@@ -236,7 +236,7 @@ $(function() {
self.settings.requestData()
.done(function() {
- GCODE.ui.init({
+ var initResult = GCODE.ui.init({
container: "#gcode_canvas",
onProgress: self._onProgress,
onModelLoaded: self._onModelLoaded,
@@ -245,6 +245,12 @@ $(function() {
toolOffsets: self._retrieveToolOffsets(),
invertAxes: self._retrieveAxesConfiguration()
});
+
+ if (!initResult) {
+ log.info("Could not initialize GCODE viewer component");
+ return;
+ }
+
self.synchronizeOptions();
self.enabled = true;
});
diff --git a/src/octoprint/static/js/app/viewmodels/loginstate.js b/src/octoprint/static/js/app/viewmodels/loginstate.js
index f1133abf..7a72a0cd 100644
--- a/src/octoprint/static/js/app/viewmodels/loginstate.js
+++ b/src/octoprint/static/js/app/viewmodels/loginstate.js
@@ -111,7 +111,8 @@ $(function() {
self.allViewModels = allViewModels;
};
- self.onServerConnect = self.onServerReconnect = function() {
+ self.onStartupComplete = self.onServerConnect = self.onServerReconnect = function() {
+ if (self.allViewModels == undefined) return;
self.requestData();
};
diff --git a/src/octoprint/static/js/app/viewmodels/temperature.js b/src/octoprint/static/js/app/viewmodels/temperature.js
index 17cec93f..08735704 100644
--- a/src/octoprint/static/js/app/viewmodels/temperature.js
+++ b/src/octoprint/static/js/app/viewmodels/temperature.js
@@ -40,13 +40,15 @@ $(function() {
var graphColors = ["red", "orange", "green", "brown", "purple"];
var heaterOptions = {};
var tools = self.tools();
+ var color;
// tools
- var numExtruders = self.settingsViewModel.printerProfiles.currentProfileData().extruder.count();
+ var currentProfileData = self.settingsViewModel.printerProfiles.currentProfileData();
+ var numExtruders = (currentProfileData ? currentProfileData.extruder.count() : 0);
if (numExtruders && numExtruders > 1) {
// multiple extruders
for (var extruder = 0; extruder < numExtruders; extruder++) {
- var color = graphColors.shift();
+ color = graphColors.shift();
if (!color) color = "black";
heaterOptions["tool" + extruder] = {name: "T" + extruder, color: color};
@@ -56,9 +58,9 @@ $(function() {
tools[extruder]["name"](gettext("Tool") + " " + extruder);
tools[extruder]["key"]("tool" + extruder);
}
- } else {
+ } else if (numExtruders == 1) {
// only one extruder, no need to add numbers
- var color = graphColors[0];
+ color = graphColors[0];
heaterOptions["tool0"] = {name: "T", color: color};
if (tools.length < 1 || !tools[0]) {
@@ -69,7 +71,7 @@ $(function() {
}
// print bed
- if (self.settingsViewModel.printerProfiles.currentProfileData().heatedBed()) {
+ if (currentProfileData && currentProfileData.heatedBed()) {
self.hasBed(true);
heaterOptions["bed"] = {name: gettext("Bed"), color: "blue"};
} else {
@@ -79,11 +81,12 @@ $(function() {
// write back
self.heaterOptions(heaterOptions);
self.tools(tools);
+ self.updatePlot();
};
self.settingsViewModel.printerProfiles.currentProfileData.subscribe(function() {
self._printerProfileUpdated();
self.settingsViewModel.printerProfiles.currentProfileData().extruder.count.subscribe(self._printerProfileUpdated);
- self.settingsViewModel.printerProfiles.currentProfileData().heatedBed.subscribe(self._printerProfileUpdated());
+ self.settingsViewModel.printerProfiles.currentProfileData().heatedBed.subscribe(self._printerProfileUpdated);
});
self.temperatures = [];
@@ -386,7 +389,11 @@ $(function() {
return;
}
self.updatePlot();
- }
+ };
+
+ self.onStartupComplete = function() {
+ self._printerProfileUpdated();
+ };
}
diff --git a/src/octoprint/util/comm.py b/src/octoprint/util/comm.py
index 27181edb..5f2f2d35 100644
--- a/src/octoprint/util/comm.py
+++ b/src/octoprint/util/comm.py
@@ -1075,8 +1075,17 @@ class MachineCom(object):
if handled and self._state not in (self.STATE_CONNECTING, self.STATE_DETECT_BAUDRATE):
continue
- ##~~ Temperature processing
- if ' T:' in line or line.startswith('T:') or ' T0:' in line or line.startswith('T0:') or ' B:' in line or line.startswith('B:'):
+ # position report processing
+ if 'X:' in line and 'Y:' in line and 'Z:' in line:
+ # currently only here to prevent any "B:"s in a position report from
+ # triggering temperature processing and being interpreted as a bed
+ # temperature - can happen with COREXY in current Marlin
+ #
+ # see also issue #1373
+ pass
+
+ # temperature processing
+ elif ' T:' in line or line.startswith('T:') or ' T0:' in line or line.startswith('T0:') or ((' B:' in line or line.startswith('B:')) and not 'A:' in line):
if not disable_external_heatup_detection and not line.strip().startswith("ok") and not self._heating:
self._logger.debug("Externally triggered heatup detected")
self._heating = True
diff --git a/translations/de/LC_MESSAGES/messages.po b/translations/de/LC_MESSAGES/messages.po
index 1aaf2389..42e8da64 100644
--- a/translations/de/LC_MESSAGES/messages.po
+++ b/translations/de/LC_MESSAGES/messages.po
@@ -5,21 +5,20 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OctoPrint\n"
+"Project-Id-Version: OctoPrint\n"
"Report-Msgid-Bugs-To: i18n@octoprint.org\n"
-"POT-Creation-Date: 2016-06-08 11:03+0200\n"
+"POT-Creation-Date: 2016-06-16 12:18+0200\n"
"PO-Revision-Date: 2016-06-08 11:04+0100\n"
"Last-Translator: Gina Häußge \n"
"Language: de\n"
"Language-Team: German (http://www.transifex.com/projects/p/octoprint/language/de/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.2.0\n"
-"X-Generator: Poedit 1.6.8\n"
-#: src/octoprint/plugins/announcements/__init__.py:85
+#: src/octoprint/plugins/announcements/__init__.py:89
#: src/octoprint/plugins/announcements/templates/announcements.jinja2:4
#: src/octoprint/plugins/announcements/templates/announcements_navbar.jinja2:1
msgid "Announcements"
@@ -976,73 +975,73 @@ msgstr "Zugriff"
msgid "Interface"
msgstr "Interface"
-#: src/octoprint/static/js/app/dataupdater.js:92
-#: src/octoprint/static/js/app/dataupdater.js:127
+#: src/octoprint/static/js/app/dataupdater.js:96
+#: src/octoprint/static/js/app/dataupdater.js:131
#: src/octoprint/static/js/app/helpers.js:451
#: src/octoprint/templates/overlays/offline.jinja2:6
msgid "Server is offline"
msgstr "Der Server ist offline"
-#: src/octoprint/static/js/app/dataupdater.js:93
+#: src/octoprint/static/js/app/dataupdater.js:97
msgid "The server appears to be offline, at least I'm not getting any response from it. I'll try to reconnect automatically over the next couple of minutes, however you are welcome to try a manual reconnect anytime using the button below."
msgstr "Der Server scheint offline zu sein, zumindest kann ich mich nicht mit ihm verbinden. Ich werde in den nächsten Minuten versuchen mich erneut zu verbinden, aber Du kannst mittels des folgenden Buttons auch jederzeit einen manuellen Verbindungsversuch anstoßen."
-#: src/octoprint/static/js/app/dataupdater.js:128
+#: src/octoprint/static/js/app/dataupdater.js:132
msgid "The server appears to be offline, at least I'm not getting any response from it. I could not reconnect automatically, but you may try a manual reconnect using the button below."
msgstr "Der Server scheint offline zu sein, zumindest kann ich mich nicht mit ihm verbinden. Ich konnte mich nicht automatisch neu verbinden, aber Du kannst mittels des folgenden Buttons einen manuellen Verbindungsversuch anstoßen."
-#: src/octoprint/static/js/app/dataupdater.js:206
-#: src/octoprint/static/js/app/dataupdater.js:226
+#: src/octoprint/static/js/app/dataupdater.js:217
+#: src/octoprint/static/js/app/dataupdater.js:237
#, python-format
msgid "Slicing ... (%(percentage)d%%)"
msgstr "Slice ... (%(percentage)d%%)"
-#: src/octoprint/static/js/app/dataupdater.js:228
+#: src/octoprint/static/js/app/dataupdater.js:239
msgid "Slicing ..."
msgstr "Slice ..."
-#: src/octoprint/static/js/app/dataupdater.js:234
+#: src/octoprint/static/js/app/dataupdater.js:245
msgid "Slicing done"
msgstr "Slicing abgeschlossen"
-#: src/octoprint/static/js/app/dataupdater.js:234
+#: src/octoprint/static/js/app/dataupdater.js:245
#, python-format
msgid "Sliced %(stl)s to %(gcode)s, took %(time).2f seconds"
msgstr "%(stl)s nach %(gcode)s geslicet, dauerte %(time).2f Sekunden"
-#: src/octoprint/static/js/app/dataupdater.js:244
+#: src/octoprint/static/js/app/dataupdater.js:255
#, python-format
msgid "Could not slice %(stl)s to %(gcode)s: %(reason)s"
msgstr "Konnte %(stl)s nicht nach %(gcode)s slicen: %(reason)s"
-#: src/octoprint/static/js/app/dataupdater.js:245
+#: src/octoprint/static/js/app/dataupdater.js:256
msgid "Slicing failed"
msgstr "Slicing fehlgeschlagen"
-#: src/octoprint/static/js/app/dataupdater.js:249
+#: src/octoprint/static/js/app/dataupdater.js:260
msgid "Streaming ..."
msgstr "Streaming ..."
-#: src/octoprint/static/js/app/dataupdater.js:255
+#: src/octoprint/static/js/app/dataupdater.js:266
msgid "Streaming done"
msgstr "Streaming abgeschlossen"
-#: src/octoprint/static/js/app/dataupdater.js:256
+#: src/octoprint/static/js/app/dataupdater.js:267
#, python-format
msgid "Streamed %(local)s to %(remote)s on SD, took %(time).2f seconds"
msgstr "%(local)s nach %(remote)s gestreamt, dauerte %(time).2f Sekunden"
-#: src/octoprint/static/js/app/dataupdater.js:262
-#: src/octoprint/static/js/app/dataupdater.js:270
+#: src/octoprint/static/js/app/dataupdater.js:273
+#: src/octoprint/static/js/app/dataupdater.js:281
msgid "Unhandled communication error"
msgstr "Unbehandelter Kommunikationsfehler"
-#: src/octoprint/static/js/app/dataupdater.js:263
+#: src/octoprint/static/js/app/dataupdater.js:274
#, python-format
msgid "There was an unhandled error while talking to the printer. Due to that the ongoing print job was cancelled. Error: %(firmwareError)s"
msgstr "Es gab einen unbehandelten Fehler bei der Kommunikation mit dem Drucker. Daher wurder der laufende Druckauftrag abgebrochen. Fehler: %(firmwareError)s"
-#: src/octoprint/static/js/app/dataupdater.js:271
+#: src/octoprint/static/js/app/dataupdater.js:282
#, python-format
msgid "The was an unhandled error while talking to the printer. Due to that OctoPrint disconnected. Error: %(error)s"
msgstr "Es gab einen unbehandelten Fehler bei der Kommunikation mit dem Drucker. Daher hat OctoPrint die Verbindung getrennt. Fehler: %(error)s"
@@ -1120,14 +1119,14 @@ msgstr "Trennen"
#: src/octoprint/static/js/app/viewmodels/control.js:65
#: src/octoprint/static/js/app/viewmodels/files.js:329
-#: src/octoprint/static/js/app/viewmodels/gcode.js:465
+#: src/octoprint/static/js/app/viewmodels/gcode.js:471
#: src/octoprint/static/js/app/viewmodels/printerstate.js:177
-#: src/octoprint/static/js/app/viewmodels/temperature.js:56
+#: src/octoprint/static/js/app/viewmodels/temperature.js:58
msgid "Tool"
msgstr "Werkzeug"
#: src/octoprint/static/js/app/viewmodels/control.js:71
-#: src/octoprint/static/js/app/viewmodels/temperature.js:67
+#: src/octoprint/static/js/app/viewmodels/temperature.js:69
msgid "Hotend"
msgstr "Hotend"
@@ -1160,15 +1159,15 @@ msgstr "Zuletzt gedruckt"
msgid "Last Print Time"
msgstr "Letzte Druckdauer"
-#: src/octoprint/static/js/app/viewmodels/files.js:520
+#: src/octoprint/static/js/app/viewmodels/files.js:515
msgid "Could not upload the file. Make sure that it is a GCODE file and has the extension \".gcode\" or \".gco\" or that it is an STL file with the extension \".stl\"."
msgstr "Konnte die Datei nicht hochladen. Bitte stelle sicher, dass es sich um eine GCODE-Datei mit der Extension \".gcode\" oder \".gco\" oder um eine STL-Datei mit der Extension \".stl\" handelt."
-#: src/octoprint/static/js/app/viewmodels/files.js:541
+#: src/octoprint/static/js/app/viewmodels/files.js:536
msgid "Uploading ..."
msgstr "Uploade ..."
-#: src/octoprint/static/js/app/viewmodels/files.js:548
+#: src/octoprint/static/js/app/viewmodels/files.js:543
msgid "Saving ..."
msgstr "Speichere ..."
@@ -1188,52 +1187,52 @@ msgstr "Analysiere..."
msgid "Analyzed"
msgstr "Analysiert"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:431
+#: src/octoprint/static/js/app/viewmodels/gcode.js:437
msgid "Model size"
msgstr "Modelgröße"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:432
+#: src/octoprint/static/js/app/viewmodels/gcode.js:438
msgid "Estimated total print time"
msgstr "Geschätzte Gesamtdruckdauer"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:433
+#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "Estimated layer height"
msgstr "Geschätzte Schichthöhe"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:433
+#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "mm"
msgstr "mm"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:434
+#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "Layer count"
msgstr "Schichtanzahl"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:434
+#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "printed"
msgstr "gedruckt"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:434
+#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "visited"
msgstr "besucht"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:457
+#: src/octoprint/static/js/app/viewmodels/gcode.js:463
msgid "Layer number"
msgstr "Schichtnummer"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:458
+#: src/octoprint/static/js/app/viewmodels/gcode.js:464
msgid "Layer height"
msgstr "Schichthöhe"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:459
+#: src/octoprint/static/js/app/viewmodels/gcode.js:465
msgid "GCODE commands in layer"
msgstr "GCODE Befehle in Schicht"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:462
-#: src/octoprint/static/js/app/viewmodels/gcode.js:465
+#: src/octoprint/static/js/app/viewmodels/gcode.js:468
+#: src/octoprint/static/js/app/viewmodels/gcode.js:471
msgid "Filament used by layer"
msgstr "Genutztes Filament in Schicht"
-#: src/octoprint/static/js/app/viewmodels/gcode.js:469
+#: src/octoprint/static/js/app/viewmodels/gcode.js:475
msgid "Print time for layer"
msgstr "Druckdauer für Schicht"
@@ -1452,25 +1451,25 @@ msgid "Slicing %(filename)s"
msgstr "Slice %(filename)s"
#: src/octoprint/static/js/app/viewmodels/temperature.js:23
-#: src/octoprint/static/js/app/viewmodels/temperature.js:74
+#: src/octoprint/static/js/app/viewmodels/temperature.js:76
#: src/octoprint/templates/dialogs/settings/temperatures.jinja2:16
msgid "Bed"
msgstr "Bett"
-#: src/octoprint/static/js/app/viewmodels/temperature.js:112
+#: src/octoprint/static/js/app/viewmodels/temperature.js:115
msgid "just now"
msgstr "gerade eben"
-#: src/octoprint/static/js/app/viewmodels/temperature.js:114
+#: src/octoprint/static/js/app/viewmodels/temperature.js:117
msgid "min"
msgstr "Min"
-#: src/octoprint/static/js/app/viewmodels/temperature.js:253
+#: src/octoprint/static/js/app/viewmodels/temperature.js:256
#: src/octoprint/templates/tabs/temperature.jinja2:11
msgid "Actual"
msgstr "Ist"
-#: src/octoprint/static/js/app/viewmodels/temperature.js:258
+#: src/octoprint/static/js/app/viewmodels/temperature.js:261
#: src/octoprint/templates/tabs/temperature.jinja2:12
msgid "Target"
msgstr "Soll"
@@ -2927,3 +2926,4 @@ msgstr "Zeitrafferaufnahme rendern"
#~ msgid "Show Announcements..."
#~ msgstr "Ankündigungen anzeigen..."
+
diff --git a/translations/messages.pot b/translations/messages.pot
index 1bc5ef39..36190803 100644
--- a/translations/messages.pot
+++ b/translations/messages.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OctoPrint 1.2.12.dev21+g5006b01.dirty\n"
+"Project-Id-Version: OctoPrint 1.2.13.dev7+g6c20e58\n"
"Report-Msgid-Bugs-To: i18n@octoprint.org\n"
-"POT-Creation-Date: 2016-06-08 11:03+0200\n"
+"POT-Creation-Date: 2016-06-16 12:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.2.0\n"
-#: src/octoprint/plugins/announcements/__init__.py:85
+#: src/octoprint/plugins/announcements/__init__.py:89
#: src/octoprint/plugins/announcements/templates/announcements.jinja2:4
#: src/octoprint/plugins/announcements/templates/announcements_navbar.jinja2:1
msgid "Announcements"
@@ -1045,14 +1045,14 @@ msgstr ""
msgid "Interface"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:92
-#: src/octoprint/static/js/app/dataupdater.js:127
+#: src/octoprint/static/js/app/dataupdater.js:96
+#: src/octoprint/static/js/app/dataupdater.js:131
#: src/octoprint/static/js/app/helpers.js:451
#: src/octoprint/templates/overlays/offline.jinja2:6
msgid "Server is offline"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:93
+#: src/octoprint/static/js/app/dataupdater.js:97
msgid ""
"The server appears to be offline, at least I'm not getting any response "
"from it. I'll try to reconnect automatically over the next couple"
@@ -1060,67 +1060,67 @@ msgid ""
"anytime using the button below."
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:128
+#: src/octoprint/static/js/app/dataupdater.js:132
msgid ""
"The server appears to be offline, at least I'm not getting any response "
"from it. I could not reconnect automatically, but you "
"may try a manual reconnect using the button below."
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:206
-#: src/octoprint/static/js/app/dataupdater.js:226
+#: src/octoprint/static/js/app/dataupdater.js:217
+#: src/octoprint/static/js/app/dataupdater.js:237
#, python-format
msgid "Slicing ... (%(percentage)d%%)"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:228
+#: src/octoprint/static/js/app/dataupdater.js:239
msgid "Slicing ..."
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:234
+#: src/octoprint/static/js/app/dataupdater.js:245
msgid "Slicing done"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:234
+#: src/octoprint/static/js/app/dataupdater.js:245
#, python-format
msgid "Sliced %(stl)s to %(gcode)s, took %(time).2f seconds"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:244
+#: src/octoprint/static/js/app/dataupdater.js:255
#, python-format
msgid "Could not slice %(stl)s to %(gcode)s: %(reason)s"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:245
+#: src/octoprint/static/js/app/dataupdater.js:256
msgid "Slicing failed"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:249
+#: src/octoprint/static/js/app/dataupdater.js:260
msgid "Streaming ..."
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:255
+#: src/octoprint/static/js/app/dataupdater.js:266
msgid "Streaming done"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:256
+#: src/octoprint/static/js/app/dataupdater.js:267
#, python-format
msgid "Streamed %(local)s to %(remote)s on SD, took %(time).2f seconds"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:262
-#: src/octoprint/static/js/app/dataupdater.js:270
+#: src/octoprint/static/js/app/dataupdater.js:273
+#: src/octoprint/static/js/app/dataupdater.js:281
msgid "Unhandled communication error"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:263
+#: src/octoprint/static/js/app/dataupdater.js:274
#, python-format
msgid ""
"There was an unhandled error while talking to the printer. Due to that "
"the ongoing print job was cancelled. Error: %(firmwareError)s"
msgstr ""
-#: src/octoprint/static/js/app/dataupdater.js:271
+#: src/octoprint/static/js/app/dataupdater.js:282
#, python-format
msgid ""
"The was an unhandled error while talking to the printer. Due to that "
@@ -1200,14 +1200,14 @@ msgstr ""
#: src/octoprint/static/js/app/viewmodels/control.js:65
#: src/octoprint/static/js/app/viewmodels/files.js:329
-#: src/octoprint/static/js/app/viewmodels/gcode.js:465
+#: src/octoprint/static/js/app/viewmodels/gcode.js:471
#: src/octoprint/static/js/app/viewmodels/printerstate.js:177
-#: src/octoprint/static/js/app/viewmodels/temperature.js:56
+#: src/octoprint/static/js/app/viewmodels/temperature.js:58
msgid "Tool"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/control.js:71
-#: src/octoprint/static/js/app/viewmodels/temperature.js:67
+#: src/octoprint/static/js/app/viewmodels/temperature.js:69
msgid "Hotend"
msgstr ""
@@ -1240,18 +1240,18 @@ msgstr ""
msgid "Last Print Time"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/files.js:520
+#: src/octoprint/static/js/app/viewmodels/files.js:515
msgid ""
"Could not upload the file. Make sure that it is a GCODE file and has the "
"extension \".gcode\" or \".gco\" or that it is an STL file with the "
"extension \".stl\"."
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/files.js:541
+#: src/octoprint/static/js/app/viewmodels/files.js:536
msgid "Uploading ..."
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/files.js:548
+#: src/octoprint/static/js/app/viewmodels/files.js:543
msgid "Saving ..."
msgstr ""
@@ -1274,52 +1274,52 @@ msgstr ""
msgid "Analyzed"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:431
+#: src/octoprint/static/js/app/viewmodels/gcode.js:437
msgid "Model size"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:432
+#: src/octoprint/static/js/app/viewmodels/gcode.js:438
msgid "Estimated total print time"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:433
+#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "Estimated layer height"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:433
+#: src/octoprint/static/js/app/viewmodels/gcode.js:439
msgid "mm"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:434
+#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "Layer count"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:434
+#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "printed"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:434
+#: src/octoprint/static/js/app/viewmodels/gcode.js:440
msgid "visited"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:457
+#: src/octoprint/static/js/app/viewmodels/gcode.js:463
msgid "Layer number"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:458
+#: src/octoprint/static/js/app/viewmodels/gcode.js:464
msgid "Layer height"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:459
+#: src/octoprint/static/js/app/viewmodels/gcode.js:465
msgid "GCODE commands in layer"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:462
-#: src/octoprint/static/js/app/viewmodels/gcode.js:465
+#: src/octoprint/static/js/app/viewmodels/gcode.js:468
+#: src/octoprint/static/js/app/viewmodels/gcode.js:471
msgid "Filament used by layer"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/gcode.js:469
+#: src/octoprint/static/js/app/viewmodels/gcode.js:475
msgid "Print time for layer"
msgstr ""
@@ -1544,25 +1544,25 @@ msgid "Slicing %(filename)s"
msgstr ""
#: src/octoprint/static/js/app/viewmodels/temperature.js:23
-#: src/octoprint/static/js/app/viewmodels/temperature.js:74
+#: src/octoprint/static/js/app/viewmodels/temperature.js:76
#: src/octoprint/templates/dialogs/settings/temperatures.jinja2:16
msgid "Bed"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/temperature.js:112
+#: src/octoprint/static/js/app/viewmodels/temperature.js:115
msgid "just now"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/temperature.js:114
+#: src/octoprint/static/js/app/viewmodels/temperature.js:117
msgid "min"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/temperature.js:253
+#: src/octoprint/static/js/app/viewmodels/temperature.js:256
#: src/octoprint/templates/tabs/temperature.jinja2:11
msgid "Actual"
msgstr ""
-#: src/octoprint/static/js/app/viewmodels/temperature.js:258
+#: src/octoprint/static/js/app/viewmodels/temperature.js:261
#: src/octoprint/templates/tabs/temperature.jinja2:12
msgid "Target"
msgstr ""