UNPKG

unserver-unify

Version:

533 lines (505 loc) 18.1 kB
'use strict'; angular.module('bamboo', ['bamboo.setting', 'bamboo.position', 'bamboo.aboutus', 'ezfb', 'angular-bind-html-compile', 'bamboo.vmeeting', 'bamboo.courseinfo', 'bamboo.class', 'bamboo.departments', 'bamboo.job', 'bamboo.common', 'bamboo.project', 'bamboo.help', 'bamboo.cfcourse', 'bamboo.course', 'bamboo.subject', 'bamboo.mystudy', 'bamboo.news', 'bamboo.event', 'bamboo.announcement', 'bamboo.topic', 'bamboo.user', 'bamboo.teacher', 'bamboo.blog', 'bamboo.material', 'bamboo.exhibition', 'bamboo.product', 'bamboo.project', 'bamboo.company', 'bamboo.bbs', 'bamboo.survey', 'bamboo.school', 'ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngResource', 'textAngular', 'ui.router', 'ui.bootstrap', 'tc.chartjs', 'angular-loading-bar', 'pascalprecht.translate', 'angularUtils.directives.dirPagination', 'bootstrapLightbox', 'angularFileUpload', 'ngImageCompress', 'smart-table', 'ncy-angular-breadcrumb', 'smoothScroll', 'com.2fdevs.videogular', 'bamboo.ofcourse', 'com.2fdevs.videogular.plugins.controls', 'com.2fdevs.videogular.plugins.buffering', 'com.2fdevs.videogular.plugins.overlayplay','bamboo.playback', 'com.2fdevs.videogular.plugins.poster', 'toastr', 'FBAngular', 'ngStorage', 'ng.deviceDetector', 'angular-pdf-viewer', 'ui.calendar', 'camera', 'youtube-embed', 'duScroll', 'timer', 'angular-timeline', 'ngMap','bamboo.coursebundle', '720kb.socialshare', 'infinite-scroll', 'bamboo.sharedrive', 'bamboo.additional', 'bamboo.comadmin', 'ngRateIt', 'slick', 'ui.select', 'permission', 'permission.ui', 'ngTagsInput', 'ngDragDrop', 'ja.qr','videogular.plugins.vimeo','info.vietnamcode.nampnq.videogular.plugins.youtube']).run( ['$rootScope', '$state', '$stateParams', 'loginService', '$uibModal', '$timeout', '$localStorage', '$window', 'pwdService', 'PermPermissionStore', 'PermRoleStore','CommonService', function($rootScope, $state, $stateParams, loginService, $uibModal, $timeout, $localStorage, $window, pwdService, PermPermissionStore, PermRoleStore,CommonService) { // It's very handy to add references to $state and $stateParams to the $rootScope // so that you can access them from any scope within your applications.For example, // <li ng-class="{ active: $state.includes('contacts.list') }"> will set the <li> // to active whenever 'contacts.list' or one of its decendents is active. $rootScope.$state = $state; // console.log($state); $rootScope.$stateParams = $stateParams; $rootScope.$on('$stateChangeSuccess', function(event, to, toParams, from, fromParams) { $rootScope.$previousState = from; $rootScope.$previousStateParams = fromParams; $window.scrollTo(0, 0); //scroll to top of page after each route change }); loginService.getLoginInfo().then(function(user) { if (user) { if (user.passNeedToUpdate) { pwdService.alertResetPwdDlg(); }else{ console.log("----- release note ----"); CommonService.alertReleaseNotesDlg(); } } else { PermPermissionStore.clearStore(); PermRoleStore.clearStore(); } }); loginService.controlPermissions(); // hook $localStorage under $rootScope $rootScope.$storage = $localStorage; // set timeout to 1 hour, if no user input during 1 hour, logout current user and return to login page $rootScope.$storage.idleTime = 0; //Increment the idle time counter every minute. var idleInterval = setInterval(timerIncrement, 60 * 1000 /*1000 60*1000*/ ); // 1 min $(document).ready(function() { //Zero the idle timer on mouse movement. $(this).mousemove(function(e) { $rootScope.$storage.idleTime = 0; }); $(this).keypress(function(e) { $rootScope.$storage.idleTime = 0; }); }); function timerIncrement() { $rootScope.$storage.idleTime = $rootScope.$storage.idleTime + 1; var TIMELIMIT = loginService.school.autoLogoutTimer || 60; console.log(TIMELIMIT); if ($rootScope.$storage.idleTime == TIMELIMIT /*1 60*/ ) { // 60 min // open modal to ask for user input $uibModal.open({ templateUrl: "components/dialog/timeout-dlg.html", size: 'xs', controller: 'ShowTimeoutDialogCtrl' }).result.then(function() { // if the user press the continue button $rootScope.$storage.idleTime = 0; //restart the timeout value }, function() {}); } else if ($rootScope.$storage.idleTime > (TIMELIMIT + 1)) { // 61 min // stop the interval clearInterval(idleInterval); loginService.logout(); } } } ]).config(function($breadcrumbProvider) { $breadcrumbProvider.setOptions({ prefixStateName: 'index.home', templateUrl: 'components/common/breadcrumb.html', includeAbstract: true }); }).config(function(toastrConfig) { angular.extend(toastrConfig, { closeButton: true, debug: false, progressBar: true, positionClass: "toast-bottom-right", onclick: null, showDuration: "400", hideDuration: "1000", timeOut: "7000", extendedTimeOut: "1000", showEasing: "swing", hideEasing: "linear", showMethod: "fadeIn", hideMethod: "fadeOut" }); }).config(function($stateProvider, $urlRouterProvider) { $stateProvider.state('errstate', { url: "/pagenotfound", templateUrl: "app/common/404.html", ncyBreadcrumb: { label: 'Page Not Found' }, }).state('403', { url: "/needlogin", templateProvider: function(deviceDetector, $templateFactory) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/login/mobile_login.html'; } else { url = 'app/common/403.html'; } return $templateFactory.fromUrl(url); }, //templateUrl: "app/common/403.html", ncyBreadcrumb: { label: 'Need Login' }, }).state('index', { abstract: true, templateUrl: "components/common/content.html", ncyBreadcrumb: { skip: true // Never display this state in breadcrumb. }, resolve: { loginStatus: function(loginService, $q) { return loginService.getLoginInfo().then(function(user) { if (user) { return $q.when(loginService.loginUser(user)); } else { return $q.when(true); } }); } } }).state('index.home', { url: "/home", templateProvider: function(deviceDetector, $templateFactory, loginService) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { if(loginService.subDomain == 'wdbamboo' || loginService.subDomain == 'bamboosys') { url = 'app/home/mobile_homewd.html'; } else { url = 'app/home/mobile_home.html'; } } else { url = 'app/home/home.html'; } return $templateFactory.fromUrl(url); }, //templateUrl: "app/home/home.html", ncyBreadcrumb: { label: 'Home' }, }).state('index.home.apps', { url: "/apps", views: { "@index": { templateProvider: function(deviceDetector, $templateFactory, loginService) { var url = 'components/content/unloginhint.html'; if (loginService.user && deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/home/mobile_app.html'; } else if ( loginService.user ) { url = 'app/home/app.html'; } return $templateFactory.fromUrl(url); }, } }, ncyBreadcrumb: { label: 'Online Applications' }, }).state('index.home.cmec', { url: "/cmec", views: { "@index": { templateUrl: 'app/home/cmec.html' } }, ncyBreadcrumb: { skip: true, }, }).state('index.home.arg', { url: "/arg", views: { "@index": { templateUrl: 'app/home/arg/arg.html' } }, ncyBreadcrumb: { skip: true, }, }).state('index.home.poiz', { url: "/poiz", views: { "@index": { templateProvider: function(deviceDetector, $templateFactory) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/home/mobile_homepoiz.html'; } else { url = 'app/home/home_t7.html'; } return $templateFactory.fromUrl(url); } } }, ncyBreadcrumb: { skip: true, } }).state('index.home.genx', { url: "/genx", views: { "@index": { templateProvider: function(deviceDetector, $templateFactory) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/home/gsx/mobile_genshuixue.html'; } else { url = 'app/home/gsx/genshuixue.html'; } return $templateFactory.fromUrl(url); }, //templateUrl: 'app/home/genshuixue.html' } }, ncyBreadcrumb: { skip: true, }, }).state('index.home.opernlearning', { url: "/openlearning", views: { "@index": { templateProvider: function(deviceDetector, $templateFactory) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/home/openlearning/mobile_home.html'; } else { url = 'app/home/openlearning/home.html'; } return $templateFactory.fromUrl(url); }, //templateUrl: 'app/home/genshuixue.html' } }, ncyBreadcrumb: { skip: true, }, }).state('index.home.fmas', { url: "/fmas", views: { "@index": { templateProvider: function(deviceDetector, $templateFactory) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/home/mobile_fmas.html'; } else { url = 'app/home/fmas.html'; } return $templateFactory.fromUrl(url); }, } }, ncyBreadcrumb: { skip: true, }, }).state('index.advertise', { url: "/index", //templateUrl: "app/home/adv.html", templateProvider: function(deviceDetector, $templateFactory) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/home/mobile_adv.html'; } else { url = 'app/home/adv.html'; } return $templateFactory.fromUrl(url); }, ncyBreadcrumb: { skip: true, }, }).state('index.pricing', { url: "/pricing", // views: { // "@index": { // templateProvider: function($templateFactory, loginService) { // var url = 'components/content/unloginhint.html'; // if (loginService.user) { // url = 'app/pricing/pricing.html'; // } // return $templateFactory.fromUrl(url); // } // } // }, templateUrl: "app/pricing/pricing.html", ncyBreadcrumb: { label: 'Pricing' }, }).state('index.request-reset-pwd', { url: "/request-reset-pwd", templateProvider: function(deviceDetector, $templateFactory) { var url = ''; if (deviceDetector.isMobile() && !deviceDetector.isTablet()) { url = 'app/login/mobile-request-reset-pwd.html'; } else { url = 'app/login/request-reset-pwd.html'; } return $templateFactory.fromUrl(url); }, //templateUrl: "app/login/request-reset-pwd.html", ncyBreadcrumb: { label: 'Reset Password' }, }).state('index.activeaccount', { url: "/active_account", templateUrl: "app/home/info.html", ncyBreadcrumb: { label: 'Account Activation' }, controller: 'ActivateController as ctrl', }).state('index.info', { url: "/info/:info/:error", templateUrl: "app/home/info.html", ncyBreadcrumb: { label: 'Info' }, }).state('index.logincallback', { url: "/otherlogin/:type", templateUrl: "app/home/logincallback.html", ncyBreadcrumb: { label: 'Info' }, }).state('index.agreement', { url: "/agreement", templateUrl: "app/login/agreement.html", ncyBreadcrumb: { label: 'Agreement' }, }).state('index.surveryagree', { url: "/surveryagree", templateUrl: "app/login/surveyagreement.html", ncyBreadcrumb: { label: 'Agreement' }, }).state('index.enviroment', { url: "/enviroment", templateUrl: "app/login/enviroment.html", ncyBreadcrumb: { label: 'Enviroment' }, }).state('index.reset-pwd', { url: "/reset-pwd", templateUrl: "app/login/reset-pwd.html", ncyBreadcrumb: { label: 'Reset Password' }, }).state('index.ourmission', { url: "/schoolmission", templateUrl: "app/help/mission.html", ncyBreadcrumb: { label: 'Our Mission' }, }).state('index.ourmission.detail', { url: "/detail/:id", views: { "@index.aboutus": { templateUrl: 'app/aboutus/itemdetail.html' } }, ncyBreadcrumb: { label: 'Detail' }, }).state('index.404', { url: '/404', templateUrl: 'app/common/404.html', ncyBreadcrumb: { label: '404 Error' }, }).state('index.mobile', { url: '/mobile', template: '<div ui-view></div>', ncyBreadcrumb: { skip: true // Never display this state in breadcrumb. }, abstract: true }).state('index.mobile.login', { url: 'login', templateUrl: 'app/login/mobile_login.html', /*views : { '@index' : { templateUrl : 'app/login/mobile_login.html', } }, */ ncyBreadcrumb: { label: 'Login' }, }).state('index.caslogin', { url: '/caslogin', templateUrl: 'app/login/cas_login.html', /*views : { '@index' : { templateUrl : 'app/login/mobile_login.html', } }, */ ncyBreadcrumb: { label: 'Login' }, }).state('index.sglogin', { url: '/login', templateUrl: 'app/login/sglogin.html', ncyBreadcrumb: { label: 'Login' }, }).state('index.enterpriselogin', { url: '/edulogin', templateUrl: 'app/login/enterpriselogin.html', ncyBreadcrumb: { label: 'Login' }, }).state('index.pagelogin', { url: '/loginpage', templateUrl: 'app/login/login_page.html', ncyBreadcrumb: { label: 'Login' }, }).state('index.oauthlogin', { url: '/oauthlogin/:aid', templateUrl: 'app/login/oauth_login.html', ncyBreadcrumb: { label: 'Oauth Login' }, }).state('index.mobile.register', { url: 'register', views: { '@index': { templateUrl: 'app/login/mobile_register.html', } }, ncyBreadcrumb: { label: 'Register' }, }); $urlRouterProvider.otherwise('/index'); }).config(['$translateProvider', function($translateProvider) { $translateProvider.useStaticFilesLoader({ prefix: 'assets/i18n/', //json文件路径 suffix: '.json' }); $translateProvider.registerAvailableLanguageKeys(['en_US', 'Chinese','France', 'en_normal', 'Chinese_k12', 'Chinese_university', 'en_associate', 'Chinese_associate', 'en_gsx', 'Chinese_gsx', 'Chinese_poiz', 'en_poiz', 'Chinese_iaf', 'en_iaf', 'en_sgpower', 'en_stec', 'Chinese_stec', 'Chinese_sgpower'], { 'en_US': 'en_US', 'zh_CN': 'Chinese', 'France': 'France', 'en': 'en_US', 'zh_k12': 'Chinese_k12', 'en_normal': 'en_normal', 'zh_university': 'Chinese_university', 'en_associate': 'en_associate', 'zh_associate': 'Chinese_associate', 'en_gsx': 'en_gsx', 'en_stec': 'en_stec', 'zh_stec': 'Chinese_stec', 'zh_gsx': 'Chinese_gsx', 'zh_sgpower': 'Chinese_sgpower', 'en_sgpower': 'en_sgpower', 'en_poiz': 'en_poiz', 'zh_poiz': 'Chinese_poiz', 'en_hdb': 'en_hdb', 'zh_hdb': 'Chinese_hdb', 'en_iaf': 'en_iaf', 'zh_iaf': 'Chinese_iaf', }).preferredLanguage('en_US'); // Enable escaping of HTML $translateProvider.useSanitizeValueStrategy('sanitizeParameters'); }]).config(['$localStorageProvider', function($localStorageProvider) { $localStorageProvider.setKeyPrefix('BambooPrefix'); } ]).config(['$httpProvider', function($httpProvider) { $httpProvider.interceptors.push(['$q', '$injector', function($q, $injector) { return { request: function(config) { return config || $q.when(config); }, responseError: function(response) { if (response.status === 403) { $injector.get('$state').transitionTo('403'); } // console.log(response.status); return $q.reject(response); } }; } ]); }]).config(function(LightboxProvider) { // set a custom template LightboxProvider.templateUrl = 'components/dialog/lightbox-dlg.html'; }).controller('ShowTimeoutDialogCtrl', function($scope, $timeout,$uibModalInstance) { $scope.confirmTimeout = function() { $uibModalInstance.close(); }; // $scope.subdomain = loginService.subDomain; // dismiss this dig after 1 min $timeout(function() { console.log('no user input'); $uibModalInstance.dismiss() }, 60 * 1000 - 10); }).config(function(ezfbProvider) { ezfbProvider.setInitParams({ // This is my FB app id for plunker demo app appId: '422227004811114', }); });