File diff 86e1646f8f31 → f742f86f4be4
www/conservancy/static/admin/js/admin/RelatedObjectLookups.js
Show inline comments
 
new file 100644
 
// 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=740,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();
 
}