mirror of
https://github.com/VinylDNS/vinyldns
synced 2025-08-22 02:02:14 +00:00
- Simplify build config - Add TTY check to Makefiles for running Docker containers - Update `fs2` to latest patch - Update `sbt-assembly` plugin - Update portal to remove chatty console - Update portal scripts to add license header - Update prepare-portal/Gruntfile to combine js and css where applicable - Remove unused gentelella files from final portal artifact - Add support for shared zones to quickstart/docker images - Consolidate built artifacts in `artifacts/` to make eventual release easier
274 lines
16 KiB
HTML
274 lines
16 KiB
HTML
@(rootAccountName: String)(implicit request: play.api.mvc.Request[Any], customLinks: models.CustomLinks, meta: models.Meta)
|
|
|
|
@content = {
|
|
<!-- PAGE CONTENT -->
|
|
<div class="right_col" role="main">
|
|
|
|
<!-- BREADCRUMB -->
|
|
<ul class="breadcrumb">
|
|
<li><a href="/">Home</a></li>
|
|
<li class="active">Zones</li>
|
|
</ul>
|
|
<!-- END BREADCRUMB -->
|
|
|
|
<!-- PAGE TITLE -->
|
|
<div class="page-title">
|
|
<h3><span class="fa fa-table"></span> Zones</h3>
|
|
</div>
|
|
<!-- END PAGE TITLE -->
|
|
|
|
<!-- PAGE CONTENT WRAPPER -->
|
|
<div class="page-content-wrap">
|
|
<div class="alert-wrapper">
|
|
<div ng-repeat="alert in alerts">
|
|
<notification ng-model="alert"></notification>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- START VERTICAL TABS -->
|
|
<div class="panel panel-default panel-tabs">
|
|
<ul class="nav nav-tabs bar_tabs">
|
|
<li class="active"><a href="#myZones" data-toggle="tab">My Zones</a></li>
|
|
<li><a id="tab2-button" href="#allZones" data-toggle="tab">All Zones</a></li>
|
|
</ul>
|
|
|
|
<div class="panel-body tab-content">
|
|
<div class="tab-pane active" id="myZones">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
|
|
<!-- SIMPLE DATATABLE -->
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">
|
|
<div class="btn-group">
|
|
<button class="btn btn-default" ng-click="resetCurrentZone()" data-toggle="modal"
|
|
data-target="#zone_connection_modal" id="open-zone-modal-button">
|
|
<span class="fa fa-arrow-right"></span> Connect
|
|
</button>
|
|
<button id="zone-refresh-button" class="btn btn-default" ng-click="refreshZones()">
|
|
<span class="fa fa-refresh"></span> Refresh
|
|
</button>
|
|
</div>
|
|
|
|
<!-- SEARCH BOX -->
|
|
<div class="pull-right">
|
|
<form class="input-group" ng-submit="refreshZones()">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button id="zone-search-button" type="submit" class="btn btn-primary btn-left-round">
|
|
<span class="fa fa-search"></span>
|
|
</button>
|
|
</span>
|
|
<input id="zone-search-text" ng-model="query" type="text" class="form-control" placeholder="Zone Name"/>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<!-- END SEARCH BOX -->
|
|
|
|
</div>
|
|
<div id="zone-list-table" class="panel-body">
|
|
<p ng-if="!zonesLoaded">Loading zones...</p>
|
|
<p ng-if="!hasZones && zonesLoaded">No zones found. You do not own any zones in VinylDNS. You can manage records in shared zones through <a href="../dnschanges">DNS Changes</a>.</p>
|
|
<p ng-if="hasZones && zonesLoaded && !zones.length">No zones match the search criteria.</p>
|
|
|
|
<!-- PAGINATION -->
|
|
<div class="dataTables_paginate vinyldns_zones_paginate">
|
|
<span class="vinyldns_zones_page_number">{{ getZonesPageNumber("myZones") }}</span>
|
|
<ul class="pagination">
|
|
<li class="paginate_button previous">
|
|
<a ng-if="prevPageEnabled('myZones')" ng-click="prevPageMyZones()">Previous</a>
|
|
</li>
|
|
<li class="paginate_button next">
|
|
<a ng-if="nextPageEnabled('myZones')" ng-click="nextPageMyZones()">Next</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<!-- END PAGINATION -->
|
|
|
|
<table class="table" ng-if="zones.length">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Email</th>
|
|
<th>Admin Group</th>
|
|
<th>Status</th>
|
|
@if(meta.sharedDisplayEnabled) {
|
|
<th>Access</th>
|
|
}
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="zone in zones">
|
|
<td class="wrap-long-text"><a ng-href="/zones/{{ zone.id }}" ng-bind="zone.name"></a></td>
|
|
<td class="wrap-long-text" ng-bind="zone.email"></td>
|
|
<td>
|
|
<a ng-if="canAccessGroup(zone.adminGroupId)" ng-bind="zone.adminGroupName" href="/groups/{{zone.adminGroupId}}"></a>
|
|
<span ng-if="!canAccessGroup(zone.adminGroupId)" ng-bind="zone.adminGroupName" style="line-height: 0"></span>
|
|
</td>
|
|
<td ng-bind="zone.status"></td>
|
|
@if(meta.sharedDisplayEnabled) {
|
|
<td>{{zone.shared ? "Shared" : "Private"}}</td>
|
|
}
|
|
<td>
|
|
<div class="table-form-group">
|
|
<a id="zone-view-{{zone.name}}" type="button" class="btn btn-info btn-rounded"
|
|
ng-href="/zones/{{ zone.id }}">
|
|
View
|
|
</a>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- PAGINATION -->
|
|
<div class="dataTables_paginate vinyldns_zones_paginate">
|
|
<span class="vinyldns_zones_page_number">{{ getZonesPageNumber("myZones") }}</span>
|
|
<ul class="pagination">
|
|
<li class="paginate_button previous">
|
|
<a ng-if="prevPageEnabled('myZones')" ng-click="prevPageMyZones()">Previous</a>
|
|
</li>
|
|
<li class="paginate_button next">
|
|
<a ng-if="nextPageEnabled('myZones')" ng-click="nextPageMyZones()">Next</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<!-- END PAGINATION -->
|
|
|
|
</div>
|
|
<div class="panel-footer"></div>
|
|
</div>
|
|
<!-- END SIMPLE DATATABLE -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane" id="allZones">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
|
|
<!-- SIMPLE DATATABLE -->
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">
|
|
|
|
<button id="zone-refresh-button" class="btn btn-default" ng-click="refreshZones()">
|
|
<span class="fa fa-refresh"></span> Refresh
|
|
</button>
|
|
|
|
<!-- SEARCH BOX -->
|
|
<div class="pull-right">
|
|
<form class="input-group" ng-submit="refreshZones()">
|
|
<div class="input-group">
|
|
<span class="input-group-btn">
|
|
<button id="all-zones-search-button" type="submit" class="btn btn-primary btn-left-round">
|
|
<span class="fa fa-search"></span>
|
|
</button>
|
|
</span>
|
|
<input id="all-zones-search-text" ng-model="query" type="text" class="form-control" placeholder="Zone Name"/>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<!-- END SEARCH BOX -->
|
|
|
|
</div>
|
|
<div id="zone-list-table" class="panel-body">
|
|
<p ng-if="!allZonesLoaded">Loading zones...</p>
|
|
<p ng-if="allZonesLoaded && !allZones.length">No zones match the search criteria.</p>
|
|
|
|
<!-- PAGINATION -->
|
|
<div class="dataTables_paginate vinyldns_zones_paginate">
|
|
<span class="vinyldns_zones_page_number">{{ getZonesPageNumber("allZones") }}</span>
|
|
<ul class="pagination">
|
|
<li class="paginate_button previous">
|
|
<a ng-if="prevPageEnabled('allZones')" ng-click="prevPageAllZones()">Previous</a>
|
|
</li>
|
|
<li class="paginate_button next">
|
|
<a ng-if="nextPageEnabled('allZones')" ng-click="nextPageAllZones()">Next</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<!-- END PAGINATION -->
|
|
|
|
<table class="table" ng-if="allZones.length">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Email</th>
|
|
<th>Admin Group</th>
|
|
<th>Status</th>
|
|
@if(meta.sharedDisplayEnabled) {
|
|
<th>Access</th>
|
|
}
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="zone in allZones">
|
|
<td class="wrap-long-text">
|
|
<a ng-if="canAccessZone(zone.accessLevel)" ng-bind="zone.name" href="/zones/{{zone.id}}"></a>
|
|
<span ng-if="!canAccessZone(zone.accessLevel)" ng-bind="zone.name"></span>
|
|
</td>
|
|
<td class="wrap-long-text" ng-bind="zone.email"></td>
|
|
<td>
|
|
<a ng-if="canAccessGroup(zone.adminGroupId)" ng-bind="zone.adminGroupName" href="/groups/{{zone.adminGroupId}}"></a>
|
|
<span ng-if="!canAccessGroup(zone.adminGroupId)" ng-bind="zone.adminGroupName" style="line-height: 0"></span>
|
|
</td>
|
|
<td ng-bind="zone.status"></td>
|
|
@if(meta.sharedDisplayEnabled) {
|
|
<td>{{zone.shared ? "Shared" : "Private"}}</td>
|
|
}
|
|
<td>
|
|
<div class="table-form-group">
|
|
<a ng-if="canAccessZone(zone.accessLevel)" type="button" class="btn btn-info btn-rounded"
|
|
ng-href="/zones/{{ zone.id }}">
|
|
View
|
|
</a>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- PAGINATION -->
|
|
<div class="dataTables_paginate vinyldns_zones_paginate">
|
|
<span class="vinyldns_zones_page_number">{{ getZonesPageNumber("allZones") }}</span>
|
|
<ul class="pagination">
|
|
<li class="paginate_button previous">
|
|
<a ng-if="prevPageEnabled('allZones')" ng-click="prevPageAllZones()">Previous</a>
|
|
</li>
|
|
<li class="paginate_button next">
|
|
<a ng-if="nextPageEnabled('allZones')" ng-click="nextPageAllZones()">Next</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<!-- END PAGINATION -->
|
|
|
|
</div>
|
|
<div class="panel-footer"></div>
|
|
</div>
|
|
<!-- END SIMPLE DATATABLE -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- END VERTICAL TABS -->
|
|
|
|
|
|
</div>
|
|
<!-- END PAGE CONTENT WRAPPER -->
|
|
|
|
</div>
|
|
<!-- END PAGE CONTENT -->
|
|
|
|
<zoneconnection></zoneconnection>
|
|
}
|
|
|
|
@plugins = {
|
|
<script type='text/javascript' src='/public/js/ui.js'></script>
|
|
}
|
|
|
|
@main(rootAccountName)("ZonesController")("Zones")(content)(plugins)
|