From a2d90df97cca9e76b86d200c1cb56aae73eaad59 Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Sat, 20 Nov 2021 21:48:49 +0100 Subject: [PATCH] fix: webcam create/edit form validation Signed-off-by: Stefan Dej --- src/components/settings/SettingsWebcamsTab.vue | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/components/settings/SettingsWebcamsTab.vue b/src/components/settings/SettingsWebcamsTab.vue index 50a1e368..95c6631b 100644 --- a/src/components/settings/SettingsWebcamsTab.vue +++ b/src/components/settings/SettingsWebcamsTab.vue @@ -20,7 +20,7 @@ - + {{ form.id === null ? $t("Settings.WebcamsTab.CreateWebcam") : $t("Settings.WebcamsTab.EditWebcam") }} @@ -65,7 +65,7 @@ v-model="form.urlStream" :label="$t('Settings.WebcamsTab.UrlStream')" hide-details="auto" - :rules="[rules.required]" + :rules="form.service !== 'mjpegstreamer-adaptive' ? [rules.required] : []" > @@ -75,7 +75,7 @@ v-model="form.urlSnapshot" :label="$t('Settings.WebcamsTab.UrlSnapshot')" hide-details="auto" - :rules="[rules.requiredMjpegAdaptive]" + :rules="form.service === 'mjpegstreamer-adaptive' ? [rules.required] : []" > @@ -210,10 +210,13 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin) { private rules = { required: (value: string) => value !== '' || this.$t('Settings.WebcamsTab.Required'), - requiredMjpegAdaptive: (value: string) => (value !== '' && this.form.service === 'mjpegstreamer-adaptive') || this.$t('Settings.WebcamsTab.Required'), unique: (value: string) => !this.existsWebcamName(value) || this.$t('Settings.WebcamsTab.NameAlreadyExists'), } + $refs!: { + webcamForm: any + } + get webcams() { return this.$store.getters['gui/webcams/getWebcams'] ?? [] } @@ -278,6 +281,10 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin) { this.form.bool = true this.form.valid = false + + this.$nextTick(() => { + this.$refs.webcamForm?.validate() + }) } saveWebcam() {