blob: b241010d5002ee3719d69eb3cccadd92dd4c22a9 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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('app', [
'ngAnimate',
'ngCookies',
'ngRoute',
'ngDialog',
'ngMaterial',
'ngSanitize',
'material.svgAssetsCache',
'ui-notification',
'tm.pagination',
'ae-datetimepicker',
'localytics.directives',
'pascalprecht.translate'
]).run(
['$rootScope','$location','$cookies',
function ($rootScope,$location,$cookies) {
// var filter = function(url){
// var outFilterArrs = []
// outFilterArrs.push("/login");
// outFilterArrs.push("/reg");
// outFilterArrs.push("/logout");
// outFilterArrs.push("/404");
// var flag = false;
// $.each(outFilterArrs,function(i,value){
// if(url.indexOf(value) > -1){
// flag = true;
// return false;
// }
// });
// return flag;
// }
// if(angular.isDefined($cookies.get("isLogin")) && $cookies.get("isLogin") == 'true'){
// chatApi.login();
// }
$rootScope.$on('$routeChangeSuccess', function() {
var pathArray = $location.url().split("/");
var index = pathArray.indexOf("");
if(index >= 0){
pathArray.remove(index);
}
$rootScope.path = pathArray[0];
//初始化material UI控件
$.material.init();
});
$rootScope.$on('$routeChangeStart',function (evt, next,current) {
window.clearInterval($rootScope._thread);
})
}
]
).animation('.view', function () {
return {
animate: function (element, className, from, to, done) {
//styles
}
}
});
app.provider('getDictName', function () {
var dictList = [];
this.init = function () {
var url = "src/data/dict.json";//无法使用common服务类,地址只能写死
var params = {};
$.get(url, params, function (ret) {
dictList = ret;
})
}
this.$get = function () {
return function (dictType, value) {
for (var i = 0; i < dictList.length; i++) {
var dict = dictList[i];
if (dict.TYPE == dictType && dict.DICT_VALUE == value) {
return dict.DICT_NAME;
}
}
}
}
})
app.config(['$routeProvider', '$httpProvider','$cookiesProvider','getDictNameProvider','$sceProvider','$translateProvider','$mdThemingProvider',
function ($routeProvider, $httpProvider ,$cookiesProvider,getDictNameProvider,$sceProvider,$translateProvider,$mdThemingProvider) {
//关闭html校验,存在安全隐患,但目前没问题,使用ng-bind-html需要注意,防止跨站攻击
$sceProvider.enabled(false);
//前端字典项目初始化
getDictNameProvider.init();
//init angular
$mdThemingProvider.theme('default')
.primaryPalette('pink')
.accentPalette('light-blue');
//设置ajax默认配置
$.ajaxSetup({
type: "POST",
contentType: 'application/json',
cache:false,
timeout : 5000, //超时时间设置,单位毫秒
converters:{
"text json": JSONbig.parse
}
});
$httpProvider.defaults.cache = false;
$routeProvider.when('/', {
templateUrl: 'view/pages/index.html',
controller:'dashboardCtrl'
}).when('/cluster', {
templateUrl: 'view/pages/cluster.html',
controller:'clusterController'
}).when('/topic', {
templateUrl: 'view/pages/topic.html',
controller:'topicController'
}).when('/consumer', {
templateUrl: 'view/pages/consumer.html',
controller:'consumerController'
}).when('/producer', {
templateUrl: 'view/pages/producer.html',
controller:'producerController'
}).when('/message', {
templateUrl: 'view/pages/message.html',
controller:'messageController'
}).when('/ops', {
templateUrl: 'view/pages/ops.html',
controller:'opsController'
}).when('/404', {
templateUrl: '404'
}).otherwise('404');
$translateProvider.translations('en',en);
$translateProvider.translations('zh',zh);
$translateProvider.preferredLanguage('en');
$translateProvider.useCookieStorage();
// $translateProvider.useSanitizeValueStrategy('sanitize');
}]);
app.filter('range', function() {
return function(input, range) {
var total = parseInt(range.totalPage) + 1;
var count = 5;
for (var i = range.start; i<total; i++) {
if(count > 0){
input.push(i);
count -- ;
}else {
break;
}
}
return input;
};
});
app.filter('dict',['getDictName',function(getDictName){
return function(value,type){
return getDictName(type,value);
}
}])
/**
* 数组扩展方法,移除数组中某一元素或某一段元素
* @param from 需要移除元素的索引开始值(只传一个参数表示单独移除该元素)
* @param to 需要移除元素的索引结束值
* @returns {*}
*/
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
/**
* 根据元素值查询数组中元素的索引
* @param val
* @returns {number}
*/
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};