diff options
| author | Bharat Mediratta <bharat@menalto.com> | 2009-01-28 09:50:15 +0000 |
|---|---|---|
| committer | Bharat Mediratta <bharat@menalto.com> | 2009-01-28 09:50:15 +0000 |
| commit | 1a62a26a369fbb56c46e3fc9bae64084adbd8326 (patch) | |
| tree | fd1033cd62c9c7110ab911a6593fe162af9c6f6b /modules/user/views | |
| parent | 713c8e8ab3884b261376f2e720720b747a63bb3f (diff) | |
Add drag and drop support to the admin_users interface. This is still
a work in progress but it actually works mostly.
Diffstat (limited to 'modules/user/views')
| -rw-r--r-- | modules/user/views/admin_users.html.php | 74 | ||||
| -rw-r--r-- | modules/user/views/admin_users_group.html.php | 11 |
2 files changed, 66 insertions, 19 deletions
diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index 3eb03044..57e0864f 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -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> diff --git a/modules/user/views/admin_users_group.html.php b/modules/user/views/admin_users_group.html.php new file mode 100644 index 00000000..1d6c127d --- /dev/null +++ b/modules/user/views/admin_users_group.html.php @@ -0,0 +1,11 @@ +<strong><?= $group->name?></strong> +<ul> + <? foreach ($group->users as $i => $user): ?> + <li class="gUser"> + <?= $user->name ?> + <? if (!$group->special): ?> + <a href="javascript:remove_user(<?= $user->id ?>, <?= $group->id ?>)">X</a> + <? endif ?> + </li> + <? endforeach ?> +</ul> |
