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