mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-02-06 13:40:06 +00:00
ddns: store configuation in database (#435)
* ddns: store configuation in database Co-authored-by: nap0o <144927971+nap0o@users.noreply.github.com> * feat: split domain with soa lookup * switch to libdns interface * ddns: add unit test * ddns: skip TestSplitDomainSOA on ci network is not steady * fix error handling * fix error handling --------- Co-authored-by: nap0o <144927971+nap0o@users.noreply.github.com>
This commit is contained in:
79
resource/template/component/ddns.html
vendored
Normal file
79
resource/template/component/ddns.html
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
{{define "component/ddns"}}
|
||||
<div class="ui tiny ddns modal transition hidden">
|
||||
<div class="header">Add</div>
|
||||
<div class="content">
|
||||
<form id="ddnsForm" class="ui form">
|
||||
<input type="hidden" name="ID">
|
||||
<div class="field">
|
||||
<label>{{tr "Name"}}</label>
|
||||
<input type="text" name="Name">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "DDNSProvider"}}</label>
|
||||
<select name="Provider" class="ui fluid dropdown" id="providerSelect" onchange="toggleFields()">
|
||||
{{ range $provider := .ProviderList }}
|
||||
<option value="{{ $provider.ID }}">
|
||||
{{ $provider.Name }}
|
||||
</option>
|
||||
{{ end }}
|
||||
</select>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "DDNSDomains"}}</label>
|
||||
<input type="text" name="DomainsRaw" placeholder="www.example.com">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "DDNSAccessID"}}</label>
|
||||
<input type="text" name="AccessID" placeholder="{{tr "DDNSTokenID"}}">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "DDNSAccessSecret"}}</label>
|
||||
<input type="text" name="AccessSecret" placeholder="{{tr "DDNSTokenSecret"}}">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "MaxRetries"}}</label>
|
||||
<input type="number" name="MaxRetries" placeholder="3">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "WebhookURL"}}</label>
|
||||
<input type="text" name="WebhookURL" placeholder="https://ddns.example.com/?record=#record#">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "WebhookMethod"}}</label>
|
||||
<select name="WebhookMethod" class="ui fluid dropdown">
|
||||
<option value="1">GET</option>
|
||||
<option value="2">POST</option>
|
||||
<option value="3">PATCH</option>
|
||||
<option value="4">DELETE</option>
|
||||
<option value="5">PUT</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "WebhookHeaders"}}</label>
|
||||
<textarea name="WebhookHeaders" placeholder='{"User-Agent":"Nezha-Agent"}'></textarea>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "WebhookRequestBody"}}</label>
|
||||
<textarea name="WebhookRequestBody" placeholder='{ "ip": #ip#, "domain": "#domain#" }'></textarea>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="ui enableipv4 checkbox">
|
||||
<input name="EnableIPv4" type="checkbox" tabindex="0" class="hidden">
|
||||
<label>{{tr "EnableIPv4"}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="ui enableipv6 checkbox">
|
||||
<input name="EnableIPv6" type="checkbox" tabindex="0" class="hidden">
|
||||
<label>{{tr "EnableIPv6"}}</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<div class="ui negative button">{{tr "Cancel"}}</div>
|
||||
<button class="ui positive nezha-primary-btn right labeled icon button">{{tr "Confirm"}}<i class="checkmark icon"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
31
resource/template/component/server.html
vendored
31
resource/template/component/server.html
vendored
@@ -21,37 +21,26 @@
|
||||
<input type="text" name="secret">
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="ui hideforguest checkbox">
|
||||
<input name="HideForGuest" type="checkbox" tabindex="0" class="hidden" />
|
||||
<label>{{tr "HideForGuest"}}</label>
|
||||
<label>{{tr "DDNSProfiles"}}</label>
|
||||
<div class="ui fluid multiple ddns search selection dropdown">
|
||||
<input type="hidden" name="DDNSProfilesRaw">
|
||||
<i class="dropdown icon ddnsProfiles"></i>
|
||||
<div class="default text">{{tr "EnterIdAndNameToSearch"}}</div>
|
||||
<div class="menu"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="ui enableddns checkbox">
|
||||
<input name="EnableDDNS" type="checkbox" tabindex="0" />
|
||||
<input name="EnableDDNS" type="checkbox" tabindex="0" class="hidden" />
|
||||
<label>{{tr "EnableDDNS"}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="ui enableipv4 checkbox">
|
||||
<input name="EnableIPv4" type="checkbox" tabindex="0" />
|
||||
<label>{{tr "EnableIPv4"}}</label>
|
||||
<div class="ui hideforguest checkbox">
|
||||
<input name="HideForGuest" type="checkbox" tabindex="0" class="hidden" />
|
||||
<label>{{tr "HideForGuest"}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="ui enableipv6 checkbox">
|
||||
<input name="EnableIpv6" type="checkbox" tabindex="0" />
|
||||
<label>{{tr "EnableIpv6"}}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "DDNSDomain"}}</label>
|
||||
<input type="text" name="DDNSDomain" placeholder="{{tr "DDNSDomain"}}">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "DDNSProfile"}}</label>
|
||||
<input type="text" name="DDNSProfile" placeholder="{{tr "DDNSProfile"}}">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "Note"}}</label>
|
||||
<textarea name="Note"></textarea>
|
||||
|
||||
Reference in New Issue
Block a user