From b54df0ddd0c6a0372327c5aa3668e5a6458fcd64 Mon Sep 17 00:00:00 2001 From: st782s Date: Thu, 4 May 2017 07:48:42 -0400 Subject: [PORTAL-7] Rebase This rebasing includes common libraries and common overlays projects abstraction of components Change-Id: I9a24a338665c7cd058978e8636bc412d9e2fdce8 Signed-off-by: st782s --- ecomp-portal-FE-os/client/src/app.js | 122 +++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 ecomp-portal-FE-os/client/src/app.js (limited to 'ecomp-portal-FE-os/client/src/app.js') 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 -- cgit 1.2.3-korg