summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE-os/client/src/app.js
diff options
context:
space:
mode:
authorst782s <statta@research.att.com>2017-05-04 07:48:42 -0400
committerst782s <statta@research.att.com>2017-05-04 12:28:17 -0400
commitb54df0ddd0c6a0372327c5aa3668e5a6458fcd64 (patch)
treee69cfa9b314a801bd187cf0145d1d4306436229c /ecomp-portal-FE-os/client/src/app.js
parent39d1e62c84041831bfc52cca73b5ed5efaf57d27 (diff)
[PORTAL-7] Rebase
This rebasing includes common libraries and common overlays projects abstraction of components Change-Id: I9a24a338665c7cd058978e8636bc412d9e2fdce8 Signed-off-by: st782s <statta@research.att.com>
Diffstat (limited to 'ecomp-portal-FE-os/client/src/app.js')
-rw-r--r--ecomp-portal-FE-os/client/src/app.js122
1 files changed, 122 insertions, 0 deletions
diff --git a/ecomp-portal-FE-os/client/src/app.js b/ecomp-portal-FE-os/client/src/app.js
new file mode 100644
index 00000000..8a1897fc
--- /dev/null
+++ b/ecomp-portal-FE-os/client/src/app.js
@@ -0,0 +1,122 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.
+ * ================================================================================
+ */
+'use strict';
+
+var app = angular.module('ecompApp', [
+ 'ngCookies',
+ 'ngResource',
+ 'ngSanitize',
+ 'ui.router',
+ 'ecomp.conf',
+ 'ngMessages',
+ 'ui.select',
+ 'angular-cache',
+ 'ngDialog',
+ 'gridster',
+ 'angular-gestures',
+ 'uuid',
+ 'ui.bootstrap',
+ 'ngMaterial',
+ 'oc.lazyLoad',
+ 'b2b.att'
+ ])
+ .config(($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider, ngDialogProvider, $controllerProvider, hammerDefaultOptsProvider) => {
+ app.controllerProvider = $controllerProvider;
+ $urlRouterProvider.otherwise('/error404');
+ $locationProvider.html5Mode(true);
+
+ //initialize get if not there
+ if (!$httpProvider.defaults.headers.get) {
+ $httpProvider.defaults.headers.get = {};
+ }
+ var myHostName;
+ myHostName = location.host;
+
+
+ //withCredentials flag on the XHR object - add cookie to XHR requests
+ if (!(myHostName.includes("localhost"))) { // Don't load this for Mock
+ $httpProvider.defaults.withCredentials = true;
+ }
+
+ $httpProvider.defaults.useXDomain = true;
+ $httpProvider.defaults.timeout = 30000;
+
+ //default configuration for ngDialog modal
+ ngDialogProvider.setDefaults({
+ className: 'ngdialog-theme-default',
+ showClose: true,
+ closeByDocument: false,
+ closeByEscape: false
+ });
+
+ //hammer defaults for gestures
+ hammerDefaultOptsProvider.set({
+ recognizers: [[Hammer.Pan, 'enabled']]
+ });
+
+ if (!(myHostName.includes("localhost"))) {
+ $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';
+ $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
+ $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
+ }
+
+
+ //interceptor here:
+ var interceptor = function ($q, $injector, $log) {
+ return {
+ 'responseError': function (rejection) {
+ $log.error('Interceptor rejection: ' + JSON.stringify(rejection));
+ var $state = $injector.get('$state');
+ switch (rejection.status) {
+ case 401:
+ var globalLoginUrl = rejection.headers()['global-login-url'];
+ if (globalLoginUrl) {
+ window.location = globalLoginUrl +
+ (globalLoginUrl.indexOf('?') === -1 ? '?' : '') +
+ '&retUrl=' + encodeURI(window.location);
+ return;
+ }
+ break;
+ default:
+ //handle internal server error
+ }
+ return $q.reject(rejection);
+ }
+ };
+ };
+ $httpProvider.interceptors.push(interceptor);
+
+ }).run(($http, CacheFactory) => {
+ //default configuration for cache factory
+ $http.defaults.cache = CacheFactory('defaultCache', {
+ maxAge: 15 * 60 * 1000, // Items added to this cache expire after 15 minutes
+ cacheFlushInterval: 60 * 60 * 1000, // This cache will clear itself every hour
+ deleteOnExpire: 'aggressive' // Items will be deleted from this cache when they expire
+ });
+ });
+
+
+angular.module( 'ecompApp' ).config( [
+'$compileProvider',
+function( $compileProvider )
+{
+ $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension):/);
+}
+]); \ No newline at end of file