diff --git a/guacamole/src/main/webapp/scripts/admin-ui.js b/guacamole/src/main/webapp/scripts/admin-ui.js index e2c8653ec..f9d903f42 100644 --- a/guacamole/src/main/webapp/scripts/admin-ui.js +++ b/guacamole/src/main/webapp/scripts/admin-ui.js @@ -353,229 +353,6 @@ GuacAdmin.ListItem = function(type, title) { }; - -/** - * User management component. - * @constructor - */ -GuacAdmin.UserManager = function() { - - /** - * Reference to this UserManager. - */ - var user_manager = this; - - /** - * Container element for UserManager. - */ - var element = GuacUI.createElement("div", "user-list"); - - // Create connection display elements - var add_item = GuacUI.createChildElement(element, "div", "add-user"); - - GuacUI.createChildElement(add_item, "div", "icon user add"); - var name = GuacUI.createChildElement(add_item, "input", "name"); - name.setAttribute("type", "text"); - name.setAttribute("placeholder", "Add user"); - - var add_button = GuacUI.createChildElement(add_item, "button"); - add_button.textContent = "Add"; - - // If "Add" clicked, trigger onadd event - add_button.onclick = function() { - if (user_manager.onadd) { - - // Clear name if successful - if (user_manager.onadd(name.value)) - name.value = ""; - - } - }; - - /** - * The selected username. - */ - this.selected = null; - - /** - * Set of all user GuacAdmin.ListItems. - */ - this.items = {}; - - /** - * Returns the DOM element representing this UserManager. - */ - this.getElement = function() { - return element; - }; - - /** - * Adds the given username to the users visible within this UserManager. - */ - this.add = function(username) { - - // Create item - var item = new GuacAdmin.ListItem("user", username); - var item_element = item.getElement(); - - // Select on click - item_element.onclick = function() { - - // If nothing selected, select this item - if (!user_manager.selected) { - - // Change styling to reflect selected item - GuacUI.addClass(element, "disabled"); - GuacUI.addClass(item_element, "selected"); - - // Update selected item - user_manager.selected = username; - - // User property form. - var user_properties = new GuacAdmin.Form( - - /* Fields */ - [new GuacAdmin.Field.PASSWORD("Password:", [], - ["f12a1930-7195-11e2-bcfd-0800200c9a66"]), - - new GuacAdmin.Field.PASSWORD("Re-enter Password:", [], - ["f12a1930-7195-11e2-bcfd-0800200c9a66"]), - - new GuacAdmin.Field.LIST("Connections:", - ["A", "B", "C"], - ["A"])], - - /* Buttons */ - [new GuacAdmin.Button("Save"), - new GuacAdmin.Button("Cancel"), - new GuacAdmin.Button("Delete")] - - ); - - // Set up events - user_properties.onaction = function(title, fields) { - - // Call removal handler, keep window up if not allowed. - if (title == "Delete") { - if (user_manager.onremove) { - if (!user_manager.onremove(user_manager.selected)) - return; - } - else - return; - } - - // Call save handler, keep window up if not allowed. - if (title == "Save") { - - if (user_manager.onsave) { - - // FIXME: Validate passwords match - var password = fields[0][0]; - var connections = fields[2]; - - if (!user_manager.onsave(user_manager.selected, password, connections)) - return; - } - else - return; - - } - - // Hide - user_manager.selected = null; - item_element.removeChild(user_properties.getElement()); - GuacUI.removeClass(element, "disabled"); - GuacUI.removeClass(item_element, "selected"); - - }; - - // Display properties - item_element.appendChild(user_properties.getElement()); - - } - - }; - - // Append item - element.appendChild(item_element); - user_manager.items[username] = item; - - }; - - /** - * Removes the given username from the users visible within this UserManager. - */ - this.remove = function(username) { - - // If user exists, remove corresponding element and item entry - var item = user_manager.items[username]; - if (item) { - element.removeChild(item.getElement()); - delete user_manager.items[username]; - } - - }; - - /** - * Removes all visible usernames. - */ - this.clear = function() { - - // Remove all elements - for (var item in user_manager.items) - element.removeChild(user_manager.items[item].getElement()); - - // Remove all items - user_manager.items = {}; - - }; - - /** - * Sets all visible usernames. - * - * @param {String[]} users Array of usernames to add. - */ - this.setUsers = function(users) { - - // Clear all users - user_manager.clear(); - - // Add given users - for (var i=0; i