Skip to content

Commit f11fd19

Browse files
committed
fix v-model issue for IssueCert switch
1 parent b5f20c6 commit f11fd19

File tree

6 files changed

+53
-17
lines changed

6 files changed

+53
-17
lines changed

frontend/src/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"1.5.0","build_id":32,"total_build":102}
1+
{"version":"1.5.0","build_id":40,"total_build":110}

frontend/src/views/domain/DomainEdit.vue

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,14 @@ function disable() {
104104
message.error(interpolate($gettext('Failed to disable %{msg}'), {msg: r.message ?? ''}))
105105
})
106106
}
107+
108+
function on_change_enabled(checked: boolean) {
109+
if (checked) {
110+
enable()
111+
} else {
112+
disable()
113+
}
114+
}
107115
</script>
108116
<template>
109117
<div>
@@ -138,7 +146,7 @@ function disable() {
138146

139147
<div class="domain-edit-container" key="basic" v-else>
140148
<a-form-item :label="$gettext('Enabled')">
141-
<a-switch v-model:checked="enabled" @change="checked=>{checked?enable():disable()}"/>
149+
<a-switch v-model:checked="enabled" @change="on_change_enabled"/>
142150
</a-form-item>
143151
<ngx-config-editor
144152
ref="ngx_config_editor"

frontend/src/views/domain/cert/Cert.vue

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {computed, ref} from 'vue'
55
66
const props = defineProps(['directivesMap', 'current_server_directives', 'enabled'])
77
8-
const emit = defineEmits(['callback'])
8+
const emit = defineEmits(['callback', 'update:enabled'])
99
1010
const info = ref(null)
1111
@@ -22,6 +22,16 @@ function callback() {
2222
const name = computed(() => {
2323
return props.directivesMap['server_name'][0].params.trim()
2424
})
25+
26+
const enabled = computed({
27+
get() {
28+
return props.enabled
29+
},
30+
set(value) {
31+
emit('update:enabled', value)
32+
}
33+
})
34+
2535
</script>
2636

2737
<template>
@@ -30,7 +40,7 @@ const name = computed(() => {
3040
<issue-cert
3141
:current_server_directives="props.current_server_directives"
3242
:directives-map="props.directivesMap"
33-
v-model:enabled="props.enabled"
43+
v-model:enabled="enabled"
3444
@callback="callback"
3545
/>
3646
</div>

frontend/src/views/domain/cert/IssueCert.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,15 @@ const name = computed(() => {
125125
return props.directivesMap['server_name'][0].params.trim()
126126
})
127127
128+
const enabled = computed({
129+
get() {
130+
return props.enabled
131+
},
132+
set(value) {
133+
emit('update:enabled', value)
134+
}
135+
})
136+
128137
watch(server_name_more_than_one, () => {
129138
emit('update:enabled', false)
130139
onchange(false)

frontend/src/views/domain/ngx_conf/NgxConfigEditor.vue

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
import DirectiveEditor from '@/views/domain/ngx_conf/directive/DirectiveEditor.vue'
33
import LocationEditor from '@/views/domain/ngx_conf/LocationEditor.vue'
44
import {computed, ref} from 'vue'
5-
import {useRoute, useRouter} from 'vue-router'
5+
import {useRoute} from 'vue-router'
66
import {useGettext} from 'vue3-gettext'
77
import Cert from '@/views/domain/cert/Cert.vue'
88
99
const {$gettext} = useGettext()
1010
11-
const {ngx_config, auto_cert, enabled} = defineProps(['ngx_config', 'auto_cert', 'enabled'])
11+
const props = defineProps(['ngx_config', 'auto_cert', 'enabled'])
1212
13-
const emit = defineEmits(['callback'])
13+
const emit = defineEmits(['callback', 'update:auto_cert'])
1414
1515
const route = useRoute()
1616
@@ -20,13 +20,13 @@ const name = ref(route.params.name)
2020
function change_tls(r: any) {
2121
if (r) {
2222
// deep copy servers[0] to servers[1]
23-
const server = JSON.parse(JSON.stringify(ngx_config.servers[0]))
23+
const server = JSON.parse(JSON.stringify(props.ngx_config.servers[0]))
2424
25-
ngx_config.servers.push(server)
25+
props.ngx_config.servers.push(server)
2626
2727
current_server_index.value = 1
2828
29-
const servers = ngx_config.servers
29+
const servers = props.ngx_config.servers
3030
3131
let i = 0
3232
while (i < servers[1].directives.length) {
@@ -67,14 +67,14 @@ function change_tls(r: any) {
6767
} else {
6868
// remove servers[1]
6969
current_server_index.value = 0
70-
if (ngx_config.servers.length === 2) {
71-
ngx_config.servers.splice(1, 1)
70+
if (props.ngx_config.servers.length === 2) {
71+
props.ngx_config.servers.splice(1, 1)
7272
}
7373
}
7474
}
7575
7676
const current_server_directives = computed(() => {
77-
return ngx_config.servers[current_server_index.value].directives
77+
return props.ngx_config.servers[current_server_index.value].directives
7878
})
7979
8080
const directivesMap = computed(() => {
@@ -94,7 +94,7 @@ const directivesMap = computed(() => {
9494
9595
9696
const support_ssl = computed(() => {
97-
const servers = ngx_config.servers
97+
const servers = props.ngx_config.servers
9898
for (const server_key in servers) {
9999
for (const k in servers[server_key].directives) {
100100
const v = servers[server_key].directives[k]
@@ -119,6 +119,15 @@ const current_support_ssl = computed(() => {
119119
120120
})
121121
122+
const autoCertRef = computed({
123+
get() {
124+
return props.auto_cert
125+
},
126+
set(value) {
127+
emit('update:auto_cert', value)
128+
}
129+
})
130+
122131
</script>
123132

124133
<template>
@@ -128,15 +137,15 @@ const current_support_ssl = computed(() => {
128137
</a-form-item>
129138

130139
<a-tabs v-model:activeKey="current_server_index">
131-
<a-tab-pane :tab="'Server '+(k+1)" v-for="(v,k) in ngx_config.servers" :key="k">
140+
<a-tab-pane :tab="'Server '+(k+1)" v-for="(v,k) in props.ngx_config.servers" :key="k">
132141

133142
<div class="tab-content">
134143
<template v-if="current_support_ssl&&enabled">
135144
<cert
136145
v-if="current_support_ssl"
137146
:current_server_directives="current_server_directives"
138147
:directives-map="directivesMap"
139-
v-model:enabled="auto_cert"
148+
v-model:enabled="autoCertRef"
140149
@callback="$emit('callback')"
141150
/>
142151
</template>

frontend/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":"1.5.0","build_id":32,"total_build":102}
1+
{"version":"1.5.0","build_id":40,"total_build":110}

0 commit comments

Comments
 (0)