SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/template/srd-model.js

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;
}
]);
}());