svn commit: r1776930 [1/19] - in /ofbiz/trunk/specialpurpose: lucene/ lucene/src/main/java/org/apache/ofbiz/content/search/ solr/ solr/src/main/java/org/apache/ofbiz/solr/webapp/ solr/webapp/solr/ solr/webapp/solr/WEB-INF/ solr/webapp/solr/css/ solr/we...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1776930 [1/19] - in /ofbiz/trunk/specialpurpose: lucene/ lucene/src/main/java/org/apache/ofbiz/content/search/ solr/ solr/src/main/java/org/apache/ofbiz/solr/webapp/ solr/webapp/solr/ solr/webapp/solr/WEB-INF/ solr/webapp/solr/css/ solr/we...

shijh
Author: shijh
Date: Mon Jan  2 13:44:06 2017
New Revision: 1776930

URL: http://svn.apache.org/viewvc?rev=1776930&view=rev
Log:
Implemented: Update Apache Solr/Lucene to release 6.2.1
(OFBIZ-8316)

Upgraded Apache Solr/Lucene from 5.3.1 to 6.2.1.

Thanks: Michael Brohl and Cao PengAn for the contribution.

Added:
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/collections.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/dashboard.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/schema.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/stream.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/app.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/analysis.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/cloud.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/collection-overview.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/collections.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/core-overview.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/cores.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/dataimport.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/documents.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/files.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/index.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/java-properties.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/logging.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/plugins.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/query.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/replication.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/schema.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/segments.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/stream.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/controllers/threads.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/angular/services.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/lib/jquery-1.7.2.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-chosen.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-cookies.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-cookies.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-resource.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-route.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-route.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-sanitize.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular-sanitize.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/angular.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/chosen.jquery.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/chosen.jquery.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/d3.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/highlight.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/jquery-2.1.3.min.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/jquery.jstree.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/ngtimeago.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/analysis.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cloud.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collection_overview.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collections.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/core_overview.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cores.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/dataimport.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/documents.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/files.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/index.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/java-properties.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging-levels.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/plugins.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/query.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/replication.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/schema.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/segments.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/stream.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/threads.html
Modified:
    ofbiz/trunk/specialpurpose/lucene/build.gradle
    ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/ProductDocument.java
    ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/SearchWorker.java
    ofbiz/trunk/specialpurpose/solr/build.gradle
    ofbiz/trunk/specialpurpose/solr/src/main/java/org/apache/ofbiz/solr/webapp/OFBizSolrContextFilter.java
    ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml
    ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/cloud.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/common.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/index.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/menu.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/segments.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/chosen.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/common.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/segments.css
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/lib/ZeroClipboard.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/lib/jquery.blockUI.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/lib/jquery.form.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/lib/jquery.jstree.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/require.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/scripts/app.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/scripts/cloud.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/scripts/cores.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/scripts/files.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/scripts/replication.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/js/scripts/segments.js
    ofbiz/trunk/specialpurpose/solr/webapp/solr/tpl/segments.html

Modified: ofbiz/trunk/specialpurpose/lucene/build.gradle
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/lucene/build.gradle?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/lucene/build.gradle (original)
+++ ofbiz/trunk/specialpurpose/lucene/build.gradle Mon Jan  2 13:44:06 2017
@@ -17,7 +17,7 @@
  * under the License.
  */
 dependencies {
-    pluginLibsCompile 'org.apache.lucene:lucene-core:5.3.1'
-    pluginLibsCompile 'org.apache.lucene:lucene-queryparser:5.3.1'
-    pluginLibsCompile 'org.apache.lucene:lucene-analyzers-common:5.3.1'
+    pluginLibsCompile 'org.apache.lucene:lucene-core:6.2.1'
+    pluginLibsCompile 'org.apache.lucene:lucene-queryparser:6.2.1'
+    pluginLibsCompile 'org.apache.lucene:lucene-analyzers-common:6.2.1'
 }
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/ProductDocument.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/ProductDocument.java?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/ProductDocument.java (original)
+++ ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/ProductDocument.java Mon Jan  2 13:44:06 2017
@@ -32,11 +32,12 @@ import org.apache.ofbiz.entity.condition
 import org.apache.ofbiz.entity.util.EntityQuery;
 import org.apache.ofbiz.entity.util.EntityUtil;
 import org.apache.ofbiz.entity.util.EntityUtilProperties;
-
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.DoubleField;
+//import org.apache.lucene.document.DoubleField;
+import org.apache.lucene.document.DoublePoint;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.LongField;
+//import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.LongPoint;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.Term;
@@ -88,9 +89,11 @@ public class ProductDocument implements
                 this.addTextFieldByWeight(doc, "description", product.getString("description"), "index.weight.Product.description", 0, false, "fullText", delegator);
                 this.addTextFieldByWeight(doc, "longDescription", product.getString("longDescription"), "index.weight.Product.longDescription", 0, false, "fullText", delegator);
                 //doc.add(new StringField("introductionDate", checkValue(product.getString("introductionDate")), Store.NO));
-                doc.add(new LongField("introductionDate", quantizeTimestampToDays(product.getTimestamp("introductionDate")), Field.Store.NO));
+//                doc.add(new LongField("introductionDate", quantizeTimestampToDays(product.getTimestamp("introductionDate")), Field.Store.NO));
+                doc.add(new LongPoint("introductionDate", quantizeTimestampToDays(product.getTimestamp("introductionDate"))));
                 nextReIndex = this.checkSetNextReIndex(product.getTimestamp("introductionDate"), nextReIndex);
-                doc.add(new LongField("salesDiscontinuationDate", quantizeTimestampToDays(product.getTimestamp("salesDiscontinuationDate")), Field.Store.NO));
+//                doc.add(new LongField("salesDiscontinuationDate", quantizeTimestampToDays(product.getTimestamp("salesDiscontinuationDate")), Field.Store.NO));
+                doc.add(new LongPoint("salesDiscontinuationDate", quantizeTimestampToDays(product.getTimestamp("salesDiscontinuationDate"))));
                 nextReIndex = this.checkSetNextReIndex(product.getTimestamp("salesDiscontinuationDate"), nextReIndex);
                 doc.add(new StringField("isVariant", product.get("isVariant") != null && product.getBoolean("isVariant") ? "true" : "false", Field.Store.NO));
 
@@ -247,7 +250,8 @@ public class ProductDocument implements
                     fieldNameSb.append('_');
                     fieldNameSb.append(productPrice.getString("productStoreGroupId"));
                     fieldNameSb.append("_price");
-                    doc.add(new DoubleField(fieldNameSb.toString(), productPrice.getDouble("price"), Field.Store.NO));
+//                    doc.add(new DoubleField(fieldNameSb.toString(), productPrice.getDouble("price"), Field.Store.NO));
+                    doc.add(new DoublePoint(fieldNameSb.toString(), productPrice.getDouble("price")));
                 }
 
                 // Index ProductSuppliers

Modified: ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/SearchWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/SearchWorker.java?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/SearchWorker.java (original)
+++ ofbiz/trunk/specialpurpose/lucene/src/main/java/org/apache/ofbiz/content/search/SearchWorker.java Mon Jan  2 13:44:06 2017
@@ -41,7 +41,7 @@ public final class SearchWorker {
 
     public static final String module = SearchWorker.class.getName();
 
-    private static final Version LUCENE_VERSION = Version.LUCENE_5_3_1;
+    private static final Version LUCENE_VERSION = Version.LUCENE_6_2_1;
 
     private SearchWorker() {}
 

Modified: ofbiz/trunk/specialpurpose/solr/build.gradle
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/build.gradle?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/build.gradle (original)
+++ ofbiz/trunk/specialpurpose/solr/build.gradle Mon Jan  2 13:44:06 2017
@@ -17,5 +17,5 @@
  * under the License.
  */
 dependencies {
-    pluginLibsCompile 'org.apache.solr:solr-core:5.3.1'
+    pluginLibsCompile 'org.apache.solr:solr-core:6.2.1'
 }
\ No newline at end of file

Modified: ofbiz/trunk/specialpurpose/solr/src/main/java/org/apache/ofbiz/solr/webapp/OFBizSolrContextFilter.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/src/main/java/org/apache/ofbiz/solr/webapp/OFBizSolrContextFilter.java?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/src/main/java/org/apache/ofbiz/solr/webapp/OFBizSolrContextFilter.java (original)
+++ ofbiz/trunk/specialpurpose/solr/src/main/java/org/apache/ofbiz/solr/webapp/OFBizSolrContextFilter.java Mon Jan  2 13:44:06 2017
@@ -20,10 +20,13 @@ package org.apache.ofbiz.solr.webapp;
 
 import java.io.IOException;
 import java.io.OutputStream;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
+
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
@@ -157,12 +160,14 @@ public class OFBizSolrContextFilter exte
      * Override this to change CoreContainer initialization
      * @return a CoreContainer to hold this server's cores
      */
-    protected CoreContainer createCoreContainer(String solrHome, Properties extraProperties) {
+    protected CoreContainer createCoreContainer(Path solrHome, Properties extraProperties) {
         NodeConfig nodeConfig = null;
         try {
             nodeConfig = loadNodeConfig(solrHome, extraProperties);
         } catch (SolrException e) {
-            nodeConfig = loadNodeConfig("specialpurpose/solr/home", extraProperties);
+//            nodeConfig = loadNodeConfig("specialpurpose/solr/home", extraProperties);
+            Path path = Paths.get("specialpurpose/solr/home");
+ nodeConfig = loadNodeConfig(path, extraProperties);
         }
         cores = new CoreContainer(nodeConfig, extraProperties, true);
         cores.load();

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/WEB-INF/web.xml Mon Jan  2 13:44:06 2017
@@ -46,7 +46,7 @@
         <filter-class>org.apache.ofbiz.webapp.control.ControlFilter</filter-class>
         <init-param>
             <param-name>allowedPaths</param-name>
-            <param-value>/control:/error:/css:/img:/js:/tpl:/favicon.ico:/admin:/admin.html:/#:/schema:/config:/:/solrdefault</param-value>
+            <param-value>/control:/error:/css:/img:/js:/tpl:/favicon.ico:/admin:/admin.html:/#:/schema:/config:/:/solrdefault:/libs:/partials:/info:/logging:/level:/solr:/~logging:</param-value>
         </init-param>
         <init-param>
             <param-name>redirectPath</param-name>

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/admin.html Mon Jan  2 13:44:06 2017
@@ -1,6 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-
+<html ng-app="solrAdminApp">
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -19,50 +18,74 @@ limitations under the License.
 -->
 
 <head>
-    
   <title>Solr Admin</title>
-    
+
   <link rel="icon" type="image/x-icon" href="img/favicon.ico?_=${version}">
   <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico?_=${version}">
 
-  <link rel="stylesheet" type="text/css" href="css/styles/common.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/analysis.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/cloud.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/cores.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/dashboard.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/dataimport.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/files.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/index.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/common.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/analysis.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/cloud.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/cores.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/collections.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/dashboard.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/dataimport.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/files.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/index.css?_=${version}">
   <link rel="stylesheet" type="text/css" href="css/styles/java-properties.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/logging.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/menu.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/plugins.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/documents.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/query.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/replication.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/schema-browser.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/threads.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/styles/segments.css?_=${version}">
-  <link rel="stylesheet" type="text/css" href="css/chosen.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/logging.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/menu.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/plugins.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/documents.css?_=${version}">
+  <link rel="stylesheet" type="text/css" href="css/angular/query.css?_=${version}">
+  <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/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}">
 
   <meta http-equiv="x-ua-compatible" content="IE=9">
-    
-  <script type="text/javascript">
-    
-  var app_config = {};
-    
-  app_config.solr_path = '${contextPath}';
-  app_config.core_admin_path = '${adminPath}';
-    
-  </script>
-    
+  <script src="libs/jquery-2.1.3.min.js"></script>
+  <script src="libs/chosen.jquery.js"></script>
+  <script src="libs/jquery.jstree.js"></script>
+  <script src="libs/angular.js"></script>
+  <script src="libs/angular-chosen.js"></script>
+  <script src="libs/angular-resource.min.js"></script>
+  <script src="libs/angular-route.min.js"></script>
+  <script src="libs/angular-cookies.min.js"></script>
+  <script src="libs/ngtimeago.js"></script>
+  <script src="libs/highlight.js"></script>
+  <script src="libs/d3.js"></script>
+  <script src="js/angular/app.js"></script>
+  <script src="js/angular/services.js"></script>
+  <script src="js/angular/controllers/index.js"></script>
+  <script src="js/angular/controllers/logging.js"></script>
+  <script src="js/angular/controllers/cloud.js"></script>
+  <script src="js/angular/controllers/collections.js"></script>
+  <script src="js/angular/controllers/cores.js"></script>
+  <script src="js/angular/controllers/threads.js"></script>
+  <script src="js/angular/controllers/java-properties.js"></script>
+  <script src="js/angular/controllers/core-overview.js"></script>
+  <script src="js/angular/controllers/collection-overview.js"></script>
+  <script src="js/angular/controllers/analysis.js"></script>
+  <script src="js/angular/controllers/dataimport.js"></script>
+  <script src="js/angular/controllers/documents.js"></script>
+  <script src="js/angular/controllers/files.js"></script>
+  <script src="js/angular/controllers/query.js"></script>
+  <script src="js/angular/controllers/stream.js"></script>
+  <script src="js/angular/controllers/plugins.js"></script>
+  <script src="js/angular/controllers/replication.js"></script>
+  <script src="js/angular/controllers/schema.js"></script>
+  <script src="js/angular/controllers/segments.js"></script>
+
 </head>
-<body>
-    
-  <div id="wrapper">
-    
+<body ng-controller="MainController">
+
+  <div id="wrapper" scrollable-when-small>
+
     <div id="header">
-            
+
       <a href="./" id="solr"><span>Apache SOLR</span></a>
 
       <p id="environment">&nbsp;</p>
@@ -70,95 +93,151 @@ limitations under the License.
     </div>
 
     <div id="main" class="clearfix">
-    
-      <div id="init-failures">
+
+      <div class="header-message" id="init-failures" ng-show="showInitFailures">
 
           <h2>SolrCore Initialization Failures</h2>
-          <ul></ul>
+          <ul>
+              <li ng-repeat="(core,error) in initFailures"><strong>{{core}}:</strong> {{error}}</li>
+          </ul>
           <p>Please check your logs for more information</p>
-                
+
+      </div>
+
+      <div id="loading" class="loader universal-loader" loading-status-message>&nbsp;</div>
+
+      <div id="connection-box" connection-message>
+        <div id="connection-status-modal">
+        </div>
+
+        <div class="connection-status header-message">
+          <h2>Connection to Solr lost</h2>
+          <p>Please check the Solr instance.</p>
+        </div>
+  <div class="connection-status header-message" id="connection-status-recovered"  ng-show="connectionRecovered">
+    <h2>Connection recovered...</h2>
+    <p>Continuing to load data...</p>
+  </div>
+      </div>
+      <div id="http-exception" class="header-message" ng-repeat="(url, exception) in exceptions">
+        <div class="exception">{{exception.msg}}</div>
+      </div>
+
+      <div class="other-ui-link">
+        Use <a class="ul" href="/solr/old.html">original UI</a><a target="_blank" href="http://wiki.apache.org/solr/AngularUI">&nbsp;<span class="help"></span></a>
       </div>
 
       <div id="content-wrapper">
-        <div id="content">
-                  
-          &nbsp;
-                  
+        <div ng-view id="content">
+
         </div>
       </div>
-            
+
       <div id="menu-wrapper">
         <div>
-                  
+
           <ul id="menu">
 
-            <li id="index" class="global"><p><a href="#/">Dashboard</a></p></li>
+            <li id="index" class="global" ng-class="{active:page=='index'}"><p><a href="#/">Dashboard</a></p></li>
 
-            <li id="logging" class="global"><p><a href="#/~logging">Logging</a></p>
-              <ul>
-                <li class="level"><a href="#/~logging/level">Level</a></li>
+            <li id="logging" class="global" ng-class="{active:page=='logging'}"><p><a href="#/~logging">Logging</a></p>
+              <ul ng-show="showingLogging">
+                <li class="level" ng-class="{active:page=='logging-levels'}"><a href="#/~logging/level">Level</a></li>
               </ul>
             </li>
 
-            <li id="cloud" class="global optional"><p><a href="#/~cloud">Cloud</a></p>
-              <ul>
-                <li class="tree"><a href="#/~cloud?view=tree">Tree</a></li>
-                <li class="graph"><a href="#/~cloud">Graph</a></li>
-                <li class="rgraph"><a href="#/~cloud?view=rgraph">Graph (Radial)</a></li>
-                <li class="dump"><a href="#/~cloud">Dump</a></li>
+            <li id="cloud" class="global optional" ng-show="isCloudEnabled" ng-class="{active:showingCloud}"><p><a href="#/~cloud">Cloud</a></p>
+              <ul ng-show="showingCloud">
+                <li class="tree" ng-class="{active:page=='cloud-tree'}"><a href="#/~cloud?view=tree">Tree</a></li>
+                <li class="graph" ng-class="{active:page=='cloud-graph'}"><a href="#/~cloud">Graph</a></li>
+                <li class="rgraph" ng-class="{active:page=='cloud-rgraph'}"><a href="#/~cloud?view=rgraph">Graph (Radial)</a></li>
+                <li class="dump" ng-class="{active:page=='cloud-dump'}"><a ng-click="dumpCloud()">Dump</a></li>
               </ul>
             </li>
 
-            <li id="cores" class="global"><p><a href="#/~cores">Core Admin</a></p></li>
+            <li ng-show="isCloudEnabled" id="collections" class="global" ng-class="{active:page=='collections'}"><p><a href="#/~collections">Collections</a></p></li>
+            <li ng-hide="isCloudEnabled" id="cores" class="global" ng-class="{active:page=='cores'}"><p><a href="#/~cores">Core Admin</a></p></li>
+
+            <li id="java-properties" class="global" ng-class="{active:page=='java-props'}"><p><a href="#/~java-properties">Java Properties</a></li>
 
-            <li id="java-properties" class="global"><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="threads" class="global"><p><a href="#/~threads">Thread Dump</a></p></li>
-            
           </ul>
 
+          <div id="collection-selector" ng-show="isCloudEnabled">
+            <div id="has-collections" ng-show="collections.length!=0">
+              <select data-placeholder="Collection Selector"
+                      ng-model="currentCollection"
+                      chosen
+                      ng-change="showCollection(currentCollection)"
+                      ng-options="collection.name for collection in collections"></select>
+            </div>
+            <p id="has-no-collections" ng-show="collections.length==0"><a href="#/~collections">
+              No collections available
+              <span>Go and create one</span>
+            </a></p>
+          </div>
+          <div id="collection-menu" class="sub-menu" ng-show="currentCollection">
+            <ul>
+              <li class="overview" ng-class="{active:page=='collection-overview'}"><a href="#/{{currentCollection.name}}/collection-overview"><span>Overview</span></a></li>
+              <li class="analysis" ng-class="{active:page=='analysis'}"><a href="#/{{currentCollection.name}}/analysis"><span>Analysis</span></a></li>
+              <li class="dataimport" ng-class="{active:page=='dataimport'}"><a href="#/{{currentCollection.name}}/dataimport"><span>Dataimport</span></a></li>
+              <li class="documents" ng-class="{active:page=='documents'}"><a href="#/{{currentCollection.name}}/documents"><span>Documents</span></a></li>
+              <li class="files" ng-class="{active:page=='files'}"><a href="#/{{currentCollection.name}}/files"><span>Files</span></a></li>
+              <li class="query" ng-class="{active:page=='query'}"><a href="#/{{currentCollection.name}}/query"><span>Query</span></a></li>
+              <li class="stream" ng-class="{active:page=='stream'}"><a href="#/{{currentCollection.name}}/stream"><span>Stream</span></a></li>
+              <li class="schema" ng-class="{active:page=='schema'}"><a href="#/{{currentCollection.name}}/schema"><span>Schema</span></a></li>
+        </ul>
+          </div>
           <div id="core-selector">
-            <div id="has-cores">
-              <select data-placeholder="Core Selector"></select>
+            <div id="has-cores" ng-show="cores.length!=0">
+              <select data-placeholder="Core Selector"
+                      ng-model="currentCore"
+                      chosen
+                      ng-change="showCore(currentCore)"
+                      ng-options="core.name for core in cores"></select>
             </div>
-            <p id="has-no-cores"><a href="#/~cores">
+            <p id="has-no-cores" ng-show="cores.length==0"><a href="#/~cores">
               No cores available
               <span>Go and create one</span>
             </a></p>
           </div>
-          <div id="core-menu">
-            <ul></ul>
+          <div id="core-menu" class="sub-menu" ng-show="currentCore">
+            <ul>
+              <li class="overview" ng-class="{active:page=='overview'}"><a href="#/{{currentCore.name}}"><span>Overview</span></a></li>
+              <li ng-hide="isCloudEnabled" class="analysis" ng-class="{active:page=='analysis'}"><a href="#/{{currentCore.name}}/analysis"><span>Analysis</span></a></li>
+              <li ng-hide="isCloudEnabled" class="dataimport" ng-class="{active:page=='dataimport'}"><a href="#/{{currentCore.name}}/dataimport"><span>Dataimport</span></a></li>
+              <li ng-hide="isCloudEnabled" class="documents" ng-class="{active:page=='documents'}"><a href="#/{{currentCore.name}}/documents"><span>Documents</span></a></li>
+              <li ng-hide="isCloudEnabled" class="files" ng-class="{active:page=='files'}"><a href="#/{{currentCore.name}}/files"><span>Files</span></a></li>
+              <li class="ping" ng-class="{active:page=='ping'}"><a ng-click="ping()"><span>Ping</span><small class="qtime" ng-show="showPing"> (<span>{{pingMS}}ms</span>)</small></a></li>
+              <li class="plugins" ng-class="{active:page=='plugins'}"><a href="#/{{currentCore.name}}/plugins"><span>Plugins / Stats</span></a></li>
+              <li ng-hide="isCloudEnabled" class="query" ng-class="{active:page=='query'}"><a href="#/{{currentCore.name}}/query"><span>Query</span></a></li>
+              <li ng-hide="isCloudEnabled" class="replication" ng-class="{active:page=='replication'}"><a href="#/{{currentCore.name}}/replication"><span>Replication</span></a></li>
+              <li ng-hide="isCloudEnabled" class="schema" ng-class="{active:page=='schema'}"><a href="#/{{currentCore.name}}/schema"><span>Schema</span></a></li>
+              <li class="segments" ng-class="{active:page=='segments'}"><a href="#/{{currentCore.name}}/segments"><span>Segments info</span></a></li>
+      </ul>
           </div>
-                  
+
         </div>
       </div>
-            
+
       <div id="meta">
-                
+
         <ul>
-                    
+
           <li class="documentation"><a href="http://lucene.apache.org/solr/"><span>Documentation</span></a></li>
           <li class="issues"><a href="http://issues.apache.org/jira/browse/SOLR"><span>Issue Tracker</span></a></li>
-          <li class="irc"><a href="https://wiki.apache.org/solr/IRCChannels"><span>IRC Channel</span></a></li>
-          <li class="mailinglist"><a href="http://lucene.apache.org/solr/resources.html#community"><span>Community forum</span></a></li>
+          <li class="irc"><a href="http://webchat.freenode.net/?channels=#solr"><span>IRC Channel</span></a></li>
+          <li class="mailinglist"><a href="http://wiki.apache.org/solr/UsingMailingLists"><span>Community forum</span></a></li>
           <li class="wiki-query-syntax"><a href="https://cwiki.apache.org/confluence/display/solr/Query+Syntax+and+Parsing"><span>Solr Query Syntax</span></a></li>
-                    
+
         </ul>
-                
-      </div>
-            
-    </div>
-    
-  </div>
 
-  <div id="connection_status">
+      </div>
 
-    <span>Connection lost &hellip;</span>
+    </div>
 
   </div>
-  
-  <script type="text/javascript"> var require = { urlArgs: '_=${version}' }; </script>
-  <script src="js/require.js?_=${version}" data-main="js/main"></script>
 
 </body>
 </html>

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/cloud.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/cloud.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/cloud.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/cloud.css Mon Jan  2 13:44:06 2017
@@ -184,6 +184,20 @@ limitations under the License.
   background-image: url( ../../img/ico/cross-1.png );
 }
 
+#content #cloud #file-content #toggle.plus
+{
+  font-style: italic;
+  padding-left: 17px;
+  background-image: url( ../../img/ico/toggle-small-expand.png );
+}
+
+#content #cloud #file-content #toggle.minus
+{
+  font-style: italic;
+  padding-left: 17px;
+  background-image: url( ../../img/ico/toggle-small.png );
+}
+
 #content #cloud #file-content #data
 {
   border-top: 1px solid #c0c0c0;

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/collections.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/collections.css?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/collections.css (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/collections.css Mon Jan  2 13:44:06 2017
@@ -0,0 +1,353 @@
+/*
+
+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.
+
+*/
+
+#content #collections
+{
+  position: relative;
+}
+
+#content #collections #ui-block
+{
+  background-color: #fff;
+  height: 200px;
+  position: absolute;
+  left: -5px;
+  top: 35px;
+  width: 500px;
+}
+
+#content #collections #frame
+{
+  float: right;
+  width: 86%;
+}
+
+#content #collections #navigation
+{
+  padding-top: 50px;
+  width: 12%;
+}
+
+#content #collections #navigation a
+{
+  padding-left: 5px;
+}
+
+#content #collections #frame .actions
+{
+  margin-bottom: 20px;
+  min-height: 30px;
+}
+
+#content #collections .actions div.action
+{
+  width: 320px;
+}
+
+#content #collections .actions div.action .cloud
+{
+}
+
+#content #collections .actions form .directory-note
+{
+  background-image: url( ../../img/ico/information-white.png );
+  background-position: 22% 1px;
+  color: #c0c0c0;
+}
+
+#content #collections .actions form .error
+{
+  background-image: url( ../../img/ico/cross-button.png );
+  background-position: 22% 1px;
+  color: #c00;
+  font-weight: bold;
+}
+
+#content #collections .actions form p
+{
+  padding-bottom: 8px;
+}
+
+#content #collections .actions form label
+{
+  float: left;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  text-align: right;
+  width: 25%;
+}
+
+#content #collections .actions form input,
+#content #collections .actions form select,
+#content #collections .actions form .chosen-container
+#content #collections .actions form .buttons,
+#content #collections .actions form .note span
+{
+  float: right;
+  width: 71%;
+}
+
+#content #collections .actions form .note span
+{
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+#content #collections .actions form .buttons
+{
+  padding-top: 10px;
+}
+
+#content #collections .actions form button.submit
+{
+  margin-right: 20px;
+}
+
+#content #collections .actions form button.submit span
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #collections .actions form button.reset span
+{
+  background-image: url( ../../img/ico/cross.png );
+}
+
+#content #collections .actions #add
+{
+  left: 0;
+  position: absolute;
+}
+
+#content #collections .actions #add span
+{
+  background-image: url( ../../img/ico/plus-button.png );
+}
+
+#content #collections .actions #delete
+{
+  margin-right: 20px;
+}
+
+#content #collections .actions #delete span
+{
+  background-image: url( ../../img/ico/cross.png );
+}
+
+#content #collections .actions #reload span
+{
+  background-image: url( ../../img/ico/arrow-circle.png );
+}
+
+#content #collections .actions #rename span
+{
+  background-image: url( ../../img/ico/ui-text-field-select.png );
+}
+
+#content #collections .actions #create-alias span
+{
+  background-image: url( ../../img/ico/arrow-switch.png );
+}
+
+#content #collections .actions #delete-alias span
+{
+  background-image: url( ../../img/ico/cross-button.png );
+}
+
+#content #collections .actions #optimize span
+{
+  background-image: url( ../../img/ico/hammer-screwdriver.png );
+}
+
+#content #collections .actions div.action
+{
+  background-color: #fff;
+  border: 1px solid #f0f0f0;
+  box-shadow: 5px 5px 10px #c0c0c0;
+  -moz-box-shadow: 5px 5px 10px #c0c0c0;
+  -webkit-box-shadow: 5px 5px 10px #c0c0c0;
+  position: absolute;
+  left: 50px;
+  top: 40px;
+  padding: 10px;
+}
+
+#content #collections .actions #add-replica span
+{
+  background-image: url( ../../img/ico/plus-button.png );
+}
+
+#content #collections div.action.add-replica {
+  border: 1px solid #f0f0f0;
+  width: 400px;
+  margin-right: 0px;
+  padding: 10px;
+  float: right;
+}
+
+#content #collections div.action.add-replica p {
+  padding-bottom: 8px;
+}
+
+#content #collections div.action.add-replica .buttons {
+  float: right;
+}
+
+#content #collections div.action.add-replica .buttons .submit span {
+  background-image: url( ../../img/ico/tick.png );
+  background-position: 0% 50%;
+}
+
+#content #collections div.action.add-replica .buttons .reset span {
+  background-image: url( ../../img/ico/cross.png );
+  background-position: 0% 50%;
+}
+
+#content #collections #data #collection-data h2 { background-image: url( ../../img/ico/box.png ); }
+#content #collections #data #shard-data h2 { background-image: url( ../../img/ico/sitemap.png ); }
+#content #collections #data #shard-data .replica h2 { background-image: url( ../../img/ico/node-slave.png ); }
+
+#content #collections #data #index-data
+{
+  margin-top: 10px;
+}
+
+#content #collections #data li
+{
+  padding-bottom: 3px;
+  padding-top: 3px;
+}
+
+#content #collections #data li.odd
+{
+  background-color: #f8f8f8;
+}
+
+#content #collections #data li dt
+{
+  float: left;
+  width: 50%;
+}
+
+#content #collections #data li dd
+{
+  float: right;
+  width: 50%;
+}
+
+#content #collections #data li dd.ico
+{
+  background-image: url( ../../img/ico/slash.png );
+  height: 20px;
+}
+
+#content #collections #data li dd.ico.ico-1
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #collections #data li dd.ico span
+{
+}
+
+#content #collections #add_advanced {
+  background-image: url( ../../img/ico/chevron-small-expand.png );
+  background-position: 100% 50%;
+  cursor: pointer;
+  padding-right: 21px;
+}
+
+#content #collections #add_advanced.open {
+    background-image: url( ../../img/ico/chevron-small.png );
+}
+
+#content #collections .shard {
+    margin-left: 40px;
+}
+
+#content #collections .replica {
+    margin-left: 40px;
+}
+
+#content #collections .shard h2 span.openReplica {
+  background-image: url( ../../img/ico/chevron-small-expand.png );
+  background-position: 100% 50%;
+  cursor: pointer;
+  padding-right: 21px;
+}
+
+#content #collections .shard h2 span.openReplica .open {
+  background-image: url( ../../img/ico/chevron-small.png );
+}
+
+#content #collections .replica h2 span {
+  background-image: url( ../../img/ico/chevron-small-expand.png );
+  background-position: 100% 50%;
+  cursor: pointer;
+  padding-right: 21px;
+}
+
+#content #collections .replica h2 span.rem {
+  background-image: url( ../../img/ico/cross.png );
+  background-position: 100% 50%;
+  cursor: pointer;
+  padding-right: 21px;
+  right:10px;
+}
+
+#content #collections .replica h2 span .open {
+  background-image: url( ../../img/ico/chevron-small.png );
+}
+
+#content #collections #add-replica {
+  float: right;
+}
+
+#content #collections .add select {
+  width: 100%;
+}
+
+#content #collections .chosen-container ul {
+    width: 100%;
+    padding: 5px;
+}
+
+#content #collections .delete-replica span
+{
+  background-image: url( ../../img/ico/cross.png );
+}
+#content #collections .delete-replica button.submit span
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #collections #node-name .chosen-container
+{
+    width: 100% !important;
+}
+
+#content #collections #collection-data {
+  float: left;
+  width: 35%;
+}
+
+#content #collections #shard-data {
+  float: left;
+  width: 65%;
+}

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/common.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/common.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/common.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/common.css Mon Jan  2 13:44:06 2017
@@ -352,6 +352,18 @@ ul
   display: none;
 }
 
+.exception
+{
+  background-color: #f00;
+  background-image: url( ../../img/ico/construction.png );
+  background-position: 10px 50%;
+  color: #fff;
+  font-weight: bold;
+  margin-bottom: 20px;
+  padding: 10px;
+  padding-left: 35px;
+}
+
 #content-wrapper
 {
   margin-left: 150px;
@@ -722,3 +734,35 @@ pre.syntax .tex .formula
   -webkit-box-shadow: 1px 1px 0 #d8d8d8;
   color: #333;
 }
+
+.exception .show-exception {
+  margin-top: 4px;
+  display: block;
+  position: absolute;
+  right: 10px;
+  top: 7px;
+  color: #fff;
+}
+
+#exception .show-exception a:hover {
+  color: #333;
+}
+
+.other-ui-link {
+  margin: 0px;
+  position: absolute;
+  right: 0px;
+  top: -20px;
+}
+
+.other-ui-link span,
+.new-ui-warning span.help {
+  background-image: url( ../../img/ico/information-white.png );
+  right: 0px;
+  padding-left: 16px;
+}
+
+.other-ui-link a.ul {
+  text-decoration: underline;
+}
+

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/dashboard.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/dashboard.css?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/dashboard.css (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/dashboard.css Mon Jan  2 13:44:06 2017
@@ -0,0 +1,185 @@
+/*
+
+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.
+
+*/
+
+#content #dashboard .block
+{
+  background-image: none;
+  width: 49%;
+}
+
+#content #dashboard .fieldlist
+{
+  float: left;
+}
+
+#content #dashboard .fieldlist dt,
+#content #dashboard .fieldlist dd
+{
+  display: block;
+  float: left;
+}
+
+#content #dashboard .fieldlist dt
+{
+  clear: left;
+  margin-right: 2%;
+  text-align: right;
+  width: 23%;
+}
+
+#content #dashboard .fieldlist dd
+{
+  width: 74%;
+}
+
+#content #dashboard .fieldlist .index_optimized
+{
+  margin-top: 10px;
+}
+
+#content #dashboard .fieldlist .ico
+{
+  background-image: url( ../../img/ico/slash.png );
+  height: 20px;
+}
+
+#content #dashboard .fieldlist .ico.ico-1
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #dashboard .fieldlist .ico span
+{
+  display: none;
+}
+
+#content #dashboard #statistics .index_optimized.value a
+{
+  display: none;
+}
+
+#content #dashboard #statistics .index_optimized.value.ico-0 a
+{
+  background-color: #f0f0f0;
+  background-image: url( ../../img/ico/hammer-screwdriver.png );
+  background-position: 5px 50%;
+  border: 1px solid #c0c0c0;
+  display: block;
+  float: left;
+  margin-left: 50px;
+  padding: 1px 5px;
+  padding-left: 26px;
+}
+
+#content #dashboard #statistics .index_has-deletions
+{
+  display: none;
+}
+
+#content #dashboard #statistics .index_has-deletions.value.ico-0
+{
+  background-image: url( ../../img/ico/tick-red.png );
+}
+
+#content #dashboard #replication
+{
+  float: left;
+}
+
+#content #dashboard #replication .is-replicating
+{
+  background-position: 99% 50%;
+  display: block;
+}
+
+#content #dashboard #replication #details table thead td span
+{
+  display: none;
+}
+
+#content #dashboard #instance
+{
+  float: right;
+}
+
+#content #dashboard #instance .dir_impl
+{
+  margin-top: 10px;
+}
+
+#content #dashboard #admin-extra
+{
+  float: left;
+}
+
+#content #dashboard #healthcheck
+{
+  float: right;
+}
+
+#content #dashboard #healthcheck .ico
+{
+  background-image: url( ../../img/ico/slash.png );
+  height: 20px;
+  padding-left: 20px;
+  width: 60%;
+}
+
+#content #dashboard #healthcheck .ico.ico-1
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #dashboard #system h2 { background-image: url( ../../img/ico/server.png ); }
+#content #dashboard #statistics h2 { background-image: url( ../../img/ico/chart.png ); }
+#content #dashboard #replication h2 { background-image: url( ../../img/ico/node.png ); }
+#content #dashboard #replication.master h2 { background-image: url( ../../img/ico/node-master.png ); }
+#content #dashboard #replication.slave h2 { background-image: url( ../../img/ico/node-slave.png ); }
+#content #dashboard #instance h2 { background-image: url( ../../img/ico/server.png ); }
+#content #dashboard #admin-extra h2 { background-image: url( ../../img/ico/plus-button.png ); }
+#content #dashboard #collection h2 { background-image: url( ../../img/ico/book-open-text.png ); }
+#content #dashboard #shards h2 { background-image: url( ../../img/ico/documents-stack.png ); }
+
+#content #dashboard #shards { margin-left: 20px;}
+
+#dashboard #shards .shard h3.shard-title {
+    display: block;
+    background-color: #c8c8c8;
+    font-weight: bold;
+    padding: 3px;
+    padding-left: 30px;
+    margin-left: 20px;
+    margin-top: 20px;
+    background-image: url( ../../img/ico/document-text.png );
+    background-position-x: 10px;
+    background-position-y: 3px;
+}
+
+#dashboard #shards .shard .shard-detail {
+    margin-bottom: 25px;
+    margin-top: 7px;
+}
+
+#dashboard #shards .shard .replica {
+    background-color: #e4e4e4;
+}
+
+#dashboard #shards .shard .replica.odd {
+    background-color: #fff;
+}

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/index.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/index.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/index.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/index.css Mon Jan  2 13:44:06 2017
@@ -110,6 +110,17 @@ limitations under the License.
   width: 40%;
 }
 
+#content #index .data
+{
+  padding-bottom: 12px;
+  overflow: hidden;
+}
+
+#content #index .data:hover
+{
+  overflow-x: auto;
+}
+
 #content #index .data li
 {
   padding-top: 3px;
@@ -127,7 +138,6 @@ limitations under the License.
 {
   float: right;
   text-overflow: ellipsis;
-  overflow: hidden;
   white-space: nowrap;
   width: 80%
 }

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/menu.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/menu.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/menu.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/menu.css Mon Jan  2 13:44:06 2017
@@ -43,29 +43,33 @@ limitations under the License.
   text-overflow: ellipsis;
 }
 
-#core-selector
+#core-selector,#collection-selector
 {
   margin-top: 20px;
   padding-right: 10px;
 }
 
-#core-selector a
+#core-selector a,
+#collection-selector a
 {
   padding: 0;
   padding-left: 8px;
 }
 
-#core-selector select
+#core-selector select,
+#collection-selector select
 {
   width: 100%;
 }
 
-#core-selector #has-no-cores a
+#core-selector #has-no-cores a,
+#collection-selector #has-no-collections a
 {
   background-image: url( ../../img/ico/database--plus.png );
 }
 
-#core-selector #has-no-cores span
+#core-selector #has-no-cores span,
+#collection-selector #has-no-collections span
 {
   color: #c0c0c0;
   display: block;
@@ -172,34 +176,34 @@ limitations under the License.
 {
 }
 
-#core-menu p
+.sub-menu p
 {
   border-top: 1px solid #f0f0f0;
 }
 
-#core-menu li:first-child p
+.sub-menu li:first-child p
 {
   border-top: 0;
 }
 
-#core-menu p a
+.sub-menu p a
 {
   background-image: url( ../../img/ico/status-offline.png );
 }
 
-#core-menu .active p a
+.sub-menu .active p a
 {
   background-image: url( ../../img/ico/box.png );
 }
 
-#core-menu ul,
+.sub-menu ul,
 #menu ul
 {
   padding-top: 5px;
   padding-bottom: 10px;
 }
 
-#core-menu .active ul,
+.sub-menu .active ul,
 #menu .active ul
 {
   display: block;
@@ -211,6 +215,7 @@ limitations under the License.
 }
 
 #core-menu ul li a,
+#collection-menu ul li a,
 #menu ul li a
 {
   background-position: 7px 50%;
@@ -220,20 +225,20 @@ limitations under the License.
   padding-left: 26px;
 }
 
-#core-menu ul li:last-child a,
+.sub-menu ul li:last-child a,
 #menu ul li:last-child a
 {
   border-bottom: 0;
 }
 
-#core-menu ul li a:hover,
+.sub-menu ul li a:hover,
 #menu ul li a:hover
 {
   background-color: #f0f0f0;
   color: #333;
 }
 
-#core-menu ul li.active a,
+.sub-menu ul li.active a,
 #menu ul li.active a
 {
   background-color: #d0d0d0;
@@ -250,6 +255,7 @@ limitations under the License.
 
 #menu #threads.global p a { background-image: url( ../../img/ico/ui-accordion.png ); }
 
+#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 #cloud.global p a { background-image: url( ../../img/ico/network-cloud.png ); }
@@ -258,7 +264,7 @@ limitations under the License.
 #menu #cloud.global .rgraph a { background-image: url( ../../img/ico/asterisk.png ); }
 #menu #cloud.global .dump a { background-image: url( ../../img/ico/download-cloud.png ); }
 
-#core-menu .ping.error a
+.sub-menu .ping.error a
 {
   
   background-color: #ffcccc;
@@ -267,19 +273,20 @@ limitations under the License.
   cursor: help;
 }
 
-#core-menu .overview a { background-image: url( ../../img/ico/home.png ); }
-#core-menu .query a { background-image: url( ../../img/ico/magnifier.png ); }
-#core-menu .analysis a { background-image: url( ../../img/ico/funnel.png ); }
-#core-menu .documents a { background-image: url( ../../img/ico/documents-stack.png ); }
-#core-menu .files a { background-image: url( ../../img/ico/folder.png ); }
-#core-menu .schema-browser a { background-image: url( ../../img/ico/book-open-text.png ); }
-#core-menu .replication a { background-image: url( ../../img/ico/node.png ); }
-#core-menu .distribution a { background-image: url( ../../img/ico/node-select.png ); }
-#core-menu .ping a { background-image: url( ../../img/ico/system-monitor.png ); }
-#core-menu .logging a { background-image: url( ../../img/ico/inbox-document-text.png ); }
-#core-menu .plugins a { background-image: url( ../../img/ico/block.png ); }
-#core-menu .dataimport a { background-image: url( ../../img/ico/document-import.png ); }
-#core-menu .segments a { background-image: url( ../../img/ico/construction.png ); }
+.sub-menu .overview a { background-image: url( ../../img/ico/home.png ); }
+.sub-menu .query a { background-image: url( ../../img/ico/magnifier.png ); }
+.sub-menu .stream a { background-image: url( ../../img/ico/node.png ); }
+.sub-menu .analysis a { background-image: url( ../../img/ico/funnel.png ); }
+.sub-menu .documents a { background-image: url( ../../img/ico/documents-stack.png ); }
+.sub-menu .files a { background-image: url( ../../img/ico/folder.png ); }
+.sub-menu .schema a { background-image: url( ../../img/ico/book-open-text.png ); }
+.sub-menu .replication a { background-image: url( ../../img/ico/node.png ); }
+.sub-menu .distribution a { background-image: url( ../../img/ico/node-select.png ); }
+.sub-menu .ping a { background-image: url( ../../img/ico/system-monitor.png ); }
+.sub-menu .logging a { background-image: url( ../../img/ico/inbox-document-text.png ); }
+.sub-menu .plugins a { background-image: url( ../../img/ico/block.png ); }
+.sub-menu .dataimport a { background-image: url( ../../img/ico/document-import.png ); }
+.sub-menu .segments a { background-image: url( ../../img/ico/construction.png ); }
 
 
 #content #navigation

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/schema.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/schema.css?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/schema.css (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/schema.css Mon Jan  2 13:44:06 2017
@@ -0,0 +1,704 @@
+/*
+
+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.
+
+*/
+
+#content #schema .loader
+{
+  background-position: 0 50%;
+  padding-left: 21px;  
+}
+
+#content #schema.loaded
+{
+  background-image: url( ../../img/div.gif );
+  background-position: 21% 0;
+  background-repeat: repeat-y;
+}
+
+#content #schema #data
+{
+  float: right;
+  width: 78%;
+}
+
+#content #schema #related
+{
+  float: left;
+  width: 20%;
+}
+
+#content #schema #related select
+{
+  width: 100%;
+}
+
+#content #schema #related select optgroup
+{
+  font-style: normal;
+  padding: 5px;
+}
+
+#content #schema #related select option
+{
+  padding-left: 10px;
+}
+
+#content #schema #related #f-df-t
+{
+  border-bottom: 1px solid #f0f0f0;
+  padding-bottom: 15px;
+}
+
+#content #schema #related .ukf-dsf dt
+{
+}
+
+#content #schema #related dl
+{
+  margin-top: 15px;
+}
+
+#content #schema #related dl dt,
+#content #schema #related dl dd a
+{
+  color: #c0c0c0;
+}
+
+#content #schema #related dl dt
+{
+  font-weight: bold;
+  margin-top: 5px;
+}
+
+#content #schema #related dl dd a
+{
+  display: block;
+  padding-left: 10px;
+}
+
+#content #schema #related dl dd a:hover
+{
+  background-color: #f8f8f8;
+}
+
+#content #schema #related .field .field,
+#content #schema #related .field .field a,
+#content #schema #related .dynamic-field .dynamic-field,
+#content #schema #related .dynamic-field .dynamic-field a,
+#content #schema #related .type .type,
+#content #schema #related .type .type a,
+#content #schema #related .active,
+#content #schema #related .active a
+{
+  color: #333;
+}
+
+#content #schema #related .copyfield,
+#content #schema #related .copyfield a
+{
+  color: #666;
+}
+
+#content #schema #data
+{
+}
+
+#content #schema #data #index dt
+{
+  float: left;
+  margin-right: 5px;
+  width: 150px;
+}
+
+#content #schema #data #field .field-options
+{
+  margin-bottom: 10px;
+}
+
+#content #schema #data #field .field-options .head h2
+{
+  padding-left: 5px;
+}
+
+#content #schema #data #field .partial
+{
+}
+
+#content #schema #data #field .partial p
+{
+  background-image: url( ../../img/ico/exclamation-button.png );
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content #schema #data #field .field-options .options dt,
+#content #schema #data #field .field-options .options dd
+{
+  float: left;
+}
+
+#content #schema #data #field .field-options .options dt
+{
+  clear: left;
+  margin-right: 5px;
+  width: 100px;
+}
+
+#content #schema #data #field .field-options .flags
+{
+  margin-top: 10px;
+  margin-bottom: 20px;
+}
+
+#content #schema #data #field .field-options .flags thead td
+{
+  color: #c0c0c0;
+  padding-right: 5px;
+  width: 100px;
+}
+
+#content #schema #data #field .field-options .flags tbody td,
+#content #schema #data #field .field-options .flags th
+{
+  padding: 2px 5px;
+}
+
+#content #schema #data #field .field-options .flags thead td,
+#content #schema #data #field .field-options .flags tbody th
+{
+  padding-left: 0;
+}
+
+#content #schema #data #field .field-options .flags thead th,
+#content #schema #data #field .field-options .flags tbody td
+{
+  border-left: 1px solid #f0f0f0;
+}
+
+#content #schema #data #field .field-options .flags tbody th,
+#content #schema #data #field .field-options .flags tbody td
+{
+  border-top: 1px solid #f0f0f0;
+}
+
+#content #schema #data #field .field-options .flags tbody .check
+{
+  background-color: #fafdfa;
+  background-image: url( ../../img/ico/tick.png );
+  background-position: 50% 50%;
+  text-align: center;
+}
+
+#content #schema #data #field .field-options .flags tbody .check span
+{
+}
+
+#content #schema #data #field .field-options .flags tbody .text
+{
+  color: #c0c0c0;
+}
+
+#content #schema #data #field .field-options .analyzer,
+#content #schema #data #field .field-options .analyzer li,
+#content #schema #data #field .field-options .analyzer ul,
+#content #schema #data #field .field-options .analyzer ul li
+{
+}
+
+#content #schema #data #field .field-options .analyzer p,
+#content #schema #data #field .field-options .analyzer dl
+{
+  float: left;
+}
+
+#content #schema #data #field .field-options .analyzer p
+{
+  margin-right: 5px;
+  text-align: right;
+  width: 125px;
+  white-space: pre;
+}
+
+#content #schema #data #field .field-options .analyzer p a
+{
+  cursor: auto;
+}
+
+#content #schema #data #field .field-options .analyzer p a.analysis
+{
+  cursor: pointer;
+  display: block;
+}
+
+#content #schema #data #field .field-options .analyzer p a.analysis span
+{
+  background-image: url( ../../img/ico/question-white.png );
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content #schema #data #field .field-options .analyzer p a.analysis:hover span
+{
+  background-image: url( ../../img/ico/question.png );
+  color: #008;
+}
+
+#content #schema #data #field .field-options .analyzer a
+{
+  cursor: auto;
+}
+
+#content #schema #data #field .field-options .analyzer .toggle
+{
+  background-image: url( ../../img/ico/chevron-small-expand.png );
+  background-position: 100% 50%;
+  cursor: pointer;
+  display: block;
+  padding-right: 21px;
+}
+
+#content #schema #data #field .field-options .analyzer .open .toggle
+{
+  background-image: url( ../../img/ico/chevron-small.png );
+}
+
+#content #schema #data #field .field-options .analyzer li
+{
+  border-top: 1px solid #f0f0f0;
+  margin-top: 10px;
+  padding-top: 10px;
+}
+
+#content #schema #data #field .field-options .analyzer ul
+{
+  clear: left;
+  margin-left: 55px;
+  padding-top: 5px;
+}
+
+#content #schema #data #field .field-options .analyzer .open ul
+{
+  display: block;
+}
+
+#content #schema #data #field .field-options .analyzer ul li
+{
+  border-top: 1px solid #f8f8f8;
+  margin-top: 5px;
+  padding-top: 5px;
+}
+
+#content #schema #data #field .field-options .analyzer ul p
+{
+  color: #999;
+  margin-right: 5px;
+  text-align: right;
+  width: 70px;
+}
+
+#content #schema #data #field .field-options .analyzer ul dd
+{
+  margin-left: 20px;
+}
+
+#content #schema #data #field .field-options .analyzer ul dd
+{
+  background-image: url( ../../img/ico/document-list.png );
+  background-position: 0 50%;
+  color: #c0c0c0;
+  padding-left: 21px;
+}
+
+#content #schema #data #field .field-options .analyzer ul dd.ico-0
+{
+  background-image: url( ../../img/ico/slash.png );
+}
+
+#content #schema #data #field .field-options .analyzer ul dd.ico-1
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #schema #data #field .head
+{
+  margin-bottom: 5px;
+}
+
+#content #schema #data #field .terminfo-holder
+{
+  border-top: 1px solid #c0c0c0;
+  padding-top: 10px;
+}
+
+#content #schema #data #field .terminfo-holder .trigger
+{
+  float: left;
+  width: 140px;
+}
+
+#content #schema #data #field .terminfo-holder .trigger button span
+{
+  background-image: url( ../../img/ico/information.png );
+}
+
+#content #schema #data #field .terminfo-holder .status
+{
+  border-left: 1px solid #f0f0f0;
+  float: left;
+  padding-left: 20px;
+  padding-right: 20px;
+}
+
+#content #schema #data #field .terminfo-holder.disabled .trigger button span
+{
+  background-image: url( ../../img/ico/prohibition.png );
+}
+
+#content #schema #data #field .terminfo-holder.disabled .status
+{
+  display: block;
+}
+
+#content #schema #data #field .terminfo-holder .trigger .autoload
+{
+}
+
+#content #schema #data #field .terminfo-holder.loaded .trigger .autoload
+{
+  background-image: url( ../../img/ico/ui-check-box-uncheck.png );
+  background-position: 0 50%;
+  color: #c0c0c0;
+  display: block;
+  margin-top: 10px;
+  padding-left: 21px;
+}
+
+#content #schema #data #field .terminfo-holder .trigger .autoload:hover
+{
+  color: #008;
+}
+
+#content #schema #data #field .terminfo-holder .trigger .autoload.on
+{
+  background-image: url( ../../img/ico/ui-check-box.png );
+  color: #333;
+}
+
+#content #schema #data #field .topterms-holder,
+#content #schema #data #field .histogram-holder
+{
+  border-left: 1px solid #f0f0f0;
+  float: left;
+  padding-left: 20px;
+  padding-right: 20px;
+}
+
+#content #schema #data #field .topterms-holder .head input
+{
+  height: 18px;
+  line-height: 16px;
+  text-align: right;
+  width: 30px;
+}
+
+#content #schema #data #field .topterms-holder .head .max-holder
+{
+  color: #c0c0c0;
+}
+
+#content #schema #data #field .topterms-holder .head .max-holder:hover .max
+{
+  color: #008;
+}
+
+#content #schema #data #field .topterms-holder .head #query_link
+{
+  background-image: url( ../../img/ico/question-white.png );
+  background-position: 0 50%;
+  color: #c0c0c0;
+  padding-left: 21px;
+  margin-left: 5px;
+}
+
+#content #schema #data #field .topterms-holder .head #query_link:hover
+{
+  background-image: url( ../../img/ico/question.png );
+}
+
+
+#content #schema #data #field .topterms-holder .head #query_link span
+{
+  visibility: hidden;
+}
+
+#content #schema #data #field .topterms-holder .head #query_link:hover span
+{
+  visibility: visible;
+}
+
+#content #schema .topterms-holder li
+{
+  border-top: 1px solid  #999;
+  margin-bottom: 5px;
+}
+
+/* possible overwrite with inline style */
+#content #schema .topterms-holder li p
+{
+  background-color:  #999;
+  color: #fff;
+  float: left;
+}
+
+#content #schema .topterms-holder li p span
+{
+  display: block;
+  padding-right: 2px;
+  text-align: right;
+}
+
+/* possible overwrite with inline style */
+#content #schema .topterms-holder li ul
+{
+  margin-left: 30px;
+}
+
+#content #schema .topterms-holder li li
+{
+  border-top: 0;
+  margin-bottom: 0;
+  white-space: nowrap;
+}
+
+#content #schema .topterms-holder li li.odd
+{
+  background-color: #f0f0f0;
+}
+
+#content #schema .topterms-holder li li a
+{
+  display: block;
+  padding-left: 2px;
+  padding-right: 2px;
+}
+
+#content #schema .topterms-holder li li a:hover
+{
+  background-color: #c0c0c0;
+}
+
+#content #schema #data #field .histogram-holder ul
+{
+  margin-left: 25px;
+}
+
+#content #schema #data #field .histogram-holder li
+{
+  margin-bottom: 2px;
+  position: relative;
+  width: 150px;
+}
+
+#content #schema #data #field .histogram-holder li.odd
+{
+  background-color: #f0f0f0;
+}
+
+#content #schema #data #field .histogram-holder li dl,
+#content #schema #data #field .histogram-holder li dt
+{
+  padding-top: 1px;
+  padding-bottom: 1px;
+}
+
+#content #schema #data #field .histogram-holder li dl
+{
+  background-color: #c0c0c0;
+  min-width: 1px;
+}
+
+#content #schema #data #field .histogram-holder li dt
+{
+  color: #a0a0a0;
+  position: absolute;
+  overflow: hidden;
+  left: -25px;
+  top: 0px;
+}
+
+#content #schema #data #field .histogram-holder li dt span
+{
+  display: block;
+  padding-right: 4px;
+  text-align: right;
+}
+
+#content #schema #data #field .histogram-holder li dd
+{
+  clear: left;
+  float: left;
+  margin-left: 2px;
+  white-space: nowrap;
+}
+
+#content #schema #data #field .histogram-holder li:hover dl
+{
+  background-color: #b0b0b0;
+}
+
+#content #schema #data #field .histogram-holder li:hover dt
+{
+  color: #333;
+}
+
+#content #schema #actions {
+  margin-bottom: 20px;
+  min-height: 30px;
+}
+
+#content #schema .actions #addField span { background-image: url( ../../img/ico/document-list.png ); }
+#content #schema .actions #addDynamicField span { background-image: url( ../../img/ico/documents-stack.png ); }
+#content #schema .actions #addCopyField span { background-image: url( ../../img/ico/document-import.png ); }
+
+#content #schema .actions div.action
+{
+  width: 320px;
+  background-color: #fff;
+  border: 1px solid #f0f0f0;
+  box-shadow: 5px 5px 10px #c0c0c0;
+  -moz-box-shadow: 5px 5px 10px #c0c0c0;
+  -webkit-box-shadow: 5px 5px 10px #c0c0c0;
+  position: absolute;
+  left: 160px;
+  top: 50px;
+  padding: 10px;
+  z-index: 2;
+}
+
+#content #schema .actions p
+{
+  padding-bottom: 8px;
+}
+
+#content #schema .actions label
+{
+  float: left;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  text-align: right;
+  width: 25%;
+}
+
+#content #schema .actions input,
+#content #schema .actions select,
+#content #schema .actions .buttons,
+#content #schema .actions .note span
+{
+  float: right;
+  width: 71%;
+}
+
+#content #schema .actions label.checkbox {
+  margin-left: 27%;
+  text-align: left;
+  width: 73%;
+  padding: 0px;
+  margin-top: 0px;
+}
+#content #schema .actions .checkbox input {
+  float: none;
+  width: auto;
+}
+
+#content #schema .add_showhide {
+  background-image: url( ../../img/ico/chevron-small-expand.png );
+  background-position: 100% 50%;
+  cursor: pointer;
+  padding-right: 21px;
+}
+
+#content #schema .add_showhide.open {
+    background-image: url( ../../img/ico/chevron-small.png );
+}
+
+#content #schema label
+{
+  cursor: pointer;
+  display: block;
+  margin-top: 5px;
+  width: 100%;
+}
+
+#content #schema .checkbox
+{
+  margin-bottom: 0;
+  width: auto;
+}
+
+#content #schema .chosen-container {
+  margin-left: 6px;
+  width: 100%;
+}
+#content #schema .chosen-drop input,
+#content #schema .chosen-results {
+  width: 100% !important;
+}
+
+#content #schema button span
+{
+  background-image: url( ../../img/ico/cross.png );
+}
+#content #schema button.submit span
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #schema .error
+{
+  background-image: url( ../../img/ico/cross-button.png );
+  background-position: 22% 1px;
+  color: #c00;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+#content #schema #actions .error span
+{
+  float: right;
+  width: 71%;
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+#content #schema .delete-field button span {
+  background-image: url( ../../img/ico/cross.png );
+}
+
+#content #schema span.rem {
+  background-image: url( ../../img/ico/cross.png );
+  background-position: 100% 50%;
+  cursor: pointer;
+  padding-right: 21px;
+  right:10px;
+  float:right;
+}
+
+#content #schema .copyfield .updatable a {
+  float:left;
+  width:80%;
+}

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/segments.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/segments.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/segments.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/segments.css Mon Jan  2 13:44:06 2017
@@ -52,7 +52,7 @@ limitations under the License.
 
 #content #segments #result #response
 {
- margin-left: 25px;
+  margin-left: 25px;
 }
 
 #content #segments .segments-holder ul {
@@ -65,7 +65,7 @@ limitations under the License.
 }
 
 #content #segments .segments-holder li .tooltip {
- display: none;
+  display: none;
     background: #C8C8C8;
     position: absolute;
     z-index: 1000;
@@ -79,13 +79,13 @@ limitations under the License.
 }
 
 #content #segments .segments-holder li .tooltip .label {
- float: left;
- width: 20%;
- opacity: 1;
+  float: left;
+  width: 20%;  
+  opacity: 1;
 }
 
 #content #segments .segments-holder li:hover .tooltip {
- display:block;
+  display:block;  
 }
 
 #content #segments .segments-holder li dl,
@@ -122,26 +122,26 @@ limitations under the License.
 }
 
 #content #segments .segments-holder li dd div.live {
- background-color: #DDDDDD;
- float: left;
+  background-color: #DDDDDD;
+  float: left;  
 }
 
 #content #segments .segments-holder li dd div.start {
- float: left;
- width: 20%;
+  float: left;
+  width: 20%;
 }
 
 #content #segments .segments-holder li dd div.end {
- text-align: right;
+  text-align: right;
 }
 
 .merge-candidate {
- background-color: #FFC9F9 !important;
+  background-color: #FFC9F9 !important;
 }
 
 #content #segments .segments-holder li dd div.w5 {
- width: 20%;
- float: left;
+  width: 20%;
+  float: left;
 }
 
 #content #segments #auto-refresh {

Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/stream.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/stream.css?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/stream.css (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/angular/stream.css Mon Jan  2 13:44:06 2017
@@ -0,0 +1,233 @@
+/*
+
+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.
+
+*/
+
+#content #stream
+{
+}
+
+#content #stream #form
+{
+  float: top;
+}
+
+#content #stream #form label
+{
+  cursor: pointer;
+  display: inline;
+  margin-top: 5px;
+}
+
+#content #stream #form input,
+#content #stream #form select,
+#content #stream #form textarea
+{
+  margin-bottom: 2px;
+  width: 100%;
+}
+
+#content #stream #form textarea
+{
+  height: 125px;
+}
+
+#content #stream #form #start
+{
+  float: left;
+  width: 45%;
+}
+
+#content #stream #form #rows
+{
+  float: right;
+  width: 45%;
+}
+
+#content #stream #form input[type=checkbox]
+{
+  margin-bottom: 0;
+  margin-left: 5px;
+  margin-right: 0px;
+  width: 10px;
+  height: 10px;
+  display: inline;
+}
+
+#content #stream #form fieldset
+{
+  border: 1px solid #fff;
+  border-top: 1px solid #c0c0c0;
+  margin-bottom: 5px;
+}
+
+#content #stream #form fieldset.common
+{
+  margin-top: 10px;
+}
+
+#content #stream #form fieldset legend
+{
+  display: block;
+  margin-left: 10px;
+  padding: 0px 5px;
+}
+
+#content #stream #form fieldset legend label
+{
+  margin-top: 0;
+}
+
+#content #stream #form button
+{
+  margin-right: 10px;
+}
+
+#content #stream #form fieldset .fieldset
+{
+  border-bottom: 1px solid #f0f0f0;
+  margin-bottom: 5px;
+  padding-bottom: 10px;
+}
+
+#content #stream #result
+{
+  float: bottom;
+}
+
+#content #stream #result #response
+{
+}
+
+/************************/
+
+#content #stream #result #explanation
+{
+  border-top: 1px solid #f0f0f0;
+  border-bottom: 1px solid #f0f0f0;
+  border-left: 1px solid #f0f0f0;
+  border-right: 1px solid #f0f0f0;
+}
+
+#content #stream #result #explanation .loader
+{
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content #stream #result #explanation #error
+{
+  background-color: #f00;
+  background-image: url( ../../img/ico/construction.png );
+  background-position: 10px 12px;
+  color: #fff;
+  font-weight: bold;
+  margin-bottom: 20px;
+  padding: 10px;
+  padding-left: 35px;
+}
+
+#content #stream #result #explanation #error .msg
+{
+  font-style: italic;
+  font-weight: normal;
+  margin-top: 10px;
+}
+
+#content #stream #result #explanation .content
+{
+  padding-left: 0;
+  padding-right: 0;
+}
+
+#content #stream #result #explanation .content.show
+{
+  background-image: url( ../../img/div.gif );
+  background-repeat: repeat-y;
+  background-position: 31% 0;
+}
+
+#content #stream #result #explanation #legend
+{
+  border: 1px solid #f0f0f0;
+  padding: 10px;
+  /*position: absolute;
+  right: 0;
+  bottom: 0;*/
+}
+
+#content #stream #result #explanation #legend li
+{
+  padding-left: 15px;
+  position: relative;
+  -webkit-box-sizing: border-box;
+}
+
+#content #stream #result #explanation #legend li svg
+{
+  position: absolute;
+  left: 0;
+  top: 2px;
+}
+
+#content #stream #result #explanation #explanation-content
+{
+  min-height: 50px;
+  width: 100%
+}
+
+#content #stream #result #explanation #explanation-content .node circle
+{
+  color: #c48f00;
+  stroke: #c48f00;
+  fill: #c48f00;
+}
+
+#content #stream #result #explanation #explanation-content .link
+{
+  fill: none;
+  stroke: #e0e0e0;
+  stroke-width: 1.5px;
+}
+
+#content #stream #result #explanation #legend .datastore circle,
+#content #stream #result #explanation #explanation-content .node.datastore circle
+{
+  stroke: #3800c4;
+  fill: #3800c4;
+}
+
+#content #stream #result #explanation #legend .stream-source circle,
+#content #stream #result #explanation #explanation-content .node.stream-source circle
+{
+  stroke: #21a9ec;
+  fill: #21a9ec;
+}
+
+#content #stream #result #explanation #legend .stream-decorator circle,
+#content #stream #result #explanation #explanation-content .node.stream-decorator circle
+{
+  stroke: #cb21ec;
+  fill: #cb21ec;
+}
+
+#content #stream #result #explanation #legend .graph-source circle,
+#content #stream #result #explanation #explanation-content .node.graph-source circle
+{
+  stroke: #21eca9;
+  fill: #21eca9;
+}

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/chosen.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/chosen.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/chosen.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/chosen.css Mon Jan  2 13:44:06 2017
@@ -81,7 +81,7 @@ THE SOFTWARE.
   text-decoration: none;
 }
 .chzn-container-single .chzn-default {
- color: #999;
+  color: #999;
 }
 .chzn-container-single .chzn-single span {
   margin-right: 26px;

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/common.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/common.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/common.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/common.css Mon Jan  2 13:44:06 2017
@@ -699,3 +699,33 @@ pre.syntax .tex .formula
   -webkit-box-shadow: 1px 1px 0 #d8d8d8;
   color: #333;
 }
+
+.other-ui-link {
+  margin: 0px;
+  position: absolute;
+  right: 0px;
+  top: -20px;
+}
+
+.other-ui-link span.help {
+  background-image: url( ../../img/ico/information-white.png );
+  right: 0px;
+  padding-left: 16px;
+}
+.other-ui-link a.ul {
+  text-decoration: underline;
+}
+
+.old-ui-warning {
+  position: absolute;
+  right: 0px;
+  top: -20px;
+  align: center;
+  color: red;
+  font-weight: bold;
+}
+.old-ui-warning a.ul {
+  color: red;
+  font-weight: bold;
+  text-decoration: underline;
+}

Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/segments.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/segments.css?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/segments.css (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/css/styles/segments.css Mon Jan  2 13:44:06 2017
@@ -52,7 +52,7 @@ limitations under the License.
 
 #content #segments #result #response
 {
- margin-left: 25px;
+  margin-left: 25px;
 }
 
 #content #segments .segments-holder ul {
@@ -65,7 +65,7 @@ limitations under the License.
 }
 
 #content #segments .segments-holder li .toolitp {
- display: none;
+  display: none;
     background: #C8C8C8;
     position: absolute;
     z-index: 1000;
@@ -79,13 +79,13 @@ limitations under the License.
 }
 
 #content #segments .segments-holder li .toolitp .label {
- float: left;
- width: 20%;
- opacity: 1;
+  float: left;
+  width: 20%;  
+  opacity: 1;
 }
 
 #content #segments .segments-holder li:hover .toolitp {
- display:block;
+  display:block;  
 }
 
 #content #segments .segments-holder li dl,
@@ -122,24 +122,24 @@ limitations under the License.
 }
 
 #content #segments .segments-holder li dd div.live {
- background-color: #DDDDDD;
- float: left;
+  background-color: #DDDDDD;
+  float: left;  
 }
 
 #content #segments .segments-holder li dd div.start {
- float: left;
- width: 20%;
+  float: left;
+  width: 20%;
 }
 
 #content #segments .segments-holder li dd div.end {
- text-align: right;
+  text-align: right;
 }
 
 .merge-candidate {
- background-color: #FFC9F9 !important;
+  background-color: #FFC9F9 !important;
 }
 
 #content #segments .segments-holder li dd div.w5 {
- width: 20%;
- float: left;
+  width: 20%;
+  float: left;
 }