Skip to content

Commit 1827962

Browse files
committed
Add Restart and Firmware Restart buttons to the State window, maybe disable based on state?
1 parent 32c4c93 commit 1827962

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

octoprint_moonraker_connector/static/js/moonraker_connector.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,58 @@ $(function () {
77
self.settingsViewModel = parameters[2];
88
self.printerState = parameters[3];
99

10+
self.btnRestartClick = function() {
11+
OctoPrint.control.sendGcode('RESTART');
12+
}
13+
14+
self.btnFirmwareRestartClick = function() {
15+
OctoPrint.control.sendGcode('FIRMWARE_RESTART');
16+
}
17+
18+
self.initializeButton = function() {
19+
var buttonContainer = $('#job_print')[0].parentElement;
20+
var container = document.createElement("div");
21+
container.classList.add("row-fluid", "print-control");
22+
container.style.marginTop = "10px";
23+
container.setAttribute("data-bind", "visible: $root.loginState.hasPermissionKo($root.access.permissions.PRINT)");
24+
25+
var btnRestart = document.createElement("button");
26+
btnRestart.id = "job_restart";
27+
btnRestart.title = "Reload configuration file and performs an internal reset of the host software. It does not clear the error state from the micro-controller.";
28+
btnRestart.classList.add("btn");
29+
btnRestart.classList.add("span6");
30+
btnRestart.addEventListener("click", self.btnRestartClick);
31+
32+
var btnRestartIcon = document.createElement("i");
33+
btnRestartIcon.classList.add("fa", "fa-redo");
34+
btnRestart.appendChild(btnRestartIcon);
35+
36+
var btnRestartText = document.createElement("span");
37+
btnRestartText.textContent = " Restart";
38+
btnRestart.appendChild(btnRestartText);
39+
40+
container.appendChild(btnRestart);
41+
42+
var btnFirmwareRestart = document.createElement("button");
43+
btnFirmwareRestart.id = "job_firmware_restart";
44+
btnFirmwareRestart.title = "Reload configuration file and performs an internal reset of the host software, but it also clears any error states from the micro-controller.";
45+
btnFirmwareRestart.classList.add("btn");
46+
btnFirmwareRestart.classList.add("span6");
47+
btnFirmwareRestart.addEventListener("click", self.btnFirmwareRestartClick);
48+
49+
var btnFirmwareRestartIcon = document.createElement("i");
50+
btnFirmwareRestartIcon.classList.add("fa", "fa-sync");
51+
btnFirmwareRestart.appendChild(btnFirmwareRestartIcon);
52+
53+
var btnFirmwareRestartText = document.createElement("span");
54+
btnFirmwareRestartText.textContent = " Firmware Restart";
55+
btnFirmwareRestart.appendChild(btnFirmwareRestartText);
56+
57+
container.appendChild(btnFirmwareRestart);
58+
59+
buttonContainer.after(container);
60+
};
61+
1062
self.webcams = ko.observableArray([]);
1163
self.webcamAvailable = ko.pureComputed(() => {
1264
return self.webcams().length > 0;
@@ -135,6 +187,8 @@ $(function () {
135187
function () {
136188
self.requestData();
137189
};
190+
191+
self.initializeButton();
138192
}
139193

140194
OCTOPRINT_VIEWMODELS.push({

0 commit comments

Comments
 (0)