From 5c0998c4ac9ad7572df68f5c2cc351f0d03a7bd2 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 21 Jul 2010 07:20:24 -0700 Subject: Partial fix for #1225. Change the dialog and panel handling to look at the mime type returned to determine the content type. --- lib/gallery.dialog.js | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) (limited to 'lib/gallery.dialog.js') diff --git a/lib/gallery.dialog.js b/lib/gallery.dialog.js index cc35f5cd..7b9d4b94 100644 --- a/lib/gallery.dialog.js +++ b/lib/gallery.dialog.js @@ -27,19 +27,42 @@ $("#g-dialog").gallery_show_loading(); - $.getJSON(sHref, function(data) { - $("#g-dialog").html(unescape(data.form)).gallery_show_loading(); + $.ajax({ + url: sHref, + type: "GET", + beforeSend: function(xhr) { + // Until we convert to jquery 1.4, we need to save the + // XMLHttpRequest object + this.xhrData = xhr; + }, + success: function(data, textStatus, xhr) { + // Pre jquery 1.4, get the saved XMLHttpRequest object + if (xhr == undefined) { + xhr = this.xhrData; + } + var mimeType = /^(\w+\/\w+)\;?/.exec(xhr.getResponseHeader("Content-Type")); + + var content = ""; + if (mimeType[1] == "application/json") { + data = JSON.parse(data); + content = unescape(data.form); + } else { + content = data; + } - if ($("#g-dialog form").length) { - self.form_loaded(null, $("#g-dialog form")); - } - self._layout(); + $("#g-dialog").html(content).gallery_show_loading(); - $("#g-dialog").dialog("open"); - self._set_title(); + if ($("#g-dialog form").length) { + self.form_loaded(null, $("#g-dialog form")); + } + self._layout(); + + $("#g-dialog").dialog("open"); + self._set_title(); - if ($("#g-dialog form").length) { - self._ajaxify_dialog(); + if ($("#g-dialog form").length) { + self._ajaxify_dialog(); + } } }); $("#g-dialog").dialog("option", "self", self); @@ -108,7 +131,7 @@ }, success: function(data) { if (data.form) { - var formData = unescape(data.form); + var formData = unescape(data.content); $("#g-dialog form").replaceWith(formData); $("#g-dialog").dialog("option", "position", "center"); $("#g-dialog form :submit").removeClass("ui-state-disabled") -- cgit v1.2.3