#268: Add "add" buttons to UI.

This commit is contained in:
Michael Jumper
2013-02-10 04:37:28 -08:00
parent 33c4e82f9b
commit 2d03153b8e
2 changed files with 73 additions and 47 deletions

View File

@@ -33,8 +33,8 @@
<h1>Administration</h1> <h1>Administration</h1>
<h2>Users</h2> <h2 class="require-manage-users">Users</h2>
<div class="settings section" id="users"> <div class="settings section require-manage-users" id="users">
<p> <p>
Click or tap on a user below to manage that user. Depending Click or tap on a user below to manage that user. Depending
@@ -48,10 +48,14 @@
</div> </div>
--> -->
<div id="user-add-form">
<div class="icon user add"/><input type="text" class="name" id="username" placeholder="Add user"/><button id="add-user">Add</button>
</div>
</div> </div>
<h2>Connections</h2> <h2 class="require-manage-connections">Connections</h2>
<div class="settings section" id="connections"> <div class="settings section require-manage-connections" id="connections">
<p> <p>
Click or tap on a connection below to manage that connection. Click or tap on a connection below to manage that connection.
@@ -60,11 +64,9 @@
can be changed. can be changed.
</p> </p>
<!-- <div id="connection-add-form">
<div class="connection"> <div class="icon connection add"/><select id="protocol"><option value="vnc">VNC</option><option value="rdp">RDP</option></select><input type="text" id="connection-id" class="name" placeholder="Add connection"/><button id="add-connection">Add</button>
<div class="caption"><div class="protocol"><div class="icon add"/></div><span class="name"><input style="width: 20em; padding: 0.25em" type="text" placeholder="Add connection"/></span></div>
</div> </div>
-->
</div> </div>
@@ -80,51 +82,57 @@
<script type="text/javascript"><![CDATA[ <script type="text/javascript"><![CDATA[
var users = document.getElementById("users"); function hasEntry(object) {
for (var name in object)
var user_manager = new GuacAdmin.UserManager(); return true;
users.appendChild(user_manager.getElement()); return false;
function updateUsers() {
var user_list = GuacamoleService.Users.list();
user_manager.setUsers(user_list);
} }
user_manager.onsave = function(id, password, connections) { var connections = document.getElementById("connections");
updateUsers(); var users = document.getElementById("users");
console.log(id, password, connections);
return true;
};
user_manager.onadd = function(username) { // Show admin elements if admin permissions available
var permissions = GuacamoleService.Permissions.list();
try { if (permissions.create_connection
GuacamoleService.Users.create(username); || hasEntry(permissions.update_connection)
updateUsers(); || hasEntry(permissions.remove_connection)
return true; || hasEntry(permissions.administer_connection))
} GuacUI.addClass(document.body, "manage-connections");
catch (e) {
alert("User \"" + username + "\" cannot be created: " + e.message);
return false;
}
}; if (permissions.create_user
|| hasEntry(permissions.update_user)
|| hasEntry(permissions.remove_user)
|| hasEntry(permissions.administer_user))
GuacUI.addClass(document.body, "manage-users");
user_manager.onremove = function(username) { // Connection creation
if (permissions.create_connection) {
GuacUI.addClass(document.body, "add-connections");
try { var add_connection = document.getElementById("add-connection");
GuacamoleService.Users.remove(username); var connection_id = document.getElementById("connection-id");
updateUsers(); var protocol = document.getElementById("protocol");
return true;
}
catch (e) {
alert("User \"" + username + "\" cannot be deleted: " + e.message);
return false;
}
}; add_connection.onclick = function() {
var connection = new GuacamoleService.Connection(
protocol.value, connection_id.value);
GuacamoleService.Connections.create(connection);
};
updateUsers(); }
// User creation
if (permissions.create_user) {
GuacUI.addClass(document.body, "add-users");
var add_user = document.getElementById("add-user");
var username = document.getElementById("username");
add_user.onclick = function() {
GuacamoleService.Users.create(username.value);
};
}
]]></script> ]]></script>

View File

@@ -325,10 +325,28 @@ div.section {
font-size: 0.75em; font-size: 0.75em;
} }
.user-list input.name { #connections input.name,
#users input.name {
max-width: 20em; max-width: 20em;
} }
.user-list .add-user button { #connections #add-connection,
#users #add-user {
font-size: 0.8em; font-size: 0.8em;
} }
body:not(.manage-connections) .require-manage-connections {
display: none;
}
body:not(.manage-users) .require-manage-users {
display: none;
}
body:not(.add-connections) #connection-add-form {
display: none;
}
body:not(.add-users) #user-add-form {
display: none;
}