From 6941af664f72e41eb4aa6e628200c78a77e069ab Mon Sep 17 00:00:00 2001 From: Chad Kieffer Date: Fri, 23 Jan 2009 06:19:19 +0000 Subject: Ajaxified user edit forms. They're populated, but don't submit yet. --- modules/user/views/admin_users.html.php | 71 ++++++++++++++------------------- themes/admin_default/js/ui.init.js | 51 ++++++++++++++++------- 2 files changed, 67 insertions(+), 55 deletions(-) diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index 566d719f..b4673aec 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -43,8 +43,15 @@ margin-right: 40px; } .gPanel { - display: none; + display: none; + padding: 1em; } + .gPanel legend { + display: none; + } + .gPanel fieldset { + border: none; + } li.gGroup { float: left; @@ -66,49 +73,31 @@

@@ -143,7 +132,7 @@
  • "> + -
  • diff --git a/themes/admin_default/js/ui.init.js b/themes/admin_default/js/ui.init.js index 1acf3435..84a1021a 100644 --- a/themes/admin_default/js/ui.init.js +++ b/themes/admin_default/js/ui.init.js @@ -42,20 +42,43 @@ $(document).ready(function(){ event.preventDefault(); } - function togglePanel(element) { - var parent = $(element).parent().parent(); - if (parent.hasClass("gPanel")) { - var panel = parent; - } else { - var panel = $(parent).children(".gPanel"); - } - - panel.slideToggle("slow"); - -// if ($(element).href.search(/edit_form/)) { -// $(element).replaceWith(""+$(element).text()+""); -// } - + function togglePanel(element, on_success) { + var parent = $(element).parent().parent(); + var sHref = $(element).attr("href"); + var ePanel = '
    '; + if ($(parent).children(".gPanel").length) { + console.log("In here"); + $(parent).children(".gPanel").slideToggle("slow"); + } else { + $(parent).append(ePanel); + var panel = $(parent).children(".gPanel"); + $(panel).html(sHref); + panel.show().slideDown("slow"); + $.get(sHref, function(data) { + $(panel).html(data); + ajaxify_panel = function() { + $(".gPanel form").ajaxForm({ + dataType: "json", + success: function(data) { + if (data.form) { + $(".gPanel form").replaceWith(data.form); + ajaxify_panel(); + } + if (data.result == "success") { + if (on_success) { + on_success(); + } else if (data.location) { + window.location = data.location; + } else { + window.location.reload(); + } + } + } + }); + }; + ajaxify_panel(); + }); + } return false; } -- cgit v1.2.3