From cbb5c0495f42d4e098f234a1e3c390e4ddff3c77 Mon Sep 17 00:00:00 2001 From: eliott Date: Sat, 29 Dec 2007 14:52:45 -0800 Subject: Added admin-media files. --- media/admin_media/js/admin/RelatedObjectLookups.js | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 media/admin_media/js/admin/RelatedObjectLookups.js (limited to 'media/admin_media/js/admin/RelatedObjectLookups.js') diff --git a/media/admin_media/js/admin/RelatedObjectLookups.js b/media/admin_media/js/admin/RelatedObjectLookups.js new file mode 100644 index 00000000..db4ed1a9 --- /dev/null +++ b/media/admin_media/js/admin/RelatedObjectLookups.js @@ -0,0 +1,57 @@ +// Handles related-objects functionality: lookup link for raw_id_admin=True +// and Add Another links. + +function showRelatedObjectLookupPopup(triggeringLink) { + var name = triggeringLink.id.replace(/^lookup_/, ''); + // IE doesn't like periods in the window name, so convert temporarily. + name = name.replace(/\./g, '___'); + var href; + if (triggeringLink.href.search(/\?/) >= 0) { + href = triggeringLink.href + '&pop=1'; + } else { + href = triggeringLink.href + '?pop=1'; + } + var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); + win.focus(); + return false; +} + +function dismissRelatedLookupPopup(win, chosenId) { + var name = win.name.replace(/___/g, '.'); + var elem = document.getElementById(name); + if (elem.className.indexOf('vRawIdAdminField') != -1 && elem.value) { + elem.value += ',' + chosenId; + } else { + document.getElementById(name).value = chosenId; + } + win.close(); +} + +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 name = win.name.replace(/___/g, '.'); + var elem = document.getElementById(name); + if (elem) { + if (elem.nodeName == 'SELECT') { + var o = new Option(newRepr, newId); + elem.options[elem.options.length] = o; + o.selected = true; + } else if (elem.nodeName == 'INPUT') { + elem.value = newId; + } + } else { + var toId = name + "_to"; + elem = document.getElementById(toId); + var o = new Option(newRepr, newId); + SelectBox.add_to_cache(toId, o); + SelectBox.redisplay(toId); + } + win.close(); +} -- cgit v1.2.3-2-g168b