summaryrefslogtreecommitdiff
path: root/themes/admin_default/js
diff options
context:
space:
mode:
authorChad Kieffer <chad@2tbsp.com>2009-01-23 06:19:19 +0000
committerChad Kieffer <chad@2tbsp.com>2009-01-23 06:19:19 +0000
commit6941af664f72e41eb4aa6e628200c78a77e069ab (patch)
treeca77b444644f7d1b462eaa1c52450a2d5798cd07 /themes/admin_default/js
parent19811aec53f66c365fa84b04f6f5d158816059a6 (diff)
Ajaxified user edit forms. They're populated, but don't submit yet.
Diffstat (limited to 'themes/admin_default/js')
-rw-r--r--themes/admin_default/js/ui.init.js51
1 files changed, 37 insertions, 14 deletions
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("<span>"+$(element).text()+"</span>");
-// }
-
+ function togglePanel(element, on_success) {
+ var parent = $(element).parent().parent();
+ var sHref = $(element).attr("href");
+ var ePanel = '<div class="gPanel"></div>';
+ 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;
}