Opened 19 years ago

Closed 16 years ago

Last modified 16 years ago

#106 closed defect (fixed)

[patch] Problem with some js/select box on IE

Reported by: paolo Owned by: Karen Tracey
Component: contrib.admin Version:
Severity: normal Keywords:
Cc: nowellpublic@… Triage Stage: Accepted
Has patch: yes Needs documentation: yes
Needs tests: yes Patch needs improvement: yes
Easy pickings: no UI/UX: no

Description

Extract from Tutorial 1: 'When you click "Add Another," you'll get a popup window with the "Add poll" form. If you add a poll in that window and click "Save," Django will save the poll to the database and dynamically add it as the selected choice on the "Add choice" form you're looking at.'

This (dynamically add it) works on Mozilla 1.0.4 Win. It is not true on IE 6. A blank string is shown instead of name of the new poll. Just after a manual refresh of the page things appear correctly.

Attachments (2)

RelatedObjectLookups.js.patch (1.1 KB ) - added by paolo <paolo@…> 19 years ago.
patch
patch.diff (1.9 KB ) - added by Nowell Strite 16 years ago.
This patch fixes the issue that dashes and dots cause for IE6+

Download all attachments as: .zip

Change History (15)

by paolo <paolo@…>, 19 years ago

patch

comment:1 by paolo <paolo@…>, 19 years ago

I had the needing to solve this, so I have investigate on it.
The issue happen using IE, when foreignkeys fields are contained inside fieldsets. 1) Clicking on 'Add another' icon it doesn't open another window, but just display the new page in the same window; 2) when the new item is added as a new option, it is displayed at the last item of the select box as a blank string; 3) it is not shown as selected.

The attached patch works for me. I hope that it could solve this problems for other people too without any breakage. Thanks.

Index: django/conf/admin_media/js/admin/RelatedObjectLookups.js
===================================================================
--- django/conf/admin_media/js/admin/RelatedObjectLookups.js    (revision 661)
+++ django/conf/admin_media/js/admin/RelatedObjectLookups.js    (working copy)
@@ -20,19 +20,21 @@

 function showAddAnotherPopup(triggeringLink) {
     var name = triggeringLink.id.replace(/^add_/, '');
+    name = name.replace(/\./g, '___');
     var win = window.open(triggeringLink.href + '?_popup=1', name, 'height=500,width=800,resizable=yes,scrollbars=yes');
     win.focus();
     return false;
 }

 function dismissAddAnotherPopup(win, newId, newRepr) {
-    var elem = document.getElementById(win.name);
+    var name = win.name.replace(/___/g, '.')
+    var elem = document.getElementById(name);
     if (elem.nodeName == 'SELECT') {
         var o = new Option(newRepr, newId);
-        elem.appendChild(o);
+        elem.options[elem.options.length] = o
         elem.selectedIndex = elem.length - 1;
     } else if (elem.nodeName == 'INPUT') {
         elem.value = newId;
     }
     win.close();
-}
\ No newline at end of file
+}

comment:2 by Adrian Holovaty, 19 years ago

Summary: Problem with some js/select box on IE [patch] Problem with some js/select box on IE

comment:3 by Jacob, 19 years ago

milestone: Version 1.0
Owner: changed from Adrian Holovaty to Jacob
Status: newassigned

comment:4 by Jacob, 19 years ago

Resolution: fixed
Status: assignedclosed

(In [716]) Fixed #106 - "Add another" now correctly works in IE - thanks, Paolo

comment:5 by James Bennett, 18 years ago

Resolution: fixed
Status: closedreopened

This doesn't actually fix the entire problem; IE only allows alphanumerics and underscores in window names, and Django has a habit of trying to generate these from IDs that contain hyphens.

I'll work up a more robust patch and submit it soon.

comment:6 by (none), 18 years ago

milestone: Version 1.0

Milestone Version 1.0 deleted

comment:7 by Gary Wilson, 17 years ago

Triage Stage: Ready for checkinAccepted

Not ready for checkin, no patch for hyphen issue.

comment:8 by James Bennett, 17 years ago

(In [6474]) 0.91-bugfixes: Backport [3066] and some related changes. Refs #1635, #106.

comment:9 by anonymous, 16 years ago

Needs documentation: set
Needs tests: set

comment:10 by Karen Tracey, 16 years ago

Owner: changed from nobody to Karen Tracey
Status: reopenednew

#9332, #9539, #9543 all recently reported dashes in the popup window names causing problems. It seems the time has come to fix this!

by Nowell Strite, 16 years ago

Attachment: patch.diff added

This patch fixes the issue that dashes and dots cause for IE6+

comment:11 by Nowell Strite, 16 years ago

Cc: nowellpublic@… added

I have attached the updated (good catch kmtracey) patch to resolve this issue. Reference #9539 for examples of how to recreate this bug in the admin with a simple model and admin definition.

comment:12 by Karen Tracey, 16 years ago

Resolution: fixed
Status: newclosed

(In [9403]) Fixed #106 -- Refrain from generating popup window names that IE refuses to pop up. Thanks for the reports and initial patches nbstrite and jsmullyan.

comment:13 by Karen Tracey, 16 years ago

(In [9404]) [1.0.X] Fixed #106 -- Refrain from generating popup window names that IE refuses to pop up. Thanks for the reports and initial patches nbstrite and jsmullyan.

Note: See TracTickets for help on using tickets.
Back to Top