@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
73 lines (70 loc) • 2.44 kB
text/typescript
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);
},
]);