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. --- themes/admin_default/js/ui.init.js | 51 +++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 14 deletions(-) (limited to 'themes/admin_default/js/ui.init.js') 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