File manager - Edit - /home/newsbmcs.com/public_html/static/img/logo/dns.tar
Back
resetdnsconf.html 0000644 00000006103 15030541703 0010125 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Reset DNS Configurations - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <div class="container"> <div id="page-title"> <h2>{% trans "Reset DNS Configurations" %}</h2> <p>{% trans "Reset your DNS Configurations here." %}</p> </div> <div ng-controller="ResetDNSconf"> <div class="panel-body"> <div ng-hide="installationDetailsForm" class="form-group"> <div class="col-sm-4"> <button type="button" ng-click="resetDNS()" class="btn btn-primary btn-lg">{% trans "Reset Configuration" %}</button> </div> </div> <div ng-hide="NotifyBox" class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-6"> <div ng-hide="failedToStartInallation" class="alert alert-danger"> <p>{% trans "Failed to start installation, Error message: " %} {$ errorMessage $}</p> </div> <div ng-hide="couldNotConnect" class="alert alert-danger"> <p>{% trans "Could not connect. Please refresh this page." %} </p> </div> <div ng-hide="installationFailed" class="alert alert-danger"> <p>{% trans "Installation failed." %} {$ errorMessage $}</p> </div> <div ng-hide="modSecSuccessfullyInstalled" class="alert alert-success"> <p>{% trans "successfully Completed Reset Process." %}</p> </div> </div> </div> <div ng-hide="InstallBox" class="col-md-12"> <form action="/dns/static" id="" class="form-horizontal bordered-row"> <div class="form-group"> <div class="col-sm-12 text-center"> <h3> {% trans "Reseting...." %} <img ng-hide="Loading" src="/images/loading.gif"></h3> </div> <div style="margin-top: 2%;" class="col-sm-12"> <textarea ng-model="requestData" rows="15" class="form-control">{$ requestData $}</textarea> </div> </div> </form> </div> </div> </div> </div> {% endblock %} addDeleteDNSRecords.html 0000644 00000057436 15030541703 0011211 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Add/Modify DNS Records - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <!-- Current language: {{ LANGUAGE_CODE }} --> <div class="container"> <div id="page-title"> <h2>{% trans "Add/Modify DNS Zone" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2> <p>{% trans "On this page you can add/modify dns records for domains whose dns zone is already created." %}</p> </div> <div ng-controller="addModifyDNSRecords" class="panel"> <div class="panel-body"> <h3 class="content-box-header"> {% trans "Add Records" %} <img ng-hide="recordsLoading" src="{% static 'images/loading.gif' %}"> </h3> <div class="example-box-wrapper"> {% if not status %} <div class="col-md-12 text-center" style="margin-bottom: 2%;"> <h3>{% trans "PowerDNS is disabled." %} <a href="{% url 'managePowerDNS' %}"> <button class="btn btn-alt btn-hover btn-blue-alt"> <span>{% trans "Enable Now" %}</span> <i class="glyph-icon icon-arrow-right"></i> </button> </a></h3> </div> {% else %} <form action="/" class="form-horizontal bordered-row panel-body"> <div class="form-group"> <label class="col-sm-3 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> <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" min="0" max="86400" 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" min="0" max="86400" 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" min="0" max="86400" 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 cNameRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('CNAME')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- CNAME Record box -------------> <!------------- MX 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" min="0" max="86400" 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-2 mxRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('MX')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- CNAME Record box -------------> <!------------- SPF 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 spfRecord"> <input placeholder="{% trans 'TTL' %}" type="number" min="0" max="86400" class="form-control" ng-model="ttl" 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 spfRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('SPF')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- SPF Record box -------------> <!------------- TXT Record box -------------> <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 txtRecord"> <input placeholder="{% trans 'TTL' %}" type="number" min="0" max="86400" class="form-control" ng-model="ttl" 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 txtRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('TXT')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- TXT Record box -------------> <!------------- SOA 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 soaRecord"> <input placeholder="{% trans 'TTL' %}" type="number" min="0" max="86400" 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 soaRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('SOA')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- SOA Record box -------------> <!------------- NS 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 nsRecord"> <input placeholder="{% trans 'TTL' %}" type="number" min="0" max="86400" 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 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" min="0" max="86400" 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" min="0" max="86400" 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 style="margin: 0px; padding: 0px" class="table"> <thead> <tr> <th>{% trans "Type" %}</th> <th>{% trans "Name" %}</th> <th style="width: 100px;">{% trans "TTL" %}</th> <th>{% trans "Value" %}</th> <th style="width: 87px;">{% trans "Priority" %}</th> <th>{% trans "Actions" %}</th> </tr> </thead> <tbody> <tr ng-repeat="record in records track by $index"> <td ng-bind="record.type"></td> <td><input ng-change="setupContent(record.id, 'name', nameNow)" ng-model="nameNow" type="text" class="form-control" ng-value="record.name"> </td> <td><input ng-change="setupContent(record.id, 'ttl', ttlNow)" ng-model="ttlNow" type="number" class="form-control" ng-value="record.ttl"></td> <td><input ng-change="setupContent(record.id, 'content', contentNow)" ng-model="contentNow" type="text" class="form-control" ng-value="record.content"></td> <td><input ng-change="setupContent(record.id, 'priority', priorityNow)" type="number" class="form-control" ng-model="priorityNow" ng-value="record.priority"></td> <td> <button type="button" ng-click="saveNow(record.id)" class="btn btn-round btn-blue-alt"> <i class="glyph-icon icon-save"></i> </button> <img ng-click="deleteRecord(record.id)" 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> {% endif %} </div> </div> </div> </div> {% endblock %} configureDefaultNameServers.html 0000644 00000007045 15030541703 0013077 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Configure Default Nameserver - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <!-- Current language: {{ LANGUAGE_CODE }} --> <div class="container"> <div id="page-title"> <h2>{% trans "Configure Default Nameserver" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2> <p>{% trans "You can use this page to setup nameservers using which people on the internet can resolve websites hosted on this server." %}</p> </div> <div ng-controller="configureDefaultNameservers" class="panel"> <div class="panel-body"> <h3 class="content-box-header"> {% trans "Details" %} <img ng-hide="cyberPanelLoading" src="{% static 'images/loading.gif' %}"> </h3> <div class="example-box-wrapper"> {% if not status %} <div class="col-md-12 text-center" style="margin-bottom: 2%;"> <h3>{% trans "PowerDNS is disabled." %} <a href="{% url 'managePowerDNS' %}"><button class="btn btn-alt btn-hover btn-blue-alt"> <span>{% trans "Enable Now" %}</span> <i class="glyph-icon icon-arrow-right"></i> </button></a></h3> </div> {% else %} <form action="/" class="form-horizontal bordered-row panel-body"> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "First Nameserver" %}</label> <div ng-init="firstNS='{{ firstNS }}'" class="col-sm-6"> <input name="firstNS" type="text" class="form-control" ng-model="firstNS" required> </div> <div class="current-pack">ns1.example.com</div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "Second Nameserver" %}</label> <div ng-init="secondNS='{{ secondNS }}'" class="col-sm-6"> <input name="secondNS" type="text" class="form-control" ng-model="secondNS" required> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "Third Nameserver" %} </label> <div ng-init="thirdNS='{{ thirdNS }}'" class="col-sm-6"> <input name="thirdNS" type="text" class="form-control" ng-model="thirdNS" required> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "Forth Nameserver" %}</label> <div ng-init="forthNS='{{ forthNS }}'" class="col-sm-6"> <input name="forthNS" type="text" class="form-control" ng-model="forthNS" required> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-4"> <button type="button" ng-click="saveNSConfigurations()" class="btn btn-primary btn-lg">{% trans "Save" %}</button> </div> </div> </form> {% endif %} </div> </div> </div> </div> {% endblock %} index.html 0000644 00000013101 15030541703 0006533 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "DNS Functions - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <!-- Current language: {{ LANGUAGE_CODE }} --> <div class="container"> <div id="page-title"> <h2>{% trans "DNS Functions" %}</h2> <p>{% trans "Create, edit and delete DNS zones on this page." %}</p> </div> <div class="panel col-md-11"> <div class="panel-body"> <h3 class="content-box-header"> {% trans "Available Functions" %} </h3> <div class="example-box-wrapper"> {% if type == 3 %} <div class="row"> <div class="col-md-3 btn-min-width"> <a href="{% url 'createDNSZone' %}" title="{% trans 'Create DNS Zone' %}" class="tile-box tile-box-shortcut btn-primary"> <div class="tile-header"> {% trans "Create DNS Zone" %} </div> <div class="tile-content-wrapper"> <i class="glyph-icon icon-dashboard"></i> </div> </a> </div> <div class="col-md-3 btn-min-width"> <a href="{% url 'deleteDNSZone' %}" title="{% trans 'Delete Zone' %}" class="tile-box tile-box-shortcut btn-primary"> <div class="tile-header"> {% trans "Delete Zone" %} </div> <div class="tile-content-wrapper"> <i class="glyph-icon icon-dashboard"></i> </div> </a> </div> <div class="col-md-3 btn-min-width"> <a href="{% url 'addDeleteDNSRecords' %}" title="{% trans 'Add Delete Records' %}" class="tile-box tile-box-shortcut btn-primary"> <div class="tile-header"> {% trans "Add Delete/Records" %} </div> <div class="tile-content-wrapper"> <i class="glyph-icon icon-dashboard"></i> </div> </a> </div> </div> {% else %} <div class="row"> <div class="col-md-3 btn-min-width"> <a href="{% url 'createNameserver' %}" title="{% trans 'Create Nameserver' %}" class="tile-box tile-box-shortcut btn-primary"> <div class="tile-header"> {% trans "Create Nameserver" %} </div> <div class="tile-content-wrapper"> <i class="fa fa-server"></i> </div> </a> </div> <div class="col-md-3 btn-min-width"> <a href="{% url 'createDNSZone' %}" title="{% trans 'Create DNS Zone' %}" class="tile-box tile-box-shortcut btn-primary"> <div class="tile-header"> {% trans "Create DNS Zone" %} </div> <div class="tile-content-wrapper"> <i class="fa fa-globe"></i> </div> </a> </div> <div class="col-md-3 btn-min-width"> <a href="{% url 'deleteDNSZone' %}" title="{% trans 'Delete Zone' %}" class="tile-box tile-box-shortcut btn-primary"> <div class="tile-header"> {% trans "Delete Zone" %} </div> <div class="tile-content-wrapper"> <i class="fa fa-trash"></i> </div> </a> </div> <div class="col-md-3 btn-min-width"> <a href="{% url 'addDeleteDNSRecords' %}" title="{% trans 'Add Delete Records' %}" class="tile-box tile-box-shortcut btn-primary"> <div class="tile-header"> {% trans "Add Delete/Records" %} </div> <div class="tile-content-wrapper"> <i class="fa fa-folder-open"></i> </div> </a> </div> </div> {% endif %} </div> </div> </div> </div> {% endblock %} deleteDNSZone.html 0000644 00000007224 15030541703 0010100 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Delete DNS Zone - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <!-- Current language: {{ LANGUAGE_CODE }} --> <div class="container"> <div id="page-title"> <h2>{% trans "Delete DNS Zone" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2> <p>{% trans "This page can be used to delete DNS Zone. Deleting the DNS zone will remove all its related records as well." %}</p> </div> <div class="panel"> <div class="panel-body"> <h3 class="content-box-header"> {% trans "Delete DNS Zone" %} </h3> <div ng-controller="deleteDNSZone" class="example-box-wrapper"> {% if not status %} <div class="col-md-12 text-center" style="margin-bottom: 2%;"> <h3>{% trans "PowerDNS is disabled." %} <a href="{% url 'managePowerDNS' %}"><button class="btn btn-alt btn-hover btn-blue-alt"> <span>{% trans "Enable Now" %}</span> <i class="glyph-icon icon-arrow-right"></i> </button></a></h3> </div> {% else %} <form action="/" class="form-horizontal bordered-row panel-body"> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "Select Zone" %}</label> <div class="col-sm-6"> <select ng-model="selectedZone" class="form-control"> {% for items in domainsList %} <option>{{ items }}</option> {% endfor %} </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="deleteZone()" class="btn btn-primary btn-lg">{% trans "Delete Zone" %}</button> </div> </div> <div ng-hide="deleteZoneButton" class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-4"> <button type="button" ng-click="deleteZoneFinal()" class="btn btn-primary btn-lg btn-block">{% trans "Are you sure?" %}</button> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-6"> <div ng-hide="deleteFailure" class="alert alert-danger"> <p>{% trans "Cannot delete zone. Error message: " %}{$ errorMessage $}</p> </div> <div ng-hide="deleteSuccess" class="alert alert-success"> <p>{% trans "Zone for domain:" %} <strong>{$ deletedZone $}</strong> {% trans "is successfully erased." %}</p> </div> <div ng-hide="couldNotConnect" class="alert alert-danger"> <p>{% trans "Could not connect to server. Please refresh this page." %}</p> </div> </div> </div> </form> {% endif %} </div> </div> </div> </div> {% endblock %} addDeleteDNSRecordsCloudFlare.html 0000644 00000112715 15030541703 0013142 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Add/Modify DNS Records - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <!-- Current language: {{ LANGUAGE_CODE }} --> <div class="container"> <div id="page-title"> <h2>{% trans "Add/Modify DNS Zone" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2> <p>{% trans "On this page you can add/modify dns records for domains whose dns zone is already created." %}</p> </div> <div ng-controller="addModifyDNSRecordsCloudFlare" class="panel"> <div class="panel-body"> <h3 class="content-box-header"> {% trans "Add Records" %} <img ng-hide="recordsLoading" src="{% static 'images/loading.gif' %}"> </h3> <div class="example-box-wrapper"> {% if not status %} <div class="col-md-12 text-center" style="margin-bottom: 2%;"> <h3>{% trans "PowerDNS is disabled." %} <a href="{% url 'managePowerDNS' %}"> <button class="btn btn-alt btn-hover btn-blue-alt"> <span>{% trans "Enable Now" %}</span> <i class="glyph-icon icon-arrow-right"></i> </button> </a></h3> </div> {% else %} {% if not CloudFlare %} <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 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 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> {% else %} <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> </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"> <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 cNameRecord"> <input placeholder="{% trans 'Domain Name' %}" type="text" class="form-control" ng-model="recordContentCNAME" 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 -------------> <!------------- MX 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-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-2 mxRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('MX')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- CNAME Record box -------------> <!------------- SPF 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 spfRecord"> <input placeholder="{% trans 'TTL' %}" type="number" class="form-control" ng-model="ttl" 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 spfRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('SPF')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- SPF Record box -------------> <!------------- TXT Record box -------------> <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 txtRecord"> <input placeholder="{% trans 'TTL' %}" type="number" class="form-control" ng-model="ttl" 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 txtRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('TXT')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- TXT Record box -------------> <!------------- SOA 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 soaRecord"> <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 soaRecord"> <button style="width: 100%;" type="button" ng-click="addDNSRecord('SOA')" class="btn btn-primary">{% trans "Add" %}</button> </div> <!------------- SOA Record box -------------> <!------------- NS 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 nsRecord"> <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 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 "Proxy" %}</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> <input ng-click="enableProxy(record.name, record.proxy)" ng-disabled="!record.proxiable" ng-checked="record.proxy" type="checkbox" ng-true-value="true" ng-false-value="false" data-toggle="toggle"> </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> </div> <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 %} {% endif %} </div> </div> </div> </div> {% endblock %} createNameServer.html 0000644 00000011771 15030541703 0010672 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Create Nameserver - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <!-- Current language: {{ LANGUAGE_CODE }} --> <div class="container"> <div id="page-title"> <h2>{% trans "Create Nameserver" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2> <p>{% trans "You can use this page to setup nameservers using which people on the internet can resolve websites hosted on this server." %}</p> </div> <div ng-controller="createNameserver" class="panel"> <div class="panel-body"> <h3 class="content-box-header"> {% trans "Details" %} <img ng-hide="createNameserverLoading" src="{% static 'images/loading.gif' %}"> </h3> <div class="example-box-wrapper"> {% if not status %} <div class="col-md-12 text-center" style="margin-bottom: 2%;"> <h3>{% trans "PowerDNS is disabled." %} <a href="{% url 'managePowerDNS' %}"><button class="btn btn-alt btn-hover btn-blue-alt"> <span>{% trans "Enable Now" %}</span> <i class="glyph-icon icon-arrow-right"></i> </button></a></h3> </div> {% else %} <form action="/" class="form-horizontal bordered-row panel-body"> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "Domain Name" %}</label> <div class="col-sm-6"> <input name="dom" type="text" class="form-control" ng-model="domainForNS" required> </div> <div class="current-pack">example.com</div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "First Nameserver" %}</label> <div class="col-sm-6"> <input name="firstNS" type="text" class="form-control" ng-model="firstNS" required> </div> <div class="current-pack">ns1.example.com</div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "IP Address" %}</label> <div class="col-sm-6"> <input value="IP Address for first nameserver." name="firstNSIP" type="text" class="form-control" ng-model="firstNSIP" required> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "Second Nameserver (Backup)" %} </label> <div class="col-sm-6"> <input name="secondNS" type="text" class="form-control" ng-model="secondNS" required> </div> <div class="current-pack">ns2.example.com</div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "IP Address" %}</label> <div class="col-sm-6"> <input name="secondNSIP" type="text" class="form-control" ng-model="secondNSIP" required> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-4"> <button type="button" ng-click="createNameserverFunc()" class="btn btn-primary btn-lg">{% trans "Create Nameserver" %}</button> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-6"> <div ng-hide="nameserverCreationFailed" class="alert alert-danger"> <p>{% trans "Nameserver cannot be created. Error message:" %} {$ errorMessage $}</p> </div> <div ng-hide="nameserverCreated" class="alert alert-success"> <p>{% trans "The following nameservers were successfully created:" %} <br> <strong>{$ nameServerOne $}</strong> <br> <strong>{$ nameServerTwo $}</strong> <br> </p> </div> <div ng-hide="couldNotConnect" class="alert alert-danger"> <p>{% trans "Could not connect to server. Please refresh this page." %}</p> </div> </div> </div> </form> {% endif %} </div> </div> </div> </div> {% endblock %} createDNSZone.html 0000644 00000006415 15030541703 0010102 0 ustar 00 {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Create DNS Zone - CyberPanel" %}{% endblock %} {% block content %} {% load static %} {% get_current_language as LANGUAGE_CODE %} <!-- Current language: {{ LANGUAGE_CODE }} --> <div class="container"> <div id="page-title"> <h2>{% trans "Create DNS Zone" %} - <a target="_blank" href="http://go.cyberpanel.net/dns-records" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "DNS Docs" %}</span></a></h2> <p>{% trans "This page is used to create DNS zone, to edit dns zone you can visit Modify DNS Zone Page." %}</p> </div> <div ng-controller="createDNSZone" class="panel"> <div class="panel-body"> <h3 class="content-box-header"> {% trans "Details" %} <img ng-hide="createDNSZoneLoading" src="{% static 'images/loading.gif' %}"> </h3> <div class="example-box-wrapper"> {% if not status %} <div class="col-md-12 text-center" style="margin-bottom: 2%;"> <h3>{% trans "PowerDNS is disabled." %} <a href="{% url 'managePowerDNS' %}"><button class="btn btn-alt btn-hover btn-blue-alt"> <span>{% trans "Enable Now" %}</span> <i class="glyph-icon icon-arrow-right"></i> </button></a></h3> </div> {% else %} <form action="/" class="form-horizontal bordered-row panel-body"> <div class="form-group"> <label class="col-sm-3 control-label">{% trans "Domain Name" %}</label> <div class="col-sm-6"> <input name="dom" type="text" class="form-control" ng-model="zoneDomain" required> </div> <div class="current-pack">example.com</div> </div> <div class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-4"> <button type="button" ng-click="createDNSZone()" class="btn btn-primary btn-lg">{% trans "Create DNS Zone" %}</button> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label"></label> <div class="col-sm-4"> <div ng-hide="dnsZoneCreationFailed" class="alert alert-danger"> <p>{% trans "Cannot create DNS Zone. Error message:" %} {$ errorMessage $}</p> </div> <div ng-hide="dnsZoneCreated" class="alert alert-success"> <p>{% trans "DNS Zone for domain:" %} <strong>{$ zoneDomain $}</strong> created<br> </p> </div> <div ng-hide="couldNotConnect" class="alert alert-danger"> <p>{% trans "Could not connect to server. Please refresh this page." %}</p> </div> </div> </div> </form> {% endif %} </div> </div> </div> </div> {% endblock %} dns.js 0000644 00000110544 15030563306 0005674 0 ustar 00 /** * Created by usman on 8/1/17. */ /* Java script code to create NS */ app.controller('createNameserver', function ($scope, $http) { $scope.createNameserverLoading = true; $scope.nameserverCreationFailed = true; $scope.nameserverCreated = true; $scope.couldNotConnect = true; $scope.createNameserverFunc = function () { var domainForNS = $scope.domainForNS; var ns1 = $scope.firstNS; var ns2 = $scope.secondNS; var firstNSIP = $scope.firstNSIP; var secondNSIP = $scope.secondNSIP; url = "/dns/NSCreation"; var data = { domainForNS: domainForNS, ns1: ns1, ns2: ns2, firstNSIP: firstNSIP, secondNSIP: secondNSIP, }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.NSCreation === 1) { $scope.createNameserverLoading = true; $scope.nameserverCreationFailed = true; $scope.nameserverCreated = false; $scope.couldNotConnect = true; $scope.nameServerTwo = $scope.firstNS; $scope.nameServerOne = $scope.secondNS; } else { $scope.createNameserverLoading = true; $scope.nameserverCreationFailed = false; $scope.nameserverCreated = true; $scope.couldNotConnect = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.createNameserverLoading = true; $scope.nameserverCreationFailed = true; $scope.nameserverCreated = true; $scope.couldNotConnect = false; } }; }); /* Java script code to create NS ends here */ /* Java script code to create DNS Zone */ app.controller('createDNSZone', function ($scope, $http) { $scope.createDNSZoneLoading = true; $scope.dnsZoneCreationFailed = true; $scope.dnsZoneCreated = true; $scope.couldNotConnect = true; $scope.createDNSZone = function () { var zoneDomain = $scope.zoneDomain; url = "/dns/zoneCreation"; var data = { zoneDomain: zoneDomain, }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.zoneCreation === 1) { $scope.createDNSZoneLoading = true; $scope.dnsZoneCreationFailed = true; $scope.dnsZoneCreated = false; $scope.couldNotConnect = true; $scope.zoneDomain = $scope.zoneDomain; } else { $scope.createDNSZoneLoading = true; $scope.dnsZoneCreationFailed = false; $scope.dnsZoneCreated = true; $scope.couldNotConnect = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.createDNSZoneLoading = true; $scope.dnsZoneCreationFailed = true; $scope.dnsZoneCreated = true; $scope.couldNotConnect = false; } }; }); /* Java script code to delete DNS Zone */ /* Java script code to create DNS Zone */ app.controller('addModifyDNSRecords', function ($scope, $http) { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; $scope.recordValueDefault = false; // Hide records boxes $(".aaaaRecord").hide(); $(".cNameRecord").hide(); $(".mxRecord").hide(); $(".txtRecord").hide(); $(".spfRecord").hide(); $(".nsRecord").hide(); $(".soaRecord").hide(); $(".srvRecord").hide(); $(".caaRecord").hide(); var currentSelection = "aRecord"; $("#" + currentSelection).addClass("active"); $scope.fetchRecordsTabs = function (recordType) { $("#" + currentSelection).removeClass("active"); $("." + currentSelection).hide(); $scope.recordsLoading = false; currentSelection = recordType; $("#" + currentSelection).addClass("active"); $("." + currentSelection).show(); populateCurrentRecords(); }; $scope.fetchRecords = function () { $scope.recordsLoading = false; $scope.addRecordsBox = false; populateCurrentRecords(); }; $scope.addDNSRecord = function (type) { $scope.recordsLoading = false; url = "/dns/addDNSRecord"; // Record specific values var data = {}; if (type === "MX") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentMX = $scope.recordContentMX; data.priority = $scope.priority; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "A") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentA = $scope.recordContentA; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "AAAA") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentAAAA = $scope.recordContentAAAA; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "CNAME") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentCNAME = $scope.recordContentCNAME; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "SPF") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentSPF = $scope.recordContentSPF; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "SOA") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.selectedZone; data.recordContentSOA = $scope.recordContentSOA; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "TXT") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentTXT = $scope.recordContentTXT; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "NS") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.selectedZone; data.recordContentNS = $scope.recordContentNS; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "SRV") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentSRV = $scope.recordContentSRV; data.priority = $scope.priority; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "CAA") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentCAA = $scope.recordContentCAA; data.ttl = $scope.ttl; data.recordType = type; } var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.add_status === 1) { populateCurrentRecords(); $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = false; $scope.couldNotConnect = true; $scope.couldNotAddRecord = true; $scope.recordsLoading = true; } else { $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.couldNotAddRecord = false; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.couldNotAddRecord = true; } }; function populateCurrentRecords() { var selectedZone = $scope.selectedZone; url = "/dns/getCurrentRecordsForDomain"; var data = { selectedZone: selectedZone, currentSelection: currentSelection }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.fetchStatus === 1) { $scope.records = JSON.parse(response.data.data); $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.couldNotAddRecord = true; $scope.domainFeteched = $scope.selectedZone; } else { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = false; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.couldNotAddRecord = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.couldNotAddRecord = true; } }; var globalID = null; var nameNow = null; var ttlNow = null; var contentNow = null; var priorityNow = null; $scope.setupContent = function (id, type, content) { if (globalID === null) { globalID = id; } else { if (globalID !== id) { globalID = id; nameNow = null; ttlNow = null; contentNow = null; priorityNow = null; } } if (type === 'name') { nameNow = content; } else if (type === 'ttl') { ttlNow = content; } else if (type === 'content') { contentNow = content; } else if (type === 'priority') { priorityNow = content; } }; $scope.saveNow = function (id) { if (id !== globalID) { alert('This record is not changed'); return; } $scope.recordsLoading = false; url = "/dns/updateRecord"; var data = { selectedZone: $scope.selectedZone, id: globalID, nameNow: nameNow, ttlNow: ttlNow, contentNow: contentNow, priorityNow: priorityNow, }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { $scope.recordsLoading = true; if (response.data.status === 1) { new PNotify({ title: 'Success!', text: 'Record updated.', type: 'success' }); } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, type: 'error' }); } } function cantLoadInitialDatas(response) { $scope.recordsLoading = true; new PNotify({ title: 'Operation Failed!', text: 'Could not connect to server, please refresh this page', type: 'error' }); } }; $scope.deleteRecord = function (id) { var selectedZone = $scope.selectedZone; url = "/dns/deleteDNSRecord"; var data = { id: id, }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.delete_status == 1) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = false; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; populateCurrentRecords(); } else { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = false; $scope.couldNotAddRecord = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; } }; } ); /* Java script code to delete DNS Zone */ /* Java script code to delete DNS Zone */ app.controller('deleteDNSZone', function ($scope, $http) { $scope.deleteZoneButton = true; $scope.deleteFailure = true; $scope.deleteSuccess = true; $scope.couldNotConnect = true; $scope.deleteZone = function () { $scope.deleteZoneButton = false; $scope.deleteFailure = true; $scope.deleteSuccess = true; }; $scope.deleteZoneFinal = function () { var zoneDomain = $scope.selectedZone; url = "/dns/submitZoneDeletion"; var data = { zoneDomain: zoneDomain, }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.delete_status == 1) { $scope.deleteZoneButton = true; $scope.deleteFailure = true; $scope.deleteSuccess = false; $scope.couldNotConnect = true; $scope.deletedZone = $scope.selectedZone; } else { $scope.deleteZoneButton = true; $scope.deleteFailure = false; $scope.deleteSuccess = true; $scope.couldNotConnect = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.deleteZoneButton = true; $scope.deleteFailure = true; $scope.deleteSuccess = true; $scope.couldNotConnect = false; } }; }); /* Java script code to delete DNS Zone */ /* Java script code to create NS */ app.controller('configureDefaultNameservers', function ($scope, $http) { $scope.cyberPanelLoading = true; $scope.saveNSConfigurations = function () { $scope.cyberPanelLoading = false; url = "/dns/saveNSConfigurations"; var data = { firstNS: $scope.firstNS, secondNS: $scope.secondNS, thirdNS: $scope.thirdNS, forthNS: $scope.forthNS, }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { $scope.cyberPanelLoading = true; if (response.data.status === 1) { new PNotify({ title: 'Success!', text: 'Default nameservers saved.', type: 'success' }); } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, type: 'error' }); } } function cantLoadInitialDatas(response) { $scope.cyberPanelLoading = true; new PNotify({ title: 'Operation Failed!', text: 'Could not connect to server, please refresh this page', type: 'error' }); } }; }); /* Java script code to create NS ends here */ /* Java script code for CloudFlare */ app.controller('addModifyDNSRecordsCloudFlare', function ($scope, $http, $window) { $scope.saveCFConfigs = function () { $scope.recordsLoading = false; url = "/dns/saveCFConfigs"; var data = { cfEmail: $scope.cfEmail, cfToken: $scope.cfToken, cfSync: $scope.cfSync, }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { $scope.recordsLoading = true; if (response.data.status === 1) { new PNotify({ title: 'Success', text: 'Changes successfully saved.', type: 'success' }); $window.location.reload(); } else { new PNotify({ title: 'Operation Failed!', text: response.data.error_message, type: 'error' }); } } function cantLoadInitialDatas(response) { $scope.recordsLoading = true; new PNotify({ title: 'Operation Failed!', text: 'Could not connect to server, please refresh this page', type: 'error' }); } }; //// $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; $scope.recordValueDefault = false; // Hide records boxes $(".aaaaRecord").hide(); $(".cNameRecord").hide(); $(".mxRecord").hide(); $(".txtRecord").hide(); $(".spfRecord").hide(); $(".nsRecord").hide(); $(".soaRecord").hide(); $(".srvRecord").hide(); $(".caaRecord").hide(); var currentSelection = "aRecord"; $("#" + currentSelection).addClass("active"); $scope.fetchRecordsTabs = function (recordType) { $("#" + currentSelection).removeClass("active"); $("." + currentSelection).hide(); $scope.recordsLoading = false; currentSelection = recordType; $("#" + currentSelection).addClass("active"); $("." + currentSelection).show(); populateCurrentRecords(); }; $scope.fetchRecords = function () { $scope.recordsLoading = false; $scope.addRecordsBox = false; populateCurrentRecords(); }; $scope.addDNSRecord = function (type) { $scope.recordsLoading = false; url = "/dns/addDNSRecordCloudFlare"; // Record specific values var data = {}; if (type === "MX") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentMX = $scope.recordContentMX; data.priority = $scope.priority; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "A") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentA = $scope.recordContentA; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "AAAA") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentAAAA = $scope.recordContentAAAA; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "CNAME") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentCNAME = $scope.recordContentCNAME; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "SPF") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentSPF = $scope.recordContentSPF; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "SOA") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.selectedZone; data.recordContentSOA = $scope.recordContentSOA; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "TXT") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentTXT = $scope.recordContentTXT; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "NS") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.selectedZone; data.recordContentNS = $scope.recordContentNS; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "SRV") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentSRV = $scope.recordContentSRV; data.priority = $scope.priority; data.ttl = $scope.ttl; data.recordType = type; } else if (type === "CAA") { data.selectedZone = $scope.selectedZone; data.recordName = $scope.recordName; data.recordContentCAA = $scope.recordContentCAA; data.ttl = $scope.ttl; data.recordType = type; } var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.add_status === 1) { populateCurrentRecords(); $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = false; $scope.couldNotConnect = true; $scope.couldNotAddRecord = true; $scope.recordsLoading = true; } else { $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.couldNotAddRecord = false; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.couldNotAddRecord = true; } }; function populateCurrentRecords() { var selectedZone = $scope.selectedZone; url = "/dns/getCurrentRecordsForDomainCloudFlare"; var data = { selectedZone: selectedZone, currentSelection: currentSelection }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.fetchStatus === 1) { $scope.records = JSON.parse(response.data.data); $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.couldNotAddRecord = true; $scope.domainFeteched = $scope.selectedZone; } else { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = false; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.couldNotAddRecord = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.couldNotAddRecord = true; } } $scope.deleteRecord = function (id) { var selectedZone = $scope.selectedZone; url = "/dns/deleteDNSRecordCloudFlare"; var data = { selectedZone: selectedZone, id: id }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.delete_status == 1) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = false; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; populateCurrentRecords(); } else { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = false; $scope.couldNotAddRecord = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; } }; $scope.syncCF = function () { $scope.recordsLoading = false; var selectedZone = $scope.selectedZone; url = "/dns/syncCF"; var data = { selectedZone: selectedZone }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { if (response.data.status === 1) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = false; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; populateCurrentRecords(); } else { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = false; $scope.couldNotAddRecord = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; } }; $scope.enableProxy = function (name, value) { $scope.recordsLoading = false; var selectedZone = $scope.selectedZone; url = "/dns/enableProxy"; var data = { selectedZone: selectedZone, name: name, value: value }; var config = { headers: { 'X-CSRFToken': getCookie('csrftoken') } }; $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); function ListInitialDatas(response) { populateCurrentRecords(); if (response.data.status === 1) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = false; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; populateCurrentRecords(); } else { $scope.addRecordsBox = true; $scope.currentRecords = true; $scope.canNotFetchRecords = true; $scope.recordsFetched = false; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = true; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = false; $scope.couldNotAddRecord = true; $scope.errorMessage = response.data.error_message; } } function cantLoadInitialDatas(response) { $scope.addRecordsBox = false; $scope.currentRecords = false; $scope.canNotFetchRecords = true; $scope.recordsFetched = true; $scope.recordDeleted = true; $scope.recordAdded = true; $scope.couldNotConnect = false; $scope.recordsLoading = true; $scope.recordDeleted = true; $scope.couldNotDeleteRecords = true; $scope.couldNotAddRecord = true; } }; }); /* Java script code for CloudFlare */
| ver. 1.4 |
Github
|
.
| PHP 8.2.28 | Generation time: 0.03 |
proxy
|
phpinfo
|
Settings