76 lines
3.8 KiB
JavaScript
76 lines
3.8 KiB
JavaScript
"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;
|
|
}
|
|
]);
|
|
}());
|