// Copyright 2015 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import {actionbarViewName} from 'chrome/chrome_state'; import {breadcrumbsConfig} from 'common/components/breadcrumbs/breadcrumbs_service'; import {stateName} from './replicationcontrollerdetail_state'; import {stateName as replicationControllers} from 'replicationcontrollerlist/replicationcontrollerlist_state'; import {ReplicationControllerDetailActionBarController} from './replicationcontrollerdetailactionbar_controller'; import ReplicationControllerDetailController from './replicationcontrollerdetail_controller'; /** * Configures states for the service view. * * @param {!ui.router.$stateProvider} $stateProvider * @ngInject */ export default function stateConfig($stateProvider) { $stateProvider.state(stateName, { url: '/replicationcontroller/:namespace/:replicationController', resolve: { 'replicationControllerSpecPodsResource': getReplicationControllerSpecPodsResource, 'replicationControllerDetailResource': getReplicationControllerDetailsResource, 'replicationControllerDetail': resolveReplicationControllerDetails, 'replicationControllerEvents': resolveReplicationControllerEvents, }, data: { [breadcrumbsConfig]: { 'label': '{{$stateParams.replicationController}}', 'parent': replicationControllers, }, }, views: { '': { controller: ReplicationControllerDetailController, controllerAs: 'ctrl', templateUrl: 'replicationcontrollerdetail/replicationcontrollerdetail.html', }, [actionbarViewName]: { controller: ReplicationControllerDetailActionBarController, controllerAs: 'ctrl', templateUrl: 'replicationcontrollerdetail/replicationcontrollerdetailactionbar.html', }, }, }); } /** * @param {!./replicationcontrollerdetail_state.StateParams} $stateParams * @param {!angular.$resource} $resource * @return {!angular.Resource} * @ngInject */ export function getReplicationControllerDetailsResource($stateParams, $resource) { return $resource( `api/v1/replicationcontroller/${$stateParams.namespace}/` + `${$stateParams.replicationController}`); } /** * @param {!./replicationcontrollerdetail_state.StateParams} $stateParams * @param {!angular.$resource} $resource * @return {!angular.Resource} * @ngInject */ export function getReplicationControllerSpecPodsResource($stateParams, $resource) { return $resource( `api/v1/replicationcontroller/${$stateParams.namespace}/` + `${$stateParams.replicationController}/update/pod`); } /** * @param {!angular.Resource} * replicationControllerDetailResource * @return {!angular.$q.Promise} * @ngInject */ function resolveReplicationControllerDetails(replicationControllerDetailResource) { return replicationControllerDetailResource.get().$promise; } /** * @param {!./replicationcontrollerdetail_state.StateParams} $stateParams * @param {!angular.$resource} $resource * @return {!angular.$q.Promise} * @ngInject */ function resolveReplicationControllerEvents($stateParams, $resource) { /** @type {!angular.Resource} */ let resource = $resource(`api/v1/event/${$stateParams.namespace}/${$stateParams.replicationController}`); return resource.get().$promise; }