| <!-- |
| 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> |