SmartIT_Extensions/BMC/smart-it-full/scripts/app/ticket/ticket-profile-controller.js

64 lines
3.0 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('ticketModule')
.controller('TicketProfileController', ['$scope', '$state', 'ticketModel', '$timeout', 'historyModel', 'events', 'systemAlertService', 'configurationModel', 'objectValueMapperService',
function ($scope, $state, ticketModel, $timeout, historyModel, events, systemAlertService, configurationModel, objectValueMapperService) {
$scope.id = $state.params.id;
$scope.type = $state.current.name;
$scope.ticket = {};
$scope.progress = {};
$scope.state = {
resourceTabActive: false
};
//only required for copy chnage scenario
$scope.activityNote = {};
$scope.isNoteRequired = false;
objectValueMapperService.clearMap($scope.type);
if ($scope.type !== 'task' && $scope.type !== 'outage' && !configurationModel.isServerApplicationEnabled($scope.type)) {
$state.go('unauthorized');
}
/**
* Adding item to history menu after it was loaded
*/
$scope.$on(events.TICKET_BASIC_DATA_LOADED, function (event, data) {
historyModel.addToHistory(EntityVO.TYPE_TICKET, data.ticket);
$scope.ticket = data.ticket;
$scope.state.loadResources = $scope.state.resourceTabActive ? true : false;
});
/**
* Ticket Profile Controller is a "Event Bus" between all component on profile page
* to communicate in your sub component controller you should $scope.$emit(events.TICKET_PROFILE_RESEND_EVENT, {eventName: 'event name you want to broadcast to other component'})
*/
$scope.$on(events.TICKET_PROFILE_RESEND_EVENT, function (event, resend) {
event.stopPropagation();
$scope.$broadcast(resend.eventName, resend.data);
});
$scope.$on(events.SHOW_PROGRESS_MODAL_FOR_EDIT, function (event, params) {
if (params) {
$scope.progress.title = params.title || '';
$scope.progress.text = params.text || '';
$scope.progress.cssClass = params.cssClass || '';
$scope.state.showProgressModal = params.showModal;
}
});
/**
* On refresh ticket upadte ticket activities
*/
$scope.$on(events.REFRESH_TICKET, function () {
$scope.$broadcast(events.REFRESH_ACTIVITY_FEED);
$scope.$broadcast(events.REFRESH_RESOURCE_FEED);
});
$scope.$on(events.SELECT_RESOURCE_TAB, function () {
$scope.state.resourceTabActive = true;
});
$scope.$on(events.SAVE_COPY_CHANGE_DRAFT, function () {
$scope.$broadcast(events.SAVE_COPY_CHANGE_ACTIVITY);
});
$scope.loadResources = function () {
$scope.state.loadResources = true;
};
}
]);
})();