diff --git a/src/octoprint/static/js/app/viewmodels/control.js b/src/octoprint/static/js/app/viewmodels/control.js
index 6ad7f4cf..7437a8eb 100644
--- a/src/octoprint/static/js/app/viewmodels/control.js
+++ b/src/octoprint/static/js/app/viewmodels/control.js
@@ -138,8 +138,8 @@ $(function() {
return control;
}
- if (control.hasOwnProperty("template") && control.hasOwnProperty("key") && control.hasOwnProperty("template_key") && !control.hasOwnProperty("output")) {
- control.output = ko.observable("");
+ if (control.hasOwnProperty("template") && control.hasOwnProperty("key") && control.hasOwnProperty("deflt") && control.hasOwnProperty("template_key") && !control.hasOwnProperty("output")) {
+ control.output = ko.observable(control.deflt);
if (!self.feedbackControlLookup.hasOwnProperty(control.key)) {
self.feedbackControlLookup[control.key] = {};
}
@@ -151,6 +151,9 @@ $(function() {
if (!control.hasOwnProperty("layout") || !(control.layout == "vertical" || control.layout == "horizontal" || control.layout == "horizontal_grid")) {
control.layout = "vertical";
}
+
+ if (!control.hasOwnProperty("collapsable"))
+ control.collapsable = false;
}
if (control.hasOwnProperty("input")) {
@@ -340,7 +343,7 @@ $(function() {
self.displayMode = function (customControl) {
if (customControl.hasOwnProperty("children")) {
- return "customControls_containerTemplate";
+ return (customControl.hasOwnProperty("name") && customControl.name != "") ? "customControls_containerTemplate_accordion" : "customControls_containerTemplate";
} else {
return "customControls_controlTemplate";
}
diff --git a/src/octoprint/templates/tabs/control.jinja2 b/src/octoprint/templates/tabs/control.jinja2
index 04a523f8..7df1c489 100644
--- a/src/octoprint/templates/tabs/control.jinja2
+++ b/src/octoprint/templates/tabs/control.jinja2
@@ -107,20 +107,16 @@
+