You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/10/16 14:16:04 UTC
[7/7] karaf-decanter git commit: [KARAF-3904] Add elasticsearch-head
feature
[KARAF-3904] Add elasticsearch-head feature
Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/c4719b9d
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/c4719b9d
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/c4719b9d
Branch: refs/heads/master
Commit: c4719b9d081d87ffdbdceb3aa8358e09bf962c17
Parents: ac12502
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Fri Oct 16 14:15:24 2015 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Fri Oct 16 14:15:24 2015 +0200
----------------------------------------------------------------------
assembly/src/main/feature/feature.xml | 5 +
elasticsearch-head/pom.xml | 57 +
elasticsearch-head/src/main/resources/app.css | 704 +
elasticsearch-head/src/main/resources/app.js | 4373 +++++
.../src/main/resources/base/favicon.png | Bin 0 -> 952 bytes
.../src/main/resources/base/loading.gif | Bin 0 -> 1849 bytes
.../src/main/resources/base/reset.css | 44 +
.../src/main/resources/fonts/FontAwesome.otf | Bin 0 -> 62856 bytes
.../resources/fonts/fontawesome-webfont.eot | Bin 0 -> 38205 bytes
.../resources/fonts/fontawesome-webfont.svg | 414 +
.../resources/fonts/fontawesome-webfont.ttf | Bin 0 -> 80652 bytes
.../resources/fonts/fontawesome-webfont.woff | Bin 0 -> 44432 bytes
elasticsearch-head/src/main/resources/i18n.js | 93 +
.../src/main/resources/index.html | 33 +
.../src/main/resources/lang/en_strings.js | 174 +
.../src/main/resources/lang/fr_strings.js | 164 +
.../src/main/resources/lang/pt_strings.js | 174 +
.../src/main/resources/lang/zh_strings.js | 172 +
.../src/main/resources/vendor.css | 1338 ++
elasticsearch-head/src/main/resources/vendor.js | 14500 +++++++++++++++++
.../src/main/asciidoc/user-guide/appenders.adoc | 13 +
pom.xml | 1 +
22 files changed, 22259 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/c4719b9d/assembly/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/assembly/src/main/feature/feature.xml b/assembly/src/main/feature/feature.xml
index d60ab00..77994df 100644
--- a/assembly/src/main/feature/feature.xml
+++ b/assembly/src/main/feature/feature.xml
@@ -132,6 +132,11 @@
<bundle>mvn:org.apache.karaf.decanter/org.apache.karaf.decanter.elasticsearch/${project.version}</bundle>
</feature>
+ <feature name="elasticsearch-head" version="${elasticsearch.version}" description="Elasticsearch Head web frontend">
+ <feature>war</feature>
+ <bundle>mvn:org.apache.karaf.decanter/org.apache.karaf.decanter.elasticsearch-head/${project.version}</bundle>
+ </feature>
+
<feature name="kibana" version="${kibana.version}" description="Embedded Kibana dashboard">
<feature>war</feature>
<feature>elasticsearch</feature>
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/c4719b9d/elasticsearch-head/pom.xml
----------------------------------------------------------------------
diff --git a/elasticsearch-head/pom.xml b/elasticsearch-head/pom.xml
new file mode 100644
index 0000000..3ff8bc5
--- /dev/null
+++ b/elasticsearch-head/pom.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <!--
+
+ 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.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.karaf</groupId>
+ <artifactId>decanter</artifactId>
+ <version>1.0.1-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.apache.karaf.decanter</groupId>
+ <artifactId>org.apache.karaf.decanter.elasticsearch-head</artifactId>
+ <packaging>bundle</packaging>
+ <name>Apache Karaf :: Decanter :: ElasticSearch Head</name>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <inherited>true</inherited>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>${project.version}</Bundle-Version>
+ <Web-ContextPath>/elasticsearch-head</Web-ContextPath>
+ <Import-Package>
+ *
+ </Import-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/c4719b9d/elasticsearch-head/src/main/resources/app.css
----------------------------------------------------------------------
diff --git a/elasticsearch-head/src/main/resources/app.css b/elasticsearch-head/src/main/resources/app.css
new file mode 100644
index 0000000..2fa2152
--- /dev/null
+++ b/elasticsearch-head/src/main/resources/app.css
@@ -0,0 +1,704 @@
+TABLE.table {
+ border-collapse: collapse;
+}
+
+
+TABLE.table TH {
+ font-weight: normal;
+ text-align: left;
+ vertical-align: middle;
+}
+
+TABLE.table TBODY.striped TR:nth-child(odd) {
+ background: #eee;
+}
+
+TABLE.table H3 {
+ margin: 0;
+ font-weight: bold;
+ font-size: 140%;
+}
+
+.require { color: #a00; }
+
+.uiButton {
+ padding: 0;
+ border: 0;
+ margin: 3px;
+ width: auto;
+ overflow: visible;
+ cursor: pointer;
+ background: transparent;
+}
+
+.uiButton-content {
+ height: 20px;
+ border: 1px solid #668dc6;
+ border-radius: 2px;
+ background: #96c6eb;
+ background: -moz-linear-gradient(top, #96c6eb, #5296c7);
+ background: -webkit-linear-gradient(top, #96c6eb, #5296c7);
+ color: white;
+ font-weight: bold;
+}
+
+.moz .uiButton-content { margin: 0 -2px; }
+
+.uiButton-label {
+ padding: 2px 6px;
+ white-space: nowrap;
+}
+.uiButton:hover .uiButton-content {
+ background: #2777ba;
+ background: -moz-linear-gradient(top, #6aaadf, #2777ba);
+ background: -webkit-linear-gradient(top, #6aaadf, #2777ba);
+}
+.uiButton.active .uiButton-content,
+.uiButton:active .uiButton-content {
+ background: #2575b7;
+ background: -moz-linear-gradient(top, #2576b8, #2575b7);
+ background: -webkit-linear-gradient(top, #2576b8, #2575b7);
+}
+.uiButton.disabled .uiButton-content,
+.uiButton.disabled:active .uiButton-content {
+ border-color: #c6c6c6;
+ color: #999999;
+ background: #ddd;
+ background: -moz-linear-gradient(top, #ddd, #ddd);
+ background: -webkit-linear-gradient(top, #ddd, #ddd);
+}
+
+.uiButton.disabled {
+ cursor: default;
+}
+
+.uiMenuButton {
+ display: inline-block;
+}
+
+.uiMenuButton .uiButton-label {
+ background-image: url('data:image/gif;base64,R0lGODlhDwAPAIABAP///////yH5BAEAAAEALAAAAAAPAA8AAAITjI+py+0P4wG0gmavq1HLD4ZiAQA7');
+ background-position: right 50%;
+ background-repeat: no-repeat;
+ padding-right: 17px;
+ text-align: left;
+}
+
+.uiSplitButton {
+ white-space: nowrap;
+}
+
+.uiSplitButton .uiButton:first-child {
+ margin-right: 0;
+ display: inline-block;
+}
+
+.uiSplitButton .uiButton:first-child .uiButton-content {
+ border-right-width: 1;
+ border-right-color: #5296c7;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.uiSplitButton .uiMenuButton {
+ margin-left: 0;
+}
+
+.uiSplitButton .uiButton:last-child .uiButton-content {
+ border-radius: 2px;
+ border-left-width: 1;
+ border-left-color: #96c6eb;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ height: 20px;
+}
+
+.uiSplitButton .uiButton:last-child .uiButton-label {
+ padding: 2px 17px 2px 6px;
+ margin-left: -8px;
+}
+
+.uiToolbar {
+ height: 28px;
+ background: #fdfefe;
+ background: -moz-linear-gradient(top, #fdfefe, #eaedef);
+ background: -webkit-linear-gradient(top, #fdfefe, #eaedef);
+ border-bottom: 1px solid #d2d5d7;
+ padding: 3px 10px;
+}
+
+.uiToolbar H2 {
+ display: inline-block;
+ font-size: 120%;
+ margin: 0;
+ padding: 5px 20px 5px 0;
+}
+
+.uiToolbar .uiTextField {
+ display: inline-block;
+}
+
+.uiToolbar .uiTextField INPUT {
+ padding-top: 2px;
+ padding-bottom: 5px;
+}
+#uiModal {
+ background: black;
+}
+
+.uiPanel {
+ box-shadow: -1px 2.5px 4px -3px black, -1px -2.5px 4px -3px black, 3px 2.5px 4px -3px black, 3px -2.5px 4px -3px black;
+ position: absolute;
+ background: #eee;
+ border: 1px solid #666;
+}
+
+.uiPanel-titleBar {
+ text-align: center;
+ font-weight: bold;
+ padding: 2px 0;
+ background: rgba(223, 223, 223, 0.75);
+ background: -moz-linear-gradient(top, rgba(223, 223, 223, 0.75), rgba(193, 193, 193, 0.75), rgba(223, 223, 223, 0.75));
+ background: -webkit-linear-gradient(top, rgba(223, 223, 223, 0.75), rgba(193, 193, 193, 0.75), rgba(223, 223, 223, 0.75));
+ border-bottom: 1px solid #bbb;
+}
+
+.uiPanel-close {
+ cursor: pointer;
+ border: 1px solid #aaa;
+ background: #fff;
+ color: #fff;
+ float: left;
+ height: 10px;
+ left: 3px;
+ line-height: 9px;
+ padding: 1px 0;
+ position: relative;
+ text-shadow: 0 0 1px #000;
+ top: 0px;
+ width: 12px;
+}
+.uiPanel-close:hover {
+ background: #eee;
+}
+
+.uiPanel-body {
+ overflow: auto;
+}
+
+
+.uiInfoPanel {
+ background: rgba(0, 0, 0, 0.75);
+ color: white;
+ border-radius: 8px;
+ padding: 1px;
+}
+.uiInfoPanel .uiPanel-titleBar {
+ background: rgba(74, 74, 74, 0.75);
+ background: -moz-linear-gradient(top, rgba(84, 84, 84, 0.75), rgba(54, 54, 54, 0.75), rgba(64, 64, 64, 0.75));
+ background: -webkit-linear-gradient(top, rgba(84, 84, 84, 0.75), rgba(54, 54, 54, 0.75), rgba(64, 64, 64, 0.75));
+ border-radius: 8px 8px 0 0;
+ padding: 1px 0 2px 0;
+ border-bottom: 0;
+}
+.uiInfoPanel .uiPanel-close {
+ border-radius: 6px;
+ height: 13px;
+ width: 13px;
+ background: #ccc;
+ left: 3px;
+ top: 1px;
+ color: #333;
+ text-shadow: #222 0 0 1px;
+ line-height: 11px;
+ border: 0;
+ padding: 0;
+}
+.uiInfoPanel .uiPanel-close:hover {
+ background: #eee;
+}
+
+.uiInfoPanel .uiPanel-body {
+ background: transparent;
+ padding: 20px;
+ border-radius: 0 0 8px 8px;
+ border: 1px solid #222;
+}
+
+.uiMenuPanel {
+ border: 1px solid #668dc6;
+ position: absolute;
+ background: #96c6eb;
+ color: white;
+}
+
+.uiMenuPanel LI {
+ list-style: none;
+ border-bottom: 1px solid #668dc6;
+}
+
+.uiMenuPanel LI:hover {
+ background: #2575b7;
+}
+
+.uiMenuPanel LI:last-child {
+ border-bottom: 0;
+}
+
+.uiMenuPanel-label {
+ white-space: nowrap;
+ padding: 2px 10px 2px 10px;
+ cursor: pointer;
+}
+
+.disabled .uiMenuPanel-label {
+ cursor: auto;
+ color: #888;
+}
+
+.uiSelectMenuPanel .uiMenuPanel-label {
+ margin-left: 1em;
+ padding-left: 4px;
+}
+
+.uiSelectMenuPanel .uiMenuPanel-item.selected .uiMenuPanel-label:before {
+ content: "\2713";
+ width: 12px;
+ margin-left: -12px;
+ display: inline-block;
+}
+
+.uiTable TABLE {
+ border-collapse: collapse;
+}
+
+.uiTable-body {
+ overflow-y: scroll;
+ overflow-x: auto;
+}
+
+.uiTable-headers {
+ overflow-x: hidden;
+}
+
+.uiTable-body TD {
+ white-space: nowrap;
+}
+
+.uiTable-body .uiTable-header-row TH,
+.uiTable-body .uiTable-header-row TH DIV {
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+.uiTable-body .uiTable-header-cell > DIV {
+ height: 0;
+ overflow: hidden;
+}
+
+.uiTable-headercell-menu {
+ float: right;
+}
+
+.uiTable-tools {
+ padding: 3px 4px;
+ height: 14px;
+}
+
+.uiTable-header-row {
+ background: #ddd;
+ background: -moz-linear-gradient(top, #eee, #ccc);
+ background: -webkit-linear-gradient(top, #eee, #ccc);
+}
+
+.uiTable-headercell-text {
+ margin-right: 20px;
+}
+
+.uiTable-headercell-menu {
+ display: none;
+}
+
+.uiTable-header-row TH {
+ border-right: 1px solid #bbb;
+ padding: 0;
+ text-align: left;
+}
+
+.uiTable-header-row TH > DIV {
+ padding: 3px 4px;
+ border-right: 1px solid #eee;
+}
+
+.uiTable-headerEndCap > DIV {
+ width: 19px;
+}
+
+.uiTable-header-row .uiTable-sort {
+ background: #ccc;
+ background: -moz-linear-gradient(top, #bebebe, #ccc);
+ background: -webkit-linear-gradient(top, #bebebe, #ccc);
+}
+.uiTable-header-row TH.uiTable-sort > DIV {
+ border-right: 1px solid #ccc;
+}
+
+.uiTable-sort .uiTable-headercell-menu {
+ display: block;
+}
+
+.uiTable TABLE TD {
+ border-right: 1px solid transparent;
+ padding: 3px 4px;
+}
+
+.uiTable-body TABLE TR:nth-child(even) {
+ background: #f3f3f3;
+}
+
+.uiTable-body TABLE TR.selected {
+ color: white;
+ background: #6060f1;
+}
+
+DIV.uiJsonPretty-object { font-size: 1.26em; font-family: monospace; }
+UL.uiJsonPretty-object,
+UL.uiJsonPretty-array { margin: 0; padding: 0 0 0 2em; list-style: none; }
+UL.uiJsonPretty-object LI,
+UL.uiJsonPretty-array LI { padding: 0; margin: 0; }
+.expando > SPAN.uiJsonPretty-name:before { content: "\25bc\a0"; color: #555; position: relative; top: 2px; }
+.expando.uiJsonPretty-minimised > SPAN.uiJsonPretty-name:before { content: "\25ba\a0"; top: 0; }
+.uiJsonPretty-minimised > UL SPAN.uiJsonPretty-name:before,
+.expando .uiJsonPretty-minimised > UL SPAN.uiJsonPretty-name:before { content: ""; }
+SPAN.uiJsonPretty-string,
+SPAN.uiJsonPretty-string A { color: green; }
+SPAN.uiJsonPretty-string A { text-decoration: underline;}
+SPAN.uiJsonPretty-number { color: blue; }
+SPAN.uiJsonPretty-null { color: red; }
+SPAN.uiJsonPretty-boolean { color: purple; }
+.expando > .uiJsonPretty-name { cursor: pointer; }
+.expando > .uiJsonPretty-name:hover { text-decoration: underline; }
+.uiJsonPretty-minimised { white-space: nowrap; overflow: hidden; }
+.uiJsonPretty-minimised > UL { opacity: 0.6; }
+.uiJsonPretty-minimised .uiJsonPretty-minimised > UL { opacity: 1; }
+.uiJsonPretty-minimised UL, .uiJsonPretty-minimised LI { display: inline; padding: 0; }
+
+
+.uiJsonPanel SPAN.uiJsonPretty-string { color: #6F6; }
+.uiJsonPanel SPAN.uiJsonPretty-number { color: #66F; }
+.uiJsonPanel SPAN.uiJsonPretty-null { color: #F66; }
+.uiJsonPanel SPAN.uiJsonPretty-boolean { color: #F6F; }
+
+.uiPanelForm-field {
+ display: block;
+ padding: 2px 0;
+ clear: both;
+}
+
+.uiPanelForm-label {
+ float: left;
+ width: 200px;
+ padding: 3px 7px;
+ text-align: right;
+}
+
+.uiSidebarSection-head {
+ background-color: #b9cfff;
+ background-image: url('data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAcCAMAAABifa5OAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMAUExURQUCFf///wICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycr
KysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///2Oyy/cAAAACdFJOU/8A5bcwSgAAADxJREFUeNq8zzkOACAMA8Hd/3+agiuRcIsrRopIjArOoLK1QAMNNBCRPkhLyzkn35Bjfd7JR1Nr09NoDACnvgDl1zlzoQAAAABJRU5ErkJggg==');
+ background-repeat: no-repeat;
+ background-position: 2px 5px;
+ margin-bottom: 1px;
+ padding: 3px 3px 3px 17px;
+ cursor: pointer;
+}
+
+.shown > .uiSidebarSection-head {
+ background-position: 2px -13px;
+}
+
+.uiSidebarSection-body {
+ margin-bottom: 3px;
+ display: none;
+}
+
+.uiSidebarSection-help {
+ text-shadow: #228 1px 1px 2px;
+ color: blue;
+ cursor: pointer;
+}
+
+.uiSidebarSection-help:hover {
+ text-decoration: underline;
+}
+
+.uiQueryFilter {
+ width: 350px;
+ padding: 5px;
+ background: #d8e7ff;
+ background: -moz-linear-gradient(left, #d8e7ff, #e8f1ff);
+ background: -webkit-linear-gradient(left, #d8e7ff, #e8f1ff);
+}
+
+.uiQueryFilter DIV.uiQueryFilter-section {
+ margin-bottom: 5px;
+}
+
+.uiQueryFilter HEADER {
+ display: block;
+ font-variant: small-caps;
+ font-weight: bold;
+ margin: 5px 0;
+}
+
+.uiQueryFilter-aliases SELECT {
+ width: 100%;
+}
+
+.uiQueryFilter-booble {
+ cursor: pointer;
+ background: #e8f1ff;
+ border: 1px solid #e8f1ff;
+ border-radius: 5px;
+ padding: 1px 4px;
+ margin-bottom: 1px;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.uiQueryFilter-booble.selected {
+ background: #dae3f0;
+ border-top: 1px solid #c8d4e6;
+ border-left: 1px solid #c8d4e6;
+ border-bottom: 1px solid #ffffff;
+ border-right: 1px solid #ffffff;
+}
+
+.uiQueryFilter-filterName {
+ background-color: #cbdfff;
+ margin-bottom: 4px;
+ padding: 3px;
+ cursor: pointer;
+}
+
+.uiQueryFilter-filters INPUT {
+ width: 300px;
+}
+
+.uiQueryFilter-subMultiFields {
+ padding-left: 10px;
+}
+
+.uiQueryFilter-rangeHintFrom,
+.uiQueryFilter-rangeHintTo {
+ margin: 0;
+ opacity: 0.75;
+}
+.uiBrowser-filter {
+ float: left;
+}
+
+.uiBrowser-table {
+ margin-left: 365px;
+}
+
+.uiAnyRequest-request {
+ float: left;
+ width: 350px;
+ padding: 5px;
+ background: #d8e7ff;
+ background: -moz-linear-gradient(left, #d8e7ff, #e8f1ff);
+ background: -webkit-linear-gradient(left, #d8e7ff, #e8f1ff);
+}
+
+.uiAnyRequest-request INPUT[type=text],
+.uiAnyRequest-request TEXTAREA {
+ width: 340px;
+}
+
+.anyRequest INPUT[name=path] {
+ width: 259px;
+}
+
+.uiAnyRequest-out {
+ margin-left: 365px;
+}
+
+.uiAnyRequest-out P {
+ margin-top: 0;
+}
+
+.uiAnyRequest-jsonErr {
+ color: red;
+}
+
+.uiAnyRequest-history {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ max-height: 100px;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.uiNodesView TH,
+.uiNodesView TD {
+ vertical-align: top;
+ padding: 2px 20px;
+}
+
+.uiNodesView TH.close,
+.uiNodesView TD.close {
+ color: #888;
+ background: #f2f2f2;
+}
+
+.uiNodesView .uiMenuButton .uiButton-content {
+ padding-right: 3px;
+ border-radius: 8px;
+ height: 14px;
+}
+
+.uiNodesView .uiMenuButton.active .uiButton-content,
+.uiNodesView .uiMenuButton:active .uiButton-content {
+ border-bottom-right-radius: 0px;
+ border-bottom-left-radius: 0px;
+}
+
+.uiNodesView .uiMenuButton .uiButton-label {
+ padding: 0px 17px 0px 7px;
+}
+
+.uiNodesView-hasAlias {
+ text-align: center;
+}
+.uiNodesView-hasAlias.max {
+ border-top-right-radius: 8px;
+ border-bottom-right-radius: 8px;
+}
+.uiNodesView-hasAlias.min {
+ border-top-left-radius: 8px;
+ border-bottom-left-radius: 8px;
+}
+.uiNodesView-hasAlias-remove {
+ float: right;
+ font-weight: bold;
+ cursor: pointer;
+}
+
+.uiNodesView TD.uiNodesView-icon {
+ padding: 20px 0px 15px 20px;
+}
+
+.uiNodesView-node:nth-child(odd) {
+ background: #eee;
+}
+
+.uiNodesView-routing {
+ position: relative;
+ min-width: 90px;
+}
+
+.uiNodesView-nullReplica,
+.uiNodesView-replica {
+ box-sizing: border-box;
+ cursor: pointer;
+ float: left;
+ height: 40px;
+ width: 35px;
+ margin: 4px;
+ border: 2px solid #444;
+ padding: 2px;
+ font-size: 32px;
+ line-height: 32px;
+ text-align: center;
+ letter-spacing: -5px;
+ text-indent: -7px;
+}
+
+.uiNodesView-replica.primary {
+ border-width: 4px;
+ line-height: 29px;
+}
+
+.uiNodesView-nullReplica {
+ border-color: transparent;
+}
+
+.uiNodesView-replica.state-UNASSIGNED { background: #eeeeee; color: #999; border-color: #666; float: none; display: inline-block; }
+.uiNodesView-replica.state-INITIALIZING { background: #dddc88; }
+.uiNodesView-replica.state-STARTED { background: #99dd88; }
+.uiNodesView-replica.state-RELOCATING { background: #dc88dd; }
+
+
+.uiClusterConnect-uri {
+ width: 280px;
+}
+
+.uiStructuredQuery {
+ padding: 10px;
+}
+
+.uiStructuredQuery-out {
+ min-height: 30px;
+}
+
+.uiFilterBrowser-row * {
+ margin-right: 0.4em;
+}
+
+.uiFilterBrowser-row BUTTON {
+ height: 22px;
+ position: relative;
+ top: 1px;
+}
+
+.uiHeader {
+ padding: 3px 10px;
+}
+
+.uiHeader-name, .uiHeader-status {
+ font-size: 1.2em;
+ font-weight: bold;
+ padding: 0 10px;
+}
+
+
+.uiApp-header {
+ background: #eee;
+ position: fixed;
+ width: 100%;
+ z-index: 9;
+}
+
+.uiApp-header H1 {
+ margin: -2px 0 -4px 0;
+ float: left;
+ padding-right: 25px;
+}
+
+.uiApp-headerMenu {
+ border-bottom: 1px solid #bbb;
+ padding: 0px 3px;
+ height: 22px;
+}
+
+.uiApp-headerMenu .active {
+ background: white;
+ border-bottom-color: white;
+}
+
+.uiApp-headerMenuItem {
+ border: 1px solid #bbb;
+ padding: 4px 8px 1px ;
+ margin: 2px 1px 0;
+ height: 14px;
+ cursor: pointer;
+}
+
+.uiApp-body {
+ padding: 51px 0px 0px 0px;
+}
+
+.uiApp-headerNewMenuItem {
+ color: blue;
+}