Add basic clientside validation for polls
This commit is contained in:
parent
e817b5b5a4
commit
f243739954
|
@ -1,4 +1,5 @@
|
||||||
import * as DateUtils from 'src/services/date_utils/date_utils.js'
|
import * as DateUtils from 'src/services/date_utils/date_utils.js'
|
||||||
|
import { uniq } from 'lodash'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PollForm',
|
name: 'PollForm',
|
||||||
|
@ -105,8 +106,13 @@ export default {
|
||||||
this.expiryAmount
|
this.expiryAmount
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const options = uniq(this.options.filter(option => option !== ''))
|
||||||
|
if (options.length < 2) {
|
||||||
|
this.$emit('update-poll', { error: this.$t('polls.not_enough_options') })
|
||||||
|
return
|
||||||
|
}
|
||||||
this.$emit('update-poll', {
|
this.$emit('update-poll', {
|
||||||
options: this.options,
|
options,
|
||||||
multiple: this.pollType === 'multiple',
|
multiple: this.pollType === 'multiple',
|
||||||
expiresIn
|
expiresIn
|
||||||
})
|
})
|
||||||
|
|
|
@ -193,6 +193,11 @@ const PostStatusForm = {
|
||||||
},
|
},
|
||||||
hideScopeNotice () {
|
hideScopeNotice () {
|
||||||
return this.$store.state.config.hideScopeNotice
|
return this.$store.state.config.hideScopeNotice
|
||||||
|
},
|
||||||
|
pollContentError () {
|
||||||
|
return this.pollFormVisible &&
|
||||||
|
this.newStatus.poll &&
|
||||||
|
this.newStatus.poll.error
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -261,6 +266,10 @@ const PostStatusForm = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const poll = this.pollFormVisible ? this.newStatus.poll : {}
|
const poll = this.pollFormVisible ? this.newStatus.poll : {}
|
||||||
|
if (this.pollContentError) {
|
||||||
|
this.error = this.pollContentError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
this.posting = true
|
this.posting = true
|
||||||
statusPoster.postStatus({
|
statusPoster.postStatus({
|
||||||
|
|
|
@ -102,7 +102,8 @@
|
||||||
"multiple_choices": "Multiple choices",
|
"multiple_choices": "Multiple choices",
|
||||||
"expiry": "Poll age",
|
"expiry": "Poll age",
|
||||||
"expires_in": "Ends in {0}",
|
"expires_in": "Ends in {0}",
|
||||||
"expired": "Poll ended {0} ago"
|
"expired": "Poll ended {0} ago",
|
||||||
|
"not_enough_options": "Too few unique options in poll"
|
||||||
},
|
},
|
||||||
"interactions": {
|
"interactions": {
|
||||||
"favs_repeats": "Repeats and Favorites",
|
"favs_repeats": "Repeats and Favorites",
|
||||||
|
|
|
@ -66,7 +66,8 @@
|
||||||
"multiple_choices": "Monivalinta",
|
"multiple_choices": "Monivalinta",
|
||||||
"expiry": "Äänestyksen kesto",
|
"expiry": "Äänestyksen kesto",
|
||||||
"expires_in": "Päättyy {0} päästä",
|
"expires_in": "Päättyy {0} päästä",
|
||||||
"expired": "Päättyi {0} sitten"
|
"expired": "Päättyi {0} sitten",
|
||||||
|
"not_enough_option": "Liian vähän uniikkeja vaihtoehtoja äänestyksessä"
|
||||||
},
|
},
|
||||||
"interactions": {
|
"interactions": {
|
||||||
"favs_repeats": "Toistot ja tykkäykset",
|
"favs_repeats": "Toistot ja tykkäykset",
|
||||||
|
|
Loading…
Reference in New Issue