| /* |
| 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('CoreOverviewController', |
| function($scope, $rootScope, $routeParams, Luke, CoreSystem, Update, Replication, Ping, Constants) { |
| $scope.resetMenu("overview", Constants.IS_CORE_PAGE); |
| $scope.refreshIndex = function() { |
| Luke.index({core: $routeParams.core}, |
| function(data) { |
| $scope.index = data.index; |
| delete $scope.statsMessage; |
| }, |
| function(error) { |
| $scope.statsMessage = "Luke is not configured"; |
| } |
| ); |
| }; |
| |
| $scope.optimizeIndex = function(core) { |
| Update.optimize({core: $routeParams.core}, |
| function(response) { |
| $scope.refresh(); |
| delete $scope.indexMessage; |
| }, |
| function(error) { |
| $scope.statisticsDisabled = true; |
| $scope.indexMessage = "Optimize broken."; |
| }); |
| }; |
| |
| $scope.refreshReplication = function() { |
| Replication.details({core: $routeParams.core}, |
| function(data) { |
| $scope.isSlave = data.details.isSlave == "true"; |
| $scope.isMaster = data.details.isMaster == "true"; |
| $scope.replication = data.details; |
| }, |
| function(error) { |
| $scope.replicationMessage = "Replication is not configured"; |
| }); |
| /* |
| /replication?command=details&wt=json |
| |
| if( is_slave ) |
| { |
| |
| // warnings if slave version|gen doesn't match what's replicable |
| if( data.indexVersion !== master_data.master.replicableVersion ) |
| { |
| $( '.version', details_element ) |
| .addClass( 'diff' ); |
| } |
| else |
| { |
| $( '.version', details_element ) |
| .removeClass( 'diff' ); |
| } |
| |
| if( data.generation !== master_data.master.replicableGeneration ) |
| { |
| $( '.generation', details_element ) |
| .addClass( 'diff' ); |
| } |
| else |
| { |
| $( '.generation', details_element ) |
| .removeClass( 'diff' ); |
| } |
| } |
| }, |
| |
| */ |
| }; |
| |
| $scope.refreshAdminExtra = function() { |
| }; |
| |
| $scope.refreshSystem = function() { |
| CoreSystem.get({core: $routeParams.core}, |
| function(data) { |
| $scope.core = data.core; |
| delete $scope.systemMessage; |
| }, |
| function(error) { |
| $scope.systemMessage = "/admin/system Handler is not configured"; |
| } |
| ); |
| }; |
| |
| $scope.refreshPing = function() { |
| Ping.status({core: $routeParams.core}, function(data) { |
| if (data.error) { |
| $scope.healthcheckStatus = false; |
| if (data.error.code == 503) { |
| $scope.healthcheckMessage = 'Ping request handler is not configured with a healthcheck file.'; |
| } |
| } else { |
| $scope.healthcheckStatus = data.status == "enabled"; |
| } |
| }); |
| }; |
| |
| $scope.toggleHealthcheck = function() { |
| if ($scope.healthcheckStatus) { |
| Ping.disable( |
| function(data) {$scope.healthcheckStatus = false}, |
| function(error) {$scope.healthcheckMessage = error} |
| ); |
| } else { |
| Ping.enable( |
| function(data) {$scope.healthcheckStatus = true}, |
| function(error) {$scope.healthcheckMessage = error} |
| ); |
| } |
| }; |
| |
| $scope.refresh = function() { |
| $scope.refreshIndex(); |
| $scope.refreshReplication(); |
| $scope.refreshAdminExtra(); |
| $scope.refreshSystem(); |
| $scope.refreshPing(); |
| }; |
| |
| $scope.refresh(); |
| }); |
| |
| /******* |
| |
| // @todo admin-extra |
| var core_basepath = this.active_core.attr( 'data-basepath' ); |
| var content_element = $( '#content' ); |
| |
| content_element |
| .removeClass( 'single' ); |
| |
| if( !app.core_menu.data( 'admin-extra-loaded' ) ) |
| { |
| app.core_menu.data( 'admin-extra-loaded', new Date() ); |
| |
| $.get |
| ( |
| core_basepath + '/admin/file/?file=admin-extra.menu-top.html&contentType=text/html;charset=utf-8', |
| function( menu_extra ) |
| { |
| app.core_menu |
| .prepend( menu_extra ); |
| } |
| ); |
| |
| $.get |
| ( |
| core_basepath + '/admin/file/?file=admin-extra.menu-bottom.html&contentType=text/html;charset=utf-8', |
| function( menu_extra ) |
| { |
| app.core_menu |
| .append( menu_extra ); |
| } |
| ); |
| } |
| |
| |
| |
| ////////////////////////////////// ADMIN EXTRA |
| $.ajax |
| ( |
| { |
| url : core_basepath + '/admin/file/?file=admin-extra.html', |
| dataType : 'html', |
| context : $( '#admin-extra', dashboard_element ), |
| beforeSend : function( xhr, settings ) |
| { |
| $( 'h2', this ) |
| .addClass( 'loader' ); |
| |
| $( '.message', this ) |
| .show() |
| .html( 'Loading' ); |
| |
| $( '.content', this ) |
| .hide(); |
| }, |
| success : function( response, text_status, xhr ) |
| { |
| $( '.message', this ) |
| .hide() |
| .empty(); |
| |
| $( '.content', this ) |
| .show() |
| .html( response ); |
| }, |
| error : function( xhr, text_status, error_thrown) |
| { |
| this |
| .addClass( 'disabled' ); |
| |
| $( '.message', this ) |
| .show() |
| .html( 'We found no "admin-extra.html" file.' ); |
| }, |
| complete : function( xhr, text_status ) |
| { |
| $( 'h2', this ) |
| .removeClass( 'loader' ); |
| } |
| } |
| ); |
| |
| ***/ |