diff options
| author | Luke Plant <L.Plant.98@cantab.net> | 2011-11-01 21:50:17 +0000 |
|---|---|---|
| committer | Luke Plant <L.Plant.98@cantab.net> | 2011-11-01 21:50:17 +0000 |
| commit | 6d39cb4119a0fa502fca1f9b3d07436fbd258655 (patch) | |
| tree | 13f6b3a245eb3593c9e470722d3351acda0f481e | |
| parent | a97ecfdea80080da7e522d8dd8a4792a777694f9 (diff) | |
Fixed #5704 - Admin popup windows won't close when using application/xhtml as default content type
Thanks to Rob van der Linde for the report, and to mb0, dArignac and claudep
for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17065 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/admin/options.py | 4 | ||||
| -rw-r--r-- | django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 91b81a42e0..3a0ad7475d 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -779,7 +779,9 @@ class ModelAdmin(BaseModelAdmin): return HttpResponseRedirect(post_url_continue % pk_value) if "_popup" in request.POST: - return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, "%s", "%s");</script>' % \ + return HttpResponse( + '<!DOCTYPE html><html><head><title></title></head><body>' + '<script type="text/javascript">opener.dismissAddAnotherPopup(window, "%s", "%s");</script></body></html>' % \ # escape() calls force_unicode. (escape(pk_value), escapejs(obj))) elif "_addanother" in request.POST: diff --git a/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js b/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js index 1bc78f89b1..ce54fa5083 100644 --- a/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js +++ b/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js @@ -74,11 +74,12 @@ function dismissAddAnotherPopup(win, newId, newRepr) { var name = windowname_to_id(win.name); var elem = document.getElementById(name); if (elem) { - if (elem.nodeName == 'SELECT') { + var elemName = elem.nodeName.toUpperCase(); + if (elemName == 'SELECT') { var o = new Option(newRepr, newId); elem.options[elem.options.length] = o; o.selected = true; - } else if (elem.nodeName == 'INPUT') { + } else if (elemName == 'INPUT') { if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) { elem.value += ',' + newId; } else { |
