diff options
-rw-r--r-- | core/libraries/Admin_View.php | 1 | ||||
-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 | ||||
-rw-r--r-- | themes/admin_default/views/admin.html.php | 2 |
6 files changed, 38 insertions, 5 deletions
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 = '<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> diff --git a/themes/admin_default/views/admin.html.php b/themes/admin_default/views/admin.html.php index bae717c4..39025e32 100644 --- a/themes/admin_default/views/admin.html.php +++ b/themes/admin_default/views/admin.html.php @@ -16,8 +16,10 @@ <link rel="stylesheet" href="<?= $theme->url("css/superfish-navbar.css") ?>" type="text/css" media="screen,projection"> <script src="<?= url::file("lib/jquery.js") ?>" type="text/javascript"></script> + <script src="<?= url::file("lib/jquery.form.js") ?>" type="text/javascript"></script> <script src="<?= url::file("lib/jquery-ui.js") ?>" type="text/javascript"></script> <script src="<?= $theme->url("js/superfish.js") ?>" type="text/javascript"></script> + <?= $theme->admin_head() ?> <script src="<?= $theme->url("js/ui.init.js") ?>" type="text/javascript"></script> </head> |