diff --git a/octoprint/server.py b/octoprint/server.py index 920ba9c..8375a9a 100644 --- a/octoprint/server.py +++ b/octoprint/server.py @@ -166,14 +166,22 @@ def setTargetTemperature(): if not printer.isOperational(): return jsonify(SUCCESS) - if request.values.has_key("temp"): + elif request.values.has_key("temp"): # set target temperature temp = request.values["temp"] + if "ABS" == temp: + temp = settings().get(["temperature","extruderABS"]) + elif "PLA" == temp: + temp = settings().get(["temperature","extruderPLA"]) printer.command("M104 S" + temp) - if request.values.has_key("bedTemp"): + elif request.values.has_key("bedTemp"): # set target bed temperature bedTemp = request.values["bedTemp"] + if "ABS" == bedTemp: + bedTemp = settings().get(["temperature","bedABS"]) + elif "PLA" == bedTemp: + bedTemp = settings().get(["temperature","bedPLA"]) printer.command("M140 S" + bedTemp) return jsonify(SUCCESS) @@ -353,7 +361,13 @@ def getSettings(): "timelapse": s.getBaseFolder("timelapse"), "timelapseTmp": s.getBaseFolder("timelapse_tmp"), "logs": s.getBaseFolder("logs") - } + }, + "temperature": { + "extruderABS": s.get(["temperature", "extruderABS"]), + "bedABS": s.get(["temperature", "bedABS"]), + "extruderPLA": s.get(["temperature", "extruderPLA"]), + "bedPLA": s.get(["temperature", "bedPLA"]) + } }) @app.route(BASEURL + "settings", methods=["POST"]) @@ -384,6 +398,12 @@ def setSettings(): if "timelapseTmp" in data["folder"].keys(): s.setBaseFolder("timelapse_tmp", data["folder"]["timelapseTmp"]) if "logs" in data["folder"].keys(): s.setBaseFolder("logs", data["folder"]["logs"]) + if "temperature" in data.keys(): + if "extruderABS" in data["temperature"].keys(): s.set(["temperature", "extruderABS"], data["temperature"]["extruderABS"]) + if "bedABS" in data["temperature"].keys(): s.set(["temperature", "bedABS"], data["temperature"]["bedABS"]) + if "extruderPLA" in data["temperature"].keys(): s.set(["temperature", "extruderPLA"], data["temperature"]["extruderPLA"]) + if "bedPLA" in data["temperature"].keys(): s.set(["temperature", "bedPLA"], data["temperature"]["bedPLA"]) + s.save() return getSettings() diff --git a/octoprint/settings.py b/octoprint/settings.py index 1e78772..8f2c586 100644 --- a/octoprint/settings.py +++ b/octoprint/settings.py @@ -56,6 +56,12 @@ default_settings.update({ "z": 200, "e": 300 } + }, + "temperature": { + "extruderABS": 210, + "bedABS": 100, + "extruderPLA": 180, + "bedPLA": 60 } }) @@ -278,4 +284,4 @@ def _resolveSettingsDir(applicationName): elif sys.platform == "win32": return os.path.join(os.environ["APPDATA"], applicationName) else: - return os.path.expanduser(os.path.join("~", "." + applicationName.lower())) \ No newline at end of file + return os.path.expanduser(os.path.join("~", "." + applicationName.lower())) diff --git a/octoprint/static/css/ui.css b/octoprint/static/css/ui.css index 3925cb8..321cb56 100644 --- a/octoprint/static/css/ui.css +++ b/octoprint/static/css/ui.css @@ -98,8 +98,12 @@ table th.timelapse_files_action, table td.timelapse_files_action { background-repeat: no-repeat; } -#temp { - overflow: hidden; +.tab-content, .tab-pane { + overflow: visible; +} + +.tempInput { + width: 50px; } #temp_newTemp, #temp_newBedTemp, #speed_innerWall, #speed_outerWall, #speed_fill, #speed_support, #webcam_timelapse_interval { diff --git a/octoprint/static/js/ui.js b/octoprint/static/js/ui.js index 4b5fb18..f77d509 100644 --- a/octoprint/static/js/ui.js +++ b/octoprint/static/js/ui.js @@ -1019,6 +1019,11 @@ function SettingsViewModel() { self.folder_timelapseTmp = ko.observable(undefined); self.folder_logs = ko.observable(undefined); + self.temperature_extruderABS = ko.observable(undefined); + self.temperature_bedABS = ko.observable(undefined); + self.temperature_extruderPLA = ko.observable(undefined); + self.temperature_bedPLA = ko.observable(undefined); + self.requestData = function() { $.ajax({ url: AJAX_BASEURL + "settings", @@ -1046,6 +1051,11 @@ function SettingsViewModel() { self.folder_timelapse(response.folder.timelapse); self.folder_timelapseTmp(response.folder.timelapseTmp); self.folder_logs(response.folder.logs); + + self.temperature_extruderABS(response.temperature.extruderABS); + self.temperature_bedABS(response.temperature.bedABS); + self.temperature_extruderPLA(response.temperature.extruderPLA); + self.temperature_bedPLA(response.temperature.bedPLA); } self.saveData = function() { @@ -1071,7 +1081,13 @@ function SettingsViewModel() { "timelapse": self.folder_timelapse(), "timelapseTmp": self.folder_timelapseTmp(), "logs": self.folder_logs() - } + }, + "temperature": { + "extruderABS": self.temperature_extruderABS(), + "bedABS": self.temperature_bedABS(), + "extruderPLA": self.temperature_extruderPLA(), + "bedPLA": self.temperature_bedPLA() + }, } $.ajax({ @@ -1207,8 +1223,10 @@ $(function() { //~~ Temperature control - $("#temp_newTemp_set").click(function() { + $("#temp_newTemp_set, .temp_newTemp_set").click(function() { var newTemp = $("#temp_newTemp").val(); + if ($(this).data('temp') != null) + newTemp = $(this).data('temp'); $.ajax({ url: AJAX_BASEURL + "control/temperature", type: "POST", @@ -1217,8 +1235,10 @@ $(function() { success: function() {$("#temp_newTemp").val("")} }) }) - $("#temp_newBedTemp_set").click(function() { + $("#temp_newBedTemp_set, .temp_newBedTemp_set").click(function() { var newBedTemp = $("#temp_newBedTemp").val(); + if ($(this).data('temp') != null) + newBedTemp = $(this).data('temp'); $.ajax({ url: AJAX_BASEURL + "control/temperature", type: "POST", diff --git a/octoprint/templates/index.html b/octoprint/templates/index.html index 9fd6036..bec3cfb 100644 --- a/octoprint/templates/index.html +++ b/octoprint/templates/index.html @@ -156,8 +156,8 @@
-
-
+
+

Temperature

@@ -166,12 +166,30 @@
- + °C
- +
+ + + +
-
+

Bed Temperature

@@ -180,10 +198,27 @@
- + °C
- +
+ + + +
@@ -489,6 +524,7 @@
  • Webcam
  • Features
  • Folder
  • +
  • Temperature
  • @@ -594,6 +630,34 @@
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    +