From bb0a6078915a495418042e8911a70bdf121e3887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Mon, 23 Feb 2015 21:41:19 +0100 Subject: [PATCH] Fixed gcode and terminal view models not properly handling missing elements --- .../static/js/app/viewmodels/gcode.js | 66 ++++++++++--------- .../static/js/app/viewmodels/terminal.js | 8 ++- 2 files changed, 39 insertions(+), 35 deletions(-) diff --git a/src/octoprint/static/js/app/viewmodels/gcode.js b/src/octoprint/static/js/app/viewmodels/gcode.js index 0aaeb9f2..e44096c7 100644 --- a/src/octoprint/static/js/app/viewmodels/gcode.js +++ b/src/octoprint/static/js/app/viewmodels/gcode.js @@ -215,8 +215,16 @@ $(function() { self.currentCommand = undefined; self.initialize = function() { - self._configureLayerSlider(); - self._configureLayerCommandSlider(); + var layerSliderElement = $("#gcode_slider_layers"); + var commandSliderElement = $("#gcode_slider_commands"); + var containerElement = $("#gcode_canvas"); + + if (!(layerSliderElement.length && commandSliderElement.length && containerElement.length)) { + return; + } + + self._configureLayerSlider(layerSliderElement); + self._configureLayerCommandSlider(commandSliderElement); self.settings.requestData(function() { GCODE.ui.init({ @@ -244,38 +252,32 @@ $(function() { GCODE.ui.clear(); }; - self._configureLayerSlider = function() { - var layerSliderElement = $("#gcode_slider_layers"); - if (layerSliderElement) { - self.layerSlider = layerSliderElement.slider({ - id: "gcode_layer_slider", - reversed: true, - selection: "after", - orientation: "vertical", - min: 0, - max: 1, - step: 1, - value: 0, - enabled: false, - formatter: function(value) { return "Layer #" + (value + 1); } - }).on("slide", self.changeLayer); - } + self._configureLayerSlider = function(layerSliderElement) { + self.layerSlider = layerSliderElement.slider({ + id: "gcode_layer_slider", + reversed: true, + selection: "after", + orientation: "vertical", + min: 0, + max: 1, + step: 1, + value: 0, + enabled: false, + formatter: function(value) { return "Layer #" + (value + 1); } + }).on("slide", self.changeLayer); }; - self._configureLayerCommandSlider = function() { - var commandSliderElement = $("#gcode_slider_commands"); - if (commandSliderElement) { - self.layerCommandSlider = commandSliderElement.slider({ - id: "gcode_command_slider", - orientation: "horizontal", - min: 0, - max: 1, - step: 1, - value: [0, 1], - enabled: false, - tooltip: "hide" - }).on("slide", self.changeCommandRange); - } + self._configureLayerCommandSlider = function(commandSliderElement) { + self.layerCommandSlider = commandSliderElement.slider({ + id: "gcode_command_slider", + orientation: "horizontal", + min: 0, + max: 1, + step: 1, + value: [0, 1], + enabled: false, + tooltip: "hide" + }).on("slide", self.changeCommandRange); }; self.loadFile = function(filename, date){ diff --git a/src/octoprint/static/js/app/viewmodels/terminal.js b/src/octoprint/static/js/app/viewmodels/terminal.js index 67635b0d..9a97474e 100644 --- a/src/octoprint/static/js/app/viewmodels/terminal.js +++ b/src/octoprint/static/js/app/viewmodels/terminal.js @@ -84,10 +84,12 @@ $(function() { } var container = $("#terminal-output"); - container.text(output); + if (container.length) { + container.text(output); - if (self.autoscrollEnabled()) { - container.scrollTop(container[0].scrollHeight - container.height()) + if (self.autoscrollEnabled()) { + container.scrollTop(container[0].scrollHeight - container.height()) + } } };