diff options
Diffstat (limited to 'solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js')
-rw-r--r-- | solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js new file mode 100644 index 000000000..585c90a21 --- /dev/null +++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js @@ -0,0 +1,158 @@ +/* + 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. +*/ + +var format_time_content = function( time, timeZone ) { + var format_time_options = {}; + if (timeZone && timeZone!="Local") { + format_time_options.timeZone = timeZone; + } + return time.toLocaleString( undefined, format_time_options ); +} + +solrAdminApp.controller('LoggingController', + function($scope, $timeout, $cookies, Logging, Constants){ + $scope.resetMenu("logging", Constants.IS_ROOT_PAGE); + $scope.timezone = $cookies.logging_timezone || "Local"; + $scope.refresh = function() { + Logging.events(function(data) { + $scope.since = new Date(); + $scope.sinceDisplay = format_time_content($scope.since, "Local"); + var events = data.history.docs; + for (var i=0; i<events.length; i++) { + var event = events[i]; + var time = new Date(event.time); + event.local_time = format_time_content(time, "Local"); + event.utc_time = format_time_content(time, "UTC"); + event.loggerBase = event.logger.split( '.' ).pop(); + + if( !event.trace ) { + var lines = event.message.split( "\n" ); + if( lines.length > 1) { + event.trace = event.message; + event.message = lines[0]; + } + } + event.message = event.message.replace(/,/g, ',​'); + event.showTrace = false; + } + $scope.events = events; + $scope.watcher = data.watcher; + /* @todo sticky_mode + // state element is in viewport + sticky_mode = ( state.position().top <= $( window ).scrollTop() + $( window ).height() - ( $( 'body' ).height() - state.position().top ) ); + // initial request + if( 0 === since ) { + sticky_mode = true; + } + $scope.loggingEvents = events; + + if( sticky_mode ) + { + $( 'body' ) + .animate + ( + { scrollTop: state.position().top }, + 1000 + ); + } + */ + }); + $scope.timeout = $timeout($scope.refresh, 10000); + var onRouteChangeOff = $scope.$on('$routeChangeStart', function() { + $timeout.cancel($scope.timeout); + onRouteChangeOff(); + }); + }; + $scope.refresh(); + $scope.toggleRefresh = function() { + if(!$scope.stopped) { + $scope.stopped = true; + $timeout.cancel($scope.timeout); + } else { + $scope.stopped = false; + $scope.timeout = $timeout($scope.refresh, 10000); + } + }; + $scope.toggleTimezone = function() { + $scope.timezone = ($scope.timezone=="Local") ? "UTC":"Local"; + $cookies.logging_timezone = $scope.timezone; + } + $scope.toggleRow = function(event) { + event.showTrace =! event.showTrace; + }; + } +) + +.controller('LoggingLevelController', + function($scope, Logging) { + $scope.resetMenu("logging-levels"); + + var packageOf = function(logger) { + var parts = logger.name.split("."); + return !parts.pop() ? "" : parts.join("."); + }; + + var shortNameOf = function(logger) {return logger.name.split(".").pop();} + + var makeTree = function(loggers, packag) { + var tree = []; + for (var i=0; i<loggers.length; i++) { + var logger = loggers[i]; + logger.packag = packageOf(logger); + logger.short = shortNameOf(logger); + if (logger.packag == packag) { + logger.children = makeTree(loggers, logger.name); + tree.push(logger); + } + } + return tree; + }; + + $scope.refresh = function() { + Logging.levels(function(data) { + $scope.logging = makeTree(data.loggers, ""); + $scope.watcher = data.watcher; + $scope.levels = []; + for (level in data.levels) { + $scope.levels.push({name:data.levels[level], pos:level}); + } + }); + }; + + $scope.toggleOptions = function(logger) { + if (logger.showOptions) { + logger.showOptions = false; + delete $scope.currentLogger; + } else { + if ($scope.currentLogger) { + $scope.currentLogger.showOptions = false; + } + logger.showOptions = true; + $scope.currentLogger = logger; + } + }; + + $scope.setLevel = function(logger, newLevel) { + var setString = logger.name + ":" + newLevel; + logger.showOptions = false; + Logging.setLevel({set: setString}, function(data) { + $scope.refresh(); + }); + }; + + $scope.refresh(); + }); |