mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
reflect changes made to AdressInputSelect to views
This commit is contained in:
parent
bb34b82d49
commit
59908a46ed
3 changed files with 25 additions and 17 deletions
|
@ -29,7 +29,7 @@ export default {
|
||||||
id: { type: String, default: null },
|
id: { type: String, default: null },
|
||||||
state: { type: null, default: null },
|
state: { type: null, default: null },
|
||||||
feedbackId: { type: String, default: null },
|
feedbackId: { type: String, default: null },
|
||||||
defaultOption: { type: String, default: null }
|
defaultOption: { type: Number, default: 0 }
|
||||||
},
|
},
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
|
@ -49,12 +49,16 @@ export default {
|
||||||
return this.value.split(this.separator)[0]
|
return this.value.split(this.separator)[0]
|
||||||
},
|
},
|
||||||
set (value) {
|
set (value) {
|
||||||
|
// FIXME, ugly hack since the `reactiveOption` v-model isn't set when `value` change
|
||||||
|
if (this.reactiveOption !== this.option) {
|
||||||
|
this.option = this.reactiveOption
|
||||||
|
}
|
||||||
this.input = value
|
this.input = value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
reactiveOption: {
|
reactiveOption: {
|
||||||
get () {
|
get () {
|
||||||
return this.value.split(this.separator)[1] || this.options[0]
|
return this.value.split(this.separator)[1] || this.options[this.defaultOption]
|
||||||
},
|
},
|
||||||
set (value) {
|
set (value) {
|
||||||
// FIXME, ugly hack since the `reactiveInput` v-model isn't set when `value` change
|
// FIXME, ugly hack since the `reactiveInput` v-model isn't set when `value` change
|
||||||
|
|
|
@ -52,9 +52,9 @@
|
||||||
|
|
||||||
<!-- USER EMAIL -->
|
<!-- USER EMAIL -->
|
||||||
<b-form-group label-cols="auto" :label="$t('user_email')" label-for="input-email">
|
<b-form-group label-cols="auto" :label="$t('user_email')" label-for="input-email">
|
||||||
<splitted-mail-input
|
<adress-input-select
|
||||||
id="input-email" feedback="email-feedback"
|
id="input-email" feedback-id="email-feedback"
|
||||||
v-model="form.mail" :domains="domains"
|
v-model="form.mail" :options="domains"
|
||||||
:state="isValid.mail" @input="validateEmail"
|
:state="isValid.mail" @input="validateEmail"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BasicForm from '@/components/BasicForm'
|
import BasicForm from '@/components/BasicForm'
|
||||||
import SplittedMailInput from '@/components/SplittedMailInput'
|
import AdressInputSelect from '@/components/AdressInputSelect'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserCreate',
|
name: 'UserCreate',
|
||||||
|
@ -209,7 +209,7 @@ export default {
|
||||||
this.$store.dispatch('FETCH_ALL', [{ uri: 'domains' }, { uri: 'users' }])
|
this.$store.dispatch('FETCH_ALL', [{ uri: 'domains' }, { uri: 'users' }])
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
SplittedMailInput,
|
AdressInputSelect,
|
||||||
BasicForm
|
BasicForm
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,10 +42,11 @@
|
||||||
|
|
||||||
<!-- USER EMAIL -->
|
<!-- USER EMAIL -->
|
||||||
<b-form-group label-cols="auto" :label="$t('user_email')" label-for="input-email">
|
<b-form-group label-cols="auto" :label="$t('user_email')" label-for="input-email">
|
||||||
<splitted-mail-input
|
<adress-input-select
|
||||||
id="input-email" feedback="email-feedback"
|
id="input-email" feedback-id="email-feedback"
|
||||||
v-model="form.mail" :domains="domains"
|
v-model="form.mail" :options="domains"
|
||||||
:state="isValid.mail" @input="validateEmail"
|
:state="isValid.mail" @input="validateEmail"
|
||||||
|
:placeholder="$t('placeholder.username')"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<b-form-invalid-feedback id="email-feedback" :state="isValid.mail">
|
<b-form-invalid-feedback id="email-feedback" :state="isValid.mail">
|
||||||
|
@ -70,10 +71,10 @@
|
||||||
<!-- MAIL ALIASES -->
|
<!-- MAIL ALIASES -->
|
||||||
<hr>
|
<hr>
|
||||||
<b-form-group label-cols="auto" :label="$t('user_emailaliases')" class="mail-list">
|
<b-form-group label-cols="auto" :label="$t('user_emailaliases')" class="mail-list">
|
||||||
<splitted-mail-input
|
<adress-input-select
|
||||||
v-for="(alias, index) in form['mail-aliases']" :key="index"
|
v-for="(alias, index) in form['mail-aliases']" :key="index"
|
||||||
feedback="mail-aliases-feedback"
|
v-model="form['mail-aliases'][index]" :options="domains"
|
||||||
v-model="form['mail-aliases'][index]" :domains="domains"
|
:placeholder="$t('placeholder.username')"
|
||||||
/>
|
/>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
|
|
||||||
|
@ -125,7 +126,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BasicForm from '@/components/BasicForm'
|
import BasicForm from '@/components/BasicForm'
|
||||||
import SplittedMailInput from '@/components/SplittedMailInput'
|
import AdressInputSelect from '@/components/AdressInputSelect'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserEdit',
|
name: 'UserEdit',
|
||||||
|
@ -170,6 +171,7 @@ export default {
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onSubmit () {
|
onSubmit () {
|
||||||
|
console.log(this.form['mail-aliases'])
|
||||||
for (const key in this.isValid) {
|
for (const key in this.isValid) {
|
||||||
if (this.isValid[key] === false) return
|
if (this.isValid[key] === false) return
|
||||||
}
|
}
|
||||||
|
@ -211,9 +213,10 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
validateEmail () {
|
validateEmail (mail) {
|
||||||
// FIXME check allowed characters
|
// FIXME check allowed characters
|
||||||
const isValid = this.form.mail.split('@')[0].match('^[A-Za-z0-9-_]+$')
|
console.log('validate', mail)
|
||||||
|
const isValid = mail.split('@')[0].match('^[A-Za-z0-9-_]+$')
|
||||||
this.error.mail = isValid ? '' : this.$i18n.t('form_errors.email_syntax')
|
this.error.mail = isValid ? '' : this.$i18n.t('form_errors.email_syntax')
|
||||||
this.isValid.mail = isValid ? null : false
|
this.isValid.mail = isValid ? null : false
|
||||||
},
|
},
|
||||||
|
@ -233,6 +236,7 @@ export default {
|
||||||
this.form.firstname = userData.firstname
|
this.form.firstname = userData.firstname
|
||||||
this.form.lastname = userData.lastname
|
this.form.lastname = userData.lastname
|
||||||
this.form.mail = userData.mail
|
this.form.mail = userData.mail
|
||||||
|
console.log('fetch', this.form.mail)
|
||||||
this.form['mail-aliases'] = userData['mail-aliases'] ? [...userData['mail-aliases'], ''] : ['']
|
this.form['mail-aliases'] = userData['mail-aliases'] ? [...userData['mail-aliases'], ''] : ['']
|
||||||
this.form['mail-forward'] = userData['mail-forward'] ? [...userData['mail-forward'], ''] : ['']
|
this.form['mail-forward'] = userData['mail-forward'] ? [...userData['mail-forward'], ''] : ['']
|
||||||
if (userData['mailbox-quota'].limit !== 'No quota') {
|
if (userData['mailbox-quota'].limit !== 'No quota') {
|
||||||
|
@ -241,7 +245,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
SplittedMailInput,
|
AdressInputSelect,
|
||||||
BasicForm
|
BasicForm
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue