1689 lines
89 KiB
JavaScript
1689 lines
89 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('myitsmApp', ['ui.router',
|
|
'ui.map',
|
|
'ui.bootstrap',
|
|
'ui.bootstrap-custom',
|
|
'colorpicker.module',
|
|
'ngResource',
|
|
'ngCookies',
|
|
'ngSanitize',
|
|
'ngGrid',
|
|
'ngCkeditor',
|
|
'nvd3ChartDirectives',
|
|
'LocalStorageModule',
|
|
'securityModule',
|
|
'adminModule',
|
|
'userModule',
|
|
'feedModule',
|
|
'dashboardModule',
|
|
'chartModule',
|
|
'ticketModule',
|
|
'searchModule',
|
|
'i18nModule',
|
|
'l10nModule',
|
|
'resourceModule',
|
|
'serviceRequestModule',
|
|
'bmcSystemAlert',
|
|
'personModule',
|
|
'assetModule',
|
|
'createTicketModule',
|
|
'knowledgeArticleModule',
|
|
'knowledgeTeamModule',
|
|
'smartRecorderModule',
|
|
'graphModule',
|
|
'feedModule',
|
|
'templateModule',
|
|
'srdModule',
|
|
'locationModule',
|
|
'changeModule',
|
|
'releaseModule',
|
|
'headerNavigationModule',
|
|
'consoleModule',
|
|
'createProblemModule',
|
|
'mcsmModule',
|
|
'layoutConfigModule',
|
|
'customWidgetsModule',
|
|
'dibari.angular-ellipsis',
|
|
'pwa',
|
|
'innovationStudio',
|
|
'liveChatModule',
|
|
'calendarModule'
|
|
]).constant('DOCSLINK', {
|
|
VERSION: 'Smart IT 22.1.06',
|
|
CUSTOM_FIELDS: 'https://docs.bmc.com/docs/display/smartIT221/Adding+custom+fields+to+your+views+using+Smart+IT',
|
|
EXPRESSION: 'https://docs.bmc.com/docs/display/smartIT221/Configuration+details+of+expression'
|
|
});
|
|
angular.module('i18nModule', []);
|
|
angular.module('l10nModule', []);
|
|
angular.module('securityModule', []);
|
|
angular.module('adminModule', ['ui.sortable']);
|
|
angular.module('dashboardModule', []);
|
|
angular.module('chartModule', []);
|
|
angular.module('userModule', []);
|
|
angular.module('feedModule', []);
|
|
angular.module('ticketModule', []);
|
|
angular.module('searchModule', []);
|
|
angular.module('resourceModule', []);
|
|
angular.module('serviceRequestModule', []);
|
|
angular.module('personModule', []);
|
|
angular.module('graphModule', []);
|
|
angular.module('assetModule', []);
|
|
angular.module('bmcSystemAlert', ['ui.bootstrap']);
|
|
angular.module('createTicketModule', []);
|
|
angular.module('knowledgeArticleModule', []);
|
|
angular.module('knowledgeTeamModule', []);
|
|
angular.module('smartRecorderModule', []);
|
|
angular.module('feedModule', []);
|
|
angular.module('templateModule', []);
|
|
angular.module('srdModule', []);
|
|
angular.module('locationModule', []);
|
|
angular.module('changeModule', ['daypilot']);
|
|
angular.module('releaseModule', []);
|
|
angular.module('headerNavigationModule', []);
|
|
angular.module('consoleModule', []);
|
|
angular.module('createProblemModule', []);
|
|
angular.module('mcsmModule', []);
|
|
angular.module('layoutConfigModule', []);
|
|
angular.module('customWidgetsModule', []);
|
|
angular.module('pwa', []);
|
|
angular.module('innovationStudio', []);
|
|
angular.module('liveChatModule', []);
|
|
angular.module('calendarModule', []);
|
|
angular.module('myitsmApp')
|
|
.config(['$stateProvider', '$qProvider', '$locationProvider', '$urlRouterProvider', 'roles', '$provide', '$logProvider', 'topicLoggerProvider', 'queryStringParser',
|
|
function ($stateProvider, $qProvider, $locationProvider, $urlRouterProvider, roles, $provide, $logProvider, topicLoggerProvider, queryStringParser) {
|
|
$qProvider.errorOnUnhandledRejections(false);
|
|
$locationProvider.hashPrefix('');
|
|
// Toggling angular $log.debug messages based on query string parameter
|
|
var queryString = window.location.search, queryParams;
|
|
if (queryString.charAt(queryString.length - 1) === '/') {
|
|
queryString = queryString.substring(0, queryString.length - 1);
|
|
}
|
|
queryParams = queryStringParser.parse(queryString);
|
|
$logProvider.debugEnabled(queryParams.debug === '2');
|
|
if (queryParams.debug && queryParams.debugTopic) {
|
|
queryParams.debugTopic.split(',').forEach(function (topic) {
|
|
topicLoggerProvider.addTopic(topic);
|
|
}, this);
|
|
}
|
|
// expose a provider to reach debugEnabled in $log
|
|
$provide.value('$logProvider', $logProvider);
|
|
$provide.value('topicLoggerProvider', topicLoggerProvider);
|
|
$urlRouterProvider.otherwise('/');
|
|
function checkComAroundEnabled(metadataModel, $state, $rootScope) {
|
|
return $rootScope.authPromise.then(function () {
|
|
return metadataModel.getMetadataByType('global').then(function (metadata) {
|
|
var isPwaEnabled = (metadata.configurationParameters['Enable-Progressive-Views'] === 'T' || metadata.configurationParameters['Enable-Progressive-Views'] === 'true');
|
|
isPwaEnabled = localStorage.getItem('overridePV') === 'T' ? false : isPwaEnabled;
|
|
if (metadata.comaroundEnabled === true && isPwaEnabled && localStorage.getItem('midtierUrl')) {
|
|
$state.go('dashboard', {}, { location: 'replace' });
|
|
}
|
|
else {
|
|
console.info('Either Comaround or PV not enabled or invalid midtierUrl');
|
|
}
|
|
}).catch(function (error) {
|
|
console.info(error.data.error);
|
|
});
|
|
}).finally(function () {
|
|
$rootScope.authPromise = null;
|
|
});
|
|
}
|
|
function navigateToMobileLandingPage(browser, $state, authModel, $q) {
|
|
if (browser.isMobile) {
|
|
if (!$rootScope.authPromise) {
|
|
$rootScope.authPromise = authModel.isAuthenticated() ? $q.when(1) : authModel.checkSessionStatus();
|
|
}
|
|
$rootScope.authPromise.then(function () {
|
|
if (authModel.isAuthenticated()) {
|
|
$state.go('ticketConsole', {}, { location: 'replace' });
|
|
}
|
|
});
|
|
}
|
|
}
|
|
$stateProvider
|
|
.state('unauthorized', {
|
|
url: '/unauthorized',
|
|
templateUrl: 'views/unauthorized.html',
|
|
access: [],
|
|
controller: ['$scope', 'permissionModel', function ($scope, permissionModel) {
|
|
$scope.isAdminOnlyPersona = permissionModel.hasAdminOnlyRole();
|
|
}]
|
|
})
|
|
.state('dashboard', {
|
|
url: '^/',
|
|
templateUrl: 'views/dashboard/index.html',
|
|
controller: 'DashboardController',
|
|
data: { pageTitle: 'header.navigation.dashboard' },
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
resolve: {
|
|
isMobileDevice: ['browser', '$state', 'authModel', '$q', navigateToMobileLandingPage]
|
|
}
|
|
})
|
|
.state('calendar', {
|
|
url: '/calendar',
|
|
controller: 'CalendarController',
|
|
template: '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe ng-if="ccsEnabledForCalendar" src="/smartit/app-pwa/#/calendar" class="app__calendar-iframe" frameborder="0" width="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForCalendar"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>',
|
|
data: { pageTitle: 'header.navigation.calendar' },
|
|
access: [roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_RELEASE_USER_ROLE, roles.ITSM_AGENT_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('ticketConsole', {
|
|
url: '/ticket-console',
|
|
|
|
template: '<console class="ticket-console" console-type="ticket" default-filters="" default-criteria="" display-metric="true" display-filter="true"></console>',
|
|
params: {
|
|
refreshMetadata: false
|
|
},
|
|
data: { pageTitle: 'header.navigation.ticketConsole' },
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE]
|
|
})
|
|
.state('knowledgeConsole', {
|
|
url: '/knowledge-console',
|
|
template: '<console class="ticket-console" console-type="knowledge" default-filters="" default-criteria="" display-metric="true" display-filter="true"></console>',
|
|
access: [roles.ITSM_KNOWLEDGE_USER_ROLE],
|
|
data: { pageTitle: 'header.navigation.knowledgeConsole' },
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('assetConsole', {
|
|
url: '/asset-console',
|
|
template: '<console class="ticket-console" console-type="asset" default-filters="" default-criteria="" display-metric="false" display-filter="true"></console>',
|
|
access: [roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'header.navigation.assetConsole' }
|
|
})
|
|
.state('knowledge', {
|
|
url: '/knowledge/:id',
|
|
templateUrl: 'views/knowledge-article/knowledge-article-profile.html',
|
|
controller: 'KnowledgeArticleProfileController',
|
|
params: {
|
|
id: null,
|
|
editMode: false,
|
|
content: null,
|
|
preventIncrement: null,
|
|
assessMode: false
|
|
},
|
|
data: { pageTitle: 'header.navigation.knowledge' },
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('knowledgeLatest', {
|
|
url: '/knowledge/:version/:id',
|
|
templateUrl: 'views/knowledge-article/knowledge-article-profile.html',
|
|
controller: 'KnowledgeArticleProfileController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'header.navigation.knowledge' },
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('knowledgeNewTab', {
|
|
url: '/knowledge-new-tab/:id?preventIncrement',
|
|
template: '',
|
|
controller: 'KnowledgeNewTabController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'header.navigation.knowledge' },
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('search', {
|
|
url: '/search/{searchText:.*}',
|
|
templateUrl: 'views/search/search-content.html',
|
|
controller: 'SearchController',
|
|
params: {
|
|
searchCriteria: null,
|
|
isNewSearch: null
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'common.placeholder.search' }
|
|
})
|
|
.state('search.task', {
|
|
template: '<div preview-task="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.taskPV', {
|
|
params: { guid: null, displayId: null },
|
|
controller: 'PwaTicketController',
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'Task', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}],
|
|
access: []
|
|
})
|
|
.state('search.knowledge', {
|
|
template: '<div preview-knowledge-article="{{selectedItem.id}}" selected-item="selectedItem" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.asset', {
|
|
template: '<div preview-asset={{assetIdsObject}} display-menu="true" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.assetPV', {
|
|
params: { guid: null, displayId: null },
|
|
controller: 'PwaTicketController',
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'Configuration Item', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}],
|
|
access: []
|
|
})
|
|
.state('search.person', {
|
|
template: '<div preview-person="{{selectedItem.id}}" display-menu="false" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.personPV', {
|
|
access: [],
|
|
controller: 'PwaTicketController',
|
|
params: { guid: null, displayId: null },
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'People', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}]
|
|
})
|
|
.state('search.workorder', {
|
|
template: '<div preview-work-order="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.workorderPV', {
|
|
params: { guid: null, displayId: null },
|
|
controller: 'PwaTicketController',
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'Work Order', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}],
|
|
access: []
|
|
})
|
|
.state('search.incidentPV', {
|
|
params: { guid: null, displayId: null },
|
|
controller: 'PwaTicketController',
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'Incident', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}],
|
|
access: []
|
|
})
|
|
.state('search.changePV', {
|
|
params: { guid: null, displayId: null },
|
|
controller: 'PwaTicketController',
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'Infrastructure Change', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}],
|
|
access: []
|
|
})
|
|
.state('search.request', {
|
|
template: '<div preview-service-request="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.sberequest', {
|
|
template: '<div preview-sbe-request="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.incident', {
|
|
template: '<div preview-incident="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.change', {
|
|
template: '<div preview-change-request="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.release', {
|
|
template: '<div preview-release="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.activity', {
|
|
template: '<div preview-activity="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.problem', {
|
|
template: '<div preview-problem="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.problemPV', {
|
|
params: { guid: null, displayId: null },
|
|
controller: 'PwaTicketController',
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'Problem Investigation', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketDisplay/SV_TicketDisplay' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}],
|
|
access: []
|
|
})
|
|
.state('search.knownerror', {
|
|
template: '<div preview-known-error="{{selectedItem.id}}" class="full-height" is-full-version="false"></div>',
|
|
access: []
|
|
})
|
|
.state('search.knownerrorPV', {
|
|
access: [],
|
|
params: { guid: null, displayId: null },
|
|
controller: 'PwaTicketController',
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), guid = $stateParams.guid, context = 'Known Error', formName = 'SHR:SV_TicketDisplay/SV_TicketDisplay', formView = 'SV_View';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + formName + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/' + formName + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&targetId=' + guid + '&mode=GET&context=PREVIEW';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" frameborder="0" width="100%" height="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
}],
|
|
})
|
|
.state('person', {
|
|
url: '/person/{id:.*}',
|
|
templateUrl: 'views/person/person-profile.html',
|
|
controller: 'PersonProfileController',
|
|
data: { pageTitle: 'customization.screen.personDetailsScreen' },
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
resolve: {
|
|
PVEnable: ['metadataModel', '$state', '$stateParams', function (metadataModel, $state, $stateParams) {
|
|
return metadataModel.getMetadataByType('global').then(function (metadata) {
|
|
var isPwaEnabled = (metadata.configurationParameters['Enable-Progressive-Views'] === 'T' || metadata.configurationParameters['Enable-Progressive-Views'] === 'true');
|
|
isPwaEnabled = localStorage.getItem('overridePV') === 'T' ? false : isPwaEnabled;
|
|
if (isPwaEnabled && localStorage.getItem('midtierUrl')) {
|
|
$state.go('personPV', { id: $stateParams.id }, { location: 'replace' });
|
|
}
|
|
else {
|
|
console.info('Either PV not enabled or invalid midtierUrl');
|
|
}
|
|
}).catch(function (error) {
|
|
console.info(error.data.error);
|
|
});
|
|
}]
|
|
}
|
|
})
|
|
.state('personPV', {
|
|
url: '/personPV/:id',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'customization.screen.personDetailsScreen',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'People',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('asset', {
|
|
url: '/asset/:assetId/:assetClassId',
|
|
templateUrl: 'views/asset/asset-profile.html',
|
|
controller: 'AssetProfileController',
|
|
data: {
|
|
history: { type: 'assets', label: 'asset' },
|
|
pageTitle: 'header.navigation.asset'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_ADMIN_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('assetPV', {
|
|
url: '/assetPV/:assetId/:assetClassId',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
history: { type: 'assets', label: 'asset' },
|
|
pageTitle: 'header.navigation.asset',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Configuration Item',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_ADMIN_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('editAssetPV', {
|
|
url: '/edit/assetPV/:assetId/:assetClassId',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
history: { type: 'assets', label: 'asset' },
|
|
pageTitle: 'header.navigation.asset',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Configuration Item',
|
|
targetView: 'SV_Edit',
|
|
mode: 'GET'
|
|
},
|
|
params: {
|
|
context: 'ASSETCONSOLE'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_ADMIN_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('assetCiExplorer', {
|
|
abstract: true,
|
|
url: '/asset/:assetId/:assetClassId',
|
|
templateUrl: 'views/asset/ci-explorer.html',
|
|
controller: 'AssetController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'header.navigation.asset' }
|
|
})
|
|
.state('assetCiExplorer.list', {
|
|
url: '/list-ci',
|
|
templateUrl: 'views/asset/list-ci-explorer.html',
|
|
controller: 'AssetListCiExplorerController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'asset.relationship.list-explorer' }
|
|
})
|
|
.state('assetCiExplorer.graphical', {
|
|
url: '/graphical-ci',
|
|
templateUrl: 'views/asset/graphical-ci-explorer.html',
|
|
controller: 'AssetGraphicalCiExplorerController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'asset.relationship.graphical-explorer' }
|
|
})
|
|
.state('createIncident', {
|
|
url: '/create/incident',
|
|
templateUrl: 'views/create/create-incident-v2.html',
|
|
controller: 'CreateIncidentV2Controller',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
data: { pageTitle: 'create.incident.header' }
|
|
})
|
|
.state('createIncidentPV', {
|
|
url: '/create/incidentPV',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'create.incident.header',
|
|
formName: 'SHR:SV_TicketCreate/SV_TicketCreate',
|
|
targetForm: 'Incident',
|
|
targetView: 'SV_Create',
|
|
mode: 'CREATE'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
}).state('pwaAction', {
|
|
url: '/pwa-action',
|
|
controller: 'PwaActionController',
|
|
data: {
|
|
pageTitle: 'common.label.actions'
|
|
},
|
|
params: {
|
|
data: null
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
})
|
|
.state('createKnowledge', {
|
|
url: '/create/knowledge',
|
|
templateUrl: 'views/create/create-ka.html',
|
|
controller: 'CreateKnowledgeArticleController',
|
|
access: [roles.ITSM_KNOWLEDGE_USER_ROLE],
|
|
data: { pageTitle: 'create.knowledge.header' },
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('createAqiQuestions', {
|
|
url: '/create/aqiQuestions',
|
|
templateUrl: 'views/create/aqi-question-sets.html',
|
|
controller: 'createAqiController',
|
|
access: [roles.ITSM_KCS_COACH_ROLE],
|
|
data: { pageTitle: 'create.aqi.questionSets.header' },
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('changeCalendar', {
|
|
url: '/changeCalendar/:defaultData',
|
|
template: '<calendar></calendar>',
|
|
controller: 'ChangeCalendarController',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeCalendar.book', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-book-view></calendar-book-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeCalendar.day', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-view id="changeCalendarDayView" view-type="Day"></calendar-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeCalendar.week', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-month-view id="changeCalendarWeekView" view-type="Weeks"></calendar-month-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeCalendar.month', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-month-view id="changeCalendarMonthView" view-type="Month"></calendar-month-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createChange', {
|
|
url: '/create/change',
|
|
template: '<ui-view></ui-view>',
|
|
controller: 'CreateChangeV2Controller',
|
|
params: {
|
|
fromRelated: false,
|
|
crossLaunchContext: ""
|
|
},
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' },
|
|
resolve: {
|
|
PVEnable: ['metadataModel', '$state', '$stateParams', function (metadataModel, $state, $stateParams) {
|
|
metadataModel.getMetadataByType('global').then(function (metadata) {
|
|
var isPwaEnabled = (metadata.configurationParameters['Enable-Progressive-Views'] === 'T' || metadata.configurationParameters['Enable-Progressive-Views'] === 'true');
|
|
isPwaEnabled = localStorage.getItem('overridePV') === 'T' ? false : isPwaEnabled;
|
|
if (isPwaEnabled && localStorage.getItem('midtierUrl')) {
|
|
if ($stateParams.fromRelated) {
|
|
$state.go('pwaDraftChange', $stateParams);
|
|
}
|
|
else {
|
|
$state.go('createChangePV');
|
|
}
|
|
}
|
|
else {
|
|
console.info('Either PV not enabled or invalid midtierUrl');
|
|
}
|
|
}).catch(function (error) {
|
|
console.info(error.data.error);
|
|
});
|
|
}]
|
|
}
|
|
})
|
|
.state('createChangePV', {
|
|
url: '/create/changePV',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'create.change.header',
|
|
formName: 'SHR:SV_TicketCreate/SV_TicketCreate',
|
|
targetForm: 'Infrastructure Change',
|
|
targetView: 'SV_Create',
|
|
mode: 'CREATE'
|
|
},
|
|
access: [roles.ITSM_CHANGE_USER_ROLE]
|
|
})
|
|
.state('createChange.selector', {
|
|
url: '/',
|
|
templateUrl: 'views/change/create-change-selector.html',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createChange.wizard', {
|
|
url: '/',
|
|
template: '<change-wizard></change-wizard>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createChange.wizard.calendar', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar></calendar>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createChange.wizard.calendar.book', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-book-view></calendar-book-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createChange.wizard.calendar.day', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-view id="calendarDayView" view-type="Day"></calendar-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createChange.wizard.calendar.week', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-month-view id="calendarWeekView" view-type="Weeks"></calendar-month-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createChange.wizard.calendar.month', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar-month-view id="calendarMonthView" view-type="Month"></calendar-month-view>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditCollisions', {
|
|
url: '/change/:id/collisions',
|
|
templateUrl: 'views/change/edit-dates.html',
|
|
controller: 'EditDatesController',
|
|
data: {
|
|
editMode: true,
|
|
pageTitle: 'create.change.header'
|
|
},
|
|
access: [roles.ITSM_CHANGE_USER_ROLE]
|
|
})
|
|
.state('changeEditCollisions.calendar', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar></calendar>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditCollisions.calendar.book', {
|
|
url: '',
|
|
template: '<calendar-book-view></calendar-book-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditCollisions.calendar.day', {
|
|
url: '',
|
|
template: '<calendar-view id="calendarDayView" view-type="Day"></calendar-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditCollisions.calendar.week', {
|
|
url: '',
|
|
template: '<calendar-month-view id="calendarWeekView" view-type="Weeks"></calendar-month-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditCollisions.calendar.month', {
|
|
url: '',
|
|
template: '<calendar-month-view id="calendarMonthView" view-type="Month"></calendar-month-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditDates', {
|
|
url: '/change/:id/dates',
|
|
templateUrl: 'views/change/edit-dates.html',
|
|
controller: 'EditDatesController',
|
|
data: {
|
|
editMode: false,
|
|
pageTitle: 'create.change.header'
|
|
},
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
})
|
|
.state('changeEditDates.calendar', {
|
|
url: '',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
template: '<calendar></calendar>',
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditDates.calendar.book', {
|
|
url: '',
|
|
template: '<calendar-book-view></calendar-book-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditDates.calendar.day', {
|
|
url: '',
|
|
template: '<calendar-view id="calendarDayView" view-type="Day"></calendar-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditDates.calendar.week', {
|
|
url: '',
|
|
template: '<calendar-month-view id="calendarWeekView" view-type="Weeks"></calendar-month-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('changeEditDates.calendar.month', {
|
|
url: '',
|
|
template: '<calendar-month-view id="calendarMonthView" view-type="Month"></calendar-month-view>',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('impactGraph', {
|
|
url: '/:type/:id/impactGraph',
|
|
templateUrl: 'views/change/impact-simulator.html',
|
|
controller: 'ImpactAnalysisController',
|
|
params: {
|
|
id: null,
|
|
type: null,
|
|
displayId: null
|
|
},
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.change.header' }
|
|
})
|
|
.state('createRelease', {
|
|
url: '/create/release',
|
|
template: '<ui-view></ui-view>',
|
|
controller: 'CreateReleaseController',
|
|
access: [roles.ITSM_RELEASE_USER_ROLE],
|
|
data: { pageTitle: 'create.release.header' }
|
|
})
|
|
.state('createRelease.selector', {
|
|
url: '/',
|
|
templateUrl: 'views/release/create-release-selector.html',
|
|
access: [roles.ITSM_RELEASE_USER_ROLE],
|
|
data: { pageTitle: 'create.release.header' }
|
|
})
|
|
.state('createRelease.wizard', {
|
|
url: '/',
|
|
template: '<release-wizard></release-wizard>',
|
|
access: [roles.ITSM_RELEASE_USER_ROLE],
|
|
data: { pageTitle: 'create.release.header' }
|
|
})
|
|
.state('createActivity', {
|
|
url: '/create/activity',
|
|
templateUrl: 'views/create/create-activity.html',
|
|
controller: 'CreateActivityController',
|
|
access: [roles.ITSM_RELEASE_USER_ROLE],
|
|
data: { pageTitle: 'create.release.releasePlan.createActivity' }
|
|
})
|
|
.state('smartRecorder', {
|
|
url: '/create/smart-recorder?customer&contact&desc',
|
|
templateUrl: 'views/smart-recorder/smart-recorder.html',
|
|
controller: 'SmartRecorderController',
|
|
data: { pageTitle: 'globalNav.smartRecorder' },
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
})
|
|
.state('screenConfiguration', {
|
|
url: '/admin/screen-configuration',
|
|
templateUrl: 'views/admin/screen-configuration/screen-configuration.html',
|
|
controller: 'ScreenConfigurationController',
|
|
access: [roles.ITSM_ADMIN_ROLE],
|
|
data: { pageTitle: 'header.navigation.screenConfiguration' }
|
|
})
|
|
.state('adminConsoleConfig', {
|
|
url: '/admin/admin-console-configuration',
|
|
templateUrl: 'views/admin/console-config/admin-console-configuration.html',
|
|
controller: 'AdminConsoleConfigurationController',
|
|
access: [roles.ITSM_ADMIN_ROLE],
|
|
data: { pageTitle: 'header.navigation.adminConsoleConfig' }
|
|
})
|
|
.state('knowledgeStyleConfiguration', {
|
|
url: '/admin/knowledge-style-configuration',
|
|
templateUrl: 'views/admin/knowledge-style-configuration/knowledge-style-config.html',
|
|
controller: 'KnowledgeStyleConfigController',
|
|
access: [roles.ITSM_ADMIN_ROLE],
|
|
data: { pageTitle: 'header.navigation.knowledgeTemplateStyles' },
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('knowledgeTeam', {
|
|
url: '/knowledgeTeam',
|
|
templateUrl: 'views/knowledge-team/knowledge-team-profile.html',
|
|
controller: 'KnowledgeTeamController',
|
|
access: [roles.ITSM_KCS_COACH_ROLE],
|
|
data: { pageTitle: 'header.navigation.knowledge' },
|
|
resolve: {
|
|
comaroundEnable: ['metadataModel', '$state', '$rootScope', checkComAroundEnabled]
|
|
}
|
|
})
|
|
.state('createTask', {
|
|
url: '/create/task',
|
|
templateUrl: 'views/create/create-task-v2.html',
|
|
controller: 'CreateTaskV2Controller',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'create.task.header' }
|
|
})
|
|
.state('createTaskPV', {
|
|
url: '/create/taskPV',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'create.task.header' },
|
|
templateProvider: ['$stateParams', '$state', function ($stateParams, $state) {
|
|
var midtierUrl = localStorage.getItem('midtierUrl'), homeServer = localStorage.getItem('homeServer'), context = 'Task', formView = 'SV_Create';
|
|
if (midtierUrl) {
|
|
var formSrc;
|
|
if (homeServer) {
|
|
formSrc = midtierUrl + '/pwa/#/forms/' + homeServer + '/' + 'SHR:SV_TicketCreate/SV_TicketCreate' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&mode=GET';
|
|
}
|
|
else {
|
|
formSrc = midtierUrl + '/pwa/#/goto/SHR:SV_TicketCreate/SV_TicketCreate' + '?origin=' + window.location.origin + '&targetForm=' + context + '&targetView=' + formView + '&mode=GET';
|
|
}
|
|
return '<div loading-spinner if="dataLoading" centered="true" overlay="true"></div>' +
|
|
'<iframe src="' + formSrc + '" class="app__pwa-iframe app__pwa-iframe-create" frameborder="0" width="100%"></iframe>' +
|
|
'<div class="unauthorized" ng-if="!ccsEnabledForPWA"><h4>{{"error" | i18n}}</h4><p>{{"error.unauthorized" | i18n}}</p><a href="" ui-sref="dashboard">{{"error.click.return.home"|i18n}}</a></div>';
|
|
}
|
|
else {
|
|
$state.go('createTask');
|
|
}
|
|
}]
|
|
})
|
|
.state('draftIncident', {
|
|
url: '/draft-incident',
|
|
templateUrl: 'views/ticket/profiles/draft-incident-profile.html',
|
|
controller: 'DraftTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcLiveChat: 'false'
|
|
},
|
|
data: { pageTitle: 'create.draft.incident' }
|
|
})
|
|
.state('pwaDraftIncident', {
|
|
url: '/pwa-draft-incident',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcLiveChat: 'false',
|
|
isSrcAsset: 'false',
|
|
isSrcChange: 'false',
|
|
isSrcKnownError: 'false',
|
|
isSrcProblem: 'false',
|
|
crossLaunchContext: ''
|
|
},
|
|
data: {
|
|
pageTitle: 'create.draft.incident',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Incident',
|
|
targetView: 'SV_Edit'
|
|
}
|
|
})
|
|
.state('pwaDraftWorkorder', {
|
|
url: '/pwa-draft-workorder',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcLiveChat: 'false',
|
|
isSrcAsset: 'false',
|
|
isSrcChange: 'false',
|
|
isSrcKnownError: 'false',
|
|
isSrcProblem: 'false',
|
|
crossLaunchContext: ''
|
|
},
|
|
data: {
|
|
pageTitle: 'create.draft.workorder',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Work Order',
|
|
targetView: 'SV_Edit'
|
|
}
|
|
})
|
|
.state('liveChatDraft', {
|
|
url: '/lc-draft?:draftType?:launchMode?:id',
|
|
template: '',
|
|
controller: 'LiveChatDraftTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcLiveChat: 'true',
|
|
draftType: null,
|
|
crossLaunchContext: 'LIVECHAT',
|
|
launchMode: 'view',
|
|
id: null
|
|
}
|
|
})
|
|
.state('draftChange', {
|
|
url: '/draft-change/:id',
|
|
templateUrl: 'views/ticket/profiles/draft-change-profile.html',
|
|
controller: 'DraftTicketController',
|
|
params: {
|
|
isCopyChange: false,
|
|
copyChangeId: null,
|
|
ticket: null,
|
|
hasRelatedCis: false
|
|
},
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'create.draft.change' }
|
|
})
|
|
.state('pwaDraftChange', {
|
|
url: '/pwa-draft-change',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcLiveChat: 'false',
|
|
isSrcAsset: 'false',
|
|
isSrcChange: 'false',
|
|
isSrcKnownError: 'false',
|
|
isSrcProblem: 'false',
|
|
isSrcRelease: 'false',
|
|
crossLaunchContext: ''
|
|
},
|
|
data: {
|
|
pageTitle: 'create.draft.change',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Infrastructure Change',
|
|
targetView: 'SV_Edit'
|
|
}
|
|
})
|
|
.state('draftWorkorder', {
|
|
url: '/draft-workorder',
|
|
templateUrl: 'views/ticket/profiles/draft-workorder-profile.html',
|
|
controller: 'DraftTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcLiveChat: 'false'
|
|
},
|
|
data: { pageTitle: 'create.draft.workorder' }
|
|
})
|
|
.state('draftServicerequest', {
|
|
url: '/draft-request',
|
|
templateUrl: 'views/ticket/profiles/draft-service-request-profile.html',
|
|
controller: 'DraftTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: { error: null },
|
|
data: { pageTitle: 'create.draft.servicerequest' }
|
|
})
|
|
.state('extDraft', {
|
|
url: '/ext-draft?draftType',
|
|
template: '',
|
|
controller: 'ExtDraftTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
})
|
|
.state('draftProblem', {
|
|
url: '/draft-problem',
|
|
templateUrl: 'views/ticket/profiles/draft-problem-profile.html',
|
|
controller: 'DraftTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'create.draft.problem' }
|
|
})
|
|
.state('pwaDraftProblem', {
|
|
url: '/pwa-draft-problem',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcChange: 'false',
|
|
isSrcExt: 'false',
|
|
crossLaunchContext: ''
|
|
},
|
|
data: {
|
|
pageTitle: 'create.draft.problem',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Problem Investigation',
|
|
targetView: 'SV_Edit'
|
|
}
|
|
})
|
|
.state('draftKnownerror', {
|
|
url: '/draft-knownerror',
|
|
templateUrl: 'views/ticket/profiles/draft-knownerror-profile.html',
|
|
controller: 'DraftTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'create.draft.knownerror' }
|
|
})
|
|
.state('pwaDraftKnownerror', {
|
|
url: '/pwa-draft-knownerror',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
params: {
|
|
error: null,
|
|
isSrcChange: 'false',
|
|
crossLaunchContext: ''
|
|
},
|
|
data: {
|
|
pageTitle: 'create.draft.knownerror',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Known Error',
|
|
targetView: 'SV_Edit'
|
|
}
|
|
})
|
|
.state('ticket', {
|
|
url: '/:type/displayid/:displayid',
|
|
templateUrl: 'views/common/ticket-transition.html',
|
|
controller: 'TicketTransitionController',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_RELEASE_USER_ROLE, roles.ITSM_AGENT_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('incident', {
|
|
url: '/incident/:id',
|
|
templateUrl: 'views/ticket/profiles/incident-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
editMode: false
|
|
},
|
|
data: { pageTitle: 'common.labels.incident' }
|
|
})
|
|
.state('incidentPV', {
|
|
url: '/incidentPV/:id',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'common.labels.incident',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Incident',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
})
|
|
.state('editIncidentPV', {
|
|
url: '/edit/incidentPV/:id',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'common.labels.incident',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Incident',
|
|
targetView: 'SV_Edit',
|
|
mode: 'GET'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
context: 'TICKETCONSOLE'
|
|
}
|
|
})
|
|
.state('calendarStudio', {
|
|
url: '/calendarStudio',
|
|
controller: 'StudioController',
|
|
data: { pageTitle: 'header.navigation.calendar' },
|
|
access: [roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_RELEASE_USER_ROLE, roles.ITSM_AGENT_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('ticketConsoleStudio', {
|
|
url: '/ticket-consoleStudio',
|
|
controller: 'StudioController',
|
|
data: { pageTitle: 'header.navigation.ticketConsole' },
|
|
access: [roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_RELEASE_USER_ROLE, roles.ITSM_AGENT_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('assetConsoleStudio', {
|
|
url: '/asset-consoleStudio',
|
|
controller: 'StudioController',
|
|
data: { pageTitle: 'header.navigation.assetConsole' },
|
|
access: [roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('workorder', {
|
|
url: '/workorder/:id',
|
|
templateUrl: 'views/ticket/profiles/workorder-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
params: {
|
|
editMode: false
|
|
},
|
|
data: { pageTitle: 'common.labels.workorder' }
|
|
})
|
|
.state('workorderPV', {
|
|
url: '/workorderPV/:id',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'smartrecorder.button.createWorkorder',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Work Order',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
})
|
|
.state('editWorkorderPV', {
|
|
url: '/edit/workorderPV/:id',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'smartrecorder.button.createWorkorder',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Work Order',
|
|
targetView: 'SV_Edit',
|
|
mode: 'GET'
|
|
},
|
|
params: {
|
|
context: 'TICKETCONSOLE'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
})
|
|
.state('task', {
|
|
url: '/task/:id',
|
|
templateUrl: 'views/ticket/profiles/task-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'common.labels.task' }
|
|
})
|
|
.state('taskPV', {
|
|
url: '/taskPV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.labels.task',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Task',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
}
|
|
})
|
|
.state('editTaskPV', {
|
|
url: '/edit/taskPV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.labels.task',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Task',
|
|
targetView: 'SV_Edit',
|
|
mode: 'GET'
|
|
},
|
|
params: {
|
|
context: 'TICKETCONSOLE'
|
|
}
|
|
})
|
|
.state('request', {
|
|
url: '/request/:id',
|
|
templateUrl: 'views/ticket/profiles/service-request-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
data: { pageTitle: 'common.labels.request' }
|
|
})
|
|
.state('outage', {
|
|
url: '/outage/:id',
|
|
templateUrl: 'views/ticket/ticket-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'common.labels.outage' }
|
|
})
|
|
.state('createWorkorder', {
|
|
url: '/create/workorder',
|
|
templateUrl: 'views/create/create-work-order-v2.html',
|
|
controller: 'CreateWorkOrderV2Controller',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
data: { pageTitle: 'smartrecorder.button.createWorkorder' }
|
|
})
|
|
.state('createWorkorderPV', {
|
|
url: '/create/workorderPV',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'smartrecorder.button.createWorkorder',
|
|
formName: 'SHR:SV_TicketCreate/SV_TicketCreate',
|
|
targetForm: 'Work Order',
|
|
targetView: 'SV_Create',
|
|
mode: 'CREATE'
|
|
},
|
|
access: [roles.ITSM_AGENT_ROLE]
|
|
})
|
|
.state('createBroadcast', {
|
|
url: '/create/broadcast',
|
|
templateUrl: 'views/create/create-broadcast.html',
|
|
controller: 'CreateBroadcastController',
|
|
access: [roles.ITSM_BROADCAST_USER_ROLE],
|
|
data: { pageTitle: 'create.broadcast.header' },
|
|
resolve: {
|
|
PVEnable: ['metadataModel', '$state', function (metadataModel, $state) {
|
|
return metadataModel.getMetadataByType('global').then(function (metadata) {
|
|
var isPwaEnabled = (metadata.configurationParameters['Enable-Progressive-Views'] === 'T' || metadata.configurationParameters['Enable-Progressive-Views'] === 'true');
|
|
isPwaEnabled = localStorage.getItem('overridePV') === 'T' ? false : isPwaEnabled;
|
|
if (isPwaEnabled && localStorage.getItem('midtierUrl')) {
|
|
$state.go('createBroadcastPV');
|
|
}
|
|
else {
|
|
console.info('Either PV not enabled or invalid midtierUrl');
|
|
}
|
|
}).catch(function (error) {
|
|
console.info(error.data.error);
|
|
});
|
|
}]
|
|
}
|
|
})
|
|
.state('createBroadcastPV', {
|
|
url: '/create/broadcastPV',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_BROADCAST_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'create.broadcast.header',
|
|
formName: 'SHR:SV_TicketCreate/SV_TicketCreate',
|
|
targetForm: 'Broadcast',
|
|
targetView: 'SV_Create',
|
|
mode: 'CREATE'
|
|
}
|
|
})
|
|
.state('createAsset', {
|
|
url: '/create/asset',
|
|
templateUrl: 'views/create/create-asset.html',
|
|
controller: 'CreateAssetController',
|
|
access: [roles.ITSM_ASSET_ADMIN_ROLE],
|
|
data: { pageTitle: 'create.asset.header' },
|
|
resolve: {
|
|
PVEnable: ['metadataModel', '$state', function (metadataModel, $state) {
|
|
return metadataModel.getMetadataByType('global').then(function (metadata) {
|
|
var isPwaEnabled = (metadata.configurationParameters['Enable-Progressive-Views'] === 'T' || metadata.configurationParameters['Enable-Progressive-Views'] === 'true');
|
|
isPwaEnabled = localStorage.getItem('overridePV') === 'T' ? false : isPwaEnabled;
|
|
if (isPwaEnabled && localStorage.getItem('midtierUrl')) {
|
|
$state.go('createAssetPV');
|
|
}
|
|
else {
|
|
console.info('Either PV not enabled or invalid midtierUrl');
|
|
}
|
|
}).catch(function (error) {
|
|
console.info(error.data.error);
|
|
});
|
|
}]
|
|
}
|
|
})
|
|
.state('createAssetPV', {
|
|
url: '/create/assetPV',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_ASSET_ADMIN_ROLE, roles.ITSM_ASSET_CREATOR_ROLE],
|
|
data: {
|
|
pageTitle: 'create.asset.header',
|
|
formName: 'SHR:SV_TicketCreate/SV_TicketCreate',
|
|
targetForm: 'Configuration Item',
|
|
targetView: 'SV_Create',
|
|
mode: 'CREATE'
|
|
}
|
|
})
|
|
.state('conversationsHistory', {
|
|
url: '/conversations',
|
|
templateUrl: 'views/chat/history.html',
|
|
controller: 'ChatHistoryController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE],
|
|
data: { pageTitle: 'chat.history.title' }
|
|
})
|
|
.state('change', {
|
|
url: '/change/:id',
|
|
templateUrl: 'views/ticket/profiles/change-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: { pageTitle: 'common.labels.change' }
|
|
})
|
|
.state('changePV', {
|
|
url: '/changePV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.change.problem',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Infrastructure Change',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
}
|
|
})
|
|
.state('editChangePV', {
|
|
url: '/edit/changePV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_CHANGE_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.change.problem',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Infrastructure Change',
|
|
targetView: 'SV_Edit',
|
|
mode: 'GET'
|
|
},
|
|
params: {
|
|
context: 'TICKETCONSOLE'
|
|
}
|
|
})
|
|
.state('release', {
|
|
url: '/release/:id',
|
|
templateUrl: 'views/ticket/profiles/release-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_RELEASE_USER_ROLE],
|
|
data: { pageTitle: 'common.labels.release' }
|
|
})
|
|
.state('activity', {
|
|
url: '/activity/:id',
|
|
templateUrl: 'views/ticket/profiles/activity-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_RELEASE_USER_ROLE],
|
|
data: { pageTitle: 'common.labels.activity' }
|
|
})
|
|
.state('knownerror', {
|
|
url: '/knownerror/:id',
|
|
templateUrl: 'views/ticket/profiles/known-error-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'common.labels.knownerror' }
|
|
})
|
|
.state('knownerrorPV', {
|
|
url: '/knownerrorPV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.labels.knownerror',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Known Error',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
}
|
|
})
|
|
.state('editKnownerrorPV', {
|
|
url: '/edit/knownerrorPV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.labels.knownerror',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Known Error',
|
|
targetView: 'SV_Edit',
|
|
mode: 'GET'
|
|
},
|
|
params: {
|
|
context: 'TICKETCONSOLE'
|
|
}
|
|
})
|
|
.state('createKnownerror', {
|
|
url: '/create/knownerror',
|
|
templateUrl: 'views/known-error/create-known-error.html',
|
|
controller: 'CreateKnownErrorController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'create.knownerror.header' },
|
|
resolve: {
|
|
PVEnable: ['metadataModel', '$state', function (metadataModel, $state) {
|
|
return metadataModel.getMetadataByType('global').then(function (metadata) {
|
|
var isPwaEnabled = (metadata.configurationParameters['Enable-Progressive-Views'] === 'T' || metadata.configurationParameters['Enable-Progressive-Views'] === 'true');
|
|
isPwaEnabled = localStorage.getItem('overridePV') === 'T' ? false : isPwaEnabled;
|
|
if (isPwaEnabled && localStorage.getItem('midtierUrl')) {
|
|
$state.go('createKnownerrorPV');
|
|
}
|
|
else {
|
|
console.info('Either PV not enabled or invalid midtierUrl');
|
|
}
|
|
}).catch(function (error) {
|
|
console.info(error.data.error);
|
|
});
|
|
}]
|
|
}
|
|
})
|
|
.state('createKnownerrorPV', {
|
|
url: '/create/knownerrorPV',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'create.knownerror.header',
|
|
formName: 'SHR:SV_TicketCreate/SV_TicketCreate',
|
|
targetForm: 'Known Error',
|
|
targetView: 'SV_Create',
|
|
mode: 'CREATE'
|
|
}
|
|
})
|
|
.state('createProblem', {
|
|
url: '/create/problem',
|
|
templateUrl: 'views/problem/create-problem.html',
|
|
controller: 'CreateProblemController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'create.problem.header' },
|
|
resolve: {
|
|
PVEnable: ['metadataModel', '$state', function (metadataModel, $state) {
|
|
metadataModel.getMetadataByType('global').then(function (metadata) {
|
|
var isPwaEnabled = (metadata.configurationParameters['Enable-Progressive-Views'] === 'T' || metadata.configurationParameters['Enable-Progressive-Views'] === 'true');
|
|
isPwaEnabled = localStorage.getItem('overridePV') === 'T' ? false : isPwaEnabled;
|
|
if (isPwaEnabled && localStorage.getItem('midtierUrl')) {
|
|
$state.go('createProblemPV');
|
|
}
|
|
else {
|
|
console.info('Either PV not enabled or invalid midtierUrl');
|
|
}
|
|
}).catch(function (error) {
|
|
console.info(error.data.error);
|
|
});
|
|
}]
|
|
}
|
|
})
|
|
.state('createProblemPV', {
|
|
url: '/create/problemPV',
|
|
controller: 'PwaTicketController',
|
|
data: {
|
|
pageTitle: 'create.problem.header',
|
|
formName: 'SHR:SV_TicketCreate/SV_TicketCreate',
|
|
targetForm: 'Problem Investigation',
|
|
targetView: 'SV_Create',
|
|
mode: 'CREATE'
|
|
},
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE]
|
|
})
|
|
.state('problem', {
|
|
url: '/problem/:id',
|
|
templateUrl: 'views/ticket/profiles/problem-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'common.labels.problem' }
|
|
})
|
|
.state('problemPV', {
|
|
url: '/problemPV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.labels.problem',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Problem Investigation',
|
|
targetView: 'SV_View',
|
|
mode: 'GET'
|
|
}
|
|
})
|
|
.state('editProblemPV', {
|
|
url: '/edit/problemPV/:id',
|
|
controller: 'PwaTicketController',
|
|
access: [roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: {
|
|
pageTitle: 'common.labels.problem',
|
|
formName: 'SHR:SV_TicketDisplay/SV_TicketDisplay',
|
|
targetForm: 'Problem Investigation',
|
|
targetView: 'SV_Edit',
|
|
mode: 'GET'
|
|
},
|
|
params: {
|
|
context: 'TICKETCONSOLE'
|
|
}
|
|
})
|
|
.state('location', {
|
|
url: '/location/:id',
|
|
template: '<div class="location-map full-height"><div loading-spinner if="state.loadingMap" centered="true" overlay="true"></div><location-map class="full-height"></location-map></div>',
|
|
controller: 'LocationMapController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE],
|
|
data: { pageTitle: 'field.widget.customerLocationMap.label' }
|
|
})
|
|
.state('chatPopupWindow', {
|
|
url: '/chatPopupWindow',
|
|
template: "<div> <loading-spinner if='!chatWindow' centered='true' overlay='true'></loading-spinner>" +
|
|
"<chat-window is-popup-window='true' chat-room='chatWindow' ng-if='chatWindow'></chat-window> </div>",
|
|
controller: 'ChatPopupWindowController',
|
|
data: { separateWindowMode: true, pageTitle: 'headerMainBar.icon.title.chat' },
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('EmailPopupWindow', {
|
|
url: '/emailPopupWindow',
|
|
template: "<div> <loading-spinner if='!emailInstance' centered='true' overlay='true'></loading-spinner>" +
|
|
"<email-window email-instance='emailInstance' is-popup-window='true' ng-if='emailInstance'></email-window> </div>",
|
|
controller: 'EmailPopupWindowController',
|
|
data: { separateWindowMode: true, pageTitle: 'personInfoCard.label.email' },
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ITSM_CHANGE_USER_ROLE, roles.ITSM_KNOWLEDGE_USER_ROLE, roles.ITSM_PROBLEM_USER_ROLE, roles.ITSM_ASSET_USER_ROLE]
|
|
})
|
|
.state('dlp', {
|
|
url: '/dlp/:id',
|
|
templateUrl: 'views/ticket/profiles/data-loss-prevention-profile.html',
|
|
controller: 'dataLossPreventionProfileController',
|
|
access: [roles.ITSM_AGENT_ROLE],
|
|
data: { pageTitle: 'ticket.detail.dlp' }
|
|
})
|
|
.state('sberequest', {
|
|
url: '/sberequest/:id',
|
|
templateUrl: 'views/ticket/profiles/sbe-request-profile.html',
|
|
controller: 'TicketProfileController',
|
|
access: [roles.ITSM_SBE_USER_ROLE],
|
|
data: { pageTitle: 'ticket.type.sberequest' }
|
|
})
|
|
.state('healthcheck', {
|
|
url: '/healthcheck',
|
|
templateUrl: 'views/admin/health-check/health-check.html',
|
|
controller: 'MonitorController as ctrl',
|
|
access: [roles.ITSM_ADMIN_ROLE],
|
|
data: { pageTitle: 'admin.health.title' }
|
|
})
|
|
.state('liveChatAgentConsole', {
|
|
url: '/live-chat/console',
|
|
templateUrl: 'views/live-chat/live-chat.html',
|
|
controller: 'LiveChatController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ESCHAT_AGENT_ROLE],
|
|
data: { pageTitle: 'common.labels.live-chat', path: 'console' }
|
|
})
|
|
.state('liveChatDashboard', {
|
|
url: '/live-chat/dashboard',
|
|
templateUrl: 'views/live-chat/live-chat.html',
|
|
controller: 'LiveChatController',
|
|
access: [roles.ITSM_AGENT_ROLE, roles.ESCHAT_ADMIN_ROLE],
|
|
data: { pageTitle: 'common.labels.live-chat', path: 'dashboard' }
|
|
});
|
|
}
|
|
])
|
|
// console.debug log level is inconsistent between Chrome/Chromium versions.
|
|
// Currently console.debug requires verbose level. And special setting for console tab in devtools
|
|
// Fix this in Angular way
|
|
.decorator('$log', ['$logProvider', 'topicLoggerProvider', '$delegate', function ($logProvider, topicLoggerProvider, $delegate) {
|
|
// override $log.debug
|
|
$delegate.debug = function () {
|
|
if (!$logProvider.debugEnabled()) {
|
|
return;
|
|
}
|
|
$delegate.log.apply($delegate, arguments);
|
|
};
|
|
$delegate.topic = function () {
|
|
var args = Array.prototype.slice.call(arguments);
|
|
if (!topicLoggerProvider.includesTopic(args[0])) {
|
|
return;
|
|
}
|
|
$delegate.info.apply($delegate, args.slice(1, args.length));
|
|
};
|
|
return $delegate;
|
|
}])
|
|
.run(['$rootScope', '$state', '$location', 'authModel', 'AUTH_EVENTS', 'i18nService', '$q', 'roles', 'permissionModel', '$locale', 'customLocale', '$modalStack', 'DOCSLINK', '$timeout', 'browser', 'systemAlertService',
|
|
function ($rootScope, $state, $location, authModel, AUTH_EVENTS, i18nService, $q, roles, permissionModel, $locale, customLocale, $modalStack, DOCSLINK, $timeout, browser, systemAlertService) {
|
|
var authPromise = null, onLoad = true;
|
|
$rootScope.docsLink = DOCSLINK;
|
|
$.cookie.raw = true; //Avoids replacing the + sign in '+3:00'
|
|
if ($.cookie('user_timezone')) {
|
|
$rootScope.timezone = $.cookie('user_timezone');
|
|
moment.tz.setDefault($rootScope.timezone);
|
|
}
|
|
if ($.cookie('user_locale')) {
|
|
$rootScope.locale = $.cookie('user_locale');
|
|
}
|
|
function setPageTitle(toState) {
|
|
var title = 'Smart IT Universal Client', version = ' 22.1.06';
|
|
if (authModel.isAuthenticated()) {
|
|
if (authModel.isAuthorized(toState.access)
|
|
&& toState && toState.data && toState.data.pageTitle) {
|
|
title += version + ' | ' + i18nService.getLocalizedString(toState.data.pageTitle);
|
|
}
|
|
}
|
|
else {
|
|
title += ' | ' + i18nService.getLocalizedString('user.loginForm.loginButton');
|
|
}
|
|
$rootScope.pageTitle = title;
|
|
}
|
|
$rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState) {
|
|
if (!authPromise) {
|
|
authPromise = authModel.isAuthenticated() ? $q.when(1) : authModel.checkSessionStatus();
|
|
}
|
|
authPromise.finally(function () {
|
|
authPromise = null;
|
|
//In case of RSSO, authentication is not done yet but stateChangeSuccess is called which causes incorrect title while logging.
|
|
if (!authModel.isAuthenticated() && authModel.isSSOEnabled() && onLoad) {
|
|
onLoad = false;
|
|
$timeout(function () {
|
|
setPageTitle(toState);
|
|
}, 1500);
|
|
}
|
|
else {
|
|
setPageTitle(toState);
|
|
}
|
|
});
|
|
});
|
|
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState) {
|
|
//console.log("fromState: " + (fromState && fromState.name) + "; toState: " + (toState && toState.name));
|
|
//START fix to close the modal on browser back button click or keyboard backspace
|
|
//this is a known issue with angular-ui bootstrap modal
|
|
var top = $modalStack.getTop();
|
|
if (top && !(top.value && top.value.modalScope && top.value.modalScope.modalOptions)) {
|
|
$modalStack.dismiss(top.key);
|
|
}
|
|
//END fix
|
|
if (!authPromise) {
|
|
authPromise = authModel.isAuthenticated() ? $q.when(1) : authModel.checkSessionStatus();
|
|
}
|
|
$rootScope.authPromise = authPromise;
|
|
authPromise.then(function () {
|
|
if (!authModel.isAuthorized(toState.access)) {
|
|
event.preventDefault();
|
|
if (authModel.isAuthenticated()) {
|
|
//This check should be done To prevent double redirects for admin-only users(from dashboard to unauthorized)
|
|
if (permissionModel.hasAdminOnlyRole()) {
|
|
//This will be true only when user logs in or reloads the page
|
|
if (toState.name === 'dashboard' && !fromState) {
|
|
$state.go('screenConfiguration');
|
|
}
|
|
else {
|
|
$rootScope.$broadcast(AUTH_EVENTS.NOT_AUTHORIZED);
|
|
}
|
|
}
|
|
else {
|
|
// user is not allowed to access this state
|
|
$rootScope.$broadcast(AUTH_EVENTS.NOT_AUTHORIZED);
|
|
}
|
|
}
|
|
}
|
|
else if (browser.isMobile && (toState.name === 'release' || toState.name === 'request' || toState.name === 'activity' || toState.name === 'createKnowledge')) {
|
|
systemAlertService.error({
|
|
text: i18nService.getLocalizedString('error.' + toState.name + '.notSupported'),
|
|
clear: false,
|
|
displayOnStateChange: true
|
|
});
|
|
$state.go(fromState);
|
|
}
|
|
}).finally(function () {
|
|
authPromise = null;
|
|
});
|
|
});
|
|
/*$rootScope.$on(AUTH_EVENTS.SESSION_ACTIVE, function () {
|
|
console.log("$rootScope.$on(AUTH_EVENTS.SESSION_ACTIVE)");
|
|
$state.go('dashboard');
|
|
});*/
|
|
$rootScope.$on(AUTH_EVENTS.NOT_AUTHORIZED, function () {
|
|
console.log('$rootScope.$on(AUTH_EVENTS.NOT_AUTHORIZED)');
|
|
$state.go('unauthorized');
|
|
});
|
|
angular.merge($locale, customLocale);
|
|
}
|
|
]);
|
|
})();
|