UNPKG

@spotinst/spinnaker-deck

Version:

Spinnaker-Deck service, forked with support to Spotinst

78 lines (69 loc) 2.12 kB
import { module } from 'angular'; import { APPLICATION_STATE_PROVIDER, ApplicationStateProvider } from 'core/application/application.state.provider'; import { INestedState, StateConfigProvider } from 'core/navigation/state.provider'; import { TaskNotFound } from './TaskNotFound'; import { TaskReader } from './task.read.service'; export const TASK_STATES = 'spinnaker.core.task.states'; module(TASK_STATES, [APPLICATION_STATE_PROVIDER]).config([ 'applicationStateProvider', 'stateConfigProvider', (applicationStateProvider: ApplicationStateProvider, stateConfigProvider: StateConfigProvider) => { const taskDetails: INestedState = { name: 'taskDetails', url: '/:taskId', views: {}, data: { pageTitleDetails: { title: 'Task Details', nameParam: 'taskId', }, }, }; const tasks: INestedState = { name: 'tasks', url: '/tasks?q', views: { insight: { templateUrl: require('../task/tasks.html'), controller: 'TasksCtrl', controllerAs: 'tasks', }, }, params: { q: { dynamic: true, value: null }, }, data: { pageTitleSection: { title: 'Tasks', }, }, children: [taskDetails], }; const taskLookup: INestedState = { name: 'taskLookup', url: '/tasks/:taskId', params: { taskId: { dynamic: true }, }, redirectTo: (transition) => { const { taskId } = transition.params(); if (!taskId) { return undefined; } return Promise.resolve(TaskReader.getTask(taskId)) .then((task) => transition.router.stateService.target('home.applications.application.tasks.taskDetails', { application: task.application, taskId, }), ) .catch(() => {}); }, views: { 'main@': { component: TaskNotFound, $type: 'react' }, }, }; applicationStateProvider.addChildState(tasks); stateConfigProvider.addToRootState(taskLookup); }, ]);