From f942c3c1614cf2607e19fdc8ab26b8707f4cf0ba Mon Sep 17 00:00:00 2001
From: Michael Jumper
Date: Wed, 13 Feb 2013 13:37:00 -0800
Subject: [PATCH] Ticket #268: More style improvements, removing use of
GuacAdmin.Form. UI currently broken in transition.
---
guacamole/src/main/webapp/admin.xhtml | 2 +-
guacamole/src/main/webapp/scripts/admin-ui.js | 154 ++++++++++--------
guacamole/src/main/webapp/scripts/guac-ui.js | 17 ++
guacamole/src/main/webapp/scripts/service.js | 52 ++++++
guacamole/src/main/webapp/styles/ui.css | 9 +-
5 files changed, 165 insertions(+), 69 deletions(-)
diff --git a/guacamole/src/main/webapp/admin.xhtml b/guacamole/src/main/webapp/admin.xhtml
index 32c5d3e81..164959bad 100644
--- a/guacamole/src/main/webapp/admin.xhtml
+++ b/guacamole/src/main/webapp/admin.xhtml
@@ -68,7 +68,7 @@
diff --git a/guacamole/src/main/webapp/scripts/admin-ui.js b/guacamole/src/main/webapp/scripts/admin-ui.js
index f9d903f42..456e117f3 100644
--- a/guacamole/src/main/webapp/scripts/admin-ui.js
+++ b/guacamole/src/main/webapp/scripts/admin-ui.js
@@ -387,6 +387,9 @@ GuacAdmin.reset = function() {
// Get permissions
var permissions = GuacamoleService.Permissions.list();
+ // Get protocols
+ var protocols = GuacamoleService.Protocols.list();
+
// Connection management
if (permissions.create_connection
|| GuacAdmin.hasEntry(permissions.update_connection)
@@ -462,10 +465,12 @@ GuacAdmin.reset = function() {
GuacAdmin.lists.user_list.innerHTML = "";
for (name in permissions.read_user) {(function(name){
+ // Create user list item
var item = new GuacAdmin.ListItem("user", name);
var item_element = item.getElement();
GuacAdmin.lists.user_list.appendChild(item_element);
+ // When clicked, build and display property form
item_element.onclick = function() {
// Ignore clicks if any item is selected
@@ -475,87 +480,104 @@ GuacAdmin.reset = function() {
// Get user permissions
var user_perms = GuacamoleService.Permissions.list(name);
- // Load buttons
- var buttons = [new GuacAdmin.Button("Save"),
- new GuacAdmin.Button("Cancel")];
+ // Create form base elements
+ var form_element = GuacUI.createElement("div", "form");
+ var field_table = GuacUI.createChildElement(form_element, "table", "fields");
+ var button_div = GuacUI.createChildElement(form_element, "div", "object-buttons");
- if (name in permissions.remove_user)
- buttons.push(new GuacAdmin.Button("Delete"));
-
- // 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:",
- Object.keys(permissions.administer_connection),
- Object.keys(user_perms.read_connection))],
-
- /* Buttons */
- buttons
-
- );
+ // Deselect
+ function deselect() {
+ GuacUI.removeClass(GuacAdmin.lists.user_list, "disabled");
+ GuacUI.removeClass(item_element, "selected");
+ item_element.removeChild(form_element);
+ selected_user = null;
+ }
// Select
- GuacUI.addClass(GuacAdmin.lists.user_list, "disabled");
- GuacUI.addClass(item_element, "selected");
+ function select() {
+ GuacUI.addClass(GuacAdmin.lists.user_list, "disabled");
+ GuacUI.addClass(item_element, "selected");
+ item_element.appendChild(form_element);
+ }
- // Handle buttons
- user_properties.onaction = function(title, fields) {
+ // Add password field
+ var password_field = GuacUI.createChildElement(
+ GuacUI.createTabulatedContainer(field_table, "Password:"),
+ "input");
+ password_field.setAttribute("type", "password");
+ password_field.setAttribute("value", "password");
- try {
+ // 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");
- if (title == "Save") {
+ // Add save button
+ var save_button = GuacUI.createChildElement(button_div, "button");
+ save_button.textContent = "Save";
+ save_button.onclick = function(e) {
- // Get passwords
- var password = fields[0][0];
- var reentered_password = fields[1][0];
+ e.stopPropagation();
- // Check that passwords match
- if (password != reentered_password)
- throw new Error("Passwords do not match.");
+ // Get passwords
+ var password = undefined; /* STUB */
+ var reentered_password = undefined; /* STUB */
- // Do not update password if it's just the
- // not-changed token
- if (password == "f12a1930-7195-11e2-bcfd-0800200c9a66")
- password = null;
+ // Check that passwords match
+ if (password != reentered_password)
+ throw new Error("Passwords do not match.");
- // Set user permissions
- user_perms.read_connection = {};
- var connections = fields[2];
- for (var i=0; i