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> |
Free forum by Nabble | Edit this page |