45 lines
1.9 KiB
JavaScript
45 lines
1.9 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('changeModule')
|
|
.directive('impactedAreas', [
|
|
function () {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'views/change/impacted-areas.html',
|
|
scope: {
|
|
ticket: '=',
|
|
removable: '='
|
|
},
|
|
link: function (scope) {
|
|
scope.formatImpactedArea = function (impactedArea) {
|
|
var formattedImpactedArea = _.filter([
|
|
impactedArea.company.name,
|
|
impactedArea.site ? impactedArea.site.region : null,
|
|
impactedArea.site ? impactedArea.site.siteGroup : null,
|
|
impactedArea.site ? impactedArea.site.name : null,
|
|
impactedArea.organization,
|
|
impactedArea.department
|
|
], function (item) {
|
|
return item;
|
|
}).join(' > ');
|
|
return formattedImpactedArea;
|
|
};
|
|
scope.removeImpactedArea = function (index) {
|
|
scope.ticket.addedImpactedAreas = scope.ticket.addedImpactedAreas || [];
|
|
scope.ticket.removedImpactedAreas = scope.ticket.removedImpactedAreas || [];
|
|
var impactedArea = scope.ticket.impactedAreas[index];
|
|
scope.ticket.impactedAreas.splice(index, 1);
|
|
if (_.includes(scope.ticket.addedImpactedAreas, impactedArea)) {
|
|
_.remove(scope.ticket.addedImpactedAreas, impactedArea);
|
|
}
|
|
else {
|
|
scope.ticket.removedImpactedAreas.push(impactedArea);
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}
|
|
]);
|
|
})();
|