diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-01-30 22:25:16 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-01-30 22:25:16 -0500 |
commit | bb040cfb78d53696edd63bf256d0fd8ba3ccdbfa (patch) | |
tree | 811d150fddd6220faabb3c1ea1743ffd7f781e45 /assets/js/src | |
parent | 4a52d327f7e555c336a428c457cf40c3d97bfab3 (diff) |
Simplify code to handle ajax popover and redirects
Diffstat (limited to 'assets/js/src')
-rw-r--r-- | assets/js/src/Popover.js | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/assets/js/src/Popover.js b/assets/js/src/Popover.js index 2686d70d..6420f9ad 100644 --- a/assets/js/src/Popover.js +++ b/assets/js/src/Popover.js @@ -57,6 +57,7 @@ Popover.prototype.afterOpen = function() { var self = this; var popoverForm = $(".popover-form"); + // Submit forms with Ajax request if (popoverForm) { popoverForm.on("submit", function(e) { e.preventDefault(); @@ -66,18 +67,35 @@ Popover.prototype.afterOpen = function() { url: popoverForm.attr("action"), data: popoverForm.serialize(), success: function(data, textStatus, request) { - var redirect = request.getResponseHeader("X-Ajax-Redirect"); - - if (redirect) { - window.location = redirect === 'self' ? window.location.href : redirect; - } - else { - $("#popover-content").html(data); - $("input[autofocus]").focus(); - self.afterOpen(); - } + self.afterSubmit(data, request, self); } }); }); } + + // Submit link with Ajax request + $(document).on("click", ".popover-link", function(e) { + e.preventDefault(); + + $.ajax({ + type: "GET", + url: $(this).attr("href"), + success: function(data, textStatus, request) { + self.afterSubmit(data, request, self); + } + }); + }); +}; + +Popover.prototype.afterSubmit = function(data, request, self) { + var redirect = request.getResponseHeader("X-Ajax-Redirect"); + + if (redirect) { + window.location = redirect === 'self' ? window.location.href : redirect; + } + else { + $("#popover-content").html(data); + $("input[autofocus]").focus(); + self.afterOpen(); + } }; |