/* | |
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. | |
*/ | |
solrAdminApp.controller('ThreadsController', | |
function($scope, Threads, Constants){ | |
$scope.resetMenu("threads", Constants.IS_ROOT_PAGE); | |
$scope.refresh = function() { | |
Threads.get(function(data) { | |
var threadDump = data.system.threadDump; | |
var threads = []; | |
for (var i=1; i<threadDump.length; i+=2) { | |
var thread = threadDump[i]; | |
if (!!thread.stackTrace) { | |
var stackTrace = []; | |
for (var j=0; j<thread.stackTrace.length; j++) { | |
var trace = thread.stackTrace[j].replace("(", "\u200B("); // allow wrapping to happen, \u200B is a zero-width space | |
stackTrace.push({id:thread.id + ":" + j, trace: trace}); | |
} | |
thread.stackTrace = stackTrace; | |
} | |
threads.push(thread); | |
} | |
$scope.threads = threads; | |
}); | |
}; | |
$scope.toggleStacktrace = function(thread) { | |
thread.showStackTrace = !thread.showStackTrace; | |
}; | |
$scope.toggleStacktraces = function() { | |
$scope.showAllStacktraces = !$scope.showAllStacktraces; | |
for (var i=0; i<$scope.threads.length; i++) { | |
$scope.threads[i].showStackTrace = $scope.showAllStacktraces; | |
} | |
}; | |
$scope.refresh(); | |
}); |