UNPKG

@spotinst/spinnaker-deck

Version:

Spinnaker-Deck service, forked with support to Spotinst

73 lines (70 loc) 2.44 kB
import { StateParams } from '@uirouter/angularjs'; import { module } from 'angular'; import { APPLICATION_STATE_PROVIDER, ApplicationStateProvider } from 'core/application'; import { SETTINGS } from 'core/config/settings'; import { INestedState, StateConfigProvider } from 'core/navigation'; import { FunctionDetails } from './FunctionDetails'; import { Functions } from './Functions'; import { filterModelConfig } from './filter/FunctionFilterModel'; import { FunctionFilters } from './filter/FunctionFilters'; export const FUNCTION_STATES = 'spinnaker.core.functions.states'; module(FUNCTION_STATES, [APPLICATION_STATE_PROVIDER]).config([ 'applicationStateProvider', 'stateConfigProvider', (applicationStateProvider: ApplicationStateProvider, stateConfigProvider: StateConfigProvider) => { if (!SETTINGS.feature.functions) { return; } const functionDetails: INestedState = { name: 'functionDetails', url: '/functionDetails/:cloudProvider/:account/:region/:functionName', views: { 'detail@../insight': { component: FunctionDetails, $type: 'react', }, }, resolve: { accountId: ['$stateParams', ($stateParams: StateParams) => $stateParams.account], functionObj: [ '$stateParams', ($stateParams: StateParams) => { return { functionName: $stateParams.functionName, account: $stateParams.account, region: $stateParams.region, }; }, ], }, data: { pageTitleDetails: { title: 'Function Details', nameParam: 'functionName', accountParam: 'credentials', regionParam: 'region', }, history: { type: 'functions', }, }, }; const functions: INestedState = { url: `/functions?${stateConfigProvider.paramsToQuery(filterModelConfig)}`, name: 'functions', views: { nav: { component: FunctionFilters, $type: 'react' }, master: { component: Functions, $type: 'react' }, }, params: stateConfigProvider.buildDynamicParams(filterModelConfig), data: { pageTitleSection: { title: 'Functions', }, }, children: [], }; applicationStateProvider.addInsightState(functions); applicationStateProvider.addInsightDetailState(functionDetails); }, ]);