Also update the metadata correctly when an analysis finishes

Closes #476 for good
This commit is contained in:
Gina Häußge 2014-06-23 18:54:45 +02:00
parent 6a3241fa0b
commit 65624ed77e
2 changed files with 26 additions and 15 deletions

View file

@ -104,6 +104,8 @@ class Printer():
currentZ=None currentZ=None
) )
eventManager().subscribe(Events.METADATA_ANALYSIS_FINISHED, self.onMetadataAnalysisFinished);
#~~ callback handling #~~ callback handling
def registerCallback(self, callback): def registerCallback(self, callback):
@ -152,6 +154,14 @@ class Printer():
self._selectedFile["filesize"], self._selectedFile["filesize"],
self._selectedFile["sd"]) 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 #~~ printer commands
def connect(self, port=None, baudrate=None): def connect(self, port=None, baudrate=None):

View file

@ -52,7 +52,7 @@ function PrinterStateViewModel(loginStateViewModel) {
if (!self.printTimeLeft()) if (!self.printTimeLeft())
return "-"; return "-";
return formatDuration(self.printTimeLeft()); return formatDuration(self.printTimeLeft());
}) });
self.progressString = ko.computed(function() { self.progressString = ko.computed(function() {
if (!self.progress()) if (!self.progress())
return 0; return 0;
@ -83,22 +83,22 @@ function PrinterStateViewModel(loginStateViewModel) {
self.fromCurrentData = function(data) { self.fromCurrentData = function(data) {
self._fromData(data); self._fromData(data);
} };
self.fromHistoryData = function(data) { self.fromHistoryData = function(data) {
self._fromData(data); self._fromData(data);
} };
self.fromTimelapseData = function(data) { self.fromTimelapseData = function(data) {
self.timelapse(data); self.timelapse(data);
} };
self._fromData = function(data) { self._fromData = function(data) {
self._processStateData(data.state) self._processStateData(data.state);
self._processJobData(data.job); self._processJobData(data.job);
self._processProgressData(data.progress); self._processProgressData(data.progress);
self._processZData(data.currentZ); self._processZData(data.currentZ);
} };
self._processStateData = function(data) { self._processStateData = function(data) {
self.stateString(data.text); self.stateString(data.text);
@ -109,7 +109,7 @@ function PrinterStateViewModel(loginStateViewModel) {
self.isError(data.flags.error); self.isError(data.flags.error);
self.isReady(data.flags.ready); self.isReady(data.flags.ready);
self.isSdReady(data.flags.sdReady); self.isSdReady(data.flags.sdReady);
} };
self._processJobData = function(data) { self._processJobData = function(data) {
if (data.file) { if (data.file) {
@ -121,6 +121,7 @@ function PrinterStateViewModel(loginStateViewModel) {
self.filesize(undefined); self.filesize(undefined);
self.sd(undefined); self.sd(undefined);
} }
self.estimatedPrintTime(data.estimatedPrintTime); self.estimatedPrintTime(data.estimatedPrintTime);
var result = []; var result = [];
@ -131,12 +132,12 @@ function PrinterStateViewModel(loginStateViewModel) {
result[i] = { result[i] = {
name: ko.observable("Tool " + i), name: ko.observable("Tool " + i),
data: ko.observable(data.filament[key]) data: ko.observable(data.filament[key])
} };
i++; i++;
} while (data.filament.hasOwnProperty("tool" + i)); } while (data.filament.hasOwnProperty("tool" + i));
} }
self.filament(result); self.filament(result);
} };
self._processProgressData = function(data) { self._processProgressData = function(data) {
if (data.completion) { if (data.completion) {
@ -147,16 +148,16 @@ function PrinterStateViewModel(loginStateViewModel) {
self.filepos(data.filepos); self.filepos(data.filepos);
self.printTime(data.printTime); self.printTime(data.printTime);
self.printTimeLeft(data.printTimeLeft); self.printTimeLeft(data.printTimeLeft);
} };
self._processZData = function(data) { self._processZData = function(data) {
self.currentHeight(data); self.currentHeight(data);
} };
self.print = function() { self.print = function() {
var restartCommand = function() { var restartCommand = function() {
self._jobCommand("restart"); self._jobCommand("restart");
} };
if (self.isPaused()) { if (self.isPaused()) {
$("#confirmation_dialog .confirmation_dialog_message").text("This will restart the print job from the beginning."); $("#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._jobCommand("start");
} }
} };
self.pause = function() { self.pause = function() {
self._jobCommand("pause"); self._jobCommand("pause");
} };
self.cancel = function() { self.cancel = function() {
self._jobCommand("cancel"); self._jobCommand("cancel");
} };
self._jobCommand = function(command) { self._jobCommand = function(command) {
$.ajax({ $.ajax({