app/assets/javascripts/umlaut/ajax_windows.js in umlaut-3.3.1 vs app/assets/javascripts/umlaut/ajax_windows.js in umlaut-4.0.0.beta1
- old
+ new
@@ -1,46 +1,40 @@
/* ajax_windows.js. Support for modal popup windows in Umlaut items. */
jQuery(document).ready(function($) {
var populate_modal = function(data, textStatus, jqXHR) {
// Wrap the data object in jquery object
- var body = $(data);
+ var body = $("<div/>").html(data);
// Remove the first heading from the returned data
var header = body.find("h1, h2, h3, h4, h5, h6").eq(0).remove();
// Remove the first submit button from the returned data
var footer = body.find("form").find("input[type=submit]").eq(0).remove();
- cleanup_modal(header, body, footer)
+
+ // Add in content
+ if (header) $("#modal").find("[data-role=modal-title-content]").text(header.text());
+ if (body) $("#modal").find("[data-role=modal-body-content]").html(body.html());
+ if (footer) $("#modal").find("[data-role=modal-footer-content]").html(footer);
+ // Toggle the ajax-loader
+ $("#modal").find(".ajax-loader").hide();
}
var cleanup_modal = function() {
- header = arguments[0]
- body = arguments[1]
- footer = arguments[2]
- // Replace the header text if given
- if (header) $("#modal").find(".modal-header").find(".content").text(header.text());
- // Replace the body html if given
- if (body) $("#modal").find(".modal-body").find(".content").html(body.html());
- // Replace the current submit button if given
- if (footer) $("#modal").find(".modal-footer").find(".content").html(footer);
- // Toggle the ajax-loader
- $("#modal").find(".modal-header").find(".ajax-loader").toggle();
- $("#modal").find(".modal-body").find(".ajax-loader").toggle();
- // Toggle the content
- $("#modal").find(".modal-header").find(".content").toggle();
- $("#modal").find(".modal-body").find(".content").toggle();
- $("#modal").find(".modal-footer").find(".content").toggle();
+ $("#modal").find("[data-role=modal-title-content]").text('');
+ $("#modal").find("[data-role=modal-body-content]").text('');
+ $("#modal").find("[data-role=modal-footer-content]").text('');
+ $("#modal").find(".ajax-loader").hide();
}
var display_modal = function(event) {
event.preventDefault();
cleanup_modal();
+ $("#modal").find(".ajax-loader").show();
$("#modal").modal("show");
$.get(this.href, "", populate_modal, "html");
- return false;
}
var ajax_form_catch = function(event) {
event.preventDefault();
- cleanup_modal();
+ $("#modal").find(".ajax-loader").show();
var form = $("#modal").find("form");
$.post(form.attr("action"), form.serialize(), populate_modal, "html");
- return false;
+ cleanup_modal();
};
$(document).on("click", "a.ajax_window", display_modal);
$(document).on("click", "#modal .modal-footer input[type=submit]", ajax_form_catch);
$(document).on("submit", "#modal form", ajax_form_catch);
});
\ No newline at end of file