From 0c94ba29071102bcbf608ee3c076d994c313482f Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 13 Aug 2013 12:30:03 -0700 Subject: [PATCH] Partially migrate to GuacUI.Dialog for user editing (via new GuacAdmin.UserEditor). Modify styles to support GuacUI.Dialog. --- guacamole/src/main/webapp/scripts/admin-ui.js | 614 +++++++++--------- guacamole/src/main/webapp/styles/ui.css | 77 ++- 2 files changed, 359 insertions(+), 332 deletions(-) diff --git a/guacamole/src/main/webapp/scripts/admin-ui.js b/guacamole/src/main/webapp/scripts/admin-ui.js index 79df4a084..c144a234b 100644 --- a/guacamole/src/main/webapp/scripts/admin-ui.js +++ b/guacamole/src/main/webapp/scripts/admin-ui.js @@ -26,7 +26,6 @@ var GuacAdmin = { "connection_list" : document.getElementById("connection-list"), "user_list" : document.getElementById("user-list"), "user_list_buttons" : document.getElementById("user-list-buttons"), - "connection_list_buttons" : document.getElementById("connection-list-buttons") }, "buttons" : { @@ -43,7 +42,7 @@ var GuacAdmin = { "cached_permissions" : null, "cached_protocols" : null, - "cached_connections" : null, + "cached_root_group" : null, "selected_user" : null, "selected_connection" : null @@ -362,299 +361,305 @@ GuacAdmin.addUser = function(name, parameters) { if (GuacAdmin.selected_user) return; else GuacAdmin.selected_user = name; - // Get user permissions - var user_perms = GuacamoleService.Permissions.list(name, parameters); - - // Permission deltas - var added_perms = new GuacamoleService.PermissionSet(); - var removed_perms = new GuacamoleService.PermissionSet(); - - // Create form base elements - var form_element = GuacUI.createElement("div", "form"); - var user_header = GuacUI.createChildElement(form_element, "h2"); - var sections = GuacUI.createChildElement( - GuacUI.createChildElement(form_element, "div", "settings section"), - "dl"); - - var field_header = GuacUI.createChildElement(sections, "dt"); - var field_table = GuacUI.createChildElement( - GuacUI.createChildElement(sections, "dd"), - "table", "fields section"); - - user_header.textContent = name; - field_header.textContent = "Properties:"; - - // Deselect - function deselect() { - GuacUI.removeClass(GuacAdmin.containers.user_list, "disabled"); - GuacUI.removeClass(item_element, "selected"); - item_element.removeChild(form_element); - GuacAdmin.selected_user = null; - } - - // Select - function select() { - GuacUI.addClass(GuacAdmin.containers.user_list, "disabled"); - GuacUI.addClass(item_element, "selected"); - item_element.appendChild(form_element); - } - - // Add password field - var password_field = GuacUI.createChildElement( - GuacUI.createTabulatedContainer(field_table, "Password:"), - "input"); - password_field.setAttribute("type", "password"); - password_field.setAttribute("value", "password"); - - // Add password re-entry field - var reenter_password_field = GuacUI.createChildElement( - GuacUI.createTabulatedContainer(field_table, "Re-enter Password:"), - "input"); - reenter_password_field.setAttribute("type", "password"); - reenter_password_field.setAttribute("value", "password"); - - // Update password if changed - var password_modified = false; - password_field.onchange = - reenter_password_field.onchange = function() { - password_modified = true; - }; - - // If administrator, allow manipulation of admin permissions on users - if (GuacAdmin.cached_permissions.administer) { - - var permission_header = GuacUI.createChildElement(sections, "dt"); - var permission_table = GuacUI.createChildElement( - GuacUI.createChildElement(sections, "dd"), - "table", "permissions section"); - - permission_header.textContent = "Permissions:"; - - // Add system administration checkbox - var is_admin = GuacUI.createChildElement( - GuacUI.createTabulatedContainer(permission_table, "Administer system:"), - "input"); - is_admin.setAttribute("type", "checkbox"); - is_admin.setAttribute("value", "administer"); - - // Check if set - if (user_perms.administer) - is_admin.checked = true; - - // Add create user permission checkbox - var create_users = GuacUI.createChildElement( - GuacUI.createTabulatedContainer(permission_table, "Create new users:"), - "input"); - create_users.setAttribute("type", "checkbox"); - create_users.setAttribute("value", "create_user"); - - // Check if set - if (user_perms.create_user) - create_users.checked = true; - - // Add create connection permission checkbox - var create_connections = GuacUI.createChildElement( - GuacUI.createTabulatedContainer(permission_table, "Create new connections:"), - "input"); - create_connections.setAttribute("type", "checkbox"); - create_connections.setAttribute("value", "create_connection"); - - // Check if set - if (user_perms.create_connection) - create_connections.checked = true; - - // Update system permissions when changed - is_admin.onclick = create_users.onclick = - create_connections.onclick = function() { - - // Update permission deltas for ADDED permission - if (this.checked) { - added_perms[this.value] = true; - removed_perms[this.value] = false; - } - - // Update permission deltas for REMOVED permission - else { - added_perms[this.value] = false; - removed_perms[this.value] = true; - } - - } - - } - - // If readable connections exist, list them - if (GuacAdmin.cached_permissions.administer || - GuacAdmin.hasEntry(GuacAdmin.cached_permissions.administer_connection)) { - - // Add fields for per-connection checkboxes - var connections_header = GuacUI.createChildElement(sections, "dt"); - connections_header.textContent = "Connections:"; - - var connections_section = GuacUI.createChildElement(sections, "dd"); - - // Actual paged connections list - var connections = GuacUI.createChildElement( - connections_section, "div", "list"); - - // Button div - var connections_buttons = GuacUI.createChildElement( - connections_section, "div", "list-pager-buttons"); - - // Create pager which populates list - var connections_pager = new GuacUI.Pager(connections); - - // Add connections to pager - var available_connections = GuacAdmin.cached_connections; - for (var i=0; i * { + margin: 1em; +} + +.dialog .header { + + margin: 0; + + border-top: 1px solid #AAA; + border-bottom: 1px solid #AAA; + background: rgba(0, 0, 0, 0.07); + +} + +.dialog .header h2 { + + padding: 0.5em; + margin: 0; + font-size: 1.5em; + + font-weight: lighter; + text-shadow: 1px 1px white; + +} + /* * List elements */ @@ -220,6 +265,7 @@ div.section { * List element fields (editing) */ +/* .form { position: absolute; @@ -240,6 +286,7 @@ div.section { box-shadow: 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.6); } +*/ .form .fields th, .form .permissions th {