unserver-unify
Version:
533 lines (505 loc) • 18.1 kB
JavaScript
'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',
});
});