From 7478e610d99d1f2fb383ecbfa0b70d72eae27f81 Mon Sep 17 00:00:00 2001 From: server Date: Tue, 10 Dec 2019 18:12:37 -0500 Subject: solr changes --- .../webapp/js/angular/controllers/plugins.js | 167 +++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js (limited to 'solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js') diff --git a/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js new file mode 100644 index 000000000..a537b37d7 --- /dev/null +++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js @@ -0,0 +1,167 @@ +/* + 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('PluginsController', + function($scope, $rootScope, $routeParams, $location, Mbeans, Constants) { + $scope.resetMenu("plugins", Constants.IS_CORE_PAGE); + + if ($routeParams.legacytype) { + // support legacy URLs. Angular cannot change #path without reloading controller + $location.path("/"+$routeParams.core+"/plugins"); + $location.search("type", $routeParams.legacytype); + return; + } + + $scope.refresh = function() { + Mbeans.stats({core: $routeParams.core}, function (data) { + var type = $location.search().type; + $scope.types = getPluginTypes(data, type); + $scope.type = getSelectedType($scope.types, type); + + if ($scope.type && $routeParams.entry) { + $scope.plugins = $routeParams.entry.split(","); + openPlugins($scope.type, $scope.plugins); + } else { + $scope.plugins = []; + } + }); + }; + + $scope.selectPluginType = function(type) { + $location.search({entry:null, type: type.lower}); + $scope.type = type; + }; + + $scope.selectPlugin = function(plugin) { + plugin.open = !plugin.open; + + if (plugin.open) { + $scope.plugins.push(plugin.name); + } else { + $scope.plugins.splice($scope.plugins.indexOf(plugin.name), 1); + } + + if ($scope.plugins.length==0) { + $location.search("entry", null); + } else { + $location.search("entry", $scope.plugins.join(',')); + } + } + + $scope.startRecording = function() { + $scope.isRecording = true; + Mbeans.reference({core: $routeParams.core}, function(data) { + $scope.reference = data.reference; + console.log($scope.reference); + }) + } + + $scope.stopRecording = function() { + $scope.isRecording = false; + console.log($scope.reference); + Mbeans.delta({core: $routeParams.core}, $scope.reference, function(data) { + parseDelta($scope.types, data); + }); + } + + $scope.refresh(); + }); + +var getPluginTypes = function(data, selected) { + var keys = []; + var mbeans = data["solr-mbeans"]; + for (var i=0; i b.name}); + return keys; +}; + +var getPlugins = function(data) { + var plugins = []; + for (var key in data) { + var pluginProperties = data[key]; + var stats = pluginProperties.stats; + delete pluginProperties.stats; + for (var stat in stats) { + // add breaking space after a bracket or @ to handle wrap long lines: + stats[stat] = new String(stats[stat]).replace( /([\(@])/g, '$1​'); + } + plugin = {name: key, changed: false, stats: stats, open:false}; + plugin.properties = pluginProperties; + plugins.push(plugin); + } + plugins.sort(function(a,b) {return a.name > b.name}); + return plugins; +}; + +var getSelectedType = function(types, selected) { + if (selected) { + for (var i in types) { + if (types[i].lower == selected) { + return types[i]; + } + } + } +}; + +var parseDelta = function(types, data) { + + var getByName = function(list, name) { + for (var i in list) { + if (list[i].name == name) return list[i]; + } + } + + var mbeans = data["solr-mbeans"] + for (var i=0; i=0; + } +} -- cgit v1.2.3-70-g09d2