allow to edit CloudFlare email/api

This commit is contained in:
Usman Nasir
2020-02-19 15:13:38 +05:00
parent 1dc550207a
commit 177e68d00c
3 changed files with 467 additions and 330 deletions

View File

@@ -598,10 +598,15 @@ class DNSManager:
if os.path.exists(cfPath):
CloudFlare = 1
domainsList = ACLManager.findAllDomains(currentACL, userID)
domainsList = ACLManager.findAllDomains(currentACL, userID)
self.admin = admin
self.loadCFKeys()
return render(request, 'dns/addDeleteDNSRecordsCloudFlare.html', {"domainsList": domainsList, "status": 1, 'CloudFlare': CloudFlare})
return render(request, 'dns/addDeleteDNSRecordsCloudFlare.html',
{"domainsList": domainsList, "status": 1, 'CloudFlare': CloudFlare, 'cfEmail': self.email, 'cfToken': self.key})
else:
return render(request, 'dns/addDeleteDNSRecordsCloudFlare.html', {"status": 1, 'CloudFlare': CloudFlare})
except BaseException as msg:
return HttpResponse(str(msg))

View File

@@ -644,7 +644,7 @@ app.controller('configureDefaultNameservers', function ($scope, $http) {
/* Java script code for CloudFlare */
app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http) {
app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http, $window) {
$scope.saveCFConfigs = function () {
@@ -678,8 +678,7 @@ app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http) {
text: 'Changes successfully saved.',
type: 'success'
});
$window.location.reload();
} else {
@@ -965,7 +964,6 @@ app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http) {
}
$scope.deleteRecord = function (id) {

View File

@@ -63,15 +63,13 @@
<label class="col-sm-3 control-label">{% trans "Sync local Records to CloudFlare" %} </label>
<div class="col-sm-6">
<select ng-model="cfSync" class="form-control">
<option>Enable</option>
<option>Disable</option>
<option>Enable</option>
<option>Disable</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
@@ -84,402 +82,538 @@
{% else %}
<form action="/" class="form-horizontal bordered-row panel-body">
<ul class="nav nav-tabs">
<li class="col-md-4 nav-item tab-mod active">
<a href="#tab-example-1" data-toggle="tab" class="h4 nav-link">
<i class="fa fa-cog btn-icon"></i>
<span>{% trans "Manage DNS" %}</span>
</a>
<div class="form-group">
<label class="col-sm-2 control-label">{% trans "Select Domain" %} </label>
<div class="col-sm-6">
<select ng-change="fetchRecords()" ng-model="selectedZone" class="form-control">
{% for items in domainsList %}
<option>{{ items }}</option>
{% endfor %}
</select>
</div>
<div ng-hide="addRecordsBox" class="col-sm-4">
<button style="width: 100%;" type="button" ng-click="syncCF()"
class="btn btn-primary">{% trans "Sync Local Records to CloudFlare" %}</button>
</div>
</div>
<div ng-hide="addRecordsBox" class="form-group">
</li>
<li class="col-md-4 tab-mod nav-item">
<a href="#tab-example-3" data-toggle="tab" class="h4 nav-link">
<i class="fa fa-cogs btn-icon"></i>
<span>{% trans "API Settings" %}</span>
</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="tab-example-1">
<div class="example-box-wrapper">
<ul class="nav nav-tabs">
<li ng-click="fetchRecordsTabs('aRecord')" id="aRecord"><a href="">A</a>
</li>
<li ng-click="fetchRecordsTabs('aaaaRecord')" id="aaaaRecord"><a href="">AAAA</a>
</li>
<li ng-click="fetchRecordsTabs('cNameRecord')" id="cNameRecord"><a href="">CNAME</a>
</li>
<li ng-click="fetchRecordsTabs('mxRecord')" id="mxRecord"><a href="">MX</a>
</li>
<li ng-click="fetchRecordsTabs('txtRecord')" id="txtRecord"><a
href="">TXT</a></li>
<li ng-click="fetchRecordsTabs('spfRecord')" id="spfRecord"><a
href="">SPF</a></li>
<li ng-click="fetchRecordsTabs('nsRecord')" id="nsRecord"><a href="">NS</a>
</li>
<li ng-click="fetchRecordsTabs('soaRecord')" id="soaRecord"><a
href="">SOA</a></li>
<li ng-click="fetchRecordsTabs('srvRecord')" id="srvRecord"><a
href="">SRV</a></li>
<li ng-click="fetchRecordsTabs('caaRecord')" id="caaRecord"><a
href="">CAA</a></li>
</ul>
</div>
<!------------- A Record box ------------->
<form action="/" class="form-horizontal bordered-row panel-body">
<div class="form-group">
<label class="col-sm-2 control-label">{% trans "Select Domain" %} </label>
<div class="col-sm-6">
<select ng-change="fetchRecords()" ng-model="selectedZone"
class="form-control">
{% for items in domainsList %}
<option>{{ items }}</option>
{% endfor %}
</select>
</div>
<div ng-hide="addRecordsBox" class="col-sm-4">
<button style="width: 100%;" type="button"
ng-click="syncCF()"
class="btn btn-primary">{% trans "Sync Local Records to CloudFlare" %}</button>
</div>
</div>
<div ng-hide="addRecordsBox" class="form-group">
<div class="example-box-wrapper">
<ul class="nav nav-tabs">
<li ng-click="fetchRecordsTabs('aRecord')" id="aRecord">
<a href="">A</a>
</li>
<li ng-click="fetchRecordsTabs('aaaaRecord')"
id="aaaaRecord"><a href="">AAAA</a>
</li>
<li ng-click="fetchRecordsTabs('cNameRecord')"
id="cNameRecord"><a href="">CNAME</a>
</li>
<li ng-click="fetchRecordsTabs('mxRecord')"
id="mxRecord"><a href="">MX</a>
</li>
<li ng-click="fetchRecordsTabs('txtRecord')"
id="txtRecord"><a
href="">TXT</a></li>
<li ng-click="fetchRecordsTabs('spfRecord')"
id="spfRecord"><a
href="">SPF</a></li>
<li ng-click="fetchRecordsTabs('nsRecord')"
id="nsRecord"><a href="">NS</a>
</li>
<li ng-click="fetchRecordsTabs('soaRecord')"
id="soaRecord"><a
href="">SOA</a></li>
<li ng-click="fetchRecordsTabs('srvRecord')"
id="srvRecord"><a
href="">SRV</a></li>
<li ng-click="fetchRecordsTabs('caaRecord')"
id="caaRecord"><a
href="">CAA</a></li>
</ul>
</div>
<!------------- A Record box ------------->
<div class="col-sm-3 aRecord">
<input placeholder="{% trans 'Name' %}" name="dom"
type="text"
class="form-control" ng-model="recordName" required>
</div>
<div class="col-sm-3 aRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 aRecord">
<input placeholder="{% trans 'IP Address' %}" name="dom"
type="text"
class="form-control" ng-model="recordContentA"
required>
</div>
<div class="col-sm-3 aRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('A')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- A Record box ------------->
<!------------- AAAA Record box ------------->
<div class="col-sm-3 aaaaRecord">
<input placeholder="{% trans 'Name' %}" name="dom"
type="text"
class="form-control" ng-model="recordName" required>
</div>
<div class="col-sm-3 aaaaRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 aaaaRecord">
<input placeholder="{% trans 'IPV6 Address' %}" name="dom"
type="text"
class="form-control" ng-model="recordContentAAAA"
required>
</div>
<div class="col-sm-3 aaaaRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('AAAA')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- AAAA Record box ------------->
<!------------- CNAME Record box ------------->
<div class="col-sm-3 cNameRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-3 cNameRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 aRecord">
<input placeholder="{% trans 'Name' %}" name="dom" type="text"
class="form-control" ng-model="recordName" required>
</div>
<div class="col-sm-3 cNameRecord">
<input placeholder="{% trans 'Domain Name' %}" type="text"
class="form-control"
ng-model="recordContentCNAME" required>
</div>
<div class="col-sm-3 aRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 aRecord">
<input placeholder="{% trans 'IP Address' %}" name="dom" type="text"
class="form-control" ng-model="recordContentA" required>
</div>
<div class="col-sm-3 cNameRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('CNAME')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- CNAME Record box ------------->
<div class="col-sm-3 aRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('A')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- MX Record box ------------->
<!------------- A Record box ------------->
<!------------- AAAA Record box ------------->
<div class="col-sm-3 mxRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-2 mxRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 aaaaRecord">
<input placeholder="{% trans 'Name' %}" name="dom" type="text"
class="form-control" ng-model="recordName" required>
</div>
<div class="col-sm-2 mxRecord">
<input placeholder="{% trans 'Priority' %}" type="number"
class="form-control"
ng-model="priority" required>
</div>
<div class="col-sm-3 aaaaRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 mxRecord">
<input placeholder="{% trans 'Domain Name' %}" type="text"
class="form-control"
ng-model="recordContentMX" required>
</div>
<div class="col-sm-3 aaaaRecord">
<input placeholder="{% trans 'IPV6 Address' %}" name="dom" type="text"
class="form-control" ng-model="recordContentAAAA" required>
</div>
<div class="col-sm-2 mxRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('MX')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<div class="col-sm-3 aaaaRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('AAAA')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- CNAME Record box ------------->
<!------------- AAAA Record box ------------->
<!------------- SPF Record box ------------->
<!------------- CNAME Record box ------------->
<div class="col-sm-3 spfRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-3 cNameRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-3 spfRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 cNameRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 cNameRecord">
<input placeholder="{% trans 'Domain Name' %}" type="text" class="form-control"
ng-model="recordContentCNAME" required>
</div>
<div class="col-sm-3 spfRecord">
<input placeholder="{% trans 'Policy' %}" type="text"
class="form-control"
ng-model="recordContentSPF" required>
</div>
<div class="col-sm-3 cNameRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('CNAME')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<div class="col-sm-3 spfRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('SPF')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- CNAME Record box ------------->
<!------------- SPF Record box ------------->
<!------------- MX Record box ------------->
<!------------- TXT Record box ------------->
<div class="col-sm-3 mxRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-3 txtRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-2 mxRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 txtRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-2 mxRecord">
<input placeholder="{% trans 'Priority' %}" type="number" class="form-control"
ng-model="priority" required>
</div>
<div class="col-sm-3 mxRecord">
<input placeholder="{% trans 'Domain Name' %}" type="text" class="form-control"
ng-model="recordContentMX" required>
</div>
<div class="col-sm-3 txtRecord">
<input placeholder="{% trans 'Text' %}" type="text"
class="form-control"
ng-model="recordContentTXT" required>
</div>
<div class="col-sm-2 mxRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('MX')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<div class="col-sm-3 txtRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('TXT')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- CNAME Record box ------------->
<!------------- TXT Record box ------------->
<!------------- SOA Record box ------------->
<!------------- SPF Record box ------------->
<div class="col-sm-3 soaRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="selectedZone" disabled>
</div>
<div class="col-sm-3 spfRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-3 soaRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 spfRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 soaRecord">
<input placeholder="{% trans 'SOA Value' %}" type="text"
class="form-control"
ng-model="recordContentSOA" required>
</div>
<div class="col-sm-3 spfRecord">
<input placeholder="{% trans 'Policy' %}" type="text" class="form-control"
ng-model="recordContentSPF" required>
</div>
<div class="col-sm-3 soaRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('SOA')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<div class="col-sm-3 spfRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('SPF')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- SOA Record box ------------->
<!------------- SPF Record box ------------->
<!------------- NS Record box ------------->
<!------------- TXT Record box ------------->
<div class="col-sm-3 nsRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="selectedZone" disabled>
</div>
<div class="col-sm-3 txtRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="recordName" required>
</div>
<div class="col-sm-3 nsRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 txtRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 nsRecord">
<input placeholder="{% trans 'Name server' %}" type="text"
class="form-control"
ng-model="recordContentNS" required>
</div>
<div class="col-sm-3 txtRecord">
<input placeholder="{% trans 'Text' %}" type="text" class="form-control"
ng-model="recordContentTXT" required>
</div>
<div class="col-sm-3 nsRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('NS')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<div class="col-sm-3 txtRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('TXT')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- NS Record box ------------->
<!------------- SRV Record box ------------->
<!------------- TXT Record box ------------->
<!------------- SOA Record box ------------->
<div class="col-sm-3 srvRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="recordName">
</div>
<div class="col-sm-2 srvRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 soaRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="selectedZone" disabled>
</div>
<div class="col-sm-2 srvRecord">
<input placeholder="{% trans 'Prioirty' %}" type="number"
class="form-control"
ng-model="priority" required>
</div>
<div class="col-sm-3 soaRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 srvRecord">
<input placeholder="{% trans 'Content' %}" type="text"
class="form-control"
ng-model="recordContentSRV" required>
</div>
<div class="col-sm-3 soaRecord">
<input placeholder="{% trans 'SOA Value' %}" type="text" class="form-control"
ng-model="recordContentSOA" required>
</div>
<div class="col-sm-2 srvRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('SRV')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- SRV Record box ------------->
<!------------- CAA Record box ------------->
<div class="col-sm-3 caaRecord">
<input placeholder="{% trans 'Name' %}" type="text"
class="form-control"
ng-model="recordName">
</div>
<div class="col-sm-3 caaRecord">
<input placeholder="{% trans 'TTL' %}" type="number"
class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 caaRecord">
<input placeholder='Value e.g: 0 issue "letsencrypt.org"'
type="text"
class="form-control" ng-model="recordContentCAA"
required>
</div>
<div class="col-sm-3 caaRecord">
<button style="width: 100%;" type="button"
ng-click="addDNSRecord('CAA')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<div class="col-sm-3 soaRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('SOA')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- CAA Record box ------------->
<!------------- SOA Record box ------------->
<!------------- NS Record box ------------->
</div>
<div class="col-sm-3 nsRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="selectedZone" disabled>
</div>
<!------ List of records --------------->
<div class="col-sm-3 nsRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div ng-hide="currentRecords" class="form-group">
<div class="col-sm-12">
<table class="table">
<thead>
<tr>
<th>{% trans "Name" %}</th>
<th>{% trans "Type" %}</th>
<th>{% trans "TTL" %}</th>
<th>{% trans "Value" %}</th>
<th>{% trans "Priority" %}</th>
<th>{% trans "Delete" %}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="record in records track by $index">
<td ng-bind="record.name"></td>
<td ng-bind="record.type"></td>
<td ng-bind="record.ttl"></td>
<td ng-bind="record.content"></td>
<td ng-bind="record.priority"></td>
<td ng-click="deleteRecord(record.id)"><img
src="{% static 'images/delete.png' %}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<!------ List of records --------------->
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<div ng-hide="canNotFetchRecords"
class="alert alert-danger">
<p>{% trans "Cannot fetch records. Error message:" %}{$
errorMessage $}</p>
</div>
<div ng-hide="couldNotAddRecord" class="alert alert-danger">
<p>{% trans "Cannot add record. Error message: " %}{$
errorMessage $}</p>
</div>
<div ng-hide="recordsFetched" class="alert alert-success">
<p>{% trans "Records successfully fetched for" %}
<strong>{$ domainFeteched
$}</strong></p>
</div>
<div ng-hide="recordDeleted" class="alert alert-success">
<p>{% trans "Record Successfully Deleted" %}</p>
</div>
<div ng-hide="couldNotDeleteRecords"
class="alert alert-danger">
<p>{% trans "Cannot delete record. Error message:" %} {$
errorMessage $}</p>
</div>
<div ng-hide="recordAdded" class="alert alert-success">
<p>{% trans "Record Successfully Added." %}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-success">
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
</div>
</div>
</div>
</form>
<div class="col-sm-3 nsRecord">
<input placeholder="{% trans 'Name server' %}" type="text" class="form-control"
ng-model="recordContentNS" required>
</div>
<div class="col-sm-3 nsRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('NS')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- NS Record box ------------->
<!------------- SRV Record box ------------->
<div class="col-sm-3 srvRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="recordName">
</div>
<div class="col-sm-2 srvRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-2 srvRecord">
<input placeholder="{% trans 'Prioirty' %}" type="number" class="form-control"
ng-model="priority" required>
</div>
<div class="col-sm-3 srvRecord">
<input placeholder="{% trans 'Content' %}" type="text" class="form-control"
ng-model="recordContentSRV" required>
</div>
<div class="col-sm-2 srvRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('SRV')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- SRV Record box ------------->
<!------------- CAA Record box ------------->
<div class="col-sm-3 caaRecord">
<input placeholder="{% trans 'Name' %}" type="text" class="form-control"
ng-model="recordName">
</div>
<div class="col-sm-3 caaRecord">
<input placeholder="{% trans 'TTL' %}" type="number" class="form-control"
ng-model="ttl" required>
</div>
<div class="col-sm-3 caaRecord">
<input placeholder='Value e.g: 0 issue "letsencrypt.org"' type="text"
class="form-control" ng-model="recordContentCAA" required>
</div>
<div class="col-sm-3 caaRecord">
<button style="width: 100%;" type="button" ng-click="addDNSRecord('CAA')"
class="btn btn-primary">{% trans "Add" %}</button>
</div>
<!------------- CAA Record box ------------->
</div>
<!------ List of records --------------->
<div ng-hide="currentRecords" class="form-group">
<div class="col-sm-12">
<table class="table">
<thead>
<tr><th>{% trans "Name" %}</th>
<th>{% trans "Type" %}</th>
<th>{% trans "TTL" %}</th>
<th>{% trans "Value" %}</th>
<th>{% trans "Priority" %}</th>
<th>{% trans "Delete" %}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="record in records track by $index">
<td ng-bind="record.name"></td>
<td ng-bind="record.type"></td>
<td ng-bind="record.ttl"></td>
<td ng-bind="record.content"></td>
<td ng-bind="record.priority"></td>
<td ng-click="deleteRecord(record.id)"><img
src="{% static 'images/delete.png' %}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<!------ List of records --------------->
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<div ng-hide="canNotFetchRecords" class="alert alert-danger">
<p>{% trans "Cannot fetch records. Error message:" %}{$ errorMessage $}</p>
</div>
<div ng-hide="couldNotAddRecord" class="alert alert-danger">
<p>{% trans "Cannot add record. Error message: " %}{$ errorMessage $}</p>
</div>
<div ng-hide="recordsFetched" class="alert alert-success">
<p>{% trans "Records successfully fetched for" %} <strong>{$ domainFeteched
$}</strong></p>
</div>
<div ng-hide="recordDeleted" class="alert alert-success">
<p>{% trans "Record Successfully Deleted" %}</p>
</div>
<div ng-hide="couldNotDeleteRecords" class="alert alert-danger">
<p>{% trans "Cannot delete record. Error message:" %} {$ errorMessage $}</p>
</div>
<div ng-hide="recordAdded" class="alert alert-success">
<p>{% trans "Record Successfully Added." %}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-success">
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
</div>
</div>
</div>
</form>
<div class="tab-pane fade" id="tab-example-3">
<form action="/" class="form-horizontal bordered-row panel-body">
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "CloudFlare Email" %}</label>
<div class="col-sm-6">
<input ng-init="cfEmail='{{ cfEmail }}'" name="cfEmail" type="text" class="form-control"
ng-model="cfEmail"
required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "API Token" %}</label>
<div class="col-sm-6">
<input ng-init="cfToken='{{ cfToken }}'" name="cfToken" type="text" class="form-control"
ng-model="cfToken"
required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Sync local Records to CloudFlare" %} </label>
<div class="col-sm-6">
<select ng-model="cfSync" class="form-control">
<option>Enable</option>
<option>Disable</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<button type="button" ng-click="saveCFConfigs()"
class="btn btn-primary btn-lg">{% trans "Save" %}</button>
</div>
</div>
</form>
</div>
</div>
{% endif %}