1
0

dns_presets_modal.html 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. {{define "modals/dnsPresetsModal"}}
  2. <a-modal id="dnsPresets-modal" v-model="dnsPresetsModal.visible" :title="dnsPresetsModal.title" :closable="true"
  3. :mask-closable="false" :footer="null" :class="themeSwitcher.currentTheme">
  4. <a-list class="ant-dns-presets-list" bordered :style="{ width: '100%' }">
  5. <a-list-item v-for="dns in dnsPresetsDatabase" :style="{ padding: '12px 16px' }">
  6. <a-row justify="space-between" align="middle">
  7. <a-col :span="12">
  8. <a-space direction="vertical" size="small">
  9. <span class="ant-dns-presets-list-name">[[ dns.name ]]</span>
  10. <a-tag :color="dns.family ? 'purple' : 'green'">[[ dns.family ? '{{ i18n "pages.xray.dns.dnsPresetFamily" }}' : 'DNS' ]]</a-tag>
  11. </a-space>
  12. </a-col>
  13. <a-col :span="12" :style="{ textAlign: 'right' }">
  14. <a-button type="primary" @click="dnsPresetsModal.install(dns.data)">{{ i18n "install" }}</a-button>
  15. </a-col>
  16. </a-row>
  17. </a-list-item>
  18. </a-list>
  19. </a-modal>
  20. <style>
  21. .dark .ant-dns-presets-list {
  22. border-color: var(--dark-color-stroke)
  23. }
  24. .dark .ant-dns-presets-list-name {
  25. color: var(--dark-color-text-primary);
  26. }
  27. </style>
  28. <script>
  29. const dnsPresetsDatabase = [
  30. {
  31. name: 'Google DNS',
  32. family: false,
  33. data: [
  34. "8.8.8.8",
  35. "8.8.4.4",
  36. "2001:4860:4860::8888",
  37. "2001:4860:4860::8844"
  38. ]
  39. },
  40. {
  41. name: 'Cloudflare DNS',
  42. family: false,
  43. data: [
  44. "1.1.1.1",
  45. "1.0.0.1",
  46. "2606:4700:4700::1111",
  47. "2606:4700:4700::1001"
  48. ]
  49. },
  50. {
  51. name: 'Adguard DNS',
  52. family: false,
  53. data: [
  54. "94.140.14.14",
  55. "94.140.15.15",
  56. "2a10:50c0::ad1:ff",
  57. "2a10:50c0::ad2:ff"
  58. ]
  59. },
  60. {
  61. name: 'Adguard Family DNS',
  62. family: true,
  63. data: [
  64. "94.140.14.14",
  65. "94.140.15.15",
  66. "2a10:50c0::ad1:ff",
  67. "2a10:50c0::ad2:ff"
  68. ]
  69. },
  70. {
  71. name: 'Cloudflare Family DNS',
  72. family: true,
  73. data: [
  74. "1.1.1.3",
  75. "1.0.0.3",
  76. "2606:4700:4700::1113",
  77. "2606:4700:4700::1003"
  78. ]
  79. }
  80. ]
  81. const dnsPresetsModal = {
  82. title: '',
  83. visible: false,
  84. selected: null,
  85. install(selectedPreset) {
  86. return ObjectUtil.execute(dnsPresetsModal.selected, selectedPreset);
  87. },
  88. show({ title = '', selected = (selectedPreset) => { }, isEdit = false }) {
  89. this.title = title;
  90. this.selected = selected;
  91. this.visible = true;
  92. },
  93. close() {
  94. dnsPresetsModal.visible = false;
  95. },
  96. };
  97. new Vue({
  98. delimiters: ['[[', ']]'],
  99. el: '#dnsPresets-modal',
  100. data: {
  101. dnsPresetsModal: dnsPresetsModal,
  102. }
  103. });
  104. </script>
  105. {{end}}