Add drag and drop support to the admin_users interface. This is still

a work in progress but it actually works mostly.
This commit is contained in:
Bharat Mediratta
2009-01-28 09:50:15 +00:00
parent 713c8e8ab3
commit 1a62a26a36
4 changed files with 95 additions and 26 deletions

View File

@@ -1,6 +1,47 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<script type="text/javascript">
var add_user_to_group_url = "<?= url::site("admin/users/add_user_to_group/__USERID__/__GROUPID__?csrf=" . access::csrf_token()) ?>";
$(document).ready(function(){
$("#gUserAdminList .core-info").draggable({
helper: "clone"
});
$("#gGroupAdmin .gGroup").droppable({
accept: ".core-info",
hoverClass: "gSelected",
drop: function(ev, ui) {
var user_id = $(ui.draggable).attr("id").replace("user-", "");
var group_id = $(this).attr("id").replace("group-", "");
$.get(add_user_to_group_url.replace("__USERID__", user_id).replace("__GROUPID__", group_id),
{},
function() {
reload_group(group_id);
});
}
});
$("#group-1").droppable("destroy");
$("#group-2").droppable("destroy");
});
var reload_group = function(group_id) {
var reload_group_url = "<?= url::site("admin/users/group/__GROUPID__") ?>";
$.get(reload_group_url.replace("__GROUPID__", group_id),
{},
function(data) {
$("#group-" + group_id).html(data);
});
}
var remove_user = function(user_id, group_id) {
var remove_user_url = "<?= url::site("admin/users/remove_user_from_group/__USERID__/__GROUPID__?csrf=" . access::csrf_token()) ?>";
$.get(remove_user_url.replace("__USERID__", user_id).replace("__GROUPID__", group_id),
{},
function() {
reload_group(group_id);
});
}
</script>
<div class="gBlock">
<a href="<?= url::site("admin/users/add_form") ?>"
<a href="<?= url::site("admin/users/add_user_form") ?>"
class="gDialogLink gButtonLink right"
title="<?= t("Create a new user") ?>">
+ <?= t("Add a new user") ?>
@@ -18,13 +59,15 @@
</li>
<? foreach ($users as $i => $user): ?>
<li class="<?= text::alternate("gOddRow", "gEvenRow") ?>">
<img src="<?= $user->avatar_url(20, $theme->url("images/avatar.jpg", true)) ?>"
title="<?= t("Drag user onto group below to add as a new member") ?>"
alt="<?= $user->name ?>"
width="20"
height="20" />
<strong><?= $user->name ?></strong>
<li class="<?= text::alternate("gOddRow", "gEvenRow") ?> user">
<div id="user-<?= $user->id ?>" class="core-info" style="display: inline">
<img src="<?= $user->avatar_url(20, $theme->url("images/avatar.jpg", true)) ?>"
title="<?= t("Drag user onto group below to add as a new member") ?>"
alt="<?= $user->name ?>"
width="20"
height="20" />
<strong><?= $user->name ?></strong>
</div>
(<?= $user->full_name ?>)
<span class="understate">
<?= ($user->last_login == 0) ? "" : date("m j, y", $user->last_login) ?>
@@ -43,7 +86,7 @@
<? endforeach ?>
</ul>
<p>
<a href="<?= url::site("admin/users/add_form") ?>"
<a href="<?= url::site("admin/users/add_user_form") ?>"
class="gDialogLink gButtonLink"
title="<?= t("Create a new user") ?>">
+ <?= t("Add a new user") ?>
@@ -66,16 +109,9 @@
<div class="gBlockContent">
<ul>
<? foreach ($groups as $i => $group): ?>
<li class="gGroup">
<strong><?= $group->name?></strong><br />
<ul>
<? foreach ($group->users as $i => $user): ?>
<li class="gUser">
<?= $user->name ?>
<a href="groups/remove_users/<?= $user->id ?>">X</a>
</li>
<? endforeach ?>
</ul>
<li id="group-<?= $group->id ?>" class="gGroup">
<? $v = new View("admin_users_group.html"); $v->group = $group; ?>
<?= $v ?>
</li>
<? endforeach ?>
</ul>