Allow disabling of the temperature graph and gcode visualizer without any side effects
Also introduced feature parameter for the temperature graph See #215
This commit is contained in:
parent
7155661259
commit
55cb991c44
7 changed files with 44 additions and 14 deletions
|
|
@ -177,6 +177,7 @@ def index():
|
|||
webcamStream=settings().get(["webcam", "stream"]),
|
||||
enableTimelapse=(settings().get(["webcam", "snapshot"]) is not None and settings().get(["webcam", "ffmpeg"]) is not None),
|
||||
enableGCodeVisualizer=settings().get(["feature", "gCodeVisualizer"]),
|
||||
enableTemperatureGraph=settings().get(["feature", "temperatureGraph"]),
|
||||
enableSystemMenu=settings().get(["system"]) is not None and settings().get(["system", "actions"]) is not None and len(settings().get(["system", "actions"])) > 0,
|
||||
enableAccessControl=userManager is not None,
|
||||
enableSdSupport=settings().get(["feature", "sdSupport"]),
|
||||
|
|
@ -587,6 +588,7 @@ def getSettings():
|
|||
},
|
||||
"feature": {
|
||||
"gcodeViewer": s.getBoolean(["feature", "gCodeVisualizer"]),
|
||||
"temperatureGraph": s.getBoolean(["feature", "temperatureGraph"]),
|
||||
"waitForStart": s.getBoolean(["feature", "waitForStartOnConnect"]),
|
||||
"alwaysSendChecksum": s.getBoolean(["feature", "alwaysSendChecksum"]),
|
||||
"sdSupport": s.getBoolean(["feature", "sdSupport"])
|
||||
|
|
@ -651,6 +653,7 @@ def setSettings():
|
|||
|
||||
if "feature" in data.keys():
|
||||
if "gcodeViewer" in data["feature"].keys(): s.setBoolean(["feature", "gCodeVisualizer"], data["feature"]["gcodeViewer"])
|
||||
if "temperatureGraph" in data["feature"].keys(): s.setBoolean(["feature", "temperatureGraph"], data["feature"]["temperatureGraph"])
|
||||
if "waitForStart" in data["feature"].keys(): s.setBoolean(["feature", "waitForStartOnConnect"], data["feature"]["waitForStart"])
|
||||
if "alwaysSendChecksum" in data["feature"].keys(): s.setBoolean(["feature", "alwaysSendChecksum"], data["feature"]["alwaysSendChecksum"])
|
||||
if "sdSupport" in data["feature"].keys(): s.setBoolean(["feature", "sdSupport"], data["feature"]["sdSupport"])
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ default_settings = {
|
|||
},
|
||||
"feature": {
|
||||
"gCodeVisualizer": True,
|
||||
"temperatureGraph": True,
|
||||
"waitForStartOnConnect": False,
|
||||
"alwaysSendChecksum": False,
|
||||
"sdSupport": True
|
||||
|
|
|
|||
|
|
@ -194,7 +194,10 @@ $(function() {
|
|||
ko.applyBindings(temperatureViewModel, document.getElementById("temp"));
|
||||
ko.applyBindings(controlViewModel, document.getElementById("control"));
|
||||
ko.applyBindings(terminalViewModel, document.getElementById("term"));
|
||||
ko.applyBindings(gcodeViewModel, document.getElementById("gcode"));
|
||||
var gcode = document.getElementById("gcode");
|
||||
if (gcode) {
|
||||
ko.applyBindings(gcodeViewModel, gcode);
|
||||
}
|
||||
ko.applyBindings(settingsViewModel, document.getElementById("settings_dialog"));
|
||||
ko.applyBindings(navigationViewModel, document.getElementById("navbar"));
|
||||
ko.applyBindings(appearanceViewModel, document.getElementsByTagName("head")[0]);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
self.webcam_flipV = ko.observable(undefined);
|
||||
|
||||
self.feature_gcodeViewer = ko.observable(undefined);
|
||||
self.feature_temperatureGraph = ko.observable(undefined);
|
||||
self.feature_waitForStart = ko.observable(undefined);
|
||||
self.feature_alwaysSendChecksum = ko.observable(undefined);
|
||||
self.feature_sdSupport = ko.observable(undefined);
|
||||
|
|
@ -98,6 +99,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
self.webcam_flipV(response.webcam.flipV);
|
||||
|
||||
self.feature_gcodeViewer(response.feature.gcodeViewer);
|
||||
self.feature_temperatureGraph(response.feature.temperatureGraph);
|
||||
self.feature_waitForStart(response.feature.waitForStart);
|
||||
self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum);
|
||||
self.feature_sdSupport(response.feature.sdSupport);
|
||||
|
|
@ -151,6 +153,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
},
|
||||
"feature": {
|
||||
"gcodeViewer": self.feature_gcodeViewer(),
|
||||
"temperatureGraph": self.feature_temperatureGraph(),
|
||||
"waitForStart": self.feature_waitForStart(),
|
||||
"alwaysSendChecksum": self.feature_alwaysSendChecksum(),
|
||||
"sdSupport": self.feature_sdSupport()
|
||||
|
|
|
|||
|
|
@ -104,6 +104,8 @@ function TemperatureViewModel(loginStateViewModel, settingsViewModel) {
|
|||
self.targetTemp(data[data.length - 1].targetTemp);
|
||||
self.bedTargetTemp(data[data.length - 1].targetBedTemp);
|
||||
|
||||
if (!CONFIG_TEMPERATURE_GRAPH) return;
|
||||
|
||||
if (!self.temperatures)
|
||||
self.temperatures = [];
|
||||
if (!self.temperatures.actual)
|
||||
|
|
@ -115,12 +117,14 @@ function TemperatureViewModel(loginStateViewModel, settingsViewModel) {
|
|||
if (!self.temperatures.targetBed)
|
||||
self.temperatures.targetBed = [];
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
self.temperatures.actual.push([data[i].currentTime, data[i].temp])
|
||||
self.temperatures.target.push([data[i].currentTime, data[i].targetTemp])
|
||||
self.temperatures.actualBed.push([data[i].currentTime, data[i].bedTemp])
|
||||
self.temperatures.targetBed.push([data[i].currentTime, data[i].targetBedTemp])
|
||||
}
|
||||
_.each(data, function(d) {
|
||||
var time = d.currentTime;
|
||||
self.temperatures.actual.push([currentTime, d.temp]);
|
||||
self.temperatures.target.push([currentTime, d.targetTemp]);
|
||||
self.temperatures.actualBed.push([currentTime, d.bedTemp]);
|
||||
self.temperatures.targetBed.push([currentTime, d.targetBedTemp]);
|
||||
});
|
||||
|
||||
self.temperatures.actual = self.temperatures.actual.slice(-300);
|
||||
self.temperatures.target = self.temperatures.target.slice(-300);
|
||||
self.temperatures.actualBed = self.temperatures.actualBed.slice(-300);
|
||||
|
|
@ -135,13 +139,17 @@ function TemperatureViewModel(loginStateViewModel, settingsViewModel) {
|
|||
}
|
||||
|
||||
self.updatePlot = function() {
|
||||
var data = [
|
||||
{label: "Actual", color: "#FF4040", data: self.temperatures.actual},
|
||||
{label: "Target", color: "#FFA0A0", data: self.temperatures.target},
|
||||
{label: "Bed Actual", color: "#4040FF", data: self.temperatures.actualBed},
|
||||
{label: "Bed Target", color: "#A0A0FF", data: self.temperatures.targetBed}
|
||||
]
|
||||
$.plot($("#temperature-graph"), data, self.plotOptions);
|
||||
var graph = $("#temperature-graph");
|
||||
if (graph.length) {
|
||||
var data = [
|
||||
{label: "Actual", color: "#FF4040", data: self.temperatures.actual},
|
||||
{label: "Target", color: "#FFA0A0", data: self.temperatures.target},
|
||||
{label: "Bed Actual", color: "#4040FF", data: self.temperatures.actualBed},
|
||||
{label: "Bed Target", color: "#A0A0FF", data: self.temperatures.targetBed}
|
||||
]
|
||||
|
||||
$.plot(graph, data, self.plotOptions);
|
||||
}
|
||||
}
|
||||
|
||||
self.setTempFromProfile = function(profile) {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
var CONFIG_ACCESS_CONTROL = {% if enableAccessControl -%} true; {% else %} false; {%- endif %}
|
||||
var CONFIG_SD_SUPPORT = {% if enableSdSupport -%} true; {% else %} false; {%- endif %}
|
||||
var CONFIG_FIRST_RUN = {% if firstRun -%} true; {% else %} false; {%- endif %}
|
||||
var CONFIG_TEMPERATURE_GRAPH = {% if enableTemperatureGraph -%} true; {% else %} false; {%- endif %}
|
||||
|
||||
var SOCKJS_URI = window.location.protocol.slice(0, -1) + "://" + (window.document ? window.document.domain : window.location.hostname) + ":" + window.location.port + "/sockjs";
|
||||
var SOCKJS_DEBUG = {% if debug -%} true; {% else %} false; {%- endif %}
|
||||
|
|
@ -245,9 +246,11 @@
|
|||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="temp">
|
||||
{% if enableTemperatureGraph %}
|
||||
<div class="row" style="padding-left: 20px">
|
||||
<div id="temperature-graph"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="row-fluid" style="margin-bottom: 20px">
|
||||
<div class="form-horizontal span6">
|
||||
<h1>Temperature</h1>
|
||||
|
|
@ -419,6 +422,7 @@
|
|||
<script type="text/html" id="customControls_emptyTemplate"><div></div></script>
|
||||
<!-- End of templates for custom controls -->
|
||||
</div>
|
||||
{% if enableGCodeVisualizer %}
|
||||
<div class="tab-pane" id="gcode">
|
||||
<canvas id="canvas" width="572" height="588"></canvas>
|
||||
<div id="slider-vertical"></div>
|
||||
|
|
@ -506,6 +510,7 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="tab-pane" id="term">
|
||||
<pre id="terminal-output" class="pre-scrollable"></pre>
|
||||
<label class="checkbox">
|
||||
|
|
|
|||
|
|
@ -168,6 +168,13 @@
|
|||
</div>
|
||||
<div class="tab-pane" id="settings_features">
|
||||
<form class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: feature_temperatureGraph" id="settings-featureTemperatureGraph"> Enable Temperature Graph
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<label class="checkbox">
|
||||
|
|
|
|||
Loading…
Reference in a new issue