aboutsummaryrefslogtreecommitdiff
path: root/solr-8.3.1/server/solr-webapp/webapp/js/angular/services.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.3.1/server/solr-webapp/webapp/js/angular/services.js
parent096718ee546afbd7568bf8ec9e23dca0556d814d (diff)
solr changes
Diffstat (limited to 'solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js')
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js339
1 files changed, 339 insertions, 0 deletions
diff --git a/solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js
new file mode 100644
index 000000000..8b371b6ff
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js
@@ -0,0 +1,339 @@
+/*
+ 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 solrAdminServices = angular.module('solrAdminServices', ['ngResource']);
+
+solrAdminServices.factory('System',
+ ['$resource', function($resource) {
+ return $resource('admin/info/system', {"wt":"json", "nodes": "@nodes", "_":Date.now()});
+ }])
+.factory('Metrics',
+ ['$resource', function($resource) {
+ return $resource('admin/metrics', {"wt":"json", "nodes": "@nodes", "prefix":"@prefix", "_":Date.now()});
+ }])
+.factory('Collections',
+ ['$resource', function($resource) {
+ return $resource('admin/collections',
+ {'wt':'json', '_':Date.now()}, {
+ "list": {params:{action: "LIST"}},
+ "listaliases": {params:{action: "LISTALIASES"}},
+ "status": {params:{action: "CLUSTERSTATUS"}},
+ "add": {params:{action: "CREATE"}},
+ "delete": {params:{action: "DELETE"}},
+ "rename": {params:{action: "RENAME"}},
+ "createAlias": {params:{action: "CREATEALIAS"}},
+ "deleteAlias": {params:{action: "DELETEALIAS"}},
+ "deleteReplica": {params:{action: "DELETEREPLICA"}},
+ "addReplica": {params:{action: "ADDREPLICA"}},
+ "deleteShard": {params:{action: "DELETESHARD"}},
+ "reload": {method: "GET", params:{action:"RELOAD", core: "@core"}}
+ });
+ }])
+.factory('Cores',
+ ['$resource', function($resource) {
+ return $resource('admin/cores',
+ {'wt':'json', '_':Date.now()}, {
+ "query": {},
+ "list": {params:{indexInfo: false}},
+ "add": {params:{action: "CREATE"}},
+ "unload": {params:{action: "UNLOAD", core: "@core"}},
+ "rename": {params:{action: "RENAME"}},
+ "swap": {params:{action: "SWAP"}},
+ "reload": {method: "GET", params:{action:"RELOAD", core: "@core"}, headers:{doNotIntercept: "true"}}
+ });
+ }])
+.factory('Logging',
+ ['$resource', function($resource) {
+ return $resource('admin/info/logging', {'wt':'json', '_':Date.now()}, {
+ "events": {params: {since:'0'}},
+ "levels": {},
+ "setLevel": {}
+ });
+ }])
+.factory('Zookeeper',
+ ['$resource', function($resource) {
+ return $resource('admin/zookeeper', {wt:'json', _:Date.now()}, {
+ "simple": {},
+ "liveNodes": {params: {path: '/live_nodes'}},
+ "clusterState": {params: {detail: "true", path: "/clusterstate.json"}},
+ "detail": {params: {detail: "true", path: "@path"}},
+ "configs": {params: {detail:false, path: "/configs/"}},
+ "aliases": {params: {detail: "true", path: "/aliases.json"}, transformResponse:function(data) {
+ var znode = $.parseJSON(data).znode;
+ if (znode.data) {
+ return {aliases: $.parseJSON(znode.data).collection};
+ } else {
+ return {aliases: {}};
+ }
+ }}
+ });
+ }])
+.factory('ZookeeperStatus',
+ ['$resource', function($resource) {
+ return $resource('admin/zookeeper/status', {wt:'json', _:Date.now()}, {
+ "monitor": {}
+ });
+ }])
+.factory('Properties',
+ ['$resource', function($resource) {
+ return $resource('admin/info/properties', {'wt':'json', '_':Date.now()});
+ }])
+.factory('Threads',
+ ['$resource', function($resource) {
+ return $resource('admin/info/threads', {'wt':'json', '_':Date.now()});
+ }])
+.factory('Properties',
+ ['$resource', function($resource) {
+ return $resource('admin/info/properties', {'wt':'json', '_':Date.now()});
+ }])
+.factory('Replication',
+ ['$resource', function($resource) {
+ return $resource(':core/replication', {'wt':'json', core: "@core", '_':Date.now()}, {
+ "details": {params: {command: "details"}},
+ "command": {params: {}}
+ });
+ }])
+.factory('CoreSystem',
+ ['$resource', function($resource) {
+ return $resource(':core/admin/system', {wt:'json', core: "@core", _:Date.now()});
+ }])
+.factory('Update',
+ ['$resource', function($resource) {
+ return $resource(':core/:handler', {core: '@core', wt:'json', _:Date.now(), handler:'update'}, {
+ "commit": {params: {commit: "true"}},
+ "post": {headers: {'Content-type': 'application/json'}, method: "POST", params: {handler: '@handler'}},
+ "postJson": {headers: {'Content-type': 'application/json'}, method: "POST", params: {handler: '@handler'}},
+ "postXml": {headers: {'Content-type': 'text/xml'}, method: "POST", params: {handler: '@handler'}},
+ "postCsv": {headers: {'Content-type': 'application/csv'}, method: "POST", params: {handler: '@handler'}}
+ });
+ }])
+.service('FileUpload', function ($http) {
+ this.upload = function(params, file, success, error){
+ var url = "" + params.core + "/" + params.handler + "?";
+ raw = params.raw;
+ delete params.core;
+ delete params.handler;
+ delete params.raw;
+ url += $.param(params);
+ if (raw && raw.length>0) {
+ if (raw[0] != "&") raw = "&" + raw;
+ url += raw;
+ }
+ var fd = new FormData();
+ fd.append('file', file);
+ $http.post(url, fd, {
+ transformRequest: angular.identity,
+ headers: {'Content-Type': undefined}
+ }).success(success).error(error);
+ }
+})
+.filter('splitByComma', function() {
+ return function(input) {
+ return input === undefined ? input : input.split(',');
+ }
+})
+.factory('Luke',
+ ['$resource', function($resource) {
+ return $resource(':core/admin/luke', {core: '@core', wt:'json', _:Date.now()}, {
+ "index": {params: {numTerms: 0, show: 'index'}},
+ "raw": {params: {numTerms: 0}},
+ "schema": {params: {show:'schema'}},
+ "field": {},
+ "fields": {params: {show:'schema'}, interceptor: {
+ response: function(response) {
+ var fieldsAndTypes = [];
+ for (var field in response.data.schema.fields) {
+ fieldsAndTypes.push({group: "Fields", label: field, value: "fieldname=" + field});
+ }
+ for (var type in response.data.schema.types) {
+ fieldsAndTypes.push({group: "Types", label: type, value: "fieldtype=" + type});
+ }
+ return fieldsAndTypes;
+ }
+ }}
+ });
+ }])
+.factory('Analysis',
+ ['$resource', function($resource) {
+ return $resource(':core/analysis/field', {core: '@core', wt:'json', _:Date.now()}, {
+ "field": {params: {"analysis.showmatch": true}}
+ });
+ }])
+.factory('DataImport',
+ ['$resource', function($resource) {
+ return $resource(':core/:name', {core: '@core', name: '@name', indent:'on', wt:'json', _:Date.now()}, {
+ "config": {params: {command: "show-config"}, headers: {doNotIntercept: "true"},
+ transformResponse: function(data) {
+ return {config: data};
+ }
+ },
+ "status": {params: {command: "status"}, headers: {doNotIntercept: "true"}},
+ "reload": {params: {command: "reload-config"}},
+ "post": {method: "POST",
+ headers: {'Content-type': 'application/x-www-form-urlencoded'},
+ transformRequest: function(data) { return $.param(data) }}
+ });
+ }])
+.factory('Ping',
+ ['$resource', function($resource) {
+ return $resource(':core/admin/ping', {wt:'json', core: '@core', ts:Date.now(), _:Date.now()}, {
+ "ping": {},
+ "status": {params:{action:"status"}, headers: {doNotIntercept: "true"}
+ }});
+ }])
+.factory('Mbeans',
+ ['$resource', function($resource) {
+ return $resource(':core/admin/mbeans', {'wt':'json', core: '@core', '_':Date.now()}, {
+ stats: {params: {stats: true}},
+ info: {},
+ reference: {
+ params: {wt: "xml", stats: true}, transformResponse: function (data) {
+ return {reference: data}
+ }
+ },
+ delta: {method: "POST",
+ params: {stats: true, diff:true},
+ headers: {'Content-type': 'application/x-www-form-urlencoded'},
+ transformRequest: function(data) {
+ return "stream.body=" + encodeURIComponent(data);
+ }
+ }
+ });
+ }])
+.factory('Files',
+ ['$resource', function($resource) {
+ return $resource(':core/admin/file', {'wt':'json', core: '@core', '_':Date.now()}, {
+ "list": {},
+ "get": {method: "GET", interceptor: {
+ response: function(config) {return config;}
+ }, transformResponse: function(data) {
+ return data;
+ }}
+ });
+ }])
+.factory('Query',
+ ['$resource', function($resource) {
+ var resource = $resource(':core/:handler', {core: '@core', handler: '@handler', '_':Date.now()}, {
+ "query": {
+ method: "GET",
+ transformResponse: function (data) {
+ return {data: data}
+ },
+ headers: {doNotIntercept: "true"}
+ }
+ });
+ resource.url = function(params) {
+ var qs = [];
+ for (key in params) {
+ if (key != "core" && key != "handler") {
+ for (var i in params[key]) {
+ qs.push(key + "=" + encodeURIComponent(params[key][i]));
+ }
+ }
+ }
+ return "" + params.core + "/" + params.handler + "?" + qs.sort().join("&");
+ }
+ return resource;
+}])
+.factory('Segments',
+ ['$resource', function($resource) {
+ return $resource(':core/admin/segments', {'wt':'json', core: '@core', _:Date.now()}, {
+ get: {}
+ });
+}])
+.factory('Schema',
+ ['$resource', function($resource) {
+ return $resource(':core/schema', {wt: 'json', core: '@core', _:Date.now()}, {
+ get: {method: "GET"},
+ check: {method: "GET", headers: {doNotIntercept: "true"}},
+ post: {method: "POST"}
+ });
+}])
+.factory('Config',
+ ['$resource', function($resource) {
+ return $resource(':core/config', {wt: 'json', core: '@core', _:Date.now()}, {
+ get: {method: "GET"}
+ })
+}])
+.factory('AuthenticationService',
+ ['base64', function (base64) {
+ var service = {};
+
+ service.SetCredentials = function (username, password) {
+ var authdata = base64.encode(username + ':' + password);
+
+ sessionStorage.setItem("auth.header", "Basic " + authdata);
+ sessionStorage.setItem("auth.username", username);
+ };
+
+ service.ClearCredentials = function () {
+ sessionStorage.removeItem("auth.header");
+ sessionStorage.removeItem("auth.scheme");
+ sessionStorage.removeItem("auth.realm");
+ sessionStorage.removeItem("auth.username");
+ sessionStorage.removeItem("auth.wwwAuthHeader");
+ sessionStorage.removeItem("auth.statusText");
+ localStorage.removeItem("auth.stateRandom");
+ sessionStorage.removeItem("auth.nonce");
+ };
+
+ service.getAuthDataHeader = function () {
+ try {
+ var header64 = sessionStorage.getItem("auth.authDataHeader");
+ var headerJson = base64.decode(header64);
+ return JSON.parse(headerJson);
+ } catch (e) {
+ console.log("WARN: Wrong or missing X-Solr-AuthData header on 401 response " + e);
+ return null;
+ }
+ };
+
+ service.decodeJwtPart = function (jwtPart) {
+ try {
+ return JSON.parse(base64.urldecode(jwtPart));
+ } catch (e) {
+ console.log("WARN: Invalid format of JWT part: " + e);
+ return {};
+ }
+ };
+
+ service.isJwtCallback = function (hash) {
+ var hp = this.decodeHashParams(hash);
+ // console.log("Decoded hash as " + JSON.stringify(hp, undefined, 2)); // For debugging callbacks
+ return (hp['access_token'] && hp['token_type'] && hp['state']) || hp['error'];
+ };
+
+ service.decodeHashParams = function(hash) {
+ // access_token, token_type, expires_in, state
+ if (hash == null || hash.length === 0) {
+ return {};
+ }
+ var params = {};
+ var parts = hash.split("&");
+ for (var p in parts) {
+ var kv = parts[p].split("=");
+ if (kv.length === 2) {
+ params[kv[0]] = decodeURIComponent(kv[1]);
+ } else {
+ console.log("Invalid callback URI, got parameter " + parts[p] + " but expected key=value");
+ }
+ }
+ return params;
+ };
+
+ return service;
+ }]);