Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/ngtimeago.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/ngtimeago.js?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/ngtimeago.js (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/libs/ngtimeago.js Mon Jan 2 13:44:06 2017 @@ -0,0 +1,102 @@ +/* +Copyright (c) 2014 Uttesh Kumar + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +'use strict'; + +var catalyst = angular.module('ngtimeago', []); + + +catalyst.filter('timeago', function() { + return function(input, p_allowFuture) { + + if (input === undefined) { + return "-"; + } + + var substitute = function (stringOrFunction, number, strings) { + var string = angular.isFunction(stringOrFunction) ? stringOrFunction(number, dateDifference) : stringOrFunction; + var value = (strings.numbers && strings.numbers[number]) || number; + return string.replace(/%d/i, value); + }, + nowTime = (new Date()).getTime(), + date = (new Date(input)).getTime(), + //refreshMillis= 6e4, //A minute + allowFuture = p_allowFuture || false, + strings= { + prefixAgo: '', + prefixFromNow: '', + suffixAgo: "ago", + suffixFromNow: "from now", + seconds: "less than a minute", + minute: "about a minute", + minutes: "%d minutes", + hour: "about an hour", + hours: "about %d hours", + day: "a day", + days: "%d days", + month: "about a month", + months: "%d months", + year: "about a year", + years: "%d years" + }, + dateDifference = nowTime - date, + words, + seconds = Math.abs(dateDifference) / 1000, + minutes = seconds / 60, + hours = minutes / 60, + days = hours / 24, + years = days / 365, + separator = strings.wordSeparator === undefined ? " " : strings.wordSeparator, + + + prefix = strings.prefixAgo, + suffix = strings.suffixAgo; + + if (allowFuture) { + if (dateDifference < 0) { + prefix = strings.prefixFromNow; + suffix = strings.suffixFromNow; + } + } + + words = seconds < 45 && substitute(strings.seconds, Math.round(seconds), strings) || + seconds < 90 && substitute(strings.minute, 1, strings) || + minutes < 45 && substitute(strings.minutes, Math.round(minutes), strings) || + minutes < 90 && substitute(strings.hour, 1, strings) || + hours < 24 && substitute(strings.hours, Math.round(hours), strings) || + hours < 42 && substitute(strings.day, 1, strings) || + days < 30 && substitute(strings.days, Math.round(days), strings) || + days < 45 && substitute(strings.month, 1, strings) || + days < 365 && substitute(strings.months, Math.round(days / 30), strings) || + years < 1.5 && substitute(strings.year, 1, strings) || + substitute(strings.years, Math.round(years), strings); + console.log(prefix+words+suffix+separator); + prefix.replace(/ /g, '') + words.replace(/ /g, '') + suffix.replace(/ /g, '') + return (prefix+' '+words+' '+suffix+' '+separator); + + }; + }); + + + Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/analysis.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/analysis.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/analysis.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/analysis.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,128 @@ +<!-- +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="analysis"> + + <div class="block analysis-error" id="analysis-handler-missing" ng-show="isHandlerMissing"> + <div class="head">This Functionality requires the <code>/analysis/field</code> Handler to be registered and active!</div> + </div> + + <div class="block analysis-error" id="analysis-error" ng-show="analysisError"> + <div class="body">{{analysisError}}</div> + </div> + + <div id="analysis-holder"> + + <div id="field-analysis"> + + <form method="get"> + + <ul class="clearfix"> + + <li class="index"> + + <label for="analysis_fieldvalue_index">Field Value (Index)</label> + <textarea name="analysis.fieldvalue" id="analysis_fieldvalue_index" ng-model="indexText"></textarea> + + </li> + + <li class="query"> + + <label for="analysis_fieldvalue_query">Field Value (Query)</label> + <textarea name="analysis.query" id="analysis_fieldvalue_query" ng-model="queryText"></textarea> + + </li> + + <li class="settings-holder clearfix"> + <div class="settings clearfix"> + <label for="type_or_name">Analyse Fieldname / FieldType:</label> + <select style="width:130px" chosen ng-change="changeFieldOrType()" id="type_or_name" ng-model="fieldOrType" ng-options="f.value as f.label group by f.group for f in fieldsAndTypes"></select> + + <a id="tor_schema" ng-href="#/{{core}}/schema?{{schemaBrowserUrl}}"><span>Schema Browser</span> </a> + + <div class="buttons clearfix"> + + <button type="submit" ng-click="updateQueryString()"><span>Analyse Values</span></button> + + <div class="verbose_output" ng-class="{active:verbose}"> + <a ng-click="toggleVerbose()">Verbose Output</a> + </div> + + </div> + + </div> + </li> + + </ul> + + </form> + + </div> + + <div id="analysis-result" class="clearfix verbose_output"> + <div ng-class="key" ng-repeat="(key, type) in result"> + <table border="0" cellspacing="0" cellpadding="0"> + <tbody ng-repeat="component in type"> + <tr class="step"> + <td class="part analyzer"> + <div> + <abbr title="{{component.name}}">{{component.short}}</abbr> + </div> + </td> + + <td class="part legend" ng-show="verbose"> + <div class="holder"> + <table border="0" cellspacing="0" cellpadding="0"> + <tr> + <td> + <table border="0" cellspacing="0" cellpadding="0"> + <tr ng-repeat="caption in component.captions" class="{{generate_class_name( short_key )}}"> + <td>{{ caption }}</td> + </tr> + </table> + </td> + </tr> + </table> + </div> + </td> + <td class="part data" ng-class="{spacer:token.blank}" colspan="1" ng-repeat="token in component.tokens track by token.index"> + <div class="holder" ng-hide="token.blank"> + <table border="0" cellspacing="0" cellpadding="0"> + <tbody> + <tr class="details"> + <td class="details"> + <table border="0" cellspacing="0" cellpadding="0"> + <tbody> + <tr class="{{value.name}}" ng-repeat="value in token.keys" ng-show="verbose || value.name=='text'"> + <td>{{value.value}}</td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </div> + <div class="holder" ng-show="token.blank"> </div> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cloud.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cloud.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cloud.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cloud.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,105 @@ +<!-- +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="cloud" class="clearfix"> + + <div id="frame"> + + <div id="tree-content" class="content clearfix" ng-show="showTree"> + <jstree class="tree" on-select="showTreeLink(url)" id="tree" data="tree"></jstree> + + <div id="file-content" class="clearfix"> + + <a id="toggle" ng-click="showProps = !showProps" ng-show="showData" ng-class="showProps ? 'minus' : 'plus'">Metadata</a> + <div id="prop" ng-show="znode.prop && showData && showProps"> + <ul> + <li ng-class="{odd:$odd}" ng-repeat="(key, prop) in znode.prop"> + <dl class="clearfix"> + <dt>{{ key }}</dt> + <dd>{{ prop }}</dd> + </dl> + </li> + </ul> + </div> + + <div id="data" ng-show="showData"> + <em ng-show="!znode.data">Node "{{znode.path }}" has no utf8 Content</em> + <pre ng-show="znode.data" class="syntax language-{{lang}}" + ng-bind-html="znode.data | highlight:lang | unsafe"> + </pre> + <a class="close" ng-click="hideData()"><span> </span></a> + </div> + + + </div> + + </div> + + <div graph data="graphData" leaf-count="leafCount" helper-data="helperData" is-radial="isRadial" id="graph-content" class="content clearfix" ng-show="showGraph"> + + <div id="canvas"></div> + + <div id="legend"> + <ul> + <li class="leader"><svg width="15" height="15"><g transform="translate(5,2)"><g transform="translate(0,5)"><circle r="4.5"></circle></g></g></svg> Leader</li> + <li class="active"><svg width="15" height="15"><g transform="translate(5,2)"><g transform="translate(0,5)"><circle r="4.5"></circle></g></g></svg> Active</li> + <li class="recovering"><svg width="15" height="15"><g transform="translate(5,2)"><g transform="translate(0,5)"><circle r="4.5"></circle></g></g></svg> Recovering</li> + <li class="down"><svg width="15" height="15"><g transform="translate(5,2)"><g transform="translate(0,5)"><circle r="4.5"></circle></g></g></svg> Down</li> + <li class="recovery_failed"><svg width="15" height="15"><g transform="translate(5,2)"><g transform="translate(0,5)"><circle r="4.5"></circle></g></g></svg> Recovery Failed</li> + <li class="gone"><svg width="15" height="15"><g transform="translate(5,2)"><g transform="translate(0,5)"><circle r="4.5"></circle></g></g></svg> Gone</li> + </ul> + </div> + <div style="width: 100%; text-align: center;" ng-show="showPaging"> + <div id="cloudGraphPaging"> + <button ng-show="prevEnabled" ng-click="previous()" id="cloudGraphPagingPrev">< Previous</button> + <span ng-show="total==0">No collections found.</span> + <span ng-hide="total==0">Collections {{start}} - {{last}} of {{total}}.</span> + + Filter by: <select ng-model="filterType" ng-change="initGraph()" id="cloudGraphPagingFilterType"> + <option value="status">Status</option> + <option value="name">Name</option> + </select> T:{{filterType}} + + <span ng-show="filterType=='status'"> + <select ng-model="pagingStatusFilter" id="cloudGraphPagingStatusFilter" ng-change="resetGraph()"> + <option value=""> - Any - </option> + <option value="healthy">Healthy</option> + <option value="degraded">Degraded</option> + <option value="downed_shard">Downed Shard</option> + <option value="recovering">Replica in Recovery</option> + </select> + </span> + <span ng-show="filterType=='name'"> + <input ng-model="pagingFilter" type="text" size="10" name="filter" ng-change="resetGraph()"/> + </span> + Show <input ng-model="rows" ng-change="resetGraph()" type="text" size="2" name="rows" /> per page. + <button ng-show="nextEnabled" ng-click="next()">Next ></button> + </div> + </div> + + </div> + + </div> + + <div id="debug" ng-show="showDebug"> + <ul class="clearfix"> + <li class="clipboard"><a href="#" data-copied="Copied to Clipboard!">Copy to Clipboard (BUGGY!)</a></li> + <li class="close"><a ng-click="closeDebug()">Close</a></li> + </ul> + <pre class="debug"></pre> + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collection_overview.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collection_overview.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collection_overview.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collection_overview.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,85 @@ +<!-- +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="dashboard"> + + <div class="clearfix"> + + <div id="collection" class="block fieldlist"> + + <h2><span>Collection: {{selectedCollection.name}}</span></h2> + + <div class="content"> + + <dl> + + <dt>Config name:</dt> + <dd class="value">{{selectedCollection.configName}}</dd> + + <dt>Max shards per node:</dt> + <dd class="value">{{selectedCollection.maxShardsPerNode}}</dd> + + <dt>Replication factor:</dt> + <dd class="value">{{selectedCollection.replicationFactor}}</dd> + + <dt>Auto-add replicas:</dt> + <dd class="ico value" ng-class="selectedCollection.autoAddReplicas=='true' ? 'ico-1' : 'ico-0'"><span>yes</span></dd> + + <dt>Router name:</dt> + <dd class="value">{{selectedCollection.router.name}}</dd> + + </dl> + + </div> + </div> + + <div id="shards" class="block fieldlist"> + + <h2><span>Shards</span></h2> + + <div> + + <div class="shard" ng-repeat="(name, shard) in selectedCollection.shards"> + <a ng-click="hideShard(shard)"><h3 class="shard-title">{{name}}</h3></a> + <dl class="shard-detail clearfix" ng-hide="shard.hide"> + <dt>Range:</dt> + <dd class="value">{{ shard.range }}</dd> + + <dt>Active:</dt> + <dd class="ico value" ng-class="shard.state='active' ? 'ico-1' : 'ico-0'"><span>yes</span></dd> + + <dt>Replicas:</dt> + <dd> + <div class="replica clearfix {{$odd?'odd':''}}" ng-repeat="(name, replica) in shard.replicas"> + <a ng-click="showReplica(replica)"><h3>{{replica.core}}</h3></a> + <dl ng-show="replica.show"> + <dt>Base URL: </dt><dd>{{replica.base_url}}</dd> + <dt>Core: </dt><dd><a href="{{replica.base_url}}{{rootUrl}}#/{{replica.core}}">{{replica.core}}</a></dd> + <dt>Active: </dt> + <dd class="ico value" ng-class="replica.state == 'active' ? 'ico-1' : 'ico-0'"><span>yes</span></dd> + <dt>Leader: </dt> + <dd class="ico value" ng-class="replica.leader == 'true' ? 'ico-1' : 'ico-0'"><span>yes</span></dd> + </dl> + </div> + + </dd> + </dl> + </div> + </div> + + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collections.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collections.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collections.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/collections.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,343 @@ +<!-- +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="collections" class="clearfix empty"> + + <div id="ui-block" style="display:none"> </div><!-- @todo what is this for? --> + + <div id="frame"> + + <div id="actions" class="actions clearfix"> + + <button id="add" class="action" ng-click="showAddCollection()"><span>Add Collection</span></button> + + <button id="delete" class="warn requires-core" ng-click="showDeleteCollection()" ng-show="collection"><span>Delete</span></button> + <button id="reload" class="requires-core" ng-click="reloadCollection()" ng-show="collection" + ng-class="{success: reloadSuccess, warn: reloadFailure}"><span>Reload</span></button> + <button id="create-alias" class="action requires-core" ng-click="toggleCreateAlias()"><span>Create Alias</span></button> + <button id="delete-alias" class="action requires-core" ng-click="toggleDeleteAlias()"><span>Delete Alias</span></button> + + <div class="action add" data-rel="add" ng-show="showAdd" style="left:0px"> + + <form> + + <p class="clearfix"><label for="add_name">name:</label> + <input type="text" name="name" id="add_name" ng-model="newCollection.name" placeholder="new collection"></p> + + <p class="clearfix"><label for="add_config">config set:</label> + <select chosen ng-options="config.name as config.name for config in configs" name="config_name" id="add_config" ng-model="newCollection.configName"> + </select> + </p> + + <p class="clearfix"><label for="add_numShards">numShards:</label> + <input type="text" name="numShards" id="add_numShards" ng-model="newCollection.numShards"></p> + + <p class="clearfix"><label for="add_replicationFactor">replicationFactor:</label> + <input type="text" name="replicationFactor" id="add_replicationFactor" ng-model="newCollection.replicationFactor"></p> + + <p class="clearfix"><a ng-click="showAdvanced=!showAdvanced"> + <span id="add_advanced" ng-class="{open: showAdvanced}">Show advanced</span></a></p> + <div ng-show="showAdvanced"> + + <p>Advanced options: </p> + <p class="clearfix"><label for="add_router_name">router:</label> + <select name="routerName" id="add_router_name" ng-model="newCollection.routerName"> + <option value="compositeId">Composite ID</option> + <option value="implicit">Implicit</option> + </select> + </p> + + <p class="clearfix"><label for="add_maxShardsPerNode">maxShardsPerNode:</label> + <input type="text" name="replicationFactor" id="add_maxShardsPerNode" ng-model="newCollection.maxShardsPerNode"></p> + + <p class="clearfix"><label for="add_shards">shards:</label> + <input type="text" name="shards" id="add_shards" ng-model="newCollection.shards"></p> + + <p class="clearfix"><label for="add_routerField">routerField:</label> + <input type="text" name="routerField" id="add_routerField" ng-model="newCollection.routerField"></p> + + </div> + <p class="clearfix note error" ng-show="addMessage"> + <span>{{addMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button type="submit" class="submit" ng-click="addCollection()"><span>Add Collection</span></button> + <button type="reset" class="reset" ng-click="cancelAddCollection()"><span>Cancel</span></button> + </p> + + </form> + + </div> + + <div class="action delete" ng-show="showDelete"> + + <form> + + <p>Please type collection name to confirm deletion:</p> + <p class="clearfix"><label for="collectiondeleteConfirm">Collection</label> + <input type="text" ng-model="collectionDeleteConfirm" id="collectionDeleteConfirm"></p> + + <p class="clearfix note error" ng-show="deleteMessage"> + <span>{{deleteMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button class="submit" ng-click="deleteCollection()"><span>Delete</span></button> + <button type="reset" class="reset" ng-click="showDelete=false"><span>Cancel</span></button> + </p> + </form> + + </div> + + <div class="action create-alias" ng-show="showCreateAlias"> + + <form> + + <input type="hidden" name="core" data-core="current"> + + <p class="clearfix"><label for="alias">Alias Name:</label> + <input type="text" name="alias" ng-model="aliasToCreate" id="alias"></p> + + <p class="clearfix"><label for="aliasCollections">Collections:</label> + <select multiple id="aliasCollections" ng-model="aliasCollections" ng-options="collection.name for collection in collections" class="other"> + </select></p> + + + <p class="clearfix note error" ng-show="renameMessage"> + <span>{{renameMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button class="submit" ng-click="createAlias()"><span>Create Alias</span></button> + <button type="reset" class="reset" ng-click="cancelCreateAlias()"><span>Cancel</span></button> + </p> + </form> + + </div> + + <div class="action delete-alias" ng-show="showDeleteAlias"> + + <form> + <span ng-show="aliases"> + <p class="clearfix"><label for="deleteAlias">Alias:</label> + <select id="deleteAlias" ng-model="aliasToDelete" ng-options="alias as alias for (alias, collections) in aliases" class="other"> + </select></p> + + <p class="clearfix note error" ng-show="swapMessage"> + <span>{{swapMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button type="submit" class="submit" ng-click="deleteAlias()"><span>Delete Alias</span></button> + <button type="reset" class="reset" ng-click="cancelDeleteAlias()"><span>Cancel</span></button> + </p> + </span> + <span ng-hide="aliases"> + <p>No aliases to delete.</p> + <p class="clearfix buttons"> + <button type="reset" class="reset" ng-click="cancelDeleteAlias()"><span>Cancel</span></button> + </p> + </span> + + </form> + + </div> + + </div> + + + <div class="requires-core" ng-hide="collection"> + <h2>Please select a collection</h2> + </div> + + <div id="data" class="requires-core clearfix" ng-show="collection"> + + <div class="block" id="collection-data"> + + <h2>Collection: {{collection.name}}</h2> + + <div class="message-container"> + <div class="message"></div> + </div> + + <div class="content"> + + <ul> + + <li> + <dl class="clearfix"> + <dt><span>Shard count:</span></dt> + <dd>{{collection.shards.length}}</dd> + </dl> + </li> + <li><dl class="clearfix"> + <dt><span>configName:</span></dt> + <dd>{{collection.configName}}</dd> + </dl></li> + + <li><dl class="clearfix"> + <dt><span>replicationFactor:</span></dt> + <dd>{{collection.replicationFactor}}</dd> + </dl></li> + + <li><dl class="clearfix"> + <dt><span>maxShardsPerNode:</span></dt> + <dd>{{collection.maxShardsPerNode}}</dd> + </dl></li> + + <li><dl class="clearfix"> + <dt><span>router:</span></dt> + <dd>{{collection.router.name}}</dd> + </dl></li> + + <li><dl class="clearfix"> + <dt><span>autoAddReplicas:</span></dt> + <dd>{{collection.autoAddReplicas}}</dd> + </dl></li> + </ul> + + </div> + </div> + + <div class="block" id="shard-data"> + <div class="content shard" ng-repeat="shard in collection.shards"> + <a ng-click="toggleShard(shard)"><h2><span ng-class="{open:shard.show}">Shard: {{shard.name}}</span></h2></a> + <ul ng-show="shard.show"> + <li> + <ul> + <li> + <dl class="clearfix"> + <dt><span>state:</span></dt> + <dd>{{shard.state}}</dd> + </dl> + </li> + <li> + <dl class="clearfix"> + <dt><span>range:</span></dt> + <dd>{{shard.range}}</dd> + </dl> + <br/> + </li> + <li> + <ul class="replica" ng-repeat="replica in shard.replicas"> + <li> + <h2> + <a ng-click="toggleReplica(replica)"> + <span class="openReplica" ng-class="{open:replica.show}">Replica: {{replica.name}}</span> + </a> + <div style="float:right"><a ng-click="toggleRemoveReplica(replica)"><span class="rem"></span></a></div> + </h2> + </li> + <li> + <ul ng-show="replica.showRemove"> + <li> + <form class="delete-replica"> + + <p class="clearfix"><em>Are you sure you want to delete this replica?</em></p> + + <p class="clearfix buttons"> + <button class="submit" ng-class="{success: replica.deleted}" ng-click="deleteReplica(replica)"><span>Delete Replica</span></button> + <button type="reset" class="reset" ng-click="toggleRemoveReplica(replica)"><span>Cancel</span></button> + </p> + </form> + </li> + </ul> + <ul ng-show="replica.show"> + <li> + <dl class="clearfix"> + <dt><span>core:</span></dt> + <dd>{{replica.core}}</dd> + </dl> + </li> + + <li> + <dl class="clearfix"> + <dt><span>base URL:</span></dt> + <dd><a ng-href="{{replica.base_url}}{{rootUrl}}">{{replica.base_url}}</a></dd> + </dl> + </li> + + <li> + <dl class="clearfix"> + <dt><span>node name:</span></dt> + <dd>{{replica.node_name}}</dd> + </dl> + </li> + + <li> + <dl class="clearfix"> + <dt><span>state:</span></dt> + <dd>{{replica.state}}</dd> + </dl> + </li> + + <li> + <dl class="clearfix"> + <dt><span>leader:</span></dt> + <dd class="ico" ng-class="replica.leader ?'ico-1' : 'ico-0'"><span></span></dd> + </dl> + </li> + </ul> + </li> + + </ul> + </li> + <li ng-hide="shard.showAdd"> + <span class="actions replica"> + <button class="action" id="add-replica" ng-click="toggleAddReplica(shard)"><span>add replica</span></button> + </span> + </li> + </ul> + <div class="action add-replica" ng-show="shard.showAdd"> + + <form> + + <p id="node-name" class="clearfix"><label for="node-name">Node:</label> + <select chosen ng-model="shard.replicaNodeName" ng-options="node for node in nodes" class="other"> + <option value="">No specified node</option> + </select> + node: {{shard.replicaNodeName}} + </p> + + <p class="clearfix note error" ng-show="createReplicaMessage"> + <span>{{createReplicaMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button class="submit delete" ng-class="{success: shard.replicaAdded}" ng-click="addReplica(shard)"><span>Create Replica</span></button> + <button type="reset" class="reset" ng-click="toggleAddReplica(shard)"><span>Cancel</span></button> + </p> + <p clas="clearfix"> </p> + </form> + + </div> + </li> + </ul> + </div> + </div> + + </div> + + </div> + + <div id="navigation" class="requires-core clearfix"> + <ul> + <li ng-repeat="c in collections" ng-class="{current: collection.name == c.name}"><a href="#~collections/{{c.name}}">{{c.name}}</a></li> + </ul> + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/core_overview.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/core_overview.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/core_overview.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/core_overview.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,227 @@ +<!-- +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="dashboard"> + + <div class="clearfix"> + + <div class="block fieldlist" id="statistics" ng-class="{disabled: statisticsDisabled}"> + + <h2><span>Statistics</span></h2> + + <div class="message-container" ng-show="statsMessage"> + <div class="message">{{statsMessage}}</div> + </div> + + <div class="content"> + + <dl> + + <dt>Last Modified:</dt> + <dd class="value">{{index.lastModified | timeago}}</dd> + + <dt class="index_num-docs">Num Docs:</dt> + <dd class="value">{{index.numDocs}}</dd> + + <dt class="index_max-doc">Max Doc:</dt> + <dd class="index_max-doc value">{{index.maxDoc}}</dd> + + <dt class="index_heap-usage-bytes">Heap Memory Usage:</dt> + <dd class="index_heap-usage-bytes value">{{index.indexHeapUsageBytes}}</dd> + + <dt class="index_deleted-docs">Deleted Docs:</dt> + <dd class="index_deleted-docs value">{{index.deletedDocs}}</dd> + + <dt class="index_version">Version:</dt> + <dd class="index_version value">{{index.version}}</dd> + + <dt class="index_segmentCount">Segment Count:</dt> + <dd class="index_segmentCount value">{{index.segmentCount}}</dd> + + <dt class="index_optimized">Optimized:</dt> + <dd class="index_optimized ico value" ng-class="index.hasDeletions ? 'ico-0' : 'ico-1'"><span></span> + <a ng-click="optimizeIndex()" ng-show="index.hasDeletions">optimize now</a></dd> + + <dt class="index_current">Current:</dt> + <dd class="ico" ng-class="index.current ?'ico-1' : 'ico-0'"><span></span></dd> + + </dl> + + </div> + </div> + + <div class="block fieldlist" id="instance"> + + <h2><span>Instance</span></h2> + + <div class="message-container" ng-show="indexMessage"> + <div class="message">{{indexMessage}}</div> + </div> + + <div class="content"> + + <dl> + + <dt><abbr title="Current Working Directory">CWD</abbr>:</dt> + <dd class="value">{{ core.directory.cwd }}</dd> + + <dt>Instance:</dt> + <dd class="value">{{ core.directory.instance }}</dd> + + <dt>Data:</dt> + <dd class="value">{{ core.directory.data }}</dd> + + <dt>Index:</dt> + <dd class="value">{{ core.directory.index }}</dd> + + <dt>Impl:</dt> + <dd class="value">{{ core.directory.dirimpl }}</dd> + + </dl> + + </div> + </div> + + </div> + <div class="clearfix"> + + <div class="block" id="replication"> + + <h2> + <span class="is-replicating"> + Replication + <span ng-show="isSlave"> (Slave)</span> + <span ng-show="isMaster"> (Master)</span> + </span> + </h2> + + <div class="message-container" ng-show="replicationMessage"> + <div class="message">{{replicationMessage}}</div> + </div> + + <div class="content clearfix" id="details"> + + <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" ng-show="isMaster"> + + <th>Master (Searching)</th> + <td class="version"><div>{{replication.indexVersion}}</div></td> + <td class="generation"><div>{{replication.generation}}</div></td> + <td class="size"><div>{{replication.indexSize || '-'}}</div></td> + + </tr> + + <tr class="master" ng-show="isMaster"> + + <th>Master (Replicable)</th> + <td class="version"><div>{{replication.master.replicableVersion || '-'}}</div></td> + <td class="generation"><div>{{replication.master.replicableGeneration || '-'}}</div></td> + <td class="size"><div>-</div></td> + + </tr> + + <tr class="master" ng-show="isSlave"> + + <th>Master (Replicable)</th> + <td class="version"><div>{{replication.master.replicableVersion || '-'}}</div></td> + <td class="generation"><div>{{replication.master.replicableGeneration || '-'}}</div></td> + <td class="size"><div>-</div></td> + + </tr> + + <tr class="masterSearch" ng-show="isSlave"> + + <th>Master (Searching)</th> + <td class="version"><div>{{replication.slave.masterDetails.indexVersion}}</div></td> + <td class="generation"><div>{{replication.slave.masterDetails.generation}}</div></td> + <td class="size"><div>{{replication.slave.masterDetails.indexSize || '-'}}</div></td> + + </tr> + + <tr class="slave slaveOnly" ng-show="isSlave"> + + <th>Slave (Searching)</th> + <td class="version"><div>{{replication.indexVersion}}</div></td> + <td class="generation"><div>{{replication.generation}}</div></td> + <td class="size"><div>{{replication.indexSize || '-'}}</div></td> + + </tr> + </tbody> + + </table> + + </div> + </div> + + <div class="block fieldlist" id="healthcheck" ng-class="{disabled: healthcheckMessage}"> + + <h2><span>Healthcheck</span></h2> + + <div class="message-container" ng-show="healthcheckMessage"> + <div class="message">{{healthcheckMessage}}</div> + </div> + + <div class="content" ng-show="!healthcheckMessage"> + <dl> + + <dt class="status">Status:</dt> + <dd class="status value ico ico-1" ng-show="healthcheckStatus"> + <button class="healthcheck-status enabled">Healthcheck Status</button> + </dd> + <dd class="status value ico ico-0" ng-show="!healthcheckStatus"> + <button class="healthcheck-status">enable ping</button> + </dd> + </dl> + </div> + + </div> + + </div> + <div class="clearfix"> + + <div class="block" id="admin-extra"> + + <h2><span>Admin Extra</span></h2> + + <div class="message-container"> + <div class="message"></div> + </div> + + <div class="content"> + + </div> + + </div> + + </div> + + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cores.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cores.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cores.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/cores.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,231 @@ +<!-- +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="cores" class="clearfix empty"> + + <div id="ui-block" style="display:none"> </div><!-- @todo what is this for? --> + + <div id="frame"> + + <div id="actions" class="actions clearfix"> + + <button id="add" class="action" ng-click="showAddCore()"><span>Add Core</span></button> + <span ng-show="hasCores"> + <button id="unload" class="warn requires-core" ng-click="unloadCore()"><span>Unload</span></button> + <button id="rename" class="action requires-core" ng-click="showRenameCore()"><span>Rename</span></button> + <button id="swap" class="action requires-core" ng-click="showSwapCores()"><span>Swap</span></button> + <button id="reload" class="requires-core" ng-click="reloadCore()" + ng-class="{success: reloadSuccess, warn: reloadFailure}"><span>Reload</span></button> + <button id="optimize" class="requires-core" ng-click="optimizeCore()" ng-show="core.index.hasDeletions || optimizeSuccess" + ng-class="{success: optimizeSuccess, warn: optimizeFailure}"><span>Optimize</span></button> + </span> + <div class="action add" data-rel="add" ng-show="showAdd" style="display:block;left:0px;"> + + <form> + + <p class="clearfix"><label for="add_name">name:</label> + <input type="text" name="name" id="add_name" ng-model="newCore.name"></p> + + <p class="clearfix"><label for="add_instanceDir">instanceDir:</label> + <input type="text" name="instanceDir" id="add_instanceDir" ng-model="newCore.instanceDir"></p> + + <p class="clearfix"><label for="add_dataDir">dataDir:</label> + <input type="text" name="dataDir" id="add_dataDir" ng-model="newCore.dataDir"></p> + + <p class="clearfix"><label for="add_config">config:</label> + <input type="text" name="config" id="add_config" ng-model="newCore.config"></p> + + <p class="clearfix"><label for="add_schema">schema:</label> + <input type="text" name="schema" id="add_schema" ng-model="newCore.schema"></p> + + <div class="cloud" ng-show="isCloud"> + + <p class="clearfix"><label for="add_collection">collection:</label> + <input type="text" name="collection" id="add_collection" ng-model="newCore.collection"></p> + + <p class="clearfix"><label for="add_shard">shard:</label> + <input type="text" name="add_shard" id="add_shard" ng-model="newCore.shard"></p> + + </div> + + <p class="clearfix note directory-note"> + + <span><code>instanceDir</code> and <code>dataDir</code> need to exist before you can create the core</span> + + </p> + + <p class="clearfix note error" ng-show="addMessage"> + <span>{{addMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button type="submit" class="submit" ng-click="addCore()"><span>Add Core</span></button> + <button type="reset" class="reset" ng-click="cancelAddCore()"><span>Cancel</span></button> + </p> + + </form> + + </div> + + <div class="action rename" ng-show="showRename"> + + <form> + + <input type="hidden" name="core" data-core="current"> + + <p class="clearfix"><label for="rename_other">New Name:</label> + <input type="text" name="other" ng-model="other" id="rename_other"></p> + + <p class="clearfix note error" ng-show="renameMessage"> + <span>{{renameMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button class="submit" ng-click="renameCore()"><span>Rename Core</span></button> + <button type="reset" class="reset" ng-click="cancelRenameCore()"><span>Cancel</span></button> + </p> + </form> + + </div> + + <div class="action swap" ng-show="showSwap"> + + <form> + + <p class="clearfix"><label for="swap_core">this:</label> + <input type="text" id="swap_core" name="core" ng-model="selectedCore" readonly="readonly"></p> + + <p class="clearfix"><label for="swap_other">and:</label> + <select id="swap_other" ng-model="swapOther" ng-options="core.name as core.name for core in swapCorelist" class="other"> + </select></p> + + <p class="clearfix note error" ng-show="swapMessage"> + <span>{{swapMessage}}</span> + </p> + + <p class="clearfix buttons"> + <button type="submit" class="submit" ng-click="swapCores()"><span>Swap Cores</span></button> + <button type="reset" class="reset" ng-click="cancelSwapCores()"><span>Cancel</span></button> + </p> + + </form> + + </div> + + </div> + + <div id="data" class="requires-core" ng-show="hasCores"> + + <div class="block" id="core-data"> + + <h2><span>Core</span></h2> + + <div class="message-container"> + <div class="message"></div> + </div> + + <div class="content"> + + <ul> + + <li class="startTime"><dl class="clearfix"> + <dt><span>startTime:</span></dt> + <dd class="timeago">{{core.startTime | timeago}}</dd> + </dl></li> + + <li class="instanceDir"><dl class="clearfix"> + <dt><span>instanceDir:</span></dt> + <dd>{{core.instanceDir}}</dd> + </dl></li> + + <li class="dataDir"><dl class="clearfix"> + <dt><span>dataDir:</span></dt> + <dd>{{core.dataDir}}</dd> + </dl></li> + + </ul> + + </div> + </div> + + <div class="block" id="index-data" ng-show="hasCores"> + + <h2><span>Index</span></h2> + + <div class="message-container"> + <div class="message">{{core.message}}</div> + </div> + + <div class="content"> + + <ul> + + <li class="lastModified"><dl class="clearfix"> + <dt><span>lastModified:</span></dt> + <dd class="timeago">{{core.index.lastModified | timeago}}</dd> + </dl></li> + + <li class="version"><dl class="clearfix"> + <dt><span>version:</span></dt> + <dd>{{core.index.version}}</dd> + </dl></li> + + <li class="numDocs"><dl class="clearfix"> + <dt><span>numDocs:</span></dt> + <dd>{{core.index.numDocs}}</dd> + </dl></li> + + <li class="maxDoc"><dl class="clearfix"> + <dt><span>maxDoc:</span></dt> + <dd>{{core.index.maxDoc}}</dd> + </dl></li> + + <li class="deletedDocs"><dl class="clearfix"> + <dt><span>deletedDocs:</span></dt> + <dd>{{core.index.deletedDocs}}</dd> + </dl></li> + + <li class="optimized"><dl class="clearfix"> + <dt><span>optimized:</span></dt> + <dd class="ico" ng-class="core.index.hasDeletions ? 'ico-0' : 'ico-1'"><span></span></dd> + </dl></li> + + <li class="current"><dl class="clearfix"> + <dt><span>current:</span></dt> + <dd class="ico" ng-class="core.index.current ?'ico-1' : 'ico-0'"><span></span></dd> + </dl></li> + + <li class="directory"><dl class="clearfix"> + <dt><span>directory:</span></dt> + <dd>{{core.index.directory}}</dd> + </dl></li> + + </ul> + + </div> + </div> + + </div> + + </div> + + <div id="navigation" class="requires-core clearfix" ng-show="hasCores"> + <ul> + <li ng-repeat="c in cores" ng-class="{current: core.name == c.name}"><a href="#~cores/{{c.name}}">{{c.name}}</a></li> + </ul> + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/dataimport.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/dataimport.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/dataimport.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/dataimport.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,209 @@ +<!-- +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="dataimport" class="clearfix"> + + <div ng-show="!hasHandlers">Sorry, no dataimport-handler defined!</div> + <div id="frame" ng-show="hasHandlers"> + + <div id="error" ng-show="error"></div> + + <div id="current_state" class="{{status}}"> + + <p class="last_update">Last Update: <abbr title="{{lastUpdateUTC}}">{{lastUpdate}}</abbr></p> + <div class="info"> + + <strong>{{info.text}}<span ng-show="info.timeTaken"> (Duration: {{info.timeTaken | readableSeconds }})</span> + </strong> + <div class="details" ng-show="info.showDetails"> + <div class="docs"> + <span ng-repeat="doc in info.docs"> + <abbr style="display:inline" title="{{ doc.desc }}">{{ doc.name }}</abbr>: {{doc.value | number}}<!-- remove whitespace! + --> <span style="display:inline" ng-show="doc.speed">{{ doc.speed | number}}/s</span><!-- remove whitespace! + --><span style="display:inline" ng-show="!$last">, </span> + </span> + </div> + <div class="dates"> + <span ng-repeat="date in info.dates"> + <abbr title="{{ date.desc }}">{{ date.name }}</abbr>: + <abbr class="time">{{ date.value | timeago }}</abbr> + </span> + </div> + </div> + + <button class="abort-import" ng-class="{warn:!isAborting, success: isAborting}" ng-click="abort()" ng-show="isRunning"> + <span ng-show="isAborting">Aborting Import</span> + <span ng-show="!isAborting">Abort Import</span> + </button> + + </div> + + </div> + + <div class="block" id="raw_output" > + + <h2> + <a class="toggle" ng-click="toggleRawStatus()"><span>Raw Status-Output</span></a> + </h2> + + <div class="message-container" ng-show="showRawStatus"> + <div class="message"></div> + </div> + + <div class="content" ng-show="showRawStatus"> + + <div id="raw_output_container"><pre class="syntax language-json"><code ng-bind-html="rawStatus | highlight:'json' | unsafe"></code></pre></div> + + </div> + + </div> + + <div class="block" id="config" ng-class="{debug_mode:isDebugMode}"> + + <h2 class="clearfix"> + <a class="toggle" ng-click="toggleConfiguration()"><span>Configuration</span></a> + <a class="r reload_config" ng-class="{success:reloaded}" ng-click="reload()" title="Reload Configuration">Reload</a> + <a class="r debug_mode" ng-click="toggleDebug()">Debug-Mode</a> + </h2> + + <div class="message-container" ng-show="showConfiguration"> + <div class="message"></div> + </div> + + <div class="content" ng-show="showConfiguration"> + <div id="dataimport_config"> + + <div class="formatted" ng-show="!isDebugMode"> + + <pre class="syntax language-xml"><code ng-bind-html="config | highlight:'xml'| unsafe"></code></pre> + + </div> + + <div class="editable" ng-show="isDebugMode"> + + <textarea ng-model="config"></textarea> + + </div> + + </div> + + </div> + + </div> + + <div class="block" id="debug_response" ng-show="form.showDebug"> + + <h2> + <a class="toggle" ng-click="toggleRawDebug()"><span>Raw Debug-Response</span></a> + </h2> + + <div class="message-container" ng-show="showRawDebug"> + <div class="message"></div> + </div> + + <div class="content" ng-show="showRawDebug"> + <span ng-hide="rawResponse"> + <em>No Request executed</em> + </span> + <span ng-show="rawResponse"> + <pre class="syntax language-json"><code ng-bind-html="rawResponse | highlight:'json' | unsafe"></code></pre> + </span> + </div> + + </div> + + </div> + + <div id="form" ng-show="hasHandlers"> + + <div id="navigation"> + + <ul> + <li ng-class="{current: currentHandler == handler}" ng-repeat="handler in handlers"> + <a href="#/{{form.core}}/dataimport/{{handler}}">{{handler}}</a> + </li> + </ul> + + </div> + + <form action="#" method="get"> + + <label for="command"> + <a rel="help">Command</a> + </label> + <select name="command" id="command" ng-model="form.command"> + <option>full-import</option> + <option>delta-import</option> + </select> + + <label for="verbose" class="checkbox"> + <input type="checkbox" name="verbose" id="verbose" ng-model="form.verbose"> + Verbose + </label> + + <label for="clean" class="checkbox"> + <input type="checkbox" name="clean" id="clean" ng-model="form.clean"> + Clean + </label> + + <label for="commit" class="checkbox"> + <input type="checkbox" name="commit" id="commit" ng-model="form.commit"> + Commit + </label> + + <label for="optimize" class="checkbox"> + <input type="checkbox" name="optimize" id="optimize" ng-model="form.optimize"> + Optimize + </label> + + <label for="debug" class="checkbox"> + <input type="checkbox" name="debug" id="debug" ng-model="form.showDebug"> + Debug + </label> + + <label for="entity"> + <a rel="help">Entity</a> + </label> + <select ng-model="form.entity" id="entity"> + <option value=""></option> + <option ng-repeat="entity in entities">{{entity}}</option> + </select> + + <label for="start"> + <a rel="help">Start</a>, + <a rel="help">Rows</a> + </label> + <div class="clearfix"> + <input type="text" id="start" placeholder="0" ng-model="form.start"> + <input type="text" id="rows" placeholder="10" ng-model="form.rows"> + </div> + + <label for="custom_parameters"> + <a rel="help">Custom Parameters</a> + </label> + <input type="text" id="custom_parameters" ng-model="form.custom" placeholder="key1=val1&key2=val2"> + </form> + <button class="execute" type="submit" ng-click="submit()"> + <span ng-show="isDebugMode">Execute with this Configuration â?</span> + <span ng-show="!isDebugMode">Execute</span> + </button> + <button class="refresh-status" ng-click="refreshStatus()" ng-class="{loader: isStatusLoading, success: statusUpdated}"><span>Refresh Status</span></button> + + <p id="auto-refresh-status"><a ng-click="updateAutoRefresh()" ng-class="{on:autorefresh}">Auto-Refresh Status</a></p> + + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/documents.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/documents.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/documents.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/documents.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,118 @@ +<!-- +/* +* 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="documents" class="clearfix"> + <div id="form"> + <form> + <label for="qt"> + <a rel="help">Request-Handler (qt)</a> + </label> + <input ng-model="handler" type="text" id="qt" value="/update" title="Request handler in solrconfig.xml."> + <label for="document-type"> + <a rel="help">Document Type</a> + </label> + + <div><select ng-model="type" id="document-type" ng-change="changeDocumentType()" placeholder="The type of the document field"> + <!-- TODO: support the Builder --> + <option value="csv">CSV</option> + <option value="wizard">Document Builder</option> + <option value="upload">File Upload</option> + <option value="json">JSON</option> + <option value="solr">Solr Command (raw XML or JSON)</option> + <option value="xml">XML</option> + </select> + </div> + <div id="document-container"> + <div id="wizard" ng-show="type=='wizard'"> + <div id="wizard-fields"> + <div><span class="description">Field</span>: <select ng-model="fieldName" id="wiz-field-select" name="wiz-field-select" + ng-options="field for field in fields"></select> + </div> + <div><span id="wiz-field-data"><span class="description">Field Data</span>:</span> + <textarea ng-model="fieldData" + id="wizard-doc" + name="wizard-doc" + rows="10" + cols="40" + placeholder="Enter your field text here and then click 'Add Field' to add the field to the document."> + </textarea> + </div> + </div> + <div id="wizard-add"><a ng-click="addWizardField()" id="add-field-href"><img border="0" src="./img/ico/plus-button.png"/>Add + Field</a></div> + </div> + <label for="document"> + <a rel="help">Document(s)</a> + </label> + <textarea ng-show="type!='upload'" ng-model="document" name="document" id="document" title="The Document" rows="10" + cols="70" placeholder="{{placeholder}}"></textarea> + + <div id="file-upload" ng-show="type=='upload'"> + <input type="file" id="the-file" name="the-file" file-model="fileUpload"/> + </div> + </div> + + <div id="advanced"> + <!-- TODO: only show for JSON/XML--> + <div id="attribs"> + <div id="upload-only" ng-show="type=='upload'"> + <label for="erh-params"><!-- TODO: cleaner way to do this? --> + <a rel="help">Extracting Req. Handler Params</a> + </label> + <input ng-model="literalParams" type="text" id="erh-params" value="&literal.id=change.me" + title="Extracting Request Handler Parameters" size="50"> + </div> + <div id="general-attribs"> + <label for="commitWithin"> + <a rel="help">Commit Within</a> + </label> + <input type="text" ng-model="commitWithin" id="commitWithin" value="1000" title="Commit Within (ms)"> + <label for="overwrite"> + <a rel="help">Overwrite</a> + </label> + <input ng-model="overwrite" type="text" id="overwrite" value="true" title="Overwrite"> + </div> + <!-- Boost is json only, since the XML has it embedded --> + <div id="json-only" ng-show="type=='json'"> + <label for="boost"> + <a rel="help">Boost</a> + </label> + <input ng-model="boost" type="text" id="boost" value="1.0" title="Document Boost"> + </div> + </div> + </div> + + <button type="submit" ng-click="submit()" id="submit">Submit Document</button> + </form> + </div> + <div id="result"> + <div id="response" ng-show="response"> + <div> + <span class="description">Status: </span>{{ responseStatus }} + </div> + <div> + <span class="description">Response:</span> + <pre class="syntax language-json"><code ng-bind-html="response | highlight:'json' | unsafe"></code></pre> + </div> + </div> + + </div> +</div> + + Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/files.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/files.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/files.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/files.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,47 @@ +<!-- +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="files" class="clearfix"> + + <div id="frame"> + + <div id="tree-holder"> + + <jstree class="tree" on-select="showTreeLink(data)" data="tree" id="tree"></jstree> + + </div> + <div id="file-content" class="clearfix"> + + <div class="top clearfix"> + + <a id="url" class="address-bar" href="{{url}}" ng-show="url">{{url}}</a> + + </div> + + <div class="view-file"> + + <div class="response" ng-show="content"> + <pre class="syntax language-{{lang}}"><code ng-bind-html="content | highlight:lang | unsafe"></code></pre> + </div> + + + </div> + + </div> + + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/index.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/index.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/index.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/index.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,261 @@ +<!-- +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="index" class="clearfix"> + + <div class="clearfix"> + + <div class="index-left"> + + <div class="block" id="instance"> + + <h2><span>Instance</span></h2> + + <div class="content"> + + <ul class="data" ngShow="system"> + + <li class="start_time"><dl class="clearfix"> + <dt><span>Start</span></dt> + <dd class="timeago">{{system.jvm.jmx.startTime | timeago}}</dd> + </dl></li> + +<!-- + <li class="host"><dl class="clearfix"> + <dt><span>Host</span></dt> + <dd></dd> + </dl></li> + + <li class="dir dir_cwd"><dl class="clearfix"> + <dt><span>CWD</span></dt> + <dd></dd> + </dl></li> + + <li class="dir dir_instance"><dl class="clearfix"> + <dt><span>Instance</span></dt> + <dd></dd> + </dl></li> + + <li class="dir dir_data"><dl class="clearfix"> + <dt><span>Data</span></dt> + <dd></dd> + </dl></li> + + <li class="dir dir_index"><dl class="clearfix"> + <dt><span>Index</span></dt> + <dd></dd> + </dl></li> +--> + </ul> + + </div> + + </div> + + <div class="block" id="versions"> + + <h2><span>Versions</span></h2> + + <div class="content"> + + <ul class="data"> + + <li class="solr solr_spec_version"><dl class="clearfix"> + <dt><span>solr-spec</span></dt> + <dd>{{system.lucene["solr-spec-version"]}}</dd> + </dl></li> + + <li class="solr_impl_version"><dl class="clearfix"> + <dt class=""><span>solr-impl</span></dt> + <dd>{{system.lucene["solr-impl-version"]}}</dd> + </dl></li> + + <li class="lucene lucene_spec_version"><dl class="clearfix"> + <dt><span>lucene-spec</span></dt> + <dd>{{system.lucene["lucene-spec-version"]}}</dd> + </dl></li> + + <li class="lucene_impl_version"><dl class="clearfix"> + <dt><span>lucene-impl</span></dt> + <dd>{{system.lucene["lucene-impl-version"]}}</dd> + </dl></li> + + </ul> + + </div> + + </div> + + </div> + + <div class="index-right"> + + <div class="block" id="system"> + + <h2><span>System</span> + <small class="bar-desc">{{load_average[0]}} {{load_average[1]}} {{load_average[2]}}</small> + </h2> + <a class="reload" ng-click="reload()"><span>reload</span></a> + + <div class="content"> + + <div id="physical-memory-bar" ng-show="system.system.totalPhysicalMemorySize && system.system.freePhysicalMemorySize"> + + <p data-desc="physical-memory-bar">Physical Memory + <small class="bar-desc">{{memoryPercentage}}</small> + </p> + <div class="bar-holder bar-lvl-2"> + + <div class="bar-max bar"> + <span class="bar-max val">{{memoryMax}}</span> + + <div class="bar-total bar" ng-style="{width:memoryPercentage}"> + <span class="bar-total val" title="raw: {{memoryTotal}}B">{{memoryTotalDisplay}}</span> + + </div> + + </div> + + </div> + + </div> + + <div id="swap-space-bar" ng-show="system.system.totalSwapSpaceSize && system.system.freeSwapSpaceSize"> + + <p data-desc="swap-space-bar">Swap Space + <small class="bar-desc">{{swapPercentage}}</small> + </p> + <div class="bar-holder bar-lvl-2"> + + <div class="bar-max bar"> + <span class="bar-max val">{{swapMax}}</span> + + <div class="bar-total bar" ng-style="{width:swapPercentage}"> + <span class="bar-total val" title="raw:{{swapTotal}}B">{{swapTotalDisplay}}</span> + + </div> + + </div> + + </div> + + </div> + + <div id="file-descriptor-bar" ng-show="system.system.maxFileDescriptorCount && system.system.openFileDescriptorCount"> + + <p data-desc="file-descriptor-bar">File Descriptor Count + <small class="bar-desc">{{fileDescriptorPercentage}}</small> + </p> + <div class="bar-holder bar-lvl-2"> + + <div class="bar-max bar"> + <span class="bar-max val">{{system.system.maxFileDescriptorCount}}</span> + + <div class="bar-total bar" ng-style="{width:fileDescriptorPercentage}"> + <span class="bar-total val">{{system.system.openFileDescriptorCount}}</span> + + </div> + + </div> + + </div> + + </div> + + <p class="no-info" ng-show="noInfo">Sorry, no information available</p> + + </div> + + </div> + + </div> + + </div> + + <div class="clearfix"> + + <div class="index-left"> + + <div class="block" id="jvm"> + + <h2><span>JVM</span></h2> + + <div class="content clearfix"> + + <ul class="data"> + + <li class="jvm_version"><dl class="clearfix"> + <dt><span>Runtime</span></dt> + <dd>{{system.jvm.name}} {{system.jvm.version}}</dd> + </dl></li> + + <li class="processors"><dl class="clearfix"> + <dt><span>Processors</span></dt> + <dd>{{system.jvm.processors}}</dd> + </dl></li> + + <li class="command_line_args"><dl class="clearfix"> + <dt><span>Args</span></dt> + <dd ng-repeat="arg in commandLineArgs" ng-class="{'odd':$odd}">{{arg}}</dd> + </dl></li> + + </ul> + + </div> + + </div> + + </div> + <div class="index-right"> + + <div class="block" id="jvm-memory"> + + <h2><span data-desc="jvm-memory-bar">JVM-Memory + <small class="bar-desc">{{javaMemoryPercentage}}</small> + </span></h2> + + <div class="content"> + + <div id="jvm-memory-bar"> + <div class="bar-holder bar-lvl-3"> + + <div class="bar-max bar"> + <span class="bar-max val" title="raw: {{javaMemoryMax}}">{{javaMemoryMax}}</span> + + <div class="bar-total bar" ng-style="{width: javaMemoryTotalPercentage}"> + <span class="bar-total val" title="raw: {{javaMemoryTotal}}B">{{javaMemoryTotalDisplay}}</span> + + <div class="bar-used bar" ng-style="{width: javaMemoryUsedPercentage}"> + <span class="bar-used val" title="raw: {{javaMemoryUsed}}B">{{javaMemoryUsedDisplay}}</span> + + </div> + + </div> + + </div> + + </div> + </div> + + </div> + + </div> + + </div> + + </div> + +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/java-properties.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/java-properties.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/java-properties.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/java-properties.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,27 @@ +<!-- +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="java-properties"> + <ul> + <li ng-class="{odd:$odd}" ng-repeat="prop in props | orderObjectBy:'name'"> + <dl class="clearfix"> + <dt ng-bind-html="prop.name | unsafe"></dt> + <dd ng-class="{odd:$odd, multi:props.length>1}" ng-repeat="value in prop.values">{{value.value}}</dd> + </dl> + </li> + </ul> + </div> + Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging-levels.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging-levels.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging-levels.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging-levels.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,56 @@ +<!-- +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="logging" class="clearfix"> + + + <div id="frame"> + + <div class="block"> + <h2><span>{{watcher}}</span></h2> + <ul class="tree jstree"> + <li class="jstree-leaf level-{{logger.level.toLowerCase()}}" ng-class="{'jstree-last':$last}" ng-repeat="logger in logging" ng-include="'logger.html'"></li> + </ul> + </div> + </div> +</div> + + <script type="text/ng-template" id="logger.html"> + <ins class="trigger jstree-icon"> </ins> + <a ng-click="toggleOptions(logger)" class="trigger {{logger.level.toLowerCase() }}" ng-class="{null:!logger.level, set: logger.set}" title="{{ logger.name }}" rel="{{logger.level}}"> + <span class="ns">{{logger.name}}</span> + <span class="name" ng-show="logger.short">{{ logger.short }}</span> + <span class="name" ng-show="!logger.short"><em>empty</em></span> + </a> + + <div class="selector-holder" ng-class="{open:logger.showOptions}"> + <div class="selector"> + <a class="trigger" ng-click="toggleOptions(logger)"><span><em>{{logger.level || "null"}}</em></span></a> + <div ng-show="logger.showOptions"> + <ul> + <li ng-repeat="level in levels track by level.pos"> + <a ng-click="setLevel(logger, level.name)">{{level.name}}</a> + </li> + <li class="unset"><a ng-click="setLevel(logger, 'unset')">UNSET</a></li> + </ul> + <a class="close" ng-click="toggleOptions(logger)"><span>[x]</span></a> + </div> + </div> + </div> + <ul> + <li class="jstree-leaf level-{{logger.level.toLowerCase()}}" ng-class="{'jstree-last':$last}" ng-repeat="logger in logger.children" ng-include="'logger.html'"></li> + </ul> + </script> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/logging.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,56 @@ +<!-- +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="logging" class="clearfix"> + + <div id="viewer"> + <div class="block"> + <h2><span>{{watcher}}</span></h2> + </div> + <table class="has-data" border="0" cellpadding="0" cellspacing="0"> + <thead> + <tr> + <th class="time">Time (<span>{{timezone}}</span>)</th> + <th class="level">Level</th> + <th class="core">Core</th> + <th class="logger">Logger</th> + <th class="message">Message</th> + </tr> + </thead> + <tbody ng-repeat="event in events"> + <tr ng-click="toggleRow(event)" class="{{event.trace ? 'has-trace': ''}} {{'level-'+event.level.toLowerCase()}}"> + <td class="span"><a><span>{{ timezone == "UTC" ? event.utc_time : event.local_time }}</span></a></td> + <td class="level span"><a><span>{{ event.level }} {{event.showTrace}}</span></span></a></td> + <td class="span"><a><span>{{ event.core }}</span></a></td> + <td class="span"><a><span><abbr title="{{event.logger}}">{{event.loggerBase}}</abbr></span></a></td> + <td class="message span"><a><span>{{ event.message }}</span></a></td> + </tr> + <tr class="trace" ng-show="event.showTrace && event.trace"> + <td colspan="4"><pre>{{event.trace}}</pre></td> + </tr> + </tbody> + <tfoot> + <tr ng-show="events.length==0"> + <td colspan="4">No Events available</td> + </tr> + </thead> + </table> + <div id="footer" class="clearfix"> + <div id="state" class="loader">Last Check: {{sinceDisplay}}</div> + <div id="date-format" ng-click="toggleTimezone()"><a ng-class="{on: timezone=='UTC'}">Show dates in UTC</a></div> + </div> + </div> +</div> Added: ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/plugins.html URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/plugins.html?rev=1776930&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/plugins.html (added) +++ ofbiz/trunk/specialpurpose/solr/webapp/solr/partials/plugins.html Mon Jan 2 13:44:06 2017 @@ -0,0 +1,72 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<div id="plugins" class="clearfix"> + + <div id="frame"> + <ul> + <li class="entry" ng-class="{changed: plugin.changed}" ng-repeat="plugin in type.plugins"> + <a ng-click="selectPlugin(plugin)"> + <span>{{ plugin.name }}</span> + </a> + <ul class="detail" ng-show="plugin.open"> + <li ng-repeat="(key, value) in plugin.properties" ng-class="{odd: $odd}"> + <dl class="clearfix"> + <dt>{{ key }}:</dt> + <!--<dd ng-repeat="v in value">{{v}}</dd><!-- is AN ARRAY!!--> + <dd>{{value}}</dd> + </dl> + </li> + <li class="stats clearfix" ng-show="plugin.stats"> + <span>stats:</span> + <ul> + <li ng-repeat="(key, value) in plugin.stats" ng-class="{odd: $odd}"> + <dl class="clearfix"> + <dt>{{key}}:</dt> + <dd>{{value}}</dd> + </dl> + </li> + </ul> + </li> + </ul> + </ul> + </div> + + <div id="navigation" class="clearfix"> + + <ul> + <li ng-repeat="type in types" class="{{type.lower}}"> + <a ng-click="selectPluginType(type)" rel="{{type.name}}">{{type.name}} + <span ng-show="type.changes">{{type.changes}}</span> + </a> + </li> + <li class="PLUGINCHANGES"><a ng-click="startRecording()">Watch Changes</a></li> + <li class="RELOAD"><a ng-click="refresh()">Refresh Values</a></li> + </ul> + + </div> + + <div id="recording" ng-show="isRecording"> + <div class="wrapper clearfix"> + + <p class="loader">Watching for Changes</p> + <button class="primary" ng-click="stopRecording()">Stop & Show Changes</button> + + </div> + <div id="blockUI"></div> + </div> + +</div> |
Free forum by Nabble | Edit this page |