You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sh...@apache.org on 2017/01/02 13:44:07 UTC
svn commit: r1776930 [19/19] - in /ofbiz/trunk/specialpurpose: lucene/
lucene/src/main/java/org/apache/ofbiz/content/search/ solr/
solr/src/main/java/org/apache/ofbiz/solr/webapp/ solr/webapp/solr/
solr/webapp/solr/WEB-INF/ solr/webapp/solr/css/ solr/w...
Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/query.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/query.html?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/query.html (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/query.html Mon Jan 2 13:44:06 2017
@@ -0,0 +1,356 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div id="query" class="clearfix">
+
+ <div id="form">
+ <form>
+ <label for="qt" title="Request handler in solrconfig.xml.">
+ <a rel="help">Request-Handler (qt)</a>
+ </label>
+ <input type="text" ng-model="qt" id="qt" value="/select" title="Request handler in solrconfig.xml.">
+
+ <fieldset class="common">
+ <legend>common</legend>
+ <div class="fieldset">
+
+ <label for="q" title="The query string.">
+ q
+ </label>
+ <textarea name="q" ng-model="query.q" id="q" title="The query string.">*:*</textarea>
+
+ <label for="fq" title="Filter query.">
+ <a rel="help">fq</a>
+ </label>
+ <div class="multiple">
+ <div class="row clearfix" ng-repeat="filter in filters">
+ <input type="text" ng-model="filter.fq" id="fq" name="fq" title="Filter query.">
+ <div class="buttons">
+ <a class="rem" ng-click="removeFilter($index)"><span></span></a>
+ <a class="add" ng-click="addFilter($index)"><span></span></a>
+ </div>
+ </div>
+ </div>
+
+ <label for="sort" title="Sort field or function with asc|desc.">
+ <a rel="help">sort</a>
+ </label>
+ <input type="text" ng-model="query.sort" id="sort" name="sort" title="Sort field or function with asc|desc.">
+
+ <label for="start" title="Number of leading documents to skip and number of documents to return after 'start'. (Integers)">
+ <a rel="help">start</a>,
+ <a rel="help">rows</a>
+ </label>
+ <div class="clearfix">
+ <input type="text" name="start" ng-model="query.start" id="start" placeholder="0" pattern="[0-9]+" title="Number of leading documents to skip. (Integer)">
+ <input type="text" name="rows" ng-model="query.rows" id="rows" placeholder="10" pattern="[0-9]+" title="Number of documents to return after 'start'. (Integer)">
+ </div>
+
+ <label for="fl" title="Field list, comma separated.">
+ <a rel="help">fl</a>
+ </label>
+ <input type="text" ng-model="query.fl" name="fl" id="fl" value="" title="Field list, comma separated.">
+
+ <label for="df" title="Default search field">
+ <a rel="help">df</a>
+ </label>
+ <input type="text" ng-model="query.df" name="df" id="df" value="" title="Default search field">
+
+ <label for="custom_parameters">
+ <a rel="help">Raw Query Parameters</a>
+ </label>
+ <input type="text" ng-model="rawParams" id="custom_parameters" value="" placeholder="key1=val1&key2=val2">
+
+ <label for="wt" title="The writer type (response format).">
+ <a rel="help">wt</a>
+ </label>
+ <select name="wt" ng-model="query.wt" id="wt" title="The writer type (response format).">
+ <option>json</option>
+ <option>xml</option>
+ <option>python</option>
+ <option>ruby</option>
+ <option>php</option>
+ <option>csv</option>
+ </select>
+
+ <label for="indent" class="checkbox" title="Indent results.">
+ <input type="checkbox" ng-model="query.indent" name="indent" id="indent" title="Indent results." ng-true-value="'on'" ng-false-value="''">
+ indent
+ </label>
+
+ <label for="debugQuery" class="checkbox" title="Show timing and diagnostics.">
+ <input type="checkbox" ng-model="query.debugQuery" name="debugQuery" id="debugQuery" title="Show timing and diagnostics." ng-true-value="'on'" ng-false-value="''">
+ debugQuery
+ </label>
+
+ </div>
+ </fieldset>
+
+ <fieldset class="dismax optional">
+ <legend>
+ <label for="dismax" class="checkbox" title="Enable dismax.">
+ <input type="checkbox" ng-model="isDismax" name="defType" id="dismax" value="dismax">
+ dismax
+ </label>
+ </legend>
+ <div class="fieldset" ng-show="isDismax">
+
+ <label for="q_alt" title="Alternate query when 'q' is absent.">q.alt</label>
+ <input type="text" ng-model="dismax['q.alt']" name="q.alt" id="q_alt" title="Alternate query when 'q' is absent.">
+
+ <label for="qf" title="Query fields with optional boosts.">qf</label>
+ <input type="text" ng-model="dismax.qf" name="qf" id="qf" title="Query fields with optional boosts.">
+
+ <label for="mm" title="Min-should-match expression">mm</label>
+ <input type="text" ng-model="dismax.mm" name="mm" id="mm" title="Min-should-match expression.">
+
+ <label for="pf" title="Phrase boosted fields.">pf</label>
+ <input type="text" ng-model="dismax.pf" name="pf" id="pf" title="Phrase boosted fields.">
+
+ <label for="ps" title="Phrase boost slop.">ps</label>
+ <input type="text" ng-model="dismax.ps" name="ps" id="ps" title="Phrase boost slop.">
+
+ <label for="qs" title="Query string phrase slop.">qs</label>
+ <input type="text" ng-model="dismax.qs" name="qs" id="qs" title="Query string phrase slop.">
+
+ <label for="tie" title="Score tie-breaker. Try 0.1.">tie</label>
+ <input type="text" ng-model="dismax.tie" name="tie" id="tie" title="Score tie-breaker. Try 0.1.">
+
+ <label for="bq" title="Boost query.">bq</label>
+ <input type="text" ng-model="dismax.bq" name="bq" id="bq" title="Boost query.">
+
+ <label for="bf" title="Boost function (added).">bf</label>
+ <input type="text" ng-model="dismax.bf" name="bf" id="bf" title="Boost function (added).">
+
+ </div>
+ </fieldset>
+
+ <fieldset class="edismax optional">
+ <legend>
+ <label for="edismax" class="checkbox" title="Enable edismax.">
+ <input type="checkbox" ng-model="isEdismax" name="defType" id="edismax" value="edismax">
+ <strong>e</strong>dismax
+ </label>
+ </legend>
+ <div class="fieldset" ng-show="isEdismax">
+
+ <label for="edismax_q_alt" title="Alternate query when 'q' is absent.">q.alt</label>
+ <input type="text" ng-model="edismax['q.alt']" name="q.alt" id="edismax_q_alt" title="Alternate query when 'q' is absent.">
+
+ <label for="edismax_qf" title="Query fields with optional boosts.">qf</label>
+ <input type="text" ng-model="edismax.qf" name="qf" id="edismax_qf" title="Query fields with optional boosts.">
+
+ <label for="edismax_mm" title="Min-should-match expression.">mm</label>
+ <input type="text" ng-model="edismax.mm" name="mm" id="edismax_mm" title="Min-should-match expression.">
+
+ <label for="edismax_pf" title="Phrase boosted fields.">pf</label>
+ <input type="text" ng-model="edismax.pf" name="pf" id="edismax_pf" title="Phrase boosted fields.">
+
+ <label for="edismax_ps" title="Phrase boost slop.">ps</label>
+ <input type="text" ng-model="edismax.ps" name="ps" id="edismax_ps" title="Phrase boost slop.">
+
+ <label for="edismax_qs" title="Query string phrase slop.">qs</label>
+ <input type="text" ng-model="edismax.qs" name="qs" id="edismax_qs" title="Query string phrase slop.">
+
+ <label for="edismax_tie" title="Score tie-breaker. Try 0.1.">tie</label>
+ <input type="text" ng-model="edismax.tie" name="tie" id="edismax_tie" title="Score tie-breaker. Try 0.1.">
+
+ <label for="edismax_bq" title="Boost query.">bq</label>
+ <input type="text" ng-model="edismax.bq" name="bq" id="edismax_bq" title="Boost query.">
+
+ <label for="edismax_bf" title="Boost function (added).">bf</label>
+ <input type="text" ng-model="edismax.bf" name="bf" id="edismax_bf" title="Boost function (added).">
+
+ <label for="edismax_uf" title="User Fields">uf</label>
+ <input type="text" ng-model="edismax.uf" name="uf" id="edismax_uf" title="User Fields">
+
+ <label for="edismax_pf2" title="bigram phrase boost fields">pf2</label>
+ <input type="text" ng-model="edismax.pf2" name="pf2" id="edismax_pf2" title="bigram phrase boost fields">
+
+ <label for="edismax_pf3" title="trigram phrase boost fields">pf3</label>
+ <input type="text" ng-model="edismax.pf3" name="pf3" id="edismax_pf3" title="trigram phrase boost fields">
+
+ <label for="edismax_ps2" title="phrase slop for bigram phrases">ps2</label>
+ <input type="text" ng-model="edismax.ps2" name="ps2" id="edismax_ps2" title="phrase slop for bigram phrases">
+
+ <label for="edismax_ps3" title="phrase slop for trigram phrases">ps3</label>
+ <input type="text" ng-model="edismax.ps3" name="ps3" id="edismax_ps3" title="phrase slop for trigram phrases">
+
+ <label for="edismax_boost" title="multiplicative boost function">boost</label>
+ <input type="text" ng-model="edismax.boost" name="boost" id="edismax_boost" title="multiplicative boost function">
+
+ <label for="edismax_stopwords" class="checkbox" title="remove stopwords from mandatory 'matching' component">
+ <input type="checkbox" ng-model="edismax.stopwords" name="stopwords" id="edismax_stopwords">
+ stopwords
+ </label>
+
+ <label for="edismax_lowercaseOperators" class="checkbox" title="Enable lower-case 'and' and 'or' as operators">
+ <input type="checkbox" ng-model="edismax.lowercaseOperators" name="lowercaseOperators" id="edismax_lowercaseOperators">
+ lowercaseOperators
+ </label>
+
+ </div>
+ </fieldset>
+
+ <fieldset class="hl optional">
+ <legend>
+ <label for="hl" class="checkbox" title="Enable highlighting.">
+ <input type="checkbox" ng-model="isHighlight" name="hl" id="hl" value="true">
+ hl
+ </label>
+ </legend>
+ <div class="fieldset" ng-show="isHighlight">
+
+ <label for="hl_fl" title="Fields to highlight on.">hl.fl</label>
+ <input type="text" ng-model="hl['hl.fl']" name="hl.fl" id="hl_fl" value="" title="Fields to highlight on.">
+
+ <label for="hl_simple_pre">hl.simple.pre</label>
+ <input type="text" ng-model="hl['hl.simple.pre']" name="hl.simple.pre" id="hl_simple_pre" value="<em>">
+
+ <label for="hl_simple_post">hl.simple.post</label>
+ <input type="text" ng-model="hl['hl.simple.post']" name="hl.simple.post" id="hl_simple_post" value="</em>">
+
+ <label for="hl_requireFieldMatch" class="checkbox">
+ <input type="checkbox" ng-model="hl['hl.requireFieldMatch']" name="hl.requireFieldMatch" id="hl_requireFieldMatch" value="true">
+ hl.requireFieldMatch
+ </label>
+
+ <label for="hl_usePhraseHighlighter" class="checkbox">
+ <input type="checkbox" ng-model="hl['usePhraseHighLighter']" name="hl.usePhraseHighlighter" id="hl_usePhraseHighlighter" value="true">
+ hl.usePhraseHighlighter
+ </label>
+
+ <label for="hl_highlightMultiTerm" class="checkbox">
+ <input type="checkbox" ng-model="hl['hightlightMultiTerm']" name="hl.highlightMultiTerm" id="hl_highlightMultiTerm" value="true">
+ hl.highlightMultiTerm
+ </label>
+
+ </div>
+ </fieldset>
+
+ <fieldset class="facet optional">
+ <legend>
+ <label for="facet" class="checkbox" title="Enable faceting.">
+ <input type="checkbox" ng-model="isFacet" name="facet" id="facet">
+ facet
+ </label>
+ </legend>
+ <div class="fieldset" ng-show="isFacet">
+
+ <label for="facet_query">facet.query</label>
+ <textarea ng-model="facet['facet.query']" name="facet.query" id="facet_query"></textarea>
+
+ <label for="facet_field">facet.field</label>
+ <input type="text" ng-model="facet['facet.field']" name="facet.field" id="facet_field">
+
+ <label for="facet_prefix">facet.prefix</label>
+ <input type="text" ng-model="facet['facet.prefix']" name="facet.prefix" id="facet_prefix">
+
+ </div>
+ </fieldset>
+
+ <fieldset class="spatial optional">
+ <legend>
+ <label for="spatial" class="checkbox" title="Show spatial options">
+ <input type="checkbox" ng-model="isSpatial" name="spatial" id="spatial">
+ spatial
+ </label>
+ </legend>
+ <div class="fieldset" ng-show="isSpatial">
+
+ <label for="pt">pt</label>
+ <input type="text" ng-model="spatial.pt" name="pt" id="pt">
+
+ <label for="sfield">sfield</label>
+ <input type="text" ng-model="spatial.sfield" name="sfield" id="sfield">
+
+ <label for="d">d</label>
+ <input type="text" ng-model="spatial.d" name="d" id="d">
+
+ </div>
+ </fieldset>
+
+ <fieldset class="spellcheck optional">
+ <legend>
+ <label for="spellcheck" class="checkbox" title="Enable spellchecking.">
+ <input type="checkbox" ng-model="isSpellcheck" name="spellcheck" id="spellcheck">
+ spellcheck
+ </label>
+ </legend>
+ <div class="fieldset" ng-show="isSpellcheck">
+
+ <label for="spellcheck_build" class="checkbox">
+ <input type="checkbox" ng-model="spellcheck['spellcheck.build']" name="spellcheck.build" id="spellcheck_build" value="true">
+ spellcheck.build
+ </label>
+
+ <label for="spellcheck_reload" class="checkbox">
+ <input type="checkbox" ng-model="spellcheck['spellcheck.reload']" name="spellcheck.reload" id="spellcheck_reload" value="true">
+ spellcheck.reload
+ </label>
+
+ <label for="spellcheck_q">spellcheck.q</label>
+ <input type="text" ng-model="spellcheck['spellcheck.q']" name="spellcheck.q" id="spellcheck_q">
+
+ <label for="spellcheck_dictionary">spellcheck.dictionary</label>
+ <input type="text" ng-model="spellcheck['spellcheck.dictionary']" name="spellcheck.dictionary" id="spellcheck_dictionary">
+
+ <label for="spellcheck_count">spellcheck.count</label>
+ <input type="text" ng-model="spellcheck['spellcheck.count']" name="spellcheck.count" id="spellcheck_count">
+
+ <label for="spellcheck_onlyMorePopular" class="checkbox">
+ <input type="checkbox" ng-model="spellcheck['spellcheck.onlyMorePopular']" name="spellcheck.onlyMorePopular" id="spellcheck_onlyMorePopular" value="true">
+ spellcheck.onlyMorePopular
+ </label>
+
+ <label for="spellcheck_extendedResults" class="checkbox">
+ <input type="checkbox" ng-model="spellcheck['spellcheck.extendedResults']" name="spellcheck.extendedResults" id="spellcheck_extendedResults" value="true">
+ spellcheck.extendedResults
+ </label>
+
+ <label for="spellcheck_collate" class="checkbox">
+ <input type="checkbox" ng-model="spellcheck['spellcheck.collate']" name="spellcheck.collate" id="spellcheck_collate" value="true">
+ spellcheck.collate
+ </label>
+
+ <label for="spellcheck_maxCollations">spellcheck.maxCollations</label>
+ <input type="text" ng-model="spellcheck['spellcheck.maxCollations']" name="spellcheck.maxCollations" id="spellcheck_maxCollations">
+
+ <label for="spellcheck_maxCollationTries">spellcheck.maxCollationTries</label>
+ <input type="text" ng-model="spellcheck['spellcheck.maxCollationTries']" name="spellcheck.maxCollationTries" id="spellcheck_maxCollationTries">
+
+ <label for="spellcheck_accuracy">spellcheck.accuracy</label>
+ <input type="text" ng-model="spellcheck['spellcheck.accuracy']" name="spellcheck.accuracy" id="spellcheck_accuracy">
+ </div>
+
+ </fieldset>
+
+
+ <button type="submit" ng-click="doQuery()">Execute Query</button>
+ </form>
+ </div>
+
+ <div id="result">
+
+ <a ng-show="response.data" id="url" class="address-bar" ng-href="{{url}}">{{url}}</a>
+
+ <div id="response">
+ <pre class="syntax language-{{lang}}"><code ng-bind-html="response.data | highlight:lang | unsafe"></code></pre>
+ </div>
+
+ </div>
+
+</div>
Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/replication.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/replication.html?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/replication.html (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/replication.html Mon Jan 2 13:44:06 2017
@@ -0,0 +1,239 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div id="replication" class="clearfix" ng-class="{replicating:settings.isReplicating}">
+
+ <div id="frame">
+
+ <div id="error" ng-show="progress.ERROR">{{ progress.ERROR }}</div>
+
+ <div class="replicating block" ng-show="settings.isReplicating">
+
+ <div id="progress">
+
+ <div id="start"><div class="info">
+
+ <span>{{progress.replicationStartTime}}</span>
+
+ </div></div>
+
+ <div id="speed"><div class="info">
+
+ <span>5.1 MB</span>/s
+
+ </div></div>
+
+ <div id="bar">
+
+ <div id="bar-info"><div class="info">
+
+ <div class="files"><span>{{progress.numFilesToDownload}}</span> File<span ng-show="progress.numFilesToDownload>1">s</span></div>
+ <div class="size"><span>{{progress.bytesToDownload}}</span></div>
+
+ </div></div>
+
+ <div id="eta"><div class="info">
+
+ ETA: <span>{{progress.timeRemaining | readableSeconds }}</span>
+
+ </div></div>
+
+ <div id="done" style="width: {{progress.totalPercentWidth}}">
+
+ <div class="percent">
+
+ <span>{{progress.totalPercent}}</span>%
+
+ </div>
+
+ <div id="done-info"><div class="info">
+
+ <div class="files"><span>{{progress.numFilesDownloaded}}</span> File<span ng-show="progress.numFilesDownloaded>1">s</span></div>
+ <div class="size"><span>{{progress.bytesDownloaded}}</span></div>
+
+ </div></div>
+
+ </div>
+
+ </div>
+
+ </div>
+
+ <div id="current-file" class="clearfix">
+
+ <div class="label"><span class="loader">Current File:</span></div>
+ <div class="file">{{progress.currentFile}}</div>
+ <div class="progress">
+ <span class="done">{{progress.currentFileSizeDownloaded}}</span> / <span class="total">{{progress.currentFileSize}}</span> [<span class="percent">{{progress.currentFileSizePercent}}</span>%]
+ </div>
+
+ </div>
+
+ </div>
+
+ <div id="iterations" class="slaveOnly block clearfix" ng-show="isSlave">
+
+ <div class="label"><span class="">Iterations:</span></div>
+ <div class="iterations" ng-show="iterations && showIterations">
+ <ul>
+ <li class="{{iteration.status}}" ng-class="{latest:iteration.latest}" ng-repeat="iteration in iterations |limitTo:iterationCount">{{iteration.date}}</li>
+ </ul>
+ <span ng-show="iterations.length>1">
+ <a ng-show="iterationCount==1" ng-click="showIterations()"><span class="expand">Show all Iterations</span></a>
+ <a ng-show="iterationCount>1" ng-click="hideIterations()"><span class="collapse">Hide past Iterations</span></a>
+ </span>
+
+ </div>
+
+ </div>
+
+ <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>
+
+ </tr>
+
+ </thead>
+ <tbody>
+
+ <tr class="masterSearch">
+
+ <th>Master (Searching)</th>
+ <td class="version" ng-class="{diff:versions.changedVersion}">
+ <div>{{versions.masterSearch.version}}</div>
+ </td>
+ <td class="generation" ng-class="{diff:versions.changedGeneration}">
+ <div>{{versions.masterSearch.generation}}</div>
+ </td>
+ <td class="size">
+ <div>{{versions.masterSearch.size}}</div>
+ </td>
+
+ </tr>
+
+ <tr class="master">
+
+ <th>Master (Replicable)</th>
+ <td class="version" ng-class="{diff:versions.changedVersion}">
+ <div>{{versions.master.version}}</div>
+ </td>
+ <td class="generation" ng-class="{diff:versions.changedGeneration}">
+ <div>{{versions.master.generation}}</div>
+ </td>
+ <td class="size">
+ <div>{{versions.master.size}}</div>
+ </td>
+
+ </tr>
+
+ <tr class="slave slaveOnly" ng-show="isSlave">
+
+ <th>Slave (Searching)</th>
+ <td class="version" ng-class="{diff:versions.changedVersion}">
+ <div>{{versions.slave.version}}</div>
+ </td>
+ <td class="generation" ng-class="{diff:versions.changedGeneration}">
+ <div>{{versions.slave.generation}}</div>
+ </td>
+ <td class="size">
+ <div>{{versions.slave.size}}</div>
+ </td>
+
+ </tr>
+
+ </tbody>
+
+ </table>
+
+ </div>
+
+ <div id="settings" class="settings block clearfix slaveOnly" ng-show="isSlave">
+
+ <div class="label"><span>Settings:</span></div>
+ <ul>
+ <li class="masterUrl" ng-show="settings.masterUrl">
+ <dl class="clearfix">
+ <dt>master url:</dt>
+ <dd>{{settings.masterUrl}}</dd>
+ </dl>
+ </li>
+ <li class="isPollingDisabled"><dl class="clearfix">
+ <dt>polling enable:</dt>
+ <dd class="ico" ng-class="{'ico-0':settings.isPollingDisabled, 'ico-1':!settings.isPollingDisabled}">
+ <span ng-show="settings.pollInterval">(interval: {{settings.pollInterval}})</span>
+ </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" ng-class="{'ico-0':!master.replicationEnabled, 'ico-1':master.replicationEnabled}"> </dd>
+ </dl></li>
+ <li class="replicateAfter"><dl class="clearfix">
+ <dt>replicateAfter:</dt>
+ <dd>{{master.replicateAfter}}</dd>
+ </dl></li>
+ <li class="confFiles" ng-show="master.files"><dl class="clearfix">
+ <dt>confFiles:</dt>
+ <dd><span ng-repeat="file in master.files"><attr title="{{file.title}}">{{file.name}}</attr>{{ $last ? '' :', '}}</span></dd>
+ </dl></li>
+ </ul>
+
+ </div>
+
+ </div>
+
+ <div id="navigation">
+
+ <div class="timer" ng-show="isSlave && !settings.isPollingDisabled &&!settings.isReplicating">
+
+ <p>Next Run: <span class="approx" ng-show="settings.isApprox">~</span><span class="tick">{{settings.tick | readableSeconds}}</span></p>
+ <small ng-show="settings.nextExecutionAt">{{settings.nextExecutionAt}}</small>
+ </div>
+
+ <button class="refresh-status" ng-click="refresh()"><span>Refresh Status</span></button>
+
+ <div class="slaveOnly" ng-show="isSlave">
+ <button class="optional replicate-now primary" ng-click="execute('fetchindex')" ng-show="!settings.isReplicating"><span>Replicate now</span></button>
+ <button class="optional abort-replication warn" ng-click="execute('abortfetch')" ng-show="settings.isReplicating"><span>Abort Replication</span></button>
+
+ <button class="optional disable-polling" ng-click="execute('disablepoll')" ng-show="!settings.isPollingDisabled"><span>Disable Polling</span></button>
+ <button class="optional enable-polling" ng-click="execute('enablepoll')" ng-show="settings.isPollingDisabled"><span>Enable Polling</span></button>
+ </div>
+
+ <div class="masterOnly" ng-show="!isSlave">
+ <button class="optional disable-replication warn" ng-click="execute('disablereplication')" ng-show="master.replicationEnabled"><span>Disable Replication</span></button>
+ <button class="optional enable-replication warn" ng-click="execute('enablereplication')" ng-show="!master.replicationEnabled"><span>Enable Replication</span></button>
+ </div>
+
+ </div>
+
+</div>
Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/schema.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/schema.html?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/schema.html (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/schema.html Mon Jan 2 13:44:06 2017
@@ -0,0 +1,448 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div id="schema" class="loaded">
+
+ <div class="clearfix">
+
+ <div id="frame">
+ <div id="actions" class="actions clearfix" ng-show="isSchemaUpdatable">
+ <button id="addField" class="action" ng-click="toggleAddField()"><span>Add Field</span></button>
+ <button id="addDynamicField" class="action" ng-click="toggleAddDynamicField()"><span>Add Dynamic Field</span></button>
+ <button id="addCopyField" class="action" ng-click="toggleAddCopyField()"><span>Add Copy Field</span></button>
+
+ <div class="action add" data-rel="add" ng-show="showAddField" escape-pressed="hideAll()">
+
+ <p class="clearfix"><label for="add_name">name:</label>
+ <input type="text" id="add_name" ng-model="newField.name" focus-when="showAddField" placeholder="enter a field name"></p>
+
+ <p class="clearfix"><label for="add_type">field type:</label>
+ <select chosen type="text" id="add_type" ng-model="newField.type" ng-options="type for type in types"></select>
+ </p>
+
+ <p class="clearfix" ng-show="adding=='field'"><label for="add_default">default:</label>
+ <input type="text" id="add_default" ng-model="newField.default" placeholder="enter a default value if needed"></p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_stored">
+ <input type="checkbox" ng-model="newField.stored" id="add_stored" title="Full field should be stored in index." ng-true-value="'true'" ng-false-value="'false'">
+ stored
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_indexed">
+ <input type="checkbox" ng-model="newField.indexed" id="add_indexed" title="Field should be indexed." ng-true-value="'true'" ng-false-value="'false'">
+ indexed
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_docValues">
+ <input type="checkbox" ng-model="newField.docValues" id="add_docValues" title="DocValues should be stored for the field." ng-true-value="'true'" ng-false-value="'false'">
+ docValues
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_multiValued">
+ <input type="checkbox" ng-model="newField.multiValued" id="add_multiValued" title="Multiple values are allowed for this field." ng-true-value="'true'" ng-false-value="'false'">
+ multiValued
+ </label>
+ </p>
+
+ <p class="clearfix" ng-show="adding=='field'">
+ <label class="checkbox" for="add_required">
+ <input type="checkbox" ng-model="newField.required" id="add_required" title="Field must be provided for all documents." ng-true-value="'true'" ng-false-value="'false'">
+ required
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <a ng-click="showOmit=!showOmit">
+ <span class="add_showhide" ng-hide="showOmit">Show omit options</span>
+ <span class="add_showhide open" ng-show="showOmit">Hide omit options</span>
+ </a>
+ </p>
+
+ <div ng-show="showOmit">
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_omitNorms">
+ <input type="checkbox" ng-model="newField.omitNorms" id="add_omitNorms" title="Full field should be omitNorms in index." ng-true-value="'true'" ng-false-value="'false'">
+ omitNorms
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_omitTermFreqAndPositions">
+ <input type="checkbox" ng-model="newField.omitTermFreqAndPositions" id="add_omitTermFreqAndPositions" title="Full field should be omitTermFreqAndPositions in index." ng-true-value="'true'" ng-false-value="'false'">
+ omitTermFreqAndPositions
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_omitPositions">
+ <input type="checkbox" ng-model="newField.omitPositions" id="add_omitPositions" title="Full field should be omitPositions in index." ng-true-value="'true'" ng-false-value="'false'">
+ omitPositions
+ </label>
+ </p>
+ </div>
+
+ <p class="clearfix">
+ <a ng-click="showTermVectors=!showTermVectors">
+ <span class="add_showhide" ng-hide="showTermVectors">Show term vector options</span>
+ <span class="add_showhide open" ng-show="showTermVectors">Hide term vector options</span>
+ </a>
+ </p>
+ <div ng-show="showTermVectors">
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_termVectors">
+ <input type="checkbox" ng-model="newField.termVectors" id="add_termVectors" title="Full field should be termVectors in index." ng-true-value="'true'" ng-false-value="'false'">
+ termVectors
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_termPositions">
+ <input type="checkbox" ng-model="newField.termPositions" id="add_termPositions" title="Full field should be termPositions in index." ng-true-value="'true'" ng-false-value="'false'">
+ termPositions
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_termOffsets">
+ <input type="checkbox" ng-model="newField.termOffsets" id="add_termOffsets" title="Full field should be termOffsets in index." ng-true-value="'true'" ng-false-value="'false'">
+ termOffsets
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_termPayloads">
+ <input type="checkbox" ng-model="newField.termPayloads" id="add_termPayloads" title="Full field should be termPayloads in index." ng-true-value="'true'" ng-false-value="'false'">
+ termPayloads
+ </label>
+ </p>
+
+ </div>
+
+ <p class="clearfix">
+ <a ng-click="showSort=!showSort">
+ <span class="add_showhide" ng-hide="showSort">Show sort options</span>
+ <span class="add_showhide open" ng-show="showSort">Show sort options</span>
+ </a>
+ </p>
+ <div ng-show="showSort">
+ <p class="clearfix">
+ <label class="checkbox" for="add_sortMissingFirst">
+ <input type="checkbox" ng-model="newField.sortMissingFirst" id="add_sortMissingFirst" title="Full field should be sortMissingFirst in index." ng-true-value="'true'" ng-false-value="'false'">
+ sortMissingFirst
+ </label>
+ </p>
+
+ <p class="clearfix">
+ <label class="checkbox" for="add_sortMissingLast">
+ <input type="checkbox" ng-model="newField.sortMissingLast" id="add_sortMissingLast" title="Full field should be sortMissingLast in index." ng-true-value="'true'" ng-false-value="'false'">
+ sortMissingLast
+ </label>
+ </p>
+
+ </div>
+
+ <div ng-repeat="error in addErrors" ng-show="addErrors" class="clearfix note error">
+ <span>{{error}}</span></div>
+
+ <p class="clearfix buttons">
+ <button ng-show="adding=='field'" type="submit" class="submit" ng-class="{success: added}" ng-click="addField()"><span>Add Field</span></button>
+ <button ng-show="adding=='dynamicField'" type="submit" class="submit" ng-class="{success: added}" ng-click="addDynamicField()"><span>Add Dynamic Field</span></button>
+ <button type="reset" class="reset" ng-click="hideAll()"><span>Cancel</span></button>
+ </p>
+
+
+
+ </div>
+
+ <div class="action add" data-rel="add" ng-show="showAddCopyField" escape-pressed="hideAll()">
+
+ <form>
+
+ <p class="clearfix"><label for="add_source">source:</label>
+ <input type="text" id="add_source" ng-model="copyField.source" focus-when="showAddCopyField" placeholder="specify your source field or pattern"></p>
+
+ <p class="clearfix"><label for="add_dest">destination:</label>
+ <input type="text" id="add_dest" ng-model="copyField.dest" placeholder="specify your destination field or pattern"></p>
+
+ <div ng-repeat="error in addCopyFieldErrors" ng-show="addCopyFieldErrors" class="clearfix note error">
+ <span>{{error}}</span></div>
+
+ <p class="clearfix buttons">
+ <button type="submit" class="submit" ng-class="{success: added}" ng-click="addCopyField()"><span>Add CopyField</span></button>
+ <button type="reset" class="reset" ng-click="hideAll()"><span>Cancel</span></button>
+ </p>
+
+ </form>
+
+ </div>
+ </div>
+
+ <div id="data">
+
+ <div id="field">
+
+ <div class="field-options" ng-show="showing">
+
+ <div class="block head">
+ <h2>
+ <span class="type">{{selectedType}}</span>:
+ <span class="name">{{name}}</span>
+ </h2>
+ </div>
+
+ <div class="partial" ng-show="partialState">
+
+ <p>Because your Index is empty, we do not have enough Information about this Field</p>
+
+ </div>
+
+ <dl class="options clearfix">
+
+ <dt class="field-type">Field-Type:</dt>
+ <dd class="field-type">{{analysis.data.className}}</dd>
+
+ <dt class="similarity" ng-show="display.similarity">Similarity:</dt>
+ <dd class="similarity" ng-show="display.similarity">{{ display.similarity.details }} ({{ similarity.className }}) </dd>
+
+ <dt class="position-increment-gap" ng-show="display.positionIncrementGap"><abbr title="Position Increment Gap">PI Gap</abbr>:</dt>
+ <dd class="position-increment-gap" ng-show="display.positionIncrementGap">{{ display.positionIncrementGap }}</dd>
+
+ <dt class="docs" ng-show="display.docs">Docs:</dt>
+ <dd class="docs" ng-show="display.docs"><a href="{{display.docsUrl}}">{{display.docs | number}}</a></dd>
+
+ <dt class="distinct" ng-show="display.distinct">Distinct:</dt>
+ <dd class="distinct" ng-show="display.distinct">{{display.distinct}}</dd>
+
+ </dl>
+
+ <table class="flags" cellspacing="0" cellpadding="0" border="0" ng-show="display.columns.length!=0">
+
+ <thead>
+
+ <tr>
+ <td>Flags:</td>
+ <th ng-repeat="key in display.columns">{{key.name}}</th>
+
+ </tr>
+
+ </thead>
+
+ <tbody>
+ <tr ng-repeat="row in display.rows track by row.name">
+ <th>{{row.name}}</th>
+ <td colspan="2" class="text" ng-show="row.comment">{{row.comment}}</td>
+ <td ng-repeat="cell in row.cells"
+ ng-class="{'check':cell.value}">
+ <span ng-show="cell.value">�?</span>
+ <span ng-show="!cell.value"> </span>
+ </td>
+ </tr>
+ </tbody>
+
+ </table>
+
+ <ul class="analyzer">
+ <li class="clearfix {{analyzer.key}}" ng-class="{open: analyzer.show}" ng-repeat="analyzer in analysis.analyzers">
+
+ <p><a class="analysis" ng-href="#/{{core}}/analysis?{{analysis.query}}"><span>{{analyzer.name}} Analyzer:</span></a></p>
+ <dl>
+ <dt><a ng-click="toggleAnalyzer(analyzer)" class="toggle">{{analyzer.detail.className}}</a></dt>
+ </dl>
+ <ul ng-show="analyzer.show">
+ <li class="clearfix {{componentType.key}} data" ng-repeat="componentType in analyzer.detail.componentTypes" ng-show="componentType.components">
+ <p>{{componentType.label}}:</p>
+ <dl>
+ <dt ng-repeat-start="component in componentType.components">{{component.className}}</dt>
+ <dd ng-repeat-end ng-repeat="arg in component.args"
+ ng-class="{'ico-1': arg.booleanValue, 'ico-0': arg.booleanValue==false}">
+ {{arg.name}}<span ng-show="arg.value">: {{arg.value}}</span>
+ </dd>
+ </dl>
+ </li>
+ </ul>
+ </li>
+ </ul>
+
+ </div>
+
+ <div class="terminfo-holder loaded clearfix" ng-class="{disabled: noTermData}" ng-show="is.field">
+
+ <div class="trigger">
+
+ <button class="submit" ng-click="toggleTerms()"><span ng-class="{loader:isLoadingTerms}">Load Term Info</span></button>
+ <br/>
+ <span ng-show="isCloudEnabled">N.B. Loaded from a single core - not from the whole collection.</span>
+
+ <a ng-show="showTerms" ng-click="toggleAutoload()" ng-class="{on:isAutoload}" class="autoload" title="Automatically load Term Info?"><span>Autoload</span></a>
+
+ </div>
+
+ <p ng-show="showTerms && noTerms" class="status">Sorry, no Term Info available :(</p>
+
+ <div ng-show="showTerms && termInfo.topTerms" class="topterms-holder">
+
+ <form>
+ <p class="head">
+ <input type="text" ng-model="topTermsCount" ng-change="loadTermInfo()">
+ <a class="max-holder" ng-click="loadAllTopTerms()" title="Load all Top-Terms">/<span class="max">{{termInfo.maxTerms | number}}</span></a> Top-Terms:
+ <a id="query_link" href="#/{{core}}/query?q={{name}}:[* TO *]"><span>Query</span> </a>
+ </p>
+ </form>
+
+ <ul>
+ <li class="clearfix" ng-repeat="countGroup in termInfo.topTerms">
+ <p><span>{{countGroup.count}}</span></p>
+ <ul>
+ <li ng-repeat="term in countGroup.terms" ng-class="{odd:$odd}"><a ng-href="#/{{core}}/query?q=%7B!term+f%3D{{name | uriencode}}%7D{{term | uriencode}}">{{term}}</a></li>
+ </ul>
+ </li>
+
+ </ul>
+
+ </div>
+
+ <div ng-show="showTerms && termInfo.histogram" class="histogram-holder">
+
+ <p class="head">Histogram:</p>
+ <ul>
+ <li ng-repeat="row in termInfo.histogram" ng-class="{odd:$odd}">
+ <dl class="clearfix" style="width: {{(( row.value / termInfo.histogramMax ) * 100 )}}%;">
+ <dt><span>{{ row.key | number}}</span></dt>
+ <dd><span>{{ row.value | number }}</span></dd>
+ </dl>
+ </li>
+
+ </ul>
+
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+
+ <div id="related">
+ <select id="type_or_name"
+ ng-model="fieldOrType"
+ chosen
+ data-placeholder="Please select ..."
+ ng-change="selectFieldOrType()"
+ ng-options="f.value as f.label group by f.group for f in fieldsAndTypes"></select>
+
+ <dl id="f-df-t">
+
+ <dt class="field" ng-class="{active: selectedType=='Field'}" ng-show="leftbar.fields">Field</dt>
+ <dd class="field" ng-class="{active: selectedType=='Field'}" ng-repeat="field in leftbar.fields"><a href="#/{{core}}/schema?field={{field}}">{{field}}</a></dd>
+
+ <dt class="copyfield" ng-show="leftbar.copyFieldSources">Copied from</dt>
+ <dd class="copyfield" ng-repeat="field in leftbar.copyFieldSources">
+ <div class="clearfix" ng-hide="isSchemaUpdatable">
+ <a href="#/{{core}}/schema?field={{field.name}}">{{field.name}}</a>
+ </div>
+ <div class="clearfix updatable" ng-show="isSchemaUpdatable">
+ <a style="float:left;width:80%" href="#/{{core}}/schema?field={{field.name}}">{{field.name}}</a>
+ <span ng-click="toggleDeleteCopyField(field)" class="rem"> </span>
+ </div>
+ <div class="action delete" ng-show="field.show">
+ <form class="delete">
+
+ <p class="clearfix"><em>Are you sure you want to delete this CopyField?</em></p>
+ <div ng-repeat="error in field.errors" ng-show="field.errors" class="clearfix note error">
+ <span>{{error}}</span></div>
+
+ <p class="clearfix buttons">
+ <button class="submit" ng-class="{success: field.deleted}" ng-click="deleteCopyField(field, field.name, name)"><span>Delete</span></button>
+ <button type="reset" class="reset" ng-click="toggleDeleteCopyField(field)"><span>Cancel</span></button>
+ </p>
+ </form>
+ </div>
+ </dd>
+
+ <dt class="copyfield" ng-show="leftbar.copyFieldDests">Copied to</dt>
+ <dd class="copyfield" ng-repeat="field in leftbar.copyFieldDests">
+ <div class="clearfix" ng-hide="isSchemaUpdatable">
+ <a href="#/{{core}}/schema?field={{field.name}}">{{field.name}}</a>
+ </div>
+ <div class="clearfix updatable" ng-show="isSchemaUpdatable">
+ <a href="#/{{core}}/schema?field={{field.name}}">{{field.name}}</a>
+ <span ng-click="toggleDeleteCopyField(field)" class="rem"> </span>
+ </div>
+ <div class="action delete" ng-show="field.show">
+ <form class="delete">
+
+ <p class="clearfix"><em>Are you sure you want to delete this CopyField?</em></p>
+ <div ng-repeat="error in field.errors" ng-show="field.errors" class="clearfix note error">
+ <span>{{error}}</span></div>
+
+ <p class="clearfix buttons">
+ <button class="submit" ng-class="{success: field.deleted}" ng-click="deleteCopyField(field, name, field.name)"><span>Delete</span></button>
+ <button type="reset" class="reset" ng-click="toggleDeleteCopyField(field)"><span>Cancel</span></button>
+ </p>
+ </form>
+ </div>
+ </dd>
+ <dt class="dynamic-field" ng-class="{active: selectedType=='Dynamic Field'}" ng-show="leftbar.dynamicFields">Dynamic Field {{dynamicFields}} / {{dynamicFields.length()}}</dt>
+ <dd class="dynamic-field" ng-class="{active: selectedType=='Dynamic Field'}" ng-repeat="field in leftbar.dynamicFields"><a href="#/{{core}}/schema?dynamic-field={{field}}">{{field}}</a></dd>
+
+ <dt class="type" ng-class="{active: selectedType=='Type'}" ng-show="leftbar.types">Type</dt>
+ <dd class="type" ng-class="{active: selectedType=='Type'}" ng-repeat="type in leftbar.types"><a href="#/{{core}}/schema?type={{type}}">{{type}}</a></dd>
+
+ <dt></dt>
+ <dd class="active delete-field" ng-show="isSchemaUpdatable && leftbar.fields &&!showDelete"><button ng-click="toggleDelete()"><span>delete field</span></button></dd>
+ <dd class="active delete-field" ng-show="isSchemaUpdatable && leftbar.dynamicFields &&!showDelete"><button ng-click="toggleDelete()"><span>delete dynamic field</span></button></dd>
+
+ <div class="action delete" ng-show="showDelete">
+
+ <form class="delete">
+
+ <p class="clearfix"><em>Are you sure you want to delete this {{selectedType}}?</em></p>
+ <div ng-repeat="error in deleteErrors" ng-show="deleteErrors" class="clearfix note error">
+ <span>{{error}}</span></div>
+
+ <p class="clearfix buttons">
+ <button class="submit" ng-class="{success: deleted}" ng-click="delete()"><span>Delete</span></button>
+ <button type="reset" class="reset" ng-click="toggleDelete()"><span>Cancel</span></button>
+ </p>
+ </form>
+ </div>
+ </dl>
+
+ <dl class="ukf-dsf">
+
+ <dt class="unique-key-field" ng-class="{active: isUniqueKeyField}" ng-show="uniqueKeyField">Unique Key Field</dt>
+ <dd class="unique-key-field" ng-class="{active: isUniqueKeyField}"><a ng-href="#/{{core}}/schema?field={{uniqueKeyField}}">{{uniqueKeyField}}</a></dd>
+
+ <dt class="default-search-field" ng-class="{active: isDefaultSearchField}" ng-show="defaultSearchField">Default Search Field</dt>
+ <dd class="default-search-field" ng-class="{active: isDefaultSearchField}"><a ng-href="#/{{core}}/schema?field={{defaultSearchField}}">{{defaultSearchField}}</a></dd>
+
+ </dl>
+
+ </div>
+ </div>
+
+ </div>
+
+</div>
Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/segments.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/segments.html?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/segments.html (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/segments.html Mon Jan 2 13:44:06 2017
@@ -0,0 +1,99 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div id="segments">
+ <div class="clearfix">
+
+ <div class="block fieldlist" id="statistics">
+
+ <h2><span>Segments</span></h2>
+ <p id="auto-refresh"><a ng-click="toggleAutoRefresh()" ng-class="{on:autorefresh}">Auto-Refresh</a></p>
+ <a class="reload" ng-click="refresh()"><span>reload</span></a>
+
+ <div class="message-container">
+ <div class="message"></div>
+ </div>
+
+ <div class="content">
+
+ <div id="result">
+
+ <div id="response">
+
+ <div class="segments-holder">
+
+ <ul>
+ <li>
+ <dl class="clearfix" style="width:100%;">
+ <dt>
+ <div>Size</div>
+ </dt>
+ <dd>
+ <div class="start">0</div>
+ <div class="w5" ng-repeat="x in xaxis">
+ <span ng-show="x>0.001">{{x.value}}</span>
+ <span ng-hide="x>0.001"> </span>
+ </div>
+ <div class="end">{{segmentMB | number}} MB</div>
+ </dd>
+ </dl>
+ </li>
+ <li ng-repeat="segment in segments">
+ <dl class="clearfix" ng-style="{width: segment.totalSize+'%'}">
+ <dt>
+ <div>{{ segment.name }}</div>
+ </dt>
+ <dd>
+ <div class="live" ng-class="{'merge-candidate':segment.mergeCandidate}"
+ ng-style="{width: segment.aliveDocSize+'%'}"> </div>
+ <div class="tooltip">
+ <div>Segment <b>{{segment.name}}</b>:</div>
+ <div class="label">#docs:</div>
+ <div>{{ segment.size | number }}</div>
+ <div class="label">#dels:</div>
+ <div>{{ segment.delCount | number }}</div>
+ <div class="label">size:</div>
+ <div>{{ segment.sizeInBytes | number }} bytes</div>
+ <div class="label">age:</div>
+ <div>{{ segment.age }}</div>
+ <div class="label">source:</div>
+ <div>{{ segment.source }}</div>
+ </div>
+ <div class="deleted" ng-show="segment.deletedDocSize"
+ style="width: {{ segment.deletedDocSize }}%; margin-left:{{ segment.aliveDocSize}}%;">
+ </div>
+ </dd>
+ </dl>
+ </li>
+ <li>
+ <dl>
+ <dt></dt>
+ <dd>Deletions: {{ deletionsPercentage }}%</dd>
+ </dl>
+ </li>
+ </ul>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+</div>
Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/stream.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/stream.html?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/stream.html (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/stream.html Mon Jan 2 13:44:06 2017
@@ -0,0 +1,64 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div id="stream" class="clearfix">
+
+ <div id="form">
+ <form>
+ <label for="expr" title="The expression string">
+ Streaming Expression (expr)
+ </label>
+ <textarea name="expr" ng-model="expr" id="expr" title="The expression string.">search(....)</textarea>
+
+ <button type="submit" ng-click="doStream()">Execute</button>
+ <input type="checkbox" ng-model="doExplanation" name="doExplanation" id="doExplanation" value="true">
+ <label for="explain" class="checkbox" title="Enable Explanation." ng-click="doExplanation = !doExplanation">
+ with explanation
+ </label>
+
+ </form>
+ </div>
+
+ <div id="result">
+
+ <a ng-show="response.data" id="url" class="address-bar" ng-href="{{url}}">{{url}}</a>
+
+ <div ng-show="showExplanation" id="explanation" class="clearfix">
+ <div id="frame">
+ <div explanation-graph id="explanation-content" data="explanationData" depth="depth" leaf-count="leafCount" class="content clearfix" ng-show="showGraph">
+ <div id="legend">
+ <svg width="100%" height="15">
+ <g transform="translate(5,10)" class="stream-decorator"><circle r="4.5"></circle></g>
+ <g transform="translate(15,14)"><text>Stream Decorator</text></g>
+ <g transform="translate(140,10)" class="stream-source"><circle r="4.5"></circle></g>
+ <g transform="translate(150,14)"><text>Stream Source</text></g>
+ <g transform="translate(260,10)" class="graph-source"><circle r="4.5"></circle></g>
+ <g transform="translate(270,14)"><text>Graph Source</text></g>
+ <g transform="translate(375,10)" class="datastore"><circle r="4.5"></circle></g>
+ <g transform="translate(385,14)"><text>Datastore</text></g>
+ </svg>
+ </div>
+ <div id="canvas"></div>
+ </div>
+ </div>
+ </div>
+
+ <div id="response">
+ <pre class="syntax language-json"><code ng-bind-html="response.data | highlight:json | unsafe"></code></pre>
+ </div>
+ </div>
+
+</div>
Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/threads.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/threads.html?rev=1776930&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/threads.html (added)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/threads.html Mon Jan 2 13:44:06 2017
@@ -0,0 +1,65 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div id="threads" ng-class="showAllStacktraces ? 'expanded' : 'collapsed'">
+
+ <div class="controls">
+ <a ng-click="toggleStacktraces()">
+ <span>{{showAllStacktraces?"Hide":"Show"}} all Stacktraces</span>
+ </a>
+ </div>
+
+ <div id="thread-dump">
+
+ <table border="0" cellpadding="0" cellspacing="0">
+
+ <thead>
+
+ <tr>
+
+ <th class="name">name</th>
+ <th class="time">cpuTime / userTime</th>
+
+ </tr>
+
+ </thead>
+
+ <tbody>
+ <tr ng-repeat="thread in threads" class="{{$odd?'odd':''}} {{thread.lock?'lock':''}} {{thread.stackTrace?'stacktrace':''}} {{thread.state}}">
+ <td class="name">
+ <a title="{{thread.state}}" ng-click="toggleStacktrace(thread)"><span>{{thread.name}} ({{thread.id}})</span></a>
+ <p title="Waiting on" ng-show="thread.lock">{{thread.lock}}</p>
+ <div ng-show="thread.showStackTrace">
+ <ul>
+ <li ng-repeat="trace in thread.stackTrace track by trace.id">{{trace.trace}}</li>
+ </ul>
+ </div>
+ </td>
+ <td class="time">{{thread.cpuTime}}<br>{{thread.userTime}}</td>
+ </tr>
+ </tbody>
+
+ </table>
+
+ </div>
+
+ <div class="controls">
+ <a ng-click="toggleStacktraces()">
+ <span>{{showAllStacktraces?"Hide":"Show"}} all Stacktraces</span>
+ </a>
+ </div>
+
+</div>
Modified: ofbiz/trunk/specialpurpose/solr/webapp/solr/tpl/segments.html
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/tpl/segments.html?rev=1776930&r1=1776929&r2=1776930&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/solr/webapp/solr/tpl/segments.html (original)
+++ ofbiz/trunk/specialpurpose/solr/webapp/solr/tpl/segments.html Mon Jan 2 13:44:06 2017
@@ -14,36 +14,36 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY
See the License for the specific language governing permissions and
limitations under the License.
-->
-<div id="segments">
- <div class="clearfix">
-
- <div class="block fieldlist" id="statistics">
-
- <h2><span>Segments</span></h2>
- <a class="reload"><span>reload</span></a>
-
- <div class="message-container">
- <div class="message"></div>
- </div>
-
- <div class="content">
-
- <div id="result">
-
- <div id="response">
-
- <div class="segments-holder">
-
- <ul></ul>
-
- </div>
-
- </div>
-
- </div>
- </div>
- </div>
-
- </div>
+<div id="segments">
+ <div class="clearfix">
+
+ <div class="block fieldlist" id="statistics">
+
+ <h2><span>Segments</span></h2>
+ <a class="reload"><span>reload</span></a>
+
+ <div class="message-container">
+ <div class="message"></div>
+ </div>
+
+ <div class="content">
+
+ <div id="result">
+
+ <div id="response">
+
+ <div class="segments-holder">
+
+ <ul></ul>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ </div>
</div>