diff options
author | Felix Rabinovich <virshu@users.sourceforge.net> | 2008-12-25 20:59:33 +0000 |
---|---|---|
committer | Felix Rabinovich <virshu@users.sourceforge.net> | 2008-12-25 20:59:33 +0000 |
commit | 82ed38d78ec7c6399cacfffd3b51a1eccaffb154 (patch) | |
tree | e2ec446e5f6d58ee4fcaa17ab9f0773e359f15a8 /modules/user | |
parent | 9ebced112b3f155df320a730a1f7063d882ea22b (diff) |
Ajaxify 'add users'
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/controllers/admin_users.php | 15 | ||||
-rw-r--r-- | modules/user/helpers/user_block.php | 5 | ||||
-rw-r--r-- | modules/user/js/admin_users.js | 16 | ||||
-rw-r--r-- | modules/user/views/admin_users.html.php | 4 |
4 files changed, 35 insertions, 5 deletions
diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php index 8bf70f77..8aac0695 100644 --- a/modules/user/controllers/admin_users.php +++ b/modules/user/controllers/admin_users.php @@ -27,6 +27,7 @@ class Admin_Users_Controller extends Controller { } public function create() { + rest::http_content_type(rest::JSON); $form = user::get_add_form_admin(); if ($form->validate()) { $user = user::create($form->add_user->inputs["name"]->value, @@ -35,10 +36,18 @@ class Admin_Users_Controller extends Controller { $user->save(); log::add("user", sprintf(_("Created user %s"), $user->name)); message::add(sprintf(_("Created user %s"), $user->name)); - url::redirect("admin/users"); + $output = '<li>' . $user->name . ' <a href="#">edit</a><div>' . + user::get_edit_form_admin($user) . '</div><a href="#">delete</a><div>' . + user::get_delete_form_admin($user, "admin/users/delete/{$user->id}") . + '</div></li>'; + print json_encode( + array("result" => "success", "operation" => "create", + "output" => $output)); + } else { + print json_encode( + array("result" => "error", + "form" => $form->__toString())); } - - print $form; } public function delete($id) { diff --git a/modules/user/helpers/user_block.php b/modules/user/helpers/user_block.php index 5e406fef..c3ea3bdf 100644 --- a/modules/user/helpers/user_block.php +++ b/modules/user/helpers/user_block.php @@ -27,6 +27,11 @@ class user_block_Core { } } + public static function admin_head($theme) { + $url = url::file("modules/user/js/admin_users.js"); + return "<script src=\"$url\" type=\"text/javascript\"></script>"; + } + public static function header_top($theme) { $view = new View("login.html"); $view->user = user::active(); diff --git a/modules/user/js/admin_users.js b/modules/user/js/admin_users.js new file mode 100644 index 00000000..678445f7 --- /dev/null +++ b/modules/user/js/admin_users.js @@ -0,0 +1,16 @@ +$("document").ready(function() { + ajaxify_admin_users_form(); +}); + +function ajaxify_admin_users_form() { + $("#gAddUser form").ajaxForm({ + dataType: "json", + success: function(data) { + if (data.result == "success") { + $(data.output).insertBefore("#gUsers li:last-child"); + $('.ui-accordion-container').accordion(); + $("#gUser li:last-child form").clearForm(); + } + } + }); +}; diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index 96a734ee..5a9e44e6 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -3,7 +3,7 @@ <h2>User Administration</h2> <div class="gBlockContent"> <p>These are the users in your system</p> - <ul class="ui-accordion-container"> + <ul class="ui-accordion-container" id="gUsers"> <? foreach ($users as $i => $user): ?> <li> <?= $user->name ?> @@ -21,7 +21,7 @@ </li> <? endforeach ?> <li><a href="#">Add user</a> - <div> + <div id="gAddUser"> <?= user::get_add_form_admin(); ?> </div> </li> |