d7ef2b34bf
The newer version of eslint comes with somewhat stricter rules about indentation and whitespace, so some files have been adjusted to accomodate. The newer version of eslint-config-openstack includes a relaxed version requirement for eslint, as well as a switch/case indentation update. The newer version of the angular eslint rules includes a deprecation rule for $cookieStorage, which has been set to warning. Change-Id: Id201a42e3ab484222f938a541507df2e96da2dcf Partially-Implements: blueprint jscs-cleanup
114 lines
2.8 KiB
JavaScript
114 lines
2.8 KiB
JavaScript
/*
|
|
* 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.
|
|
*/
|
|
|
|
/*global horizonPlugInModules*/
|
|
|
|
(function () {
|
|
'use strict';
|
|
|
|
/**
|
|
* Library modules - modules defined in third-party libraries, including
|
|
* angular's extensions.
|
|
*/
|
|
var libraryModules = [
|
|
'gettext',
|
|
'lrDragNDrop',
|
|
'ngCookies',
|
|
'ngSanitize',
|
|
'smart-table',
|
|
'ui.bootstrap'
|
|
];
|
|
|
|
/**
|
|
* Horizon's built-in modules, including modules from `framework` components
|
|
* and modules from `openstack_dashboard` application core components.
|
|
*/
|
|
var horizonBuiltInModules = [
|
|
'horizon.app.core',
|
|
'horizon.app.tech-debt',
|
|
'horizon.auth',
|
|
'horizon.framework'
|
|
];
|
|
|
|
/**
|
|
* @ngdoc overview
|
|
* @name horizon.app
|
|
* @description
|
|
*
|
|
* # horizon.app
|
|
*
|
|
* Horizon's application level module depends on modules from three
|
|
* sources:
|
|
*
|
|
* 1) Library modules.
|
|
* 2) Horizon's built-in modules.
|
|
* 3) Horizon's plug-in modules.
|
|
*/
|
|
angular
|
|
.module('horizon.app', []
|
|
.concat(libraryModules)
|
|
.concat(horizonBuiltInModules)
|
|
.concat(horizonPlugInModules)
|
|
)
|
|
.run(updateHorizon);
|
|
|
|
updateHorizon.$inject = [
|
|
'gettextCatalog',
|
|
'horizon.framework.conf.spinner_options',
|
|
'horizon.framework.util.tech-debt.helper-functions',
|
|
'$cookieStore',
|
|
'$http',
|
|
'$cookies'
|
|
];
|
|
|
|
function updateHorizon(
|
|
gettextCatalog,
|
|
spinnerOptions,
|
|
hzUtils,
|
|
$cookieStore,
|
|
$http,
|
|
$cookies) {
|
|
|
|
$http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
|
|
|
|
// expose the legacy utils module
|
|
horizon.utils = hzUtils;
|
|
|
|
horizon.conf.spinner_options = spinnerOptions;
|
|
|
|
horizon.cookies = angular.extend({}, $cookieStore, {
|
|
put: put,
|
|
getRaw: getRaw
|
|
});
|
|
|
|
// rewire the angular-gettext catalog to use django catalog
|
|
gettextCatalog.setCurrentLanguage(horizon.languageCode);
|
|
gettextCatalog.setStrings(horizon.languageCode, django.catalog);
|
|
|
|
/*
|
|
* cookies are updated at the end of current $eval, so for the horizon
|
|
* namespace we need to wrap it in a $apply function.
|
|
*/
|
|
function put(key, value) {
|
|
angular.element('body').scope().$apply(function () {
|
|
$cookieStore.put(key, value);
|
|
});
|
|
}
|
|
|
|
function getRaw(key) {
|
|
return $cookies[key];
|
|
}
|
|
}
|
|
}());
|