blob: 7b5f9dfbd192ed15d358a67ff0a7243087d74c5d [file] [log] [blame]
Matteo Scandolo686547a2017-08-08 13:05:25 -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 Scandoloa5d03d52016-07-21 11:35:46 -070019(function() {
20 'use strict';
21
22 /**
23 * @ngdoc overview
24 * @name xos.helpers
25 * @description
26 * # xos.Helpers
27 * A collection of helpers to work with XOS <br/>
28 * Currently available components are:
29 * - [NoHyperlinks](/#/module/xos.helpers.NoHyperlinks)
30 * - [SetCSRFToken](/#/module/xos.helpers.SetCSRFToken)
31 * - [xosNotification](/#/module/xos.helpers.xosNotification)
32 * - [XosUserPrefs](/#/module/xos.helpers.XosUserPrefs)
33 * <br/><br/>
34 * A set of angular [$resource](https://docs.angularjs.org/api/ngResource/service/$resource) is provided to work with the API.<br>
35 * You can find the documentation [here](#/rest-api)
36 **/
37
38 angular
39 .module('xos.helpers', [
40 'ngCookies',
41 'ngResource',
42 'ngAnimate',
43 'xos.uiComponents'
44 ])
45 .config(config)
46
47 /**
48 * @ngdoc service
49 * @name xos.helpers._
50 * @description Wrap [lodash](https://lodash.com/docs) in an Angular Service
51 **/
52
53 .factory('_', $window => $window._ );
54
55 function config($httpProvider, $interpolateProvider, $resourceProvider) {
56 $httpProvider.interceptors.push('SetCSRFToken');
57
58 // NOTE http://www.masnun.com/2013/09/18/django-rest-framework-angularjs-resource-trailing-slash-problem.html
59 $resourceProvider.defaults.stripTrailingSlashes = false;
60 }
61})();