SmartIT_Extensions/BMC/smart-it-full/scripts/app/common/print-controller.js

110 lines
5.8 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('myitsmApp')
.controller('PrintController', ['$modalInstance', '$scope', 'params', '$state', 'assetModel', 'googleMapService', 'configurationModel',
'collisionModel', 'personModel', 'relationModel', 'relationService',
function ($modalInstance, $scope, params, $state, assetModel, googleMapService, configurationModel, collisionModel, personModel, relationModel, relationService) {
$scope.isFullVersion = true;
$scope.entity = params.entity;
$scope.metadata = params.metadata;
$scope.screenLayout = params.screenLayout;
$scope.customFieldsAvailable = params.customFieldsAvailable ? params.customFieldsAvailable : false;
$scope.type = params.entity.ticketType ? params.entity.ticketType : params.entity.type;
$scope.feed = angular.copy(params.feed);
$scope.customFields = !_.isEmpty($scope.entity.customFields);
$scope.attachments = $scope.entity.attachments;
$scope.relationCounters = {};
//Relations
var relations = relationModel.cache;
$scope.relationCounters.tasks = relationService.getRelatedTasks(relations[$scope.entity.id]).length;
$scope.relationCounters.linkedItems = relationService.getRelatedLinkedItems(relations[$scope.entity.id], $scope.entity, false).length;
$scope.relationCounters.CIs = relationService.getRelatedCIs(relations[$scope.entity.id]).length;
//Feed
_.forEach($scope.feed, function (feed) {
feed.expanded = true;
});
//Asset
$scope.assetFlattenRelations = assetModel.flattenRelations;
$scope.assetOwner = assetModel.assetOwner;
$scope.assetOwnerNoAccess = !_.isEmpty($scope.assetOwner) ? !$scope.assetOwner.loginId : false;
$scope.googleMapAvailable = googleMapService.isAvailable;
$scope.asset = params.entity;
$scope.assetPeopleRelations = assetModel.assetPeopleRelations;
//KA
$scope.kcsAssessMode = $state.params.assessMode;
$scope.profileType = $state.current.name;
//Task
if ($scope.type === EntityVO.TYPE_TASK) {
$scope.isParentAppEnabled = configurationModel.isServerApplicationEnabled($scope.entity.parentName);
}
//change collisions
if ($scope.type === EntityVO.TYPE_CHANGE) {
collisionModel.getListOfCollisionsById($scope.entity, false)
.then(function (collisionSummary) {
if (collisionSummary.totalUnaddressedCount > 0) {
$scope.collisions = collisionSummary;
$scope.hasCollisions = true;
}
else {
$scope.hasCollisions = false;
}
});
}
$scope.toggle = function () {
$scope.visible = !$scope.visible;
};
//Person profile
$scope.personOpenTickets = personModel.personOpenTickets.ticketList;
$scope.personOpenTicketsTotalMatches = personModel.personOpenTickets.totalMatches;
$scope.personAssignedTickets = personModel.personAssignedTickets.ticketList;
$scope.personAssignedTicketsTotalMatches = personModel.personAssignedTickets.totalMatches;
$scope.personAllTickets = personModel.personAllTickets.ticketList;
$scope.personAllTicketsTotalMatches = personModel.personAllTickets.totalMatches;
$scope.personAssetList = personModel.personAssets;
$scope.personSupportGroups = personModel.personDetails.supportGroups;
$scope.personKnowledgeArticles = personModel.personKnowledgeArticles;
//Service Request approval - the same fix is in ticket-controller.js
if ($scope.type === EntityVO.TYPE_SERVICEREQUEST) {
_.forEach($scope.entity.approvalSummaries, function (item) {
item.status.name = item.status.value ? item.status.value.split(' ').join('_').toLowerCase() : '';
});
}
$scope.printItem = function () {
$modalInstance.close();
};
$scope.buildSiteTag = function (site) {
var siteGroup = site.siteGroup ? ' > ' + site.siteGroup : '', siteName = site.name ? ' > ' + site.name : '', siteRegion = site.region ? site.region : '';
return siteRegion + siteGroup + siteName;
};
//setting ticketDetailsScreen variable to be used in print action blade for customized fields;
switch ($scope.type) {
case EntityVO.TYPE_INCIDENT:
$scope.ticketDetailsScreen = 'incidentDetailsScreen';
break;
case EntityVO.TYPE_WORKORDER:
$scope.ticketDetailsScreen = 'workOrderDetailsScreen';
break;
case EntityVO.TYPE_TASK:
$scope.ticketDetailsScreen = 'taskDetailsScreen';
break;
case EntityVO.TYPE_PERSON:
$scope.ticketDetailsScreen = 'personDetailsScreen';
break;
case EntityVO.TYPE_CHANGE:
$scope.ticketDetailsScreen = 'changeRequestScreen';
break;
case EntityVO.TYPE_PROBLEM:
$scope.ticketDetailsScreen = 'problemScreen';
break;
case EntityVO.TYPE_KNOWNERROR:
$scope.ticketDetailsScreen = 'knownErrorScreen';
break;
case EntityVO.TYPE_ASSET:
$scope.ticketDetailsScreen = 'assetScreen';
break;
}
}
]);
})();