diff --git a/admin_interface/static/admin/js/popup_response.js b/admin_interface/static/admin/js/popup_response.js index c85e71b..fb5e192 100644 --- a/admin_interface/static/admin/js/popup_response.js +++ b/admin_interface/static/admin/js/popup_response.js @@ -2,49 +2,42 @@ 'use strict'; - function getModalWindowData() - { - var windowRef = window; - var windowName = windowRef.name; - var widgetName = windowName.replace(/^(change|add|delete|lookup)_/, ''); - var modalRef = {}; - var openerRef = windowRef.opener; - if (!openerRef) { - openerRef = windowRef.parent; - modalRef = { - name: openerRef.id_to_windowname(widgetName), - close: function() { - openerRef.dismissRelatedObjectModal(); - } - }; - } - return { opener:openerRef, modal:modalRef }; + var windowRef = window; + var windowName, widgetName; + var openerRef = windowRef.opener; + if (!openerRef) { + // related modal is active + openerRef = windowRef.parent; + windowName = windowRef.name; + widgetName = windowName.replace(/^(change|add|delete|lookup)_/, ''); + windowRef = { + name: openerRef.id_to_windowname(widgetName), + close: function() { + openerRef.dismissRelatedObjectModal(); + } + }; } - var modalData = getModalWindowData(); - var modalRef = modalData['modal']; - var openerRef = modalData['opener']; - + // default django popup_response.js var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse); - // console.log(initData); switch (initData.action) { case 'change': if (typeof(openerRef.dismissChangeRelatedObjectPopup) === 'function') { - openerRef.dismissChangeRelatedObjectPopup(modalRef, initData.value, initData.obj, initData.new_value); + openerRef.dismissChangeRelatedObjectPopup(windowRef, initData.value, initData.obj, initData.new_value); } break; case 'delete': if (typeof(openerRef.dismissDeleteRelatedObjectPopup) === 'function') { - openerRef.dismissDeleteRelatedObjectPopup(modalRef, initData.value); + openerRef.dismissDeleteRelatedObjectPopup(windowRef, initData.value); } break; default: if (typeof(openerRef.dismissAddRelatedObjectPopup) === 'function') { - openerRef.dismissAddRelatedObjectPopup(modalRef, initData.value, initData.obj); + openerRef.dismissAddRelatedObjectPopup(windowRef, initData.value, initData.obj); } else if (typeof(openerRef.dismissAddAnotherPopup) === 'function') { // django 1.7 compatibility - openerRef.dismissAddAnotherPopup(modalRef, initData.value, initData.obj); + openerRef.dismissAddAnotherPopup(windowRef, initData.value, initData.obj); } break; }