diff --git a/guacamole/src/main/webapp/scripts/admin-ui.js b/guacamole/src/main/webapp/scripts/admin-ui.js index 253b8a5c5..f14863ddb 100644 --- a/guacamole/src/main/webapp/scripts/admin-ui.js +++ b/guacamole/src/main/webapp/scripts/admin-ui.js @@ -169,7 +169,41 @@ GuacAdmin.Field.CHECKBOX = function(value) { }; -GuacAdmin.Field._HTML_INPUT.prototype = new GuacAdmin.Field(); +GuacAdmin.Field.CHECKBOX.prototype = new GuacAdmin.Field(); + +/** + * Enumerated field type. + * + * @augments GuacAdmin.Field + */ +GuacAdmin.Field.ENUM = function(values) { + + // Call parent constructor + GuacAdmin.Field.apply(this); + + // Create backing element + var element = GuacUI.createElement("select"); + for (var name in values) { + var option = GuacUI.createChildElement(element, "option"); + option.textContent = values[name]; + option.value = name; + } + + this.getValue = function() { + return element.value; + }; + + this.getElement = function() { + return element; + }; + + this.setValue = function(value) { + element.value = value; + }; + +}; + +GuacAdmin.Field.ENUM.prototype = new GuacAdmin.Field(); /** @@ -539,6 +573,10 @@ GuacAdmin.addConnection = function(connection) { field = new GuacAdmin.Field.CHECKBOX(parameter.value); break; + case "enum": + field = new GuacAdmin.Field.ENUM(parameter.options); + break; + default: continue;