aboutsummaryrefslogtreecommitdiff
path: root/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js
diff options
context:
space:
mode:
authorserver <brownptcdash@gmail.com>2019-12-10 18:12:37 -0500
committerserver <brownptcdash@gmail.com>2019-12-10 18:12:37 -0500
commit7478e610d99d1f2fb383ecbfa0b70d72eae27f81 (patch)
tree59486701838067351f00580315c05690f36a39ce /solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js
parent096718ee546afbd7568bf8ec9e23dca0556d814d (diff)
solr changes
Diffstat (limited to 'solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js')
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js302
1 files changed, 0 insertions, 302 deletions
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js b/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js
deleted file mode 100644
index c31b6f0fb..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- 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 dataimport_timeout = 2000;
-
-solrAdminApp.controller('DataImportController',
- function($scope, $rootScope, $routeParams, $location, $timeout, $interval, $cookies, Mbeans, DataImport, Constants) {
- $scope.resetMenu("dataimport", Constants.IS_COLLECTION_PAGE);
-
- $scope.refresh = function () {
- Mbeans.info({core: $routeParams.core, cat: 'QUERY'}, function (data) {
- var mbeans = data['solr-mbeans'][1];
- $scope.handlers = [];
- for (var key in mbeans) {
- if (mbeans[key]['class'] !== key && mbeans[key]['class'] === 'org.apache.solr.handler.dataimport.DataImportHandler') {
- $scope.handlers.push(key);
- }
- }
- $scope.hasHandlers = $scope.handlers.length > 0;
-
- if (!$routeParams.handler) {
- $location.path("/" + $routeParams.core + "/dataimport/" + $scope.handlers[0]);
- } else {
- $scope.currentHandler = $routeParams.handler;
- }
- });
-
- $scope.handler = $routeParams.handler;
- if ($scope.handler && $scope.handler[0]=="/") {
- $scope.handler = $scope.handler.substr(1);
- }
- if ($scope.handler) {
- DataImport.config({core: $routeParams.core, name: $scope.handler}, function (data) {
- try {
- $scope.config = data.config;
- var xml = $.parseXML(data.config);
- $scope.entities = [];
- $('document > entity', xml).each(function (i, element) {
- $scope.entities.push($(element).attr('name'));
- });
- $scope.refreshStatus();
- } catch (err) {
- console.log(err);
- }
- });
- }
- $scope.lastUpdate = "unknown";
- $scope.lastUpdateUTC = "";
- };
-
- $scope.toggleDebug = function () {
- $scope.isDebugMode = !$scope.isDebugMode;
- if ($scope.isDebugMode) {
- // also enable Debug checkbox
- $scope.form.showDebug = true;
- }
- $scope.showConfiguration = true;
- }
-
- $scope.toggleConfiguration = function () {
- $scope.showConfiguration = !$scope.showConfiguration;
- }
-
- $scope.toggleRawStatus = function () {
- $scope.showRawStatus = !$scope.showRawStatus;
- }
-
- $scope.toggleRawDebug = function () {
- $scope.showRawDebug = !$scope.showRawDebug;
- }
-
- $scope.reload = function () {
- DataImport.reload({core: $routeParams.core, name: $scope.handler}, function () {
- $scope.reloaded = true;
- $timeout(function () {
- $scope.reloaded = false;
- }, 5000);
- $scope.refresh();
- });
- }
-
- $scope.form = {
- command: "full-import",
- verbose: false,
- clean: false,
- commit: true,
- showDebug: false,
- custom: "",
- core: $routeParams.core
- };
-
- $scope.submit = function () {
- var params = {};
- for (var key in $scope.form) {
- if (key == "showDebug") {
- if ($scope.form.showDebug) {
- params["debug"] = true;
- }
- } else {
- params[key] = $scope.form[key];
- }
- }
- if (params.custom.length) {
- var customParams = $scope.form.custom.split("&");
- for (var i in customParams) {
- var parts = customParams[i].split("=");
- params[parts[0]] = parts[1];
- }
- }
- delete params.custom;
-
- if ($scope.isDebugMode) {
- params.dataConfig = $scope.config;
- }
-
- params.core = $routeParams.core;
- params.name = $scope.handler;
-
- DataImport.post(params, function (data) {
- $scope.rawResponse = JSON.stringify(data, null, 2);
- $scope.refreshStatus();
- });
- };
-
- $scope.abort = function () {
- $scope.isAborting = true;
- DataImport.abort({core: $routeParams.core, name: $scope.handler}, function () {
- $timeout(function () {
- $scope.isAborting = false;
- $scope.refreshStatus();
- }, 4000);
- });
- }
-
- $scope.refreshStatus = function () {
-
- console.log("Refresh Status");
-
- $scope.isStatusLoading = true;
- DataImport.status({core: $routeParams.core, name: $scope.handler}, function (data) {
- if (data[0] == "<") {
- $scope.hasHandlers = false;
- return;
- }
-
- var now = new Date();
- $scope.lastUpdate = now.toTimeString().split(' ').shift();
- $scope.lastUpdateUTC = now.toUTCString();
- var messages = data.statusMessages;
- var messagesCount = 0;
- for( var key in messages ) { messagesCount++; }
-
- if (data.status == 'busy') {
- $scope.status = "indexing";
-
- $scope.timeElapsed = data.statusMessages['Time Elapsed'];
- $scope.elapsedSeconds = parseSeconds($scope.timeElapsed);
-
- var info = $scope.timeElapsed ? 'Indexing since ' + $scope.timeElapsed : 'Indexing ...';
- $scope.info = showInfo(messages, true, info, $scope.elapsedSeconds);
-
- } else if (messages.RolledBack) {
- $scope.status = "failure";
- $scope.info = showInfo(messages, true);
- } else if (messages.Aborted) {
- $scope.status = "aborted";
- $scope.info = showInfo(messages, true, 'Aborting current Import ...');
- } else if (data.status == "idle" && messagesCount != 0) {
- $scope.status = "success";
- $scope.info = showInfo(messages, true);
- } else {
- $scope.status = "idle";
- $scope.info = showInfo(messages, false, 'No information available (idle)');
- }
-
- delete data.$promise;
- delete data.$resolved;
-
- $scope.rawStatus = JSON.stringify(data, null, 2);
-
- $scope.isStatusLoading = false;
- $scope.statusUpdated = true;
- $timeout(function () {
- $scope.statusUpdated = false;
- }, dataimport_timeout / 2);
- });
- };
-
- $scope.updateAutoRefresh = function () {
- $scope.autorefresh = !$scope.autorefresh;
- $cookies.dataimport_autorefresh = $scope.autorefresh ? true : null;
- if ($scope.autorefresh) {
- $scope.refreshTimeout = $interval($scope.refreshStatus, dataimport_timeout);
- var onRouteChangeOff = $scope.$on('$routeChangeStart', function() {
- $interval.cancel($scope.refreshTimeout);
- onRouteChangeOff();
- });
-
- } else if ($scope.refreshTimeout) {
- $interval.cancel($scope.refreshTimeout);
- }
- $scope.refreshStatus();
- };
-
- $scope.refresh();
-
-});
-
-var showInfo = function (messages, showFull, info_text, elapsed_seconds) {
-
- var info = {};
- if (info_text) {
- info.text = info_text;
- } else {
- info.text = messages[''] || '';
- // format numbers included in status nicely
- /* @todo this pretty printing is hard to work out how to do in an Angularesque way:
- info.text = info.text.replace(/\d{4,}/g,
- function (match, position, string) {
- return app.format_number(parseInt(match, 10));
- }
- );
- */
-
- var time_taken_text = messages['Time taken'];
- info.timeTaken = parseSeconds(time_taken_text);
- }
- info.showDetails = false;
-
- if (showFull) {
- if (!elapsed_seconds) {
- var time_taken_text = messages['Time taken'];
- elapsed_seconds = parseSeconds(time_taken_text);
- }
-
- info.showDetails = true;
-
- var document_config = {
- 'Requests': 'Total Requests made to DataSource',
- 'Fetched': 'Total Rows Fetched',
- 'Skipped': 'Total Documents Skipped',
- 'Processed': 'Total Documents Processed'
- };
-
- info.docs = [];
- for (var key in document_config) {
- var value = parseInt(messages[document_config[key]], 10);
- var doc = {desc: document_config[key], name: key, value: value};
- if (elapsed_seconds && key != 'Skipped') {
- doc.speed = Math.round(value / elapsed_seconds);
- }
- info.docs.push(doc);
- }
-
- var dates_config = {
- 'Started': 'Full Dump Started',
- 'Aborted': 'Aborted',
- 'Rolledback': 'Rolledback'
- };
-
- info.dates = [];
- for (var key in dates_config) {
- var value = messages[dates_config[key]];
- if (value) {
- value = value.replace(" ", "T")+".000Z";
- console.log(value);
- var date = {desc: dates_config[key], name: key, value: value};
- info.dates.push(date);
- }
- }
- }
- return info;
-}
-
-var parseSeconds = function(time) {
- var seconds = 0;
- var arr = new String(time || '').split('.');
- var parts = arr[0].split(':').reverse();
-
- for (var i = 0; i < parts.length; i++) {
- seconds += ( parseInt(parts[i], 10) || 0 ) * Math.pow(60, i);
- }
-
- if (arr[1] && 5 <= parseInt(arr[1][0], 10)) {
- seconds++; // treat more or equal than .5 as additional second
- }
- return seconds;
-}