servicelist_stateconfig.js 1.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// 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 {ServiceListController} from './servicelist_controller';
import {actionbarViewName} from 'chrome/chrome_state';
17
import {breadcrumbsConfig} from 'common/components/breadcrumbs/breadcrumbs_service';
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
import {stateName, stateUrl} from './servicelist_state';

/**
 * Configures states for the service list view.
 *
 * @param {!ui.router.$stateProvider} $stateProvider
 * @ngInject
 */
export default function stateConfig($stateProvider) {
  $stateProvider.state(stateName, {
    url: stateUrl,
    resolve: {
      'serviceListResource': getServiceListResource,
      'serviceList': resolveServiceList,
    },
    data: {
      [breadcrumbsConfig]: {
        'label': 'Services',
      },
    },
    views: {
      '': {
        controller: ServiceListController,
        controllerAs: 'ctrl',
        templateUrl: 'servicelist/servicelist.html',
      },
      [actionbarViewName]: {},
    },
  });
}

/**
 * @param {!angular.$resource} $resource
 * @return {!angular.Resource<!backendApi.ServiceList>}
52
 * @ngInject
53 54 55 56 57 58 59 60
 */
export function getServiceListResource($resource) {
  return $resource('api/v1/services');
}

/**
 * @param {!angular.Resource<!backendApi.ServiceList>} serviceListResource
 * @return {!angular.$q.Promise}
61
 * @ngInject
62 63 64 65
 */
export function resolveServiceList(serviceListResource) {
  return serviceListResource.get().$promise;
}