blob: 84d5db3e5a3aeef655f08977c484336811a60865 [file] [log] [blame]
Matteo Scandolofb46ae62017-08-08 09:10:50 -07001
2/*
3 * Copyright 2017-present Open Networking Foundation
4
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8
9 * http://www.apache.org/licenses/LICENSE-2.0
10
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18
Matteo Scandolo5d962a32017-08-01 18:16:14 -070019import {IXosModelRelation} from '../../views/crud/crud';
Matteo Scandolo1aee1982017-02-17 08:33:23 -080020export interface IXosState extends angular.ui.IState {
21 data: {
Matteo Scandolo5d962a32017-08-01 18:16:14 -070022 model: string,
23 relations?: IXosModelRelation[]
Matteo Scandolo1aee1982017-02-17 08:33:23 -080024 };
25};
26
27export interface IXosRuntimeStatesService {
Matteo Scandoloe0d71ea2016-12-19 11:56:12 -080028 addState(name: string, state: ng.ui.IState): void;
Matteo Scandolof2c3ed62016-12-15 14:32:50 -080029}
30
Matteo Scandolo1aee1982017-02-17 08:33:23 -080031export function XosRuntimeStates($stateProvider: ng.ui.IStateProvider): ng.IServiceProvider {
Matteo Scandoloe0d71ea2016-12-19 11:56:12 -080032 this.$get = function($state: ng.ui.IStateService) {
Matteo Scandolof2c3ed62016-12-15 14:32:50 -080033 return {
34 addState: function(name: string, state: IXosState) {
Matteo Scandolo0e363772017-01-13 11:41:29 -080035 // prevent to add multiple time the same state
36 if (!$state.get(name)) {
37 $stateProvider.state(name, state);
38 }
Matteo Scandolof2c3ed62016-12-15 14:32:50 -080039 }
40 };
41 };
42 return this;
43}