sheercms
Version:
Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.
147 lines (136 loc) • 7.45 kB
HTML
<div class="row main-container stats-view">
<div class="col-md-12">
<div ng-if="data.isAuthorized !== true" class="no-auth alert alert-danger">
You are not authorized to use this tool.
</div>
<div class="toolbar" ng-if="data.isAuthorized === true">
<ul>
<li>
<a href="javascript:void(0);" title="Reload the statistics" ng-click="refresh()">
<img src="/cms/static/images/icons/32/update.png" alt="Refresh"/>
<span>Refresh</span>
</a>
</li>
<li>
<a href="javascript:void(0);" title="Backup the database" ng-click="backupDatabase()">
<img src="/cms/static/images/icons/32/backup.png" alt="Backup Database"/>
<span>Backup Database</span>
</a>
</li>
<li>
<a href="javascript:void(0);" title="Upload a database backup to the server" ng-click="uploadBackup()">
<img src="/cms/static/images/icons/32/install.png" alt="Upload Backup"/>
<span>Upload Backup</span>
</a>
</li>
</ul>
</div>
<div ng-if="data.isAuthorized === true" style="padding-top:20px;">
<div ng-if="data.message != null && data.message.length > 0">
<div class="alert {{data.messageType}} max-width-medium">{{data.message}}</div>
</div>
<!-- Nav tabs -->
<ul class="nav nav-pills" role="tablist">
<li role="presentation" ng-class="{active: data.tab == 'stats'}"><a href="javascript:void(0);" role="tab" data-toggle="tab" ng-click="changeTab('stats')">Statistics</a></li>
<li role="presentation" ng-class="{active: data.tab == 'backups'}"><a href="javascript:void(0);" role="tab" data-toggle="tab" ng-click="changeTab('backups')">Database Backups</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane" ng-class="{active: data.tab == 'stats'}" id="tabStats">
<div class="row system-stats">
<div class="col-sm-12 col-md-4 col-lg-2">
<h3>Database</h3>
<table>
<tr>
<td class="stat-label">Name:</td>
<td>{{stats.database.db}}</td>
</tr>
<tr>
<td class="stat-label">Collections:</td>
<td>{{stats.database.collections}}</td>
</tr>
<tr>
<td class="stat-label">Documents:</td>
<td>{{stats.database.objects}}</td>
</tr>
<tr>
<td class="stat-label">Data Size:</td>
<td>{{stats.database.dataSize}} KB</td>
</tr>
<tr>
<td class="stat-label">Storage Size:</td>
<td>{{stats.database.storageSize}} KB</td>
</tr>
<tr>
<td class="stat-label">Index Size:</td>
<td>{{stats.database.indexSize}} KB</td>
</tr>
<tr>
<td class="stat-label">File Size:</td>
<td>{{stats.database.fileSize}} KB</td>
</tr>
</table>
</div>
<div class="col-sm-12 col-md-4 col-lg-2">
<h3>Collections</h3>
<div ng-repeat="col in stats.collections">
<table>
<tr>
<td class="stat-label">Name:</td>
<td>{{col.name}}</td>
</tr>
<tr>
<td class="stat-label">Documents:</td>
<td>{{col.count}}</td>
</tr>
<tr>
<td class="stat-label">Data Size:</td>
<td>{{col.size}} KB</td>
</tr>
<tr>
<td class="stat-label">Storage Size:</td>
<td>{{col.storageSize}} KB</td>
</tr>
<tr>
<td class="stat-label">Index Size:</td>
<td>{{col.totalIndexSize}} KB</td>
</tr>
</table>
</div>
</div>
</div>
<div class="system-stats-json">
<button type="button" ng-click="showJson()" class="btn btn-primary">Show JSON</button>
<textarea ng-show="isJsonVisible">{{statsString}}</textarea>
</div>
</div>
<div role="tabpanel" class="tab-pane" ng-class="{active: data.tab == 'backups'}" id="tabBackups">
<table class="table table-striped backups">
<thead>
<tr>
<th>Backup Name</th>
<th style="width:240px;">Options</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="b in backups">
<td>{{b.name}}</td>
<td>
<a href="{{b.url}}" title="Download this backup to your computer">Download</a>
<a href="javascript:void(0);" ng-click="restoreBackup(b)" title="Overwrite the database with this backup">Restore</a>
<a href="javascript:void(0);" ng-click="deleteBackup(b)" title="Delete this backup from the server">Delete</a>
</td>
</tr>
</tbody>
</table>
<div class="backup-restore-result" ng-if="data.resultText && data.resultText.length > 0">
<strong>Database restore results:</strong>
<div>
{{data.resultText}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>