2
0
mirror of https://github.com/VinylDNS/vinyldns synced 2025-08-22 02:02:14 +00:00
vinyldns/modules/portal/app/views/zones/zones.scala.html
Emerle, Ryan e1743e5342
Updates
- 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
2021-11-02 17:06:24 -04:00

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)