diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2023-03-24 20:45:45 +0000 |
|---|---|---|
| committer | David Siegfried <david.siegfried@uni-vechta.de> | 2023-03-24 20:45:45 +0000 |
| commit | 92683e73396d7a457f8f9e2789cc9612d588c4f5 (patch) | |
| tree | 3a3780b7dbe5790305943b30030fc4acb9c3afc4 /resources | |
| parent | 6721569c1a5325840cac1adfc1b7a80fa183737a (diff) | |
do not open iframe with invalid url and show hint in vue component, fixes #2169, fixes #2168
Closes #2169 and #2168
Merge request studip/studip!1640
Diffstat (limited to 'resources')
| -rw-r--r-- | resources/vue/components/questionnaires/QuestionnaireInfoEdit.vue | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/resources/vue/components/questionnaires/QuestionnaireInfoEdit.vue b/resources/vue/components/questionnaires/QuestionnaireInfoEdit.vue index 57d6c13..bc5e829 100644 --- a/resources/vue/components/questionnaires/QuestionnaireInfoEdit.vue +++ b/resources/vue/components/questionnaires/QuestionnaireInfoEdit.vue @@ -2,7 +2,8 @@ <div class="vote_edit"> <label> {{ $gettext('Link eines Videos oder einer anderen Informationsseite (optional)') }} - <input type="text" v-model="val_clone.url" ref="autofocus"> + <input type="url" v-model="val_clone.url" ref="infoUrl" + @input="checkValidity()"> </label> <div class="formpart"> @@ -24,7 +25,7 @@ export default { value: { type: Object, required: false, - default: function () { + default() { return { url: '', description: '' @@ -36,14 +37,26 @@ export default { required: false } }, - data: function () { + data () { return { - val_clone: '' + val_clone: this.value, }; }, - mounted: function () { - this.val_clone = this.value; - this.$refs.autofocus.focus(); + methods: { + checkValidity() { + this.$refs.infoUrl.setCustomValidity(''); + + if (!this.$refs.infoUrl.checkValidity()) { + this.$refs.infoUrl.setCustomValidity( + this.$gettext('Der eingegebene Link ist nicht korrekt und wird nicht angezeigt werden.') + ); + this.$refs.infoUrl.reportValidity(); + } + } + }, + mounted() { + this.$refs.infoUrl.focus(); + this.checkValidity(); }, watch: { value (new_val) { |
