You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2015/02/23 06:42:38 UTC

svn commit: r1661606 [1/12] - in /lucene/dev/trunk/solr: ./ webapp/web/ webapp/web/css/angular/ webapp/web/js/angular/ webapp/web/js/angular/controllers/ webapp/web/libs/ webapp/web/partials/

Author: erick
Date: Mon Feb 23 05:42:36 2015
New Revision: 1661606

URL: http://svn.apache.org/r1661606
Log:
SOLR-5507: Admin UI - Refactoring using AngularJS

Added:
    lucene/dev/trunk/solr/webapp/web/css/angular/
    lucene/dev/trunk/solr/webapp/web/css/angular/analysis.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/chosen.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/cloud.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/common.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/cores.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/index.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/logging.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/menu.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/query.css   (with props)
    lucene/dev/trunk/solr/webapp/web/css/angular/threads.css   (with props)
    lucene/dev/trunk/solr/webapp/web/index.html   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/
    lucene/dev/trunk/solr/webapp/web/js/angular/app.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/analysis.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/cloud.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/core-overview.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/cores.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/index.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/java-properties.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/logging.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/query.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/controllers/threads.js   (with props)
    lucene/dev/trunk/solr/webapp/web/js/angular/services.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/
    lucene/dev/trunk/solr/webapp/web/libs/angular-chosen.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular-cookies.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular-cookies.min.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular-resource.min.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular-route.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular-route.min.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular-sanitize.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular-sanitize.min.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/angular.min.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/chosen.jquery.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/chosen.jquery.min.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/d3.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/highlight.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/jquery-2.1.3.min.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/jquery.jstree.js   (with props)
    lucene/dev/trunk/solr/webapp/web/libs/ngtimeago.js   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/
    lucene/dev/trunk/solr/webapp/web/partials/analysis.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/cloud.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/core_overview.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/cores.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/index.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/java-properties.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/logging-levels.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/logging.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/query.html   (with props)
    lucene/dev/trunk/solr/webapp/web/partials/threads.html   (with props)
Modified:
    lucene/dev/trunk/solr/CHANGES.txt

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1661606&r1=1661605&r2=1661606&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Mon Feb 23 05:42:36 2015
@@ -115,6 +115,9 @@ New Features
 * SOLR-7125: You can upload and download configurations via CloudSolrClient
   (Alan Woodward)
 
+* SOLR-5507: Admin UI - Refactoring using AngularJS, first part (Upayavira via 
+  Erick Erickson)
+
 Bug Fixes
 ----------------------
 

Added: lucene/dev/trunk/solr/webapp/web/css/angular/analysis.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/analysis.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/analysis.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/analysis.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,304 @@
+/*
+
+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 #analysis-holder
+{
+  background-image: url( ../../img/div.gif );
+  background-position: 50% 0;
+  background-repeat: repeat-y;
+}
+
+#content #analysis #field-analysis
+{
+  margin-bottom: 0;
+}
+
+#content #analysis #field-analysis .content
+{
+  padding-bottom: 0;
+}
+
+#content #analysis .settings-holder
+{
+  clear: both;
+  padding-top: 15px;
+}
+
+#content #analysis .settings
+{
+  background-color: #fff;
+  border-top: 1px solid #fafafa;
+  border-bottom: 1px solid #fafafa;
+  padding-top: 10px;
+  padding-bottom: 10px;
+}
+
+#content #analysis .settings select.loader
+{
+  background-position: 3px 50%;
+  padding-left: 21px;
+}
+
+#content #analysis .settings select optgroup
+{
+  font-style: normal;
+  padding: 5px;
+}
+
+#content #analysis .settings select option
+{
+  padding-left: 10px;
+}
+
+#content #analysis .settings #tor_schema
+{
+  background-image: url( ../../img/ico/question-white.png );
+  background-position: 0 50%;
+  color: #c0c0c0;
+  margin-left: 5px;
+  padding-left: 21px;
+}
+
+#content #analysis .settings #tor_schema:hover
+{
+  background-image: url( ../../img/ico/question.png );
+}
+
+#content #analysis .settings #tor_schema span
+{
+//  display: none;
+}
+
+#content #analysis .settings #tor_schema:hover span
+{
+  display: inline;
+}
+
+#content #analysis .settings .buttons
+{
+  float: right;
+  width: 47%;
+}
+
+#content #analysis .settings button
+{
+  float: right;
+}
+
+#content #analysis .settings button span
+{
+  background-image: url( ../../img/ico/funnel.png );
+}
+
+#content #analysis .settings .verbose_output
+{
+  float: left;
+  width: auto;
+}
+
+#content #analysis .settings .verbose_output a
+{
+  background-image: url( ../../img/ico/ui-check-box-uncheck.png );
+  background-position: 0 50%;
+  color: #999;
+  display: block;
+  padding-left: 21px;
+}
+
+#content #analysis .settings .verbose_output.active a
+{
+  background-image: url( ../../img/ico/ui-check-box.png );
+}
+
+#content #analysis .index label,
+#content #analysis .query label
+{
+  display: block;
+}
+
+#content #analysis .index textarea,
+#content #analysis .query textarea
+{
+  display: block;
+  width: 100%;
+}
+
+#content #analysis .index
+{
+  float: left;
+  margin-right: 0.5%;
+  min-width: 47%;
+  max-width: 99%;
+}
+
+#content #analysis .query
+{
+  float: right;
+  margin-left: 0.5%;
+  min-width: 47%;
+  max-width: 99%;
+}
+
+#content #analysis .analysis-error
+{
+  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 #analysis .analysis-error .head a
+{
+  color: #fff;
+  cursor: auto;
+}
+
+#content #analysis #analysis-result
+{
+  overflow: auto;
+}
+
+#content #analysis #analysis-result .index,
+#content #analysis #analysis-result .query
+{
+  background-color: #fff;
+  padding-top: 20px;
+}
+
+#content #analysis #analysis-result table
+{
+  border-collapse: collapse;
+}
+
+#content #analysis #analysis-result td
+{
+  vertical-align: top;
+  white-space: nowrap;
+}
+
+#content #analysis #analysis-result td.part.analyzer div,
+#content #analysis #analysis-result td.part.spacer .holder,
+#content #analysis #analysis-result td td td
+{
+  padding-top: 1px;
+  padding-bottom: 1px;
+}
+
+#content #analysis #analysis-result.verbose_output td.legend
+{
+  display: table-cell;
+}
+
+#content #analysis #analysis-result.verbose_output td.data tr.verbose_output
+{
+  display: table-row;
+}
+
+#content #analysis #analysis-result .match
+{
+  background-color: #e9eff7;
+  background-color: #f2f2ff;
+}
+
+#content #analysis #analysis-result td.part
+{
+  padding-bottom: 10px;
+}
+
+#content #analysis #analysis-result td.part.analyzer div
+{
+  border-right: 1px solid #f0f0f0;
+  padding-right: 10px;
+}
+
+#content #analysis #analysis-result td.part.analyzer abbr
+{
+  color: #c0c0c0;
+}
+
+#content #analysis #analysis-result td.part.legend .holder,
+#content #analysis #analysis-result td.part.data .holder
+{
+  padding-left: 10px;
+  padding-right: 10px;
+  border-right: 1px solid #c0c0c0;
+}
+
+#content #analysis #analysis-result td.part.legend td
+{
+  color: #c0c0c0;
+}
+
+#content #analysis #analysis-result td.part.legend .holder
+{
+  border-right-color: #f0f0f0;
+}
+
+#content #analysis #analysis-result td.part.data:last-child .holder
+{
+  padding-right: 0;
+  border-right: 0;
+}
+
+#content #analysis #analysis-result td.details 
+{
+  padding-left: 10px;
+  padding-right: 10px;
+  border-left: 1px solid #f0f0f0;
+  border-right: 1px solid #f0f0f0;
+}
+
+#content #analysis #analysis-result td.details:first-child
+{
+  padding-left: 0;
+  border-left: 0;
+}
+
+#content #analysis #analysis-result td.details:last-child
+{
+  padding-right: 0;
+  border-right: 0;
+}
+
+#content #analysis #analysis-result td.details tr.empty td
+{
+  color: #f0f0f0;
+}
+
+#content #analysis #analysis-result td.details tr.raw_bytes td
+{
+  letter-spacing: -1px;
+}
+
+#content #analysis #analysis-result .part table table td
+{
+  border-top: 1px solid #f0f0f0;
+}
+
+#content #analysis #analysis-result .part table table tr:first-child td
+{
+  border-top: 0;
+}
+
+#content #analysis #field-analysis h2 { background-image: url( ../../img/ico/receipt.png ); }
+#content #analysis .analysis-result h2 { background-image: url( ../../img/ico/receipt-invoice.png ); }

Added: lucene/dev/trunk/solr/webapp/web/css/angular/chosen.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/chosen.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/chosen.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/chosen.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,465 @@
+/*
+
+Chosen
+
+- by Patrick Filler for Harvest http://getharvest.com
+- Copyright (c) 2011-2013 by Harvest
+
+Available for use under the MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+*/
+/*!
+Chosen, a Select Box Enhancer for jQuery and Prototype
+by Patrick Filler for Harvest, http://getharvest.com
+
+Version 1.3.0
+Full source at https://github.com/harvesthq/chosen
+Copyright (c) 2011-2014 Harvest http://getharvest.com
+
+MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
+This file is generated by `grunt build`, do not edit it by hand.
+*/
+
+/* @group Base */
+.chosen-container {
+  position: relative;
+  display: inline-block;
+  vertical-align: middle;
+  font-size: 13px;
+  zoom: 1;
+  *display: inline;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  user-select: none;
+}
+.chosen-container * {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.chosen-container .chosen-drop {
+  position: absolute;
+  top: 100%;
+  left: -9999px;
+  z-index: 1010;
+  width: 100%;
+  border: 1px solid #aaa;
+  border-top: 0;
+  background: #fff;
+  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
+}
+.chosen-container.chosen-with-drop .chosen-drop {
+  left: 0;
+}
+.chosen-container a {
+  cursor: pointer;
+}
+
+/* @end */
+/* @group Single Chosen */
+.chosen-container-single .chosen-single {
+  position: relative;
+  display: block;
+  overflow: hidden;
+  padding: 0 0 0 8px;
+  height: 25px;
+  border: 1px solid #aaa;
+  border-radius: 5px;
+  background-color: #fff;
+  background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
+  background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+  background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+  background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+  background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+  background-clip: padding-box;
+  box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
+  color: #444;
+  text-decoration: none;
+  white-space: nowrap;
+  line-height: 24px;
+}
+.chosen-container-single .chosen-default {
+  color: #999;
+}
+.chosen-container-single .chosen-single span {
+  display: block;
+  overflow: hidden;
+  margin-right: 26px;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.chosen-container-single .chosen-single-with-deselect span {
+  margin-right: 38px;
+}
+.chosen-container-single .chosen-single abbr {
+  position: absolute;
+  top: 6px;
+  right: 26px;
+  display: block;
+  width: 12px;
+  height: 12px;
+  background: url('chosen-sprite.png') -42px 1px no-repeat;
+  font-size: 1px;
+}
+.chosen-container-single .chosen-single abbr:hover {
+  background-position: -42px -10px;
+}
+.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
+  background-position: -42px -10px;
+}
+.chosen-container-single .chosen-single div {
+  position: absolute;
+  top: 0;
+  right: 0;
+  display: block;
+  width: 18px;
+  height: 100%;
+}
+.chosen-container-single .chosen-single div b {
+  display: block;
+  width: 100%;
+  height: 100%;
+  background: url('chosen-sprite.png') no-repeat 0px 2px;
+}
+.chosen-container-single .chosen-search {
+  position: relative;
+  z-index: 1010;
+  margin: 0;
+  padding: 3px 4px;
+  white-space: nowrap;
+}
+.chosen-container-single .chosen-search input[type="text"] {
+  margin: 1px 0;
+  padding: 4px 20px 4px 5px;
+  width: 100%;
+  height: auto;
+  outline: 0;
+  border: 1px solid #aaa;
+  background: white url('chosen-sprite.png') no-repeat 100% -20px;
+  background: url('chosen-sprite.png') no-repeat 100% -20px;
+  font-size: 1em;
+  font-family: sans-serif;
+  line-height: normal;
+  border-radius: 0;
+}
+.chosen-container-single .chosen-drop {
+  margin-top: -1px;
+  border-radius: 0 0 4px 4px;
+  background-clip: padding-box;
+}
+.chosen-container-single.chosen-container-single-nosearch .chosen-search {
+  position: absolute;
+  left: -9999px;
+}
+
+/* @end */
+/* @group Results */
+.chosen-container .chosen-results {
+  color: #444;
+  position: relative;
+  overflow-x: hidden;
+  overflow-y: auto;
+  margin: 0 4px 4px 0;
+  padding: 0 0 0 4px;
+  max-height: 240px;
+  -webkit-overflow-scrolling: touch;
+}
+.chosen-container .chosen-results li {
+  display: none;
+  margin: 0;
+  padding: 5px 6px;
+  list-style: none;
+  line-height: 15px;
+  word-wrap: break-word;
+  -webkit-touch-callout: none;
+}
+.chosen-container .chosen-results li.active-result {
+  display: list-item;
+  cursor: pointer;
+}
+.chosen-container .chosen-results li.disabled-result {
+  display: list-item;
+  color: #ccc;
+  cursor: default;
+}
+.chosen-container .chosen-results li.highlighted {
+  background-color: #3875d7;
+  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
+  background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
+  background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
+  background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
+  background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
+  color: #fff;
+}
+.chosen-container .chosen-results li.no-results {
+  color: #777;
+  display: list-item;
+  background: #f4f4f4;
+}
+.chosen-container .chosen-results li.group-result {
+  display: list-item;
+  font-weight: bold;
+  cursor: default;
+}
+.chosen-container .chosen-results li.group-option {
+  padding-left: 15px;
+}
+.chosen-container .chosen-results li em {
+  font-style: normal;
+  text-decoration: underline;
+}
+
+/* @end */
+/* @group Multi Chosen */
+.chosen-container-multi .chosen-choices {
+  position: relative;
+  overflow: hidden;
+  margin: 0;
+  padding: 0 5px;
+  width: 100%;
+  height: auto !important;
+  height: 1%;
+  border: 1px solid #aaa;
+  background-color: #fff;
+  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+  background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
+  background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
+  background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
+  background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
+  cursor: text;
+}
+.chosen-container-multi .chosen-choices li {
+  float: left;
+  list-style: none;
+}
+.chosen-container-multi .chosen-choices li.search-field {
+  margin: 0;
+  padding: 0;
+  white-space: nowrap;
+}
+.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
+  margin: 1px 0;
+  padding: 0;
+  height: 25px;
+  outline: 0;
+  border: 0 !important;
+  background: transparent !important;
+  box-shadow: none;
+  color: #999;
+  font-size: 100%;
+  font-family: sans-serif;
+  line-height: normal;
+  border-radius: 0;
+}
+.chosen-container-multi .chosen-choices li.search-choice {
+  position: relative;
+  margin: 3px 5px 3px 0;
+  padding: 3px 20px 3px 5px;
+  border: 1px solid #aaa;
+  max-width: 100%;
+  border-radius: 3px;
+  background-color: #eeeeee;
+  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+  background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  background-size: 100% 19px;
+  background-repeat: repeat-x;
+  background-clip: padding-box;
+  box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
+  color: #333;
+  line-height: 13px;
+  cursor: default;
+}
+.chosen-container-multi .chosen-choices li.search-choice span {
+  word-wrap: break-word;
+}
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
+  position: absolute;
+  top: 4px;
+  right: 3px;
+  display: block;
+  width: 12px;
+  height: 12px;
+  background: url('chosen-sprite.png') -42px 1px no-repeat;
+  font-size: 1px;
+}
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
+  background-position: -42px -10px;
+}
+.chosen-container-multi .chosen-choices li.search-choice-disabled {
+  padding-right: 5px;
+  border: 1px solid #ccc;
+  background-color: #e4e4e4;
+  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+  background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+  color: #666;
+}
+.chosen-container-multi .chosen-choices li.search-choice-focus {
+  background: #d4d4d4;
+}
+.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
+  background-position: -42px -10px;
+}
+.chosen-container-multi .chosen-results {
+  margin: 0;
+  padding: 0;
+}
+.chosen-container-multi .chosen-drop .result-selected {
+  display: list-item;
+  color: #ccc;
+  cursor: default;
+}
+
+/* @end */
+/* @group Active  */
+.chosen-container-active .chosen-single {
+  border: 1px solid #5897fb;
+  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+}
+.chosen-container-active.chosen-with-drop .chosen-single {
+  border: 1px solid #aaa;
+  -moz-border-radius-bottomright: 0;
+  border-bottom-right-radius: 0;
+  -moz-border-radius-bottomleft: 0;
+  border-bottom-left-radius: 0;
+  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
+  background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
+  background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
+  background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
+  background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
+  box-shadow: 0 1px 0 #fff inset;
+}
+.chosen-container-active.chosen-with-drop .chosen-single div {
+  border-left: none;
+  background: transparent;
+}
+.chosen-container-active.chosen-with-drop .chosen-single div b {
+  background-position: -18px 2px;
+}
+.chosen-container-active .chosen-choices {
+  border: 1px solid #5897fb;
+  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+}
+.chosen-container-active .chosen-choices li.search-field input[type="text"] {
+  color: #222 !important;
+}
+
+/* @end */
+/* @group Disabled Support */
+.chosen-disabled {
+  opacity: 0.5 !important;
+  cursor: default;
+}
+.chosen-disabled .chosen-single {
+  cursor: default;
+}
+.chosen-disabled .chosen-choices .search-choice .search-choice-close {
+  cursor: default;
+}
+
+/* @end */
+/* @group Right to Left */
+.chosen-rtl {
+  text-align: right;
+}
+.chosen-rtl .chosen-single {
+  overflow: visible;
+  padding: 0 8px 0 0;
+}
+.chosen-rtl .chosen-single span {
+  margin-right: 0;
+  margin-left: 26px;
+  direction: rtl;
+}
+.chosen-rtl .chosen-single-with-deselect span {
+  margin-left: 38px;
+}
+.chosen-rtl .chosen-single div {
+  right: auto;
+  left: 3px;
+}
+.chosen-rtl .chosen-single abbr {
+  right: auto;
+  left: 26px;
+}
+.chosen-rtl .chosen-choices li {
+  float: right;
+}
+.chosen-rtl .chosen-choices li.search-field input[type="text"] {
+  direction: rtl;
+}
+.chosen-rtl .chosen-choices li.search-choice {
+  margin: 3px 5px 3px 0;
+  padding: 3px 5px 3px 19px;
+}
+.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
+  right: auto;
+  left: 4px;
+}
+.chosen-rtl.chosen-container-single-nosearch .chosen-search,
+.chosen-rtl .chosen-drop {
+  left: 9999px;
+}
+.chosen-rtl.chosen-container-single .chosen-results {
+  margin: 0 0 4px 4px;
+  padding: 0 4px 0 0;
+}
+.chosen-rtl .chosen-results li.group-option {
+  padding-right: 15px;
+  padding-left: 0;
+}
+.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
+  border-right: none;
+}
+.chosen-rtl .chosen-search input[type="text"] {
+  padding: 4px 5px 4px 20px;
+  background: white url('chosen-sprite.png') no-repeat -30px -20px;
+  background: url('chosen-sprite.png') no-repeat -30px -20px;
+  direction: rtl;
+}
+.chosen-rtl.chosen-container-single .chosen-single div b {
+  background-position: 6px 2px;
+}
+.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
+  background-position: -12px 2px;
+}
+
+/* @end */
+/* @group Retina compatibility */
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
+  .chosen-rtl .chosen-search input[type="text"],
+  .chosen-container-single .chosen-single abbr,
+  .chosen-container-single .chosen-single div b,
+  .chosen-container-single .chosen-search input[type="text"],
+  .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
+  .chosen-container .chosen-results-scroll-down span,
+  .chosen-container .chosen-results-scroll-up span {
+    background-image: url('chosen-sprite@2x.png') !important;
+    background-size: 52px 37px !important;
+    background-repeat: no-repeat !important;
+  }
+}
+/* @end */

Added: lucene/dev/trunk/solr/webapp/web/css/angular/cloud.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/cloud.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/cloud.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/cloud.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,391 @@
+/*
+
+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 #cloud
+{
+  position: relative;
+}
+
+#content #cloud .loader
+{
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content #cloud #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 #cloud #error .msg
+{
+  font-style: italic;
+  font-weight: normal;
+  margin-top: 10px;
+}
+
+#content #cloud #debug
+{
+  background-color: #fff;
+  box-shadow: 0px 0px 10px #c0c0c0;
+  -moz-box-shadow: 0px 0px 10px #c0c0c0;
+  -webkit-box-shadow: 0px 0px 10px #c0c0c0;
+  padding: 20px;
+  position: absolute;
+  left: 50px;
+  top: 10px;
+}
+
+#content #cloud #debug ul
+{
+  margin-bottom: 5px;
+}
+
+#content #cloud #debug ul a
+{
+  background-position: 4px 50%;
+  border-right: 0;
+  display: block;
+  padding: 2px 4px;
+  padding-left: 25px;
+}
+
+#content #cloud #debug ul a:hover,
+#content #cloud #debug ul a.hover
+{
+  background-color: #f0f0f0;
+}
+
+#content #cloud #debug .clipboard
+{
+  float: left;
+  position: relative;
+}
+
+#content #cloud #debug .clipboard a
+{
+  background-image: url( ../../img/ico/clipboard-paste.png );
+  z-index: 98;
+}
+
+#content #cloud #debug .clipboard a:hover,
+#content #cloud #debug .clipboard a.hover,
+#content #cloud #debug .clipboard.copied a
+{
+  background-image: url( ../../img/ico/clipboard-paste-document-text.png );
+}
+
+#content #cloud #debug .close
+{
+  float: right;
+}
+
+#content #cloud #debug .close a
+{
+  background-image: url( ../../img/ico/cross-0.png );
+  padding-left: 21px;
+}
+
+#content #cloud #debug .close a:hover
+{
+  background-image: url( ../../img/ico/cross-1.png );
+}
+
+#content #cloud #debug .debug
+{
+  border: 1px solid #f0f0f0;
+  max-height: 350px;
+  overflow: auto;
+  padding: 5px;
+  width: 500px;
+}
+
+#content #cloud #debug .debug .loader
+{
+  background-position: 5px 50%;
+  display: block;
+  padding: 10px 26px;
+}
+
+#content #cloud .content
+{
+  padding-left: 0;
+  padding-right: 0;
+}
+
+#content #cloud .content.show
+{
+  background-image: url( ../../img/div.gif );
+  background-repeat: repeat-y;
+  background-position: 31% 0;
+}
+
+#content #cloud #tree
+{
+  float: left;
+  width: 30%;
+}
+
+#content #cloud .show #tree
+{
+  overflow: hidden;
+}
+
+#content #cloud #file-content
+{
+  float: right;
+  position: relative;
+  width: 68%;
+  min-height: 100px
+}
+
+#content #cloud .show #file-content
+{
+  display: block;
+}
+
+#content #cloud #file-content .close
+{
+  background-image: url( ../../img/ico/cross-0.png );
+  background-position: 50% 50%;
+  display: block;
+  height: 20px;
+  position: absolute;
+  right: 0;
+  top: 0;
+  width: 20px;
+}
+
+#content #cloud #file-content .close:hover
+{
+  background-image: url( ../../img/ico/cross-1.png );
+}
+
+#content #cloud #file-content #data
+{
+  border-top: 1px solid #c0c0c0;
+  margin-top: 10px;
+  padding-top: 10px;
+}
+
+#content #cloud #file-content #data pre
+{
+  display: block;
+  max-height: 600px;
+  overflow: auto;
+}
+
+#content #cloud #file-content #data em
+{
+  color: #c0c0c0;
+}
+
+#content #cloud #file-content #prop
+{
+}
+
+#content #cloud #file-content li
+{
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+
+#content #cloud #file-content li.odd
+{
+  background-color: #F8F8F8;
+}
+
+#content #cloud #file-content li dt
+{
+  float: left;
+  width: 19%;
+}
+
+#content #cloud #file-content li dd
+{
+  float: right;
+  width: 80%;
+}
+
+/* tree */
+
+#content #cloud #legend
+{
+  border: 1px solid #f0f0f0;
+  padding: 10px;
+  position: absolute;
+  right: 0;
+  bottom: 0;
+}
+
+#content #cloud #legend li
+{
+  padding-left: 15px;
+  position: relative;
+}
+
+#content #cloud #legend li svg
+{
+  position: absolute;
+  left: 0;
+  top: 2px;
+}
+
+#content #graph-content
+{
+  min-height: 400px;
+}
+
+#content #graph-content .node
+{
+  fill: #333;
+}
+
+#content #cloud #legend circle,
+#content #graph-content .node circle
+{
+  fill: #fff;
+  stroke: #c0c0c0;
+  stroke-width: 1.5px;
+}
+
+#content #graph-content .node.lvl-3 text
+{
+  cursor: pointer;
+}
+
+#content #graph-content .node.lvl-3:hover circle
+{
+  stroke: #000 !important;
+}
+
+#content #graph-content .node.lvl-3:hover text
+{
+  fill: #000 !important;
+}
+
+#content #graph-content .link
+{
+  fill: none;
+  stroke: #e0e0e0;
+  stroke-width: 1.5px;
+}
+
+#content #cloud #legend .gone circle,
+#content #graph-content .node.gone circle,
+#content #graph-content .link.gone
+{
+  stroke: #f0f0f0;
+}
+
+#content #graph-content .node.gone text
+{
+  fill: #f0f0f0;
+}
+
+#content #cloud #legend ul .gone
+{
+  color: #e0e0e0;
+}
+
+#content #cloud #legend .recovery_failed,
+#content #cloud #legend .recovery_failed circle,
+#content #graph-content .node.recovery_failed circle
+{
+  color: #C43C35;
+  stroke: #C43C35;
+}
+
+#content #graph-content .node.recovery_failed text
+{
+  fill: #C43C35;
+}
+
+#content #cloud #legend .down,
+#content #cloud #legend .down circle,
+#content #graph-content .node.down circle
+{
+  color: #c48f00;
+  stroke: #c48f00;
+}
+
+#content #graph-content .node.down text
+{
+  fill: #c48f00;
+}
+
+#content #cloud #legend .recovering,
+#content #cloud #legend .recovering circle,
+#content #graph-content .node.recovering circle
+{
+  color: #d5dd00;
+  stroke: #d5dd00;
+}
+
+#content #graph-content .node.recovering text
+{
+  fill: #d5dd00;
+}
+
+#content #cloud #legend .active,
+#content #cloud #legend .active circle,
+#content #graph-content .node.active circle
+{
+  color: #57A957;
+  stroke: #57A957;
+}
+
+#content #graph-content .node.active text
+{
+  fill: #57A957;
+}
+
+#content #cloud #legend .leader circle,
+#content #graph-content .node.leader circle
+{
+  fill: #000;
+}
+
+#content #cloud #legend .leader circle
+{
+  stroke: #fff;
+}
+
+#content #graph-content .link.lvl-2,
+#content #graph-content .link.leader
+{
+  stroke: #c0c0c0;
+}
+
+#content #graph-content .node.lvl-0 circle
+{
+  stroke: #fff;
+}
+
+#content #graph-content .link.lvl-1
+{
+  stroke: #fff;
+}

Added: lucene/dev/trunk/solr/webapp/web/css/angular/common.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/common.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/common.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/common.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,716 @@
+/*
+
+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.
+
+*/
+
+*
+{
+  background-repeat: no-repeat;
+  margin: 0;
+  padding: 0;
+}
+
+body, h1, h2, h3, h4, h5, h6, a, button, input, select, option, textarea, th, td
+{
+  color: #333;
+  font: 12px/1.6em "Lucida Grande", "DejaVu Sans", "Bitstream Vera Sans", Verdana, Arial, sans-serif;
+}
+
+body
+{
+  padding: 30px;
+  text-align: center;
+}
+
+a, button
+{
+  cursor: pointer;
+}
+
+input, select, textarea
+{
+  border: 1px solid #c0c0c0;
+  padding: 2px;
+}
+
+input[readonly=readonly]
+{
+  border-color: #f0f0f0;
+}
+
+button
+{
+  background-color: #e6e6e6;
+  background-repeat: no-repeat;
+  background-image: -webkit-gradient( linear, 0 0, 0 100%, from( #ffffff ), color-stop( 25%, #ffffff ), to( #e6e6e6 ) );
+  background-image: -webkit-linear-gradient( #ffffff, #ffffff 25%, #e6e6e6 );
+  background-image: -moz-linear-gradient( top, #ffffff, #ffffff 25%, #e6e6e6 );
+  background-image: -ms-linear-gradient( #ffffff, #ffffff 25%, #e6e6e6 );
+  background-image: -o-linear-gradient( #ffffff, #ffffff 25%, #e6e6e6 );
+  background-image: linear-gradient( #ffffff, #ffffff 25%, #e6e6e6 );
+  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0 );
+  border: 1px solid #ccc;
+  border-bottom-color: #bbb;
+  -moz-border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+  -webkit-box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.2 ), 0 1px 2px rgba( 0, 0, 0, 0.05 );
+  -moz-box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.2 ), 0 1px 2px rgba( 0, 0, 0, 0.05 );
+  box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.2 ), 0 1px 2px rgba( 0, 0, 0, 0.05 );
+  color: #333;
+  cursor: pointer;
+  display: inline-block;
+  padding: 4px 7px 5px;
+  overflow: visible;
+  text-shadow: 0 1px 1px rgba( 255, 255, 255, 0.75 );
+  -webkit-transition: 0.1s linear background-image;
+  -moz-transition: 0.1s linear background-image;
+  -ms-transition: 0.1s linear background-image;
+  -o-transition: 0.1s linear background-image;
+  transition: 0.1s linear background-image;
+}
+
+button span
+{
+  background-position: 0 50%;
+  display: block;
+  padding-left: 21px;
+}
+
+button[type=submit], button.primary
+{
+  background-color: #0064cd;
+  background-repeat: repeat-x;
+  background-image: -khtml-gradient( linear, left top, left bottom, from( #049cdb ), to( #0064cd ) );
+  background-image: -moz-linear-gradient( top, #049cdb, #0064cd );
+  background-image: -ms-linear-gradient( top, #049cdb, #0064cd );
+  background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #049cdb ), color-stop( 100%, #0064cd ) );
+  background-image: -webkit-linear-gradient( top, #049cdb, #0064cd );
+  background-image: -o-linear-gradient( top, #049cdb, #0064cd );
+  background-image: linear-gradient( top, #049cdb, #0064cd );
+  border-color: #0064cd #0064cd #003f81;
+  border-color: rgba( 0, 0, 0, 0.1 ) rgba( 0, 0, 0, 0.1 ) rgba( 0, 0, 0, 0.25 );
+  color: #ffffff;
+  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0 );
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+button.success
+{
+  background-color: #57a957;
+  background-repeat: repeat-x;
+  background-image: -khtml-gradient( linear, left top, left bottom, from( #62c462 ), to( #57a957 ) );
+  background-image: -moz-linear-gradient( top, #62c462, #57a957 );
+  background-image: -ms-linear-gradient( top, #62c462, #57a957 );
+  background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #62c462 ), color-stop( 100%, #57a957 ) );
+  background-image: -webkit-linear-gradient( top, #62c462, #57a957 );
+  background-image: -o-linear-gradient( top, #62c462, #57a957 );
+  background-image: linear-gradient( top, #62c462, #57a957 );
+  border-color: #57a957 #57a957 #3d773d;
+  border-color: rgba( 0, 0, 0, 0.1 ) rgba( 0, 0, 0, 0.1 ) rgba( 0, 0, 0, 0.25 );
+  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#62c462', endColorstr='#57a957', GradientType=0 );
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.25 );
+}
+
+button.warn
+{
+  background-color: #c43c35;
+  background-repeat: repeat-x;
+  background-image: -khtml-gradient( linear, left top, left bottom, from( #ee5f5b ), to( #c43c35 ) );
+  background-image: -moz-linear-gradient( top, #ee5f5b, #c43c35 );
+  background-image: -ms-linear-gradient( top, #ee5f5b, #c43c35 );
+  background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #ee5f5b ), color-stop( 100%, #c43c35 ) );
+  background-image: -webkit-linear-gradient( top, #ee5f5b, #c43c35 );
+  background-image: -o-linear-gradient( top, #ee5f5b, #c43c35 );
+  background-image: linear-gradient( top, #ee5f5b, #c43c35 );
+  border-color: #c43c35 #c43c35 #882a25;
+  border-color: rgba( 0, 0, 0, 0.1 ) rgba( 0, 0, 0, 0.1 ) rgba( 0, 0, 0, 0.25 );
+  color: #ffffff;
+  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0 );
+  text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.25 );
+}
+
+a
+{
+  text-decoration: none;
+}
+
+pre
+{
+  color: #333;
+  text-align: left;
+}
+
+abbr
+{
+  cursor: help;
+}
+
+ul
+{
+  list-style: none;
+}
+
+.clearfix:after { clear: both; content: "."; display: block; font-size: 0; height: 0; visibility: hidden; }
+.clearfix       { display: block; }
+
+.loader
+{
+  background-image: url( ../../img/loader.gif ) !important;
+}
+
+.loader-light
+{
+  background-image: url( ../../img/loader-light.gif ) !important;
+}
+
+#wrapper
+{
+  position: relative;
+  margin: 0 auto;
+  margin-bottom: 30px;
+  text-align: left;
+}
+
+#header
+{
+  padding-bottom: 10px;
+  position: fixed;
+  z-index: 42;
+}
+
+.scroll #header
+{
+  position: absolute;
+}
+
+#header #solr
+{
+  background-image: url( ../../img/solr.svg );
+  background-size: 128px;
+  display: block;
+  height: 78px;
+  width: 150px;
+}
+
+#header #solr span
+{
+  display: none;
+}
+
+#main
+{
+  min-width: 750px;
+  position: relative;
+}
+
+#main.error
+{
+  border: 0;
+  min-height: 0;
+  padding-top: 20px;
+}
+
+#main.error .message
+{
+  background-color: #f00;
+  background-image: url( ../../img/ico/construction.png );
+  background-position: 10px 50%;
+  color: #fff;
+  font-weight: bold;
+  margin-left: 150px;
+  margin-bottom: 20px;
+  padding: 10px;
+  padding-left: 35px;
+}
+
+#main.error .code
+{
+  border: 1px solid #c0c0c0;
+  padding: 5px;
+}
+
+#meta
+{
+  position: absolute;
+  bottom: -26px;
+  right: 0;
+}
+
+#meta li
+{
+  float: left;
+}
+
+#meta li a
+{
+  background-position: 10px 50%;
+  display: block;
+  height: 25px;
+  line-height: 25px;
+  padding-left: 31px;
+  padding-right: 10px;
+}
+
+#meta li a:hover
+{
+  background-color: #f0f0f0;
+}
+
+#meta .documentation a { background-image: url( ../../img/ico/document-text.png ); }
+#meta .issues a { background-image: url( ../../img/ico/bug.png ); }
+#meta .irc a { background-image: url( ../../img/ico/users.png ); }
+#meta .mailinglist a { background-image: url( ../../img/ico/mail.png ); }
+#meta .wiki-query-syntax a { background-image: url( ../../img/ico/script-code.png ); }
+
+#environment
+{
+  background-image: url( ../../img/ico/box.png );
+  background-position: 5px 50%;
+  display: none;
+  font-weight: bold;
+  margin-top: 10px;
+  padding: 5px 10px;
+  padding-left: 26px;
+}
+
+.has-environment #environment
+{
+  display: block;
+}
+
+#environment.prod
+{
+  background-color: #c37f7f;
+  color: #fff;
+}
+
+#environment.test
+{
+  background-color: #f5f5b2;
+}
+
+#environment.dev
+{
+  background-color: #cce7cc;
+}
+
+.header-message
+{
+  border: 1px solid #f00;
+  margin-left: 150px;
+  margin-bottom: 20px;
+}
+
+.header-message h2,
+.header-message ul,
+.header-message p
+{
+  padding: 10px;
+}
+
+.header-message h2
+{
+  background-color: #f00;
+  color: #fff;
+  font-weight: bold;
+}
+
+.header-message p
+{
+  color: #c0c0c0;
+  padding-top: 0;
+}
+
+#loading
+#http-exception
+{
+  display: none;
+}
+
+#content-wrapper
+{
+  margin-left: 150px;
+  border: 1px solid #c0c0c0;
+  min-height: 500px;
+}
+
+#content
+{
+  padding: 10px;
+}
+
+#content > .loader
+{
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content iframe
+{
+  border: 0;
+  display: block;
+  min-height: 400px;
+  width: 100%;
+}
+
+#content .block
+{
+  margin-bottom: 10px;
+}
+
+#content .block h2
+{
+  background-color: #fafafa;
+  background-position: 5px 50%;
+  border-bottom: 1px solid #f0f0f0;
+  font-weight: bold;
+  padding: 5px;
+  padding-left: 26px;
+}
+
+#content .block.disabled,
+#content .block.disabled h2
+{
+  color: #c0c0c0;
+}
+
+#content .block .message,
+#content .block .content
+{
+  padding: 5px;
+}
+
+/* syntax */
+
+pre.syntax
+{
+  overflow: auto;
+}
+
+pre.syntax code
+{
+  display: block;
+  color: #000;
+}
+
+pre.syntax .comment,
+pre.syntax .template_comment,
+pre.syntax .diff .header,
+pre.syntax .javadoc
+{
+  color: #998;
+  font-style: italic;
+}
+
+pre.syntax .keyword,
+pre.syntax .css .rule .keyword,
+pre.syntax .winutils,
+pre.syntax .javascript .title,
+pre.syntax .lisp .title,
+pre.syntax .subst
+{
+  color: #000;
+  font-weight: bold;
+}
+
+pre.syntax .number,
+pre.syntax .hexcolor
+{
+  color: #40a070;
+}
+
+pre.syntax.language-json .number
+{
+  color: blue;
+}
+
+pre.syntax.language-json .literal
+{
+  color: firebrick;
+}
+
+pre.syntax .string,
+pre.syntax .tag .value,
+pre.syntax .phpdoc,
+pre.syntax .tex .formula
+{
+  color: #d14;
+}
+
+pre.syntax.language-json .string
+{
+  color: green;
+}
+
+pre.syntax .title,
+pre.syntax .id
+{
+  color: #900;
+  font-weight: bold;
+}
+
+pre.syntax .javascript .title,
+pre.syntax .lisp .title,
+pre.syntax .subst
+{
+  font-weight: normal;
+}
+
+pre.syntax .class .title,
+pre.syntax .tex .command
+{
+  color: #458;
+  font-weight: bold;
+}
+
+pre.syntax .tag,
+pre.syntax .css .keyword,
+pre.syntax .html .keyword,
+pre.syntax .tag .title,
+pre.syntax .django .tag .keyword
+{
+  color: #000080;
+  font-weight: normal;
+}
+
+pre.syntax .attribute,
+pre.syntax .variable,
+pre.syntax .instancevar,
+pre.syntax .lisp .body
+{
+  color: #008080;
+}
+
+pre.syntax.language-json .attribute
+{
+  color: black;
+  font-weight: bold;
+}
+
+pre.syntax .regexp
+{
+  color: #009926;
+}
+
+pre.syntax .class
+{
+  color: #458;
+  font-weight: bold;
+}
+
+pre.syntax .symbol,
+pre.syntax .ruby .symbol .string,
+pre.syntax .ruby .symbol .keyword,
+pre.syntax .ruby .symbol .keymethods,
+pre.syntax .lisp .keyword,
+pre.syntax .tex .special
+{
+  color: #990073;
+}
+
+pre.syntax .builtin,
+pre.syntax .built_in,
+pre.syntax .lisp .title
+{
+  color: #0086b3;
+}
+
+pre.syntax .preprocessor,
+pre.syntax .pi,
+pre.syntax .doctype,
+pre.syntax .shebang,
+pre.syntax .cdata
+{
+  color: #999;
+  font-weight: bold;
+}
+
+pre.syntax .deletion
+{
+  background: #fdd;
+}
+
+pre.syntax .addition
+{
+  background: #dfd;
+}
+
+pre.syntax .diff .change
+{
+  background: #0086b3;
+}
+
+pre.syntax .chunk
+{
+  color: #aaa;
+}
+
+pre.syntax .tex .formula
+{
+  opacity: 0.5;
+}
+
+#content .tree li, 
+#content .tree ins
+{
+  background-color: transparent;
+  background-image: url( ../../img/tree.png );
+  background-repeat: no-repeat; 
+}
+
+#content .tree li
+{
+  background-position: -54px 0;
+  background-repeat: repeat-y;
+  line-height: 22px;
+}
+
+#content .tree li.jstree-last
+{
+  background:transparent;
+}
+
+#content .tree .jstree-open > ins
+{
+  background-position: -36px 0;
+}
+
+#content .tree .jstree-closed > ins
+{
+  background-position: -18px 0;
+}
+
+#content .tree .jstree-leaf > ins
+{
+  background-position: 0 0;
+}
+
+#content .tree .jstree-hovered
+{
+  background:#e7f4f9; border:1px solid #d8f0fa; padding:0 2px 0 1px;
+}
+
+#content .tree .jstree-clicked
+{
+  background:#beebff; border:1px solid #99defd; padding:0 2px 0 1px;
+}
+
+#content .tree a.active
+{
+  background-color: #f0f0f0;
+  color: #00f;
+}
+
+#content .tree a .jstree-icon
+{
+  background-image: url( ../../img/ico/folder.png );
+}
+
+#content .tree .jstree-leaf a .jstree-icon
+{
+  background-image: url( ../../img/ico/document-text.png );
+}
+
+#content .tree .jstree-search
+{
+  font-style:italic;
+}
+
+#content .tree a.jstree-search
+{
+  color:aqua;
+}
+
+#connection-box
+{
+  display: none;
+}
+
+#connection-status-modal
+{
+  position: absolute;
+  top: 0px;
+  left: 0px;
+  width: 100%;
+  height: 100%;
+  background-color: #e6e6e6;
+  opacity: 0.5;
+  z-index: 100;
+}
+
+#connection-status-recovered:
+{
+  z-index:102;
+}
+
+.connection-status
+{
+  position: absolute;
+  left: 200px;
+  right: 200px;
+  top: 40%;
+  height: 75px;
+  border: 1px solid #f00;
+  padding: 30px;
+  background-color: #fff;
+  opacity: 1;
+  z-index: 101;
+}
+
+.connection-status p
+{
+  background-image: url( ../../img/ico/network-status-busy.png );
+  background-position: 0 50%;
+  color: #800;
+  padding-left: 26px;
+}
+
+#connection-status-recovered p
+{
+  color: #080;
+  background-image: url( ../../img/ico/network-status.png );
+}
+
+#content .address-bar
+{
+  margin-bottom: 10px;
+  background-image: url( ../../img/ico/ui-address-bar.png );
+  background-position: 5px 50%;
+  border: 1px solid #f0f0f0;
+  box-shadow: 1px 1px 0 #f0f0f0;
+  -moz-box-shadow: 1px 1px 0 #f0f0f0;
+  -webkit-box-shadow: 1px 1px 0 #f0f0f0;
+  color: #c0c0c0;
+  display: block;
+  overflow: hidden;
+  padding: 5px;
+  padding-left: 26px;
+  white-space: nowrap;
+}
+
+#content .address-bar:focus,
+#content .address-bar:hover
+{
+  border-color: #c0c0c0;
+  box-shadow: 1px 1px 0 #d8d8d8;
+  -moz-box-shadow: 1px 1px 0 #d8d8d8;
+  -webkit-box-shadow: 1px 1px 0 #d8d8d8;
+  color: #333;
+}

Added: lucene/dev/trunk/solr/webapp/web/css/angular/cores.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/cores.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/cores.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/cores.css Mon Feb 23 05:42:36 2015
@@ -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 #cores
+{
+  position: relative;
+}
+
+#content #cores #ui-block
+{
+  background-color: #fff;
+  height: 200px;
+  position: absolute;
+  left: -5px;
+  top: 35px;
+  width: 500px;
+}
+
+#content #cores #frame
+{
+  float: right;
+  width: 86%;
+}
+
+#content #cores #navigation
+{
+  padding-top: 50px;
+  width: 12%;
+}
+
+#content #cores #navigation a
+{
+  padding-left: 5px;
+}
+
+#content #cores #frame .actions
+{
+  margin-bottom: 20px;
+  min-height: 30px;
+}
+
+#content #cores .actions div.action
+{
+  width: 320px;
+}
+
+#content #cores .actions div.action .cloud
+{
+}
+
+#content #cores .actions form .directory-note
+{
+  background-image: url( ../../img/ico/information-white.png );
+  background-position: 22% 1px;
+  color: #c0c0c0;
+}
+
+#content #cores .actions form .error
+{
+  background-image: url( ../../img/ico/cross-button.png );
+  background-position: 22% 1px;
+  color: #c00;
+  font-weight: bold;
+}
+
+#content #cores .actions form p
+{
+  padding-bottom: 8px;
+}
+
+#content #cores .actions form label
+{
+  float: left;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  text-align: right;
+  width: 25%;
+}
+
+#content #cores .actions form input,
+#content #cores .actions form select,
+#content #cores .actions form .buttons,
+#content #cores .actions form .note span
+{
+  float: right;
+  width: 71%;
+}
+
+#content #cores .actions form .note span
+{
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+#content #cores .actions form .buttons
+{
+  padding-top: 10px;
+}
+
+#content #cores .actions form button.submit
+{
+  margin-right: 20px;
+}
+
+#content #cores .actions form button.submit span
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #cores .actions form button.reset span
+{
+  background-image: url( ../../img/ico/cross.png );
+}
+
+#content #cores .actions #add
+{
+  left: 0;
+  position: absolute;
+}
+
+#content #cores .actions #add span
+{
+  background-image: url( ../../img/ico/plus-button.png );
+}
+
+#content #cores .actions #unload
+{
+  margin-right: 20px;
+}
+
+#content #cores .actions #unload span
+{
+  background-image: url( ../../img/ico/cross.png );
+}
+
+#content #cores .actions #reload span
+{
+  background-image: url( ../../img/ico/arrow-circle.png );
+}
+
+#content #cores .actions #rename span
+{
+  background-image: url( ../../img/ico/ui-text-field-select.png );
+}
+
+#content #cores .actions #swap span
+{
+  background-image: url( ../../img/ico/arrow-switch.png );
+}
+
+#content #cores .actions #optimize
+{
+}
+
+#content #cores .actions #optimize span
+{
+  background-image: url( ../../img/ico/hammer-screwdriver.png );
+}
+
+#content #cores .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 #cores #data #core-data h2 { background-image: url( ../../img/ico/box.png ); }
+#content #cores #data #index-data h2 { background-image: url( ../../img/ico/chart.png ); }
+
+#content #cores #data #index-data
+{
+  margin-top: 10px;
+}
+
+#content #cores #data li
+{
+  padding-bottom: 3px;
+  padding-top: 3px;
+}
+
+#content #cores #data li.odd
+{
+  background-color: #f8f8f8;
+}
+
+#content #cores #data li dt
+{
+  float: left;
+  width: 17%;
+}
+
+#content #cores #data li dd
+{
+  float: right;
+  width: 82%;
+}
+
+#content #cores #data li dd.ico
+{
+  background-image: url( ../../img/ico/slash.png );
+  height: 20px;
+}
+
+#content #cores #data li dd.ico.ico-1
+{
+  background-image: url( ../../img/ico/tick.png );
+}
+
+#content #cores #data li dd.ico span
+{
+}

Added: lucene/dev/trunk/solr/webapp/web/css/angular/index.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/index.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/index.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/index.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,206 @@
+/*
+
+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 #index .bar-desc
+{
+  color: #c0c0c0;
+  font-weight: normal;
+  margin-left: 10px;
+  white-space: pre;
+}
+
+#content #index .bar-holder
+{
+  box-shadow: 5px 5px 10px #c0c0c0;
+  -moz-box-shadow: 5px 5px 10px #c0c0c0;
+  -webkit-box-shadow: 5px 5px 10px #c0c0c0;
+  height: 35px;
+}
+
+#content #index .bar-holder .bar
+{
+  height: 100%;
+  position: relative;
+}
+
+#content #index .bar-holder div .val
+{
+  border-right: 1px solid #f00;
+  display: block;
+  padding-right: 5px;
+  position: absolute;
+  right: 0;
+  top: 35px;
+  white-space: nowrap;
+}
+
+#content #index .bar-holder .bar-max.bar
+{
+  background-color: #f0f0f0;
+}
+
+#content #index .bar-holder .bar-max.val
+{
+  border-color: #f0f0f0;
+  color: #d6d6d6;
+}
+
+#content #index .bar-holder .bar-total.bar
+{
+  background-color: #c0c0c0;
+}
+
+#content #index .bar-holder .bar-total.val
+{
+  border-color: #c0c0c0;
+  color: #c0c0c0;
+}
+
+#content #index .bar-holder .bar-used.bar
+{
+  background-color: #969696;
+}
+
+#content #index .bar-holder .bar-used.val
+{
+  border-color: #969696;
+  color: #969696;
+}
+
+#content #index .bar-holder.bar-lvl-2 .bar-max.val { padding-top: 25px; }
+#content #index .bar-holder.bar-lvl-2 .bar-total.val { padding-top: 5px; }
+#content #index .bar-holder.bar-lvl-2 { margin-bottom: 45px; }
+
+#content #index .bar-holder.bar-lvl-3 .bar-max.val { padding-top: 45px; }
+#content #index .bar-holder.bar-lvl-3 .bar-total.val { padding-top: 25px; }
+#content #index .bar-holder.bar-lvl-3 .bar-used.val { padding-top: 5px; }
+#content #index .bar-holder.bar-lvl-3 { margin-bottom: 65px; }
+
+#content #index .loader
+{
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content #index .index-left
+{
+  float: left;
+  width: 55%;
+}
+
+#content #index .index-right
+{
+  float: right;
+  width: 40%;
+}
+
+#content #index .data li
+{
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
+
+#content #index .data li dt
+{
+  float: left;
+  white-space: nowrap;
+  width: 20%;
+}
+
+#content #index .data li dd
+{
+  float: right;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  white-space: nowrap;
+  width: 80%
+}
+
+#content #index .data li dd.odd
+{
+  color: #999;
+}
+
+#content #index .data dt span
+{
+  background-position: 1px 50%;
+  display: block;
+  padding-left: 22px;
+}
+
+#content #index #instance h2 { background-image: url( ../../img/ico/server.png ); }
+#content #index #instance .start_time dt span { background-image: url( ../../img/ico/clock-select.png ); }
+
+#content #index #versions h2 { background-image: url( ../../img/ico/property.png ); }
+#content #index #versions .solr span { background-image: url( ../../img/solr-ico.png ); }
+#content #index #versions .lucene span { background-image: url( ../../img/lucene-ico.png ); }
+
+#content #index #jvm h2 { background-image: url( ../../img/ico/jar.png ); }
+#content #index #jvm .jvm_version dt span { background-image: url( ../../img/ico/jar.png ); }
+#content #index #jvm .processors dt span { background-image: url( ../../img/ico/processor.png ); }
+#content #index #jvm .command_line_args dt span { background-image: url( ../../img/ico/terminal.png ); }
+
+#content #index #system h2 { background-image: url( ../../img/ico/system-monitor.png ); }
+
+#content #index #system
+{
+  position: relative;
+}
+
+#content #index #system .reload
+{
+  background-image: url( ../../img/ico/arrow-circle.png );
+  background-position: 50% 50%;
+  display: block;
+  height: 30px;
+  position: absolute;
+  right: 0;
+  top: 0;
+  width: 30px;
+}
+
+#content #index #system .reload.loader
+{
+  padding-left: 0;
+}
+
+#content #index #system .reload span
+{
+  display: none;
+}
+
+#content #index #system .content p
+{
+  margin-top: 10px;
+  margin-bottom: 5px;
+}
+
+#content #index #system .content .no-info
+{
+  color: #c0c0c0;
+  display: none;
+  font-style: italic;
+}
+
+#content #index #jvm-memory h2 { background-image: url( ../../img/ico/memory.png ); }
+
+#content #index #jvm-memory-bar
+{
+  margin-top: 20px;
+}

Added: lucene/dev/trunk/solr/webapp/web/css/angular/logging.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/logging.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/logging.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/logging.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,376 @@
+/*
+
+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 #logging .loader
+{
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content #logging .block h2
+{
+  background-image: url( ../../img/ico/document-text.png );
+  margin-bottom: 10px;
+}
+
+#content #logging .block h2 span span
+{
+  color: #c0c0c0;
+  font-weight: normal;
+  margin-left: 10px;
+}
+
+#content #logging #viewer
+{
+  position: relative;
+}
+
+#content #logging #viewer time
+{
+  white-space: pre;
+}
+
+#content #logging #viewer #footer
+{
+  margin-top: 20px;
+}
+
+#content #logging #viewer #state
+{
+  background-position: 0 50%;
+  float: left;
+  color: #c0c0c0;
+  padding-left: 21px;
+  width: 45%;
+}
+
+#content #logging #viewer #date-format
+{
+  float: right;
+}
+
+#content #logging #viewer #date-format a
+{
+  background-image: url( ../../img/ico/ui-check-box-uncheck.png );
+  background-position: 0 50%;
+  color: #c0c0c0;
+  display: block;
+  padding-left: 21px;
+}
+
+#content #logging #viewer #date-format a:hover
+{
+  color: #008;
+}
+
+#content #logging #viewer #date-format a.on
+{
+  background-image: url( ../../img/ico/ui-check-box.png );
+  color: #333;
+}
+
+#content #logging #viewer table
+{
+  border-collapse: collapse;
+  width: 100%;
+}
+
+#content #logging #viewer th,
+#content #logging #viewer td a,
+#content #logging #viewer tbody .trace td
+{
+  padding: 3px 10px;
+}
+
+#content #logging #viewer td
+{
+  vertical-align: top;
+}
+
+#content #logging #viewer td a
+{
+  display: block;
+}
+
+#content #logging #viewer thead th
+{
+  font-weight: bold;
+  text-align: left;
+}
+
+#content #logging #viewer tbody td,
+#content #logging #viewer tfoot td
+{
+  border-top: 1px solid #f0f0f0;
+}
+
+#content #logging #viewer thead th.message
+{
+  width:100%;
+}
+
+#content #logging #viewer tbody td.span a
+{
+  padding-left: 0;
+  padding-right: 0;
+}
+
+#content #logging #viewer tbody span
+{
+  display: block;
+  padding-left: 10px;
+  padding-right: 10px;
+}
+
+#content #logging #viewer tbody .level-info .level span { background-color: #ebf5eb; }
+#content #logging #viewer tbody .level-warning     span { background-color: #FFD930; }
+#content #logging #viewer tbody .level-severe     span  { background-color: #c43c35; color: #fff; }
+
+#content #logging #viewer tbody .level-debug  span  { background-color: #ebf5eb; }
+#content #logging #viewer tbody .level-warn   span  { background-color: #FFD930; }
+#content #logging #viewer tbody .level-error  span  { background-color: #FF6130; }
+#content #logging #viewer tbody .level-fatal  span  { background-color: #c43c35; }
+
+#content #logging #viewer tbody .has-trace a
+{
+  cursor: pointer;
+}
+
+#content #logging #viewer tbody .has-trace a:hover
+{
+  color: #008;
+}
+
+#content #logging #viewer tbody .has-trace .message a
+{
+  background-image: url( ../../img/ico/information.png );
+  background-position: 100% 50%;
+  display: block;
+  padding-right: 21px;
+}
+
+#content #logging #viewer tbody .has-trace.open .message a
+{
+  background-image: url( ../../img/ico/information-white.png );
+}
+
+#content #logging #viewer tbody .trace td
+{
+  border-top: 0;
+  color: #c0c0c0;
+}
+
+#content #logging #viewer .has-data tfoot
+{
+  display: none;
+}
+
+#content #logging #viewer tfoot td
+{
+  color: #c0c0c0;
+}
+
+#content #logging .jstree > li
+{
+  margin-left: 0;
+}
+
+#content #logging .jstree li
+{
+  position: relative;
+}
+
+#content #logging .jstree .level-finest  { background-color: #d5e5fc; }
+#content #logging .jstree .level-fine    { background-color: #d5fafc; }
+#content #logging .jstree .level-config  { background-color: #e6fded; }
+#content #logging .jstree .level-info    { background-color: #fafcd7; }
+#content #logging .jstree .level-warning { background-color: #fcecd5; }
+#content #logging .jstree .level-severe  { background-color: #fcdcda; }
+#content #logging .jstree .level-off     { background-color: #ffffff; }
+
+/* Log4j */
+#content #logging .jstree .level-all     { background-color: #9EDAFF; }
+#content #logging .jstree .level-trace   { background-color: #d5e5fc; }
+#content #logging .jstree .level-debug   { background-color: #d5fafc; }
+#content #logging .jstree .level-warn    { background-color: #e6fded; }
+#content #logging .jstree .level-error   { background-color: #fcecd5; }
+#content #logging .jstree .level-fatal   { background-color: #fcdcda; }
+
+
+#content #logging .jstree a
+{
+  height: 17px;
+  line-height: 17px;
+  padding: 0;
+  width: 90%;
+}
+
+#content #logging .jstree a:hover
+{
+  color: #008;
+}
+
+#content #logging .jstree a span.ns
+{
+  display: none;
+}
+
+#content #logging.ns .jstree a span.ns
+{
+  display: inline;
+}
+
+#content #logging .jstree a span.name
+{
+  background-position: 100% 50%;
+  cursor: pointer;
+  padding-right: 21px;
+}
+
+#content #logging .jstree a span.name em
+{
+  color: #f00;
+  font-style: normal;
+  text-transform: uppercase;
+}
+
+#content #logging .jstree a.trigger.set
+{
+  font-weight: bold;
+}
+
+#content #logging .jstree a:hover span.name
+{
+  background-image: url( ../../img/ico/pencil-small.png );
+}
+
+#content #logging .jstree .selector-holder
+{
+  position: absolute;
+  top: -2px;
+  z-index: 700;
+}
+
+#content #logging .jstree .selector-holder.open
+{
+  background-color: #fff;
+  margin-left: -19px;
+  z-index: 800;
+}
+
+#content #logging .jstree li .selector-holder { left: 440px; }
+#content #logging .jstree li li .selector-holder { left: 422px; }
+#content #logging .jstree li li li .selector-holder { left: 404px; }
+#content #logging .jstree li li li li .selector-holder { left: 386px; }
+#content #logging .jstree li li li li li .selector-holder { left: 368px; }
+#content #logging .jstree li li li li li li .selector-holder { left: 350px; }
+#content #logging .jstree li li li li li li li .selector-holder { left: 332px; }
+#content #logging .jstree li li li li li li li li .selector-holder { left: 314px; }
+
+#content #logging .jstree .selector
+{
+  border: 1px solid transparent;
+  position: relative;
+}
+
+#content #logging .jstree .open .selector
+{
+  border-color: #f0f0f0;
+  box-shadow: 5px 5px 10px #c0c0c0;
+  -moz-box-shadow: 5px 5px 10px #c0c0c0;
+  -webkit-box-shadow: 5px 5px 10px #c0c0c0;
+}
+
+#content #logging .jstree .selector a
+{
+  display: block;
+  padding: 2px;
+  width: auto;
+}
+
+#content #logging .jstree .open .selector .close
+{
+  background-image: url( ../../img/ico/cross-0.png );
+  background-position: 50% 50%;
+  display: block;
+  position: absolute;
+  right: -25px;
+  top: 0;
+  width: 20px;
+}
+
+#content #logging .jstree .open .selector .close:hover
+{
+  background-image: url( ../../img/ico/cross-1.png );
+}
+
+#content #logging .jstree .open .selector .close span
+{
+  display: none;
+}
+
+#content #logging .jstree .open .selector a.trigger
+{
+  display: none;
+}
+
+#content #logging .jstree .open .selector ul
+{
+  display: block;
+}
+
+#content #logging .jstree .selector ul li
+{
+  background: none;
+  margin-left: 0;
+}
+
+#content #logging .jstree .selector ul li a
+{
+  background-image: url( ../../img/ico/ui-radio-button-uncheck.png );
+  background-position: 2px 50%;
+  padding-left: 21px;
+}
+
+#content #logging .jstree .selector ul li a.level
+{
+  background-color: #f0f0f0;
+}
+
+#content #logging .jstree .selector ul li a:hover
+{
+  background-image: url( ../../img/ico/ui-radio-button.png );
+}
+
+#content #logging .jstree .selector li.unset
+{
+  border-top: 1px solid #f0f0f0;
+}
+
+#content #logging .jstree .selector li.unset a
+{
+  background-image: url( ../../img/ico/cross-0.png );
+  background-position: 4px 50%;
+}
+
+#content #logging .jstree .selector li.unset a:hover
+{
+  background-image: url( ../../img/ico/cross-1.png );
+  color: #800;
+}

Added: lucene/dev/trunk/solr/webapp/web/css/angular/menu.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/menu.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/menu.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/menu.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,320 @@
+/*
+
+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.
+
+*/
+
+#menu-wrapper
+{
+  position: fixed;
+  top: 120px;
+  width: 150px;
+}
+
+.scroll #menu-wrapper
+{
+  position: absolute;
+  top: 90px;
+}
+
+.has-environment #menu-wrapper
+{
+  top: 160px;
+}
+
+#menu-wrapper a
+{
+  display: block;
+  padding: 4px 2px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+#core-selector
+{
+  margin-top: 20px;
+  padding-right: 10px;
+}
+
+#core-selector a
+{
+  padding: 0;
+  padding-left: 8px;
+}
+
+#core-selector select
+{
+  width: 100%;
+}
+
+#core-selector #has-no-cores a
+{
+  background-image: url( ../../img/ico/database--plus.png );
+}
+
+#core-selector #has-no-cores span
+{
+  color: #c0c0c0;
+  display: block;
+}
+
+#menu-wrapper .active p
+{
+  background-color: #fafafa;
+  border-color: #c0c0c0;
+}
+
+#menu-wrapper p a,
+#menu a
+{
+  background-position: 5px 50%;
+  padding-left: 26px;
+  padding-top: 5px;
+  padding-bottom: 5px;
+}
+
+#menu-wrapper p a:hover
+{
+  background-color: #f0f0f0;
+}
+
+#menu-wrapper .active p a
+{
+  background-color: #c0c0c0;
+  font-weight: bold;
+}
+
+#menu p.loader
+{
+  background-position: 5px 50%;
+  color: #c0c0c0;
+  margin-top: 5px;
+  padding-left: 26px;
+}
+
+#menu p a small
+{
+  color: #b5b5b5;
+  font-weight: normal;
+}
+
+#menu p a small span.txt
+{
+}
+
+#menu p a small:hover span.txt
+{
+  display: inline;
+}
+
+#menu .busy
+{
+  border-right-color: #f6f5d9;
+}
+
+#menu .busy p a
+{
+  background-color: #f6f5d9;
+  background-image: url( ../../img/ico/status-away.png );
+}
+
+#menu .offline
+{
+  border-right-color: #eccfcf;
+}
+
+#menu .offline p a
+{
+  background-color: #eccfcf;
+  background-image: url( ../../img/ico/status-busy.png );
+}
+
+#menu .online
+{
+  border-right-color: #cfecd3;
+}
+
+#menu .online p a
+{
+  background-color: #cfecd3;
+  background-image: url( ../../img/ico/status.png );
+}
+
+#menu .ping small
+{
+  color: #000
+}
+
+#menu li
+{
+  border-bottom: 1px solid #f0f0f0;
+}
+
+#menu li:last-child
+{
+  border-bottom: 0;
+}
+
+#menu li.optional
+{
+}
+
+#core-menu p
+{
+  border-top: 1px solid #f0f0f0;
+}
+
+#core-menu li:first-child p
+{
+  border-top: 0;
+}
+
+#core-menu p a
+{
+  background-image: url( ../../img/ico/status-offline.png );
+}
+
+#core-menu .active p a
+{
+  background-image: url( ../../img/ico/box.png );
+}
+
+#core-menu ul,
+#menu ul
+{
+  padding-top: 5px;
+  padding-bottom: 10px;
+}
+
+#core-menu .active ul,
+#menu .active ul
+{
+  display: block;
+}
+
+#menu ul li
+{
+  border-bottom: 0;
+}
+
+#core-menu ul li a,
+#menu ul li a
+{
+  background-position: 7px 50%;
+  border-bottom: 1px solid #f0f0f0;
+  color: #bbb;
+  margin-left: 15px;
+  padding-left: 26px;
+}
+
+#core-menu ul li:last-child a,
+#menu ul li:last-child a
+{
+  border-bottom: 0;
+}
+
+#core-menu ul li a:hover,
+#menu ul li a:hover
+{
+  background-color: #f0f0f0;
+  color: #333;
+}
+
+#core-menu ul li.active a,
+#menu ul li.active a
+{
+  background-color: #d0d0d0;
+  border-color: #d0d0d0;
+  color: #333;
+}
+
+#menu #index.global p a { background-image: url( ../../img/ico/dashboard.png ); }
+
+#menu #logging.global p a { background-image: url( ../../img/ico/inbox-document-text.png ); }
+#menu #logging.global .level a { background-image: url( ../../img/ico/gear.png ); }
+
+#menu #java-properties.global p a { background-image: url( ../../img/ico/jar.png ); }
+
+#menu #threads.global p a { background-image: url( ../../img/ico/ui-accordion.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 ); }
+#menu #cloud.global .tree a { background-image: url( ../../img/ico/folder-tree.png ); }
+#menu #cloud.global .graph a { background-image: url( ../../img/ico/molecule.png ); }
+#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
+{
+  
+  background-color: #ffcccc;
+  background-image: url( ../../img/ico/system-monitor--exclamation.png );
+  border-color: #ffcccc;
+  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 ); }
+
+
+#content #navigation
+{
+  border-right: 1px solid #e0e0e0;
+}
+
+#content #navigation a
+{
+  display: block;
+  padding: 4px 2px;
+}
+
+#content #navigation .current
+{
+  border-color: #e0e0e0;
+}
+
+#content #navigation a
+{
+  background-position: 5px 50%;
+  padding-left: 26px;
+  padding-top: 5px;
+  padding-bottom: 5px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+#content #navigation a:hover
+{
+  background-color: #f0f0f0;
+}
+
+#content #navigation .current a
+{
+  background-color: #e0e0e0;
+  font-weight: bold;
+}

Added: lucene/dev/trunk/solr/webapp/web/css/angular/query.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/query.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/query.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/query.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,162 @@
+/*
+
+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 #query
+{
+  background-image: url( ../../img/div.gif );
+  background-position: 22% 0;
+  background-repeat: repeat-y;
+}
+
+#content #query #form
+{
+  float: left;
+  width: 21%;
+}
+
+#content #query #form label
+{
+  cursor: pointer;
+  display: block;
+  margin-top: 5px;
+}
+
+#content #query #form input,
+#content #query #form select,
+#content #query #form textarea
+{
+  margin-bottom: 2px;
+  width: 100%;
+}
+
+#content #query #form input,
+#content #query #form textarea
+{
+  width: 98%;
+}
+
+#content #query #form .multiple input
+{
+  float: left;
+  width: 80%
+}
+
+#content #query #form .multiple .buttons
+{
+  float: right;
+  width: 16%;
+}
+
+
+#content #query #form .multiple a
+{
+  background-position: 50% 50%;
+  display: block;
+  height: 25px;
+  width: 49%;
+}
+
+#content #query #form .multiple a.add
+{
+  background-image: url( ../../img/ico/plus-button.png );
+  float: right;
+}
+
+#content #query #form .multiple a.rem
+{
+  background-image: url( ../../img/ico/minus-button.png );
+  float: left;
+}
+
+#content #query #form #start
+{
+  float: left;
+  width: 45%;
+}
+
+#content #query #form #rows
+{
+  float: right;
+  width: 45%;
+}
+
+#content #query #form .checkbox input
+{
+  margin-bottom: 0;
+  width: auto;
+}
+
+#content #query #form fieldset,
+#content #query #form .optional.expanded
+{
+  border: 1px solid #fff;
+  border-top: 1px solid #c0c0c0;
+  margin-bottom: 5px;
+}
+
+#content #query #form fieldset.common
+{
+  margin-top: 10px;
+}
+
+#content #query #form fieldset legend,
+#content #query #form .optional.expanded legend
+{
+  display: block;
+  margin-left: 10px;
+  padding: 0px 5px;
+}
+
+#content #query #form fieldset legend label
+{
+  margin-top: 0;
+}
+
+#content #query #form fieldset .fieldset
+{
+  border-bottom: 1px solid #f0f0f0;
+  margin-bottom: 5px;
+  padding-bottom: 10px;
+}
+
+#content #query #form .optional
+{
+  border: 0;
+}
+
+#content #query #form .optional legend
+{
+  margin-left: 0;
+  padding-left: 0;
+}
+
+#content #query #form .optional.expanded .fieldset
+{
+  display: block;
+}
+
+#content #query #result
+{
+  float: right;
+  width: 77%;
+}
+
+#content #query #result #response
+{
+}

Added: lucene/dev/trunk/solr/webapp/web/css/angular/threads.css
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/webapp/web/css/angular/threads.css?rev=1661606&view=auto
==============================================================================
--- lucene/dev/trunk/solr/webapp/web/css/angular/threads.css (added)
+++ lucene/dev/trunk/solr/webapp/web/css/angular/threads.css Mon Feb 23 05:42:36 2015
@@ -0,0 +1,161 @@
+/*
+
+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 #threads .loader
+{
+  background-position: 0 50%;
+  padding-left: 21px;
+}
+
+#content #threads #thread-dump table
+{
+  border-collapse: collapse;
+  width: 100%;
+}
+
+#content #threads #thread-dump table .spacer,
+#content #threads #thread-dump tbody .state
+{
+  background-color: #fff;
+}
+
+#content #threads #thread-dump table th,
+#content #threads #thread-dump table td
+{
+  padding: 5px 3px;
+  vertical-align: top;
+}
+
+#content #threads #thread-dump thead th
+{
+  background-color: #c8c8c8;
+  font-weight: bold;
+  text-align: left;
+}
+
+#content #threads #thread-dump thead th.name
+{
+  width: 85%;
+}
+
+#content #threads #thread-dump thead th.time
+{
+  text-align: right;
+  width: 15%;
+}
+
+#content #threads #thread-dump tbody .odd
+{
+  background-color: #f0f0f0;
+}
+
+#content #threads #thread-dump tbody .RUNNABLE a
+{
+  background-image: url( ../../img/ico/tick-circle.png );
+}
+
+#content #threads #thread-dump tbody .WAITING a,
+#content #threads #thread-dump tbody .TIMED_WAITING a
+{
+  background-image: url( ../../img/ico/hourglass.png );
+}
+
+#content #threads #thread-dump tbody .WAITING.lock a,
+#content #threads #thread-dump tbody .TIMED_WAITING.lock a
+{
+  background-image: url( ../../img/ico/hourglass--exclamation.png );
+}
+
+#content #threads #thread-dump tbody .name a
+{
+  background-position: 0 50%;
+  cursor: auto;
+  display: block;
+  padding-left: 21px;
+}
+
+#content #threads #thread-dump tbody .stacktrace .name a
+{
+  cursor: pointer;
+}
+
+#content #threads #thread-dump tbody .stacktrace .name a span
+{    
+  background-image: url( ../../img/ico/chevron-small-expand.png );
+  background-position: 100% 50%;
+  padding-right: 21px;
+}
+
+#content #threads #thread-dump tbody .stacktrace.open .name a span
+{   
+  background-image: url( ../../img/ico/chevron-small.png );
+}
+
+#content #threads #thread-dump tbody .name p
+{
+  background-image: url( ../../img/ico/arrow-000-small.png );
+  background-position: 0 50%;
+  color: #c0c0c0;
+  font-size: 11px;
+  margin-left: 21px;
+  padding-left: 21px;
+}
+
+#content #threads #thread-dump tbody .name div
+{
+  border-top: 1px solid #c0c0c0;
+  margin-left: 21px;
+  margin-top: 5px;
+  padding-top: 5px;
+}
+
+#content #threads #thread-dump tbody .open .name div
+{
+  display: block;
+}
+
+#content #threads #thread-dump tbody .name ul
+{
+  list-style-type: disc;
+  margin-left: 0.7em;
+  padding-left: 0.7em;
+}
+
+#content #threads #thread-dump tbody .time
+{
+  text-align: right;
+}
+
+#content #threads .controls
+{
+  padding-top: 5px;
+  padding-bottom: 5px;
+}
+
+#content #threads .controls a
+{
+  background-image: url( ../../img/ico/chevron-small-expand.png );
+  padding-left: 21px;
+}
+
+#content #threads.expanded .controls a
+{
+  background-image: url( ../../img/ico/chevron-small.png );
+}
+