mirror of https://github.com/apache/lucene.git
Fixes for SOLR-3162 and SOLR-3181, continuing improvements to the new Solr admin UI.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1298010 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6d372fc611
commit
82f53daeb4
|
@ -642,6 +642,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
|
|||
addVal(slave, SnapPuller.REPLICATION_FAILED_AT, props, Date.class);
|
||||
addVal(slave, SnapPuller.PREVIOUS_CYCLE_TIME_TAKEN, props, Long.class);
|
||||
|
||||
slave.add("currentDate", new Date().toString());
|
||||
slave.add("isPollingDisabled", String.valueOf(isPollingDisabled()));
|
||||
boolean isReplicating = isReplicating();
|
||||
slave.add("isReplicating", String.valueOf(isReplicating));
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
|
||||
package org.apache.solr.servlet;
|
||||
|
||||
import org.apache.lucene.util.BytesRef;
|
||||
import org.apache.noggit.CharArr;
|
||||
import org.apache.noggit.JSONWriter;
|
||||
import org.apache.solr.cloud.ZkController;
|
||||
import org.apache.solr.common.cloud.SolrZkClient;
|
||||
import org.apache.solr.common.util.StrUtils;
|
||||
import org.apache.solr.core.CoreContainer;
|
||||
import org.apache.zookeeper.KeeperException;
|
||||
import org.apache.zookeeper.data.Stat;
|
||||
|
@ -34,7 +34,6 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -72,11 +71,16 @@ public final class ZookeeperInfoServlet extends HttpServlet {
|
|||
|
||||
String detailS = request.getParameter("detail");
|
||||
boolean detail = detailS != null && detailS.equals("true");
|
||||
|
||||
String dumpS = request.getParameter("dump");
|
||||
boolean dump = dumpS != null && dumpS.equals("true");
|
||||
|
||||
PrintWriter out = response.getWriter();
|
||||
|
||||
|
||||
ZKPrinter printer = new ZKPrinter(response, out, cores.getZkController(), addr);
|
||||
printer.detail = detail;
|
||||
printer.dump = dump;
|
||||
|
||||
try {
|
||||
printer.print(path);
|
||||
|
@ -103,6 +107,7 @@ public final class ZookeeperInfoServlet extends HttpServlet {
|
|||
boolean indent = true;
|
||||
boolean fullpath = FULLPATH_DEFAULT;
|
||||
boolean detail = false;
|
||||
boolean dump = false;
|
||||
|
||||
String addr; // the address passed to us
|
||||
String keeperAddr; // the address we're connected to
|
||||
|
@ -260,6 +265,7 @@ public final class ZookeeperInfoServlet extends HttpServlet {
|
|||
|
||||
Stat stat = new Stat();
|
||||
try {
|
||||
// Trickily, the call to zkClient.getData fills in the stat variable
|
||||
byte[] data = zkClient.getData(path, null, stat, true);
|
||||
|
||||
if (stat.getEphemeralOwner() != 0) {
|
||||
|
@ -267,6 +273,11 @@ public final class ZookeeperInfoServlet extends HttpServlet {
|
|||
writeKeyValue(json, "version", stat.getVersion(), false);
|
||||
}
|
||||
|
||||
if (dump) {
|
||||
json.writeValueSeparator();
|
||||
printZnode(json, path);
|
||||
}
|
||||
|
||||
/*
|
||||
if (stat.getNumChildren() != 0)
|
||||
{
|
||||
|
@ -275,32 +286,12 @@ public final class ZookeeperInfoServlet extends HttpServlet {
|
|||
}
|
||||
*/
|
||||
|
||||
//if (data != null)
|
||||
if (stat.getDataLength() != 0) {
|
||||
String str;
|
||||
try {
|
||||
str = new String(data, "UTF-8");
|
||||
str = str.replaceAll("\\\"", "\\\\\"");
|
||||
|
||||
//writeKeyValue(json, "content", str, false );
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
// not UTF8
|
||||
StringBuilder sb = new StringBuilder("BIN(");
|
||||
sb.append("len=" + data.length);
|
||||
sb.append("hex=");
|
||||
int limit = Math.min(data.length, maxData / 2);
|
||||
for (int i = 0; i < limit; i++) {
|
||||
byte b = data[i];
|
||||
sb.append(StrUtils.HEX_DIGITS[(b >> 4) & 0xf]);
|
||||
sb.append(StrUtils.HEX_DIGITS[b & 0xf]);
|
||||
}
|
||||
if (limit != data.length) {
|
||||
sb.append("...");
|
||||
}
|
||||
sb.append(")");
|
||||
str = sb.toString();
|
||||
//?? writeKeyValue(json, "content", str, false );
|
||||
}
|
||||
//if (stat.getDataLength() != 0)
|
||||
if (data != null) {
|
||||
String str = new BytesRef(data).utf8ToString();
|
||||
//?? writeKeyValue(json, "content", str, false );
|
||||
// Does nothing now, but on the assumption this will be used later we'll leave it in. If it comes out
|
||||
// the catches below need to be restructured.
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
// path doesn't exist (must have been removed)
|
||||
|
@ -375,6 +366,7 @@ public final class ZookeeperInfoServlet extends HttpServlet {
|
|||
boolean printZnode(JSONWriter json, String path) throws IOException {
|
||||
try {
|
||||
Stat stat = new Stat();
|
||||
// Trickily, the call to zkClient.getData fills in the stat variable
|
||||
byte[] data = zkClient.getData(path, null, stat, true);
|
||||
|
||||
json.writeString("znode");
|
||||
|
@ -400,28 +392,8 @@ public final class ZookeeperInfoServlet extends HttpServlet {
|
|||
writeKeyValue(json, "pzxid", stat.getPzxid(), false);
|
||||
json.endObject();
|
||||
|
||||
if (stat.getDataLength() != 0) {
|
||||
String str;
|
||||
try {
|
||||
str = new String(data, "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
// The results are unspecified
|
||||
// when the bytes are not properly encoded.
|
||||
|
||||
// not UTF8
|
||||
StringBuilder sb = new StringBuilder(data.length * 2);
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
byte b = data[i];
|
||||
sb.append(StrUtils.HEX_DIGITS[(b >> 4) & 0xf]);
|
||||
sb.append(StrUtils.HEX_DIGITS[b & 0xf]);
|
||||
if ((i & 0x3f) == 0x3f) {
|
||||
sb.append("\n");
|
||||
}
|
||||
}
|
||||
str = sb.toString();
|
||||
}
|
||||
str = str.replaceAll("\\\"", "\\\\\"");
|
||||
writeKeyValue(json, "data", str, false);
|
||||
if (data != null) {
|
||||
writeKeyValue(json, "data", new BytesRef(data).utf8ToString(), false);
|
||||
}
|
||||
json.endObject();
|
||||
} catch (KeeperException e) {
|
||||
|
|
|
@ -19,104 +19,101 @@ limitations under the License.
|
|||
|
||||
<head>
|
||||
|
||||
<title>solr-admin</title>
|
||||
<title>Solr Admin</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/main.css">
|
||||
<link rel="icon" type="image/ico" href="img/favicon.ico">
|
||||
<link rel="icon" type="image/ico" href="img/favicon.ico">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/common.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/analysis.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/cloud.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/cores.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/dashboard.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/dataimport.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/index.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/java-properties.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/logging.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/menu.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/plugins.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/query.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/replication.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/schema-browser.css">
|
||||
<link rel="stylesheet" type="text/css" href="css/styles/threads.css">
|
||||
|
||||
<script type="text/javascript">
|
||||
<script type="text/javascript">
|
||||
|
||||
var app_config = {};
|
||||
var app_config = {};
|
||||
|
||||
app_config.solr_path = '${contextPath}';
|
||||
app_config.core_admin_path = '${adminPath}';
|
||||
app_config.zookeeper_path = 'zookeeper';
|
||||
app_config.schema_path = '/admin/file?file=schema.xml&contentType=text/xml;charset=utf-8';
|
||||
app_config.config_path = '/admin/file?file=solrconfig.xml&contentType=text/xml;charset=utf-8';
|
||||
app_config.solr_path = '${contextPath}';
|
||||
app_config.core_admin_path = '${adminPath}';
|
||||
app_config.schema_path = '/admin/file?file=schema.xml&contentType=text/xml;charset=utf-8';
|
||||
app_config.config_path = '/admin/file?file=solrconfig.xml&contentType=text/xml;charset=utf-8';
|
||||
|
||||
</script>
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="wrapper">
|
||||
<div id="wrapper">
|
||||
|
||||
<div id="header">
|
||||
<div id="header">
|
||||
|
||||
<a href="./" id="solr"><span>Apache SOLR</span></a>
|
||||
<a href="./" id="solr"><span>Apache SOLR</span></a>
|
||||
|
||||
<div id="wip-notice">
|
||||
<p>This interface is work in progress.</p>
|
||||
<p>Please report any <a href="https://issues.apache.org/jira/browse/SOLR-2667">Bugs/Requests/Suggestions: <span>SOLR-2667</span></a></p>
|
||||
</div>
|
||||
<div id="wip-notice">
|
||||
<p>This interface is work in progress.</p>
|
||||
<p><a href="https://issues.apache.org/jira/browse/SOLR-3162">Please report any Bugs/Requests/Suggestions: <span>SOLR-3162</span></a></p>
|
||||
</div>
|
||||
|
||||
<p id="environment"> </p>
|
||||
<p id="environment"> </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="main" class="clearfix">
|
||||
<div id="main" class="clearfix">
|
||||
|
||||
<div id="content-wrapper">
|
||||
<div id="content">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="menu-wrapper">
|
||||
<div id="menu">
|
||||
|
||||
<ul>
|
||||
|
||||
<li id="index" class="global">
|
||||
<p><a href="#/">Dashboard</a></p>
|
||||
</li>
|
||||
|
||||
<li id="logging" class="global">
|
||||
<p><a href="#/logging">Logging</a></p>
|
||||
</li>
|
||||
|
||||
<li id="cloud" class="global optional">
|
||||
<p><a href="#/cloud">Cloud</a></p>
|
||||
</li>
|
||||
|
||||
<li id="cores" class="global optional">
|
||||
<p><a href="#/cores">Core Admin</a></p>
|
||||
</li>
|
||||
|
||||
<li id="java-properties" class="global">
|
||||
<p><a href="#/java-properties">Java Properties</a>
|
||||
</li>
|
||||
|
||||
<li id="threads" class="global">
|
||||
<p><a href="#/threads">Thread Dump</a></p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="meta">
|
||||
|
||||
<ul>
|
||||
|
||||
<li class="documentation"><a href="http://lucene.apache.org/solr/"><span>Documentation</span></a></li>
|
||||
<li class="issues"><a href="http://issues.apache.org/jira/browse/SOLR"><span>Issue Tracker</span></a></li>
|
||||
<li class="irc"><a href="http://webchat.freenode.net/?channels=#solr"><span>IRC Channel</span></a></li>
|
||||
<li class="mailinglist"><a href="http://wiki.apache.org/solr/UsingMailingLists"><span>Community forum</span></a></li>
|
||||
<li class="wiki-query-syntax"><a href="http://wiki.apache.org/solr/SolrQuerySyntax"><span>Solr Query Syntax</span></a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content-wrapper">
|
||||
<div id="content">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="menu-wrapper">
|
||||
<div id="menu">
|
||||
|
||||
<ul>
|
||||
|
||||
<li id="index" class="global"><p><a href="#/">Dashboard</a></p></li>
|
||||
<li id="logging" class="global"><p><a href="#/logging">Logging</a></p></li>
|
||||
<li id="cloud" class="global optional"><p><a href="#/cloud">Cloud</a></p></li>
|
||||
<li id="cores" class="global optional"><p><a href="#/cores">Core Admin</a></p></li>
|
||||
<li id="java-properties" class="global"><p><a href="#/java-properties">Java Properties</a></li>
|
||||
<li id="threads" class="global"><p><a href="#/threads">Thread Dump</a></p></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="meta">
|
||||
|
||||
<ul>
|
||||
|
||||
<li class="documentation"><a href="http://lucene.apache.org/solr/"><span>Documentation</span></a></li>
|
||||
<li class="issues"><a href="http://issues.apache.org/jira/browse/SOLR"><span>Issue Tracker</span></a></li>
|
||||
<li class="irc"><a href="http://webchat.freenode.net/?channels=#solr"><span>IRC Channel</span></a></li>
|
||||
<li class="mailinglist"><a href="http://wiki.apache.org/solr/UsingMailingLists"><span>Community forum</span></a></li>
|
||||
<li class="wiki-query-syntax"><a href="http://wiki.apache.org/solr/SolrQuerySyntax"><span>Solr Query Syntax</span></a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="js/require.js" data-main="js/main"></script>
|
||||
</div>
|
||||
|
||||
<script src="js/require.js" data-main="js/main"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,263 +1,269 @@
|
|||
#content #analysis-holder
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 50% 0;
|
||||
background-repeat: repeat-y;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 50% 0;
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
#content #analysis #field-analysis
|
||||
{
|
||||
margin-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#content #analysis #field-analysis .content
|
||||
{
|
||||
padding-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
#content #analysis .settings-holder
|
||||
{
|
||||
clear: both;
|
||||
padding-top: 15px;
|
||||
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;
|
||||
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;
|
||||
background-position: 3px 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #analysis .settings select optgroup
|
||||
{
|
||||
font-style: normal;
|
||||
padding: 5px;
|
||||
font-style: normal;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#content #analysis .settings select option
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
#content #analysis .settings div
|
||||
{
|
||||
float: right;
|
||||
width: 47%;
|
||||
float: right;
|
||||
width: 47%;
|
||||
}
|
||||
|
||||
#content #analysis .settings button
|
||||
{
|
||||
float: right;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#content #analysis .settings button.loader
|
||||
{
|
||||
background-position: 2px 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 2px 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #analysis .settings .verbose_output
|
||||
{
|
||||
float: left;
|
||||
width: auto;
|
||||
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;
|
||||
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 );
|
||||
background-image: url( ../../img/ico/ui-check-box.png );
|
||||
}
|
||||
|
||||
#content #analysis .index label,
|
||||
#content #analysis .query label
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #analysis .index textarea,
|
||||
#content #analysis .query textarea
|
||||
{
|
||||
display: block;
|
||||
width: 100%;
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content #analysis .index
|
||||
{
|
||||
float: left;
|
||||
margin-right: 0.5%;
|
||||
min-width: 47%;
|
||||
max-width: 99%;
|
||||
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%;
|
||||
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;
|
||||
display: none;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
padding: 10px;
|
||||
padding-left: 35px;
|
||||
background-color: #f00;
|
||||
background-image: url( ../../img/ico/construction.png );
|
||||
background-position: 10px 50%;
|
||||
color: #fff;
|
||||
display: none;
|
||||
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;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result .index,
|
||||
#content #analysis #analysis-result .query
|
||||
{
|
||||
background-color: #fff;
|
||||
padding-top: 20px;
|
||||
background-color: #fff;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td
|
||||
{
|
||||
vertical-align: top;
|
||||
white-space: nowrap;
|
||||
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;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.legend,
|
||||
#content #analysis #analysis-result td.data tr.verbose_output
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result.verbose_output td.legend
|
||||
{
|
||||
display: table-cell;
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result.verbose_output td.data tr.verbose_output
|
||||
{
|
||||
display: table-row;
|
||||
display: table-row;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result .match
|
||||
{
|
||||
background-color: #e9eff7;
|
||||
background-color: #f2f2ff;
|
||||
background-color: #e9eff7;
|
||||
background-color: #f2f2ff;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.part
|
||||
{
|
||||
padding-bottom: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.part.analyzer div
|
||||
{
|
||||
border-right: 1px solid #f0f0f0;
|
||||
padding-right: 10px;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.part.analyzer abbr
|
||||
{
|
||||
color: #c0c0c0;
|
||||
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;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
border-right: 1px solid #c0c0c0;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.part.legend td
|
||||
{
|
||||
color: #c0c0c0;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.part.legend .holder
|
||||
{
|
||||
border-right-color: #f0f0f0;
|
||||
border-right-color: #f0f0f0;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.part.data:last-child .holder
|
||||
{
|
||||
padding-right: 0;
|
||||
border-right: 0;
|
||||
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;
|
||||
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;
|
||||
padding-left: 0;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.details:last-child
|
||||
{
|
||||
padding-right: 0;
|
||||
border-right: 0;
|
||||
padding-right: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.details tr.empty td
|
||||
{
|
||||
color: #f0f0f0;
|
||||
color: #f0f0f0;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result td.details tr.raw_bytes td
|
||||
{
|
||||
letter-spacing: -1px;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result .part table table td
|
||||
{
|
||||
border-top: 1px solid #f0f0f0;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
#content #analysis #analysis-result .part table table tr:first-child td
|
||||
{
|
||||
border-top: 0;
|
||||
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 ); }
|
||||
#content #analysis .analysis-result h2 { background-image: url( ../../img/ico/receipt-invoice.png ); }
|
||||
|
|
|
@ -1,100 +1,208 @@
|
|||
#content #cloud .loader
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #cloud #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;
|
||||
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 #cloud h2 { background-image: url( ../../img/ico/sitemap.png ); }
|
||||
|
||||
#content #cloud
|
||||
{
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #cloud a.debug
|
||||
{
|
||||
background-color: #c0c0c0;
|
||||
background-image: url( ../../img/ico/exclamation-button.png );
|
||||
background-position: 5px 50%;
|
||||
border-radius: 5px;
|
||||
display: block;
|
||||
padding: 2px 5px;
|
||||
padding-left: 26px;
|
||||
position: absolute;
|
||||
left: 150px;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
#content #cloud a.debug:hover
|
||||
{
|
||||
background-color: #fff;
|
||||
color: #00f;
|
||||
}
|
||||
|
||||
#content #cloud #debug
|
||||
{
|
||||
background-color: #fff;
|
||||
box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-moz-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-webkit-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
display: none;
|
||||
padding: 20px;
|
||||
position: absolute;
|
||||
left: 50px;
|
||||
top: 50px;
|
||||
}
|
||||
|
||||
#content #cloud #debug ul
|
||||
{
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #cloud #debug ul a
|
||||
{
|
||||
background-position: 4px 50%;
|
||||
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: 400px;
|
||||
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;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
#content #cloud .content.show
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-repeat: repeat-y;
|
||||
background-position: 31% 0;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-repeat: repeat-y;
|
||||
background-position: 31% 0;
|
||||
}
|
||||
|
||||
#content #cloud #tree
|
||||
{
|
||||
float: left;
|
||||
width: 30%;
|
||||
float: left;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
#content #cloud .show #tree
|
||||
{
|
||||
overflow: hidden;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#content #cloud #file-content
|
||||
{
|
||||
display: none;
|
||||
float: right;
|
||||
position: relative;
|
||||
width: 68%;
|
||||
min-height: 100px
|
||||
display: none;
|
||||
float: right;
|
||||
position: relative;
|
||||
width: 68%;
|
||||
min-height: 100px
|
||||
}
|
||||
|
||||
#content #cloud .show #file-content
|
||||
{
|
||||
display: block;
|
||||
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;
|
||||
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 );
|
||||
background-image: url( ../../img/ico/cross-1.png );
|
||||
}
|
||||
|
||||
#content #cloud #file-content .close span
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #cloud #file-content #data
|
||||
{
|
||||
border-top: 1px solid #c0c0c0;
|
||||
margin-top: 10px;
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid #c0c0c0;
|
||||
margin-top: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
#content #cloud #file-content #data pre
|
||||
{
|
||||
display: block;
|
||||
max-height: 600px;
|
||||
overflow: auto;
|
||||
display: block;
|
||||
max-height: 600px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#content #cloud #file-content #data em
|
||||
{
|
||||
color: #c0c0c0;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #cloud #file-content #prop
|
||||
|
@ -103,31 +211,31 @@
|
|||
|
||||
#content #cloud #file-content li
|
||||
{
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
#content #cloud #file-content li.odd
|
||||
{
|
||||
background-color: #F8F8F8;
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
|
||||
#content #cloud #file-content li dt
|
||||
{
|
||||
float: left;
|
||||
width: 19%;
|
||||
float: left;
|
||||
width: 19%;
|
||||
}
|
||||
|
||||
#content #cloud #file-content li dd
|
||||
{
|
||||
float: right;
|
||||
width: 80%;
|
||||
float: right;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
/* tree */
|
||||
|
||||
#content #cloud .tree a.active
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
color: #00f;
|
||||
background-color: #f0f0f0;
|
||||
color: #00f;
|
||||
}
|
|
@ -1,52 +1,52 @@
|
|||
*
|
||||
{
|
||||
background-repeat: no-repeat;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
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;
|
||||
color: #333;
|
||||
font: 12px/1.6em "Lucida Grande", "DejaVu Sans", "Bitstream Vera Sans", Verdana, Arial, sans-serif;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
padding: 30px;
|
||||
text-align: center;
|
||||
padding: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a, button
|
||||
{
|
||||
cursor: pointer;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button, input, select, textarea
|
||||
{
|
||||
border: 1px solid #c0c0c0;
|
||||
padding: 2px;
|
||||
border: 1px solid #c0c0c0;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
text-decoration: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre
|
||||
{
|
||||
color: #333;
|
||||
text-align: left;
|
||||
color: #333;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
abbr
|
||||
{
|
||||
cursor: help;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
ul
|
||||
{
|
||||
list-style: none;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.clearfix:after { clear: both; content: "."; display: block; font-size: 0; height: 0; visibility: hidden; }
|
||||
|
@ -54,96 +54,121 @@ ul
|
|||
|
||||
.loader
|
||||
{
|
||||
background-image: url( ../../img/loader.gif ) !important;
|
||||
background-image: url( ../../img/loader.gif ) !important;
|
||||
}
|
||||
|
||||
.loader-light
|
||||
{
|
||||
background-image: url( ../../img/loader-light.gif ) !important;
|
||||
background-image: url( ../../img/loader-light.gif ) !important;
|
||||
}
|
||||
|
||||
#wrapper
|
||||
{
|
||||
margin: 0 auto;
|
||||
margin-bottom: 30px;
|
||||
text-align: left;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 30px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#header
|
||||
{
|
||||
padding-bottom: 10px;
|
||||
position: relative;
|
||||
padding-bottom: 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#header #solr
|
||||
{
|
||||
background-image: url( ../../img/solr.png );
|
||||
display: block;
|
||||
height: 78px;
|
||||
width: 200px;
|
||||
background-image: url( ../../img/solr.png );
|
||||
display: block;
|
||||
height: 78px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#header #solr span
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#header #wip-notice
|
||||
{
|
||||
background-color: #eceffa;
|
||||
background-image: url( ../../img/ico/information-button.png );
|
||||
background-position: 8px 7px;
|
||||
border: 1px solid #4465cb;
|
||||
padding: 5px 10px;
|
||||
padding-left: 31px;
|
||||
left: 212px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
background-color: #eceffa;
|
||||
background-image: url( ../../img/ico/information-button.png );
|
||||
background-position: 8px 7px;
|
||||
border: 1px solid #4465cb;
|
||||
padding: 5px 10px;
|
||||
padding-left: 31px;
|
||||
left: 212px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#header #wip-notice a
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#header #wip-notice span
|
||||
{
|
||||
border-bottom: 1px solid #c0c0c0;
|
||||
border-bottom: 1px solid #c0c0c0;
|
||||
}
|
||||
|
||||
#main
|
||||
{
|
||||
border: 1px solid #c0c0c0;
|
||||
min-height: 600px;
|
||||
min-width: 750px;
|
||||
position: relative;
|
||||
border: 1px solid #c0c0c0;
|
||||
min-height: 600px;
|
||||
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-bottom: 20px;
|
||||
padding: 10px;
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
#main.error .code
|
||||
{
|
||||
border: 1px solid #c0c0c0;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#meta
|
||||
{
|
||||
position: absolute;
|
||||
bottom: -26px;
|
||||
right: 0;
|
||||
position: absolute;
|
||||
bottom: -26px;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#meta li
|
||||
{
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#meta li a
|
||||
{
|
||||
background-position: 10px 50%;
|
||||
display: block;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
padding-left: 31px;
|
||||
padding-right: 10px;
|
||||
background-position: 10px 50%;
|
||||
display: block;
|
||||
height: 25px;
|
||||
line-height: 25px;
|
||||
padding-left: 31px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#meta li a:hover
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
#meta .documentation a { background-image: url( ../../img/ico/document-text.png ); }
|
||||
|
@ -154,112 +179,112 @@ ul
|
|||
|
||||
#environment
|
||||
{
|
||||
background-image: url( ../../img/ico/box.png );
|
||||
background-position: 10px 50%;
|
||||
border: 1px solid #c0c0c0;
|
||||
display: none;
|
||||
font-weight: bold;
|
||||
padding: 5px 10px;
|
||||
padding-left: 31px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
background-image: url( ../../img/ico/box.png );
|
||||
background-position: 10px 50%;
|
||||
border: 1px solid #c0c0c0;
|
||||
display: none;
|
||||
font-weight: bold;
|
||||
padding: 5px 10px;
|
||||
padding-left: 31px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#environment.prod
|
||||
{
|
||||
background-color: #c37f7f;
|
||||
border-color: #b15757;
|
||||
color: #fff;
|
||||
background-color: #c37f7f;
|
||||
border-color: #b15757;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#environment.test
|
||||
{
|
||||
background-color: #f5f5b2;
|
||||
border-color: #e4e433;
|
||||
background-color: #f5f5b2;
|
||||
border-color: #e4e433;
|
||||
}
|
||||
|
||||
#environment.dev
|
||||
{
|
||||
background-color: #cce7cc;
|
||||
border-color: #66b866;
|
||||
background-color: #cce7cc;
|
||||
border-color: #66b866;
|
||||
}
|
||||
|
||||
|
||||
#content-wrapper
|
||||
{
|
||||
float: right;
|
||||
width: 80%;
|
||||
float: right;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
#content
|
||||
{
|
||||
padding: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#content > .loader
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content iframe
|
||||
{
|
||||
border: 0;
|
||||
display: block;
|
||||
min-height: 400px;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
display: block;
|
||||
min-height: 400px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content > pre
|
||||
{
|
||||
max-height: 600px;
|
||||
overflow: auto;
|
||||
max-height: 600px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#content .block
|
||||
{
|
||||
margin-bottom: 10px;
|
||||
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;
|
||||
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;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content .block .message,
|
||||
#content .block .content
|
||||
{
|
||||
padding: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#content .block .message
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* syntax */
|
||||
|
||||
pre.syntax
|
||||
{
|
||||
overflow: auto;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
pre.syntax code
|
||||
{
|
||||
display: block;
|
||||
color: #000;
|
||||
display: block;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
pre.syntax .comment,
|
||||
|
@ -267,8 +292,8 @@ pre.syntax .template_comment,
|
|||
pre.syntax .diff .header,
|
||||
pre.syntax .javadoc
|
||||
{
|
||||
color: #998;
|
||||
font-style: italic;
|
||||
color: #998;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre.syntax .keyword,
|
||||
|
@ -278,14 +303,14 @@ pre.syntax .javascript .title,
|
|||
pre.syntax .lisp .title,
|
||||
pre.syntax .subst
|
||||
{
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
pre.syntax .number,
|
||||
pre.syntax .hexcolor
|
||||
{
|
||||
color: #40a070;
|
||||
color: #40a070;
|
||||
}
|
||||
|
||||
pre.syntax .string,
|
||||
|
@ -293,28 +318,28 @@ pre.syntax .tag .value,
|
|||
pre.syntax .phpdoc,
|
||||
pre.syntax .tex .formula
|
||||
{
|
||||
color: #d14;
|
||||
color: #d14;
|
||||
}
|
||||
|
||||
pre.syntax .title,
|
||||
pre.syntax .id
|
||||
{
|
||||
color: #900;
|
||||
font-weight: bold;
|
||||
color: #900;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
pre.syntax .javascript .title,
|
||||
pre.syntax .lisp .title,
|
||||
pre.syntax .subst
|
||||
{
|
||||
font-weight: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
pre.syntax .class .title,
|
||||
pre.syntax .tex .command
|
||||
{
|
||||
color: #458;
|
||||
font-weight: bold;
|
||||
color: #458;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
pre.syntax .tag,
|
||||
|
@ -323,8 +348,8 @@ pre.syntax .html .keyword,
|
|||
pre.syntax .tag .title,
|
||||
pre.syntax .django .tag .keyword
|
||||
{
|
||||
color: #000080;
|
||||
font-weight: normal;
|
||||
color: #000080;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
pre.syntax .attribute,
|
||||
|
@ -332,18 +357,18 @@ pre.syntax .variable,
|
|||
pre.syntax .instancevar,
|
||||
pre.syntax .lisp .body
|
||||
{
|
||||
color: #008080;
|
||||
color: #008080;
|
||||
}
|
||||
|
||||
pre.syntax .regexp
|
||||
{
|
||||
color: #009926;
|
||||
color: #009926;
|
||||
}
|
||||
|
||||
pre.syntax .class
|
||||
{
|
||||
color: #458;
|
||||
font-weight: bold;
|
||||
color: #458;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
pre.syntax .symbol,
|
||||
|
@ -353,14 +378,14 @@ pre.syntax .ruby .symbol .keymethods,
|
|||
pre.syntax .lisp .keyword,
|
||||
pre.syntax .tex .special
|
||||
{
|
||||
color: #990073;
|
||||
color: #990073;
|
||||
}
|
||||
|
||||
pre.syntax .builtin,
|
||||
pre.syntax .built_in,
|
||||
pre.syntax .lisp .title
|
||||
{
|
||||
color: #0086b3;
|
||||
color: #0086b3;
|
||||
}
|
||||
|
||||
pre.syntax .preprocessor,
|
||||
|
@ -369,96 +394,96 @@ pre.syntax .doctype,
|
|||
pre.syntax .shebang,
|
||||
pre.syntax .cdata
|
||||
{
|
||||
color: #999;
|
||||
font-weight: bold;
|
||||
color: #999;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
pre.syntax .deletion
|
||||
{
|
||||
background: #fdd;
|
||||
background: #fdd;
|
||||
}
|
||||
|
||||
pre.syntax .addition
|
||||
{
|
||||
background: #dfd;
|
||||
background: #dfd;
|
||||
}
|
||||
|
||||
pre.syntax .diff .change
|
||||
{
|
||||
background: #0086b3;
|
||||
background: #0086b3;
|
||||
}
|
||||
|
||||
pre.syntax .chunk
|
||||
{
|
||||
color: #aaa;
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
pre.syntax .tex .formula
|
||||
{
|
||||
opacity: 0.5;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#content .tree li,
|
||||
#content .tree ins
|
||||
{
|
||||
background-color: transparent;
|
||||
background-image: url( ../../img/tree.png );
|
||||
background-repeat: no-repeat;
|
||||
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;
|
||||
background-position: -54px 0;
|
||||
background-repeat: repeat-y;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
#content .tree li.jstree-last
|
||||
{
|
||||
background:transparent;
|
||||
background:transparent;
|
||||
}
|
||||
|
||||
#content .tree .jstree-open > ins
|
||||
{
|
||||
background-position: -36px 0;
|
||||
background-position: -36px 0;
|
||||
}
|
||||
|
||||
#content .tree .jstree-closed > ins
|
||||
{
|
||||
background-position: -18px 0;
|
||||
background-position: -18px 0;
|
||||
}
|
||||
|
||||
#content .tree .jstree-leaf > ins
|
||||
{
|
||||
background-position: 0 0;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
#content .tree .jstree-hovered
|
||||
{
|
||||
background:#e7f4f9; border:1px solid #d8f0fa; padding:0 2px 0 1px;
|
||||
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;
|
||||
background:#beebff; border:1px solid #99defd; padding:0 2px 0 1px;
|
||||
}
|
||||
|
||||
#content .tree a .jstree-icon
|
||||
{
|
||||
background-image: url( ../../img/ico/folder.png );
|
||||
background-image: url( ../../img/ico/folder.png );
|
||||
}
|
||||
|
||||
#content .tree .jstree-leaf a .jstree-icon
|
||||
{
|
||||
background-image: url( ../../img/ico/document-text.png );
|
||||
background-image: url( ../../img/ico/document-text.png );
|
||||
}
|
||||
|
||||
#content .tree .jstree-search
|
||||
{
|
||||
font-style:italic;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
#content .tree a.jstree-search
|
||||
{
|
||||
color:aqua;
|
||||
color:aqua;
|
||||
}
|
|
@ -4,224 +4,224 @@
|
|||
|
||||
#content #cores #frame
|
||||
{
|
||||
float: right;
|
||||
width: 78%;
|
||||
float: right;
|
||||
width: 78%;
|
||||
}
|
||||
|
||||
#content #cores #navigation
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 100% 0;
|
||||
background-repeat: repeat-y;
|
||||
width: 20%;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 100% 0;
|
||||
background-repeat: repeat-y;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#content #cores #list
|
||||
{
|
||||
float: left;
|
||||
padding-top: 15px;
|
||||
width: 100%;
|
||||
float: left;
|
||||
padding-top: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content #cores #list a
|
||||
{
|
||||
border-right: 1px solid #f0f0f0;
|
||||
display: block;
|
||||
margin-left: 1px;
|
||||
padding: 3px 0;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
display: block;
|
||||
margin-left: 1px;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
#content #cores #list a:hover
|
||||
{
|
||||
background-color: #fafafa;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
#content #cores #list .current a
|
||||
{
|
||||
background-color: #fff;
|
||||
border-right-color: #fff;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
font-weight: bold;
|
||||
background-color: #fff;
|
||||
border-right-color: #fff;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#content #cores #frame .actions
|
||||
{
|
||||
margin-bottom: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#content #cores .actions form .buttons
|
||||
{
|
||||
padding-left: 40px;
|
||||
padding-left: 40px;
|
||||
}
|
||||
|
||||
#content #cores .actions form a
|
||||
{
|
||||
display: block;
|
||||
float: left;
|
||||
height: 20px;
|
||||
margin-right: 5px;
|
||||
padding-left: 21px;
|
||||
display: block;
|
||||
float: left;
|
||||
height: 20px;
|
||||
margin-right: 5px;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #cores .actions form a span
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #cores .actions form a.submit
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-position: 50% 50%;
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-position: 50% 50%;
|
||||
}
|
||||
|
||||
#content #cores .actions form a.submit:hover
|
||||
{
|
||||
background-color: #e6f3e6;
|
||||
background-color: #e6f3e6;
|
||||
}
|
||||
|
||||
#content #cores .actions form a.reset
|
||||
{
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
background-position: 50% 50%;
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
background-position: 50% 50%;
|
||||
}
|
||||
|
||||
#content #cores .actions form a.reset:hover
|
||||
{
|
||||
background-color: #f3e6e6;
|
||||
background-color: #f3e6e6;
|
||||
}
|
||||
|
||||
#content #cores .actions form p
|
||||
{
|
||||
padding-bottom: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
#content #cores .actions form label
|
||||
{
|
||||
float: left;
|
||||
width: 40px;
|
||||
float: left;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
#content #cores .actions form input,
|
||||
#content #cores .actions form select
|
||||
{
|
||||
width: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#content #cores .actions form select option.disabled
|
||||
{
|
||||
color: #c0c0c0;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder
|
||||
{
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 5px;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder.active
|
||||
{
|
||||
margin-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder .button
|
||||
{
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #c0c0c0;
|
||||
position: relative;
|
||||
z-index: 100;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #c0c0c0;
|
||||
position: relative;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder.active .button
|
||||
{
|
||||
background-color: #fff;
|
||||
border-bottom-color: #fff;
|
||||
padding-bottom: 5px;
|
||||
background-color: #fff;
|
||||
border-bottom-color: #fff;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder .button a
|
||||
{
|
||||
background-position: 5px 50%;
|
||||
display: block;
|
||||
padding: 1px 5px;
|
||||
padding-left: 24px;
|
||||
background-position: 5px 50%;
|
||||
display: block;
|
||||
padding: 1px 5px;
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder .button a.success
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder.active .button a
|
||||
{
|
||||
cursor: auto;
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder .button-content
|
||||
{
|
||||
background-color: #fff;
|
||||
border: 1px solid #c0c0c0;
|
||||
box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-moz-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-webkit-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
display: none;
|
||||
margin-top: -1px;
|
||||
padding: 5px;
|
||||
padding-top: 15px;
|
||||
position: absolute;
|
||||
z-index: 99;
|
||||
background-color: #fff;
|
||||
border: 1px solid #c0c0c0;
|
||||
box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-moz-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-webkit-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
display: none;
|
||||
margin-top: -1px;
|
||||
padding: 5px;
|
||||
padding-top: 15px;
|
||||
position: absolute;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
#content #cores .actions .button-holder.active .button-content
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #cores .actions .button .reload
|
||||
{
|
||||
background-image: url( ../../img/ico/arrow-circle.png );
|
||||
background-image: url( ../../img/ico/arrow-circle.png );
|
||||
}
|
||||
|
||||
#content #cores .actions .button .rename
|
||||
{
|
||||
background-image: url( ../../img/ico/ui-text-field-select.png );
|
||||
background-image: url( ../../img/ico/ui-text-field-select.png );
|
||||
}
|
||||
|
||||
#content #cores .actions .button .swap
|
||||
{
|
||||
background-image: url( ../../img/ico/arrow-switch.png );
|
||||
background-image: url( ../../img/ico/arrow-switch.png );
|
||||
}
|
||||
|
||||
#content #cores .actions .button .unload
|
||||
{
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
}
|
||||
|
||||
#content #cores .actions .button .optimize
|
||||
{
|
||||
background-image: url( ../../img/ico/hammer-screwdriver.png );
|
||||
display: none;
|
||||
background-image: url( ../../img/ico/hammer-screwdriver.png );
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #cores #navigation .add
|
||||
{
|
||||
background-image: url( ../../img/ico/plus-button.png );
|
||||
background-image: url( ../../img/ico/plus-button.png );
|
||||
}
|
||||
|
||||
#content #cores #navigation .add label
|
||||
{
|
||||
width: 85px;
|
||||
width: 85px;
|
||||
}
|
||||
|
||||
#content #cores #navigation .add input
|
||||
{
|
||||
width: 155px;
|
||||
width: 155px;
|
||||
}
|
||||
|
||||
#content #cores #navigation .add .buttons
|
||||
{
|
||||
padding-left: 85px;
|
||||
padding-left: 85px;
|
||||
}
|
||||
|
||||
#content #cores #data #core-data h2 { background-image: url( ../../img/ico/database.png ); }
|
||||
|
@ -229,44 +229,44 @@
|
|||
|
||||
#content #cores #data #index-data
|
||||
{
|
||||
margin-top: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#content #cores #data li
|
||||
{
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
#content #cores #data li.odd
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
#content #cores #data li dt
|
||||
{
|
||||
float: left;
|
||||
width: 17%;
|
||||
float: left;
|
||||
width: 17%;
|
||||
}
|
||||
|
||||
#content #cores #data li dd
|
||||
{
|
||||
float: right;
|
||||
width: 82%;
|
||||
float: right;
|
||||
width: 82%;
|
||||
}
|
||||
|
||||
#content #cores #data li dd.ico
|
||||
{
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
height: 20px;
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#content #cores #data li dd.ico.ico-1
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #cores #data li dd.ico span
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
|
@ -1,108 +1,108 @@
|
|||
#content #dashboard .block
|
||||
{
|
||||
background-image: none;
|
||||
width: 49%;
|
||||
background-image: none;
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics
|
||||
{
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics dt,
|
||||
#content #dashboard #statistics dd
|
||||
{
|
||||
display: block;
|
||||
float: left;
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics dt
|
||||
{
|
||||
clear: left;
|
||||
margin-right: 2%;
|
||||
text-align: right;
|
||||
width: 23%;
|
||||
clear: left;
|
||||
margin-right: 2%;
|
||||
text-align: right;
|
||||
width: 23%;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics dd
|
||||
{
|
||||
width: 74%;
|
||||
width: 74%;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .index_optimized
|
||||
{
|
||||
margin-top: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .ico
|
||||
{
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
height: 20px;
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .ico.ico-1
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .ico span
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .index_optimized.value a
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .index_optimized.value.ico-0 a
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
background-image: url( ../../img/ico/hammer-screwdriver.png );
|
||||
background-position: 5px 50%;
|
||||
border: 1px solid #c0c0c0;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-left: 50px;
|
||||
padding: 1px 5px;
|
||||
padding-left: 26px;
|
||||
background-color: #f0f0f0;
|
||||
background-image: url( ../../img/ico/hammer-screwdriver.png );
|
||||
background-position: 5px 50%;
|
||||
border: 1px solid #c0c0c0;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-left: 50px;
|
||||
padding: 1px 5px;
|
||||
padding-left: 26px;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .index_has-deletions
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #dashboard #statistics .index_has-deletions.value.ico-0
|
||||
{
|
||||
background-image: url( ../../img/ico/tick-red.png );
|
||||
background-image: url( ../../img/ico/tick-red.png );
|
||||
}
|
||||
|
||||
#content #dashboard #replication
|
||||
{
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #dashboard #replication .is-replicating
|
||||
{
|
||||
background-position: 99% 50%;
|
||||
display: block;
|
||||
background-position: 99% 50%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #dashboard #replication #details table thead td span
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #dashboard #dataimport
|
||||
{
|
||||
float: right;
|
||||
float: right;
|
||||
}
|
||||
|
||||
|
||||
#content #dashboard #admin-extra
|
||||
{
|
||||
float: right;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#content #dashboard #system h2 { background-image: url( ../../img/ico/server.png ); }
|
||||
|
@ -111,4 +111,4 @@
|
|||
#content #dashboard #replication.is-master h2 { background-image: url( ../../img/ico/node-master.png ); }
|
||||
#content #dashboard #replication.is-slave h2 { background-image: url( ../../img/ico/node-slave.png ); }
|
||||
#content #dashboard #dataimport h2 { background-image: url( ../../img/ico/document-import.png ); }
|
||||
#content #dashboard #admin-extra h2 { background-image: url( ../../img/ico/plus-button.png ); }
|
||||
#content #dashboard #admin-extra h2 { background-image: url( ../../img/ico/plus-button.png ); }
|
||||
|
|
|
@ -1,232 +1,232 @@
|
|||
#content #dataimport
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 21% 0;
|
||||
background-repeat: repeat-y;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 21% 0;
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
#content #dataimport #frame
|
||||
{
|
||||
float: right;
|
||||
width: 78%;
|
||||
float: right;
|
||||
width: 78%;
|
||||
}
|
||||
|
||||
#content #dataimport #form
|
||||
{
|
||||
float: left;
|
||||
width: 20%;
|
||||
float: left;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#content #dataimport.error #form form
|
||||
{
|
||||
display: none !important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#content #dataimport #form label
|
||||
{
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#content #dataimport #form input,
|
||||
#content #dataimport #form select,
|
||||
#content #dataimport #form textarea
|
||||
{
|
||||
margin-bottom: 2px;
|
||||
width: 100%;
|
||||
margin-bottom: 2px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content #dataimport #form #start
|
||||
{
|
||||
float: left;
|
||||
margin-right: 2%;
|
||||
width: 49%;
|
||||
float: left;
|
||||
margin-right: 2%;
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
#content #dataimport #form #rows
|
||||
{
|
||||
width: 49%;
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
#content #dataimport #form .checkbox input
|
||||
{
|
||||
margin-bottom: 0;
|
||||
width: auto;
|
||||
margin-bottom: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#content #dataimport #form fieldset,
|
||||
#content #dataimport #form .optional.expanded
|
||||
{
|
||||
border: 1px solid #fff;
|
||||
border-top: 1px solid #c0c0c0;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #fff;
|
||||
border-top: 1px solid #c0c0c0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#content #dataimport #form fieldset legend,
|
||||
#content #dataimport #form .optional.expanded legend
|
||||
{
|
||||
display: block;
|
||||
margin-left: 10px;
|
||||
padding: 0px 5px;
|
||||
display: block;
|
||||
margin-left: 10px;
|
||||
padding: 0px 5px;
|
||||
}
|
||||
|
||||
#content #dataimport #form fieldset legend label
|
||||
{
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#content #dataimport #form .handler
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #dataimport #form .handler ul
|
||||
{
|
||||
list-style: disc;
|
||||
margin-left: 0.7em;
|
||||
padding-left: 0.7em;
|
||||
list-style: disc;
|
||||
margin-left: 0.7em;
|
||||
padding-left: 0.7em;
|
||||
}
|
||||
|
||||
#content #dataimport #form .handler ul li a
|
||||
{
|
||||
color: #c0c0c0;
|
||||
display: block;
|
||||
color: #c0c0c0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #dataimport #form .handler ul li.active a
|
||||
{
|
||||
color: #333;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state
|
||||
{
|
||||
display: none;
|
||||
padding: 10px;
|
||||
margin-bottom: 20px;
|
||||
display: none;
|
||||
padding: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#content #dataimport.error #current_state
|
||||
{
|
||||
display: none !important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state .time,
|
||||
#content #dataimport #current_state .info
|
||||
{
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state .time
|
||||
{
|
||||
color: #c0c0c0;
|
||||
font-size: 11px;
|
||||
color: #c0c0c0;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state .info
|
||||
{
|
||||
background-position: 0 1px;
|
||||
background-position: 0 1px;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state.indexing
|
||||
{
|
||||
background-color: #f9f9f9;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state.success
|
||||
{
|
||||
background-color: #e6f3e6;
|
||||
background-color: #e6f3e6;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state.success .info
|
||||
{
|
||||
background-image: url( ../../img/ico/tick-circle.png );
|
||||
background-image: url( ../../img/ico/tick-circle.png );
|
||||
}
|
||||
|
||||
#content #dataimport #current_state.success .info strong
|
||||
{
|
||||
color: #080;
|
||||
color: #080;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state.failure
|
||||
{
|
||||
background-color: #f3e6e6;
|
||||
background-color: #f3e6e6;
|
||||
}
|
||||
|
||||
#content #dataimport #current_state.failure .info
|
||||
{
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
}
|
||||
|
||||
#content #dataimport #current_state.failure .info strong
|
||||
{
|
||||
color: #800;
|
||||
color: #800;
|
||||
}
|
||||
|
||||
#content #dataimport #config-error
|
||||
{
|
||||
background-color: #f00;
|
||||
background-image: url( ../../img/ico/construction.png );
|
||||
background-position: 10px 50%;
|
||||
color: #fff;
|
||||
display: none;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
padding: 10px;
|
||||
padding-left: 35px;
|
||||
background-color: #f00;
|
||||
background-image: url( ../../img/ico/construction.png );
|
||||
background-position: 10px 50%;
|
||||
color: #fff;
|
||||
display: none;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
padding: 10px;
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
#content #dataimport #config h2
|
||||
{
|
||||
border-color: #c0c0c0;
|
||||
padding-left: 5px;
|
||||
position: relative;
|
||||
border-color: #c0c0c0;
|
||||
padding-left: 5px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #dataimport #config.hidden h2
|
||||
{
|
||||
border-color: #fafafa;
|
||||
border-color: #fafafa;
|
||||
}
|
||||
|
||||
#content #dataimport #config h2 a.toggle
|
||||
{
|
||||
background-image: url( ../../img/ico/toggle-small.png );
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-image: url( ../../img/ico/toggle-small.png );
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #dataimport #config.hidden h2 a.toggle
|
||||
{
|
||||
background-image: url( ../../img/ico/toggle-small-expand.png );
|
||||
background-image: url( ../../img/ico/toggle-small-expand.png );
|
||||
}
|
||||
|
||||
#content #dataimport #config h2 a.reload_config
|
||||
{
|
||||
background-image: url( ../../img/ico/arrow-circle.png );
|
||||
padding-left: 21px;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
background-image: url( ../../img/ico/arrow-circle.png );
|
||||
padding-left: 21px;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
#content #dataimport #config h2 a.reload_config.success
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #dataimport #config h2 a.reload_config.error
|
||||
{
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
}
|
||||
|
||||
#content #dataimport #config.hidden .content
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #dataimport #dataimport_config .loader
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
|
@ -1,158 +1,195 @@
|
|||
#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;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #index #data
|
||||
#content #index .index-left
|
||||
{
|
||||
float: left;
|
||||
width: 74%;
|
||||
float: left;
|
||||
width: 55%;
|
||||
}
|
||||
|
||||
#content #index #memory
|
||||
#content #index .index-right
|
||||
{
|
||||
float: right;
|
||||
width: 24%;
|
||||
float: right;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
#content #index #data h2 { background-image: url( ../../img/ico/server.png ); }
|
||||
#content #index #memory h2 { background-image: url( ../../img/ico/battery.png ); }
|
||||
|
||||
#content #index #data li
|
||||
#content #index .data li
|
||||
{
|
||||
display: none;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
display: none;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
#content #index #data li.odd
|
||||
#content #index .data li.odd
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #index #data li dt
|
||||
#content #index .data li dt
|
||||
{
|
||||
float: left;
|
||||
width: 27%;
|
||||
float: left;
|
||||
white-space: nowrap;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#content #index #data li dd
|
||||
#content #index .data li dd
|
||||
{
|
||||
float: right;
|
||||
width: 72%
|
||||
float: right;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
width: 80%
|
||||
}
|
||||
|
||||
#content #index #data li dd.odd
|
||||
#content #index .data li dd.odd
|
||||
{
|
||||
color: #999;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
#content #index #data dt span
|
||||
#content #index .data dt span
|
||||
{
|
||||
background-position: 0 50%;
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
background-position: 1px 50%;
|
||||
display: block;
|
||||
padding-left: 22px;
|
||||
}
|
||||
|
||||
#content #index #data .start_time dt span
|
||||
#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 #instance .host dt span { background-image: url( ../../img/ico/globe.png ); }
|
||||
#content #index #instance .dir dt span { background-image: url( ../../img/ico/folder.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
|
||||
{
|
||||
background-image: url( ../../img/ico/clock-select.png );
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #index #data .host dt span
|
||||
#content #index #system .reload
|
||||
{
|
||||
background-image: url( ../../img/ico/globe.png );
|
||||
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 #data .cwd dt span
|
||||
#content #index #system .reload.loader
|
||||
{
|
||||
background-image: url( ../../img/ico/folder-export.png );
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#content #index #data .jvm dt span
|
||||
#content #index #system .reload span
|
||||
{
|
||||
background-image: url( ../../img/ico/jar.png );
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #index #data .command_line_args dt span
|
||||
#content #index #system .content p
|
||||
{
|
||||
background-image: url( ../../img/ico/terminal.png );
|
||||
margin-top: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #index #data .lucene dt span
|
||||
#content #index #system .content .no-info
|
||||
{
|
||||
background-image: url( ../../img/lucene-ico.png );
|
||||
color: #c0c0c0;
|
||||
display: none;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#content #index #memory #memory-bar
|
||||
{
|
||||
background-color: #00f;
|
||||
box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-moz-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-webkit-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
margin-top: 20px;
|
||||
width: 100px;
|
||||
}
|
||||
#content #index #jvm-memory h2 { background-image: url( ../../img/ico/memory.png ); }
|
||||
|
||||
#content #index #memory .bar
|
||||
#content #index #jvm-memory-bar
|
||||
{
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content #index #memory div .value
|
||||
{
|
||||
border-top: 1px solid #f00;
|
||||
display: block;
|
||||
font-size: 10px;
|
||||
line-height: 12px;
|
||||
padding-left: 10px;
|
||||
padding-right: 2px;
|
||||
position: absolute;
|
||||
margin-left: 100px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#content #index #memory div .value.upper
|
||||
{
|
||||
border-top-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
#content #index #memory #memory-bar-max
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
height: 200px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #index #memory #memory-bar-max .value
|
||||
{
|
||||
border-color: #f0f0f0;
|
||||
color: #d6d6d6;
|
||||
}
|
||||
|
||||
#content #index #memory #memory-bar-total
|
||||
{
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #index #memory #memory-bar-total .value
|
||||
{
|
||||
border-color: #c0c0c0;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #index #memory #memory-bar-used
|
||||
{
|
||||
background-color: #969696;
|
||||
}
|
||||
|
||||
#content #index #memory #memory-bar-used .value
|
||||
{
|
||||
border-color: #969696;
|
||||
color: #969696;
|
||||
margin-top: 20px;
|
||||
}
|
|
@ -1,33 +1,33 @@
|
|||
#content #java-properties .loader
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #java-properties li
|
||||
{
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
#content #java-properties li.odd
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
#content #java-properties li dt
|
||||
{
|
||||
float: left;
|
||||
width: 29%;
|
||||
float: left;
|
||||
width: 29%;
|
||||
}
|
||||
|
||||
#content #java-properties li dd
|
||||
{
|
||||
float: right;
|
||||
width: 70%
|
||||
float: right;
|
||||
width: 70%
|
||||
}
|
||||
|
||||
#content #java-properties li dd.odd
|
||||
{
|
||||
color: #999;
|
||||
color: #999;
|
||||
}
|
|
@ -1,150 +1,185 @@
|
|||
#content #logging .loader
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #logging .jstree
|
||||
{
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #logging .jstree a
|
||||
{
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
#content #logging .jstree .trigger span
|
||||
{
|
||||
background-position: 100% 50%;
|
||||
cursor: pointer;
|
||||
padding-right: 21px;
|
||||
}
|
||||
|
||||
#content #logging .jstree a.trigger:hover span
|
||||
{
|
||||
background-image: url( ../../img/ico/pencil-small.png );
|
||||
}
|
||||
|
||||
#content #logging .jstree .inactive,
|
||||
#content #logging .jstree .inactive .effective_level
|
||||
{
|
||||
color: #c0c0c0;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #logging .jstree li
|
||||
{
|
||||
position: relative;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #logging .jstree .odd
|
||||
#content #logging .jstree a
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
color: #c0c0c0;
|
||||
height: 17px;
|
||||
line-height: 17px;
|
||||
padding: 0;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel
|
||||
#content #logging .jstree a.set
|
||||
{
|
||||
position: absolute;
|
||||
margin-top: 3px;
|
||||
top: 0;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#content #logging .jstree li .loglevel { left: 340px; }
|
||||
#content #logging .jstree li li .loglevel { left: 322px; }
|
||||
#content #logging .jstree li li li .loglevel { left: 304px; }
|
||||
#content #logging .jstree li li li li .loglevel { left: 286px; }
|
||||
#content #logging .jstree li li li li li .loglevel { left: 268px; }
|
||||
#content #logging .jstree li li li li li li .loglevel { left: 250px; }
|
||||
|
||||
#content #logging .jstree .loglevel a
|
||||
#content #logging .jstree a.null
|
||||
{
|
||||
display: block;
|
||||
color: #f0f0f0;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel .effective_level
|
||||
#content #logging .jstree a:hover,
|
||||
#content #logging .jstree a.open
|
||||
{
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
padding-left: 5px;
|
||||
width: 150px;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel.open .effective_level
|
||||
#content #logging .jstree a:hover
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
color: #008;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel.open .effective_level
|
||||
#content #logging .jstree a span.ns
|
||||
{
|
||||
background-image: url( ../../img/ico/arrow-000-small.png );
|
||||
background-position: 75px 50%;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel.open .effective_level span
|
||||
#content #logging.ns .jstree a span.ns
|
||||
{
|
||||
background-image: none;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel ul
|
||||
#content #logging .jstree a span.name
|
||||
{
|
||||
background-color: #fff;
|
||||
border: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 100px;
|
||||
top: 0;
|
||||
background-position: 100% 50%;
|
||||
cursor: pointer;
|
||||
padding-right: 21px;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel.open ul
|
||||
#content #logging .jstree a:hover span.name
|
||||
{
|
||||
display: block;
|
||||
background-image: url( ../../img/ico/pencil-small.png );
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel ul li
|
||||
#content #logging .jstree .selector-holder
|
||||
{
|
||||
background-image: none;
|
||||
line-height: auto;
|
||||
margin-left: 0;
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
z-index: 700;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel ul li a
|
||||
#content #logging .jstree .selector-holder.open
|
||||
{
|
||||
background-image: url( ../../img/ico/ui-radio-button-uncheck.png );
|
||||
background-position: 2px 50%;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
padding-left: 21px;
|
||||
padding-right: 5px;
|
||||
background-color: #fff;
|
||||
margin-left: -19px;
|
||||
z-index: 800;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel ul li.selected a
|
||||
#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 .selector
|
||||
{
|
||||
background-image: url( ../../img/ico/ui-radio-button.png );
|
||||
border: 1px solid #fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel ul li a:hover
|
||||
#content #logging .jstree .open .selector
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
color: #008;
|
||||
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 .loglevel ul li.unset
|
||||
#content #logging .jstree .selector a
|
||||
{
|
||||
border-top: 1px solid #f0f0f0;
|
||||
display: block;
|
||||
padding: 2px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel ul li.unset a
|
||||
#content #logging .jstree .selector .close
|
||||
{
|
||||
background-image: url( ../../img/ico/cross-0.png );
|
||||
background-position: 4px 50%;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #logging .jstree .loglevel ul li.unset a:hover
|
||||
#content #logging .jstree .open .selector .close
|
||||
{
|
||||
background-image: url( ../../img/ico/cross-1.png );
|
||||
color: #800;
|
||||
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 .selector ul
|
||||
{
|
||||
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;
|
||||
}
|
|
@ -1,219 +1,219 @@
|
|||
#menu-wrapper
|
||||
{
|
||||
float: left;
|
||||
width: 20%;
|
||||
float: left;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#menu p.loader
|
||||
{
|
||||
background-position: 5px 50%;
|
||||
color: #c0c0c0;
|
||||
margin-top: 5px;
|
||||
padding-left: 26px;
|
||||
background-position: 5px 50%;
|
||||
color: #c0c0c0;
|
||||
margin-top: 5px;
|
||||
padding-left: 26px;
|
||||
}
|
||||
|
||||
#menu a
|
||||
{
|
||||
display: block;
|
||||
padding: 4px 2px;
|
||||
display: block;
|
||||
padding: 4px 2px;
|
||||
}
|
||||
|
||||
#menu .active
|
||||
{
|
||||
background-color: #fafafa;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
#menu p a
|
||||
{
|
||||
background-position: 97% 50%;
|
||||
background-image: url( ../../img/ico/status-offline.png );
|
||||
padding-left: 5px;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
background-position: 97% 50%;
|
||||
background-image: url( ../../img/ico/status-offline.png );
|
||||
padding-left: 5px;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
#menu p a:hover
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
#menu .active p a
|
||||
{
|
||||
background-color: #c0c0c0; /* #a5a5a6 */
|
||||
font-weight: bold;
|
||||
background-color: #c0c0c0; /* #a5a5a6 */
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#menu p a small
|
||||
{
|
||||
color: #b5b5b5;
|
||||
font-weight: normal;
|
||||
color: #b5b5b5;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#menu p a small span.txt
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu p a small:hover span.txt
|
||||
{
|
||||
display: inline;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#menu .busy
|
||||
{
|
||||
border-right-color: #f6f5d9;
|
||||
border-right-color: #f6f5d9;
|
||||
}
|
||||
|
||||
#menu .busy p a
|
||||
{
|
||||
background-color: #f6f5d9;
|
||||
background-image: url( ../../img/ico/status-away.png );
|
||||
background-color: #f6f5d9;
|
||||
background-image: url( ../../img/ico/status-away.png );
|
||||
}
|
||||
|
||||
#menu .offline
|
||||
{
|
||||
border-right-color: #eccfcf;
|
||||
border-right-color: #eccfcf;
|
||||
}
|
||||
|
||||
#menu .offline p a
|
||||
{
|
||||
background-color: #eccfcf;
|
||||
background-image: url( ../../img/ico/status-busy.png );
|
||||
background-color: #eccfcf;
|
||||
background-image: url( ../../img/ico/status-busy.png );
|
||||
}
|
||||
|
||||
#menu .online
|
||||
{
|
||||
border-right-color: #cfecd3;
|
||||
border-right-color: #cfecd3;
|
||||
}
|
||||
|
||||
#menu .online p a
|
||||
{
|
||||
background-color: #cfecd3;
|
||||
background-image: url( ../../img/ico/status.png );
|
||||
background-color: #cfecd3;
|
||||
background-image: url( ../../img/ico/status.png );
|
||||
}
|
||||
|
||||
#menu .ping small
|
||||
{
|
||||
color: #000
|
||||
color: #000
|
||||
}
|
||||
|
||||
#menu li
|
||||
{
|
||||
border-bottom: 1px solid #c0c0c0;
|
||||
border-bottom: 1px solid #c0c0c0;
|
||||
}
|
||||
|
||||
#menu li p
|
||||
{
|
||||
border-right: 1px solid #c0c0c0;
|
||||
border-right: 1px solid #c0c0c0;
|
||||
}
|
||||
|
||||
#menu li.optional
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu li.active:last-child
|
||||
{
|
||||
border-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
#menu ul ul
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 100% 0;
|
||||
background-repeat: repeat-y;
|
||||
display: none;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 10px;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 100% 0;
|
||||
background-repeat: repeat-y;
|
||||
display: none;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#menu ul .active ul
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#menu ul li.active:last-child ul
|
||||
{
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
#menu ul ul li
|
||||
{
|
||||
border-bottom: 0;
|
||||
/*border-right: 0;*/
|
||||
border-right: 1px solid #f0f0f0;
|
||||
border-bottom: 0;
|
||||
/*border-right: 0;*/
|
||||
border-right: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
#menu ul ul li a
|
||||
{
|
||||
background-position: 7px 50%;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
color: #bbb;
|
||||
margin-left: 15px;
|
||||
padding-left: 26px;
|
||||
background-position: 7px 50%;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
color: #bbb;
|
||||
margin-left: 15px;
|
||||
padding-left: 26px;
|
||||
}
|
||||
|
||||
#menu ul ul li:last-child a
|
||||
{
|
||||
border-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
#menu ul ul li a:hover
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
color: #333;
|
||||
background-color: #f0f0f0;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#menu ul ul li.active
|
||||
{
|
||||
background-color: #fff;
|
||||
border-right-color: #fff;
|
||||
background-color: #fff;
|
||||
border-right-color: #fff;
|
||||
}
|
||||
|
||||
#menu ul ul li.active a
|
||||
{
|
||||
color: #333;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#menu ul ul li.active a:hover
|
||||
{
|
||||
background-color: transparent;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#menu .global p a
|
||||
{
|
||||
background-position: 5px 50%;
|
||||
padding-left: 26px;
|
||||
background-position: 5px 50%;
|
||||
padding-left: 26px;
|
||||
}
|
||||
|
||||
#menu #index p a
|
||||
{
|
||||
background-image: url( ../../img/ico/dashboard.png );
|
||||
background-image: url( ../../img/ico/dashboard.png );
|
||||
}
|
||||
|
||||
#menu #logging p a
|
||||
{
|
||||
background-image: url( ../../img/ico/inbox-document-text.png );
|
||||
background-image: url( ../../img/ico/inbox-document-text.png );
|
||||
}
|
||||
|
||||
#menu #java-properties p a
|
||||
{
|
||||
background-image: url( ../../img/ico/jar.png );
|
||||
background-image: url( ../../img/ico/jar.png );
|
||||
}
|
||||
|
||||
#menu #threads p a
|
||||
{
|
||||
background-image: url( ../../img/ico/ui-accordion.png );
|
||||
background-image: url( ../../img/ico/ui-accordion.png );
|
||||
}
|
||||
|
||||
#menu #cores p a
|
||||
{
|
||||
background-image: url( ../../img/ico/databases.png );
|
||||
background-image: url( ../../img/ico/databases.png );
|
||||
}
|
||||
|
||||
#menu #cloud p a
|
||||
{
|
||||
background-image: url( ../../img/ico/network-cloud.png );
|
||||
background-image: url( ../../img/ico/network-cloud.png );
|
||||
}
|
||||
|
||||
#menu .query a { background-image: url( ../../img/ico/magnifier.png ); }
|
||||
|
@ -230,13 +230,13 @@
|
|||
|
||||
#menu .ping.error
|
||||
{
|
||||
background-color: #f7f7e9;
|
||||
background-color: #ffcccc;
|
||||
background-color: #f7f7e9;
|
||||
background-color: #ffcccc;
|
||||
}
|
||||
|
||||
#menu .ping.error a
|
||||
{
|
||||
background-color: transparent;
|
||||
background-image: url( ../../img/ico/system-monitor--exclamation.png );
|
||||
cursor: help;
|
||||
background-color: transparent;
|
||||
background-image: url( ../../img/ico/system-monitor--exclamation.png );
|
||||
cursor: help;
|
||||
}
|
|
@ -1,19 +1,19 @@
|
|||
#content #plugins #navigation
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 100% 0;
|
||||
background-repeat: repeat-y;
|
||||
width: 20%;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 100% 0;
|
||||
background-repeat: repeat-y;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#content #plugins #navigation a
|
||||
{
|
||||
background-position: 0 50%;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
display: block;
|
||||
margin-left: 1px;
|
||||
padding: 3px 0;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
border-right: 1px solid #f0f0f0;
|
||||
display: block;
|
||||
margin-left: 1px;
|
||||
padding: 3px 0;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #plugins #navigation .cache a { background-image: url( ../../img/ico/disk-black.png ); }
|
||||
|
@ -25,104 +25,104 @@
|
|||
|
||||
#content #plugins #navigation a:hover
|
||||
{
|
||||
background-color: #fafafa;
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
#content #plugins #navigation .current a
|
||||
{
|
||||
background-color: #fff;
|
||||
border-right-color: #fff;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
font-weight: bold;
|
||||
background-color: #fff;
|
||||
border-right-color: #fff;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#content #plugins #frame
|
||||
{
|
||||
float: right;
|
||||
width: 78%;
|
||||
float: right;
|
||||
width: 78%;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry
|
||||
{
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry:last-child
|
||||
{
|
||||
margin-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry a
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small-expand.png );
|
||||
background-position: 0 50%;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
padding-left: 21px;
|
||||
background-image: url( ../../img/ico/chevron-small-expand.png );
|
||||
background-position: 0 50%;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry.expanded a
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small.png );
|
||||
background-image: url( ../../img/ico/chevron-small.png );
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry.expanded ul
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry ul
|
||||
{
|
||||
display: none;
|
||||
padding-top: 5px;
|
||||
margin-left: 21px;
|
||||
display: none;
|
||||
padding-top: 5px;
|
||||
margin-left: 21px;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry li
|
||||
{
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry li.stats
|
||||
{
|
||||
border-top: 1px solid #c0c0c0;
|
||||
margin-top: 5px;
|
||||
padding-top: 5px;
|
||||
border-top: 1px solid #c0c0c0;
|
||||
margin-top: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry li.odd
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry dt,
|
||||
#content #plugins #frame .entry .stats span
|
||||
{
|
||||
float: left;
|
||||
width: 11%;
|
||||
float: left;
|
||||
width: 11%;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry dd,
|
||||
#content #plugins #frame .entry .stats ul
|
||||
{
|
||||
float: right;
|
||||
width: 88%;
|
||||
float: right;
|
||||
width: 88%;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry .stats ul
|
||||
{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry .stats dt
|
||||
{
|
||||
width: 27%;
|
||||
width: 27%;
|
||||
}
|
||||
|
||||
#content #plugins #frame .entry .stats dd
|
||||
{
|
||||
width: 72%;
|
||||
width: 72%;
|
||||
}
|
|
@ -1,132 +1,132 @@
|
|||
#content #query
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 22% 0;
|
||||
background-repeat: repeat-y;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 22% 0;
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
#content #query #form
|
||||
{
|
||||
float: left;
|
||||
width: 21%;
|
||||
float: left;
|
||||
width: 21%;
|
||||
}
|
||||
|
||||
#content #query #form label
|
||||
{
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#content #query #form input,
|
||||
#content #query #form select,
|
||||
#content #query #form textarea
|
||||
{
|
||||
margin-bottom: 2px;
|
||||
width: 100%;
|
||||
margin-bottom: 2px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content #query #form #start
|
||||
{
|
||||
float: left;
|
||||
margin-right: 2%;
|
||||
width: 49%;
|
||||
float: left;
|
||||
margin-right: 2%;
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
#content #query #form #rows
|
||||
{
|
||||
width: 49%;
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
#content #query #form .checkbox input
|
||||
{
|
||||
margin-bottom: 0;
|
||||
width: auto;
|
||||
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: 10px;
|
||||
border: 1px solid #fff;
|
||||
border-top: 1px solid #c0c0c0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#content #query #form fieldset legend,
|
||||
#content #query #form .optional.expanded legend
|
||||
{
|
||||
display: block;
|
||||
margin-left: 10px;
|
||||
padding: 0px 5px;
|
||||
display: block;
|
||||
margin-left: 10px;
|
||||
padding: 0px 5px;
|
||||
}
|
||||
|
||||
#content #query #form fieldset legend label
|
||||
{
|
||||
margin-top: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#content #query #form fieldset .fieldset
|
||||
{
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
margin-bottom: 5px;
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
margin-bottom: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #query #form .optional
|
||||
{
|
||||
border: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#content #query #form .optional .fieldset
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #query #form .optional legend
|
||||
{
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#content #query #form .optional.expanded .fieldset
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #query #result
|
||||
{
|
||||
display: none;
|
||||
float: right;
|
||||
width: 77%;
|
||||
display: none;
|
||||
float: right;
|
||||
width: 77%;
|
||||
}
|
||||
|
||||
#content #query #result #url
|
||||
{
|
||||
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;
|
||||
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 #query #result #url:focus,
|
||||
#content #query #result #url: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;
|
||||
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;
|
||||
}
|
||||
|
||||
#content #query #result #response
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,164 +1,164 @@
|
|||
#content #replication
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 21% 0;
|
||||
background-repeat: repeat-y;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 21% 0;
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
#content #replication #frame
|
||||
{
|
||||
float: right;
|
||||
width: 78%;
|
||||
float: right;
|
||||
width: 78%;
|
||||
}
|
||||
|
||||
#content #replication #navigation
|
||||
{
|
||||
float: left;
|
||||
width: 20%;
|
||||
float: left;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#content #replication #error
|
||||
{
|
||||
background-color: #f00;
|
||||
background-image: url( ../../img/ico/construction.png );
|
||||
background-position: 10px 50%;
|
||||
color: #fff;
|
||||
display: none;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
padding: 10px;
|
||||
padding-left: 35px;
|
||||
background-color: #f00;
|
||||
background-image: url( ../../img/ico/construction.png );
|
||||
background-position: 10px 50%;
|
||||
color: #fff;
|
||||
display: none;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
padding: 10px;
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
#content #replication .block
|
||||
{
|
||||
border-bottom: 1px solid #c0c0c0;
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 20px;
|
||||
border-bottom: 1px solid #c0c0c0;
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
#content #replication .block.last
|
||||
{
|
||||
border-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
#content #replication .masterOnly,
|
||||
#content #replication .slaveOnly
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #replication.master .masterOnly
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #replication.slave .slaveOnly
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #replication .replicating
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #replication.replicating .replicating
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #replication #progress
|
||||
{
|
||||
padding-bottom: 80px;
|
||||
position: relative;
|
||||
padding-bottom: 80px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #replication #progress .info
|
||||
{
|
||||
padding: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#content #replication #progress #start
|
||||
{
|
||||
margin-left: 100px;
|
||||
border-left: 1px solid #c0c0c0;
|
||||
margin-left: 100px;
|
||||
border-left: 1px solid #c0c0c0;
|
||||
}
|
||||
|
||||
#content #replication #progress #bar
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
margin-left: 100px;
|
||||
margin-right: 100px;
|
||||
position: relative;
|
||||
background-color: #f0f0f0;
|
||||
margin-left: 100px;
|
||||
margin-right: 100px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #replication #progress #bar #bar-info,
|
||||
#content #replication #progress #bar #eta
|
||||
{
|
||||
position: absolute;
|
||||
right: -100px;
|
||||
width: 100px;
|
||||
position: absolute;
|
||||
right: -100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#content #replication #progress #bar #bar-info
|
||||
{
|
||||
border-left: 1px solid #f0f0f0;
|
||||
margin-top: 30px;
|
||||
border-left: 1px solid #f0f0f0;
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
#content #replication #progress #eta .info
|
||||
{
|
||||
color: #c0c0c0;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
color: #c0c0c0;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
#content #replication #progress #speed
|
||||
{
|
||||
color: #c0c0c0;
|
||||
position: absolute;
|
||||
right: 100px;
|
||||
top: 0;
|
||||
color: #c0c0c0;
|
||||
position: absolute;
|
||||
right: 100px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#content #replication #progress #bar #done
|
||||
{
|
||||
background-color: #c0c0c0;
|
||||
box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-moz-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-webkit-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
height: 30px;
|
||||
position: relative;
|
||||
background-color: #c0c0c0;
|
||||
box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-moz-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-webkit-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
height: 30px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#content #replication #progress #bar #done .percent
|
||||
{
|
||||
font-weight: bold;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#content #replication #progress #bar #done #done-info
|
||||
{
|
||||
border-right: 1px solid #c0c0c0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
margin-top: 30px;
|
||||
text-align: right;
|
||||
width: 100px;
|
||||
border-right: 1px solid #c0c0c0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
margin-top: 30px;
|
||||
text-align: right;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#content #replication #progress #bar #done #done-info .percent
|
||||
{
|
||||
font-weight: bold;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#content #replication .block .label,
|
||||
|
@ -166,149 +166,144 @@
|
|||
#content #replication #current-file .progress,
|
||||
#content #replication #iterations .iterations
|
||||
{
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #replication .block .label
|
||||
{
|
||||
width: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#content #replication .block .label span
|
||||
{
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #replication #current-file
|
||||
{
|
||||
border-top: 1px solid #f0f0f0;
|
||||
margin-top: 10px;
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
margin-top: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
#content #replication #current-file .progress
|
||||
{
|
||||
color: #c0c0c0;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#content #replication #iterations
|
||||
{
|
||||
display: none;
|
||||
color: #c0c0c0;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#content #replication #iterations .label span
|
||||
{
|
||||
background-image: url( ../../img/ico/node-design.png );
|
||||
background-image: url( ../../img/ico/node-design.png );
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations li
|
||||
{
|
||||
background-position: 100% 50%;
|
||||
display: none;
|
||||
padding-right: 21px;
|
||||
background-position: 100% 50%;
|
||||
display: none;
|
||||
padding-right: 21px;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations.expanded li
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations .latest
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations .replicated
|
||||
{
|
||||
color: #80c480;
|
||||
color: #80c480;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations ul:hover .replicated,
|
||||
#content #replication #iterations .iterations .replicated.latest
|
||||
{
|
||||
color: #080;
|
||||
color: #080;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations .replicated.latest
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations .failed
|
||||
{
|
||||
color: #c48080;
|
||||
color: #c48080;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations ul:hover .failed,
|
||||
#content #replication #iterations .iterations .failed.latest
|
||||
{
|
||||
color: #800;
|
||||
color: #800;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations .failed.latest
|
||||
{
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations a
|
||||
{
|
||||
border-top: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
margin-top: 2px;
|
||||
padding-top: 2px;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
margin-top: 2px;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations a span
|
||||
{
|
||||
background-position: 0 50%;
|
||||
color: #c0c0c0;
|
||||
display: none;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
color: #c0c0c0;
|
||||
display: none;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations a span.expand
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small-expand.png );
|
||||
display: block;
|
||||
background-image: url( ../../img/ico/chevron-small-expand.png );
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations.expanded a span.expand
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #replication #iterations .iterations.expanded a span.collapse
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small.png );
|
||||
display: block;
|
||||
background-image: url( ../../img/ico/chevron-small.png );
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #replication #details table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
#content #replication #details table th
|
||||
{
|
||||
text-align: left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#content #replication.slave #details table .slaveOnly
|
||||
{
|
||||
display: table-row;
|
||||
display: table-row;
|
||||
}
|
||||
|
||||
#content #replication #details table thead th
|
||||
{
|
||||
color: #c0c0c0;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #replication #details table thead th,
|
||||
#content #replication #details table tbody td
|
||||
{
|
||||
padding-right: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
#content #replication #details table thead td,
|
||||
|
@ -316,148 +311,187 @@
|
|||
#content #replication #details table tbody th,
|
||||
#content #replication #details table tbody td div
|
||||
{
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
#content #replication #details table tbody td,
|
||||
#content #replication #details table tbody th
|
||||
{
|
||||
border-top: 1px solid #f0f0f0;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
#content #replication #details table thead td
|
||||
{
|
||||
width: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#content #replication #details table thead td span
|
||||
{
|
||||
background-image: url( ../../img/ico/clipboard-list.png );
|
||||
background-position: 0 50%;
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
background-image: url( ../../img/ico/clipboard-list.png );
|
||||
background-position: 0 50%;
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #replication #details table tbody th
|
||||
{
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#content #replication #details table tbody .size
|
||||
{
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#content #replication #details table tbody .generation div
|
||||
{
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#content #replication #details table tbody .diff div
|
||||
{
|
||||
background-color: #fcfcc9;
|
||||
padding-left: 1px;
|
||||
padding-right: 1px;
|
||||
background-color: #fcfcc9;
|
||||
padding-left: 1px;
|
||||
padding-right: 1px;
|
||||
}
|
||||
|
||||
#content #replication .settings .label span
|
||||
{
|
||||
background-image: url( ../../img/ico/hammer-screwdriver.png );
|
||||
background-image: url( ../../img/ico/hammer-screwdriver.png );
|
||||
}
|
||||
|
||||
#content #replication .settings ul,
|
||||
#content #replication .settings dl dt,
|
||||
#content #replication .settings dl dd
|
||||
{
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #replication .settings ul li
|
||||
{
|
||||
border-top: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
padding-top: 3px;
|
||||
padding-top: 3px;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
padding-top: 3px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
#content #replication .settings ul li:first-child
|
||||
{
|
||||
border-top: 0;
|
||||
padding-top: 0;
|
||||
border-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
#content #replication .settings dl dt
|
||||
{
|
||||
clear: left;
|
||||
margin-right: 5px;
|
||||
width: 120px;
|
||||
clear: left;
|
||||
margin-right: 5px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
#content #replication .settings dl .ico
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #replication .settings dl .ico.ico-0
|
||||
{
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
}
|
||||
|
||||
#content #replication .settings dl .ico.ico-1
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #replication .timer
|
||||
{
|
||||
box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-moz-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
-webkit-box-shadow: 5px 5px 10px #c0c0c0;
|
||||
display: none;
|
||||
margin-bottom: 20px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#content #replication .timer p,
|
||||
#content #replication .timer small
|
||||
{
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #replication .timer p
|
||||
{
|
||||
background-image: url( ../../img/ico/clock-select-remain.png );
|
||||
background-position: 0 50%;
|
||||
}
|
||||
|
||||
#content #replication .timer p .approx
|
||||
{
|
||||
color: #c0c0c0;
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
#content #replication .timer p .tick
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#content #replication .timer small
|
||||
{
|
||||
color: #c0c0c0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #replication #navigation button
|
||||
{
|
||||
background-position: 2px 50%;
|
||||
margin-bottom: 10px;
|
||||
padding-left: 21px;
|
||||
background-position: 2px 50%;
|
||||
margin-bottom: 10px;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #replication #navigation button.optional
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #replication #navigation .replicate-now
|
||||
{
|
||||
background-image: url( ../../img/ico/document-convert.png );
|
||||
background-image: url( ../../img/ico/document-convert.png );
|
||||
}
|
||||
|
||||
#content #replication #navigation .abort-replication
|
||||
{
|
||||
background-color: #800;
|
||||
background-image: url( ../../img/ico/hand.png );
|
||||
border-color: #800;
|
||||
color: #fff;
|
||||
background-color: #800;
|
||||
background-image: url( ../../img/ico/hand.png );
|
||||
border-color: #800;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#content #replication #navigation .disable-polling
|
||||
{
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
}
|
||||
|
||||
#content #replication #navigation .enable-polling
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #replication #navigation .disable-replication
|
||||
{
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
background-image: url( ../../img/ico/cross.png );
|
||||
}
|
||||
|
||||
#content #replication #navigation .enable-replication
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #replication #navigation .refresh-status
|
||||
{
|
||||
background-image: url( ../../img/ico/arrow-circle.png );
|
||||
background-image: url( ../../img/ico/arrow-circle.png );
|
||||
}
|
|
@ -1,76 +1,76 @@
|
|||
#content #schema-browser .loader
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #schema-browser.loaded
|
||||
{
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 21% 0;
|
||||
background-repeat: repeat-y;
|
||||
background-image: url( ../../img/div.gif );
|
||||
background-position: 21% 0;
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
#content #schema-browser #data
|
||||
{
|
||||
float: right;
|
||||
width: 78%;
|
||||
float: right;
|
||||
width: 78%;
|
||||
}
|
||||
|
||||
#content #schema-browser #related
|
||||
{
|
||||
float: left;
|
||||
width: 20%;
|
||||
float: left;
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#content #schema-browser #related select
|
||||
{
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content #schema-browser #related select optgroup
|
||||
{
|
||||
font-style: normal;
|
||||
padding: 5px;
|
||||
font-style: normal;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #related select option
|
||||
{
|
||||
padding-left: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
#content #schema-browser #related #f-df-t
|
||||
{
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
#content #schema-browser #related dl
|
||||
{
|
||||
margin-top: 15px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
#content #schema-browser #related dl dt,
|
||||
#content #schema-browser #related dl dd a
|
||||
{
|
||||
color: #c0c0c0;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #schema-browser #related dl dt
|
||||
{
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #related dl dd a
|
||||
{
|
||||
display: block;
|
||||
padding-left: 10px;
|
||||
display: block;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
#content #schema-browser #related dl dd a:hover
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
#content #schema-browser #related .field .field,
|
||||
|
@ -82,264 +82,346 @@
|
|||
#content #schema-browser #related .active,
|
||||
#content #schema-browser #related .active a
|
||||
{
|
||||
color: #333;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#content #schema-browser #related .copyfield,
|
||||
#content #schema-browser #related .copyfield a
|
||||
{
|
||||
color: #666;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#content #schema-browser #data
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #index dt
|
||||
{
|
||||
display: none;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
width: 150px;
|
||||
display: none;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options
|
||||
{
|
||||
margin-bottom: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .head h2
|
||||
{
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .options dt,
|
||||
#content #schema-browser #data #field .field-options .options dd
|
||||
{
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .options dt
|
||||
{
|
||||
clear: left;
|
||||
display: none;
|
||||
margin-right: 5px;
|
||||
width: 100px;
|
||||
clear: left;
|
||||
display: none;
|
||||
margin-right: 5px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .options dd
|
||||
{
|
||||
margin-right: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer,
|
||||
#content #schema-browser #data #field .field-options .analyzer li,
|
||||
#content #schema-browser #data #field .field-options .analyzer ul,
|
||||
#content #schema-browser #data #field .field-options .analyzer ul li
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer p,
|
||||
#content #schema-browser #data #field .field-options .analyzer dl
|
||||
{
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer p
|
||||
{
|
||||
margin-right: 5px;
|
||||
text-align: right;
|
||||
width: 100px;
|
||||
margin-right: 5px;
|
||||
text-align: right;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer a
|
||||
{
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer .toggle
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small-expand.png );
|
||||
background-position: 100% 50%;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
padding-right: 21px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer .open .toggle
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small.png );
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer li
|
||||
{
|
||||
border-top: 1px solid #f0f0f0;
|
||||
margin-top: 10px;
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
margin-top: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer ul
|
||||
{
|
||||
clear: left;
|
||||
display: block;
|
||||
margin-left: 30px;
|
||||
padding-top: 5px;
|
||||
clear: left;
|
||||
display: none;
|
||||
margin-left: 30px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer .open ul
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer ul li
|
||||
{
|
||||
border-top: 1px solid #f8f8f8;
|
||||
margin-top: 5px;
|
||||
padding-top: 5px;
|
||||
border-top: 1px solid #f8f8f8;
|
||||
margin-top: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer ul p
|
||||
{
|
||||
color: #999;
|
||||
margin-right: 5px;
|
||||
text-align: right;
|
||||
width: 70px;
|
||||
color: #999;
|
||||
margin-right: 5px;
|
||||
text-align: right;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer ul dd
|
||||
{
|
||||
margin-left: 20px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer ul dd
|
||||
{
|
||||
background-image: url( ../../img/ico/document-list.png );
|
||||
background-position: 0 50%;
|
||||
color: #c0c0c0;
|
||||
padding-left: 21px;
|
||||
background-image: url( ../../img/ico/document-list.png );
|
||||
background-position: 0 50%;
|
||||
color: #c0c0c0;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer ul dd.ico-0
|
||||
{
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
background-image: url( ../../img/ico/slash.png );
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .field-options .analyzer ul dd.ico-1
|
||||
{
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
background-image: url( ../../img/ico/tick.png );
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .head
|
||||
{
|
||||
margin-bottom: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder
|
||||
{
|
||||
border-top: 1px solid #c0c0c0;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder .trigger
|
||||
{
|
||||
float: left;
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder .trigger button
|
||||
{
|
||||
background-image: url( ../../img/ico/information.png );
|
||||
background-position: 3px 50%;
|
||||
display: block;
|
||||
padding-left: 23px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder .status
|
||||
{
|
||||
border-left: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
float: left;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder.disabled .trigger button
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
background-image: url( ../../img/ico/prohibition.png );
|
||||
border-color: #fff;
|
||||
color: #c0c0c0;
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder.disabled .status
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder .trigger .autoload
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder.loaded .trigger .autoload
|
||||
{
|
||||
background-image: url( ../../img/ico/ui-check-box-uncheck.png );
|
||||
background-position: 0 50%;
|
||||
color: #c0c0c0;
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder .trigger .autoload:hover
|
||||
{
|
||||
color: #008;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .terminfo-holder .trigger .autoload.on
|
||||
{
|
||||
background-image: url( ../../img/ico/ui-check-box.png );
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder
|
||||
{
|
||||
display: none;
|
||||
float: left;
|
||||
border-left: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
float: left;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .head input
|
||||
{
|
||||
height: 18px;
|
||||
line-height: 16px;
|
||||
text-align: right;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .head .max-holder
|
||||
{
|
||||
color: #c0c0c0;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder table
|
||||
#content #schema-browser #data #field .topterms-holder .head .max-holder:hover .max
|
||||
{
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
color: #008;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder th,
|
||||
#content #schema-browser #data #field .topterms-holder td
|
||||
#content #schema-browser .topterms-holder li
|
||||
{
|
||||
border: 1px solid #f0f0f0;
|
||||
padding: 1px 4px;
|
||||
border-top: 1px solid #999;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder thead tr
|
||||
#content #schema-browser .topterms-holder li p
|
||||
{
|
||||
background-color: #c0c0c0;
|
||||
background-color: #999;
|
||||
color: #fff;
|
||||
float: left;
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder thead th
|
||||
#content #schema-browser .topterms-holder li p span
|
||||
{
|
||||
text-align: left;
|
||||
display: block;
|
||||
padding-right: 2px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder tbody
|
||||
#content #schema-browser .topterms-holder li ul
|
||||
{
|
||||
display: none;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder tbody .odd
|
||||
#content #schema-browser .topterms-holder li li
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
border-top: 0;
|
||||
margin-bottom: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder tbody .position
|
||||
#content #schema-browser .topterms-holder li li.odd
|
||||
{
|
||||
color: #c0c0c0;
|
||||
text-align: right;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .navi
|
||||
#content #schema-browser .topterms-holder li li span
|
||||
{
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .navi a
|
||||
{
|
||||
color: #c0c0c0;
|
||||
display: block;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .navi a:hover
|
||||
{
|
||||
background-color: #f8f8f8;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .navi .less
|
||||
{
|
||||
float: left;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .navi .less span
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small.png );
|
||||
background-position: 0 50%;
|
||||
padding-left: 18px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .navi .more
|
||||
{
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .topterms-holder .navi .more span
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small-expand.png );
|
||||
background-position: 100% 50%;
|
||||
padding-right: 18px;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder
|
||||
{
|
||||
display: none;
|
||||
float: left;
|
||||
margin-left: 50px;
|
||||
border-left: 1px solid #f0f0f0;
|
||||
display: none;
|
||||
float: left;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder .histogram
|
||||
{
|
||||
height: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder .histogram.single canvas
|
||||
{
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder dt,
|
||||
#content #schema-browser #data #field .histogram-holder dd
|
||||
{
|
||||
float: left;
|
||||
font-size: 10px;
|
||||
text-align: center;
|
||||
float: left;
|
||||
font-size: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder span
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
display: block;
|
||||
width: 20px;
|
||||
background-color: #f0f0f0;
|
||||
display: block;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder dt
|
||||
{
|
||||
padding-right: 1px;
|
||||
padding-right: 1px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder dd
|
||||
{
|
||||
padding-right: 3px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#content #schema-browser #data #field .histogram-holder dd span
|
||||
{
|
||||
width: 25px;
|
||||
width: 25px;
|
||||
}
|
||||
|
|
|
@ -1,167 +1,167 @@
|
|||
#content #threads .loader
|
||||
{
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump table .spacer,
|
||||
#content #threads #thread-dump tbody .state
|
||||
{
|
||||
background-color: #fff;
|
||||
border: 0;
|
||||
background-color: #fff;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump table th,
|
||||
#content #threads #thread-dump table td
|
||||
{
|
||||
border: 1px solid #c0c0c0;
|
||||
padding: 5px 3px;
|
||||
vertical-align: top;
|
||||
border: 1px solid #c0c0c0;
|
||||
padding: 5px 3px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump thead th
|
||||
{
|
||||
background-color: #c8c8c8;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
background-color: #c8c8c8;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump thead th.name
|
||||
{
|
||||
width: 85%;
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump thead th.time
|
||||
{
|
||||
text-align: right;
|
||||
width: 15%;
|
||||
text-align: right;
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .odd
|
||||
{
|
||||
background-color: #f0f0f0;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .RUNNABLE a
|
||||
{
|
||||
background-image: url( ../../img/ico/tick-circle.png );
|
||||
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 );
|
||||
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 );
|
||||
background-image: url( ../../img/ico/hourglass--exclamation.png );
|
||||
}
|
||||
|
||||
#content #threads #thread-dump thead th:first-child,
|
||||
#content #threads #thread-dump tbody td:first-child
|
||||
{
|
||||
border-left: 0;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump thead th:last-child,
|
||||
#content #threads #thread-dump tbody td:last-child
|
||||
{
|
||||
border-right: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .name a
|
||||
{
|
||||
background-position: 0 50%;
|
||||
cursor: auto;
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
background-position: 0 50%;
|
||||
cursor: auto;
|
||||
display: block;
|
||||
padding-left: 21px;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .stacktrace .name a
|
||||
{
|
||||
cursor: pointer;
|
||||
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;
|
||||
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 );
|
||||
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;
|
||||
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;
|
||||
display: none;
|
||||
margin-left: 21px;
|
||||
margin-top: 5px;
|
||||
padding-top: 5px;
|
||||
border-top: 1px solid #c0c0c0;
|
||||
display: none;
|
||||
margin-left: 21px;
|
||||
margin-top: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .open .name div
|
||||
{
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .name ul
|
||||
{
|
||||
list-style-type: disc;
|
||||
margin-left: 0.7em;
|
||||
padding-left: 0.7em;
|
||||
list-style-type: disc;
|
||||
margin-left: 0.7em;
|
||||
padding-left: 0.7em;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .time
|
||||
{
|
||||
text-align: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#content #threads #thread-dump tbody .details
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#content #threads .controls
|
||||
{
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
#content #threads .controls a
|
||||
{
|
||||
background-image: url( ../../img/ico/chevron-small-expand.png );
|
||||
padding-left: 21px;
|
||||
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 );
|
||||
background-image: url( ../../img/ico/chevron-small.png );
|
||||
}
|
||||
|
||||
#content #threads.expanded .controls .expand,
|
||||
#content #threads.collapsed .controls .collapse
|
||||
{
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
|
@ -0,0 +1,317 @@
|
|||
// Simple Set Clipboard System
|
||||
// Author: Joseph Huckaby
|
||||
|
||||
var ZeroClipboard = {
|
||||
|
||||
version: "1.0.7",
|
||||
clients: {}, // registered upload clients on page, indexed by id
|
||||
moviePath: 'ZeroClipboard.swf', // URL to movie
|
||||
nextId: 1, // ID of next movie
|
||||
|
||||
$: function(thingy) {
|
||||
// simple DOM lookup utility function
|
||||
if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
|
||||
if (!thingy.addClass) {
|
||||
// extend element with a few useful methods
|
||||
thingy.hide = function() { this.style.display = 'none'; };
|
||||
thingy.show = function() { this.style.display = ''; };
|
||||
thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; };
|
||||
thingy.removeClass = function(name) {
|
||||
var classes = this.className.split(/\s+/);
|
||||
var idx = -1;
|
||||
for (var k = 0; k < classes.length; k++) {
|
||||
if (classes[k] == name) { idx = k; k = classes.length; }
|
||||
}
|
||||
if (idx > -1) {
|
||||
classes.splice( idx, 1 );
|
||||
this.className = classes.join(' ');
|
||||
}
|
||||
return this;
|
||||
};
|
||||
thingy.hasClass = function(name) {
|
||||
return !!this.className.match( new RegExp("\\s*" + name + "\\s*") );
|
||||
};
|
||||
}
|
||||
return thingy;
|
||||
},
|
||||
|
||||
setMoviePath: function(path) {
|
||||
// set path to ZeroClipboard.swf
|
||||
this.moviePath = path;
|
||||
},
|
||||
|
||||
dispatch: function(id, eventName, args) {
|
||||
// receive event from flash movie, send to client
|
||||
var client = this.clients[id];
|
||||
if (client) {
|
||||
client.receiveEvent(eventName, args);
|
||||
}
|
||||
},
|
||||
|
||||
register: function(id, client) {
|
||||
// register new client to receive events
|
||||
this.clients[id] = client;
|
||||
},
|
||||
|
||||
getDOMObjectPosition: function(obj, stopObj) {
|
||||
// get absolute coordinates for dom element
|
||||
var info = {
|
||||
left: 0,
|
||||
top: 0,
|
||||
width: obj.width ? obj.width : obj.offsetWidth,
|
||||
height: obj.height ? obj.height : obj.offsetHeight
|
||||
};
|
||||
|
||||
while (obj && (obj != stopObj)) {
|
||||
info.left += obj.offsetLeft;
|
||||
info.top += obj.offsetTop;
|
||||
obj = obj.offsetParent;
|
||||
}
|
||||
|
||||
return info;
|
||||
},
|
||||
|
||||
Client: function(elem) {
|
||||
// constructor for new simple upload client
|
||||
this.handlers = {};
|
||||
|
||||
// unique ID
|
||||
this.id = ZeroClipboard.nextId++;
|
||||
this.movieId = 'ZeroClipboardMovie_' + this.id;
|
||||
|
||||
// register client with singleton to receive flash events
|
||||
ZeroClipboard.register(this.id, this);
|
||||
|
||||
// create movie
|
||||
if (elem) this.glue(elem);
|
||||
}
|
||||
};
|
||||
|
||||
ZeroClipboard.Client.prototype = {
|
||||
|
||||
id: 0, // unique ID for us
|
||||
ready: false, // whether movie is ready to receive events or not
|
||||
movie: null, // reference to movie object
|
||||
clipText: '', // text to copy to clipboard
|
||||
handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor
|
||||
cssEffects: true, // enable CSS mouse effects on dom container
|
||||
handlers: null, // user event handlers
|
||||
|
||||
glue: function(elem, appendElem, stylesToAdd) {
|
||||
// glue to DOM element
|
||||
// elem can be ID or actual DOM element object
|
||||
this.domElement = ZeroClipboard.$(elem);
|
||||
|
||||
// float just above object, or zIndex 99 if dom element isn't set
|
||||
var zIndex = 99;
|
||||
if (this.domElement.style.zIndex) {
|
||||
zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
|
||||
}
|
||||
|
||||
if (typeof(appendElem) == 'string') {
|
||||
appendElem = ZeroClipboard.$(appendElem);
|
||||
}
|
||||
else if (typeof(appendElem) == 'undefined') {
|
||||
appendElem = document.getElementsByTagName('body')[0];
|
||||
}
|
||||
|
||||
// find X/Y position of domElement
|
||||
var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
|
||||
|
||||
// create floating DIV above element
|
||||
this.div = document.createElement('div');
|
||||
var style = this.div.style;
|
||||
style.position = 'absolute';
|
||||
style.left = '' + box.left + 'px';
|
||||
style.top = '' + box.top + 'px';
|
||||
style.width = '' + box.width + 'px';
|
||||
style.height = '' + box.height + 'px';
|
||||
style.zIndex = zIndex;
|
||||
|
||||
style.left = '0px';
|
||||
style.top = '0px';
|
||||
|
||||
if (typeof(stylesToAdd) == 'object') {
|
||||
for (addedStyle in stylesToAdd) {
|
||||
style[addedStyle] = stylesToAdd[addedStyle];
|
||||
}
|
||||
}
|
||||
|
||||
// style.backgroundColor = '#f00'; // debug
|
||||
|
||||
appendElem.appendChild(this.div);
|
||||
|
||||
this.div.innerHTML = this.getHTML( box.width, box.height );
|
||||
},
|
||||
|
||||
getHTML: function(width, height) {
|
||||
// return HTML for movie
|
||||
var html = '';
|
||||
var flashvars = 'id=' + this.id +
|
||||
'&width=' + width +
|
||||
'&height=' + height;
|
||||
|
||||
if (navigator.userAgent.match(/MSIE/)) {
|
||||
// IE gets an OBJECT tag
|
||||
var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
|
||||
html += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+width+'" height="'+height+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+flashvars+'"/><param name="wmode" value="transparent"/></object>';
|
||||
}
|
||||
else {
|
||||
// all other browsers get an EMBED tag
|
||||
html += '<embed id="'+this.movieId+'" src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'" wmode="transparent" />';
|
||||
}
|
||||
return html;
|
||||
},
|
||||
|
||||
hide: function() {
|
||||
// temporarily hide floater offscreen
|
||||
if (this.div) {
|
||||
this.div.style.left = '-2000px';
|
||||
}
|
||||
},
|
||||
|
||||
show: function() {
|
||||
// show ourselves after a call to hide()
|
||||
this.reposition();
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
// destroy control and floater
|
||||
if (this.domElement && this.div) {
|
||||
this.hide();
|
||||
this.div.innerHTML = '';
|
||||
|
||||
var body = document.getElementsByTagName('body')[0];
|
||||
try { body.removeChild( this.div ); } catch(e) {;}
|
||||
|
||||
this.domElement = null;
|
||||
this.div = null;
|
||||
}
|
||||
},
|
||||
|
||||
reposition: function(elem) {
|
||||
// reposition our floating div, optionally to new container
|
||||
// warning: container CANNOT change size, only position
|
||||
if (elem) {
|
||||
this.domElement = ZeroClipboard.$(elem);
|
||||
if (!this.domElement) this.hide();
|
||||
}
|
||||
|
||||
console.debug( this.domElement, this.div );
|
||||
|
||||
if (this.domElement && this.div) {
|
||||
var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
|
||||
console.debug( box );
|
||||
var style = this.div.style;
|
||||
style.left = '' + box.left + 'px';
|
||||
style.top = '' + box.top + 'px';
|
||||
}
|
||||
},
|
||||
|
||||
setText: function(newText) {
|
||||
// set text to be copied to clipboard
|
||||
this.clipText = newText;
|
||||
if (this.ready) this.movie.setText(newText);
|
||||
},
|
||||
|
||||
addEventListener: function(eventName, func) {
|
||||
// add user event listener for event
|
||||
// event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
|
||||
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
|
||||
if (!this.handlers[eventName]) this.handlers[eventName] = [];
|
||||
this.handlers[eventName].push(func);
|
||||
},
|
||||
|
||||
setHandCursor: function(enabled) {
|
||||
// enable hand cursor (true), or default arrow cursor (false)
|
||||
this.handCursorEnabled = enabled;
|
||||
if (this.ready) this.movie.setHandCursor(enabled);
|
||||
},
|
||||
|
||||
setCSSEffects: function(enabled) {
|
||||
// enable or disable CSS effects on DOM container
|
||||
this.cssEffects = !!enabled;
|
||||
},
|
||||
|
||||
receiveEvent: function(eventName, args) {
|
||||
// receive event from flash
|
||||
eventName = eventName.toString().toLowerCase().replace(/^on/, '');
|
||||
|
||||
// special behavior for certain events
|
||||
switch (eventName) {
|
||||
case 'load':
|
||||
// movie claims it is ready, but in IE this isn't always the case...
|
||||
// bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
|
||||
this.movie = document.getElementById(this.movieId);
|
||||
if (!this.movie) {
|
||||
var self = this;
|
||||
setTimeout( function() { self.receiveEvent('load', null); }, 1 );
|
||||
return;
|
||||
}
|
||||
|
||||
// firefox on pc needs a "kick" in order to set these in certain cases
|
||||
if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
|
||||
var self = this;
|
||||
setTimeout( function() { self.receiveEvent('load', null); }, 100 );
|
||||
this.ready = true;
|
||||
return;
|
||||
}
|
||||
|
||||
this.ready = true;
|
||||
this.movie.setText( this.clipText );
|
||||
this.movie.setHandCursor( this.handCursorEnabled );
|
||||
break;
|
||||
|
||||
case 'mouseover':
|
||||
if (this.domElement && this.cssEffects) {
|
||||
this.domElement.addClass('hover');
|
||||
if (this.recoverActive) this.domElement.addClass('active');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'mouseout':
|
||||
if (this.domElement && this.cssEffects) {
|
||||
this.recoverActive = false;
|
||||
if (this.domElement.hasClass('active')) {
|
||||
this.domElement.removeClass('active');
|
||||
this.recoverActive = true;
|
||||
}
|
||||
this.domElement.removeClass('hover');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'mousedown':
|
||||
if (this.domElement && this.cssEffects) {
|
||||
this.domElement.addClass('active');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'mouseup':
|
||||
if (this.domElement && this.cssEffects) {
|
||||
this.domElement.removeClass('active');
|
||||
this.recoverActive = false;
|
||||
}
|
||||
break;
|
||||
} // switch eventName
|
||||
|
||||
if (this.handlers[eventName]) {
|
||||
for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
|
||||
var func = this.handlers[eventName][idx];
|
||||
|
||||
if (typeof(func) == 'function') {
|
||||
// actual function reference
|
||||
func(this, args);
|
||||
}
|
||||
else if ((typeof(func) == 'object') && (func.length == 2)) {
|
||||
// PHP style object + method, i.e. [myObject, 'myMethod']
|
||||
func[0][ func[1] ](this, args);
|
||||
}
|
||||
else if (typeof(func) == 'string') {
|
||||
// name of function
|
||||
window[func](this, args);
|
||||
}
|
||||
} // foreach event handler defined
|
||||
} // user defined handler for event
|
||||
}
|
||||
|
||||
};
|
|
@ -17,11 +17,11 @@
|
|||
|
||||
if( 'undefined' === typeof( console ) )
|
||||
{
|
||||
var console = {
|
||||
log : function() {},
|
||||
debug : function() {},
|
||||
dump : function() {},
|
||||
error : function() {},
|
||||
warn : function(){}
|
||||
};
|
||||
var console = {
|
||||
log : function() {},
|
||||
debug : function() {},
|
||||
dump : function() {},
|
||||
error : function() {},
|
||||
warn : function(){}
|
||||
};
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,47 @@
|
|||
/*!
|
||||
* jQuery Cookie Plugin
|
||||
* https://github.com/carhartl/jquery-cookie
|
||||
*
|
||||
* Copyright 2011, Klaus Hartl
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.opensource.org/licenses/GPL-2.0
|
||||
*/
|
||||
(function($) {
|
||||
$.cookie = function(key, value, options) {
|
||||
|
||||
// key and at least value given, set cookie...
|
||||
if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
|
||||
options = $.extend({}, options);
|
||||
|
||||
if (value === null || value === undefined) {
|
||||
options.expires = -1;
|
||||
}
|
||||
|
||||
if (typeof options.expires === 'number') {
|
||||
var days = options.expires, t = options.expires = new Date();
|
||||
t.setDate(t.getDate() + days);
|
||||
}
|
||||
|
||||
value = String(value);
|
||||
|
||||
return (document.cookie = [
|
||||
encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
|
||||
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
||||
options.path ? '; path=' + options.path : '',
|
||||
options.domain ? '; domain=' + options.domain : '',
|
||||
options.secure ? '; secure' : ''
|
||||
].join(''));
|
||||
}
|
||||
|
||||
// key and possibly options given, get cookie...
|
||||
options = value || {};
|
||||
var decode = options.raw ? function(s) { return s; } : decodeURIComponent;
|
||||
|
||||
var pairs = document.cookie.split('; ');
|
||||
for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
|
||||
if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
|
||||
}
|
||||
return null;
|
||||
};
|
||||
})(jQuery);
|
|
@ -1,36 +1,54 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
require
|
||||
(
|
||||
[
|
||||
'lib/order!lib/console',
|
||||
'lib/order!jquery',
|
||||
'lib/order!lib/jquery.form',
|
||||
'lib/order!lib/jquery.jstree',
|
||||
'lib/order!lib/jquery.sammy',
|
||||
'lib/order!lib/jquery.sparkline',
|
||||
'lib/order!lib/jquery.timeago',
|
||||
'lib/order!lib/highlight',
|
||||
'lib/order!scripts/app',
|
||||
[
|
||||
'lib/order!lib/console',
|
||||
'lib/order!jquery',
|
||||
'lib/order!lib/jquery.cookie',
|
||||
'lib/order!lib/jquery.form',
|
||||
'lib/order!lib/jquery.jstree',
|
||||
'lib/order!lib/jquery.sammy',
|
||||
'lib/order!lib/jquery.sparkline',
|
||||
'lib/order!lib/jquery.timeago',
|
||||
'lib/order!lib/highlight',
|
||||
'lib/order!lib/ZeroClipboard',
|
||||
'lib/order!scripts/app',
|
||||
|
||||
'lib/order!scripts/analysis',
|
||||
'lib/order!scripts/cloud',
|
||||
'lib/order!scripts/cores',
|
||||
'lib/order!scripts/dataimport',
|
||||
'lib/order!scripts/file',
|
||||
'lib/order!scripts/index',
|
||||
'lib/order!scripts/java-properties',
|
||||
'lib/order!scripts/logging',
|
||||
'lib/order!scripts/ping',
|
||||
'lib/order!scripts/plugins',
|
||||
'lib/order!scripts/query',
|
||||
'lib/order!scripts/replication',
|
||||
'lib/order!scripts/schema-browser',
|
||||
'lib/order!scripts/threads',
|
||||
'lib/order!scripts/analysis',
|
||||
'lib/order!scripts/cloud',
|
||||
'lib/order!scripts/cores',
|
||||
'lib/order!scripts/dataimport',
|
||||
'lib/order!scripts/file',
|
||||
'lib/order!scripts/index',
|
||||
'lib/order!scripts/java-properties',
|
||||
'lib/order!scripts/logging',
|
||||
'lib/order!scripts/ping',
|
||||
'lib/order!scripts/plugins',
|
||||
'lib/order!scripts/query',
|
||||
'lib/order!scripts/replication',
|
||||
'lib/order!scripts/schema-browser',
|
||||
'lib/order!scripts/threads',
|
||||
|
||||
'lib/order!scripts/dashboard'
|
||||
|
||||
],
|
||||
function( $ )
|
||||
{
|
||||
app.run();
|
||||
}
|
||||
'lib/order!scripts/dashboard'
|
||||
],
|
||||
function( $ )
|
||||
{
|
||||
app.run();
|
||||
}
|
||||
);
|
|
@ -1,420 +1,441 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
// #/:core/analysis
|
||||
sammy.get
|
||||
(
|
||||
/^#\/([\w\d-]+)\/(analysis)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
/^#\/([\w\d-]+)\/(analysis)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
$.get
|
||||
$.get
|
||||
(
|
||||
'tpl/analysis.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
var analysis_element = $( '#analysis', content_element );
|
||||
var analysis_form = $( 'form', analysis_element );
|
||||
var analysis_result = $( '#analysis-result', analysis_element );
|
||||
analysis_result.hide();
|
||||
|
||||
$.ajax
|
||||
(
|
||||
'tpl/analysis.html',
|
||||
function( template )
|
||||
{
|
||||
url : core_basepath + '/admin/luke?wt=json&show=schema',
|
||||
dataType : 'json',
|
||||
context : $( '#type_or_name', analysis_form ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
var analysis_element = $( '#analysis', content_element );
|
||||
var analysis_form = $( 'form', analysis_element );
|
||||
var analysis_result = $( '#analysis-result', analysis_element );
|
||||
analysis_result.hide();
|
||||
|
||||
$.ajax
|
||||
this
|
||||
.html( '<option value="">Loading ... </option>' )
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var content = '';
|
||||
|
||||
var fields = [];
|
||||
for( var field_name in response.schema.fields )
|
||||
{
|
||||
fields.push
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/luke?wt=json&show=schema',
|
||||
dataType : 'json',
|
||||
context : $( '#type_or_name', analysis_form ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.html( '<option value="">Loading ... </option>' )
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var content = '';
|
||||
|
||||
var fields = [];
|
||||
for( var field_name in response.schema.fields )
|
||||
{
|
||||
fields.push
|
||||
(
|
||||
'<option value="fieldname=' + field_name + '">' + field_name + '</option>'
|
||||
);
|
||||
}
|
||||
if( 0 !== fields.length )
|
||||
{
|
||||
content += '<optgroup label="Fields">' + "\n";
|
||||
content += fields.sort().join( "\n" ) + "\n";
|
||||
content += '</optgroup>' + "\n";
|
||||
}
|
||||
|
||||
var types = [];
|
||||
for( var type_name in response.schema.types )
|
||||
{
|
||||
types.push
|
||||
(
|
||||
'<option value="fieldtype=' + type_name + '">' + type_name + '</option>'
|
||||
);
|
||||
}
|
||||
if( 0 !== types.length )
|
||||
{
|
||||
content += '<optgroup label="Types">' + "\n";
|
||||
content += types.sort().join( "\n" ) + "\n";
|
||||
content += '</optgroup>' + "\n";
|
||||
}
|
||||
|
||||
this
|
||||
.html( content );
|
||||
|
||||
$( 'option[value="fieldname\=' + response.schema.defaultSearchField + '"]', this )
|
||||
.attr( 'selected', 'selected' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
'<option value="fieldname=' + field_name + '">' + field_name + '</option>'
|
||||
);
|
||||
|
||||
$( '.analysis-error .head a', analysis_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( '.analysis-error' )
|
||||
.toggleClass( 'expanded' );
|
||||
}
|
||||
);
|
||||
|
||||
$( '.verbose_output a', analysis_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parent()
|
||||
.toggleClass( 'active' );
|
||||
}
|
||||
if( 0 !== fields.length )
|
||||
{
|
||||
content += '<optgroup label="Fields">' + "\n";
|
||||
content += fields.sort().join( "\n" ) + "\n";
|
||||
content += '</optgroup>' + "\n";
|
||||
}
|
||||
|
||||
analysis_result
|
||||
.toggleClass( 'verbose_output' );
|
||||
var types = [];
|
||||
for( var type_name in response.schema.types )
|
||||
{
|
||||
types.push
|
||||
(
|
||||
'<option value="fieldtype=' + type_name + '">' + type_name + '</option>'
|
||||
);
|
||||
}
|
||||
if( 0 !== types.length )
|
||||
{
|
||||
content += '<optgroup label="Types">' + "\n";
|
||||
content += types.sort().join( "\n" ) + "\n";
|
||||
content += '</optgroup>' + "\n";
|
||||
}
|
||||
|
||||
check_empty_spacer();
|
||||
}
|
||||
);
|
||||
this
|
||||
.html( content );
|
||||
|
||||
$( 'option[value="fieldname\=' + response.schema.defaultSearchField + '"]', this )
|
||||
.attr( 'selected', 'selected' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$( '.analysis-error .head a', analysis_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( '.analysis-error' )
|
||||
.toggleClass( 'expanded' );
|
||||
}
|
||||
);
|
||||
|
||||
$( '.verbose_output a', analysis_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parent()
|
||||
.toggleClass( 'active' );
|
||||
|
||||
analysis_result
|
||||
.toggleClass( 'verbose_output' );
|
||||
|
||||
check_empty_spacer();
|
||||
}
|
||||
);
|
||||
|
||||
var check_empty_spacer = function()
|
||||
var check_empty_spacer = function()
|
||||
{
|
||||
var spacer_holder = $( 'td.part.data.spacer .holder', analysis_result );
|
||||
|
||||
if( 0 === spacer_holder.size() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var verbose_output = analysis_result.hasClass( 'verbose_output' );
|
||||
|
||||
spacer_holder
|
||||
.each
|
||||
(
|
||||
function( index, element )
|
||||
{
|
||||
element = $( element );
|
||||
|
||||
if( verbose_output )
|
||||
{
|
||||
var spacer_holder = $( 'td.part.data.spacer .holder', analysis_result );
|
||||
var cell = element.parent();
|
||||
element.height( cell.height() );
|
||||
}
|
||||
else
|
||||
{
|
||||
element.removeAttr( 'style' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if( 0 === spacer_holder.size() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var verbose_output = analysis_result.hasClass( 'verbose_output' );
|
||||
|
||||
spacer_holder
|
||||
.each
|
||||
(
|
||||
function( index, element )
|
||||
{
|
||||
element = $( element );
|
||||
|
||||
if( verbose_output )
|
||||
{
|
||||
var cell = element.parent();
|
||||
element.height( cell.height() );
|
||||
}
|
||||
else
|
||||
{
|
||||
element.removeAttr( 'style' );
|
||||
}
|
||||
}
|
||||
);
|
||||
var button = $( 'button', analysis_form )
|
||||
|
||||
analysis_form
|
||||
.ajaxForm
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/analysis/field?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSubmit : function( array, form, options )
|
||||
{
|
||||
loader.show( button );
|
||||
button.attr( 'disabled', true );
|
||||
|
||||
array.push( { name: 'analysis.showmatch', value: 'true' } );
|
||||
|
||||
var type_or_name = $( '#type_or_name', form ).val().split( '=' );
|
||||
|
||||
array.push( { name: 'analysis.' + type_or_name[0], value: type_or_name[1] } );
|
||||
},
|
||||
success : function( response, status_text, xhr, form )
|
||||
{
|
||||
$( '.analysis-error', analysis_element )
|
||||
.hide();
|
||||
|
||||
analysis_result
|
||||
.empty()
|
||||
.show();
|
||||
|
||||
for( var name in response.analysis.field_names )
|
||||
{
|
||||
build_analysis_table( 'name', name, response.analysis.field_names[name] );
|
||||
}
|
||||
|
||||
for( var name in response.analysis.field_types )
|
||||
{
|
||||
build_analysis_table( 'type', name, response.analysis.field_types[name] );
|
||||
}
|
||||
|
||||
var button = $( 'button', analysis_form )
|
||||
|
||||
analysis_form
|
||||
.ajaxForm
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/analysis/field?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSubmit : function( array, form, options )
|
||||
{
|
||||
loader.show( button );
|
||||
button.attr( 'disabled', true );
|
||||
|
||||
array.push( { name: 'analysis.showmatch', value: 'true' } );
|
||||
|
||||
var type_or_name = $( '#type_or_name', form ).val().split( '=' );
|
||||
|
||||
array.push( { name: 'analysis.' + type_or_name[0], value: type_or_name[1] } );
|
||||
},
|
||||
success : function( response, status_text, xhr, form )
|
||||
{
|
||||
$( '.analysis-error', analysis_element )
|
||||
.hide();
|
||||
|
||||
analysis_result
|
||||
.empty()
|
||||
.show();
|
||||
|
||||
for( var name in response.analysis.field_names )
|
||||
{
|
||||
build_analysis_table( 'name', name, response.analysis.field_names[name] );
|
||||
}
|
||||
|
||||
for( var name in response.analysis.field_types )
|
||||
{
|
||||
build_analysis_table( 'type', name, response.analysis.field_types[name] );
|
||||
}
|
||||
check_empty_spacer();
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
analysis_result
|
||||
.empty()
|
||||
.hide();
|
||||
|
||||
check_empty_spacer();
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
analysis_result
|
||||
.empty()
|
||||
.hide();
|
||||
if( 404 === xhr.status )
|
||||
{
|
||||
$( '#analysis-handler-missing', analysis_element )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
var error_message = error_thrown.match( /^(.+Exception):\s+(.*)$/ );
|
||||
|
||||
if( 404 === xhr.status )
|
||||
{
|
||||
$( '#analysis-handler-missing', analysis_element )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
var error_message = error_thrown.match( /^(.+Exception):\s+(.*)$/ );
|
||||
$( '#analysis-error', analysis_element )
|
||||
.show();
|
||||
|
||||
$( '#analysis-error', analysis_element )
|
||||
.show();
|
||||
if( error_message )
|
||||
{
|
||||
$( '#analysis-error .head a span', analysis_element )
|
||||
.text( error_message[1] );
|
||||
|
||||
$( '#analysis-error .head a span', analysis_element )
|
||||
.text( error_message[1] );
|
||||
$( '#analysis-error .body', analysis_element )
|
||||
.text( error_message[2].replace( /(\s+at\s+)/g, " at\n" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '#analysis-error .head a span', analysis_element )
|
||||
.text( error_thrown );
|
||||
}
|
||||
}
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
loader.hide( $( 'button', analysis_form ) );
|
||||
button.removeAttr( 'disabled' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$( '#analysis-error .body', analysis_element )
|
||||
.text( error_message[2].replace( /(\s+at\s+)/g, " at\n" ) );
|
||||
}
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
loader.hide( $( 'button', analysis_form ) );
|
||||
button.removeAttr( 'disabled' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
var generate_class_name = function( type )
|
||||
{
|
||||
var classes = [type];
|
||||
if( 'text' !== type )
|
||||
{
|
||||
classes.push( 'verbose_output' );
|
||||
}
|
||||
return classes.join( ' ' );
|
||||
}
|
||||
var generate_class_name = function( type )
|
||||
{
|
||||
var classes = [type];
|
||||
if( 'text' !== type )
|
||||
{
|
||||
classes.push( 'verbose_output' );
|
||||
}
|
||||
return classes.join( ' ' );
|
||||
}
|
||||
|
||||
var build_analysis_table = function( field_or_name, name, analysis_data )
|
||||
{
|
||||
for( var type in analysis_data )
|
||||
{
|
||||
var type_length = analysis_data[type].length;
|
||||
if( 0 !== type_length )
|
||||
{
|
||||
var global_elements_count = 0;
|
||||
for( var i = 0; i < analysis_data[type].length; i += 2 )
|
||||
{
|
||||
if( 'string' === typeof analysis_data[type][i+1] )
|
||||
{
|
||||
analysis_data[type][i+1] = [{ 'text': analysis_data[type][i+1] }]
|
||||
}
|
||||
global_elements_count = Math.max( global_elements_count,
|
||||
analysis_data[type][i+1].length );
|
||||
}
|
||||
var build_analysis_table = function( field_or_name, name, analysis_data )
|
||||
{
|
||||
for( var type in analysis_data )
|
||||
{
|
||||
var type_length = analysis_data[type].length;
|
||||
if( 0 !== type_length )
|
||||
{
|
||||
var global_elements_count = 0;
|
||||
for( var i = 0; i < analysis_data[type].length; i += 2 )
|
||||
{
|
||||
if( 'string' === typeof analysis_data[type][i+1] )
|
||||
{
|
||||
analysis_data[type][i+1] = [{ 'text': analysis_data[type][i+1] }]
|
||||
}
|
||||
global_elements_count = Math.max( global_elements_count, analysis_data[type][i+1].length );
|
||||
}
|
||||
|
||||
var content = '<div class="' + type + '">' + "\n";
|
||||
content += '<table border="0" cellspacing="0" cellpadding="0">' + "\n";
|
||||
var content = '<div class="' + type + '">' + "\n";
|
||||
content += '<table border="0" cellspacing="0" cellpadding="0">' + "\n";
|
||||
|
||||
for( var i = 0; i < analysis_data[type].length; i += 2 )
|
||||
{
|
||||
var colspan = 1;
|
||||
var elements = analysis_data[type][i+1];
|
||||
var elements_count = global_elements_count;
|
||||
for( var i = 0; i < analysis_data[type].length; i += 2 )
|
||||
{
|
||||
var colspan = 1;
|
||||
var elements = analysis_data[type][i+1];
|
||||
var elements_count = global_elements_count;
|
||||
|
||||
if( !elements[0].positionHistory )
|
||||
{
|
||||
colspan = elements_count;
|
||||
elements_count = 1;
|
||||
}
|
||||
if( !elements[0].positionHistory )
|
||||
{
|
||||
colspan = elements_count;
|
||||
elements_count = 1;
|
||||
}
|
||||
|
||||
var legend = [];
|
||||
for( var key in elements[0] )
|
||||
{
|
||||
var key_parts = key.split( '#' );
|
||||
var used_key = key_parts.pop();
|
||||
var short_key = used_key;
|
||||
var legend = [];
|
||||
for( var key in elements[0] )
|
||||
{
|
||||
var key_parts = key.split( '#' );
|
||||
var used_key = key_parts.pop();
|
||||
var short_key = used_key;
|
||||
|
||||
if( 1 === key_parts.length )
|
||||
{
|
||||
used_key = '<abbr title="' + key + '">' + used_key + '</abbr>';
|
||||
}
|
||||
if( 1 === key_parts.length )
|
||||
{
|
||||
used_key = '<abbr title="' + key + '">' + used_key + '</abbr>';
|
||||
}
|
||||
|
||||
if( 'positionHistory' === short_key || 'match' === short_key )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if( 'positionHistory' === short_key || 'match' === short_key )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
legend.push
|
||||
(
|
||||
'<tr class="' + generate_class_name( short_key ) + '">' +
|
||||
'<td>' + used_key + '</td>' +
|
||||
'</tr>'
|
||||
);
|
||||
}
|
||||
legend.push
|
||||
(
|
||||
'<tr class="' + generate_class_name( short_key ) + '">' +
|
||||
'<td>' + used_key + '</td>' +
|
||||
'</tr>'
|
||||
);
|
||||
}
|
||||
|
||||
content += '<tbody>' + "\n";
|
||||
content += '<tr class="step">' + "\n";
|
||||
content += '<tbody>' + "\n";
|
||||
content += '<tr class="step">' + "\n";
|
||||
|
||||
// analyzer
|
||||
var analyzer_name = analysis_data[type][i]
|
||||
// analyzer
|
||||
var analyzer_name = analysis_data[type][i]
|
||||
.replace( /(\$1)+$/g, '' );
|
||||
|
||||
var analyzer_short = -1 !== analyzer_name.indexOf( '$' )
|
||||
? analyzer_name.split( '$' )[1]
|
||||
: analyzer_name.split( '.' ).pop();
|
||||
analyzer_short = analyzer_short.match( /[A-Z]/g ).join( '' );
|
||||
var analyzer_short = -1 !== analyzer_name.indexOf( '$' )
|
||||
? analyzer_name.split( '$' )[1]
|
||||
: analyzer_name.split( '.' ).pop();
|
||||
analyzer_short = analyzer_short.match( /[A-Z]/g ).join( '' );
|
||||
|
||||
content += '<td class="part analyzer"><div>' + "\n";
|
||||
content += '<abbr title="' + analysis_data[type][i] + '">' + "\n";
|
||||
content += analyzer_short + '</abbr></div></td>' + "\n";
|
||||
content += '<td class="part analyzer"><div>' + "\n";
|
||||
content += '<abbr title="' + analysis_data[type][i] + '">' + "\n";
|
||||
content += analyzer_short + '</abbr></div></td>' + "\n";
|
||||
|
||||
// legend
|
||||
content += '<td class="part legend"><div class="holder">' + "\n";
|
||||
content += '<table border="0" cellspacing="0" cellpadding="0">' + "\n";
|
||||
content += '<tr><td>' + "\n";
|
||||
content += '<table border="0" cellspacing="0" cellpadding="0">' + "\n";
|
||||
content += legend.join( "\n" ) + "\n";
|
||||
content += '</table></td></tr></table></td>' + "\n";
|
||||
// legend
|
||||
content += '<td class="part legend"><div class="holder">' + "\n";
|
||||
content += '<table border="0" cellspacing="0" cellpadding="0">' + "\n";
|
||||
content += '<tr><td>' + "\n";
|
||||
content += '<table border="0" cellspacing="0" cellpadding="0">' + "\n";
|
||||
content += legend.join( "\n" ) + "\n";
|
||||
content += '</table></td></tr></table></td>' + "\n";
|
||||
|
||||
// data
|
||||
var cell_content = '<td class="part data spacer" '
|
||||
+ ' colspan="' + colspan + '">'
|
||||
+ '<div class="holder"> </div>'
|
||||
+ '</td>';
|
||||
var cells = new Array( elements_count + 1 ).join( cell_content );
|
||||
content += cells + "\n";
|
||||
// data
|
||||
var cell_content = '<td class="part data spacer" colspan="' + colspan + '"><div class="holder"> </div></td>';
|
||||
var cells = new Array( elements_count + 1 ).join( cell_content );
|
||||
content += cells + "\n";
|
||||
|
||||
content += '</tr>' + "\n";
|
||||
content += '</tbody>' + "\n";
|
||||
}
|
||||
content += '</table>' + "\n";
|
||||
content += '</div>' + "\n";
|
||||
content += '</tr>' + "\n";
|
||||
content += '</tbody>' + "\n";
|
||||
}
|
||||
content += '</table>' + "\n";
|
||||
content += '</div>' + "\n";
|
||||
|
||||
$( '.' + type, analysis_result )
|
||||
.remove();
|
||||
$( '.' + type, analysis_result )
|
||||
.remove();
|
||||
|
||||
analysis_result
|
||||
.append( content );
|
||||
analysis_result
|
||||
.append( content );
|
||||
|
||||
var analysis_result_type = $( '.' + type, analysis_result );
|
||||
var analysis_result_type = $( '.' + type, analysis_result );
|
||||
|
||||
for( var i = 0; i < analysis_data[type].length; i += 2 )
|
||||
{
|
||||
for( var j = 0; j < analysis_data[type][i+1].length; j += 1 )
|
||||
{
|
||||
var pos = analysis_data[type][i+1][j].positionHistory
|
||||
? analysis_data[type][i+1][j].positionHistory[0]
|
||||
: 1;
|
||||
var selector = 'tr.step:eq(' + ( i / 2 ) +') '
|
||||
+ 'td.data:eq(' + ( pos - 1 ) + ') '
|
||||
+ '.holder';
|
||||
var cell = $( selector, analysis_result_type );
|
||||
for( var i = 0; i < analysis_data[type].length; i += 2 )
|
||||
{
|
||||
for( var j = 0; j < analysis_data[type][i+1].length; j += 1 )
|
||||
{
|
||||
var pos = analysis_data[type][i+1][j].positionHistory
|
||||
? analysis_data[type][i+1][j].positionHistory[0]
|
||||
: 1;
|
||||
var selector = 'tr.step:eq(' + ( i / 2 ) +') '
|
||||
+ 'td.data:eq(' + ( pos - 1 ) + ') '
|
||||
+ '.holder';
|
||||
var cell = $( selector, analysis_result_type );
|
||||
|
||||
cell.parent()
|
||||
.removeClass( 'spacer' );
|
||||
cell.parent()
|
||||
.removeClass( 'spacer' );
|
||||
|
||||
var table = $( 'table tr.details', cell );
|
||||
if( 0 === table.size() )
|
||||
{
|
||||
cell
|
||||
.html
|
||||
(
|
||||
'<table border="0" cellspacing="0" cellpadding="0">' +
|
||||
'<tr class="details"></tr></table>'
|
||||
);
|
||||
var table = $( 'table tr.details', cell );
|
||||
}
|
||||
|
||||
var tokens = [];
|
||||
for( var key in analysis_data[type][i+1][j] )
|
||||
{
|
||||
var short_key = key.split( '#' ).pop();
|
||||
|
||||
if( 'positionHistory' === short_key || 'match' === short_key )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var classes = [];
|
||||
classes.push( generate_class_name( short_key ) );
|
||||
|
||||
var data = analysis_data[type][i+1][j][key];
|
||||
if( 'object' === typeof data && data instanceof Array )
|
||||
{
|
||||
data = data.join( ' ' );
|
||||
}
|
||||
if( 'string' === typeof data )
|
||||
{
|
||||
data = data.esc();
|
||||
}
|
||||
|
||||
if( null === data || 0 === data.length )
|
||||
{
|
||||
classes.push( 'empty' );
|
||||
data = '∅';
|
||||
}
|
||||
|
||||
if( analysis_data[type][i+1][j].match &&
|
||||
( 'text' === short_key || 'raw_bytes' === short_key ) )
|
||||
{
|
||||
classes.push( 'match' );
|
||||
}
|
||||
|
||||
tokens.push
|
||||
(
|
||||
'<tr class="' + classes.join( ' ' ) + '">' +
|
||||
'<td>' + data + '</td>' +
|
||||
'</tr>'
|
||||
);
|
||||
}
|
||||
table
|
||||
.append
|
||||
(
|
||||
'<td class="details">' +
|
||||
'<table border="0" cellspacing="0" cellpadding="0">' +
|
||||
tokens.join( "\n" ) +
|
||||
'</table></td>'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
var table = $( 'table tr.details', cell );
|
||||
if( 0 === table.size() )
|
||||
{
|
||||
cell
|
||||
.html
|
||||
(
|
||||
'<table border="0" cellspacing="0" cellpadding="0">' +
|
||||
'<tr class="details"></tr></table>'
|
||||
);
|
||||
var table = $( 'table tr.details', cell );
|
||||
}
|
||||
|
||||
|
||||
var tokens = [];
|
||||
for( var key in analysis_data[type][i+1][j] )
|
||||
{
|
||||
var short_key = key.split( '#' ).pop();
|
||||
|
||||
if( 'positionHistory' === short_key || 'match' === short_key )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var classes = [];
|
||||
classes.push( generate_class_name( short_key ) );
|
||||
|
||||
var data = analysis_data[type][i+1][j][key];
|
||||
if( 'object' === typeof data && data instanceof Array )
|
||||
{
|
||||
data = data.join( ' ' );
|
||||
}
|
||||
if( 'string' === typeof data )
|
||||
{
|
||||
data = data.esc();
|
||||
}
|
||||
|
||||
if( null === data || 0 === data.length )
|
||||
{
|
||||
classes.push( 'empty' );
|
||||
data = '∅';
|
||||
}
|
||||
|
||||
if( analysis_data[type][i+1][j].match &&
|
||||
( 'text' === short_key || 'raw_bytes' === short_key ) )
|
||||
{
|
||||
classes.push( 'match' );
|
||||
}
|
||||
|
||||
tokens.push
|
||||
(
|
||||
'<tr class="' + classes.join( ' ' ) + '">' +
|
||||
'<td>' + data + '</td>' +
|
||||
'</tr>'
|
||||
);
|
||||
}
|
||||
table
|
||||
.append
|
||||
(
|
||||
'<td class="details">' +
|
||||
'<table border="0" cellspacing="0" cellpadding="0">' +
|
||||
tokens.join( "\n" ) +
|
||||
'</table></td>'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
|
|
@ -1,263 +1,308 @@
|
|||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
var loader = {
|
||||
|
||||
show : function( element )
|
||||
{
|
||||
$( element )
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
show : function( element )
|
||||
{
|
||||
$( element )
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
|
||||
hide : function( element )
|
||||
{
|
||||
$( element )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
hide : function( element )
|
||||
{
|
||||
$( element )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Number.prototype.esc = function()
|
||||
{
|
||||
return new String( this ).esc();
|
||||
return new String( this ).esc();
|
||||
}
|
||||
|
||||
String.prototype.esc = function()
|
||||
{
|
||||
return this.replace( /</g, '<' ).replace( />/g, '>' );
|
||||
return this.replace( /</g, '<' ).replace( />/g, '>' );
|
||||
}
|
||||
|
||||
SolrDate = function( date )
|
||||
{
|
||||
// ["Sat Mar 03 11:00:00 CET 2012", "Sat", "Mar", "03", "11:00:00", "CET", "2012"]
|
||||
var parts = date.match( /^(\w+)\s+(\w+)\s+(\d+)\s+(\d+\:\d+\:\d+)\s+(\w+)\s+(\d+)$/ );
|
||||
|
||||
// "Sat Mar 03 2012 10:37:33"
|
||||
return new Date( parts[1] + ' ' + parts[2] + ' ' + parts[3] + ' ' + parts[6] + ' ' + parts[4] );
|
||||
}
|
||||
|
||||
var sammy = $.sammy
|
||||
(
|
||||
function()
|
||||
{
|
||||
this.bind
|
||||
(
|
||||
'run',
|
||||
function( event, config )
|
||||
{
|
||||
if( 0 === config.start_url.length )
|
||||
{
|
||||
location.href = '#/';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
);
|
||||
function()
|
||||
{
|
||||
this.bind
|
||||
(
|
||||
'run',
|
||||
function( event, config )
|
||||
{
|
||||
if( 0 === config.start_url.length )
|
||||
{
|
||||
location.href = '#/';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// activate_core
|
||||
this.before
|
||||
(
|
||||
{},
|
||||
function( context )
|
||||
{
|
||||
$( 'li[id].active', app.menu_element )
|
||||
.removeClass( 'active' );
|
||||
// activate_core
|
||||
this.before
|
||||
(
|
||||
{},
|
||||
function( context )
|
||||
{
|
||||
$( 'li[id].active', app.menu_element )
|
||||
.removeClass( 'active' );
|
||||
|
||||
$( 'ul li.active', app.menu_element )
|
||||
.removeClass( 'active' );
|
||||
$( 'ul li.active', app.menu_element )
|
||||
.removeClass( 'active' );
|
||||
|
||||
if( this.params.splat )
|
||||
{
|
||||
var active_element = $( '#' + this.params.splat[0], app.menu_element );
|
||||
if( this.params.splat )
|
||||
{
|
||||
var active_element = $( '#' + this.params.splat[0], app.menu_element );
|
||||
|
||||
if( 0 === active_element.size() )
|
||||
{
|
||||
var first_core = $( 'li[data-basepath]', app.menu_element ).attr( 'id' );
|
||||
var first_core_url = context.path.replace( new RegExp( '/' + this.params.splat[0] + '/' ), '/' + first_core + '/' );
|
||||
if( 0 === active_element.size() )
|
||||
{
|
||||
var first_core = $( 'li[data-basepath]', app.menu_element ).attr( 'id' );
|
||||
var first_core_url = context.path.replace( new RegExp( '/' + this.params.splat[0] + '/' ), '/' + first_core + '/' );
|
||||
|
||||
context.redirect( first_core_url );
|
||||
return false;
|
||||
}
|
||||
context.redirect( first_core_url );
|
||||
return false;
|
||||
}
|
||||
|
||||
active_element
|
||||
.addClass( 'active' );
|
||||
active_element
|
||||
.addClass( 'active' );
|
||||
|
||||
if( this.params.splat[1] )
|
||||
{
|
||||
$( '.' + this.params.splat[1], active_element )
|
||||
.addClass( 'active' );
|
||||
}
|
||||
if( this.params.splat[1] )
|
||||
{
|
||||
$( '.' + this.params.splat[1], active_element )
|
||||
.addClass( 'active' );
|
||||
}
|
||||
|
||||
if( !active_element.hasClass( 'global' ) )
|
||||
{
|
||||
this.active_core = active_element;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
if( !active_element.hasClass( 'global' ) )
|
||||
{
|
||||
this.active_core = active_element;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
var solr_admin = function( app_config )
|
||||
{
|
||||
self = this,
|
||||
|
||||
menu_element = null,
|
||||
menu_element = null,
|
||||
|
||||
is_multicore = null,
|
||||
cores_data = null,
|
||||
active_core = null,
|
||||
environment_basepath = null,
|
||||
is_multicore = null,
|
||||
cores_data = null,
|
||||
active_core = null,
|
||||
environment_basepath = null,
|
||||
|
||||
config = app_config,
|
||||
params = null,
|
||||
dashboard_values = null,
|
||||
schema_browser_data = null,
|
||||
config = app_config,
|
||||
params = null,
|
||||
dashboard_values = null,
|
||||
schema_browser_data = null,
|
||||
|
||||
plugin_data = null,
|
||||
plugin_data = null,
|
||||
|
||||
this.menu_element = $( '#menu ul' );
|
||||
this.config = config;
|
||||
this.menu_element = $( '#menu ul' );
|
||||
this.config = config;
|
||||
|
||||
this.run = function()
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
this.run = function()
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : config.solr_path + config.core_admin_path + '?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
$( '#content' )
|
||||
.html( '<div id="index"><div class="loader">Loading ...</div></div>' );
|
||||
},
|
||||
success : function( response )
|
||||
{
|
||||
self.cores_data = response.status;
|
||||
is_multicore = 'undefined' === typeof response.status[''];
|
||||
|
||||
if( is_multicore )
|
||||
{
|
||||
self.menu_element
|
||||
.addClass( 'multicore' );
|
||||
|
||||
$( '#cores', menu_element )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
self.menu_element
|
||||
.addClass( 'singlecore' );
|
||||
}
|
||||
|
||||
for( var core_name in response.status )
|
||||
{
|
||||
var core_path = config.solr_path + '/' + core_name;
|
||||
|
||||
if( !core_name )
|
||||
{
|
||||
url : config.solr_path + config.core_admin_path + '?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
$( '#content' )
|
||||
.html( '<div id="index"><div class="loader">Loading ...</div></div>' );
|
||||
},
|
||||
success : function( response )
|
||||
{
|
||||
self.cores_data = response.status;
|
||||
is_multicore = 'undefined' === typeof response.status[''];
|
||||
|
||||
if( is_multicore )
|
||||
{
|
||||
self.menu_element
|
||||
.addClass( 'multicore' );
|
||||
|
||||
$( '#cores', menu_element )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
self.menu_element
|
||||
.addClass( 'singlecore' );
|
||||
}
|
||||
|
||||
for( var core_name in response.status )
|
||||
{
|
||||
var core_path = config.solr_path + '/' + core_name;
|
||||
|
||||
if( !core_name )
|
||||
{
|
||||
core_name = 'singlecore';
|
||||
core_path = config.solr_path
|
||||
}
|
||||
|
||||
if( !environment_basepath )
|
||||
{
|
||||
environment_basepath = core_path;
|
||||
}
|
||||
|
||||
var core_tpl = '<li id="' + core_name + '" data-basepath="' + core_path + '">' + "\n"
|
||||
+ ' <p><a href="#/' + core_name + '">' + core_name + '</a></p>' + "\n"
|
||||
+ ' <ul>' + "\n"
|
||||
|
||||
+ ' <li class="ping"><a rel="' + core_path + '/admin/ping"><span>Ping</span></a></li>' + "\n"
|
||||
+ ' <li class="query"><a href="#/' + core_name + '/query"><span>Query</span></a></li>' + "\n"
|
||||
+ ' <li class="schema"><a href="#/' + core_name + '/schema"><span>Schema</span></a></li>' + "\n"
|
||||
+ ' <li class="config"><a href="#/' + core_name + '/config"><span>Config</span></a></li>' + "\n"
|
||||
+ ' <li class="replication"><a href="#/' + core_name + '/replication"><span>Replication</span></a></li>' + "\n"
|
||||
+ ' <li class="analysis"><a href="#/' + core_name + '/analysis"><span>Analysis</span></a></li>' + "\n"
|
||||
+ ' <li class="schema-browser"><a href="#/' + core_name + '/schema-browser"><span>Schema Browser</span></a></li>' + "\n"
|
||||
+ ' <li class="plugins"><a href="#/' + core_name + '/plugins"><span>Plugins</span></a></li>' + "\n"
|
||||
+ ' <li class="dataimport"><a href="#/' + core_name + '/dataimport"><span>Dataimport</span></a></li>' + "\n"
|
||||
|
||||
+ ' </ul>' + "\n"
|
||||
+ '</li>';
|
||||
|
||||
self.menu_element
|
||||
.append( core_tpl );
|
||||
}
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : environment_basepath + '/admin/system?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
},
|
||||
success : function( response )
|
||||
{
|
||||
self.dashboard_values = response;
|
||||
|
||||
var environment_args = null;
|
||||
var cloud_args = null;
|
||||
|
||||
if( response.jvm && response.jvm.jmx && response.jvm.jmx.commandLineArgs )
|
||||
{
|
||||
var command_line_args = response.jvm.jmx.commandLineArgs.join( ' | ' );
|
||||
|
||||
environment_args = command_line_args
|
||||
.match( /-Dsolr.environment=((dev|test|prod)?[\w\d]*)/i );
|
||||
|
||||
cloud_args = command_line_args
|
||||
.match( /-Dzk/i );
|
||||
}
|
||||
|
||||
// environment
|
||||
|
||||
var environment_element = $( '#environment' );
|
||||
if( environment_args )
|
||||
{
|
||||
environment_element
|
||||
.show();
|
||||
|
||||
if( environment_args[1] )
|
||||
{
|
||||
environment_element
|
||||
.html( environment_args[1] );
|
||||
}
|
||||
|
||||
if( environment_args[2] )
|
||||
{
|
||||
environment_element
|
||||
.addClass( environment_args[2] );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
environment_element
|
||||
.remove();
|
||||
}
|
||||
|
||||
// cloud
|
||||
|
||||
var cloud_nav_element = $( '#menu #cloud' );
|
||||
if( cloud_args )
|
||||
{
|
||||
cloud_nav_element
|
||||
.show();
|
||||
}
|
||||
|
||||
// sammy
|
||||
|
||||
sammy.run( location.hash );
|
||||
},
|
||||
error : function()
|
||||
{
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
loader.hide( this );
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function()
|
||||
{
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
}
|
||||
core_name = 'singlecore';
|
||||
core_path = config.solr_path
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if( !environment_basepath )
|
||||
{
|
||||
environment_basepath = core_path;
|
||||
}
|
||||
|
||||
var core_tpl = '<li id="' + core_name + '" data-basepath="' + core_path + '">' + "\n"
|
||||
+ ' <p><a href="#/' + core_name + '">' + core_name + '</a></p>' + "\n"
|
||||
+ ' <ul>' + "\n"
|
||||
|
||||
+ ' <li class="ping"><a rel="' + core_path + '/admin/ping"><span>Ping</span></a></li>' + "\n"
|
||||
+ ' <li class="query"><a href="#/' + core_name + '/query"><span>Query</span></a></li>' + "\n"
|
||||
+ ' <li class="schema"><a href="#/' + core_name + '/schema"><span>Schema</span></a></li>' + "\n"
|
||||
+ ' <li class="config"><a href="#/' + core_name + '/config"><span>Config</span></a></li>' + "\n"
|
||||
+ ' <li class="replication"><a href="#/' + core_name + '/replication"><span>Replication</span></a></li>' + "\n"
|
||||
+ ' <li class="analysis"><a href="#/' + core_name + '/analysis"><span>Analysis</span></a></li>' + "\n"
|
||||
+ ' <li class="schema-browser"><a href="#/' + core_name + '/schema-browser"><span>Schema Browser</span></a></li>' + "\n"
|
||||
+ ' <li class="plugins"><a href="#/' + core_name + '/plugins"><span>Plugins</span></a></li>' + "\n"
|
||||
+ ' <li class="dataimport"><a href="#/' + core_name + '/dataimport"><span>Dataimport</span></a></li>' + "\n"
|
||||
|
||||
+ ' </ul>' + "\n"
|
||||
+ '</li>';
|
||||
|
||||
self.menu_element
|
||||
.append( core_tpl );
|
||||
}
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : environment_basepath + '/admin/system?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
},
|
||||
success : function( response )
|
||||
{
|
||||
self.dashboard_values = response;
|
||||
|
||||
var environment_args = null;
|
||||
var cloud_args = null;
|
||||
|
||||
if( response.jvm && response.jvm.jmx && response.jvm.jmx.commandLineArgs )
|
||||
{
|
||||
var command_line_args = response.jvm.jmx.commandLineArgs.join( ' | ' );
|
||||
|
||||
environment_args = command_line_args.match( /-Dsolr.environment=((dev|test|prod)?[\w\d]*)/i );
|
||||
cloud_args = command_line_args.match( /-Dzk/i );
|
||||
}
|
||||
|
||||
// title
|
||||
|
||||
$( 'title', document )
|
||||
.append( ' (' + response.core.host + ')' );
|
||||
|
||||
// environment
|
||||
|
||||
var environment_element = $( '#environment' );
|
||||
if( environment_args )
|
||||
{
|
||||
environment_element
|
||||
.show();
|
||||
|
||||
if( environment_args[1] )
|
||||
{
|
||||
environment_element
|
||||
.html( environment_args[1] );
|
||||
}
|
||||
|
||||
if( environment_args[2] )
|
||||
{
|
||||
environment_element
|
||||
.addClass( environment_args[2] );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
environment_element
|
||||
.remove();
|
||||
}
|
||||
|
||||
// cloud
|
||||
|
||||
var cloud_nav_element = $( '#menu #cloud' );
|
||||
if( cloud_args )
|
||||
{
|
||||
cloud_nav_element
|
||||
.show();
|
||||
}
|
||||
|
||||
// sammy
|
||||
|
||||
sammy.run( location.hash );
|
||||
},
|
||||
error : function()
|
||||
{
|
||||
var main = $( '#main' );
|
||||
|
||||
$( 'div[id$="-wrapper"]', main )
|
||||
.remove();
|
||||
|
||||
main
|
||||
.addClass( 'error' )
|
||||
.append
|
||||
(
|
||||
'<div class="message">This interface requires that you activate the admin request handlers, add the following configuration to your <code>solrconfig.xml:</code></div>' +
|
||||
'<div class="code"><pre class="syntax language-xml"><code>' +
|
||||
'<!-- Admin Handlers - This will register all the standard admin RequestHandlers. -->'.esc() + "\n" +
|
||||
'<requestHandler name="/admin/" class="solr.admin.AdminHandlers" />'.esc() +
|
||||
'</code></pre></div>'
|
||||
);
|
||||
|
||||
hljs.highlightBlock( $( 'pre', main ).get(0) );
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
loader.hide( this );
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function()
|
||||
{
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
var app = new solr_admin( app_config );
|
||||
var app = new solr_admin( app_config );
|
||||
|
|
|
@ -1,174 +1,332 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
// #/cloud
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(cloud)$/,
|
||||
function( context )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
/^#\/(cloud)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = $( 'li[data-basepath]', app.menu_element ).attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/cloud.html',
|
||||
function( template )
|
||||
$.get
|
||||
(
|
||||
'tpl/cloud.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
var cloud_element = $( '#cloud', content_element );
|
||||
var cloud_content = $( '.content', cloud_element );
|
||||
|
||||
var debug_element = $( '#debug', cloud_element );
|
||||
var debug_button = $( 'a.debug', cloud_element );
|
||||
|
||||
var clipboard_element = $( '.clipboard', debug_element );
|
||||
var clipboard_button = $( 'a', clipboard_element );
|
||||
|
||||
debug_button
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
debug_element.trigger( 'show' );
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
var cloud_element = $( '#cloud', content_element );
|
||||
var cloud_content = $( '.content', cloud_element );
|
||||
$( '.close', debug_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
debug_element.trigger( 'hide' );
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
$( '.clipboard', debug_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
debug_element
|
||||
.die( 'show' )
|
||||
.live
|
||||
(
|
||||
'show',
|
||||
function( event )
|
||||
{
|
||||
debug_button.hide();
|
||||
debug_element.show();
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/zookeeper?wt=json&dump=true',
|
||||
dataType : 'text',
|
||||
context : debug_element,
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( '.debug', debug_element )
|
||||
.html( '<span class="loader">Loading Dump ...</span>' );
|
||||
|
||||
ZeroClipboard.setMoviePath( 'img/ZeroClipboard.swf' );
|
||||
|
||||
clipboard_client = new ZeroClipboard.Client();
|
||||
|
||||
clipboard_client.addEventListener
|
||||
(
|
||||
'load',
|
||||
function( client )
|
||||
{
|
||||
}
|
||||
);
|
||||
|
||||
clipboard_client.addEventListener
|
||||
(
|
||||
'complete',
|
||||
function( client, text )
|
||||
{
|
||||
clipboard_element
|
||||
.addClass( 'copied' );
|
||||
|
||||
clipboard_button
|
||||
.data( 'text', clipboard_button.text() )
|
||||
.text( clipboard_button.data( 'copied' ) );
|
||||
}
|
||||
);
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
clipboard_client.glue
|
||||
(
|
||||
clipboard_element.get(0),
|
||||
clipboard_button.get(0)
|
||||
);
|
||||
|
||||
clipboard_client.setText( response.replace( /\\/g, '\\\\' ) );
|
||||
|
||||
$( '.debug', debug_element )
|
||||
.removeClass( 'loader' )
|
||||
.text( response );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
)
|
||||
.die( 'hide' )
|
||||
.live
|
||||
(
|
||||
'hide',
|
||||
function( event )
|
||||
{
|
||||
$( '.debug', debug_element )
|
||||
.empty();
|
||||
|
||||
clipboard_element
|
||||
.removeClass( 'copied' );
|
||||
|
||||
clipboard_button
|
||||
.data( 'copied', clipboard_button.text() )
|
||||
.text( clipboard_button.data( 'text' ) );
|
||||
|
||||
clipboard_client.destroy();
|
||||
|
||||
debug_button.show();
|
||||
debug_element.hide();
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/zookeeper?wt=json',
|
||||
dataType : 'json',
|
||||
context : cloud_content,
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
//this
|
||||
// .html( '<div class="loader">Loading ...</div>' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var self = this;
|
||||
|
||||
$( '#tree', this )
|
||||
.jstree
|
||||
(
|
||||
{
|
||||
url : app.config.zookeeper_path,
|
||||
{
|
||||
"plugins" : [ "json_data" ],
|
||||
"json_data" : {
|
||||
"data" : response.tree,
|
||||
"progressive_render" : true
|
||||
},
|
||||
"core" : {
|
||||
"animation" : 0
|
||||
}
|
||||
}
|
||||
)
|
||||
.jstree
|
||||
(
|
||||
'open_node',
|
||||
'li:first'
|
||||
);
|
||||
|
||||
var tree_links = $( '#tree a', this );
|
||||
|
||||
tree_links
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( 'a.active', $( this ).parents( '#tree' ) )
|
||||
.removeClass( 'active' );
|
||||
|
||||
$( this )
|
||||
.addClass( 'active' );
|
||||
|
||||
cloud_content
|
||||
.addClass( 'show' );
|
||||
|
||||
var file_content = $( '#file-content' );
|
||||
|
||||
$( 'a.close', file_content )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( '#tree a.active' )
|
||||
.removeClass( 'active' );
|
||||
|
||||
cloud_content
|
||||
.removeClass( 'show' );
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : this.href,
|
||||
dataType : 'json',
|
||||
context : cloud_content,
|
||||
context : file_content,
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
//this
|
||||
// .html( '<div class="loader">Loading ...</div>' );
|
||||
//this
|
||||
// .html( 'loading' )
|
||||
// .show();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var self = this;
|
||||
|
||||
$( '#tree', this )
|
||||
.jstree
|
||||
(
|
||||
{
|
||||
"plugins" : [ "json_data" ],
|
||||
"json_data" : {
|
||||
"data" : response.tree,
|
||||
"progressive_render" : true
|
||||
},
|
||||
"core" : {
|
||||
"animation" : 0
|
||||
}
|
||||
}
|
||||
);
|
||||
//this
|
||||
// .html( '<pre>' + response.znode.data + '</pre>' );
|
||||
|
||||
var tree_links = $( '#tree a', this );
|
||||
var props = [];
|
||||
for( var key in response.znode.prop )
|
||||
{
|
||||
props.push
|
||||
(
|
||||
'<li><dl class="clearfix">' + "\n" +
|
||||
'<dt>' + key.esc() + '</dt>' + "\n" +
|
||||
'<dd>' + response.znode.prop[key].esc() + '</dd>' + "\n" +
|
||||
'</dl></li>'
|
||||
);
|
||||
}
|
||||
|
||||
tree_links
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( 'a.active', $( this ).parents( '#tree' ) )
|
||||
.removeClass( 'active' );
|
||||
|
||||
$( this )
|
||||
.addClass( 'active' );
|
||||
$( '#prop ul', this )
|
||||
.empty()
|
||||
.html( props.join( "\n" ) );
|
||||
|
||||
cloud_content
|
||||
.addClass( 'show' );
|
||||
$( '#prop ul li:odd', this )
|
||||
.addClass( 'odd' );
|
||||
|
||||
var file_content = $( '#file-content' );
|
||||
var data_element = $( '#data', this );
|
||||
|
||||
$( 'a.close', file_content )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( '#tree a.active' )
|
||||
.removeClass( 'active' );
|
||||
|
||||
cloud_content
|
||||
.removeClass( 'show' );
|
||||
if( 0 !== parseInt( response.znode.prop.children_count ) )
|
||||
{
|
||||
data_element.hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = response.znode.data
|
||||
? '<pre>' + response.znode.data.esc() + '</pre>'
|
||||
: '<em>File "' + response.znode.path + '" has no Content</em>';
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : this.href,
|
||||
dataType : 'json',
|
||||
context : file_content,
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
//this
|
||||
// .html( 'loading' )
|
||||
// .show();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
//this
|
||||
// .html( '<pre>' + response.znode.data + '</pre>' );
|
||||
|
||||
var props = [];
|
||||
for( var key in response.znode.prop )
|
||||
{
|
||||
props.push
|
||||
(
|
||||
'<li><dl class="clearfix">' + "\n" +
|
||||
'<dt>' + key.esc() + '</dt>' + "\n" +
|
||||
'<dd>' + response.znode.prop[key].esc() + '</dd>' + "\n" +
|
||||
'</dl></li>'
|
||||
);
|
||||
}
|
||||
|
||||
$( '#prop ul', this )
|
||||
.empty()
|
||||
.html( props.join( "\n" ) );
|
||||
|
||||
$( '#prop ul li:odd', this )
|
||||
.addClass( 'odd' );
|
||||
|
||||
var data_element = $( '#data', this );
|
||||
|
||||
if( 0 !== parseInt( response.znode.prop.children_count ) )
|
||||
{
|
||||
data_element.hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = response.znode.data
|
||||
? '<pre>' + response.znode.data.esc() + '</pre>'
|
||||
: '<em>File "' + response.znode.path + '" has no Content</em>';
|
||||
|
||||
data_element
|
||||
.show()
|
||||
.html( data );
|
||||
}
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
data_element
|
||||
.show()
|
||||
.html( data );
|
||||
}
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
var message = 'Loading of <code>' + app.config.zookeeper_path + '</code> failed with "' + text_status + '" '
|
||||
+ '(<code>' + error_thrown.message + '</code>)';
|
||||
|
||||
if( 200 !== xhr.status )
|
||||
{
|
||||
message = 'Loading of <code>' + app.config.zookeeper_path + '</code> failed with HTTP-Status ' + xhr.status + ' ';
|
||||
}
|
||||
|
||||
this
|
||||
.html( '<div class="block" id="error">' + message + '</div>' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
var message = 'Loading of <code>' + app.config.zookeeper_path + '</code> failed with "' + text_status + '" '
|
||||
+ '(<code>' + error_thrown.message + '</code>)';
|
||||
|
||||
if( 200 !== xhr.status )
|
||||
{
|
||||
message = 'Loading of <code>' + app.config.zookeeper_path + '</code> failed with HTTP-Status ' + xhr.status + ' ';
|
||||
}
|
||||
|
||||
this
|
||||
.html( '<div class="block" id="error">' + message + '</div>' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,495 +1,512 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
sammy.bind
|
||||
(
|
||||
'cores_load_data',
|
||||
function( event, params )
|
||||
'cores_load_data',
|
||||
function( event, params )
|
||||
{
|
||||
if( app.cores_data )
|
||||
{
|
||||
if( app.cores_data )
|
||||
{
|
||||
params.callback( app.cores_data );
|
||||
return true;
|
||||
}
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
app.cores_data = response.status;
|
||||
params.callback( app.cores_data );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
params.callback( app.cores_data );
|
||||
return true;
|
||||
}
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
app.cores_data = response.status;
|
||||
params.callback( app.cores_data );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
sammy.bind
|
||||
(
|
||||
'cores_build_navigation',
|
||||
function( event, params )
|
||||
'cores_build_navigation',
|
||||
function( event, params )
|
||||
{
|
||||
var navigation_content = ['<ul>'];
|
||||
|
||||
for( var core in params.cores )
|
||||
{
|
||||
var navigation_content = ['<ul>'];
|
||||
navigation_content.push( '<li><a href="' + params.basepath + core + '">' + core + '</a></li>' );
|
||||
}
|
||||
|
||||
for( var core in params.cores )
|
||||
{
|
||||
navigation_content.push( '<li><a href="' + params.basepath + core + '">' + core + '</a></li>' );
|
||||
}
|
||||
|
||||
params.navigation_element
|
||||
.html( navigation_content.join( "\n" ) );
|
||||
params.navigation_element
|
||||
.html( navigation_content.join( "\n" ) );
|
||||
|
||||
$( 'a[href="' + params.basepath + params.current_core + '"]', params.navigation_element ).parent()
|
||||
.addClass( 'current' );
|
||||
}
|
||||
$( 'a[href="' + params.basepath + params.current_core + '"]', params.navigation_element ).parent()
|
||||
.addClass( 'current' );
|
||||
}
|
||||
);
|
||||
|
||||
sammy.bind
|
||||
(
|
||||
'cores_load_template',
|
||||
function( event, params )
|
||||
'cores_load_template',
|
||||
function( event, params )
|
||||
{
|
||||
if( app.cores_template )
|
||||
{
|
||||
if( app.cores_template )
|
||||
{
|
||||
params.callback();
|
||||
return true;
|
||||
}
|
||||
params.callback();
|
||||
return true;
|
||||
}
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/cores.html',
|
||||
function( template )
|
||||
{
|
||||
params.content_element
|
||||
.html( template );
|
||||
$.get
|
||||
(
|
||||
'tpl/cores.html',
|
||||
function( template )
|
||||
{
|
||||
params.content_element
|
||||
.html( template );
|
||||
|
||||
app.cores_template = template;
|
||||
params.callback();
|
||||
}
|
||||
);
|
||||
}
|
||||
app.cores_template = template;
|
||||
params.callback();
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// #/cores
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(cores)$/,
|
||||
function( context )
|
||||
{
|
||||
delete app.cores_template;
|
||||
/^#\/(cores)$/,
|
||||
function( context )
|
||||
{
|
||||
delete app.cores_template;
|
||||
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_load_data',
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_load_data',
|
||||
{
|
||||
callback : function( cores )
|
||||
{
|
||||
var first_core = null;
|
||||
for( var key in cores )
|
||||
{
|
||||
if( !first_core )
|
||||
{
|
||||
callback : function( cores )
|
||||
first_core = key;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
context.redirect( context.path + '/' + first_core );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// #/cores
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(cores)\//,
|
||||
function( context )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
|
||||
var path_parts = this.path.match( /^(.+\/cores\/)(.*)$/ );
|
||||
var current_core = path_parts[2];
|
||||
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_load_data',
|
||||
{
|
||||
callback : function( cores )
|
||||
{
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_load_template',
|
||||
{
|
||||
content_element : content_element,
|
||||
callback : function()
|
||||
{
|
||||
var cores_element = $( '#cores', content_element );
|
||||
var navigation_element = $( '#navigation', cores_element );
|
||||
var list_element = $( '#list', navigation_element );
|
||||
var data_element = $( '#data', cores_element );
|
||||
var core_data_element = $( '#core-data', data_element );
|
||||
var index_data_element = $( '#index-data', data_element );
|
||||
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_build_navigation',
|
||||
{
|
||||
cores : cores,
|
||||
basepath : path_parts[1],
|
||||
current_core : current_core,
|
||||
navigation_element : list_element
|
||||
}
|
||||
);
|
||||
|
||||
var core_data = cores[current_core];
|
||||
var core_basepath = $( '#' + current_core, app.menu_element ).attr( 'data-basepath' );
|
||||
|
||||
// core-data
|
||||
|
||||
$( 'h2 span', core_data_element )
|
||||
.html( core_data.name );
|
||||
|
||||
$( '.startTime dd', core_data_element )
|
||||
.html( core_data.startTime );
|
||||
|
||||
$( '.instanceDir dd', core_data_element )
|
||||
.html( core_data.instanceDir );
|
||||
|
||||
$( '.dataDir dd', core_data_element )
|
||||
.html( core_data.dataDir );
|
||||
|
||||
// index-data
|
||||
|
||||
$( '.lastModified dd', index_data_element )
|
||||
.html( core_data.index.lastModified );
|
||||
|
||||
$( '.version dd', index_data_element )
|
||||
.html( core_data.index.version );
|
||||
|
||||
$( '.numDocs dd', index_data_element )
|
||||
.html( core_data.index.numDocs );
|
||||
|
||||
$( '.maxDoc dd', index_data_element )
|
||||
.html( core_data.index.maxDoc );
|
||||
|
||||
$( '.optimized dd', index_data_element )
|
||||
.addClass( core_data.index.optimized ? 'ico-1' : 'ico-0' );
|
||||
|
||||
$( '#actions .optimize', cores_element )
|
||||
.show();
|
||||
|
||||
$( '.optimized dd span', index_data_element )
|
||||
.html( core_data.index.optimized ? 'yes' : 'no' );
|
||||
|
||||
$( '.current dd', index_data_element )
|
||||
.addClass( core_data.index.current ? 'ico-1' : 'ico-0' );
|
||||
|
||||
$( '.current dd span', index_data_element )
|
||||
.html( core_data.index.current ? 'yes' : 'no' );
|
||||
|
||||
$( '.hasDeletions dd', index_data_element )
|
||||
.addClass( core_data.index.hasDeletions ? 'ico-1' : 'ico-0' );
|
||||
|
||||
$( '.hasDeletions dd span', index_data_element )
|
||||
.html( core_data.index.hasDeletions ? 'yes' : 'no' );
|
||||
|
||||
$( '.directory dd', index_data_element )
|
||||
.html
|
||||
(
|
||||
core_data.index.directory
|
||||
.replace( /:/g, ':​' )
|
||||
.replace( /@/g, '@​' )
|
||||
);
|
||||
|
||||
var core_names = [];
|
||||
var core_selects = $( '#actions select', cores_element );
|
||||
|
||||
for( var key in cores )
|
||||
{
|
||||
var first_core = null;
|
||||
for( var key in cores )
|
||||
core_names.push( '<option value="' + key + '">' + key + '</option>' )
|
||||
}
|
||||
|
||||
core_selects
|
||||
.html( core_names.join( "\n") );
|
||||
|
||||
$( 'option[value="' + current_core + '"]', core_selects.filter( '#swap_core' ) )
|
||||
.attr( 'selected', 'selected' );
|
||||
|
||||
$( 'option[value="' + current_core + '"]', core_selects.filter( '.other' ) )
|
||||
.attr( 'disabled', 'disabled' )
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( 'input[name="core"]', cores_element )
|
||||
.val( current_core );
|
||||
|
||||
// layout
|
||||
|
||||
var actions_element = $( '.actions', cores_element );
|
||||
var button_holder_element = $( '.button-holder.options', actions_element );
|
||||
|
||||
button_holder_element
|
||||
.die( 'toggle' )
|
||||
.live
|
||||
(
|
||||
'toggle',
|
||||
function( event )
|
||||
{
|
||||
if( !first_core )
|
||||
{
|
||||
first_core = key;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
context.redirect( context.path + '/' + first_core );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// #/cores
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(cores)\//,
|
||||
function( context )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
|
||||
var path_parts = this.path.match( /^(.+\/cores\/)(.*)$/ );
|
||||
var current_core = path_parts[2];
|
||||
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_load_data',
|
||||
{
|
||||
callback : function( cores )
|
||||
{
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_load_template',
|
||||
{
|
||||
content_element : content_element,
|
||||
callback : function()
|
||||
{
|
||||
var cores_element = $( '#cores', content_element );
|
||||
var navigation_element = $( '#navigation', cores_element );
|
||||
var list_element = $( '#list', navigation_element );
|
||||
var data_element = $( '#data', cores_element );
|
||||
var core_data_element = $( '#core-data', data_element );
|
||||
var index_data_element = $( '#index-data', data_element );
|
||||
|
||||
sammy.trigger
|
||||
(
|
||||
'cores_build_navigation',
|
||||
{
|
||||
cores : cores,
|
||||
basepath : path_parts[1],
|
||||
current_core : current_core,
|
||||
navigation_element : list_element
|
||||
}
|
||||
);
|
||||
|
||||
var core_data = cores[current_core];
|
||||
var core_basepath = $( '#' + current_core, app.menu_element ).attr( 'data-basepath' );
|
||||
|
||||
// core-data
|
||||
|
||||
$( 'h2 span', core_data_element )
|
||||
.html( core_data.name );
|
||||
|
||||
$( '.startTime dd', core_data_element )
|
||||
.html( core_data.startTime );
|
||||
|
||||
$( '.instanceDir dd', core_data_element )
|
||||
.html( core_data.instanceDir );
|
||||
|
||||
$( '.dataDir dd', core_data_element )
|
||||
.html( core_data.dataDir );
|
||||
|
||||
// index-data
|
||||
|
||||
$( '.lastModified dd', index_data_element )
|
||||
.html( core_data.index.lastModified );
|
||||
|
||||
$( '.version dd', index_data_element )
|
||||
.html( core_data.index.version );
|
||||
|
||||
$( '.numDocs dd', index_data_element )
|
||||
.html( core_data.index.numDocs );
|
||||
|
||||
$( '.maxDoc dd', index_data_element )
|
||||
.html( core_data.index.maxDoc );
|
||||
|
||||
$( '.optimized dd', index_data_element )
|
||||
.addClass( core_data.index.optimized ? 'ico-1' : 'ico-0' );
|
||||
|
||||
$( '#actions .optimize', cores_element )
|
||||
.show();
|
||||
|
||||
$( '.optimized dd span', index_data_element )
|
||||
.html( core_data.index.optimized ? 'yes' : 'no' );
|
||||
|
||||
$( '.current dd', index_data_element )
|
||||
.addClass( core_data.index.current ? 'ico-1' : 'ico-0' );
|
||||
|
||||
$( '.current dd span', index_data_element )
|
||||
.html( core_data.index.current ? 'yes' : 'no' );
|
||||
|
||||
$( '.hasDeletions dd', index_data_element )
|
||||
.addClass( core_data.index.hasDeletions ? 'ico-1' : 'ico-0' );
|
||||
|
||||
$( '.hasDeletions dd span', index_data_element )
|
||||
.html( core_data.index.hasDeletions ? 'yes' : 'no' );
|
||||
|
||||
$( '.directory dd', index_data_element )
|
||||
.html
|
||||
(
|
||||
core_data.index.directory
|
||||
.replace( /:/g, ':​' )
|
||||
.replace( /@/g, '@​' )
|
||||
);
|
||||
|
||||
var core_names = [];
|
||||
var core_selects = $( '#actions select', cores_element );
|
||||
|
||||
for( var key in cores )
|
||||
{
|
||||
core_names.push( '<option value="' + key + '">' + key + '</option>' )
|
||||
}
|
||||
|
||||
core_selects
|
||||
.html( core_names.join( "\n") );
|
||||
|
||||
$( 'option[value="' + current_core + '"]', core_selects.filter( '#swap_core' ) )
|
||||
.attr( 'selected', 'selected' );
|
||||
|
||||
$( 'option[value="' + current_core + '"]', core_selects.filter( '.other' ) )
|
||||
.attr( 'disabled', 'disabled' )
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( 'input[name="core"]', cores_element )
|
||||
.val( current_core );
|
||||
|
||||
// layout
|
||||
|
||||
var actions_element = $( '.actions', cores_element );
|
||||
var button_holder_element = $( '.button-holder.options', actions_element );
|
||||
|
||||
button_holder_element
|
||||
.die( 'toggle' )
|
||||
.live
|
||||
(
|
||||
'toggle',
|
||||
function( event )
|
||||
{
|
||||
var element = $( this );
|
||||
var element = $( this );
|
||||
|
||||
element
|
||||
.toggleClass( 'active' );
|
||||
element
|
||||
.toggleClass( 'active' );
|
||||
|
||||
if( element.hasClass( 'active' ) )
|
||||
{
|
||||
button_holder_element
|
||||
.not( element )
|
||||
.removeClass( 'active' );
|
||||
}
|
||||
}
|
||||
);
|
||||
if( element.hasClass( 'active' ) )
|
||||
{
|
||||
button_holder_element
|
||||
.not( element )
|
||||
.removeClass( 'active' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$( '.button a', button_holder_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( '.button-holder' )
|
||||
.trigger( 'toggle' );
|
||||
}
|
||||
);
|
||||
$( '.button a', button_holder_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( '.button-holder' )
|
||||
.trigger( 'toggle' );
|
||||
}
|
||||
);
|
||||
|
||||
$( 'form a.submit', button_holder_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
var element = $( this );
|
||||
var form_element = element.parents( 'form' );
|
||||
var action = $( 'input[name="action"]', form_element ).val().toLowerCase();
|
||||
$( 'form a.submit', button_holder_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
var element = $( this );
|
||||
var form_element = element.parents( 'form' );
|
||||
var action = $( 'input[name="action"]', form_element ).val().toLowerCase();
|
||||
|
||||
form_element
|
||||
.ajaxSubmit
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSubmit : function( array, form, options )
|
||||
{
|
||||
//loader
|
||||
},
|
||||
success : function( response, status_text, xhr, form )
|
||||
{
|
||||
delete app.cores_data;
|
||||
form_element
|
||||
.ajaxSubmit
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json',
|
||||
dataType : 'json',
|
||||
beforeSubmit : function( array, form, options )
|
||||
{
|
||||
//loader
|
||||
},
|
||||
success : function( response, status_text, xhr, form )
|
||||
{
|
||||
delete app.cores_data;
|
||||
|
||||
if( 'rename' === action )
|
||||
{
|
||||
context.redirect( path_parts[1] + $( 'input[name="other"]', form_element ).val() );
|
||||
}
|
||||
else if( 'swap' === action )
|
||||
{
|
||||
window.location.reload();
|
||||
}
|
||||
if( 'rename' === action )
|
||||
{
|
||||
context.redirect( path_parts[1] + $( 'input[name="other"]', form_element ).val() );
|
||||
}
|
||||
else if( 'swap' === action )
|
||||
{
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
$( 'a.reset', form )
|
||||
.trigger( 'click' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
//loader
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$( 'form a.reset', button_holder_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( 'form' )
|
||||
.resetForm();
|
||||
|
||||
$( this ).parents( '.button-holder' )
|
||||
.trigger( 'toggle' );
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
var reload_button = $( '#actions .reload', cores_element );
|
||||
reload_button
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json&action=RELOAD&core=' + current_core,
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
this
|
||||
.addClass( 'success' );
|
||||
|
||||
window.setTimeout
|
||||
(
|
||||
function()
|
||||
{
|
||||
reload_button
|
||||
.removeClass( 'success' );
|
||||
},
|
||||
5000
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
$( '#actions .unload', cores_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json&action=UNLOAD&core=' + current_core,
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
delete app.cores_data;
|
||||
context.redirect( path_parts[1].substr( 0, path_parts[1].length - 1 ) );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
var optimize_button = $( '#actions .optimize', cores_element );
|
||||
optimize_button
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/update?optimize=true&waitFlush=true&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
this
|
||||
.addClass( 'success' );
|
||||
|
||||
window.setTimeout
|
||||
(
|
||||
function()
|
||||
{
|
||||
optimize_button
|
||||
.removeClass( 'success' );
|
||||
},
|
||||
5000
|
||||
);
|
||||
|
||||
$( '.optimized dd.ico-0', index_data_element )
|
||||
.removeClass( 'ico-0' )
|
||||
.addClass( 'ico-1' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
console.warn( 'd0h, optimize broken!' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
$( '.timeago', data_element )
|
||||
.timeago();
|
||||
|
||||
$( 'ul', data_element )
|
||||
.each
|
||||
(
|
||||
function( i, element )
|
||||
{
|
||||
$( 'li:odd', element )
|
||||
.addClass( 'odd' );
|
||||
}
|
||||
)
|
||||
$( 'a.reset', form )
|
||||
.trigger( 'click' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
//loader
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$( 'form a.reset', button_holder_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( 'form' )
|
||||
.resetForm();
|
||||
|
||||
$( this ).parents( '.button-holder' )
|
||||
.trigger( 'toggle' );
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
var reload_button = $( '#actions .reload', cores_element );
|
||||
reload_button
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json&action=RELOAD&core=' + current_core,
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
this
|
||||
.addClass( 'success' );
|
||||
|
||||
window.setTimeout
|
||||
(
|
||||
function()
|
||||
{
|
||||
reload_button
|
||||
.removeClass( 'success' );
|
||||
},
|
||||
5000
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
$( '#actions .unload', cores_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : app.config.solr_path + app.config.core_admin_path + '?wt=json&action=UNLOAD&core=' + current_core,
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
delete app.cores_data;
|
||||
context.redirect( path_parts[1].substr( 0, path_parts[1].length - 1 ) );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
var optimize_button = $( '#actions .optimize', cores_element );
|
||||
optimize_button
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/update?optimize=true&waitFlush=true&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
this
|
||||
.addClass( 'success' );
|
||||
|
||||
window.setTimeout
|
||||
(
|
||||
function()
|
||||
{
|
||||
optimize_button
|
||||
.removeClass( 'success' );
|
||||
},
|
||||
5000
|
||||
);
|
||||
|
||||
$( '.optimized dd.ico-0', index_data_element )
|
||||
.removeClass( 'ico-0' )
|
||||
.addClass( 'ico-1' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
console.warn( 'd0h, optimize broken!' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
$( '.timeago', data_element )
|
||||
.timeago();
|
||||
|
||||
$( 'ul', data_element )
|
||||
.each
|
||||
(
|
||||
function( i, element )
|
||||
{
|
||||
$( 'li:odd', element )
|
||||
.addClass( 'odd' );
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,400 +1,417 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
// #/:core
|
||||
sammy.get
|
||||
(
|
||||
/^#\/([\w\d-]+)$/,
|
||||
function( context )
|
||||
/^#\/([\w\d-]+)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
content_element
|
||||
.removeClass( 'single' );
|
||||
|
||||
var core_menu = $( 'ul', this.active_core );
|
||||
if( !core_menu.data( 'admin-extra-loaded' ) )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
content_element
|
||||
.removeClass( 'single' );
|
||||
|
||||
var core_menu = $( 'ul', this.active_core );
|
||||
if( !core_menu.data( 'admin-extra-loaded' ) )
|
||||
core_menu.data( 'admin-extra-loaded', new Date() );
|
||||
|
||||
$.get
|
||||
(
|
||||
core_basepath + '/admin/file/?file=admin-extra.menu-top.html',
|
||||
function( menu_extra )
|
||||
{
|
||||
core_menu.data( 'admin-extra-loaded', new Date() );
|
||||
|
||||
$.get
|
||||
(
|
||||
core_basepath + '/admin/file/?file=admin-extra.menu-top.html',
|
||||
function( menu_extra )
|
||||
{
|
||||
core_menu
|
||||
.prepend( menu_extra );
|
||||
}
|
||||
);
|
||||
|
||||
$.get
|
||||
(
|
||||
core_basepath + '/admin/file/?file=admin-extra.menu-bottom.html',
|
||||
function( menu_extra )
|
||||
{
|
||||
core_menu
|
||||
.append( menu_extra );
|
||||
}
|
||||
);
|
||||
core_menu
|
||||
.prepend( menu_extra );
|
||||
}
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/dashboard.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
var dashboard_element = $( '#dashboard' );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/luke?wt=json&show=index&numTerms=0',
|
||||
dataType : 'json',
|
||||
context : $( '#statistics', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading ...' );
|
||||
|
||||
$( '.content' )
|
||||
.hide();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.empty()
|
||||
.hide();
|
||||
|
||||
$( '.content', this )
|
||||
.show();
|
||||
|
||||
var data = {
|
||||
'index_num-docs' : response['index']['numDocs'],
|
||||
'index_max-doc' : response['index']['maxDoc'],
|
||||
'index_version' : response['index']['version'],
|
||||
'index_segmentCount' : response['index']['segmentCount'],
|
||||
'index_last-modified' : response['index']['lastModified']
|
||||
};
|
||||
|
||||
for( var key in data )
|
||||
{
|
||||
$( '.' + key, this )
|
||||
.show();
|
||||
|
||||
$( '.value.' + key, this )
|
||||
.html( data[key] );
|
||||
}
|
||||
|
||||
var optimized_element = $( '.value.index_optimized', this );
|
||||
if( !response['index']['hasDeletions'] )
|
||||
{
|
||||
optimized_element
|
||||
.addClass( 'ico-1' );
|
||||
|
||||
$( 'span', optimized_element )
|
||||
.html( 'yes' );
|
||||
}
|
||||
else
|
||||
{
|
||||
optimized_element
|
||||
.addClass( 'ico-0' );
|
||||
|
||||
$( 'span', optimized_element )
|
||||
.html( 'no' );
|
||||
}
|
||||
|
||||
var current_element = $( '.value.index_current', this );
|
||||
if( response['index']['current'] )
|
||||
{
|
||||
current_element
|
||||
.addClass( 'ico-1' );
|
||||
|
||||
$( 'span', current_element )
|
||||
.html( 'yes' );
|
||||
}
|
||||
else
|
||||
{
|
||||
current_element
|
||||
.addClass( 'ico-0' );
|
||||
|
||||
$( 'span', current_element )
|
||||
.html( 'no' );
|
||||
}
|
||||
|
||||
$( 'a', optimized_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/update?optimize=true&waitFlush=true&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
this.parents( 'dd' )
|
||||
.removeClass( 'ico-0' )
|
||||
.addClass( 'ico-1' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
console.warn( 'd0h, optimize broken!' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
$( '.timeago', this )
|
||||
.timeago();
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Luke is not configured' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/replication?command=details&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#replication', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading' );
|
||||
|
||||
$( '.content', this )
|
||||
.hide();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.empty()
|
||||
.hide();
|
||||
|
||||
$( '.content', this )
|
||||
.show();
|
||||
|
||||
$( '.replication', context.active_core )
|
||||
.show();
|
||||
|
||||
var data = response.details;
|
||||
var is_slave = 'undefined' !== typeof( data.slave );
|
||||
var headline = $( 'h2 span', this );
|
||||
var details_element = $( '#details', this );
|
||||
var current_type_element = $( ( is_slave ? '.slave' : '.master' ), this );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
this
|
||||
.addClass( 'slave' );
|
||||
|
||||
headline
|
||||
.html( headline.html() + ' (Slave)' );
|
||||
}
|
||||
else
|
||||
{
|
||||
this
|
||||
.addClass( 'master' );
|
||||
|
||||
headline
|
||||
.html( headline.html() + ' (Master)' );
|
||||
}
|
||||
|
||||
$( '.version div', current_type_element )
|
||||
.html( data.indexVersion );
|
||||
$( '.generation div', current_type_element )
|
||||
.html( data.generation );
|
||||
$( '.size div', current_type_element )
|
||||
.html( data.indexSize );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var master_element = $( '.master', details_element );
|
||||
$( '.version div', master_element )
|
||||
.html( data.slave.masterDetails.indexVersion );
|
||||
$( '.generation div', master_element )
|
||||
.html( data.slave.masterDetails.generation );
|
||||
$( '.size div', master_element )
|
||||
.html( data.slave.masterDetails.indexSize );
|
||||
|
||||
if( data.indexVersion !== data.slave.masterDetails.indexVersion )
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
|
||||
if( data.generation !== data.slave.masterDetails.generation )
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Replication is not configured' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/dataimport?command=details&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#dataimport', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.empty()
|
||||
.hide();
|
||||
|
||||
$( 'dl', this )
|
||||
.show();
|
||||
|
||||
var data = {
|
||||
'status' : response['status'],
|
||||
'info' : response['statusMessages']['']
|
||||
};
|
||||
|
||||
for( var key in data )
|
||||
{
|
||||
$( '.' + key, this )
|
||||
.show();
|
||||
|
||||
$( '.value.' + key, this )
|
||||
.html( data[key] );
|
||||
}
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Dataimport is not configured' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/file/?file=admin-extra.html',
|
||||
dataType : 'html',
|
||||
context : $( '#admin-extra', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading' );
|
||||
|
||||
$( '.content', this )
|
||||
.hide();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.hide()
|
||||
.empty();
|
||||
|
||||
$( '.content', this )
|
||||
.show()
|
||||
.html( response );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'We found no "admin-extra.html" file.' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
);
|
||||
);
|
||||
|
||||
$.get
|
||||
(
|
||||
core_basepath + '/admin/file/?file=admin-extra.menu-bottom.html',
|
||||
function( menu_extra )
|
||||
{
|
||||
core_menu
|
||||
.append( menu_extra );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/dashboard.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
var dashboard_element = $( '#dashboard' );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/luke?wt=json&show=index&numTerms=0',
|
||||
dataType : 'json',
|
||||
context : $( '#statistics', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading ...' );
|
||||
|
||||
$( '.content' )
|
||||
.hide();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.empty()
|
||||
.hide();
|
||||
|
||||
$( '.content', this )
|
||||
.show();
|
||||
|
||||
var data = {
|
||||
'index_num-docs' : response['index']['numDocs'],
|
||||
'index_max-doc' : response['index']['maxDoc'],
|
||||
'index_version' : response['index']['version'],
|
||||
'index_segmentCount' : response['index']['segmentCount'],
|
||||
'index_last-modified' : response['index']['lastModified']
|
||||
};
|
||||
|
||||
for( var key in data )
|
||||
{
|
||||
$( '.' + key, this )
|
||||
.show();
|
||||
|
||||
$( '.value.' + key, this )
|
||||
.html( data[key] );
|
||||
}
|
||||
|
||||
var optimized_element = $( '.value.index_optimized', this );
|
||||
if( !response['index']['hasDeletions'] )
|
||||
{
|
||||
optimized_element
|
||||
.addClass( 'ico-1' );
|
||||
|
||||
$( 'span', optimized_element )
|
||||
.html( 'yes' );
|
||||
}
|
||||
else
|
||||
{
|
||||
optimized_element
|
||||
.addClass( 'ico-0' );
|
||||
|
||||
$( 'span', optimized_element )
|
||||
.html( 'no' );
|
||||
}
|
||||
|
||||
var current_element = $( '.value.index_current', this );
|
||||
if( response['index']['current'] )
|
||||
{
|
||||
current_element
|
||||
.addClass( 'ico-1' );
|
||||
|
||||
$( 'span', current_element )
|
||||
.html( 'yes' );
|
||||
}
|
||||
else
|
||||
{
|
||||
current_element
|
||||
.addClass( 'ico-0' );
|
||||
|
||||
$( 'span', current_element )
|
||||
.html( 'no' );
|
||||
}
|
||||
|
||||
$( 'a', optimized_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/update?optimize=true&waitFlush=true&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( this ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
this.parents( 'dd' )
|
||||
.removeClass( 'ico-0' )
|
||||
.addClass( 'ico-1' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
console.warn( 'd0h, optimize broken!' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
this
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
$( '.timeago', this )
|
||||
.timeago();
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Luke is not configured' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/replication?command=details&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#replication', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading' );
|
||||
|
||||
$( '.content', this )
|
||||
.hide();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.empty()
|
||||
.hide();
|
||||
|
||||
$( '.content', this )
|
||||
.show();
|
||||
|
||||
$( '.replication', context.active_core )
|
||||
.show();
|
||||
|
||||
var data = response.details;
|
||||
var is_slave = 'undefined' !== typeof( data.slave );
|
||||
var headline = $( 'h2 span', this );
|
||||
var details_element = $( '#details', this );
|
||||
var current_type_element = $( ( is_slave ? '.slave' : '.master' ), this );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
this
|
||||
.addClass( 'slave' );
|
||||
|
||||
headline
|
||||
.html( headline.html() + ' (Slave)' );
|
||||
}
|
||||
else
|
||||
{
|
||||
this
|
||||
.addClass( 'master' );
|
||||
|
||||
headline
|
||||
.html( headline.html() + ' (Master)' );
|
||||
}
|
||||
|
||||
$( '.version div', current_type_element )
|
||||
.html( data.indexVersion );
|
||||
$( '.generation div', current_type_element )
|
||||
.html( data.generation );
|
||||
$( '.size div', current_type_element )
|
||||
.html( data.indexSize );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var master_element = $( '.master', details_element );
|
||||
$( '.version div', master_element )
|
||||
.html( data.slave.masterDetails.indexVersion );
|
||||
$( '.generation div', master_element )
|
||||
.html( data.slave.masterDetails.generation );
|
||||
$( '.size div', master_element )
|
||||
.html( data.slave.masterDetails.indexSize );
|
||||
|
||||
if( data.indexVersion !== data.slave.masterDetails.indexVersion )
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
|
||||
if( data.generation !== data.slave.masterDetails.generation )
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
}
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Replication is not configured' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/dataimport?command=details&wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#dataimport', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.empty()
|
||||
.hide();
|
||||
|
||||
$( 'dl', this )
|
||||
.show();
|
||||
|
||||
var data = {
|
||||
'status' : response['status'],
|
||||
'info' : response['statusMessages']['']
|
||||
};
|
||||
|
||||
for( var key in data )
|
||||
{
|
||||
$( '.' + key, this )
|
||||
.show();
|
||||
|
||||
$( '.value.' + key, this )
|
||||
.html( data[key] );
|
||||
}
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Dataimport is not configured' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/file/?file=admin-extra.html',
|
||||
dataType : 'html',
|
||||
context : $( '#admin-extra', dashboard_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.addClass( 'loader' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'Loading' );
|
||||
|
||||
$( '.content', this )
|
||||
.hide();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.message', this )
|
||||
.hide()
|
||||
.empty();
|
||||
|
||||
$( '.content', this )
|
||||
.show()
|
||||
.html( response );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
this
|
||||
.addClass( 'disabled' );
|
||||
|
||||
$( '.message', this )
|
||||
.show()
|
||||
.html( 'We found no "admin-extra.html" file.' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
$( 'h2', this )
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,3 +1,20 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
sammy.bind
|
||||
(
|
||||
'dataimport_queryhandler_load',
|
||||
|
@ -186,7 +203,7 @@ sammy.get
|
|||
{
|
||||
var code = $(
|
||||
'<pre class="syntax language-xml"><code>' +
|
||||
xhr.responseText.replace( /\</g, '<' ).replace( /\>/g, '>' ) +
|
||||
xhr.responseText.esc() +
|
||||
'</code></pre>'
|
||||
);
|
||||
this.html( code );
|
||||
|
@ -415,38 +432,29 @@ sammy.get
|
|||
// form
|
||||
|
||||
$( 'form', form_element )
|
||||
.die( 'submit' )
|
||||
.live
|
||||
.ajaxForm
|
||||
(
|
||||
'submit',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : handler_url + '?command=full-import',
|
||||
dataType : 'xml',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
console.debug( response );
|
||||
dataimport_fetch_status();
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
console.debug( arguments );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
return false;
|
||||
url : handler_url,
|
||||
dataType : 'xml',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
console.debug( response );
|
||||
dataimport_fetch_status();
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
console.debug( arguments );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
);
|
||||
|
|
|
@ -1,37 +1,54 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
// #/:core/schema, #/:core/config
|
||||
sammy.get
|
||||
(
|
||||
/^#\/([\w\d-]+)\/(schema|config)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
/^#\/([\w\d-]+)\/(schema|config)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + app.config[ context.params.splat[1] + '_path' ],
|
||||
dataType : 'xml',
|
||||
context : $( '#content' ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.html( '<div class="loader">Loading ...</div>' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
var code = $(
|
||||
'<pre class="syntax language-xml"><code>' +
|
||||
xhr.responseText.esc() +
|
||||
'</code></pre>'
|
||||
);
|
||||
this.html( code );
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + app.config[ context.params.splat[1] + '_path' ],
|
||||
dataType : 'xml',
|
||||
context : $( '#content' ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.html( '<div class="loader">Loading ...</div>' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
var code = $(
|
||||
'<pre class="syntax language-xml"><code>' +
|
||||
xhr.responseText.esc() +
|
||||
'</code></pre>'
|
||||
);
|
||||
this.html( code );
|
||||
|
||||
if( 'success' === text_status )
|
||||
{
|
||||
hljs.highlightBlock( code.get(0) );
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
if( 'success' === text_status )
|
||||
{
|
||||
hljs.highlightBlock( code.get(0) );
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,184 +1,344 @@
|
|||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
var parse_memory_value = function( value )
|
||||
{
|
||||
if( value !== Number( value ) )
|
||||
{
|
||||
var units = 'BKMGTPEZY';
|
||||
var match = value.match( /^(\d+([,\.]\d+)?) (\w)\w?$/ );
|
||||
var value = parseFloat( match[1] ) * Math.pow( 1024, units.indexOf( match[3].toUpperCase() ) );
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
var generate_bar = function( bar_container, bar_data, convert_label_values )
|
||||
{
|
||||
bar_holder = $( '.bar-holder', bar_container );
|
||||
|
||||
var bar_level = 1;
|
||||
var max_width = Math.round( $( '.bar-max', bar_holder ).width() );
|
||||
$( '.bar-max.val', bar_holder ).text( bar_data['max'] );
|
||||
|
||||
bar_level++;
|
||||
var total_width = Math.round( ( bar_data['total'] * max_width ) / bar_data['max'] );
|
||||
$( '.bar-total.bar', bar_holder ).width( Math.max( total_width, 1 ) );
|
||||
$( '.bar-total.val', bar_holder ).text( bar_data['total'] );
|
||||
|
||||
if( bar_data['used'] )
|
||||
{
|
||||
bar_level++;
|
||||
var used_width = Math.round( ( bar_data['used'] * max_width ) / bar_data['max'] );
|
||||
$( '.bar-used.bar', bar_holder ).width( Math.min( used_width, total_width - 1 ) );
|
||||
$( '.bar-used.val', bar_holder ).text( bar_data['used'] );
|
||||
}
|
||||
|
||||
bar_holder
|
||||
.addClass( 'bar-lvl-' + bar_level );
|
||||
|
||||
var percentage = ( ( ( bar_data['used'] || bar_data['total'] ) / bar_data['max'] ) * 100 ).toFixed(1);
|
||||
|
||||
var hl = $( '[data-desc="' + bar_container.attr( 'id' ) + '"]' );
|
||||
|
||||
$( '.bar-desc', hl )
|
||||
.remove();
|
||||
|
||||
hl
|
||||
.append( ' <small class="bar-desc">' + percentage + '%</small>' );
|
||||
|
||||
if( !!convert_label_values )
|
||||
{
|
||||
$( '.val', bar_holder )
|
||||
.each
|
||||
(
|
||||
function()
|
||||
{
|
||||
var self = $( this );
|
||||
|
||||
var unit = null;
|
||||
var byte_value = parseInt( self.html() );
|
||||
|
||||
self
|
||||
.attr( 'title', 'raw: ' + byte_value + ' B' );
|
||||
|
||||
byte_value /= 1024;
|
||||
byte_value /= 1024;
|
||||
unit = 'MB';
|
||||
|
||||
if( 1024 <= byte_value )
|
||||
{
|
||||
byte_value /= 1024;
|
||||
unit = 'GB';
|
||||
}
|
||||
|
||||
byte_value = byte_value.toFixed( 2 ) + ' ' + unit;
|
||||
|
||||
self
|
||||
.text( byte_value );
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
var system_info = function( element, system_data )
|
||||
{
|
||||
// -- usage
|
||||
|
||||
var load_average = system_data['system']['uptime'].match( /load average: (.+)/ );
|
||||
if( load_average && load_average[1] )
|
||||
{
|
||||
var hl = $( '#system h2', element );
|
||||
|
||||
$( '.bar-desc', hl )
|
||||
.remove();
|
||||
|
||||
hl
|
||||
.append( ' <small class="bar-desc">' + load_average[1].split( ', ' ).join( ' ' ).esc() + '</small>' );
|
||||
}
|
||||
|
||||
// -- physical-memory-bar
|
||||
|
||||
var bar_holder = $( '#physical-memory-bar', element );
|
||||
if( !system_data['system']['totalPhysicalMemorySize'] )
|
||||
{
|
||||
bar_holder.hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
bar_holder.show();
|
||||
|
||||
var bar_data = {
|
||||
'max' : parse_memory_value( system_data['system']['totalPhysicalMemorySize'] ),
|
||||
'total' : parse_memory_value( system_data['system']['totalPhysicalMemorySize'] - system_data['system']['freePhysicalMemorySize'] )
|
||||
};
|
||||
|
||||
generate_bar( bar_holder, bar_data, true );
|
||||
}
|
||||
|
||||
// -- swap-space-bar
|
||||
|
||||
var bar_holder = $( '#swap-space-bar', element );
|
||||
if( !system_data['system']['totalSwapSpaceSize'] )
|
||||
{
|
||||
bar_holder.hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
bar_holder.show();
|
||||
|
||||
var bar_data = {
|
||||
'max' : parse_memory_value( system_data['system']['totalSwapSpaceSize'] ),
|
||||
'total' : parse_memory_value( system_data['system']['totalSwapSpaceSize'] - system_data['system']['freeSwapSpaceSize'] )
|
||||
};
|
||||
|
||||
generate_bar( bar_holder, bar_data, true );
|
||||
}
|
||||
|
||||
// -- swap-space-bar
|
||||
|
||||
var bar_holder = $( '#file-descriptor-bar', element );
|
||||
if( !system_data['system']['maxFileDescriptorCount'] )
|
||||
{
|
||||
bar_holder.hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
bar_holder.show();
|
||||
|
||||
var bar_data = {
|
||||
'max' : parse_memory_value( system_data['system']['maxFileDescriptorCount'] ),
|
||||
'total' : parse_memory_value( system_data['system']['openFileDescriptorCount'] )
|
||||
};
|
||||
|
||||
generate_bar( bar_holder, bar_data );
|
||||
}
|
||||
|
||||
0 === $( '#system div[id$="-bar"]:visible', element ).size()
|
||||
? $( '#system .no-info', element ).show()
|
||||
: $( '#system .no-info', element ).hide();
|
||||
|
||||
// -- memory-bar
|
||||
|
||||
var jvm_memory = $.extend
|
||||
(
|
||||
{
|
||||
'free' : null,
|
||||
'total' : null,
|
||||
'max' : null,
|
||||
'used' : null,
|
||||
'raw' : {
|
||||
'free' : null,
|
||||
'total' : null,
|
||||
'max' : null,
|
||||
'used' : null,
|
||||
'used%' : null
|
||||
}
|
||||
},
|
||||
system_data['jvm']['memory']
|
||||
);
|
||||
|
||||
var bar_holder = $( '#jvm-memory-bar', element );
|
||||
var bar_data = {
|
||||
'max' : parse_memory_value( jvm_memory['raw']['max'] || jvm_memory['max'] ),
|
||||
'total' : parse_memory_value( jvm_memory['raw']['total'] || jvm_memory['total'] ),
|
||||
'used' : parse_memory_value( jvm_memory['raw']['used'] || jvm_memory['used'] )
|
||||
};
|
||||
|
||||
generate_bar( bar_holder, bar_data, true );
|
||||
}
|
||||
|
||||
// #/
|
||||
sammy.get
|
||||
(
|
||||
/^#\/$/,
|
||||
function( context )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
/^#\/$/,
|
||||
function( context )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
|
||||
$( '#index', app.menu_element )
|
||||
.addClass( 'active' );
|
||||
$( '#index', app.menu_element )
|
||||
.addClass( 'active' );
|
||||
|
||||
content_element
|
||||
.html( '<div id="index"></div>' );
|
||||
content_element
|
||||
.html( '<div id="index"></div>' );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : 'tpl/index.html',
|
||||
context : $( '#index', content_element ),
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
},
|
||||
success : function( template )
|
||||
{
|
||||
var self = this;
|
||||
|
||||
this
|
||||
.html( template );
|
||||
|
||||
var data = {
|
||||
'start_time' : app.dashboard_values['jvm']['jmx']['startTime'],
|
||||
'host' : app.dashboard_values['core']['host'],
|
||||
'dir_instance' : app.dashboard_values['core']['directory']['instance'],
|
||||
'dir_data' : app.dashboard_values['core']['directory']['data'],
|
||||
'dir_index' : app.dashboard_values['core']['directory']['index'],
|
||||
'jvm_version' : app.dashboard_values['jvm']['name'] + ' (' + app.dashboard_values['jvm']['version'] + ')',
|
||||
'processors' : app.dashboard_values['jvm']['processors'],
|
||||
'solr_spec_version' : app.dashboard_values['lucene']['solr-spec-version'],
|
||||
'solr_impl_version' : app.dashboard_values['lucene']['solr-impl-version'],
|
||||
'lucene_spec_version' : app.dashboard_values['lucene']['lucene-spec-version'],
|
||||
'lucene_impl_version' : app.dashboard_values['lucene']['lucene-impl-version']
|
||||
};
|
||||
|
||||
if( app.dashboard_values['core']['directory']['cwd'] )
|
||||
{
|
||||
data['dir_cwd'] = app.dashboard_values['core']['directory']['cwd'];
|
||||
}
|
||||
|
||||
for( var key in data )
|
||||
{
|
||||
var value_element = $( '.' + key + ' dd', this );
|
||||
|
||||
value_element
|
||||
.text( data[key].esc() );
|
||||
|
||||
value_element.closest( 'li' )
|
||||
.show();
|
||||
}
|
||||
|
||||
var commandLineArgs = app.dashboard_values['jvm']['jmx']['commandLineArgs'];
|
||||
if( 0 !== commandLineArgs.length )
|
||||
{
|
||||
var cmd_arg_element = $( '.command_line_args dt', this );
|
||||
var cmd_arg_key_element = $( '.command_line_args dt', this );
|
||||
var cmd_arg_element = $( '.command_line_args dd', this );
|
||||
|
||||
for( var key in commandLineArgs )
|
||||
{
|
||||
url : 'tpl/index.html',
|
||||
context : $( '#index', content_element ),
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
},
|
||||
success : function( template )
|
||||
{
|
||||
this
|
||||
.html( template );
|
||||
cmd_arg_element = cmd_arg_element.clone();
|
||||
cmd_arg_element.text( commandLineArgs[key] );
|
||||
|
||||
var jvm_memory = $.extend
|
||||
(
|
||||
{
|
||||
'free' : null,
|
||||
'total' : null,
|
||||
'max' : null,
|
||||
'used' : null,
|
||||
'raw' : {
|
||||
'free' : null,
|
||||
'total' : null,
|
||||
'max' : null,
|
||||
'used' : null,
|
||||
'used%' : null
|
||||
}
|
||||
},
|
||||
app.dashboard_values['jvm']['memory']
|
||||
);
|
||||
|
||||
var parse_memory_value = function( value )
|
||||
{
|
||||
if( value !== Number( value ) )
|
||||
{
|
||||
var units = 'BKMGTPEZY';
|
||||
var match = value.match( /^(\d+([,\.]\d+)?) (\w)\w?$/ );
|
||||
var value = parseFloat( match[1] ) * Math.pow( 1024, units.indexOf( match[3].toUpperCase() ) );
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
var memory_data = {
|
||||
'memory-bar-max' : parse_memory_value( jvm_memory['raw']['max'] || jvm_memory['max'] ),
|
||||
'memory-bar-total' : parse_memory_value( jvm_memory['raw']['total'] || jvm_memory['total'] ),
|
||||
'memory-bar-used' : parse_memory_value( jvm_memory['raw']['used'] || jvm_memory['used'] )
|
||||
};
|
||||
|
||||
for( var key in memory_data )
|
||||
{
|
||||
$( '.value.' + key, this )
|
||||
.text( memory_data[key] );
|
||||
}
|
||||
|
||||
var data = {
|
||||
'start_time' : app.dashboard_values['jvm']['jmx']['startTime'],
|
||||
'host' : app.dashboard_values['core']['host'],
|
||||
'jvm' : app.dashboard_values['jvm']['name'] + ' (' + app.dashboard_values['jvm']['version'] + ')',
|
||||
'solr_spec_version' : app.dashboard_values['lucene']['solr-spec-version'],
|
||||
'solr_impl_version' : app.dashboard_values['lucene']['solr-impl-version'],
|
||||
'lucene_spec_version' : app.dashboard_values['lucene']['lucene-spec-version'],
|
||||
'lucene_impl_version' : app.dashboard_values['lucene']['lucene-impl-version']
|
||||
};
|
||||
|
||||
if( app.dashboard_values['core']['directory']['cwd'] )
|
||||
{
|
||||
data['cwd'] = app.dashboard_values['core']['directory']['cwd'];
|
||||
}
|
||||
|
||||
for( var key in data )
|
||||
{
|
||||
var value_element = $( '.' + key + ' dd', this );
|
||||
|
||||
value_element
|
||||
.text( data[key] );
|
||||
|
||||
value_element.closest( 'li' )
|
||||
.show();
|
||||
}
|
||||
|
||||
var commandLineArgs = app.dashboard_values['jvm']['jmx']['commandLineArgs'];
|
||||
if( 0 !== commandLineArgs.length )
|
||||
{
|
||||
var cmd_arg_element = $( '.command_line_args dt', this );
|
||||
var cmd_arg_key_element = $( '.command_line_args dt', this );
|
||||
var cmd_arg_element = $( '.command_line_args dd', this );
|
||||
|
||||
for( var key in commandLineArgs )
|
||||
{
|
||||
cmd_arg_element = cmd_arg_element.clone();
|
||||
cmd_arg_element.text( commandLineArgs[key] );
|
||||
|
||||
cmd_arg_key_element
|
||||
.after( cmd_arg_element );
|
||||
}
|
||||
|
||||
cmd_arg_key_element.closest( 'li' )
|
||||
.show();
|
||||
|
||||
$( '.command_line_args dd:last', this )
|
||||
.remove();
|
||||
|
||||
$( '.command_line_args dd:odd', this )
|
||||
.addClass( 'odd' );
|
||||
}
|
||||
|
||||
$( '.timeago', this )
|
||||
.timeago();
|
||||
|
||||
$( 'li:visible:odd', this )
|
||||
.addClass( 'odd' );
|
||||
|
||||
// -- memory bar
|
||||
|
||||
var max_height = Math.round( $( '#memory-bar-max', this ).height() );
|
||||
var total_height = Math.round( ( memory_data['memory-bar-total'] * max_height ) / memory_data['memory-bar-max'] );
|
||||
var used_height = Math.round( ( memory_data['memory-bar-used'] * max_height ) / memory_data['memory-bar-max'] );
|
||||
|
||||
var memory_bar_total_value = $( '#memory-bar-total span', this ).first();
|
||||
|
||||
$( '#memory-bar-total', this )
|
||||
.height( total_height );
|
||||
|
||||
$( '#memory-bar-used', this )
|
||||
.height( used_height );
|
||||
|
||||
if( used_height < total_height + memory_bar_total_value.height() )
|
||||
{
|
||||
memory_bar_total_value
|
||||
.addClass( 'upper' )
|
||||
.css( 'margin-top', memory_bar_total_value.height() * -1 );
|
||||
}
|
||||
|
||||
var memory_percentage = ( ( memory_data['memory-bar-used'] / memory_data['memory-bar-max'] ) * 100 ).toFixed(1);
|
||||
var headline = $( '#memory h2 span', this );
|
||||
|
||||
headline
|
||||
.text( headline.html() + ' (' + memory_percentage + '%)' );
|
||||
|
||||
$( '#memory-bar .value', this )
|
||||
.each
|
||||
(
|
||||
function()
|
||||
{
|
||||
var self = $( this );
|
||||
|
||||
var byte_value = parseInt( self.html() );
|
||||
|
||||
self
|
||||
.attr( 'title', 'raw: ' + byte_value + ' B' );
|
||||
|
||||
byte_value /= 1024;
|
||||
byte_value /= 1024;
|
||||
byte_value = byte_value.toFixed( 2 ) + ' MB';
|
||||
|
||||
self
|
||||
.text( byte_value );
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
cmd_arg_key_element
|
||||
.after( cmd_arg_element );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
cmd_arg_key_element.closest( 'li' )
|
||||
.show();
|
||||
|
||||
$( '.command_line_args dd:last', this )
|
||||
.remove();
|
||||
|
||||
$( '.command_line_args dd:odd', this )
|
||||
.addClass( 'odd' );
|
||||
}
|
||||
|
||||
$( '.timeago', this )
|
||||
.timeago();
|
||||
|
||||
$( '.index-left .block li:visible:odd', this )
|
||||
.addClass( 'odd' );
|
||||
|
||||
// -- system_info
|
||||
|
||||
system_info( this, app.dashboard_values );
|
||||
|
||||
$( '#system a.reload', this )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : environment_basepath + '/admin/system?wt=json',
|
||||
dataType : 'json',
|
||||
context : this,
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
loader.show( this );
|
||||
},
|
||||
success : function( response )
|
||||
{
|
||||
system_info( self, response );
|
||||
},
|
||||
error : function()
|
||||
{
|
||||
},
|
||||
complete : function()
|
||||
{
|
||||
loader.hide( this );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,84 +1,101 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
// #/java-properties
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(java-properties)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = $( 'li[data-basepath]', app.menu_element ).attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
/^#\/(java-properties)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = $( 'li[data-basepath]', app.menu_element ).attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
content_element
|
||||
.html( '<div id="java-properties"></div>' );
|
||||
content_element
|
||||
.html( '<div id="java-properties"></div>' );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/properties?wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#java-properties', content_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.html( '<div class="loader">Loading ...</div>' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var system_properties = response['system.properties'];
|
||||
var properties_data = {};
|
||||
var properties_content = [];
|
||||
var properties_order = [];
|
||||
|
||||
for( var key in system_properties )
|
||||
{
|
||||
var displayed_key = key.replace( /\./g, '.​' );
|
||||
var displayed_value = [ system_properties[key] ];
|
||||
var item_class = 'clearfix';
|
||||
|
||||
if( -1 !== key.indexOf( '.path' ) || -1 !== key.indexOf( '.dirs' ) )
|
||||
{
|
||||
url : core_basepath + '/admin/properties?wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#java-properties', content_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.html( '<div class="loader">Loading ...</div>' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var system_properties = response['system.properties'];
|
||||
var properties_data = {};
|
||||
var properties_content = [];
|
||||
var properties_order = [];
|
||||
|
||||
for( var key in system_properties )
|
||||
{
|
||||
var displayed_key = key.replace( /\./g, '.​' );
|
||||
var displayed_value = [ system_properties[key] ];
|
||||
var item_class = 'clearfix';
|
||||
|
||||
if( -1 !== key.indexOf( '.path' ) || -1 !== key.indexOf( '.dirs' ) )
|
||||
{
|
||||
displayed_value = system_properties[key].split( system_properties['path.separator'] );
|
||||
if( 1 < displayed_value.length )
|
||||
{
|
||||
item_class += ' multi';
|
||||
}
|
||||
}
|
||||
|
||||
var item_content = '<li><dl class="' + item_class + '">' + "\n" +
|
||||
'<dt>' + displayed_key.esc() + '</dt>' + "\n";
|
||||
|
||||
for( var i in displayed_value )
|
||||
{
|
||||
item_content += '<dd>' + displayed_value[i].esc() + '</dd>' + "\n";
|
||||
}
|
||||
|
||||
item_content += '</dl></li>';
|
||||
|
||||
properties_data[key] = item_content;
|
||||
properties_order.push( key );
|
||||
}
|
||||
|
||||
properties_order.sort();
|
||||
for( var i in properties_order )
|
||||
{
|
||||
properties_content.push( properties_data[properties_order[i]] );
|
||||
}
|
||||
|
||||
this
|
||||
.html( '<ul>' + properties_content.join( "\n" ) + '</ul>' );
|
||||
|
||||
$( 'li:odd', this )
|
||||
.addClass( 'odd' );
|
||||
|
||||
$( '.multi dd:odd', this )
|
||||
.addClass( 'odd' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
displayed_value = system_properties[key].split( system_properties['path.separator'] );
|
||||
if( 1 < displayed_value.length )
|
||||
{
|
||||
item_class += ' multi';
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
var item_content = '<li><dl class="' + item_class + '">' + "\n"
|
||||
+ '<dt>' + displayed_key.esc() + '</dt>' + "\n";
|
||||
|
||||
for( var i in displayed_value )
|
||||
{
|
||||
item_content += '<dd>' + displayed_value[i].esc() + '</dd>' + "\n";
|
||||
}
|
||||
|
||||
item_content += '</dl></li>';
|
||||
|
||||
properties_data[key] = item_content;
|
||||
properties_order.push( key );
|
||||
}
|
||||
|
||||
properties_order.sort();
|
||||
for( var i in properties_order )
|
||||
{
|
||||
properties_content.push( properties_data[properties_order[i]] );
|
||||
}
|
||||
|
||||
this
|
||||
.html( '<ul>' + properties_content.join( "\n" ) + '</ul>' );
|
||||
|
||||
$( 'li:odd', this )
|
||||
.addClass( 'odd' );
|
||||
|
||||
$( '.multi dd:odd', this )
|
||||
.addClass( 'odd' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,166 +1,236 @@
|
|||
// #/logging
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(logging)$/,
|
||||
function( context )
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
var loglevel_path = null;
|
||||
var logging_handler = function( response, text_status, xhr )
|
||||
{
|
||||
var self = this;
|
||||
var loggers = response.loggers;
|
||||
|
||||
var levels = '<div class="selector-holder"><div class="selector">' + "\n"
|
||||
+ '<a class="trigger"><span><em>null</em></span></a>' + "\n"
|
||||
+ '<ul>' + "\n";
|
||||
|
||||
for( var key in response.levels )
|
||||
{
|
||||
var level = response.levels[key].esc();
|
||||
levels += '<li><a href="#" data-level="' + level + '">' + level + '</a></li>' + "\n";
|
||||
}
|
||||
|
||||
levels += '<li class="unset"><a href="#" data-level="unset">UNSET</a></li>' + "\n"
|
||||
+ '</ul>' + "\n"
|
||||
+ '<a class="close"><span>[x]</span></a>' + "\n"
|
||||
+ '</div></div>';
|
||||
|
||||
var logger_tree = function( filter )
|
||||
{
|
||||
var logger_content = '';
|
||||
var filter_regex = new RegExp( '^' + filter + '\\.\\w+$' );
|
||||
|
||||
for( var i in loggers )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
|
||||
content_element
|
||||
.html( '<div id="logging"></div>' );
|
||||
var logger = loggers[i];
|
||||
var continue_matcher = false;
|
||||
|
||||
if( !filter )
|
||||
{
|
||||
continue_matcher = logger.name.indexOf( '.' ) !== -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue_matcher = !logger.name.match( filter_regex );
|
||||
}
|
||||
|
||||
if( continue_matcher )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var logger_class = '';
|
||||
|
||||
if( logger.set )
|
||||
{
|
||||
logger_class = 'set';
|
||||
}
|
||||
|
||||
if( !logger.level )
|
||||
{
|
||||
logger_class = 'null';
|
||||
}
|
||||
|
||||
var logger_name = logger.name.split( '.' );
|
||||
var display_name = logger_name.pop();
|
||||
|
||||
logger_content += '<li class="jstree-leaf" data-logger="' + logger.name.esc() + '">';
|
||||
logger_content += '<ins class="trigger jstree-icon"> </ins>' + "\n";
|
||||
logger_content += '<a href="#" class="trigger '+ logger_class + '"' ;
|
||||
|
||||
if( logger.level )
|
||||
{
|
||||
logger_content += 'rel="' + logger.level.esc() + '" ';
|
||||
}
|
||||
|
||||
logger_content += 'title="' + logger.name.esc() + '">' + "\n";
|
||||
|
||||
if( 0 !== logger_name.length )
|
||||
{
|
||||
logger_content += '<span class="ns">' + logger_name.join( '.' ).esc() + '.</span>';
|
||||
}
|
||||
|
||||
logger_content += '<span class="name">' + display_name.esc() + '</span>' + "\n";
|
||||
logger_content += '</a>';
|
||||
|
||||
logger_content += levels;
|
||||
|
||||
var child_logger_content = logger_tree( logger.name );
|
||||
if( child_logger_content )
|
||||
{
|
||||
logger_content += '<ul>';
|
||||
logger_content += child_logger_content;
|
||||
logger_content += '</ul>';
|
||||
}
|
||||
|
||||
logger_content += '</li>';
|
||||
}
|
||||
|
||||
return logger_content;
|
||||
};
|
||||
|
||||
var logger_content = logger_tree( null );
|
||||
|
||||
self
|
||||
.html( '<ul class="tree jstree">' + logger_content + '</ul>' );
|
||||
|
||||
$( 'li:last-child', this )
|
||||
.addClass( 'jstree-last' );
|
||||
|
||||
$( 'li.jstree-leaf > a', this )
|
||||
.each
|
||||
(
|
||||
function( index, element )
|
||||
{
|
||||
element = $( element );
|
||||
var level = element.attr( 'rel' );
|
||||
|
||||
if( level )
|
||||
{
|
||||
var selector = $( '.selector-holder', element.closest( 'li' ) );
|
||||
|
||||
$( 'a.trigger', selector )
|
||||
.text( level.esc() );
|
||||
|
||||
$( 'ul a[data-level="' + level + '"]', selector ).first()
|
||||
.addClass( 'level' );
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
$( '.trigger, .selector .close', this )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( '.selector-holder', $( this ).parents( 'li' ).first() ).first()
|
||||
.trigger( 'toggle' );
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$( '.selector-holder', this )
|
||||
.die( 'toggle')
|
||||
.live
|
||||
(
|
||||
'toggle',
|
||||
function( event )
|
||||
{
|
||||
var row = $( this ).closest( 'li' );
|
||||
|
||||
$( 'a:first', row )
|
||||
.toggleClass( 'open' );
|
||||
|
||||
$( '.selector-holder:first', row )
|
||||
.toggleClass( 'open' );
|
||||
}
|
||||
);
|
||||
|
||||
$( '.selector ul a', this )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
var element = $( this );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : loglevel_path,
|
||||
dataType : 'json',
|
||||
data : {
|
||||
'wt' : 'json',
|
||||
'set' : $( this ).parents( 'li[data-logger]' ).data( 'logger' ) + ':' + element.data( 'level' )
|
||||
},
|
||||
type : 'POST',
|
||||
context : self,
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
url : 'logging.json',
|
||||
dataType : 'json',
|
||||
context : $( '#logging', content_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.html( '<div class="loader">Loading ...</div>' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var logger = response.logger;
|
||||
|
||||
var loglevel = '<div class="loglevel %class%">' + "\n";
|
||||
loglevel += '<a class="effective_level trigger"><span>%effective_level%</span></a>' + "\n";
|
||||
loglevel += '<ul>' + "\n";
|
||||
|
||||
for( var key in response.levels )
|
||||
{
|
||||
var level = response.levels[key].esc();
|
||||
loglevel += '<li class="' + level + '"><a>' + level + '</a></li>' + "\n";
|
||||
}
|
||||
|
||||
loglevel += '<li class="UNSET"><a>UNSET</a></li>' + "\n";
|
||||
loglevel += '</ul>' + "\n";
|
||||
loglevel += '</div>';
|
||||
|
||||
var logger_tree = function( filter )
|
||||
{
|
||||
var logger_content = '';
|
||||
var filter_regex = new RegExp( '^' + filter + '\\.\\w+$' );
|
||||
|
||||
for( var logger_name in logger )
|
||||
{
|
||||
var continue_matcher = false;
|
||||
|
||||
if( !filter )
|
||||
{
|
||||
continue_matcher = logger_name.indexOf( '.' ) !== -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue_matcher = !logger_name.match( filter_regex );
|
||||
}
|
||||
|
||||
if( continue_matcher )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var has_logger_instance = !!logger[logger_name];
|
||||
|
||||
var classes = [];
|
||||
|
||||
has_logger_instance
|
||||
? classes.push( 'active' )
|
||||
: classes.push( 'inactive' );
|
||||
|
||||
logger_content += '<li class="jstree-leaf">';
|
||||
logger_content += '<ins class="jstree-icon"> </ins>';
|
||||
logger_content += '<a class="trigger ' + classes.join( ' ' ) + '" ' + "\n" +
|
||||
'title="' + logger_name.esc() + '"><span>' + "\n" +
|
||||
logger_name.split( '.' ).pop().esc() + "\n" +
|
||||
'</span></a>';
|
||||
|
||||
logger_content += loglevel
|
||||
.replace
|
||||
(
|
||||
/%class%/g,
|
||||
classes.join( ' ' )
|
||||
)
|
||||
.replace
|
||||
(
|
||||
/%effective_level%/g,
|
||||
has_logger_instance
|
||||
? logger[logger_name].effective_level
|
||||
: 'null'
|
||||
);
|
||||
|
||||
var child_logger_content = logger_tree( logger_name );
|
||||
if( child_logger_content )
|
||||
{
|
||||
logger_content += '<ul>';
|
||||
logger_content += child_logger_content;
|
||||
logger_content += '</ul>';
|
||||
}
|
||||
|
||||
logger_content += '</li>';
|
||||
}
|
||||
|
||||
return logger_content;
|
||||
}
|
||||
|
||||
var logger_content = logger_tree( null );
|
||||
|
||||
var warn = '<div>TODO, this is not yet implemented. For now, use <a href="logging" style="color:00AA00;">the old logging UI</a></div><br/>'
|
||||
|
||||
|
||||
this.html( warn + '<ul class="tree jstree">' + logger_content + '</ul>' );
|
||||
|
||||
$( 'li:last-child', this )
|
||||
.addClass( 'jstree-last' );
|
||||
|
||||
$( '.loglevel', this )
|
||||
.each
|
||||
(
|
||||
function( index, element )
|
||||
{
|
||||
var element = $( element );
|
||||
var effective_level = $( '.effective_level span', element ).text();
|
||||
|
||||
element
|
||||
.css( 'z-index', 800 - index );
|
||||
|
||||
$( 'ul .' + effective_level, element )
|
||||
.addClass( 'selected' );
|
||||
}
|
||||
);
|
||||
|
||||
$( '.trigger', this )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( '.loglevel', $( this ).parents( 'li' ).first() ).first()
|
||||
.trigger( 'toggle' );
|
||||
}
|
||||
);
|
||||
|
||||
$( '.loglevel', this )
|
||||
.die( 'toggle')
|
||||
.live
|
||||
(
|
||||
'toggle',
|
||||
function( event )
|
||||
{
|
||||
$( this )
|
||||
.toggleClass( 'open' );
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
element
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : logging_handler
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
};
|
||||
|
||||
// #/logging
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(logging)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = $( 'li[data-basepath]', app.menu_element ).attr( 'data-basepath' );
|
||||
loglevel_path = core_basepath + '/admin/loglevel';
|
||||
var content_element = $( '#content' );
|
||||
|
||||
content_element
|
||||
.html( '<div id="logging"></div>' );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : loglevel_path + '?wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#logging', content_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
this
|
||||
.html( '<div class="loader">Loading ...</div>' );
|
||||
},
|
||||
success : logging_handler
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,58 +1,72 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
$( '.ping a', app.menu_element )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : $( this ).attr( 'rel' ) + '?wt=json&ts=' + (new Date).getTime(),
|
||||
dataType : 'json',
|
||||
context: this,
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
loader.show( this );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( this )
|
||||
.removeAttr( 'title' );
|
||||
url : $( this ).attr( 'rel' ) + '?wt=json&ts=' + (new Date).getTime(),
|
||||
dataType : 'json',
|
||||
context: this,
|
||||
beforeSend : function( arr, form, options )
|
||||
{
|
||||
loader.show( this );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( this )
|
||||
.removeAttr( 'title' );
|
||||
|
||||
$( this ).parents( 'li' )
|
||||
.removeClass( 'error' );
|
||||
$( this ).parents( 'li' )
|
||||
.removeClass( 'error' );
|
||||
|
||||
var qtime_element = $( '.qtime', this );
|
||||
var qtime_element = $( '.qtime', this );
|
||||
|
||||
if( 0 === qtime_element.size() )
|
||||
{
|
||||
qtime_element = $( '<small class="qtime"> (<span></span>)</small>' );
|
||||
if( 0 === qtime_element.size() )
|
||||
{
|
||||
qtime_element = $( '<small class="qtime"> (<span></span>)</small>' );
|
||||
|
||||
$( this )
|
||||
.append
|
||||
(
|
||||
qtime_element
|
||||
);
|
||||
}
|
||||
$( this )
|
||||
.append( qtime_element );
|
||||
}
|
||||
|
||||
$( 'span', qtime_element )
|
||||
.html( response.responseHeader.QTime + 'ms' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
$( this )
|
||||
.attr( 'title', '/admin/ping is not configured (' + xhr.status + ': ' + error_thrown + ')' );
|
||||
$( 'span', qtime_element )
|
||||
.html( response.responseHeader.QTime + 'ms' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
$( this )
|
||||
.attr( 'title', '/admin/ping is not configured (' + xhr.status + ': ' + error_thrown + ')' );
|
||||
|
||||
$( this ).parents( 'li' )
|
||||
.addClass( 'error' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
loader.hide( this );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return false;
|
||||
$( this ).parents( 'li' )
|
||||
.addClass( 'error' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
loader.hide( this );
|
||||
}
|
||||
}
|
||||
);
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
|
@ -1,259 +1,274 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
sammy.bind
|
||||
(
|
||||
'plugins_load',
|
||||
function( event, params )
|
||||
'plugins_load',
|
||||
function( event, params )
|
||||
{
|
||||
var callback = function()
|
||||
{
|
||||
var callback = function()
|
||||
{
|
||||
params.callback( app.plugin_data.plugin_data, app.plugin_data.sort_table, app.plugin_data.types );
|
||||
}
|
||||
|
||||
if( app.plugin_data )
|
||||
{
|
||||
callback( app.plugin_data );
|
||||
return true;
|
||||
}
|
||||
|
||||
var core_basepath = params.active_core.attr( 'data-basepath' );
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/mbeans?stats=true&wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var types = [];
|
||||
var sort_table = {};
|
||||
var plugin_data = {};
|
||||
|
||||
var types_obj = {};
|
||||
var plugin_key = null;
|
||||
|
||||
for( var i = 0; i < response['solr-mbeans'].length; i++ )
|
||||
{
|
||||
if( !( i % 2 ) )
|
||||
{
|
||||
plugin_key = response['solr-mbeans'][i];
|
||||
}
|
||||
else
|
||||
{
|
||||
plugin_data[plugin_key] = response['solr-mbeans'][i];
|
||||
}
|
||||
}
|
||||
|
||||
for( var key in plugin_data )
|
||||
{
|
||||
sort_table[key] = {
|
||||
url : [],
|
||||
component : [],
|
||||
handler : []
|
||||
};
|
||||
for( var part_key in plugin_data[key] )
|
||||
{
|
||||
if( 0 < part_key.indexOf( '.' ) )
|
||||
{
|
||||
types_obj[key] = true;
|
||||
sort_table[key]['handler'].push( part_key );
|
||||
}
|
||||
else if( 0 === part_key.indexOf( '/' ) )
|
||||
{
|
||||
types_obj[key] = true;
|
||||
sort_table[key]['url'].push( part_key );
|
||||
}
|
||||
else
|
||||
{
|
||||
types_obj[key] = true;
|
||||
sort_table[key]['component'].push( part_key );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( var type in types_obj )
|
||||
{
|
||||
types.push( type );
|
||||
}
|
||||
types.sort();
|
||||
|
||||
app.plugin_data = {
|
||||
'plugin_data' : plugin_data,
|
||||
'sort_table' : sort_table,
|
||||
'types' : types
|
||||
}
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/plugins.html',
|
||||
function( template )
|
||||
{
|
||||
$( '#content' )
|
||||
.html( template );
|
||||
|
||||
callback( app.plugin_data );
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
params.callback( app.plugin_data.plugin_data, app.plugin_data.sort_table, app.plugin_data.types );
|
||||
}
|
||||
|
||||
if( app.plugin_data )
|
||||
{
|
||||
callback( app.plugin_data );
|
||||
return true;
|
||||
}
|
||||
|
||||
var core_basepath = params.active_core.attr( 'data-basepath' );
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/mbeans?stats=true&wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var types = [];
|
||||
var sort_table = {};
|
||||
var plugin_data = {};
|
||||
|
||||
var types_obj = {};
|
||||
var plugin_key = null;
|
||||
|
||||
for( var i = 0; i < response['solr-mbeans'].length; i++ )
|
||||
{
|
||||
if( !( i % 2 ) )
|
||||
{
|
||||
plugin_key = response['solr-mbeans'][i];
|
||||
}
|
||||
else
|
||||
{
|
||||
plugin_data[plugin_key] = response['solr-mbeans'][i];
|
||||
}
|
||||
}
|
||||
|
||||
for( var key in plugin_data )
|
||||
{
|
||||
sort_table[key] = {
|
||||
url : [],
|
||||
component : [],
|
||||
handler : []
|
||||
};
|
||||
for( var part_key in plugin_data[key] )
|
||||
{
|
||||
if( 0 < part_key.indexOf( '.' ) )
|
||||
{
|
||||
types_obj[key] = true;
|
||||
sort_table[key]['handler'].push( part_key );
|
||||
}
|
||||
else if( 0 === part_key.indexOf( '/' ) )
|
||||
{
|
||||
types_obj[key] = true;
|
||||
sort_table[key]['url'].push( part_key );
|
||||
}
|
||||
else
|
||||
{
|
||||
types_obj[key] = true;
|
||||
sort_table[key]['component'].push( part_key );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( var type in types_obj )
|
||||
{
|
||||
types.push( type );
|
||||
}
|
||||
types.sort();
|
||||
|
||||
app.plugin_data = {
|
||||
'plugin_data' : plugin_data,
|
||||
'sort_table' : sort_table,
|
||||
'types' : types
|
||||
}
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/plugins.html',
|
||||
function( template )
|
||||
{
|
||||
$( '#content' )
|
||||
.html( template );
|
||||
|
||||
callback( app.plugin_data );
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// #/:core/plugins/$type
|
||||
sammy.get
|
||||
(
|
||||
/^#\/([\w\d-]+)\/(plugins)\/(\w+)$/,
|
||||
function( context )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
var type = context.params.splat[2].toUpperCase();
|
||||
var context_path = context.path.split( '?' ).shift();
|
||||
/^#\/([\w\d-]+)\/(plugins)\/(\w+)$/,
|
||||
function( context )
|
||||
{
|
||||
var content_element = $( '#content' );
|
||||
var type = context.params.splat[2].toUpperCase();
|
||||
var context_path = context.path.split( '?' ).shift();
|
||||
|
||||
sammy.trigger
|
||||
(
|
||||
'plugins_load',
|
||||
{
|
||||
active_core : this.active_core,
|
||||
callback : function( plugin_data, plugin_sort, types )
|
||||
{
|
||||
var frame_element = $( '#frame', content_element );
|
||||
var navigation_element = $( '#navigation ul', content_element );
|
||||
sammy.trigger
|
||||
(
|
||||
'plugins_load',
|
||||
{
|
||||
active_core : this.active_core,
|
||||
callback : function( plugin_data, plugin_sort, types )
|
||||
{
|
||||
var frame_element = $( '#frame', content_element );
|
||||
var navigation_element = $( '#navigation ul', content_element );
|
||||
|
||||
var navigation_content = [];
|
||||
for( var i = 0; i < types.length; i++ )
|
||||
{
|
||||
var type_url = context.params.splat[0] + '/' +
|
||||
context.params.splat[1] + '/' +
|
||||
types[i].toLowerCase();
|
||||
var navigation_content = [];
|
||||
for( var i = 0; i < types.length; i++ )
|
||||
{
|
||||
var type_url = context.params.splat[0] + '/' + context.params.splat[1] + '/' + types[i].toLowerCase();
|
||||
|
||||
navigation_content.push
|
||||
(
|
||||
'<li class="' + types[i].toLowerCase() + '">' +
|
||||
'<a href="#/' + type_url + '">' + types[i] + '</a>' +
|
||||
'</li>'
|
||||
);
|
||||
}
|
||||
navigation_content.push
|
||||
(
|
||||
'<li class="' + types[i].toLowerCase() + '">' +
|
||||
'<a href="#/' + type_url + '">' + types[i] + '</a>' +
|
||||
'</li>'
|
||||
);
|
||||
}
|
||||
|
||||
navigation_element
|
||||
.html( navigation_content.join( "\n" ) );
|
||||
navigation_element
|
||||
.html( navigation_content.join( "\n" ) );
|
||||
|
||||
$( 'a[href="' + context_path + '"]', navigation_element )
|
||||
.parent().addClass( 'current' );
|
||||
$( 'a[href="' + context_path + '"]', navigation_element )
|
||||
.parent().addClass( 'current' );
|
||||
|
||||
var content = '<ul>';
|
||||
for( var sort_key in plugin_sort[type] )
|
||||
{
|
||||
plugin_sort[type][sort_key].sort();
|
||||
var plugin_type_length = plugin_sort[type][sort_key].length;
|
||||
var content = '<ul>';
|
||||
for( var sort_key in plugin_sort[type] )
|
||||
{
|
||||
plugin_sort[type][sort_key].sort();
|
||||
var plugin_type_length = plugin_sort[type][sort_key].length;
|
||||
|
||||
for( var i = 0; i < plugin_type_length; i++ )
|
||||
{
|
||||
content += '<li class="entry">' + "\n";
|
||||
content += '<a href="' + context_path + '?entry=' + plugin_sort[type][sort_key][i] + '">';
|
||||
content += plugin_sort[type][sort_key][i]
|
||||
content += '</a>' + "\n";
|
||||
content += '<ul class="detail">' + "\n";
|
||||
for( var i = 0; i < plugin_type_length; i++ )
|
||||
{
|
||||
content += '<li class="entry">' + "\n";
|
||||
content += '<a href="' + context_path + '?entry=' + plugin_sort[type][sort_key][i] + '">';
|
||||
content += plugin_sort[type][sort_key][i]
|
||||
content += '</a>' + "\n";
|
||||
content += '<ul class="detail">' + "\n";
|
||||
|
||||
var details = plugin_data[type][ plugin_sort[type][sort_key][i] ];
|
||||
for( var detail_key in details )
|
||||
{
|
||||
if( 'stats' !== detail_key )
|
||||
{
|
||||
var detail_value = details[detail_key];
|
||||
var details = plugin_data[type][ plugin_sort[type][sort_key][i] ];
|
||||
for( var detail_key in details )
|
||||
{
|
||||
if( 'stats' !== detail_key )
|
||||
{
|
||||
var detail_value = details[detail_key];
|
||||
|
||||
if( 'description' === detail_key )
|
||||
{
|
||||
detail_value = detail_value.replace( /,/g, ',​' );
|
||||
}
|
||||
else if( 'src' === detail_key )
|
||||
{
|
||||
detail_value = detail_value.replace( /\//g, '/​' );
|
||||
}
|
||||
if( 'description' === detail_key )
|
||||
{
|
||||
detail_value = detail_value.replace( /,/g, ',​' );
|
||||
}
|
||||
else if( 'src' === detail_key )
|
||||
{
|
||||
detail_value = detail_value.replace( /\//g, '/​' );
|
||||
}
|
||||
|
||||
content += '<li><dl class="clearfix">' + "\n";
|
||||
content += '<dt>' + detail_key + ':</dt>' + "\n";
|
||||
content += '<dd>' + detail_value + '</dd>' + "\n";
|
||||
content += '</dl></li>' + "\n";
|
||||
}
|
||||
else if( 'stats' === detail_key && details[detail_key] )
|
||||
{
|
||||
content += '<li class="stats clearfix">' + "\n";
|
||||
content += '<span>' + detail_key + ':</span>' + "\n";
|
||||
content += '<ul>' + "\n";
|
||||
|
||||
for( var stats_key in details[detail_key] )
|
||||
{
|
||||
var stats_value = details[detail_key][stats_key];
|
||||
|
||||
if( 'readerDir' === stats_key )
|
||||
{
|
||||
stats_value = stats_value.replace( /@/g, '@​' );
|
||||
}
|
||||
|
||||
content += '<li><dl class="clearfix">' + "\n";
|
||||
content += '<dt>' + stats_key + ':</dt>' + "\n";
|
||||
content += '<dd>' + stats_value + '</dd>' + "\n";
|
||||
content += '</dl></li>' + "\n";
|
||||
}
|
||||
|
||||
content += '</ul></li>' + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
content += '</ul>' + "\n";
|
||||
}
|
||||
}
|
||||
content += '</ul>' + "\n";
|
||||
|
||||
frame_element
|
||||
.html( content );
|
||||
|
||||
$( 'a[href="' + decodeURIComponent( context.path ) + '"]', frame_element )
|
||||
.parent().addClass( 'expanded' );
|
||||
|
||||
$( '.entry', frame_element )
|
||||
.each
|
||||
(
|
||||
function( i, entry )
|
||||
{
|
||||
$( '.detail > li', entry ).not( '.stats' ).filter( ':even' )
|
||||
.addClass( 'odd' );
|
||||
|
||||
$( '.stats li:odd', entry )
|
||||
.addClass( 'odd' );
|
||||
}
|
||||
);
|
||||
content += '<li><dl class="clearfix">' + "\n";
|
||||
content += '<dt>' + detail_key + ':</dt>' + "\n";
|
||||
content += '<dd>' + detail_value + '</dd>' + "\n";
|
||||
content += '</dl></li>' + "\n";
|
||||
}
|
||||
else if( 'stats' === detail_key && details[detail_key] )
|
||||
{
|
||||
content += '<li class="stats clearfix">' + "\n";
|
||||
content += '<span>' + detail_key + ':</span>' + "\n";
|
||||
content += '<ul>' + "\n";
|
||||
|
||||
for( var stats_key in details[detail_key] )
|
||||
{
|
||||
var stats_value = details[detail_key][stats_key];
|
||||
|
||||
if( 'readerDir' === stats_key )
|
||||
{
|
||||
stats_value = stats_value.replace( /@/g, '@​' );
|
||||
}
|
||||
|
||||
content += '<li><dl class="clearfix">' + "\n";
|
||||
content += '<dt>' + stats_key + ':</dt>' + "\n";
|
||||
content += '<dd>' + stats_value + '</dd>' + "\n";
|
||||
content += '</dl></li>' + "\n";
|
||||
}
|
||||
|
||||
content += '</ul></li>' + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
content += '</ul>' + "\n";
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
content += '</ul>' + "\n";
|
||||
|
||||
frame_element
|
||||
.html( content );
|
||||
|
||||
$( 'a[href="' + decodeURIComponent( context.path ) + '"]', frame_element )
|
||||
.parent().addClass( 'expanded' );
|
||||
|
||||
$( '.entry', frame_element )
|
||||
.each
|
||||
(
|
||||
function( i, entry )
|
||||
{
|
||||
$( '.detail > li', entry ).not( '.stats' ).filter( ':even' )
|
||||
.addClass( 'odd' );
|
||||
|
||||
$( '.stats li:odd', entry )
|
||||
.addClass( 'odd' );
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// #/:core/plugins
|
||||
sammy.get
|
||||
(
|
||||
/^#\/([\w\d-]+)\/(plugins)$/,
|
||||
function( context )
|
||||
{
|
||||
delete app.plugin_data;
|
||||
/^#\/([\w\d-]+)\/(plugins)$/,
|
||||
function( context )
|
||||
{
|
||||
delete app.plugin_data;
|
||||
|
||||
sammy.trigger
|
||||
(
|
||||
'plugins_load',
|
||||
{
|
||||
active_core : this.active_core,
|
||||
callback : function( plugin_data, plugin_sort, types )
|
||||
{
|
||||
context.redirect( context.path + '/' + types[0].toLowerCase() );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
sammy.trigger
|
||||
(
|
||||
'plugins_load',
|
||||
{
|
||||
active_core : this.active_core,
|
||||
callback : function( plugin_data, plugin_sort, types )
|
||||
{
|
||||
context.redirect( context.path + '/' + types[0].toLowerCase() );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,142 +1,155 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
// #/:core/query
|
||||
sammy.get
|
||||
(
|
||||
/^#\/([\w\d-]+)\/(query)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
/^#\/([\w\d-]+)\/(query)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/query.html',
|
||||
function( template )
|
||||
$.get
|
||||
(
|
||||
'tpl/query.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
var query_element = $( '#query', content_element );
|
||||
var query_form = $( '#form form', query_element );
|
||||
var url_element = $( '#url', query_element );
|
||||
var result_element = $( '#result', query_element );
|
||||
var response_element = $( '#response iframe', result_element );
|
||||
|
||||
url_element
|
||||
.die( 'change' )
|
||||
.live
|
||||
(
|
||||
'change',
|
||||
function( event )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
var check_iframe_ready_state = function()
|
||||
{
|
||||
var iframe_element = response_element.get(0).contentWindow.document || response_element.get(0).document;
|
||||
|
||||
var query_element = $( '#query', content_element );
|
||||
var query_form = $( '#form form', query_element );
|
||||
var url_element = $( '#url', query_element );
|
||||
var result_element = $( '#result', query_element );
|
||||
var response_element = $( '#response iframe', result_element );
|
||||
|
||||
url_element
|
||||
.die( 'change' )
|
||||
.live
|
||||
(
|
||||
'change',
|
||||
function( event )
|
||||
{
|
||||
var check_iframe_ready_state = function()
|
||||
{
|
||||
var iframe_element = response_element.get(0).contentWindow.document ||
|
||||
response_element.get(0).document;
|
||||
|
||||
if( !iframe_element )
|
||||
{
|
||||
console.debug( 'no iframe_element found', response_element );
|
||||
return false;
|
||||
}
|
||||
|
||||
url_element
|
||||
.addClass( 'loader' );
|
||||
|
||||
if( 'complete' === iframe_element.readyState )
|
||||
{
|
||||
url_element
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
else
|
||||
{
|
||||
window.setTimeout( check_iframe_ready_state, 100 );
|
||||
}
|
||||
}
|
||||
check_iframe_ready_state();
|
||||
|
||||
response_element
|
||||
.attr( 'src', this.href );
|
||||
|
||||
if( !response_element.hasClass( 'resized' ) )
|
||||
{
|
||||
response_element
|
||||
.addClass( 'resized' )
|
||||
.css( 'height', $( '#main' ).height() - 60 );
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
$( '.optional legend input[type=checkbox]', query_form )
|
||||
.die( 'change' )
|
||||
.live
|
||||
(
|
||||
'change',
|
||||
function( event )
|
||||
{
|
||||
var fieldset = $( this ).parents( 'fieldset' );
|
||||
|
||||
this.checked
|
||||
? fieldset.addClass( 'expanded' )
|
||||
: fieldset.removeClass( 'expanded' );
|
||||
}
|
||||
)
|
||||
|
||||
for( var key in context.params )
|
||||
if( !iframe_element )
|
||||
{
|
||||
if( 'string' === typeof context.params[key] )
|
||||
{
|
||||
$( '[name="' + key + '"]', query_form )
|
||||
.val( context.params[key] );
|
||||
}
|
||||
console.debug( 'no iframe_element found', response_element );
|
||||
return false;
|
||||
}
|
||||
|
||||
query_form
|
||||
.die( 'submit' )
|
||||
.live
|
||||
(
|
||||
'submit',
|
||||
function( event )
|
||||
{
|
||||
var form_map = {};
|
||||
var form_values = [];
|
||||
var all_form_values = query_form.formToArray();
|
||||
url_element
|
||||
.addClass( 'loader' );
|
||||
|
||||
for( var i = 0; i < all_form_values.length; i++ )
|
||||
{
|
||||
if( !all_form_values[i].value || 0 === all_form_values[i].value.length )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if( 'complete' === iframe_element.readyState )
|
||||
{
|
||||
url_element
|
||||
.removeClass( 'loader' );
|
||||
}
|
||||
else
|
||||
{
|
||||
window.setTimeout( check_iframe_ready_state, 100 );
|
||||
}
|
||||
}
|
||||
check_iframe_ready_state();
|
||||
|
||||
var name_parts = all_form_values[i].name.split( '.' );
|
||||
if( 1 < name_parts.length && !form_map[name_parts[0]] )
|
||||
{
|
||||
console.debug( 'skip "' + all_form_values[i].name + '", parent missing' );
|
||||
continue;
|
||||
}
|
||||
|
||||
form_map[all_form_values[i].name] = all_form_values[i].value;
|
||||
form_values.push( all_form_values[i] );
|
||||
}
|
||||
|
||||
var query_url = window.location.protocol + '//' +
|
||||
window.location.host +
|
||||
core_basepath +
|
||||
'/select?' +
|
||||
$.param( form_values );
|
||||
response_element
|
||||
.attr( 'src', this.href );
|
||||
|
||||
url_element
|
||||
.attr( 'href', query_url )
|
||||
.text( query_url )
|
||||
.trigger( 'change' );
|
||||
|
||||
result_element
|
||||
.show();
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
if( !response_element.hasClass( 'resized' ) )
|
||||
{
|
||||
response_element
|
||||
.addClass( 'resized' )
|
||||
.css( 'height', $( '#main' ).height() - 60 );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
)
|
||||
|
||||
$( '.optional legend input[type=checkbox]', query_form )
|
||||
.die( 'change' )
|
||||
.live
|
||||
(
|
||||
'change',
|
||||
function( event )
|
||||
{
|
||||
var fieldset = $( this ).parents( 'fieldset' );
|
||||
|
||||
this.checked
|
||||
? fieldset.addClass( 'expanded' )
|
||||
: fieldset.removeClass( 'expanded' );
|
||||
}
|
||||
)
|
||||
|
||||
for( var key in context.params )
|
||||
{
|
||||
if( 'string' === typeof context.params[key] )
|
||||
{
|
||||
$( '[name="' + key + '"]', query_form )
|
||||
.val( context.params[key] );
|
||||
}
|
||||
}
|
||||
|
||||
query_form
|
||||
.die( 'submit' )
|
||||
.live
|
||||
(
|
||||
'submit',
|
||||
function( event )
|
||||
{
|
||||
var form_map = {};
|
||||
var form_values = [];
|
||||
var all_form_values = query_form.formToArray();
|
||||
|
||||
for( var i = 0; i < all_form_values.length; i++ )
|
||||
{
|
||||
if( !all_form_values[i].value || 0 === all_form_values[i].value.length )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var name_parts = all_form_values[i].name.split( '.' );
|
||||
if( 1 < name_parts.length && !form_map[name_parts[0]] )
|
||||
{
|
||||
console.debug( 'skip "' + all_form_values[i].name + '", parent missing' );
|
||||
continue;
|
||||
}
|
||||
|
||||
form_map[all_form_values[i].name] = all_form_values[i].value;
|
||||
form_values.push( all_form_values[i] );
|
||||
}
|
||||
|
||||
var query_url = window.location.protocol + '//' + window.location.host
|
||||
+ core_basepath + '/select?' + $.param( form_values );
|
||||
|
||||
url_element
|
||||
.attr( 'href', query_url )
|
||||
.text( query_url )
|
||||
.trigger( 'change' );
|
||||
|
||||
result_element
|
||||
.show();
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,443 +1,557 @@
|
|||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
var timer_element = null;
|
||||
var timer_timeout = null;
|
||||
|
||||
var core_basepath = null;
|
||||
var navigation_element = null;
|
||||
var replication_element = null;
|
||||
|
||||
var convert_duration_to_seconds = function( str )
|
||||
{
|
||||
var ret = 0;
|
||||
var parts = new String( str ).split( ':' ).reverse();
|
||||
var parts_count = parts.length;
|
||||
|
||||
for( var i = 0; i < parts_count; i++ )
|
||||
{
|
||||
ret += parseInt( parts[i], 10 ) * Math.pow( 60, i );
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
var convert_seconds_to_readable_time = function( value )
|
||||
{
|
||||
var text = [];
|
||||
value = parseInt( value );
|
||||
|
||||
var minutes = Math.floor( value / 60 );
|
||||
var hours = Math.floor( minutes / 60 );
|
||||
|
||||
if( 0 !== hours )
|
||||
{
|
||||
text.push( hours + 'h' );
|
||||
value -= hours * 60 * 60;
|
||||
minutes -= hours * 60;
|
||||
}
|
||||
|
||||
if( 0 !== minutes )
|
||||
{
|
||||
text.push( minutes + 'm' );
|
||||
value -= minutes * 60;
|
||||
}
|
||||
|
||||
if( 0 !== value )
|
||||
{
|
||||
text.push( value + 's' );
|
||||
}
|
||||
|
||||
return text.join( ' ' );
|
||||
}
|
||||
|
||||
var init_timer = function( next_tick )
|
||||
{
|
||||
if( timer_timeout )
|
||||
{
|
||||
window.clearTimeout( timer_timeout );
|
||||
}
|
||||
update_timer( next_tick );
|
||||
}
|
||||
|
||||
var update_timer = function( next_tick )
|
||||
{
|
||||
if( 0 === next_tick )
|
||||
{
|
||||
replication_fetch_status();
|
||||
return false;
|
||||
}
|
||||
|
||||
$( 'p .tick', timer_element )
|
||||
.text( convert_seconds_to_readable_time( next_tick ) );
|
||||
|
||||
timer_timeout = window.setTimeout
|
||||
(
|
||||
'update_timer( ' + --next_tick + ' )',
|
||||
1000
|
||||
);
|
||||
}
|
||||
|
||||
var clear_timer = function()
|
||||
{
|
||||
if( timer_timeout )
|
||||
{
|
||||
window.clearTimeout( timer_timeout );
|
||||
timer_element.hide();
|
||||
}
|
||||
}
|
||||
|
||||
var replication_fetch_status = function()
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/replication?command=details&wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( '.refresh-status', navigation_element )
|
||||
.addClass( 'loader' );
|
||||
|
||||
clear_timer();
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.refresh-status', navigation_element )
|
||||
.removeClass( 'loader' );
|
||||
|
||||
var data = response.details;
|
||||
var is_slave = 'true' === data.isSlave;
|
||||
|
||||
replication_element
|
||||
.addClass( is_slave ? 'slave' : 'master' );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var error_element = $( '#error', replication_element );
|
||||
|
||||
if( data.slave.ERROR )
|
||||
{
|
||||
error_element
|
||||
.html( data.slave.ERROR )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
error_element
|
||||
.hide()
|
||||
.empty();
|
||||
}
|
||||
|
||||
var progress_element = $( '#progress', replication_element );
|
||||
|
||||
var start_element = $( '#start', progress_element );
|
||||
$( 'span', start_element )
|
||||
.text( data.slave.replicationStartTime );
|
||||
|
||||
var eta_element = $( '#eta', progress_element );
|
||||
$( 'span', eta_element )
|
||||
.text( convert_seconds_to_readable_time( data.slave.timeRemaining ) );
|
||||
|
||||
var bar_element = $( '#bar', progress_element );
|
||||
$( '.files span', bar_element )
|
||||
.text( data.slave.numFilesToDownload );
|
||||
$( '.size span', bar_element )
|
||||
.text( data.slave.bytesToDownload );
|
||||
|
||||
var speed_element = $( '#speed', progress_element );
|
||||
$( 'span', speed_element )
|
||||
.text( data.slave.downloadSpeed );
|
||||
|
||||
var done_element = $( '#done', progress_element );
|
||||
$( '.files span', done_element )
|
||||
.text( data.slave.numFilesDownloaded );
|
||||
$( '.size span', done_element )
|
||||
.text( data.slave.bytesDownloaded );
|
||||
$( '.percent span', done_element )
|
||||
.text( parseInt(data.slave.totalPercent ) );
|
||||
|
||||
var percent = parseInt( data.slave.totalPercent );
|
||||
if( 0 === percent )
|
||||
{
|
||||
done_element
|
||||
.css( 'width', '1px' );
|
||||
}
|
||||
else
|
||||
{
|
||||
done_element
|
||||
.css( 'width', percent + '%' );
|
||||
}
|
||||
|
||||
var current_file_element = $( '#current-file', replication_element );
|
||||
$( '.file', current_file_element )
|
||||
.text( data.slave.currentFile );
|
||||
$( '.done', current_file_element )
|
||||
.text( data.slave.currentFileSizeDownloaded );
|
||||
$( '.total', current_file_element )
|
||||
.text( data.slave.currentFileSize );
|
||||
$( '.percent', current_file_element )
|
||||
.text( parseInt( data.slave.currentFileSizePercent ) );
|
||||
|
||||
if( !data.slave.indexReplicatedAtList )
|
||||
{
|
||||
data.slave.indexReplicatedAtList = [];
|
||||
}
|
||||
|
||||
if( !data.slave.replicationFailedAtList )
|
||||
{
|
||||
data.slave.replicationFailedAtList = [];
|
||||
}
|
||||
|
||||
var iterations_element = $( '#iterations', replication_element );
|
||||
var iterations_list = $( '.iterations ul', iterations_element );
|
||||
|
||||
var iterations_data = [];
|
||||
var iterations_obj = {};
|
||||
|
||||
for( var i in data.slave.indexReplicatedAtList )
|
||||
{
|
||||
var date = data.slave.indexReplicatedAtList[i];
|
||||
if( !iterations_obj[date] )
|
||||
{
|
||||
iterations_obj[date] = true;
|
||||
iterations_data.push( date );
|
||||
}
|
||||
}
|
||||
|
||||
for( var i in data.slave.replicationFailedAtList )
|
||||
{
|
||||
var date = data.slave.replicationFailedAtList[i];
|
||||
if( !iterations_obj[date] )
|
||||
{
|
||||
iterations_obj[date] = true;
|
||||
iterations_data.push( date );
|
||||
}
|
||||
}
|
||||
|
||||
iterations_data.sort().reverse();
|
||||
|
||||
if( 0 !== iterations_data.length )
|
||||
{
|
||||
var iterations = [];
|
||||
for( var i = 0; i < iterations_data.length; i++ )
|
||||
{
|
||||
iterations.push( '<li data-date="' + iterations_data[i] + '">' + iterations_data[i] + '</li>' );
|
||||
}
|
||||
|
||||
iterations_list
|
||||
.html( iterations.join( "\n" ) )
|
||||
.show();
|
||||
|
||||
$( data.slave.indexReplicatedAtList )
|
||||
.each
|
||||
(
|
||||
function( key, value )
|
||||
{
|
||||
$( 'li[data-date="' + value + '"]', iterations_list )
|
||||
.addClass( 'replicated' );
|
||||
}
|
||||
);
|
||||
|
||||
if( data.slave.indexReplicatedAt )
|
||||
{
|
||||
$( 'li[data-date="' + data.slave.indexReplicatedAt + '"]', iterations_list )
|
||||
.addClass( 'latest' );
|
||||
}
|
||||
|
||||
$( data.slave.replicationFailedAtList )
|
||||
.each
|
||||
(
|
||||
function( key, value )
|
||||
{
|
||||
$( 'li[data-date="' + value + '"]', iterations_list )
|
||||
.addClass( 'failed' );
|
||||
}
|
||||
);
|
||||
|
||||
if( data.slave.replicationFailedAt )
|
||||
{
|
||||
$( 'li[data-date="' + data.slave.replicationFailedAt + '"]', iterations_list )
|
||||
.addClass( 'latest' );
|
||||
}
|
||||
|
||||
if( 0 !== $( 'li:hidden', iterations_list ).size() )
|
||||
{
|
||||
$( 'a', iterations_element )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$( 'a', iterations_element )
|
||||
.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var details_element = $( '#details', replication_element );
|
||||
var current_type_element = $( ( is_slave ? '.slave' : '.master' ), details_element );
|
||||
|
||||
$( '.version div', current_type_element )
|
||||
.html( data.indexVersion );
|
||||
$( '.generation div', current_type_element )
|
||||
.html( data.generation );
|
||||
$( '.size div', current_type_element )
|
||||
.html( data.indexSize );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var master_element = $( '.master', details_element );
|
||||
$( '.version div', master_element )
|
||||
.html( data.slave.masterDetails.indexVersion );
|
||||
$( '.generation div', master_element )
|
||||
.html( data.slave.masterDetails.generation );
|
||||
$( '.size div', master_element )
|
||||
.html( data.slave.masterDetails.indexSize );
|
||||
|
||||
if( data.indexVersion !== data.slave.masterDetails.indexVersion )
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
|
||||
if( data.generation !== data.slave.masterDetails.generation )
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
}
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var settings_element = $( '#settings', replication_element );
|
||||
|
||||
if( data.slave.masterUrl )
|
||||
{
|
||||
$( '.masterUrl dd', settings_element )
|
||||
.html( response.details.slave.masterUrl )
|
||||
.parents( 'li' ).show();
|
||||
}
|
||||
|
||||
var polling_content = ' ';
|
||||
var polling_ico = 'ico-1';
|
||||
|
||||
if( 'true' === data.slave.isPollingDisabled )
|
||||
{
|
||||
polling_ico = 'ico-0';
|
||||
|
||||
$( '.disable-polling', navigation_element ).hide();
|
||||
$( '.enable-polling', navigation_element ).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.disable-polling', navigation_element ).show();
|
||||
$( '.enable-polling', navigation_element ).hide();
|
||||
|
||||
if( data.slave.pollInterval )
|
||||
{
|
||||
polling_content = '(interval: ' + data.slave.pollInterval + ')';
|
||||
}
|
||||
}
|
||||
|
||||
$( '.isPollingDisabled dd', settings_element )
|
||||
.removeClass( 'ico-0' )
|
||||
.removeClass( 'ico-1' )
|
||||
.addClass( polling_ico )
|
||||
.html( polling_content )
|
||||
.parents( 'li' ).show();
|
||||
|
||||
if( 'true' === data.slave.isReplicating )
|
||||
{
|
||||
replication_element
|
||||
.addClass( 'replicating' );
|
||||
|
||||
$( '.replicate-now', navigation_element ).hide();
|
||||
$( '.abort-replication', navigation_element ).show();
|
||||
|
||||
window.setTimeout( replication_fetch_status, 1000 );
|
||||
}
|
||||
else
|
||||
{
|
||||
replication_element
|
||||
.removeClass( 'replicating' );
|
||||
|
||||
$( '.replicate-now', navigation_element ).show();
|
||||
$( '.abort-replication', navigation_element ).hide();
|
||||
|
||||
|
||||
if( 'false' === data.slave.isPollingDisabled && data.slave.pollInterval )
|
||||
{
|
||||
timer_element = $( '.timer', navigation_element );
|
||||
approx_element = $( '.approx', timer_element );
|
||||
|
||||
var next_tick = convert_duration_to_seconds( data.slave.pollInterval );
|
||||
approx_element.show();
|
||||
|
||||
if( data.slave.nextExecutionAt )
|
||||
{
|
||||
var nextExecutionAt = new SolrDate( data.slave.nextExecutionAt );
|
||||
var currentDate = new SolrDate( data.slave.currentDate );
|
||||
|
||||
if( nextExecutionAt.getTime() > currentDate.getTime() )
|
||||
{
|
||||
next_tick = ( nextExecutionAt.getTime() - currentDate.getTime() ) / 1000;
|
||||
approx_element.hide();
|
||||
|
||||
$( 'small', timer_element )
|
||||
.text( data.slave.nextExecutionAt )
|
||||
.show();
|
||||
}
|
||||
}
|
||||
|
||||
init_timer( next_tick );
|
||||
|
||||
timer_element
|
||||
.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var master_settings_element = $( '#master-settings', replication_element );
|
||||
var master_data = is_slave ? data.slave.masterDetails.master : data.master;
|
||||
|
||||
var replication_icon = 'ico-0';
|
||||
if( 'true' === master_data.replicationEnabled )
|
||||
{
|
||||
replication_icon = 'ico-1';
|
||||
|
||||
$( '.disable-replication', navigation_element ).show();
|
||||
$( '.enable-replication', navigation_element ).hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.disable-replication', navigation_element ).hide();
|
||||
$( '.enable-replication', navigation_element ).show();
|
||||
}
|
||||
|
||||
$( '.replicationEnabled dd', master_settings_element )
|
||||
.removeClass( 'ico-0' )
|
||||
.removeClass( 'ico-1' )
|
||||
.addClass( replication_icon )
|
||||
.parents( 'li' ).show();
|
||||
|
||||
$( '.replicateAfter dd', master_settings_element )
|
||||
.html( master_data.replicateAfter.join( ', ' ) )
|
||||
.parents( 'li' ).show();
|
||||
|
||||
if( master_data.confFiles )
|
||||
{
|
||||
var conf_files = [];
|
||||
var conf_data = master_data.confFiles.split( ',' );
|
||||
|
||||
for( var i = 0; i < conf_data.length; i++ )
|
||||
{
|
||||
var item = conf_data[i];
|
||||
|
||||
if( - 1 !== item.indexOf( ':' ) )
|
||||
{
|
||||
info = item.split( ':' );
|
||||
item = '<abbr title="' + info[0] + ' » ' + info[1] + '">' + ( is_slave ? info[1] : info[0] ) + '</abbr>';
|
||||
}
|
||||
|
||||
conf_files.push( item );
|
||||
}
|
||||
|
||||
$( '.confFiles dd', master_settings_element )
|
||||
.html( conf_files.join( ', ' ) )
|
||||
.parents( 'li' ).show();
|
||||
}
|
||||
|
||||
|
||||
$( '.block', replication_element ).last()
|
||||
.addClass( 'last' );
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
$( '#content' )
|
||||
.html( 'sorry, no replication-handler defined!' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// #/:core/replication
|
||||
sammy.get
|
||||
(
|
||||
/^#\/([\w\d-]+)\/(replication)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
/^#\/([\w\d-]+)\/(replication)$/,
|
||||
function( context )
|
||||
{
|
||||
core_basepath = this.active_core.attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
$.get
|
||||
(
|
||||
'tpl/replication.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
$.get
|
||||
(
|
||||
'tpl/replication.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
var replication_element = $( '#replication', content_element );
|
||||
var navigation_element = $( '#navigation', replication_element );
|
||||
replication_element = $( '#replication', content_element );
|
||||
navigation_element = $( '#navigation', replication_element );
|
||||
|
||||
function convert_seconds_to_readable_time( value )
|
||||
{
|
||||
var text = [];
|
||||
value = parseInt( value );
|
||||
replication_fetch_status();
|
||||
|
||||
var minutes = Math.floor( value / 60 );
|
||||
var hours = Math.floor( minutes / 60 );
|
||||
|
||||
if( 0 !== hours )
|
||||
{
|
||||
text.push( hours + 'h' );
|
||||
value -= hours * 60 * 60;
|
||||
minutes -= hours * 60;
|
||||
}
|
||||
|
||||
if( 0 !== minutes )
|
||||
{
|
||||
text.push( minutes + 'm' );
|
||||
value -= minutes * 60;
|
||||
}
|
||||
|
||||
text.push( value + 's' );
|
||||
|
||||
return text.join( ' ' );
|
||||
}
|
||||
|
||||
function replication_fetch_status()
|
||||
{
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/replication?command=details&wt=json',
|
||||
dataType : 'json',
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
$( '.refresh-status', navigation_element )
|
||||
.addClass( 'loader' );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
$( '.refresh-status', navigation_element )
|
||||
.removeClass( 'loader' );
|
||||
|
||||
var data = response.details;
|
||||
var is_slave = 'true' === data.isSlave;
|
||||
|
||||
replication_element
|
||||
.addClass( is_slave ? 'slave' : 'master' );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var error_element = $( '#error', replication_element );
|
||||
|
||||
if( data.slave.ERROR )
|
||||
{
|
||||
error_element
|
||||
.html( data.slave.ERROR )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
error_element
|
||||
.hide()
|
||||
.empty();
|
||||
}
|
||||
|
||||
var progress_element = $( '#progress', replication_element );
|
||||
|
||||
var start_element = $( '#start', progress_element );
|
||||
$( 'span', start_element )
|
||||
.text( data.slave.replicationStartTime );
|
||||
|
||||
var eta_element = $( '#eta', progress_element );
|
||||
$( 'span', eta_element )
|
||||
.text( convert_seconds_to_readable_time( data.slave.timeRemaining ) );
|
||||
|
||||
var bar_element = $( '#bar', progress_element );
|
||||
$( '.files span', bar_element )
|
||||
.text( data.slave.numFilesToDownload );
|
||||
$( '.size span', bar_element )
|
||||
.text( data.slave.bytesToDownload );
|
||||
|
||||
var speed_element = $( '#speed', progress_element );
|
||||
$( 'span', speed_element )
|
||||
.text( data.slave.downloadSpeed );
|
||||
|
||||
var done_element = $( '#done', progress_element );
|
||||
$( '.files span', done_element )
|
||||
.text( data.slave.numFilesDownloaded );
|
||||
$( '.size span', done_element )
|
||||
.text( data.slave.bytesDownloaded );
|
||||
$( '.percent span', done_element )
|
||||
.text( parseInt(data.slave.totalPercent ) );
|
||||
|
||||
var percent = parseInt( data.slave.totalPercent );
|
||||
if( 0 === percent )
|
||||
{
|
||||
done_element
|
||||
.css( 'width', '1px' );
|
||||
}
|
||||
else
|
||||
{
|
||||
done_element
|
||||
.css( 'width', percent + '%' );
|
||||
}
|
||||
|
||||
var current_file_element = $( '#current-file', replication_element );
|
||||
$( '.file', current_file_element )
|
||||
.text( data.slave.currentFile );
|
||||
$( '.done', current_file_element )
|
||||
.text( data.slave.currentFileSizeDownloaded );
|
||||
$( '.total', current_file_element )
|
||||
.text( data.slave.currentFileSize );
|
||||
$( '.percent', current_file_element )
|
||||
.text( parseInt( data.slave.currentFileSizePercent ) );
|
||||
|
||||
if( !data.slave.indexReplicatedAtList )
|
||||
{
|
||||
data.slave.indexReplicatedAtList = [];
|
||||
}
|
||||
|
||||
if( !data.slave.replicationFailedAtList )
|
||||
{
|
||||
data.slave.replicationFailedAtList = [];
|
||||
}
|
||||
|
||||
var iterations_element = $( '#iterations', replication_element );
|
||||
var iterations_list = $( '.iterations ul', iterations_element );
|
||||
|
||||
var iterations_data = [];
|
||||
$.merge( iterations_data, data.slave.indexReplicatedAtList );
|
||||
$.merge( iterations_data, data.slave.replicationFailedAtList );
|
||||
|
||||
if( 0 !== iterations_data.length )
|
||||
{
|
||||
var iterations = [];
|
||||
for( var i = 0; i < iterations_data.length; i++ )
|
||||
{
|
||||
iterations.push
|
||||
(
|
||||
'<li data-date="' + iterations_data[i] + '">' +
|
||||
iterations_data[i] + '</li>'
|
||||
);
|
||||
}
|
||||
|
||||
iterations_list
|
||||
.html( iterations.join( "\n" ) )
|
||||
.show();
|
||||
|
||||
$( data.slave.indexReplicatedAtList )
|
||||
.each
|
||||
(
|
||||
function( key, value )
|
||||
{
|
||||
$( 'li[data-date="' + value + '"]', iterations_list )
|
||||
.addClass( 'replicated' );
|
||||
}
|
||||
);
|
||||
|
||||
if( data.slave.indexReplicatedAt )
|
||||
{
|
||||
$(
|
||||
'li[data-date="' + data.slave.indexReplicatedAt + '"]',
|
||||
iterations_list
|
||||
)
|
||||
.addClass( 'latest' );
|
||||
}
|
||||
|
||||
$( data.slave.replicationFailedAtList )
|
||||
.each
|
||||
(
|
||||
function( key, value )
|
||||
{
|
||||
$( 'li[data-date="' + value + '"]', iterations_list )
|
||||
.addClass( 'failed' );
|
||||
}
|
||||
);
|
||||
|
||||
if( data.slave.replicationFailedAt )
|
||||
{
|
||||
$(
|
||||
'li[data-date="' + data.slave.replicationFailedAt + '"]',
|
||||
iterations_list
|
||||
)
|
||||
.addClass( 'latest' );
|
||||
}
|
||||
|
||||
if( 0 !== $( 'li:hidden', iterations_list ).size() )
|
||||
{
|
||||
$( 'a', iterations_element )
|
||||
.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$( 'a', iterations_element )
|
||||
.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var details_element = $( '#details', replication_element );
|
||||
var current_type_element = $( ( is_slave ? '.slave' : '.master' ), details_element );
|
||||
|
||||
$( '.version div', current_type_element )
|
||||
.html( data.indexVersion );
|
||||
$( '.generation div', current_type_element )
|
||||
.html( data.generation );
|
||||
$( '.size div', current_type_element )
|
||||
.html( data.indexSize );
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var master_element = $( '.master', details_element );
|
||||
$( '.version div', master_element )
|
||||
.html( data.slave.masterDetails.indexVersion );
|
||||
$( '.generation div', master_element )
|
||||
.html( data.slave.masterDetails.generation );
|
||||
$( '.size div', master_element )
|
||||
.html( data.slave.masterDetails.indexSize );
|
||||
|
||||
if( data.indexVersion !== data.slave.masterDetails.indexVersion )
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.version', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
|
||||
if( data.generation !== data.slave.masterDetails.generation )
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.addClass( 'diff' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.generation', details_element )
|
||||
.removeClass( 'diff' );
|
||||
}
|
||||
}
|
||||
|
||||
if( is_slave )
|
||||
{
|
||||
var settings_element = $( '#settings', replication_element );
|
||||
|
||||
if( data.slave.masterUrl )
|
||||
{
|
||||
$( '.masterUrl dd', settings_element )
|
||||
.html( response.details.slave.masterUrl )
|
||||
.parents( 'li' ).show();
|
||||
}
|
||||
|
||||
var polling_content = ' ';
|
||||
var polling_ico = 'ico-1';
|
||||
|
||||
if( 'true' === data.slave.isPollingDisabled )
|
||||
{
|
||||
polling_ico = 'ico-0';
|
||||
|
||||
$( '.disable-polling', navigation_element ).hide();
|
||||
$( '.enable-polling', navigation_element ).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.disable-polling', navigation_element ).show();
|
||||
$( '.enable-polling', navigation_element ).hide();
|
||||
|
||||
if( data.slave.pollInterval )
|
||||
{
|
||||
polling_content = '(interval: ' + data.slave.pollInterval + ')';
|
||||
}
|
||||
}
|
||||
|
||||
$( '.isPollingDisabled dd', settings_element )
|
||||
.removeClass( 'ico-0' )
|
||||
.removeClass( 'ico-1' )
|
||||
.addClass( polling_ico )
|
||||
.html( polling_content )
|
||||
.parents( 'li' ).show();
|
||||
}
|
||||
|
||||
var master_settings_element = $( '#master-settings', replication_element );
|
||||
|
||||
var master_data = is_slave
|
||||
? data.slave.masterDetails.master
|
||||
: data.master;
|
||||
|
||||
var replication_icon = 'ico-0';
|
||||
if( 'true' === master_data.replicationEnabled )
|
||||
{
|
||||
replication_icon = 'ico-1';
|
||||
|
||||
$( '.disable-replication', navigation_element ).show();
|
||||
$( '.enable-replication', navigation_element ).hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
$( '.disable-replication', navigation_element ).hide();
|
||||
$( '.enable-replication', navigation_element ).show();
|
||||
}
|
||||
|
||||
$( '.replicationEnabled dd', master_settings_element )
|
||||
.removeClass( 'ico-0' )
|
||||
.removeClass( 'ico-1' )
|
||||
.addClass( replication_icon )
|
||||
.parents( 'li' ).show();
|
||||
|
||||
$( '.replicateAfter dd', master_settings_element )
|
||||
.html( master_data.replicateAfter.join( ', ' ) )
|
||||
.parents( 'li' ).show();
|
||||
|
||||
if( master_data.confFiles )
|
||||
{
|
||||
var conf_files = [];
|
||||
var conf_data = master_data.confFiles.split( ',' );
|
||||
|
||||
for( var i = 0; i < conf_data.length; i++ )
|
||||
{
|
||||
var item = conf_data[i];
|
||||
|
||||
if( - 1 !== item.indexOf( ':' ) )
|
||||
{
|
||||
info = item.split( ':' );
|
||||
item = '<abbr title="' + info[0] + ' » ' + info[1] + '">'
|
||||
+ ( is_slave ? info[1] : info[0] )
|
||||
+ '</abbr>';
|
||||
}
|
||||
|
||||
conf_files.push( item );
|
||||
}
|
||||
|
||||
$( '.confFiles dd', master_settings_element )
|
||||
.html( conf_files.join( ', ' ) )
|
||||
.parents( 'li' ).show();
|
||||
}
|
||||
|
||||
|
||||
$( '.block', replication_element ).last()
|
||||
.addClass( 'last' );
|
||||
|
||||
|
||||
|
||||
|
||||
if( 'true' === data.slave.isReplicating )
|
||||
{
|
||||
replication_element
|
||||
.addClass( 'replicating' );
|
||||
|
||||
$( '.replicate-now', navigation_element ).hide();
|
||||
$( '.abort-replication', navigation_element ).show();
|
||||
|
||||
window.setTimeout( replication_fetch_status, 1000 );
|
||||
}
|
||||
else
|
||||
{
|
||||
replication_element
|
||||
.removeClass( 'replicating' );
|
||||
|
||||
$( '.replicate-now', navigation_element ).show();
|
||||
$( '.abort-replication', navigation_element ).hide();
|
||||
}
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown )
|
||||
{
|
||||
$( '#content' )
|
||||
.html( 'sorry, no replication-handler defined!' );
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
replication_fetch_status();
|
||||
|
||||
$( '#iterations a', content_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( '.iterations' )
|
||||
.toggleClass( 'expanded' );
|
||||
$( '#iterations a', content_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).parents( '.iterations' )
|
||||
.toggleClass( 'expanded' );
|
||||
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
$( 'button', navigation_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
var button = $( this );
|
||||
var command = button.data( 'command' );
|
||||
|
||||
if( button.hasClass( 'refresh-status' ) && !button.hasClass( 'loader' ) )
|
||||
{
|
||||
replication_fetch_status();
|
||||
}
|
||||
else if( command )
|
||||
{
|
||||
$.get
|
||||
(
|
||||
core_basepath + '/replication?command=' + command + '&wt=json',
|
||||
function()
|
||||
{
|
||||
replication_fetch_status();
|
||||
}
|
||||
);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
$( 'button', navigation_element )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
var button = $( this );
|
||||
var command = button.data( 'command' );
|
||||
|
||||
if( button.hasClass( 'refresh-status' ) && !button.hasClass( 'loader' ) )
|
||||
{
|
||||
replication_fetch_status();
|
||||
}
|
||||
else if( command )
|
||||
{
|
||||
$.get
|
||||
(
|
||||
core_basepath + '/replication?command=' + command + '&wt=json',
|
||||
function()
|
||||
{
|
||||
replication_fetch_status();
|
||||
}
|
||||
);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
File diff suppressed because it is too large
Load Diff
|
@ -1,144 +1,159 @@
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
// #/threads
|
||||
sammy.get
|
||||
(
|
||||
/^#\/(threads)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = $( 'li[data-basepath]', app.menu_element ).attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
/^#\/(threads)$/,
|
||||
function( context )
|
||||
{
|
||||
var core_basepath = $( 'li[data-basepath]', app.menu_element ).attr( 'data-basepath' );
|
||||
var content_element = $( '#content' );
|
||||
|
||||
$.get
|
||||
$.get
|
||||
(
|
||||
'tpl/threads.html',
|
||||
function( template )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
|
||||
$.ajax
|
||||
(
|
||||
'tpl/threads.html',
|
||||
function( template )
|
||||
{
|
||||
url : core_basepath + '/admin/threads?wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#threads', content_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
content_element
|
||||
.html( template );
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var self = this;
|
||||
|
||||
$.ajax
|
||||
(
|
||||
{
|
||||
url : core_basepath + '/admin/threads?wt=json',
|
||||
dataType : 'json',
|
||||
context : $( '#threads', content_element ),
|
||||
beforeSend : function( xhr, settings )
|
||||
{
|
||||
},
|
||||
success : function( response, text_status, xhr )
|
||||
{
|
||||
var self = this;
|
||||
var threadDumpData = response.system.threadDump;
|
||||
var threadDumpContent = [];
|
||||
var c = 0;
|
||||
for( var i = 1; i < threadDumpData.length; i += 2 )
|
||||
{
|
||||
var state = threadDumpData[i].state.esc();
|
||||
var name = '<a title="' + state +'"><span>' + threadDumpData[i].name.esc() + ' (' + threadDumpData[i].id.esc() + ')</span></a>';
|
||||
|
||||
var threadDumpData = response.system.threadDump;
|
||||
var threadDumpContent = [];
|
||||
var c = 0;
|
||||
for( var i = 1; i < threadDumpData.length; i += 2 )
|
||||
{
|
||||
var state = threadDumpData[i].state.esc();
|
||||
var name = '<a title="' + state +'"><span>' + threadDumpData[i].name.esc() + ' (' + threadDumpData[i].id.esc() + ')</span></a>';
|
||||
var classes = [state];
|
||||
var details = '';
|
||||
|
||||
var classes = [state];
|
||||
var details = '';
|
||||
if( 0 !== c % 2 )
|
||||
{
|
||||
classes.push( 'odd' );
|
||||
}
|
||||
|
||||
if( 0 !== c % 2 )
|
||||
{
|
||||
classes.push( 'odd' );
|
||||
}
|
||||
if( threadDumpData[i].lock )
|
||||
{
|
||||
classes.push( 'lock' );
|
||||
name += "\n" + '<p title="Waiting on">' + threadDumpData[i].lock.esc() + '</p>';
|
||||
}
|
||||
|
||||
if( threadDumpData[i].lock )
|
||||
{
|
||||
classes.push( 'lock' );
|
||||
name += "\n" + '<p title="Waiting on">' + threadDumpData[i].lock.esc() + '</p>';
|
||||
}
|
||||
if( threadDumpData[i].stackTrace && 0 !== threadDumpData[i].stackTrace.length )
|
||||
{
|
||||
classes.push( 'stacktrace' );
|
||||
|
||||
if( threadDumpData[i].stackTrace && 0 !== threadDumpData[i].stackTrace.length )
|
||||
{
|
||||
classes.push( 'stacktrace' );
|
||||
var stack_trace = threadDumpData[i].stackTrace
|
||||
.join( '###' )
|
||||
.esc()
|
||||
.replace( /\(/g, '​(' )
|
||||
.replace( /###/g, '</li><li>' );
|
||||
|
||||
var stack_trace = threadDumpData[i].stackTrace
|
||||
.join( '###' )
|
||||
.esc()
|
||||
.replace( /\(/g, '​(' )
|
||||
.replace( /###/g, '</li><li>' );
|
||||
name += '<div>' + "\n"
|
||||
+ '<ul>' + "\n"
|
||||
+ '<li>' + stack_trace + '</li>'
|
||||
+ '</ul>' + "\n"
|
||||
+ '</div>';
|
||||
}
|
||||
|
||||
name += '<div>' + "\n"
|
||||
+ '<ul>' + "\n"
|
||||
+ '<li>' + stack_trace + '</li>'
|
||||
+ '</ul>' + "\n"
|
||||
+ '</div>';
|
||||
}
|
||||
|
||||
var item = '<tr class="' + classes.join( ' ' ) +'">' + "\n"
|
||||
|
||||
+ '<td class="name">' + name + '</td>' + "\n"
|
||||
+ '<td class="time">' + threadDumpData[i].cpuTime.esc() + '<br>' + threadDumpData[i].userTime.esc() + '</td>' + "\n"
|
||||
|
||||
+ '</tr>';
|
||||
var item = '<tr class="' + classes.join( ' ' ) +'">' + "\n"
|
||||
+ '<td class="name">' + name + '</td>' + "\n"
|
||||
+ '<td class="time">' + threadDumpData[i].cpuTime.esc() + '<br>' + threadDumpData[i].userTime.esc() + '</td>' + "\n"
|
||||
+ '</tr>';
|
||||
|
||||
threadDumpContent.push( item );
|
||||
c++;
|
||||
}
|
||||
threadDumpContent.push( item );
|
||||
c++;
|
||||
}
|
||||
|
||||
var threadDumpBody = $( '#thread-dump tbody', this );
|
||||
var threadDumpBody = $( '#thread-dump tbody', this );
|
||||
|
||||
threadDumpBody
|
||||
.html( threadDumpContent.join( "\n" ) );
|
||||
threadDumpBody
|
||||
.html( threadDumpContent.join( "\n" ) );
|
||||
|
||||
$( '.name a', threadDumpBody )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).closest( 'tr' )
|
||||
.toggleClass( 'open' );
|
||||
}
|
||||
);
|
||||
|
||||
$( '.controls a', this )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
var threads_element = $( self );
|
||||
var is_collapsed = threads_element.hasClass( 'collapsed' );
|
||||
var thread_rows = $( 'tr', threads_element );
|
||||
|
||||
thread_rows
|
||||
.each
|
||||
(
|
||||
function( index, element )
|
||||
{
|
||||
if( is_collapsed )
|
||||
{
|
||||
$( element )
|
||||
.addClass( 'open' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( element )
|
||||
.removeClass( 'open' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
threads_element
|
||||
.toggleClass( 'collapsed' )
|
||||
.toggleClass( 'expanded' );
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
$( '.name a', threadDumpBody )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
$( this ).closest( 'tr' )
|
||||
.toggleClass( 'open' );
|
||||
}
|
||||
);
|
||||
|
||||
$( '.controls a', this )
|
||||
.die( 'click' )
|
||||
.live
|
||||
(
|
||||
'click',
|
||||
function( event )
|
||||
{
|
||||
var threads_element = $( self );
|
||||
var is_collapsed = threads_element.hasClass( 'collapsed' );
|
||||
var thread_rows = $( 'tr', threads_element );
|
||||
|
||||
thread_rows
|
||||
.each
|
||||
(
|
||||
function( index, element )
|
||||
{
|
||||
if( is_collapsed )
|
||||
{
|
||||
$( element )
|
||||
.addClass( 'open' );
|
||||
}
|
||||
else
|
||||
{
|
||||
$( element )
|
||||
.removeClass( 'open' );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
threads_element
|
||||
.toggleClass( 'collapsed' )
|
||||
.toggleClass( 'expanded' );
|
||||
}
|
||||
);
|
||||
},
|
||||
error : function( xhr, text_status, error_thrown)
|
||||
{
|
||||
},
|
||||
complete : function( xhr, text_status )
|
||||
{
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
|
@ -1,113 +0,0 @@
|
|||
{
|
||||
"levels" : ["FINEST", "FINE", "CONFIG", "INFO", "WARNING", "SEVERE"],
|
||||
"logger" : {
|
||||
"root" : {
|
||||
"level": { "effective_level" : "INFO" },
|
||||
"effective_level" : "INFO"
|
||||
},
|
||||
"global" : { "effective_level" : "INFO" },
|
||||
"javax" : null,
|
||||
"javax.management" : { "effective_level" : "INFO" },
|
||||
"javax.management.mbeanserver" : { "effective_level" : "INFO" },
|
||||
"javax.management.misc" : { "effective_level" : "INFO" },
|
||||
"javax.management.mlet" : { "effective_level" : "INFO" },
|
||||
"javax.management.modelmbean" : { "effective_level" : "INFO" },
|
||||
"javax.management.monitor" : { "effective_level" : "INFO" },
|
||||
"javax.management.notification" : { "effective_level" : "INFO" },
|
||||
"javax.management.relation" : { "effective_level" : "INFO" },
|
||||
"javax.management.snmp" : { "effective_level" : "INFO" },
|
||||
"javax.management.snmp.daemon" : { "effective_level" : "INFO" },
|
||||
"javax.management.timer" : { "effective_level" : "INFO" },
|
||||
"org" : null,
|
||||
"org.apache" : null,
|
||||
"org.apache.solr" : null,
|
||||
"org.apache.solr.analysis" : null,
|
||||
"org.apache.solr.analysis.BaseTokenFilterFactory" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.analysis.BaseTokenStreamFactory" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.analysis.BaseTokenizerFactory" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.cloud" : null,
|
||||
"org.apache.solr.cloud.SolrZkServer" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.cloud.ZkController" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.common" : null,
|
||||
"org.apache.solr.common.cloud" : null,
|
||||
"org.apache.solr.common.cloud.CloudState" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.common.cloud.ConnectionManager" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.common.cloud.DefaultConnectionStrategy" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.common.cloud.SolrZkClient" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.common.cloud.ZkStateReader" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.common.util" : null,
|
||||
"org.apache.solr.common.util.ConcurrentLRUCache" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.common.util.SystemIdResolver" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.core" : null,
|
||||
"org.apache.solr.core.Config" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.core.CoreContainer" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.core.JmxMonitoredMap" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.core.RequestHandlers" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.core.SolrConfig" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.core.SolrCore" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.core.SolrResourceLoader" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.handler" : null,
|
||||
"org.apache.solr.handler.XmlUpdateRequestHandler" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.handler.admin" : null,
|
||||
"org.apache.solr.handler.admin.LukeRequestHandler" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.handler.admin.SystemInfoHandler" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.handler.component" : null,
|
||||
"org.apache.solr.handler.component.QueryElevationComponent" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.handler.component.SearchHandler" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.handler.component.SpellCheckComponent" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.highlight" : null,
|
||||
"org.apache.solr.highlight.DefaultSolrHighlighter" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.highlight.SolrHighlighter" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.response" : null,
|
||||
"org.apache.solr.response.BinaryResponseWriter" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.response.XSLTResponseWriter" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.schema" : null,
|
||||
"org.apache.solr.schema.FieldType" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.schema.IndexSchema" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.search" : null,
|
||||
"org.apache.solr.search.SolrIndexSearcher" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.servlet" : null,
|
||||
"org.apache.solr.servlet.NewLogLevelSelection" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.servlet.SolrDispatchFilter" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.servlet.SolrRequestParsers" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.spelling" : null,
|
||||
"org.apache.solr.spelling.AbstractLuceneSpellChecker" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.spelling.IndexBasedSpellChecker" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.update" : null,
|
||||
"org.apache.solr.update.SolrIndexConfig" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.update.UpdateHandler" : { "effective_level" : "INFO" },
|
||||
"org.apache.solr.util" : null,
|
||||
"org.apache.solr.util.plugin" : null,
|
||||
"org.apache.solr.util.plugin.AbstractPluginLoader" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper" : null,
|
||||
"org.apache.zookeeper.ClientCnxn" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.CreateMode" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.ZooKeeper" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.common" : null,
|
||||
"org.apache.zookeeper.common.PathTrie" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.jmx" : null,
|
||||
"org.apache.zookeeper.jmx.MBeanRegistry" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server" : null,
|
||||
"org.apache.zookeeper.server.ConnectionBean" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.DataTree" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.FinalRequestProcessor" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.NIOServerCnxn" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.PrepRequestProcessor" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.Request" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.SessionTrackerImpl" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.SyncRequestProcessor" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.WatchManager" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.ZKDatabase" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.ZooKeeperServer" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.ZooKeeperServerMain" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.persistence" : null,
|
||||
"org.apache.zookeeper.server.persistence.FileSnap" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.persistence.FileTxnLog" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.persistence.FileTxnSnapLog" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.persistence.Util" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.quorum" : null,
|
||||
"org.apache.zookeeper.server.quorum.QuorumPeerConfig" : { "effective_level" : "INFO" },
|
||||
"org.apache.zookeeper.server.util" : null,
|
||||
"org.apache.zookeeper.server.util.SerializeUtils" : { "effective_level" : "INFO" }
|
||||
}
|
||||
}
|
|
@ -16,68 +16,68 @@ limitations under the License.
|
|||
-->
|
||||
<div id="analysis">
|
||||
|
||||
<div class="block analysis-error" id="analysis-handler-missing">
|
||||
<div class="block analysis-error" id="analysis-handler-missing">
|
||||
|
||||
<div class="head">This Functionality requires the <code>/analysis/field</code> Handler to be registered and active!</div>
|
||||
<div class="head">This Functionality requires the <code>/analysis/field</code> Handler to be registered and active!</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block analysis-error" id="analysis-error">
|
||||
<div class="block analysis-error" id="analysis-error">
|
||||
|
||||
<div class="head"><a><span></span></a></div>
|
||||
<div class="body"></div>
|
||||
<div class="head"><a><span></span></a></div>
|
||||
<div class="body"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="analysis-holder">
|
||||
<div id="analysis-holder">
|
||||
|
||||
<div id="field-analysis">
|
||||
<div id="field-analysis">
|
||||
|
||||
<form method="get">
|
||||
<form method="get">
|
||||
|
||||
<ul class="clearfix">
|
||||
<ul class="clearfix">
|
||||
|
||||
<li class="index">
|
||||
<li class="index">
|
||||
|
||||
<label for="analysis_fieldvalue_index">Field Value (Index)</label>
|
||||
<textarea name="analysis.fieldvalue" id="analysis_fieldvalue_index"></textarea>
|
||||
<label for="analysis_fieldvalue_index">Field Value (Index)</label>
|
||||
<textarea name="analysis.fieldvalue" id="analysis_fieldvalue_index"></textarea>
|
||||
|
||||
</li>
|
||||
</li>
|
||||
|
||||
<li class="query">
|
||||
<li class="query">
|
||||
|
||||
<label for="analysis_fieldvalue_query">Field Value (Query)</label>
|
||||
<textarea name="analysis.query" id="analysis_fieldvalue_query"></textarea>
|
||||
<label for="analysis_fieldvalue_query">Field Value (Query)</label>
|
||||
<textarea name="analysis.query" id="analysis_fieldvalue_query"></textarea>
|
||||
|
||||
</li>
|
||||
</li>
|
||||
|
||||
<li class="settings-holder clearfix">
|
||||
<div class="settings">
|
||||
<li class="settings-holder clearfix">
|
||||
<div class="settings">
|
||||
|
||||
<label for="type_or_name">Analyse Fieldname / FieldType:</label>
|
||||
<select id="type_or_name"></select>
|
||||
<label for="type_or_name">Analyse Fieldname / FieldType:</label>
|
||||
<select id="type_or_name"></select>
|
||||
|
||||
<div>
|
||||
<div>
|
||||
|
||||
<button type="submit">Analyse Values</button>
|
||||
<button type="submit">Analyse Values</button>
|
||||
|
||||
<div class="verbose_output active">
|
||||
<a>Verbose Output</a>
|
||||
</div>
|
||||
<div class="verbose_output active">
|
||||
<a>Verbose Output</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="analysis-result" class="clearfix verbose_output"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="analysis-result" class="clearfix verbose_output"></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -16,32 +16,39 @@ limitations under the License.
|
|||
-->
|
||||
<div id="cloud">
|
||||
|
||||
<div class="block">
|
||||
<div class="block">
|
||||
|
||||
<h2><span>Zookeeper-Data</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<h2><span>Zookeeper-Data</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content clearfix">
|
||||
<div class="content clearfix">
|
||||
<div id="tree" class="tree">#tree</div>
|
||||
<div id="file-content" class="clearfix">
|
||||
|
||||
<div id="tree" class="tree">#tree</div>
|
||||
<div id="prop">
|
||||
<ul></ul>
|
||||
</div>
|
||||
|
||||
<div id="file-content" class="clearfix">
|
||||
<div id="data"></div>
|
||||
|
||||
<div id="prop">
|
||||
<ul></ul>
|
||||
</div>
|
||||
<a class="close"><span>[x]</span></a>
|
||||
</div>
|
||||
|
||||
<div id="data"></div>
|
||||
|
||||
<a class="close"><span>[x]</span></a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="debug"><span>Generate Dump</span></a>
|
||||
<div id="debug">
|
||||
<ul class="clearfix">
|
||||
<li class="clipboard"><a href="#" data-copied="Copied to Clipboard!">Copy to Clipboard (BUGGY!)</a></li>
|
||||
<li class="close"><a href="#">Close</a></li>
|
||||
</ul>
|
||||
<pre class="debug"></pre>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -16,225 +16,225 @@ limitations under the License.
|
|||
-->
|
||||
<div id="cores" class="clearfix">
|
||||
|
||||
<div id="frame">
|
||||
<div id="frame">
|
||||
|
||||
<div id="actions" class="actions clearfix">
|
||||
|
||||
<div class="button-holder">
|
||||
<div class="button">
|
||||
<a class="reload">Reload</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder options rename">
|
||||
<div class="button">
|
||||
<a class="rename">Rename</a>
|
||||
</div>
|
||||
<div class="button-content">
|
||||
<div id="actions" class="actions clearfix">
|
||||
|
||||
<div class="button-holder">
|
||||
<div class="button">
|
||||
<a class="reload">Reload</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder options rename">
|
||||
<div class="button">
|
||||
<a class="rename">Rename</a>
|
||||
</div>
|
||||
<div class="button-content">
|
||||
|
||||
<form>
|
||||
<form>
|
||||
|
||||
<input type="hidden" name="action" value="RENAME">
|
||||
<input type="hidden" name="action" value="RENAME">
|
||||
|
||||
<p class="clearfix"><label for="rename_core">from:</label>
|
||||
<input type="text" name="core" id="rename_core" readonly="readonly"></p>
|
||||
<p class="clearfix"><label for="rename_core">from:</label>
|
||||
<input type="text" name="core" id="rename_core" readonly="readonly"></p>
|
||||
|
||||
<p class="clearfix"><label for="rename_other">to:</label>
|
||||
<input type="text" name="other" id="rename_other"></p>
|
||||
<p class="clearfix"><label for="rename_other">to:</label>
|
||||
<input type="text" name="other" id="rename_other"></p>
|
||||
|
||||
<p class="clearfix buttons">
|
||||
<a class="submit"><span>Rename</span></a>
|
||||
<a class="reset"><span>Cancel</span></a>
|
||||
</p>
|
||||
<p class="clearfix buttons">
|
||||
<a class="submit"><span>Rename</span></a>
|
||||
<a class="reset"><span>Cancel</span></a>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder options swap">
|
||||
<div class="button">
|
||||
<a class="swap">Swap</a>
|
||||
</div>
|
||||
<div class="button-content">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder options swap">
|
||||
<div class="button">
|
||||
<a class="swap">Swap</a>
|
||||
</div>
|
||||
<div class="button-content">
|
||||
|
||||
<form>
|
||||
<form>
|
||||
|
||||
<input type="hidden" name="action" value="SWAP">
|
||||
<input type="hidden" name="core">
|
||||
<input type="hidden" name="action" value="SWAP">
|
||||
<input type="hidden" name="core">
|
||||
|
||||
<p class="clearfix"><label for="swap_core">this:</label>
|
||||
<select id="swap_core" class="core" disabled="disabled">
|
||||
</select></p>
|
||||
<p class="clearfix"><label for="swap_core">this:</label>
|
||||
<select id="swap_core" class="core" disabled="disabled">
|
||||
</select></p>
|
||||
|
||||
<p class="clearfix"><label for="swap_other">and:</label>
|
||||
<select name="other" id="swap_other" class="other">
|
||||
</select></p>
|
||||
<p class="clearfix"><label for="swap_other">and:</label>
|
||||
<select name="other" id="swap_other" class="other">
|
||||
</select></p>
|
||||
|
||||
<p class="clearfix buttons">
|
||||
<a class="submit"><span>Swap</span></a>
|
||||
<a class="reset"><span>Cancel</span></a>
|
||||
</p>
|
||||
<p class="clearfix buttons">
|
||||
<a class="submit"><span>Swap</span></a>
|
||||
<a class="reset"><span>Cancel</span></a>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder">
|
||||
<div class="button">
|
||||
<a class="unload">Unload</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder">
|
||||
<div class="button">
|
||||
<a class="optimize">Optimize</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder">
|
||||
<div class="button">
|
||||
<a class="unload">Unload</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-holder">
|
||||
<div class="button">
|
||||
<a class="optimize">Optimize</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="data">
|
||||
<div id="data">
|
||||
|
||||
<div class="block" id="core-data">
|
||||
<div class="block" id="core-data">
|
||||
|
||||
<h2><span></span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<h2><span></span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="content">
|
||||
|
||||
<ul>
|
||||
<ul>
|
||||
|
||||
<li class="startTime"><dl class="clearfix">
|
||||
<dt><span>startTime:</span></dt>
|
||||
<dd class="timeago"></dd>
|
||||
</dl></li>
|
||||
<li class="startTime"><dl class="clearfix">
|
||||
<dt><span>startTime:</span></dt>
|
||||
<dd class="timeago"></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="instanceDir"><dl class="clearfix">
|
||||
<dt><span>instanceDir:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="instanceDir"><dl class="clearfix">
|
||||
<dt><span>instanceDir:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="dataDir"><dl class="clearfix">
|
||||
<dt><span>dataDir:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<li class="dataDir"><dl class="clearfix">
|
||||
<dt><span>dataDir:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block" id="index-data">
|
||||
<div class="block" id="index-data">
|
||||
|
||||
<h2><span>Index</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<h2><span>Index</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
|
||||
<ul>
|
||||
<div class="content">
|
||||
|
||||
<ul>
|
||||
|
||||
<li class="lastModified"><dl class="clearfix">
|
||||
<dt><span>lastModified:</span></dt>
|
||||
<dd class="timeago"></dd>
|
||||
</dl></li>
|
||||
<li class="lastModified"><dl class="clearfix">
|
||||
<dt><span>lastModified:</span></dt>
|
||||
<dd class="timeago"></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="version"><dl class="clearfix">
|
||||
<dt><span>version:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="version"><dl class="clearfix">
|
||||
<dt><span>version:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="numDocs"><dl class="clearfix">
|
||||
<dt><span>numDocs:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="numDocs"><dl class="clearfix">
|
||||
<dt><span>numDocs:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="maxDoc"><dl class="clearfix">
|
||||
<dt><span>maxDoc:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="maxDoc"><dl class="clearfix">
|
||||
<dt><span>maxDoc:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="optimized"><dl class="clearfix">
|
||||
<dt><span>optimized:</span></dt>
|
||||
<dd class="ico"><span></span></dd>
|
||||
</dl></li>
|
||||
<li class="optimized"><dl class="clearfix">
|
||||
<dt><span>optimized:</span></dt>
|
||||
<dd class="ico"><span></span></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="current"><dl class="clearfix">
|
||||
<dt><span>current:</span></dt>
|
||||
<dd class="ico"><span></span></dd>
|
||||
</dl></li>
|
||||
<li class="current"><dl class="clearfix">
|
||||
<dt><span>current:</span></dt>
|
||||
<dd class="ico"><span></span></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="hasDeletions"><dl class="clearfix">
|
||||
<dt><span>hasDeletions:</span></dt>
|
||||
<dd class="ico"><span></span></dd>
|
||||
</dl></li>
|
||||
<li class="hasDeletions"><dl class="clearfix">
|
||||
<dt><span>hasDeletions:</span></dt>
|
||||
<dd class="ico"><span></span></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="directory"><dl class="clearfix">
|
||||
<dt><span>directory:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<li class="directory"><dl class="clearfix">
|
||||
<dt><span>directory:</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="navigation" class="clearfix">
|
||||
<div id="navigation" class="clearfix">
|
||||
|
||||
<div class="actions">
|
||||
|
||||
<div class="button-holder options add">
|
||||
<div class="button">
|
||||
<a class="add">Add Core</a>
|
||||
</div>
|
||||
<div class="button-content">
|
||||
<div class="actions">
|
||||
|
||||
<div class="button-holder options add">
|
||||
<div class="button">
|
||||
<a class="add">Add Core</a>
|
||||
</div>
|
||||
<div class="button-content">
|
||||
|
||||
<form>
|
||||
<form>
|
||||
|
||||
<input type="hidden" name="action" value="CREATE">
|
||||
<input type="hidden" name="action" value="CREATE">
|
||||
|
||||
<p class="clearfix"><label for="add_name">name:</label>
|
||||
<input type="text" name="name" id="add_name"></p>
|
||||
<p class="clearfix"><label for="add_name">name:</label>
|
||||
<input type="text" name="name" id="add_name"></p>
|
||||
|
||||
<p class="clearfix"><label for="add_instanceDir">instanceDir:</label>
|
||||
<input type="text" name="instanceDir" id="add_instanceDir"></p>
|
||||
<p class="clearfix"><label for="add_instanceDir">instanceDir:</label>
|
||||
<input type="text" name="instanceDir" id="add_instanceDir"></p>
|
||||
|
||||
<p class="clearfix"><label for="add_config">config:</label>
|
||||
<input type="text" name="config" id="add_config"></p>
|
||||
<p class="clearfix"><label for="add_config">config:</label>
|
||||
<input type="text" name="config" id="add_config"></p>
|
||||
|
||||
<p class="clearfix"><label for="add_schema">schema:</label>
|
||||
<input type="text" name="schema" id="add_schema"></p>
|
||||
<p class="clearfix"><label for="add_schema">schema:</label>
|
||||
<input type="text" name="schema" id="add_schema"></p>
|
||||
|
||||
<p class="clearfix"><label for="add_dataDir">dataDir:</label>
|
||||
<input type="text" name="dataDir" id="dataDir"></p>
|
||||
<p class="clearfix"><label for="add_dataDir">dataDir:</label>
|
||||
<input type="text" name="dataDir" id="dataDir"></p>
|
||||
|
||||
<p class="clearfix buttons">
|
||||
<a class="submit"><span>Add Core</span></a>
|
||||
<a class="reset"><span>Cancel</span></a>
|
||||
</p>
|
||||
<p class="clearfix buttons">
|
||||
<a class="submit"><span>Add Core</span></a>
|
||||
<a class="reset"><span>Cancel</span></a>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="list">
|
||||
<div id="list">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -16,134 +16,126 @@ limitations under the License.
|
|||
-->
|
||||
<div id="dashboard">
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="clearfix">
|
||||
|
||||
<div class="block" id="statistics">
|
||||
<div class="block" id="statistics">
|
||||
|
||||
<h2><span>Statistics</span></h2>
|
||||
<h2><span>Statistics</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="content">
|
||||
|
||||
<dl>
|
||||
<dl>
|
||||
|
||||
<dt class="index_last-modified">Last Modified:</dt>
|
||||
<dd class="index_last-modified value timeago"></dd>
|
||||
<dt class="index_last-modified">Last Modified:</dt>
|
||||
<dd class="index_last-modified value timeago"></dd>
|
||||
|
||||
<dt class="index_num-docs">Num Docs:</dt>
|
||||
<dd class="index_num-docs value"></dd>
|
||||
<dt class="index_num-docs">Num Docs:</dt>
|
||||
<dd class="index_num-docs value"></dd>
|
||||
|
||||
<dt class="index_max-doc">Max Doc:</dt>
|
||||
<dd class="index_max-doc value"></dd>
|
||||
<dt class="index_max-doc">Max Doc:</dt>
|
||||
<dd class="index_max-doc value"></dd>
|
||||
|
||||
<dt class="index_version">Version:</dt>
|
||||
<dd class="index_version value"></dd>
|
||||
<dt class="index_version">Version:</dt>
|
||||
<dd class="index_version value"></dd>
|
||||
|
||||
<dt class="index_segmentCount">Segment Count:</dt>
|
||||
<dd class="index_segmentCount value"></dd>
|
||||
<dt class="index_segmentCount">Segment Count:</dt>
|
||||
<dd class="index_segmentCount value"></dd>
|
||||
|
||||
<dt class="index_optimized">Optimized:</dt>
|
||||
<dd class="index_optimized value ico"><span></span>
|
||||
<a>optimize now</a></dd>
|
||||
<dt class="index_optimized">Optimized:</dt>
|
||||
<dd class="index_optimized value ico"><span></span>
|
||||
<a>optimize now</a></dd>
|
||||
|
||||
<dt class="index_current">Current:</dt>
|
||||
<dd class="index_current value ico"><span></span></dd>
|
||||
<dt class="index_current">Current:</dt>
|
||||
<dd class="index_current value ico"><span></span></dd>
|
||||
|
||||
</dl>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block" id="admin-extra">
|
||||
<div class="block" id="admin-extra">
|
||||
|
||||
<h2><span>Admin Extra</span></h2>
|
||||
<h2><span>Admin Extra</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="content">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
|
||||
<div class="block" id="replication">
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
|
||||
<h2><span class="is-replicating">Replication</span></h2>
|
||||
<div class="block" id="replication">
|
||||
|
||||
<h2><span class="is-replicating">Replication</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content clearfix"id="details">
|
||||
<div class="content clearfix"id="details">
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<thead>
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<tr>
|
||||
|
||||
<td><span>Index</span></td>
|
||||
<th>Version</th>
|
||||
<th><abbr title="Generation">Gen</abbr></th>
|
||||
<th>Size</th>
|
||||
<td><span>Index</span></td>
|
||||
<th>Version</th>
|
||||
<th><abbr title="Generation">Gen</abbr></th>
|
||||
<th>Size</th>
|
||||
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr class="master">
|
||||
<tr class="master">
|
||||
|
||||
<th>Master:</th>
|
||||
<td class="version"><div>x</div></td>
|
||||
<td class="generation"><div>y</div></td>
|
||||
<td class="size"><div>z</div></td>
|
||||
<th>Master:</th>
|
||||
<td class="version"><div>x</div></td>
|
||||
<td class="generation"><div>y</div></td>
|
||||
<td class="size"><div>z</div></td>
|
||||
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
<tr class="slave slaveOnly">
|
||||
<tr class="slave slaveOnly">
|
||||
|
||||
<th>Slave:</th>
|
||||
<td class="version"><div>a</div></td>
|
||||
<td class="generation"><div>c</div></td>
|
||||
<td class="size"><div>c</div></td>
|
||||
<th>Slave:</th>
|
||||
<td class="version"><div>a</div></td>
|
||||
<td class="generation"><div>c</div></td>
|
||||
<td class="size"><div>c</div></td>
|
||||
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block" id="dataimport">
|
||||
|
||||
<h2><span>Dataimport</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
|
||||
<!--
|
||||
status:
|
||||
idle
|
||||
info:
|
||||
-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block" id="dataimport">
|
||||
|
||||
<h2><span>Dataimport</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
|
||||
<div class="content"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -14,110 +14,237 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<div id="index">
|
||||
<div id="index" class="clearfix">
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="clearfix">
|
||||
|
||||
<div class="block" id="data">
|
||||
<div class="index-left">
|
||||
|
||||
<h2><span>Dashboard</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<div class="block" id="instance">
|
||||
|
||||
<div class="content">
|
||||
<h2><span>Instance</span></h2>
|
||||
|
||||
<ul class="data">
|
||||
<div class="content">
|
||||
|
||||
<li class="start_time"><dl class="clearfix">
|
||||
<dt><span>startTime</span></dt>
|
||||
<dd class="timeago"></dd>
|
||||
</dl></li>
|
||||
<ul class="data">
|
||||
|
||||
<li class="host"><dl class="clearfix">
|
||||
<dt><span>host</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="start_time"><dl class="clearfix">
|
||||
<dt><span>Start</span></dt>
|
||||
<dd class="timeago"></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="cwd"><dl class="clearfix">
|
||||
<dt><span>cwd</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="host"><dl class="clearfix">
|
||||
<dt><span>Host</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="jvm"><dl class="clearfix">
|
||||
<dt><span>JVM</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="dir dir_cwd"><dl class="clearfix">
|
||||
<dt><span>CWD</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="command_line_args"><dl class="clearfix">
|
||||
<dt><span>commandLineArgs</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
<li class="dir dir_instance"><dl class="clearfix">
|
||||
<dt><span>Instance</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<ul class="lucene">
|
||||
<li class="dir dir_data"><dl class="clearfix">
|
||||
<dt><span>Data</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="solr_spec_version"><dl class="clearfix">
|
||||
<dt><span>solr-spec-version</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="solr_impl_version"><dl class="clearfix">
|
||||
<dt class=""><span>solr-impl-version</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="lucene_spec_version"><dl class="clearfix">
|
||||
<dt><span>lucene-spec-version</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="dir dir_index"><dl class="clearfix">
|
||||
<dt><span>Index</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<li class="lucene_impl_version"><dl class="clearfix">
|
||||
<dt><span>lucene-impl-version</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="block" id="memory">
|
||||
<div class="block" id="versions">
|
||||
|
||||
<h2><span>Memory</span></h2>
|
||||
|
||||
<div class="message-container">
|
||||
<div class="message"></div>
|
||||
</div>
|
||||
<h2><span>Versions</span></h2>
|
||||
|
||||
<div class="content">
|
||||
<div class="content">
|
||||
|
||||
<div id="memory-bar">
|
||||
<ul class="data">
|
||||
|
||||
<div id="memory-bar-max">
|
||||
<span class="memory-bar-max value"></span>
|
||||
<li class="solr solr_spec_version"><dl class="clearfix">
|
||||
<dt><span>solr-spec</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="solr_impl_version"><dl class="clearfix">
|
||||
<dt class=""><span>solr-impl</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="lucene lucene_spec_version"><dl class="clearfix">
|
||||
<dt><span>lucene-spec</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<div id="memory-bar-total" class="bar">
|
||||
<span class="memory-bar-total value"></span>
|
||||
<li class="lucene_impl_version"><dl class="clearfix">
|
||||
<dt><span>lucene-impl</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<div id="memory-bar-used" class="bar">
|
||||
<span class="memory-bar-used value"></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="index-right">
|
||||
|
||||
</div>
|
||||
<div class="block" id="system">
|
||||
|
||||
</div>
|
||||
<h2><span>System</span></h2>
|
||||
<a class="reload"><span>reload</span></a>
|
||||
|
||||
</div>
|
||||
<div class="content">
|
||||
|
||||
</div>
|
||||
<div id="physical-memory-bar">
|
||||
|
||||
</div>
|
||||
<p data-desc="physical-memory-bar">Physical Memory</p>
|
||||
<div class="bar-holder">
|
||||
|
||||
<div class="bar-max bar">
|
||||
<span class="bar-max val"></span>
|
||||
|
||||
<div class="bar-total bar">
|
||||
<span class="bar-total val"></span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="swap-space-bar">
|
||||
|
||||
<p data-desc="swap-space-bar">Swap Space</p>
|
||||
<div class="bar-holder">
|
||||
|
||||
<div class="bar-max bar">
|
||||
<span class="bar-max val"></span>
|
||||
|
||||
<div class="bar-total bar">
|
||||
<span class="bar-total val"></span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="file-descriptor-bar">
|
||||
|
||||
<p data-desc="file-descriptor-bar">File Descriptor Count</p>
|
||||
<div class="bar-holder">
|
||||
|
||||
<div class="bar-max bar">
|
||||
<span class="bar-max val"></span>
|
||||
|
||||
<div class="bar-total bar">
|
||||
<span class="bar-total val"></span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p class="no-info">Sorry, no information available</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="clearfix">
|
||||
|
||||
<div class="index-left">
|
||||
|
||||
<div class="block" id="jvm">
|
||||
|
||||
<h2><span>JVM</span></h2>
|
||||
|
||||
<div class="content clearfix">
|
||||
|
||||
<ul class="data">
|
||||
|
||||
<li class="jvm_version"><dl class="clearfix">
|
||||
<dt><span>Runtime</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="processors"><dl class="clearfix">
|
||||
<dt><span>Processors</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
<li class="command_line_args"><dl class="clearfix">
|
||||
<dt><span>Args</span></dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="index-right">
|
||||
|
||||
<div class="block" id="jvm-memory">
|
||||
|
||||
<h2><span data-desc="jvm-memory-bar">JVM-Memory</span></h2>
|
||||
|
||||
<div class="content">
|
||||
|
||||
<div id="jvm-memory-bar">
|
||||
<div class="bar-holder">
|
||||
|
||||
<div class="bar-max bar">
|
||||
<span class="bar-max val"></span>
|
||||
|
||||
<div class="bar-total bar">
|
||||
<span class="bar-total val"></span>
|
||||
|
||||
<div class="bar-used bar">
|
||||
<span class="bar-used val"></span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -16,15 +16,15 @@ limitations under the License.
|
|||
-->
|
||||
<div id="plugins" class="clearfix">
|
||||
|
||||
<div id="frame">
|
||||
<div id="frame">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="navigation" class="clearfix">
|
||||
<div id="navigation" class="clearfix">
|
||||
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -16,258 +16,296 @@ limitations under the License.
|
|||
-->
|
||||
<div id="query" class="clearfix">
|
||||
|
||||
<div id="form">
|
||||
<div id="form">
|
||||
|
||||
<form action="#" method="get">
|
||||
<form action="#" method="get">
|
||||
|
||||
<fieldset>
|
||||
<legend>common</legend>
|
||||
<div class="fieldset">
|
||||
<fieldset>
|
||||
<legend>common</legend>
|
||||
<div class="fieldset">
|
||||
|
||||
<label for="q">
|
||||
q
|
||||
</label>
|
||||
<textarea name="q" id="q">*:*</textarea>
|
||||
<label for="q">
|
||||
q
|
||||
</label>
|
||||
<textarea name="q" id="q">*:*</textarea>
|
||||
|
||||
<label for="fq">
|
||||
<a rel="help">fq</a>
|
||||
</label>
|
||||
<input type="text" id="fq" name="fq" class="multiple">
|
||||
<label for="fq">
|
||||
<a rel="help">fq</a>
|
||||
</label>
|
||||
<input type="text" id="fq" name="fq" class="multiple">
|
||||
|
||||
<label for="sort">
|
||||
<a rel="help">sort</a>
|
||||
</label>
|
||||
<input type="text" id="sort" name="sort" class="multiple">
|
||||
<label for="sort">
|
||||
<a rel="help">sort</a>
|
||||
</label>
|
||||
<input type="text" id="sort" name="sort" class="multiple">
|
||||
|
||||
<label for="start">
|
||||
<a rel="help">start</a>,
|
||||
<a rel="help">rows</a>
|
||||
</label>
|
||||
<input type="text" name="start" id="start" value="0">
|
||||
<input type="text" name="rows" id="rows" value="10">
|
||||
<label for="start">
|
||||
<a rel="help">start</a>,
|
||||
<a rel="help">rows</a>
|
||||
</label>
|
||||
<input type="text" name="start" id="start" value="0">
|
||||
<input type="text" name="rows" id="rows" value="10">
|
||||
|
||||
<label for="fl">
|
||||
<a rel="help">fl</a>
|
||||
</label>
|
||||
<input type="text" name="fl" id="fl" value="">
|
||||
<label for="fl">
|
||||
<a rel="help">fl</a>
|
||||
</label>
|
||||
<input type="text" name="fl" id="fl" value="">
|
||||
|
||||
<label for="qt">
|
||||
<a rel="help">qt</a>
|
||||
</label>
|
||||
<input type="text" name="qt" id="qt" value="">
|
||||
<label for="qt">
|
||||
<a rel="help">qt</a>
|
||||
</label>
|
||||
<input type="text" name="qt" id="qt" value="">
|
||||
|
||||
<label for="wt">
|
||||
<a rel="help">wt</a>
|
||||
</label>
|
||||
<select name="wt" id="wt">
|
||||
<option>xml</option>
|
||||
<option>json</option>
|
||||
<option>python</option>
|
||||
<option>ruby</option>
|
||||
<option>php</option>
|
||||
<option>csv</option>
|
||||
</select>
|
||||
<label for="wt">
|
||||
<a rel="help">wt</a>
|
||||
</label>
|
||||
<select name="wt" id="wt">
|
||||
<option>xml</option>
|
||||
<option>json</option>
|
||||
<option>python</option>
|
||||
<option>ruby</option>
|
||||
<option>php</option>
|
||||
<option>csv</option>
|
||||
</select>
|
||||
|
||||
<label for="indent" class="checkbox">
|
||||
<input type="checkbox" name="indent" id="indent" value="true">
|
||||
<a rel="help">indent</a>
|
||||
</label>
|
||||
<label for="indent" class="checkbox">
|
||||
<input type="checkbox" name="indent" id="indent" value="true">
|
||||
<a rel="help">indent</a>
|
||||
</label>
|
||||
|
||||
<label for="debugQuery" class="checkbox">
|
||||
<input type="checkbox" name="debugQuery" id="debugQuery" value="true">
|
||||
<a rel="help">debugQuery</a>
|
||||
</label>
|
||||
<label for="debugQuery" class="checkbox">
|
||||
<input type="checkbox" name="debugQuery" id="debugQuery" value="true">
|
||||
<a rel="help">debugQuery</a>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="dismax" class="checkbox">
|
||||
<input type="checkbox" name="dismax" id="dismax" value="true">
|
||||
dismax
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="dismax" class="checkbox">
|
||||
<input type="checkbox" name="dismax" id="dismax" value="true">
|
||||
dismax
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
|
||||
<label for="q_alt">q.alt</label>
|
||||
<input type="text" name="q.alt" id="q_alt">
|
||||
<label for="q_alt">q.alt</label>
|
||||
<input type="text" name="q.alt" id="q_alt">
|
||||
|
||||
<label for="qf">qf</label>
|
||||
<input type="text" name="qf" id="qf">
|
||||
<label for="qf">qf</label>
|
||||
<input type="text" name="qf" id="qf">
|
||||
|
||||
<label for="mm">mm</label>
|
||||
<input type="text" name="mm" id="mm">
|
||||
<label for="mm">mm</label>
|
||||
<input type="text" name="mm" id="mm">
|
||||
|
||||
<label for="pf">pf</label>
|
||||
<input type="text" name="pf" id="pf">
|
||||
<label for="pf">pf</label>
|
||||
<input type="text" name="pf" id="pf">
|
||||
|
||||
<label for="ps">ps</label>
|
||||
<input type="text" name="ps" id="ps">
|
||||
<label for="ps">ps</label>
|
||||
<input type="text" name="ps" id="ps">
|
||||
|
||||
<label for="qs">qs</label>
|
||||
<input type="text" name="qs" id="qs">
|
||||
<label for="qs">qs</label>
|
||||
<input type="text" name="qs" id="qs">
|
||||
|
||||
<label for="tie">tie</label>
|
||||
<input type="text" name="tie" id="tie">
|
||||
<label for="tie">tie</label>
|
||||
<input type="text" name="tie" id="tie">
|
||||
|
||||
<label for="bq">bq</label>
|
||||
<input type="text" name="bq" id="bq">
|
||||
<label for="bq">bq</label>
|
||||
<input type="text" name="bq" id="bq">
|
||||
|
||||
<label for="bf">bf</label>
|
||||
<input type="text" name="bf" id="bf">
|
||||
|
||||
</fieldset>
|
||||
<label for="bf">bf</label>
|
||||
<input type="text" name="bf" id="bf">
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="hl" class="checkbox">
|
||||
<input type="checkbox" name="hl" id="hl" value="true">
|
||||
hl
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="edismax" class="checkbox">
|
||||
<input type="checkbox" name="edismax" id="edismax" value="true">
|
||||
<strong>e</strong>dismax
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
|
||||
<label for="hl_fl">hl.fl</label>
|
||||
<input type="text" name="hl.fl" id="hl_fl" value="">
|
||||
<label for="q_alt">q.alt</label>
|
||||
<input type="text" name="q.alt" id="q_alt">
|
||||
|
||||
<label for="hl_simple_pre">hl.simple.pre</label>
|
||||
<input type="text" name="hl.simple.pre" id="hl_simple_pre" value="<em>">
|
||||
<label for="qf">qf</label>
|
||||
<input type="text" name="qf" id="qf">
|
||||
|
||||
<label for="hl_simple_post">hl.simple.post</label>
|
||||
<input type="text" name="hl.simple.post" id="hl_simple_post" value="</em>">
|
||||
<label for="mm">mm</label>
|
||||
<input type="text" name="mm" id="mm">
|
||||
|
||||
<label for="hl_requireFieldMatch" class="checkbox">
|
||||
<input type="checkbox" name="hl.requireFieldMatch" id="hl_requireFieldMatch" value="true">
|
||||
hl.requireFieldMatch
|
||||
</label>
|
||||
<label for="pf">pf</label>
|
||||
<input type="text" name="pf" id="pf">
|
||||
|
||||
<label for="hl_usePhraseHighlighter" class="checkbox">
|
||||
<input type="checkbox" name="hl.usePhraseHighlighter" id="hl_usePhraseHighlighter" value="true">
|
||||
hl.usePhraseHighlighter
|
||||
</label>
|
||||
<label for="ps">ps</label>
|
||||
<input type="text" name="ps" id="ps">
|
||||
|
||||
<label for="hl_highlightMultiTerm" class="checkbox">
|
||||
<input type="checkbox" name="hl.highlightMultiTerm" id="hl_highlightMultiTerm" value="true">
|
||||
hl.highlightMultiTerm
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
<label for="qs">qs</label>
|
||||
<input type="text" name="qs" id="qs">
|
||||
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="facet" class="checkbox">
|
||||
<input type="checkbox" name="facet" id="facet" value="true">
|
||||
facet
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
<label for="tie">tie</label>
|
||||
<input type="text" name="tie" id="tie">
|
||||
|
||||
<label for="facet_query">facet.query</label>
|
||||
<textarea name="facet.query" id="facet_query"></textarea>
|
||||
<label for="bq">bq</label>
|
||||
<input type="text" name="bq" id="bq">
|
||||
|
||||
<label for="facet_field">facet.field</label>
|
||||
<input type="text" name="facet.field" id="facet_field">
|
||||
<label for="bf">bf</label>
|
||||
<input type="text" name="bf" id="bf">
|
||||
|
||||
</fieldset>
|
||||
|
||||
<label for="facet_prefix">facet.prefix</label>
|
||||
<input type="text" name="facet.prefix" id="facet_prefix">
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="hl" class="checkbox">
|
||||
<input type="checkbox" name="hl" id="hl" value="true">
|
||||
hl
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
<label for="hl_fl">hl.fl</label>
|
||||
<input type="text" name="hl.fl" id="hl_fl" value="">
|
||||
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="spatial" class="checkbox">
|
||||
<input type="checkbox" name="spatial" id="spatial" value="true">
|
||||
spatial
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
<label for="hl_simple_pre">hl.simple.pre</label>
|
||||
<input type="text" name="hl.simple.pre" id="hl_simple_pre" value="<em>">
|
||||
|
||||
<label for="pt">pt</label>
|
||||
<input type="text" name="pt" id="pt">
|
||||
<label for="hl_simple_post">hl.simple.post</label>
|
||||
<input type="text" name="hl.simple.post" id="hl_simple_post" value="</em>">
|
||||
|
||||
<label for="sfield">sfield</label>
|
||||
<input type="text" name="sfield" id="sfield">
|
||||
<label for="hl_requireFieldMatch" class="checkbox">
|
||||
<input type="checkbox" name="hl.requireFieldMatch" id="hl_requireFieldMatch" value="true">
|
||||
hl.requireFieldMatch
|
||||
</label>
|
||||
|
||||
<label for="d">d</label>
|
||||
<input type="text" name="d" id="d">
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
<label for="hl_usePhraseHighlighter" class="checkbox">
|
||||
<input type="checkbox" name="hl.usePhraseHighlighter" id="hl_usePhraseHighlighter" value="true">
|
||||
hl.usePhraseHighlighter
|
||||
</label>
|
||||
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="spellcheck" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck" id="spellcheck" value="true">
|
||||
spellcheck
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
<label for="hl_highlightMultiTerm" class="checkbox">
|
||||
<input type="checkbox" name="hl.highlightMultiTerm" id="hl_highlightMultiTerm" value="true">
|
||||
hl.highlightMultiTerm
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<label for="spellcheck_build" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.build" id="spellcheck_build" value="true">
|
||||
spellcheck.build
|
||||
</label>
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="facet" class="checkbox">
|
||||
<input type="checkbox" name="facet" id="facet" value="true">
|
||||
facet
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
|
||||
<label for="spellcheck_reload" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.reload" id="spellcheck_reload" value="true">
|
||||
spellcheck.reload
|
||||
</label>
|
||||
<label for="facet_query">facet.query</label>
|
||||
<textarea name="facet.query" id="facet_query"></textarea>
|
||||
|
||||
<label for="spellcheck_q">spellcheck.q</label>
|
||||
<input type="text" name="spellcheck.q" id="spellcheck_q">
|
||||
<label for="facet_field">facet.field</label>
|
||||
<input type="text" name="facet.field" id="facet_field">
|
||||
|
||||
<label for="spellcheck_dictionary">spellcheck.dictionary</label>
|
||||
<input type="text" name="spellcheck.dictionary" id="spellcheck_dictionary">
|
||||
<label for="facet_prefix">facet.prefix</label>
|
||||
<input type="text" name="facet.prefix" id="facet_prefix">
|
||||
|
||||
<label for="spellcheck_count">spellcheck.count</label>
|
||||
<input type="text" name="spellcheck.count" id="spellcheck_count">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<label for="spellcheck_onlyMorePopular" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.onlyMorePopular" id="spellcheck_onlyMorePopular" value="true">
|
||||
spellcheck.onlyMorePopular
|
||||
</label>
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="spatial" class="checkbox">
|
||||
<input type="checkbox" name="spatial" id="spatial" value="true">
|
||||
spatial
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
|
||||
<label for="spellcheck_extendedResults" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.extendedResults" id="spellcheck_extendedResults" value="true">
|
||||
spellcheck.extendedResults
|
||||
</label>
|
||||
<label for="pt">pt</label>
|
||||
<input type="text" name="pt" id="pt">
|
||||
|
||||
<label for="spellcheck_collate" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.collate" id="spellcheck_collate" value="true">
|
||||
spellcheck.collate
|
||||
</label>
|
||||
<label for="sfield">sfield</label>
|
||||
<input type="text" name="sfield" id="sfield">
|
||||
|
||||
<label for="spellcheck_maxCollations">spellcheck.maxCollations</label>
|
||||
<input type="text" name="spellcheck.maxCollations" id="spellcheck_maxCollations">
|
||||
<label for="d">d</label>
|
||||
<input type="text" name="d" id="d">
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<label for="spellcheck_maxCollationTries">spellcheck.maxCollationTries</label>
|
||||
<input type="text" name="spellcheck.maxCollationTries" id="spellcheck_maxCollationTries">
|
||||
<fieldset class="optional">
|
||||
<legend>
|
||||
<label for="spellcheck" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck" id="spellcheck" value="true">
|
||||
spellcheck
|
||||
</label>
|
||||
</legend>
|
||||
<div class="fieldset">
|
||||
|
||||
<label for="spellcheck_accuracy">spellcheck.accuracy</label>
|
||||
<input type="text" name="spellcheck.accuracy" id="spellcheck_accuracy">
|
||||
|
||||
</fieldset>
|
||||
<label for="spellcheck_build" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.build" id="spellcheck_build" value="true">
|
||||
spellcheck.build
|
||||
</label>
|
||||
|
||||
<label for="spellcheck_reload" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.reload" id="spellcheck_reload" value="true">
|
||||
spellcheck.reload
|
||||
</label>
|
||||
|
||||
<label for="spellcheck_q">spellcheck.q</label>
|
||||
<input type="text" name="spellcheck.q" id="spellcheck_q">
|
||||
|
||||
<label for="spellcheck_dictionary">spellcheck.dictionary</label>
|
||||
<input type="text" name="spellcheck.dictionary" id="spellcheck_dictionary">
|
||||
|
||||
<label for="spellcheck_count">spellcheck.count</label>
|
||||
<input type="text" name="spellcheck.count" id="spellcheck_count">
|
||||
|
||||
<label for="spellcheck_onlyMorePopular" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.onlyMorePopular" id="spellcheck_onlyMorePopular" value="true">
|
||||
spellcheck.onlyMorePopular
|
||||
</label>
|
||||
|
||||
<label for="spellcheck_extendedResults" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.extendedResults" id="spellcheck_extendedResults" value="true">
|
||||
spellcheck.extendedResults
|
||||
</label>
|
||||
|
||||
<label for="spellcheck_collate" class="checkbox">
|
||||
<input type="checkbox" name="spellcheck.collate" id="spellcheck_collate" value="true">
|
||||
spellcheck.collate
|
||||
</label>
|
||||
|
||||
<label for="spellcheck_maxCollations">spellcheck.maxCollations</label>
|
||||
<input type="text" name="spellcheck.maxCollations" id="spellcheck_maxCollations">
|
||||
|
||||
<label for="spellcheck_maxCollationTries">spellcheck.maxCollationTries</label>
|
||||
<input type="text" name="spellcheck.maxCollationTries" id="spellcheck_maxCollationTries">
|
||||
|
||||
<label for="spellcheck_accuracy">spellcheck.accuracy</label>
|
||||
<input type="text" name="spellcheck.accuracy" id="spellcheck_accuracy">
|
||||
|
||||
</fieldset>
|
||||
|
||||
|
||||
<button type="submit">Execute Query</button>
|
||||
<button type="submit">Execute Query</button>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="result">
|
||||
<div id="result">
|
||||
|
||||
<a id="url" href="#"></a>
|
||||
<a id="url" href="#"></a>
|
||||
|
||||
<div id="response">
|
||||
<div id="response">
|
||||
|
||||
<iframe src="about:blank"></iframe>
|
||||
|
||||
</div>
|
||||
<iframe src="about:blank"></iframe>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -16,185 +16,192 @@ limitations under the License.
|
|||
-->
|
||||
<div id="replication" class="clearfix">
|
||||
|
||||
<div id="frame">
|
||||
<div id="frame">
|
||||
|
||||
<div id="error"></div>
|
||||
<div id="error"></div>
|
||||
|
||||
<div class="replicating block">
|
||||
<div class="replicating block">
|
||||
|
||||
<div id="progress">
|
||||
<div id="progress">
|
||||
|
||||
<div id="start"><div class="info">
|
||||
<div id="start"><div class="info">
|
||||
|
||||
<span>Wed May 11 19:41:48 UTC 2011</span>
|
||||
<span>Wed May 11 19:41:48 UTC 2011</span>
|
||||
|
||||
</div></div>
|
||||
</div></div>
|
||||
|
||||
<div id="speed"><div class="info">
|
||||
<div id="speed"><div class="info">
|
||||
|
||||
<span>5.1 MB</span>/s
|
||||
<span>5.1 MB</span>/s
|
||||
|
||||
</div></div>
|
||||
</div></div>
|
||||
|
||||
<div id="bar">
|
||||
<div id="bar">
|
||||
|
||||
<div id="bar-info"><div class="info">
|
||||
<div id="bar-info"><div class="info">
|
||||
|
||||
<div class="files"><span>24</span> Files</div>
|
||||
<div class="size"><span>226.85 MB</span></div>
|
||||
<div class="files"><span>24</span> Files</div>
|
||||
<div class="size"><span>226.85 MB</span></div>
|
||||
|
||||
</div></div>
|
||||
</div></div>
|
||||
|
||||
<div id="eta"><div class="info">
|
||||
<div id="eta"><div class="info">
|
||||
|
||||
ETA: <span>25s</span>
|
||||
ETA: <span>25s</span>
|
||||
|
||||
</div></div>
|
||||
</div></div>
|
||||
|
||||
<div id="done" style="width: 20.0%;">
|
||||
<div id="done" style="width: 20.0%;">
|
||||
|
||||
<div class="percent">
|
||||
<div class="percent">
|
||||
|
||||
<span>20</span>%
|
||||
|
||||
</div>
|
||||
|
||||
<div id="done-info"><div class="info">
|
||||
|
||||
<div class="files"><span>2</span> Files</div>
|
||||
<div class="size"><span>91.76 MB</span></div>
|
||||
|
||||
</div></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<span>20</span>%
|
||||
|
||||
</div>
|
||||
|
||||
<div id="current-file" class="clearfix">
|
||||
<div id="done-info"><div class="info">
|
||||
|
||||
<div class="label"><span class="loader">Current File:</span></div>
|
||||
<div class="file">_a.fdt</div>
|
||||
<div class="progress">
|
||||
<span class="done">84 MB</span> / <span class="total">102.98 MB</span> [<span class="percent">81</span>%]
|
||||
</div>
|
||||
<div class="files"><span>2</span> Files</div>
|
||||
<div class="size"><span>91.76 MB</span></div>
|
||||
|
||||
</div></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="iterations" class="slaveOnly block clearfix">
|
||||
</div>
|
||||
|
||||
<div class="label"><span class="">Iterations:</span></div>
|
||||
<div class="iterations">
|
||||
<ul>
|
||||
</ul>
|
||||
<a>
|
||||
<span class="expand">Show all Iterations</span>
|
||||
<span class="collapse">Hide past Iterations</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="current-file" class="clearfix">
|
||||
|
||||
<div class="label"><span class="loader">Current File:</span></div>
|
||||
<div class="file">_a.fdt</div>
|
||||
<div class="progress">
|
||||
<span class="done">84 MB</span> / <span class="total">102.98 MB</span> [<span class="percent">81</span>%]
|
||||
</div>
|
||||
|
||||
<div id="details" class="block clearfix">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<div id="iterations" class="slaveOnly block clearfix">
|
||||
|
||||
<thead>
|
||||
<div class="label"><span class="">Iterations:</span></div>
|
||||
<div class="iterations">
|
||||
<ul>
|
||||
</ul>
|
||||
<a>
|
||||
<span class="expand">Show all Iterations</span>
|
||||
<span class="collapse">Hide past Iterations</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<div id="details" class="block clearfix">
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
|
||||
<td><span>Index</span></td>
|
||||
<th>Version</th>
|
||||
<th><abbr title="Generation">Gen</abbr></th>
|
||||
<th>Size</th>
|
||||
<td><span>Index</span></td>
|
||||
<th>Version</th>
|
||||
<th><abbr title="Generation">Gen</abbr></th>
|
||||
<th>Size</th>
|
||||
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr class="master">
|
||||
<tr class="master">
|
||||
|
||||
<th>Master:</th>
|
||||
<td class="version"><div></div></td>
|
||||
<td class="generation"><div></div></td>
|
||||
<td class="size"><div></div></td>
|
||||
<th>Master:</th>
|
||||
<td class="version"><div></div></td>
|
||||
<td class="generation"><div></div></td>
|
||||
<td class="size"><div></div></td>
|
||||
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
<tr class="slave slaveOnly">
|
||||
<tr class="slave slaveOnly">
|
||||
|
||||
<th>Slave:</th>
|
||||
<td class="version"><div></div></td>
|
||||
<td class="generation"><div></div></td>
|
||||
<td class="size"><div></div></td>
|
||||
<th>Slave:</th>
|
||||
<td class="version"><div></div></td>
|
||||
<td class="generation"><div></div></td>
|
||||
<td class="size"><div></div></td>
|
||||
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="settings" class="settings block clearfix slaveOnly">
|
||||
|
||||
<div class="label"><span>Settings:</span></div>
|
||||
<ul>
|
||||
<li class="masterUrl"><dl class="clearfix">
|
||||
<dt>master url:</dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="isPollingDisabled"><dl class="clearfix">
|
||||
<dt>polling enable:</dt>
|
||||
<dd class="ico"> </dd>
|
||||
</dl></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="master-settings" class="settings block clearfix">
|
||||
|
||||
<div class="label"><span>Settings (Master):</span></div>
|
||||
<ul>
|
||||
<li class="replicationEnabled"><dl class="clearfix">
|
||||
<dt>replication enable:</dt>
|
||||
<dd class="ico"> </dd>
|
||||
</dl></li>
|
||||
<li class="replicateAfter"><dl class="clearfix">
|
||||
<dt>replicateAfter:</dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="confFiles"><dl class="clearfix">
|
||||
<dt>confFiles:</dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="navigation">
|
||||
<div id="settings" class="settings block clearfix slaveOnly">
|
||||
|
||||
<button class="refresh-status">Refresh Status</button>
|
||||
|
||||
<div class="slaveOnly">
|
||||
<button class="optional replicate-now" data-command="fetchindex">Replicate now</button>
|
||||
<button class="optional abort-replication" data-command="abortfetch">Abort Replication</button>
|
||||
|
||||
<button class="optional disable-polling" data-command="disablepoll">Disable Polling</button>
|
||||
<button class="optional enable-polling" data-command="enablepoll">Enable Polling</button>
|
||||
</div>
|
||||
|
||||
<div class="masterOnly">
|
||||
<button class="optional disable-replication" data-command="disablereplication">Disable Replication</button>
|
||||
<button class="optional enable-replication" data-command="enablereplication">Enable Replication</button>
|
||||
</div>
|
||||
|
||||
<div class="label"><span>Settings:</span></div>
|
||||
<ul>
|
||||
<li class="masterUrl"><dl class="clearfix">
|
||||
<dt>master url:</dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="isPollingDisabled"><dl class="clearfix">
|
||||
<dt>polling enable:</dt>
|
||||
<dd class="ico"> </dd>
|
||||
</dl></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="master-settings" class="settings block clearfix">
|
||||
|
||||
<div class="label"><span>Settings (Master):</span></div>
|
||||
<ul>
|
||||
<li class="replicationEnabled"><dl class="clearfix">
|
||||
<dt>replication enable:</dt>
|
||||
<dd class="ico"> </dd>
|
||||
</dl></li>
|
||||
<li class="replicateAfter"><dl class="clearfix">
|
||||
<dt>replicateAfter:</dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
<li class="confFiles"><dl class="clearfix">
|
||||
<dt>confFiles:</dt>
|
||||
<dd></dd>
|
||||
</dl></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="navigation">
|
||||
|
||||
<div class="timer">
|
||||
|
||||
<p>Next Run: <span class="approx">~</span><span class="tick">15m 8s</span></p>
|
||||
<small>Sat Mar 03 11:00:00 CET 2012</smalL>
|
||||
|
||||
</div>
|
||||
|
||||
<button class="refresh-status">Refresh Status</button>
|
||||
|
||||
<div class="slaveOnly">
|
||||
<button class="optional replicate-now" data-command="fetchindex">Replicate now</button>
|
||||
<button class="optional abort-replication" data-command="abortfetch">Abort Replication</button>
|
||||
|
||||
<button class="optional disable-polling" data-command="disablepoll">Disable Polling</button>
|
||||
<button class="optional enable-polling" data-command="enablepoll">Enable Polling</button>
|
||||
</div>
|
||||
|
||||
<div class="masterOnly">
|
||||
<button class="optional disable-replication" data-command="disablereplication">Disable Replication</button>
|
||||
<button class="optional enable-replication" data-command="enablereplication">Enable Replication</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -16,147 +16,150 @@ limitations under the License.
|
|||
-->
|
||||
<div id="schema-browser" class="loaded">
|
||||
|
||||
<div class="clearfix">
|
||||
<div class="clearfix">
|
||||
|
||||
<div id="data">
|
||||
<div id="data">
|
||||
|
||||
<div id="field">
|
||||
<div id="field">
|
||||
|
||||
<div class="field-options">
|
||||
<div class="field-options">
|
||||
|
||||
<dl class="options clearfix">
|
||||
<div class="block head">
|
||||
<h2>
|
||||
<span class="type"></span>:
|
||||
<span class="name"></span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<dt class="field-type">Field-Type:</dt>
|
||||
<dl class="options clearfix">
|
||||
|
||||
<dt class="properties">Properties:</dt>
|
||||
<dt class="field-type">Field-Type:</dt>
|
||||
|
||||
<dt class="schema">Schema:</dt>
|
||||
<dt class="properties">Properties:</dt>
|
||||
|
||||
<dt class="index">Index:</dt>
|
||||
<dt class="schema">Schema:</dt>
|
||||
|
||||
<dt class="position-increment-gap"><abbr title="Position Increment Gap">PI Gap</abbr>:</dt>
|
||||
<dt class="index">Index:</dt>
|
||||
|
||||
<dt class="docs">Docs:</dt>
|
||||
<dt class="position-increment-gap"><abbr title="Position Increment Gap">PI Gap</abbr>:</dt>
|
||||
|
||||
<dt class="distinct">Distinct:</dt>
|
||||
<dt class="docs">Docs:</dt>
|
||||
|
||||
<dt class="distinct">Distinct:</dt>
|
||||
|
||||
</dl>
|
||||
</dl>
|
||||
|
||||
<ul class="analyzer">
|
||||
<li class="clearfix index">
|
||||
<ul class="analyzer">
|
||||
<li class="clearfix index">
|
||||
|
||||
<p>Index Analyzer:</p>
|
||||
<dl>
|
||||
<dt></dt>
|
||||
</dl>
|
||||
<p>Index Analyzer:</p>
|
||||
<dl>
|
||||
<dt><a class="toggle"></a></dt>
|
||||
</dl>
|
||||
|
||||
<ul>
|
||||
<li class="clearfix tokenizer">
|
||||
<p>Tokenizer:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="clearfix filters">
|
||||
<p>Filters:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="clearfix tokenizer">
|
||||
<p>Tokenizer:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="clearfix filters">
|
||||
<p>Filters:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
<li class="clearfix query">
|
||||
</li>
|
||||
<li class="clearfix query">
|
||||
|
||||
<p>Query Analyzer:</p>
|
||||
<dl>
|
||||
<dt></dt>
|
||||
</dl>
|
||||
<p>Query Analyzer:</p>
|
||||
<dl>
|
||||
<dt><a class="toggle"></a></dt>
|
||||
</dl>
|
||||
|
||||
<ul>
|
||||
<li class="clearfix tokenizer">
|
||||
<p>Tokenizer:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="clearfix filters">
|
||||
<p>Filters:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class="clearfix tokenizer">
|
||||
<p>Tokenizer:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="clearfix filters">
|
||||
<p>Filters:</p>
|
||||
<dl>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="terminfo-holder clearfix">
|
||||
|
||||
<div class="status loader">Loading Term Info ...</div>
|
||||
|
||||
<div class="topterms-holder">
|
||||
|
||||
<p class="head">Top <span class="shown"></span><span class="max-holder">/<span class="max"></span></span> Terms:</p>
|
||||
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
|
||||
<th class="position" title="Position"> </th>
|
||||
<th class="term">Term</th>
|
||||
<th class="frequency" title="Frequency">Frq</th>
|
||||
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
|
||||
</table>
|
||||
|
||||
<p class="navi clearfix">
|
||||
<a class="less"><span>less</span></a>
|
||||
<a class="more"><span>more</span></a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="histogram-holder">
|
||||
|
||||
<p class="head">Histogram:</p>
|
||||
|
||||
<div class="histogram"></div>
|
||||
|
||||
<dl class="clearfix">
|
||||
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="related">
|
||||
<div class="terminfo-holder clearfix">
|
||||
|
||||
<select>
|
||||
<option value="" selected="selected">Please select ...</option>
|
||||
</select>
|
||||
<div class="trigger">
|
||||
|
||||
<button class="submit">Load Term Info</button>
|
||||
|
||||
<a class="autoload" title="Automatically load Term Info?"><span>Autoload™</span></a>
|
||||
|
||||
</div>
|
||||
|
||||
<p class="status">Sorry, no Term Info available :(</p>
|
||||
|
||||
<div class="topterms-holder">
|
||||
|
||||
<form>
|
||||
<p class="head">
|
||||
<input type="text">
|
||||
<a class="max-holder" title="Load all Top-Terms">/<span class="max"></span></a> Top-Terms:
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<ul>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="histogram-holder">
|
||||
|
||||
<p class="head">Histogram:</p>
|
||||
|
||||
<div class="histogram"></div>
|
||||
|
||||
<dl class="clearfix">
|
||||
|
||||
<dl id="f-df-t">
|
||||
</dl>
|
||||
|
||||
<dl class="ukf-dsf">
|
||||
|
||||
<dt class="unique-key-field">Unique Key Field</dt>
|
||||
|
||||
<dt class="default-search-field">Default Search Field</dt>
|
||||
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="related">
|
||||
|
||||
<select>
|
||||
<option value="" selected="selected">Please select ...</option>
|
||||
</select>
|
||||
|
||||
<dl id="f-df-t">
|
||||
</dl>
|
||||
|
||||
<dl class="ukf-dsf">
|
||||
|
||||
<dt class="unique-key-field">Unique Key Field</dt>
|
||||
|
||||
<dt class="default-search-field">Default Search Field</dt>
|
||||
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
|
@ -16,41 +16,41 @@ limitations under the License.
|
|||
-->
|
||||
<div id="threads" class="collapsed">
|
||||
|
||||
<div class="controls">
|
||||
<a>
|
||||
<span class="expand">Show all Stacktraces</span>
|
||||
<span class="collapse">Hide all Stacktraces</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a>
|
||||
<span class="expand">Show all Stacktraces</span>
|
||||
<span class="collapse">Hide all Stacktraces</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="thread-dump">
|
||||
<div id="thread-dump">
|
||||
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
|
||||
<thead>
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<tr>
|
||||
|
||||
<th class="name">name</th>
|
||||
<th class="time">cpuTime / userTime</th>
|
||||
<th class="name">name</th>
|
||||
<th class="time">cpuTime / userTime</th>
|
||||
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="controls">
|
||||
<a>
|
||||
<span class="expand">Show all Stacktraces</span>
|
||||
<span class="collapse">Hide all Stacktraces</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a>
|
||||
<span class="expand">Show all Stacktraces</span>
|
||||
<span class="collapse">Hide all Stacktraces</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
Loading…
Reference in New Issue