// Vars we need
var uid = "";
var gid = "";
+ var togglepassword = "";
+ var togglegroup = "";
+
+ //#########################################################################
+ // Stuff I don't understand
+ //#########################################################################
+
+ function doToggleGroup( group ){
+ $("#changegroupgid").val(group);
+
+ // Serialize the data
+ var post = $( "#changegroupsform" ).serialize();
+ // Ajax foo
+ $.post( 'ajax/togglegroups.php', post, function(data){
+ if( data.status == "success" ){
+ var groups = [];
+ $("input[x-use='togglegroup']").each( function(index){
+ if( $(this).attr("checked")){
+ groups.push($(this).val());
+ }
+ });
+ $("#changegroups").prev().html( groups.join(", "));
+ }
+ else{
+ alert( "something went wrong! sorry!" );
+ }
+ });
+ return false;
+ }
//#########################################################################
// Functions for editing the dom after user manipulation
// Manipulating the page after crteating a user
function userCreated( username, groups ){
// Add user to table
- var newrow = '<tr><td>'+username+'</td>';
- newrow = newrow+'<td>'+groups+'</td>';
- newrow = newrow+'<td x-uid="'+username+'"><a href="" class="edituserbutton">edit</a> | <a class="removeuserbutton" href="">remove</a></td></tr>';
+ var newrow = '<tr x-uid="'+username+'"><td x-use="username"><span x-use="usernamespan">'+username+'</span></td>';
+ newrow = newrow+'<td x-use="usergroups">'+groups+'</td>';
+ newrow = newrow+'<td><a href="" class="edituserbutton">edit</a> | <a class="removeuserbutton" href="">remove</a></td></tr>';
$("#usertable").append( newrow );
// Clear forms
$("input[x-use='createusercheckbox']").attr( "checked", false );
}
- // Manipulating the page after crteating a user
- function userEdited( username, groups ){
- // Edit table
- var newrow = '<tr><td>'+username+'</td>';
- newrow = newrow+'<td>'+groups+'</td>';
- newrow = newrow+'<td x-uid="'+username+'"><a href="" class="edituserbutton">edit</a> | <a class="removeuserbutton" href="">remove</a></td></tr>';
- $("td[x-uid='"+username+"']").replace( newrow );
- }
-
function userRemoved( username ){
- $( "td[x-uid='"+username+"']" ).parent().remove();
+ $( "tr[x-uid='"+username+"']" ).remove();
}
function groupCreated( groupname ){
- var newrow = '<tr><td x-gid="'+groupname+'">' + groupname + '</td>';
+ var newrow = '<tr x-gid="'+groupname+'"><td>' + groupname + '</td>';
newrow = newrow + '<td><a class="removegroupbutton" href="">remove</a></td></tr>';
$("#grouptable").append( newrow );
$("input[x-use='creategroupfield']").val( "" );
// Add group option to Create User and Edit User
- createuser = '<input x-gid="'+groupname+'" type="checkbox" name="groups[]" value="'+groupname+'" /><span x-gid="'+groupname+'">'+groupname+'<br /></span>';
+ var createuser = '<input x-gid="'+groupname+'" type="checkbox" name="groups[]" value="'+groupname+'" /><span x-gid="'+groupname+'">'+groupname+'<br /></span>';
$("#createusergroups").append( createuser );
- $("#editusergroups").append( createuser );
+ var changeuser = '<input x-use="togglegroup" x-gid="'+groupname+'" type="checkbox" name="groups[]" value="'+groupname+'" /><span x-use="togglegroup" x-gid="'+groupname+'">'+groupname+'<br /></span>';
+ $("#changegroupsform").append( changeuser );
}
function groupRemoved( groupname ){
// Delete the options
- $( "td[x-gid='"+groupname+"']" ).parent().remove();
+ $( "tr[x-gid='"+groupname+"']" ).remove();
$( "span[x-gid='"+groupname+"']" ).remove();
$( "input[x-gid='"+groupname+"']" ).remove();
}
+ //#########################################################################
+ // Editing the users properties by clicking the cell
+ //#########################################################################
+
+ // Password (clicking on user name)
+ $("span[x-use='usernamespan']").live( "click", function(){
+ if( togglepassword == "" || $(this).parent().parent().attr("x-uid") != togglepassword ){
+ togglepassword = $(this).parent().parent().attr("x-uid");
+ // Set the username!
+ $("#changepassworduid").val(togglepassword);
+ $("#changepasswordpwd").val("");
+ $(this).parent().append( $('#changepassword') );
+ $('#changepassword').show();
+ }
+ else{
+ $('#changepassword').hide();
+ togglepassword = "";
+ }
+ });
+
+ $("#changepasswordbutton").click( function(){
+ // Serialize the data
+ var post = $( "#changepasswordform" ).serialize();
+ // Ajax foo
+ $.post( 'ajax/changepassword.php', post, function(data){
+ if( data.status == "success" ){
+ togglepassword = "";
+ $('#changepassword').hide();
+ }
+ else{
+ alert( "something went wrong! sorry!" );
+ }
+ });
+ return false;
+ });
+
+ // Groups
+ $("span[x-use='usergroupsspan']").live( "click", function(){
+ if( togglegroup == "" || $(this).parent().parent().attr("x-uid") != togglegroup){
+ togglegroup = $(this).parent().parent().attr("x-uid");
+ var groups = $(this).text();
+ groups = groups.split(", ");
+ $("input[x-use='togglegroup']").each( function(index){
+ var check = false;
+ // Group checked?
+ for( var i = 0; i < groups.length; i++ ){
+ if( $(this).val() == groups[i] ){
+ check = true;
+ }
+ }
+
+ // Check/uncheck
+ if( check ){
+ $(this).attr("checked","checked");
+ }
+ else{
+ $(this).removeAttr("checked");
+ }
+ });
+ $("#changegroupuid").val(togglegroup);
+ $(this).parent().append( $('#changegroups') );
+ $('#changegroups').show();
+ }
+ else{
+ var groups = [];
+ $("input[x-use='togglegroup']").each( function(index){
+ if( $(this).attr("checked")){
+ groups.push($(this).val());
+ }
+ });
+ $(this).html( groups.join(", "));
+ $('#changegroups').hide();
+ togglegroup = "";
+ }
+ });
+
+ $("span[x-use='togglegroup']").live( "click", function(){
+ if( $(this).prev().attr("checked")){
+ $(this).prev().removeAttr("checked")
+ }
+ else{
+ $(this).prev().attr("checked","checked")
+ }
+ doToggleGroup( $(this).attr("x-gid"));
+ });
+
+ $("input[x-use='togglegroup']").live( "click", function(){
+ doToggleGroup( $(this).attr("x-gid"));
+ });
//#########################################################################
// Clicking on buttons
//#########################################################################
return false;
});
- $( ".edituserbutton" ).live( 'click', function(){
- uid = $( this ).parent().attr( 'x-uid' );
- $("#edituserusername").html(uid);
- $("#edituserform").dialog("open");
- return false;
- });
-
$( ".removeuserbutton" ).live( 'click', function() {
- uid = $( this ).parent().attr( 'x-uid' );
+ uid = $( this ).parent().parent().attr( 'x-uid' );
$("#deleteuserusername").html(uid);
$("#deleteusernamefield").val(uid);
$("#removeuserform").dialog( "open" );
});
$( ".removegroupbutton" ).live( 'click', function(){
- gid = $( this ).parent().attr( 'x-gid' );
+ gid = $( this ).parent().parent().attr( 'x-gid' );
$("#removegroupgroupname").html(gid);
$("#removegroupnamefield").val(gid);
$("#removegroupform").dialog( "open" );
// Dialogs
//#########################################################################
- // Edit user dialog
- $( "#edituserform" ).dialog({
- autoOpen: false,
- height: 500,
- width: 500,
- modal: true,
- buttons: {
- "Edit user": function() {
- $( this ).dialog( "close" );
- },
- Cancel: function() {
- $( this ).dialog( "close" );
- }
- },
- close: function() {
- true;
- }
- });
-
// Removing users
$( "#removeuserform" ).dialog({
autoOpen: false,
</tfoot>
<tbody>
<?php foreach($_["users"] as $user): ?>
- <tr>
- <td><?php echo $user["name"]; ?></td>
- <td x-use="usergroups"><?php echo $user["groups"]; ?></td>
- <td x-uid="<?php echo $user["name"] ?>"><a href="" class="edituserbutton">edit</a> | <a class="removeuserbutton" href="">remove</a></td>
+ <tr x-uid="<?php echo $user["name"] ?>">
+ <td x-use="username"><span x-use="usernamespan"><?php echo $user["name"]; ?></span></td>
+ <td x-use="usergroups"><span x-use="usergroupsspan"><?php echo $user["groups"]; ?></span></td>
+ <td><a class="removeuserbutton" href="">remove</a></td>
</tr>
<?php endforeach; ?>
</tbody>
</tfoot>
<tbody>
<?php foreach($_["groups"] as $group): ?>
- <tr>
+ <tr x-gid="<?php echo $group["name"]; ?>">
<td><?php echo $group["name"] ?></td>
- <td x-gid="<?php echo $group["name"]; ?>"><a class="removegroupbutton" href="">remove</a></td>
+ <td><a class="removegroupbutton" href="">remove</a></td>
</tr>
<?php endforeach; ?>
</tbody>
-<div id="edituserform" title="Force new password">
- <form id="edituserdata">
- <span id="edituserusername">$user</span><br>
- <fieldset>
- New password:
- <input type="password" name="password" value="" />
- </fieldset>
- <input type="hidden" name="username" value="" />
- <fieldset id="editusergroups">
- <?php foreach($_["groups"] as $i): ?>
- <input x-gid="<? echo $i["name"]; ?>" type="checkbox" name="groups[]" value="<? echo $i["name"]; ?>" />
- <span x-gid="<? echo $i["name"]; ?>"><? echo $i["name"]; ?><br></span>
- <?php endforeach; ?>
- </fieldset>
+<div id="changegroups" style="display:none">
+ <form id="changegroupsform">
+ <input id="changegroupuid" type="hidden" name="username" value="" />
+ <input id="changegroupgid" type="hidden" name="group" value="" />
+ <?php foreach($_["groups"] as $i): ?>
+ <input x-use="togglegroup" x-gid="<? echo $i["name"]; ?>" type="checkbox" name="groups[]" value="<? echo $i["name"]; ?>" />
+ <span x-use="togglegroup" x-gid="<? echo $i["name"]; ?>"><? echo $i["name"]; ?><br></span>
+ <?php endforeach; ?>
+ </form>
+</div>
+
+<div id="changepassword" style="display:none">
+ <form id="changepasswordform">
+ <input id="changepassworduid" type="hidden" name="username" value="" />
+ Force new password:
+ <input id="changepasswordpwd" type="password" name="password" value="" />
+ <button id="changepasswordbutton">Set</button>
</form>
</div>