You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2018/01/23 09:15:26 UTC
lucene-solr:master: SOLR-11648: A new admin UI to display and execute
suggestions
Repository: lucene-solr
Updated Branches:
refs/heads/master 2f4f8932c -> 288ed174a
SOLR-11648: A new admin UI to display and execute suggestions
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/288ed174
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/288ed174
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/288ed174
Branch: refs/heads/master
Commit: 288ed174acfd6bbfeb5f0ca714eeae1ccd328502
Parents: 2f4f893
Author: Noble Paul <no...@apache.org>
Authored: Tue Jan 23 20:15:16 2018 +1100
Committer: Noble Paul <no...@apache.org>
Committed: Tue Jan 23 20:15:16 2018 +1100
----------------------------------------------------------------------
solr/CHANGES.txt | 2 +
solr/webapp/web/css/angular/menu.css | 1 +
solr/webapp/web/css/angular/suggestions.css | 46 +++++++++++++++++
solr/webapp/web/img/ico/idea.png | Bin 0 -> 732 bytes
solr/webapp/web/img/ico/run.png | Bin 0 -> 1205 bytes
solr/webapp/web/index.html | 4 ++
solr/webapp/web/js/angular/app.js | 4 ++
.../angular/controllers/cluster-suggestions.js | 45 +++++++++++++++++
.../web/partials/cluster_suggestions.html | 49 +++++++++++++++++++
9 files changed, 151 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index bbd91f7..d0700b6 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -103,6 +103,8 @@ New Features
* SOLR-11592: Add OpenNLP language detection to the langid contrib. (Koji, Steve Rowe)
+* SOLR-11648: A new admin UI to display and execute suggestions (Apoorv Bhawsar , noble)
+
Bug Fixes
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/css/angular/menu.css
----------------------------------------------------------------------
diff --git a/solr/webapp/web/css/angular/menu.css b/solr/webapp/web/css/angular/menu.css
index 0e73a59..998c5e3 100644
--- a/solr/webapp/web/css/angular/menu.css
+++ b/solr/webapp/web/css/angular/menu.css
@@ -257,6 +257,7 @@ limitations under the License.
#menu #collections.global p a { background-image: url( ../../img/ico/documents-stack.png ); }
#menu #cores.global p a { background-image: url( ../../img/ico/databases.png ); }
+#menu #cluster-suggestions.global p a { background-image: url( ../../img/ico/idea.png ); }
#menu #cloud.global p a { background-image: url( ../../img/ico/network-cloud.png ); }
#menu #cloud.global .tree a { background-image: url( ../../img/ico/folder-tree.png ); }
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/css/angular/suggestions.css
----------------------------------------------------------------------
diff --git a/solr/webapp/web/css/angular/suggestions.css b/solr/webapp/web/css/angular/suggestions.css
new file mode 100644
index 0000000..ef764f3
--- /dev/null
+++ b/solr/webapp/web/css/angular/suggestions.css
@@ -0,0 +1,46 @@
+#cluster-suggestions
+.s-container{
+ text-align:center;
+}
+#cluster-suggestions
+.s-box1{
+ background-image: url( ../../img/ico/run.png );
+ background-color: transparent;
+ background-repeat: no-repeat;
+ border: none;
+ cursor: pointer;
+ vertical-align: middle;
+ display:inline-block;
+ width:20px;
+}
+#cluster-suggestions
+.s-box2{
+ display:inline-block;
+}
+#cluster-suggestions
+.s-box3{
+ display:inline-block;
+}
+#cluster-suggestions
+.s-box4{
+ display:inline-block;
+}
+#s-table {
+ border-collapse: collapse;
+ width: 60%;
+}
+
+#s-table td, #customers th {
+ border: 1px solid #ddd;
+ padding: 8px;
+}
+
+#cluster-suggestions #s-table tr:nth-child(even){background-color: #f2f2f2;}
+
+#cluster-suggestions #s-table th {
+ padding-top: 12px;
+ padding-bottom: 12px;
+ text-align: left;
+ background-color: #4CAF50;
+ color: white;
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/img/ico/idea.png
----------------------------------------------------------------------
diff --git a/solr/webapp/web/img/ico/idea.png b/solr/webapp/web/img/ico/idea.png
new file mode 100644
index 0000000..8b3abbd
Binary files /dev/null and b/solr/webapp/web/img/ico/idea.png differ
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/img/ico/run.png
----------------------------------------------------------------------
diff --git a/solr/webapp/web/img/ico/run.png b/solr/webapp/web/img/ico/run.png
new file mode 100644
index 0000000..dc35fe3
Binary files /dev/null and b/solr/webapp/web/img/ico/run.png differ
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/index.html
----------------------------------------------------------------------
diff --git a/solr/webapp/web/index.html b/solr/webapp/web/index.html
index 35cd196..54203bc 100644
--- a/solr/webapp/web/index.html
+++ b/solr/webapp/web/index.html
@@ -41,6 +41,7 @@ limitations under the License.
<link rel="stylesheet" type="text/css" href="css/angular/stream.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/replication.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/schema.css?_=${version}">
+ <link rel="stylesheet" type="text/css" href="css/angular/suggestions.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/segments.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/threads.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/chosen.css?_=${version}">
@@ -78,6 +79,8 @@ limitations under the License.
<script src="js/angular/controllers/replication.js"></script>
<script src="js/angular/controllers/schema.js"></script>
<script src="js/angular/controllers/segments.js"></script>
+ <script src="js/angular/controllers/cluster-suggestions.js"></script>
+
</head>
<body ng-controller="MainController">
@@ -157,6 +160,7 @@ limitations under the License.
<li id="java-properties" class="global" ng-class="{active:page=='java-props'}"><p><a href="#/~java-properties">Java Properties</a></li>
<li id="threads" class="global" ng-class="{active:page=='threads'}"><p><a href="#/~threads">Thread Dump</a></p></li>
+ <li id="cluster-suggestions" class="global" ng-class="{active:page=='cluster-suggestions'}"><p><a href="#/~cluster-suggestions">Suggestions</a></p></li>
</ul>
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/js/angular/app.js
----------------------------------------------------------------------
diff --git a/solr/webapp/web/js/angular/app.js b/solr/webapp/web/js/angular/app.js
index 1b7aa00..ad96ce0 100644
--- a/solr/webapp/web/js/angular/app.js
+++ b/solr/webapp/web/js/angular/app.js
@@ -67,6 +67,10 @@ solrAdminApp.config([
templateUrl: 'partials/java-properties.html',
controller: 'JavaPropertiesController'
}).
+ when('/~cluster-suggestions', {
+ templateUrl: 'partials/cluster_suggestions.html',
+ controller: 'ClusterSuggestionsController'
+ }).
when('/:core', {
templateUrl: 'partials/core_overview.html',
controller: 'CoreOverviewController'
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/js/angular/controllers/cluster-suggestions.js
----------------------------------------------------------------------
diff --git a/solr/webapp/web/js/angular/controllers/cluster-suggestions.js b/solr/webapp/web/js/angular/controllers/cluster-suggestions.js
new file mode 100644
index 0000000..bdb2a37
--- /dev/null
+++ b/solr/webapp/web/js/angular/controllers/cluster-suggestions.js
@@ -0,0 +1,45 @@
+solrAdminApp.controller('ClusterSuggestionsController',
+function($scope,$http) {
+ $scope.data={}
+ var dataArr =[];
+ var dataJson = {};
+ //function to display suggestion
+ $http({
+ method: 'GET',
+ url: '/api/cluster/autoscaling/suggestions'
+ }).then(function successCallback(response) {
+ $scope.data = response.data;
+ $scope.parsedData = $scope.data.suggestions;
+ }, function errorCallback(response) {
+ });
+ //function to perform operation
+ $scope.postdata = function (x) {
+ x.loading = true;
+ var path=x.operation.path;
+ var command=x.operation.command;
+ var fullPath='/api/'+path;
+ console.log(fullPath);
+ console.log(command);
+ $http.post(fullPath, JSON.stringify(command)).then(function (response) {
+ if (response.data)
+ console.log(response.data);
+ x.loading = false;
+ x.done = true;
+ x.run=true;
+ $scope.msg = "Post Data Submitted Successfully!";
+ }, function (response) {
+ x.failed=true;
+ $scope.msg = "Service not Exists";
+ $scope.statusval = response.status;
+ $scope.statustext = response.statusText;
+ $scope.headers = response.headers();
+ });
+ };
+ $scope.showPopover = function() {
+ $scope.popup = true;
+ };
+
+ $scope.hidePopover = function () {
+ $scope.popup = false;
+ };
+});
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/288ed174/solr/webapp/web/partials/cluster_suggestions.html
----------------------------------------------------------------------
diff --git a/solr/webapp/web/partials/cluster_suggestions.html b/solr/webapp/web/partials/cluster_suggestions.html
new file mode 100644
index 0000000..cbb05b2
--- /dev/null
+++ b/solr/webapp/web/partials/cluster_suggestions.html
@@ -0,0 +1,49 @@
+<!--
+ 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.
+ -->
+
+<div id="cluster-suggestions">
+ <h1>Cluster Suggestions</h1>
+ <br/>
+ <table id="s-table">
+ <tr>
+ <td>Type</td>
+ <td>Reason</td>
+ <td>Action</td>
+ </tr>
+ <tr ng-if="parsedData.length==0">
+ <td>NA</td>
+ <td>NA</td>
+ <td>NA</td>
+ </tr>
+ <tr ng-repeat="x in parsedData">
+ <td>{{ x.type }}</td>
+ <td>{{ x.violation.clause }}</td>
+ <td>
+ <div class="s-container">
+ <input class="s-box1" ng-hide="x.run" type="button"
+ title="{{ x.operation }}" ng-click="postdata(x)" ng-mouseover="showPopover()"
+ ng-mouseleave="hidePopover()"/>
+ <div class="s-box2" ng-show="x.loading"><img src="img/loader.gif"></div>
+ <div class="s-box3" ng-show="x.done"><img src="img/ico/tick.png"></div>
+ <div class="s-box4" ng-show="x.failed"><img src="img/ico/cross.png"></div>
+ </div>
+ </td>
+ </tr>
+ </table>
+
+</div>
+