131 lines
7.5 KiB
JavaScript
131 lines
7.5 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('personModule')
|
|
.controller('PersonPreviewController', ['$scope', '$stateParams', '$state', 'personModel', '$q', 'metadataModel', 'configurationModel', 'screenConfigurationModel', 'systemAlertService', '$filter',
|
|
function ($scope, $stateParams, $state, personModel, $q, metadataModel, configurationModel, screenConfigurationModel, systemAlertService, $filter) {
|
|
var isServiceBrokerEnabled = configurationModel.isServerApplicationEnabled(EntityVO.TYPE_SBEREQUEST);
|
|
$scope.isServiceBrokerEnabled = isServiceBrokerEnabled;
|
|
function init() {
|
|
var id = $scope.personId, screenName = screenConfigurationModel.getScreenNameByTicketType(EntityVO.TYPE_PERSON);
|
|
$scope.assetLimit = 4;
|
|
$scope.ticketOpenLimit = 4;
|
|
$scope.ticketCloseLimit = 4;
|
|
$scope.ticketSBEOpenLimit = 4;
|
|
$scope.ticketSBECloseLimit = 4;
|
|
$scope.state = {
|
|
loadingSummaryStats: true,
|
|
loadingPersonDetails: true,
|
|
loadingPersonAssets: true,
|
|
loadingOpenTickets: true,
|
|
loadingClosedTickets: true,
|
|
loadingSBEOpenTickets: true,
|
|
loadingSBEClosedTickets: true
|
|
};
|
|
$scope.person = '';
|
|
personModel.getServiceSummaryStats($scope.personId).then(function () {
|
|
$scope.serviceSummary = personModel.serviceSummary;
|
|
}).finally(function () {
|
|
$scope.state.loadingSummaryStats = false;
|
|
});
|
|
$q.all([personModel.getPersonDetailsByID(id), screenConfigurationModel.loadScreenConfigurationAndCustomFieldLabels(screenName, EntityVO.TYPE_PERSON)]).then(function () {
|
|
$scope.person = personModel.personDetails;
|
|
$scope.personSupportGroups = personModel.personDetails.supportGroups;
|
|
}).finally(function () {
|
|
$scope.state.loadingPersonDetails = false;
|
|
});
|
|
var personAssetPromise = personModel.getPersonAssets(id, false);
|
|
var assetMetadataPromise = metadataModel.getMetadataByType(EntityVO.TYPE_ASSET);
|
|
$q.all([personAssetPromise, assetMetadataPromise]).then(function () {
|
|
$scope.personAssetList = personModel.personAssets;
|
|
}).finally(function () {
|
|
$scope.state.loadingPersonAssets = false;
|
|
});
|
|
personModel.getOpenTickets(id).then(function () {
|
|
$scope.personOpenTickets = personModel.personOpenTickets.ticketList;
|
|
$scope.personOpenTicketsTotalMatches = personModel.personOpenTickets.totalMatches;
|
|
}).finally(function () {
|
|
$scope.state.loadingOpenTickets = false;
|
|
});
|
|
personModel.getClosedTickets(id).then(function () {
|
|
$scope.personClosedTickets = personModel.personClosedTickets.ticketList;
|
|
$scope.personClosedTicketsTotalMatches = personModel.personClosedTickets.totalMatches;
|
|
}).finally(function () {
|
|
$scope.state.loadingClosedTickets = false;
|
|
});
|
|
if (isServiceBrokerEnabled) {
|
|
personModel.getOpenServiceBrokerTickets(id).then(function () {
|
|
$scope.personOpenServiceBrokerTickets = personModel.personOpenServiceBrokerTickets.ticketList;
|
|
$scope.personOpenServiceBrokerTicketsTotalMatches = personModel.personOpenServiceBrokerTickets.totalMatches;
|
|
}).finally(function () {
|
|
$scope.state.loadingSBEOpenTickets = false;
|
|
});
|
|
personModel.getClosedServiceBrokerTickets(id).then(function () {
|
|
$scope.personClosedServiceBrokerTickets = personModel.personClosedServiceBrokerTickets.ticketList;
|
|
$scope.personClosedServiceBrokerTicketsTotalMatches = personModel.personClosedServiceBrokerTickets.totalMatches;
|
|
}).finally(function () {
|
|
$scope.state.loadingSBEClosedTickets = false;
|
|
});
|
|
}
|
|
}
|
|
$scope.getMoreOpenTickets = function () {
|
|
personModel.getOpenTickets(personModel.personDetails.id, personModel.personOpenTickets.ticketList.length).finally(function () {
|
|
$scope.personOpenTickets = personModel.personOpenTickets.ticketList;
|
|
$scope.personOpenTicketsTotalMatches = personModel.personOpenTickets.totalMatches;
|
|
});
|
|
};
|
|
$scope.getMoreClosedTickets = function () {
|
|
personModel.getClosedTickets(personModel.personDetails.id, personModel.personClosedTickets.ticketList.length).finally(function () {
|
|
$scope.personClosedTickets = personModel.personClosedTickets.ticketList;
|
|
$scope.personClosedTicketsTotalMatches = personModel.personClosedTickets.totalMatches;
|
|
});
|
|
};
|
|
$scope.getMoreOpenServiceBrokerTickets = function () {
|
|
personModel.getOpenServiceBrokerTickets(personModel.personDetails.id, personModel.personOpenServiceBrokerTickets.ticketList.length).finally(function () {
|
|
$scope.personOpenServiceBrokerTickets = personModel.personOpenServiceBrokerTickets.ticketList;
|
|
$scope.personOpenServiceBrokerTicketsTotalMatches = personModel.personOpenServiceBrokerTickets.totalMatches;
|
|
});
|
|
};
|
|
$scope.getMoreClosedServiceBrokerTickets = function () {
|
|
personModel.getClosedServiceBrokerTickets(personModel.personDetails.id, personModel.personClosedServiceBrokerTickets.ticketList.length).finally(function () {
|
|
$scope.personClosedServiceBrokerTickets = personModel.personClosedServiceBrokerTickets.ticketList;
|
|
$scope.personClosedServiceBrokerTicketsTotalMatches = personModel.personClosedServiceBrokerTickets.totalMatches;
|
|
});
|
|
};
|
|
$scope.selectAssetItem = function (item) {
|
|
if (item.pinned) {
|
|
$scope.$emit('assetUnselected', item);
|
|
item.pinned = false;
|
|
}
|
|
else {
|
|
$scope.$emit('assetSelected', item);
|
|
item.pinned = true;
|
|
}
|
|
};
|
|
$scope.showItemDetails = function (item, $event) {
|
|
if ($event && 'href' in $event.target) {
|
|
return;
|
|
}
|
|
var params;
|
|
if (item.classId) {
|
|
params = { assetId: item.reconciliationId, assetClassId: item.classId };
|
|
$state.go('asset', params);
|
|
}
|
|
else {
|
|
if (configurationModel.isServerApplicationEnabled(item.type)) {
|
|
params = { id: item.id };
|
|
$state.go(item.type, params);
|
|
}
|
|
else {
|
|
systemAlertService.warning({
|
|
text: $filter('i18n')('person.preview.notification.disabled.application'),
|
|
hide: 10000
|
|
});
|
|
}
|
|
}
|
|
};
|
|
init();
|
|
}
|
|
]);
|
|
})();
|