"use strict"; (function () { 'use strict'; angular.module('srdModule') .factory('srdModel', ['srdService', '$modal', '$log', function (srdService, $modal, $log) { var self = {}; self.getRequestOnBehalfOf = function (customerId, contactId) { return srdService.getRequestOnBehalfOf(customerId, contactId).then(function (response) { return response[0].items[0]; }) .catch(function () { $log.error('Error calling srdService.getRequestOnBehalfOf'); }); }; self.launchAIF = function (createNew, historyBackOnCancel, parent, templateName, aifUrl, customer, contact) { $modal.open({ templateUrl: 'views/template/srd-aif-details.html', windowClass: 'action-blade-aif', backdrop: 'static', controller: ['$modalInstance', '$scope', '$window', '$sce', '$state', function ($modalInstance, $scope, $window, $sce, $state) { $scope.templateName = templateName; var url = aifUrl; if (createNew) { url = url.replace('CUSTOMER%5FLOGIN', customer); url = url.replace('CUSTOMER_LOGIN', customer); if (contact) { url = url.replace('CONTACT%5FLOGIN', contact); url = url.replace('CONTACT_LOGIN', contact); } else { url = url.replace('CONTACT%5FLOGIN', customer); url = url.replace('CONTACT_LOGIN', customer); } } $scope.crossLaunchURL = $sce.trustAsResourceUrl(url); $scope.cancel = function () { unregisterAIFListener(); $modalInstance.dismiss('cancel'); if (historyBackOnCancel) { $window.history.back(); } }; var registerAIFListener = function () { if (window.addEventListener) { window.addEventListener('message', AIFListener, false); } }; var unregisterAIFListener = function () { if (window.removeEventListener) { window.removeEventListener('message', AIFListener, false); } }; var AIFListener = function (event) { event.preventDefault(); if (event.data && event.data.indexOf('submit;') === 0) { var uuid = event.data.substr(7); unregisterAIFListener(); $modalInstance.dismiss(); parent.dirty = false; $state.go('request', { id: uuid }); } else if (event.data === 'close') { $scope.cancel(); } }; registerAIFListener(); }] }); }; return self; } ]); }());