Correctly check for null values and don't try to access non existing keys

Fixes #544
This commit is contained in:
Gina Häußge 2014-08-13 09:46:52 +02:00
parent 4aee779385
commit 519429cebb
2 changed files with 14 additions and 19 deletions

View file

@ -274,14 +274,12 @@ function GcodeFilesViewModel(printerStateViewModel, loginStateViewModel) {
var filament = data["gcodeAnalysis"]["filament"];
if (_.keys(filament).length == 1) {
output += "Filament: " + formatFilament(data["gcodeAnalysis"]["filament"]["tool" + 0]) + "<br>";
} else {
var i = 0;
do {
if (filament["tool" + i].hasOwnProperty("length") && filament["tool" + i]["length"] > 0) {
output += "Filament (Tool " + i + "): " + formatFilament(filament["tool" + i]) + "<br>";
}
i++;
} while (filament.hasOwnProperty("tool" + i));
} else if (_.keys(filament).length > 1) {
for (var toolKey in filament) {
if (!_.startsWith(toolKey, "tool") || !filament[toolKey] || !filament[toolKey].hasOwnProperty("length") || filament[toolKey]["length"] <= 0) continue;
output += "Filament (Tool " + toolKey.substr("tool".length) + "): " + formatFilament(filament[toolKey]) + "<br>";
}
}
}
output += "Estimated Print Time: " + formatDuration(data["gcodeAnalysis"]["estimatedPrintTime"]) + "<br>";

View file

@ -130,17 +130,14 @@ function PrinterStateViewModel(loginStateViewModel) {
var result = [];
if (data.filament && typeof(data.filament) == "object" && _.keys(data.filament).length > 0) {
var i = 0;
do {
var key = "tool" + i;
if (data.filament[key].hasOwnProperty("length") && data.filament[key].length > 0) {
result.push({
name: ko.observable("Tool " + i),
data: ko.observable(data.filament[key])
});
}
i++;
} while (data.filament.hasOwnProperty("tool" + i));
for (var key in data.filament) {
if (!_.startsWith(key, "tool") || !data.filament[key] || !data.filament[key].hasOwnProperty("length") || data.filament[key].length <= 0) continue;
result.push({
name: ko.observable("Tool " + key.substr("tool".length)),
data: ko.observable(data.filament[key])
});
}
}
self.filament(result);
};