From 65624ed77eb04d5630102e7ab05143cbfd5780ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Mon, 23 Jun 2014 18:54:45 +0200 Subject: [PATCH] Also update the metadata correctly when an analysis finishes Closes #476 for good --- src/octoprint/printer.py | 10 ++++++ .../static/js/app/viewmodels/printerstate.js | 31 ++++++++++--------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/octoprint/printer.py b/src/octoprint/printer.py index f4a5a6bb..ee96fc94 100644 --- a/src/octoprint/printer.py +++ b/src/octoprint/printer.py @@ -104,6 +104,8 @@ class Printer(): currentZ=None ) + eventManager().subscribe(Events.METADATA_ANALYSIS_FINISHED, self.onMetadataAnalysisFinished); + #~~ callback handling def registerCallback(self, callback): @@ -152,6 +154,14 @@ class Printer(): self._selectedFile["filesize"], self._selectedFile["sd"]) + #~~ callback from metadata analysis event + + def onMetadataAnalysisFinished(self, event, data): + if self._selectedFile: + self._setJobData(self._selectedFile["filename"], + self._selectedFile["filesize"], + self._selectedFile["sd"]) + #~~ printer commands def connect(self, port=None, baudrate=None): diff --git a/src/octoprint/static/js/app/viewmodels/printerstate.js b/src/octoprint/static/js/app/viewmodels/printerstate.js index bc1dda81..2865c387 100644 --- a/src/octoprint/static/js/app/viewmodels/printerstate.js +++ b/src/octoprint/static/js/app/viewmodels/printerstate.js @@ -52,7 +52,7 @@ function PrinterStateViewModel(loginStateViewModel) { if (!self.printTimeLeft()) return "-"; return formatDuration(self.printTimeLeft()); - }) + }); self.progressString = ko.computed(function() { if (!self.progress()) return 0; @@ -83,22 +83,22 @@ function PrinterStateViewModel(loginStateViewModel) { self.fromCurrentData = function(data) { self._fromData(data); - } + }; self.fromHistoryData = function(data) { self._fromData(data); - } + }; self.fromTimelapseData = function(data) { self.timelapse(data); - } + }; self._fromData = function(data) { - self._processStateData(data.state) + self._processStateData(data.state); self._processJobData(data.job); self._processProgressData(data.progress); self._processZData(data.currentZ); - } + }; self._processStateData = function(data) { self.stateString(data.text); @@ -109,7 +109,7 @@ function PrinterStateViewModel(loginStateViewModel) { self.isError(data.flags.error); self.isReady(data.flags.ready); self.isSdReady(data.flags.sdReady); - } + }; self._processJobData = function(data) { if (data.file) { @@ -121,6 +121,7 @@ function PrinterStateViewModel(loginStateViewModel) { self.filesize(undefined); self.sd(undefined); } + self.estimatedPrintTime(data.estimatedPrintTime); var result = []; @@ -131,12 +132,12 @@ function PrinterStateViewModel(loginStateViewModel) { result[i] = { name: ko.observable("Tool " + i), data: ko.observable(data.filament[key]) - } + }; i++; } while (data.filament.hasOwnProperty("tool" + i)); } self.filament(result); - } + }; self._processProgressData = function(data) { if (data.completion) { @@ -147,16 +148,16 @@ function PrinterStateViewModel(loginStateViewModel) { self.filepos(data.filepos); self.printTime(data.printTime); self.printTimeLeft(data.printTimeLeft); - } + }; self._processZData = function(data) { self.currentHeight(data); - } + }; self.print = function() { var restartCommand = function() { self._jobCommand("restart"); - } + }; if (self.isPaused()) { $("#confirmation_dialog .confirmation_dialog_message").text("This will restart the print job from the beginning."); @@ -167,15 +168,15 @@ function PrinterStateViewModel(loginStateViewModel) { self._jobCommand("start"); } - } + }; self.pause = function() { self._jobCommand("pause"); - } + }; self.cancel = function() { self._jobCommand("cancel"); - } + }; self._jobCommand = function(command) { $.ajax({