diff --git a/admin_interface/static/admin/js/popup_response.js b/admin_interface/static/admin/js/popup_response.js index 068a0bb..379ec70 100644 --- a/admin_interface/static/admin/js/popup_response.js +++ b/admin_interface/static/admin/js/popup_response.js @@ -1,41 +1,48 @@ -/*global opener */ +/* global opener */ (function() { 'use strict'; - var windowRef = window; - var windowName = windowRef.name; - var widgetName = windowName.replace(/^(change|add|delete|lookup)_/, ''); - //var windowNames = windowName.split('____'); - //var widgetName = windowNames[(windowNames.length - 1)]; - //widgetName = widgetName.replace(/^(change|add|delete|lookup)_/, ''); - //console.log('dismiss modal and update widget with id: "' + widgetName + '"'); - var modalRef = {}; - var openerRef = windowRef.opener; - if(!openerRef){ - openerRef = windowRef.parent; - modalRef = { - name: openerRef.id_to_windowname(widgetName), - close: function(){ - openerRef.dismissRelatedObjectModal(); - } - }; + + 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 modalData = getModalWindowData(); + var modalRef = modalData['modal']; + var openerRef = modalData['opener']; + var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse); - switch(initData.action){ + // console.log(initData); + switch (initData.action) { case 'change': - if( typeof(openerRef.dismissChangeRelatedObjectPopup) == 'function' ){ + if (typeof(openerRef.dismissChangeRelatedObjectPopup) == 'function') { openerRef.dismissChangeRelatedObjectPopup(modalRef, initData.value, initData.obj, initData.new_value); } break; case 'delete': - if( typeof(openerRef.dismissDeleteRelatedObjectPopup) == 'function' ){ + if (typeof(openerRef.dismissDeleteRelatedObjectPopup) == 'function') { openerRef.dismissDeleteRelatedObjectPopup(modalRef, initData.value); } break; default: - if( typeof(openerRef.dismissAddRelatedObjectPopup) == 'function' ){ + if (typeof(openerRef.dismissAddRelatedObjectPopup) == 'function') { openerRef.dismissAddRelatedObjectPopup(modalRef, initData.value, initData.obj); } - else if( typeof(openerRef.dismissAddAnotherPopup) == 'function' ){ + else if (typeof(openerRef.dismissAddAnotherPopup) == 'function') { // django 1.7 compatibility openerRef.dismissAddAnotherPopup(modalRef, initData.value, initData.obj); }