From 82ed38d78ec7c6399cacfffd3b51a1eccaffb154 Mon Sep 17 00:00:00 2001 From: Felix Rabinovich Date: Thu, 25 Dec 2008 20:59:33 +0000 Subject: Ajaxify 'add users' --- core/libraries/Admin_View.php | 1 + modules/user/controllers/admin_users.php | 15 ++++++++++++--- modules/user/helpers/user_block.php | 5 +++++ modules/user/js/admin_users.js | 16 ++++++++++++++++ modules/user/views/admin_users.html.php | 4 ++-- themes/admin_default/views/admin.html.php | 2 ++ 6 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 modules/user/js/admin_users.js diff --git a/core/libraries/Admin_View.php b/core/libraries/Admin_View.php index 3255f04d..134db943 100644 --- a/core/libraries/Admin_View.php +++ b/core/libraries/Admin_View.php @@ -78,6 +78,7 @@ class Admin_View_Core extends View { case "admin_page_bottom": case "admin_page_top": case "admin_sidebar_blocks": + case "admin_head": $blocks = array(); foreach (module::installed() as $module) { $helper_class = "{$module->name}_block"; 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 = '
  • ' . $user->name . ' edit
    ' . + user::get_edit_form_admin($user) . '
    delete
    ' . + user::get_delete_form_admin($user, "admin/users/delete/{$user->id}") . + '
  • '; + 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 ""; + } + 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 @@

    User Administration

    These are the users in your system

    -