Also provide access to the auto-connect setting in the connection and the settings dialog
parent
30e1624127
commit
b0518a71a3
|
@ -24,7 +24,8 @@ def getConnectionOptions():
|
||||||
"ports": comm.serialList(),
|
"ports": comm.serialList(),
|
||||||
"baudrates": comm.baudrateList(),
|
"baudrates": comm.baudrateList(),
|
||||||
"portPreference": settings().get(["serial", "port"]),
|
"portPreference": settings().get(["serial", "port"]),
|
||||||
"baudratePreference": settings().getInt(["serial", "baudrate"])
|
"baudratePreference": settings().getInt(["serial", "baudrate"]),
|
||||||
|
"autoconnect": settings().getBoolean(["serial", "autoconnect"])
|
||||||
}
|
}
|
||||||
|
|
||||||
class Printer():
|
class Printer():
|
||||||
|
|
|
@ -170,6 +170,9 @@ def connect():
|
||||||
settings().set(["serial", "port"], port)
|
settings().set(["serial", "port"], port)
|
||||||
settings().setInt(["serial", "baudrate"], baudrate)
|
settings().setInt(["serial", "baudrate"], baudrate)
|
||||||
settings().save()
|
settings().save()
|
||||||
|
if "autoconnect" in request.values.keys():
|
||||||
|
settings().setBoolean(["serial", "autoconnect"], True)
|
||||||
|
settings().save()
|
||||||
printer.connect(port=port, baudrate=baudrate)
|
printer.connect(port=port, baudrate=baudrate)
|
||||||
elif "command" in request.values.keys() and request.values["command"] == "disconnect":
|
elif "command" in request.values.keys() and request.values["command"] == "disconnect":
|
||||||
printer.disconnect()
|
printer.disconnect()
|
||||||
|
@ -507,6 +510,9 @@ def getSettings():
|
||||||
"alwaysSendChecksum": s.getBoolean(["feature", "alwaysSendChecksum"]),
|
"alwaysSendChecksum": s.getBoolean(["feature", "alwaysSendChecksum"]),
|
||||||
"sdSupport": s.getBoolean(["feature", "sdSupport"])
|
"sdSupport": s.getBoolean(["feature", "sdSupport"])
|
||||||
},
|
},
|
||||||
|
"serial": {
|
||||||
|
"autoconnect": s.getBoolean(["serial", "autoconnect"])
|
||||||
|
},
|
||||||
"folder": {
|
"folder": {
|
||||||
"uploads": s.getBaseFolder("uploads"),
|
"uploads": s.getBaseFolder("uploads"),
|
||||||
"timelapse": s.getBaseFolder("timelapse"),
|
"timelapse": s.getBaseFolder("timelapse"),
|
||||||
|
@ -559,6 +565,9 @@ def setSettings():
|
||||||
if "alwaysSendChecksum" in data["feature"].keys(): s.setBoolean(["feature", "alwaysSendChecksum"], data["feature"]["alwaysSendChecksum"])
|
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"])
|
if "sdSupport" in data["feature"].keys(): s.setBoolean(["feature", "sdSupport"], data["feature"]["sdSupport"])
|
||||||
|
|
||||||
|
if "serial" in data.keys():
|
||||||
|
if "autoconnect" in data["serial"].keys(): s.setBoolean(["serial", "autoconnect"], data["serial"]["autoconnect"])
|
||||||
|
|
||||||
if "folder" in data.keys():
|
if "folder" in data.keys():
|
||||||
if "uploads" in data["folder"].keys(): s.setBaseFolder("uploads", data["folder"]["uploads"])
|
if "uploads" in data["folder"].keys(): s.setBaseFolder("uploads", data["folder"]["uploads"])
|
||||||
if "timelapse" in data["folder"].keys(): s.setBaseFolder("timelapse", data["folder"]["timelapse"])
|
if "timelapse" in data["folder"].keys(): s.setBaseFolder("timelapse", data["folder"]["timelapse"])
|
||||||
|
|
|
@ -89,10 +89,11 @@ function LoginStateViewModel() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ConnectionViewModel(loginStateViewModel) {
|
function ConnectionViewModel(loginStateViewModel, settingsViewModel) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
self.loginState = loginStateViewModel;
|
self.loginState = loginStateViewModel;
|
||||||
|
self.settings = settingsViewModel;
|
||||||
|
|
||||||
self.portOptions = ko.observableArray(undefined);
|
self.portOptions = ko.observableArray(undefined);
|
||||||
self.baudrateOptions = ko.observableArray(undefined);
|
self.baudrateOptions = ko.observableArray(undefined);
|
||||||
|
@ -188,6 +189,8 @@ function ConnectionViewModel(loginStateViewModel) {
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
|
|
||||||
|
self.settings.saveData();
|
||||||
} else {
|
} else {
|
||||||
self.requestData();
|
self.requestData();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -1337,6 +1340,8 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
||||||
self.feature_alwaysSendChecksum = ko.observable(undefined);
|
self.feature_alwaysSendChecksum = ko.observable(undefined);
|
||||||
self.feature_sdSupport = ko.observable(undefined);
|
self.feature_sdSupport = ko.observable(undefined);
|
||||||
|
|
||||||
|
self.serial_autoconnect = ko.observable(undefined);
|
||||||
|
|
||||||
self.folder_uploads = ko.observable(undefined);
|
self.folder_uploads = ko.observable(undefined);
|
||||||
self.folder_timelapse = ko.observable(undefined);
|
self.folder_timelapse = ko.observable(undefined);
|
||||||
self.folder_timelapseTmp = ko.observable(undefined);
|
self.folder_timelapseTmp = ko.observable(undefined);
|
||||||
|
@ -1388,6 +1393,8 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
||||||
self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum);
|
self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum);
|
||||||
self.feature_sdSupport(response.feature.sdSupport);
|
self.feature_sdSupport(response.feature.sdSupport);
|
||||||
|
|
||||||
|
self.serial_autoconnect(response.serial.autoconnect);
|
||||||
|
|
||||||
self.folder_uploads(response.folder.uploads);
|
self.folder_uploads(response.folder.uploads);
|
||||||
self.folder_timelapse(response.folder.timelapse);
|
self.folder_timelapse(response.folder.timelapse);
|
||||||
self.folder_timelapseTmp(response.folder.timelapseTmp);
|
self.folder_timelapseTmp(response.folder.timelapseTmp);
|
||||||
|
@ -1429,6 +1436,9 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
||||||
"alwaysSendChecksum": self.feature_alwaysSendChecksum(),
|
"alwaysSendChecksum": self.feature_alwaysSendChecksum(),
|
||||||
"sdSupport": self.feature_sdSupport()
|
"sdSupport": self.feature_sdSupport()
|
||||||
},
|
},
|
||||||
|
"serial": {
|
||||||
|
"autoconnect": self.serial_autoconnect()
|
||||||
|
},
|
||||||
"folder": {
|
"folder": {
|
||||||
"uploads": self.folder_uploads(),
|
"uploads": self.folder_uploads(),
|
||||||
"timelapse": self.folder_timelapse(),
|
"timelapse": self.folder_timelapse(),
|
||||||
|
@ -1839,11 +1849,11 @@ function AppearanceViewModel(settingsViewModel) {
|
||||||
$(function() {
|
$(function() {
|
||||||
|
|
||||||
//~~ View models
|
//~~ View models
|
||||||
var loginStateViewModel = new LoginStateViewModel(loginStateViewModel);
|
var loginStateViewModel = new LoginStateViewModel();
|
||||||
var usersViewModel = new UsersViewModel(loginStateViewModel);
|
var usersViewModel = new UsersViewModel(loginStateViewModel);
|
||||||
var connectionViewModel = new ConnectionViewModel(loginStateViewModel);
|
|
||||||
var printerStateViewModel = new PrinterStateViewModel(loginStateViewModel);
|
|
||||||
var settingsViewModel = new SettingsViewModel(loginStateViewModel, usersViewModel);
|
var settingsViewModel = new SettingsViewModel(loginStateViewModel, usersViewModel);
|
||||||
|
var connectionViewModel = new ConnectionViewModel(loginStateViewModel, settingsViewModel);
|
||||||
|
var printerStateViewModel = new PrinterStateViewModel(loginStateViewModel);
|
||||||
var appearanceViewModel = new AppearanceViewModel(settingsViewModel);
|
var appearanceViewModel = new AppearanceViewModel(settingsViewModel);
|
||||||
var temperatureViewModel = new TemperatureViewModel(loginStateViewModel, settingsViewModel);
|
var temperatureViewModel = new TemperatureViewModel(loginStateViewModel, settingsViewModel);
|
||||||
var controlViewModel = new ControlViewModel(loginStateViewModel, settingsViewModel);
|
var controlViewModel = new ControlViewModel(loginStateViewModel, settingsViewModel);
|
||||||
|
|
|
@ -97,6 +97,9 @@
|
||||||
<label class="checkbox">
|
<label class="checkbox">
|
||||||
<input type="checkbox" id="connection_save" data-bind="checked: saveSettings, css: {disabled: !isErrorOrClosed}, enable: isErrorOrClosed && loginState.isUser"> Save connection settings
|
<input type="checkbox" id="connection_save" data-bind="checked: saveSettings, css: {disabled: !isErrorOrClosed}, enable: isErrorOrClosed && loginState.isUser"> Save connection settings
|
||||||
</label>
|
</label>
|
||||||
|
<label class="checkbox">
|
||||||
|
<input type="checkbox" id="connection_autoconnect" data-bind="checked: settings.serial_autoconnect, css: {disabled: !isErrorOrClosed}, enable: isErrorOrClosed && loginState.isUser"> Auto-connect on server startup
|
||||||
|
</label>
|
||||||
<button class="btn btn-block" id="printer_connect" data-bind="click: connect, text: buttonText(), enable: loginState.isUser">Connect</button>
|
<button class="btn btn-block" id="printer_connect" data-bind="click: connect, text: buttonText(), enable: loginState.isUser">Connect</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -134,6 +134,13 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<div class="controls">
|
||||||
|
<label class="checkbox">
|
||||||
|
<input type="checkbox" data-bind="checked: serial_autoconnect" id="settings-serialAutoconnect"> Auto-connect to printer on server start
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="settings_folder">
|
<div class="tab-pane" id="settings_folder">
|
||||||
|
|
Loading…
Reference in New Issue