diff options
Diffstat (limited to 'web/html/xui/dns_modal.html')
| -rw-r--r-- | web/html/xui/dns_modal.html | 163 |
1 files changed, 81 insertions, 82 deletions
diff --git a/web/html/xui/dns_modal.html b/web/html/xui/dns_modal.html index 4c85e7f3..0abde2f3 100644 --- a/web/html/xui/dns_modal.html +++ b/web/html/xui/dns_modal.html @@ -1,90 +1,89 @@ {{define "dnsModal"}} -<a-modal id="dns-modal" v-model="dnsModal.visible" :title="dnsModal.title" @ok="dnsModal.ok" - :closable="true" :mask-closable="false" - :ok-text="dnsModal.okText" cancel-text='{{ i18n "close" }}' :class="themeSwitcher.currentTheme"> - <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> - <a-form-item label='{{ i18n "pages.xray.outbound.address" }}'> - <a-input v-model.trim="dnsModal.dnsServer.address"></a-input> - </a-form-item> - <a-form-item label='{{ i18n "pages.xray.dns.domains" }}'> - <a-button size="small" type="primary" @click="dnsModal.dnsServer.domains.push('')">+</a-button> - <template v-for="(domain, index) in dnsModal.dnsServer.domains"> - <a-input v-model.trim="dnsModal.dnsServer.domains[index]"> - <a-button size="small" slot="addonAfter" @click="dnsModal.dnsServer.domains.splice(index,1)">-</a-button> - </a-input> - </template> - </a-form-item> - <a-form-item label='{{ i18n "pages.xray.dns.strategy" }}' v-if="isAdvanced"> - <a-select - v-model="dnsModal.dnsServer.queryStrategy" - style="width: 100%" - :dropdown-class-name="themeSwitcher.currentTheme"> - <a-select-option :value="l" :label="l" v-for="l in ['UseIP', 'UseIPv4', 'UseIPv6']"> - [[ l ]] - </a-select-option> - </a-select> - </a-form-item> - </a-form> +<a-modal id="dns-modal" v-model="dnsModal.visible" :title="dnsModal.title" @ok="dnsModal.ok" :closable="true" :mask-closable="false" :ok-text="dnsModal.okText" cancel-text='{{ i18n "close" }}' :class="themeSwitcher.currentTheme"> + <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> + <a-form-item label='{{ i18n "pages.xray.outbound.address" }}'> + <a-input v-model.trim="dnsModal.dnsServer.address"></a-input> + </a-form-item> + <a-form-item label='{{ i18n "pages.xray.dns.domains" }}'> + <a-button icon="plus" size="small" type="primary" @click="dnsModal.dnsServer.domains.push('')"></a-button> + <template v-for="(domain, index) in dnsModal.dnsServer.domains"> + <a-input v-model.trim="dnsModal.dnsServer.domains[index]"> + <a-button icon="minus" size="small" slot="addonAfter" @click="dnsModal.dnsServer.domains.splice(index,1)"></a-button> + </a-input> + </template> + </a-form-item> + <a-form-item label='{{ i18n "pages.xray.dns.strategy" }}' v-if="isAdvanced"> + <a-select v-model="dnsModal.dnsServer.queryStrategy" style="width: 100%" :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option :value="l" :label="l" v-for="l in ['UseIP', 'UseIPv4', 'UseIPv6']"> [[ l ]] </a-select-option> + </a-select> + </a-form-item> + </a-form> </a-modal> <script> - const dnsModal = { - title: '', - visible: false, - okText: '{{ i18n "confirm" }}', - isEdit: false, - confirm: null, - dnsServer: { + const dnsModal = { + title: '', + visible: false, + okText: '{{ i18n "confirm" }}', + isEdit: false, + confirm: null, + dnsServer: { + address: "localhost", + domains: [], + queryStrategy: 'UseIP', + }, + ok() { + domains = dnsModal.dnsServer.domains.filter(d => d.length > 0); + dnsModal.dnsServer.domains = domains; + newDnsServer = domains.length > 0 ? dnsModal.dnsServer : dnsModal.dnsServer.address; + ObjectUtil.execute(dnsModal.confirm, newDnsServer); + }, + show({ + title = '', + okText = '{{ i18n "confirm" }}', + dnsServer, + confirm = (dnsServer) => {}, + isEdit = false + }) { + this.title = title; + this.okText = okText; + this.confirm = confirm; + this.visible = true; + if (isEdit) { + if (typeof dnsServer == 'object') { + this.dnsServer = dnsServer; + } else { + this.dnsServer = { + address: dnsServer ?? "", + domains: [], + queryStrategy: 'UseIP', + } + } + } else { + this.dnsServer = { address: "localhost", domains: [], queryStrategy: 'UseIP', - }, - ok() { - domains = dnsModal.dnsServer.domains.filter(d => d.length>0); - dnsModal.dnsServer.domains = domains; - newDnsServer = domains.length > 0 ? dnsModal.dnsServer : dnsModal.dnsServer.address; - ObjectUtil.execute(dnsModal.confirm, newDnsServer); - }, - show({ title='', okText='{{ i18n "confirm" }}', dnsServer, confirm=(dnsServer)=>{}, isEdit=false }) { - this.title = title; - this.okText = okText; - this.confirm = confirm; - this.visible = true; - if(isEdit) { - if (typeof dnsServer == 'object'){ - this.dnsServer = dnsServer; - } else { - this.dnsServer = { - address: dnsServer ?? "", - domains: [], - queryStrategy: 'UseIP', - } - } - } else { - this.dnsServer = { - address: "localhost", - domains: [], - queryStrategy: 'UseIP', - } - } - this.isEdit = isEdit; - }, - close() { - dnsModal.visible = false; - }, - }; - - new Vue({ - delimiters: ['[[', ']]'], - el: '#dns-modal', - data: { - dnsModal: dnsModal, - }, - computed: { - isAdvanced: { - get: function () { return dnsModal.dnsServer.domains.length>0 } - } } - }); - + } + this.isEdit = isEdit; + }, + close() { + dnsModal.visible = false; + }, + }; + new Vue({ + delimiters: ['[[', ']]'], + el: '#dns-modal', + data: { + dnsModal: dnsModal, + }, + computed: { + isAdvanced: { + get: function() { + return dnsModal.dnsServer.domains.length > 0 + } + } + } + }); </script> -{{end}} +{{end}}
\ No newline at end of file |
