summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_shared/components/recaptcha_modal.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/recaptcha_modal.vue')
-rw-r--r--app/assets/javascripts/vue_shared/components/recaptcha_modal.vue133
1 files changed, 67 insertions, 66 deletions
diff --git a/app/assets/javascripts/vue_shared/components/recaptcha_modal.vue b/app/assets/javascripts/vue_shared/components/recaptcha_modal.vue
index 16d60bb2876..c35621c9ef3 100644
--- a/app/assets/javascripts/vue_shared/components/recaptcha_modal.vue
+++ b/app/assets/javascripts/vue_shared/components/recaptcha_modal.vue
@@ -1,85 +1,86 @@
<script>
-import modal from './modal.vue';
+ import modal from './modal.vue';
-export default {
- name: 'recaptcha-modal',
+ export default {
+ name: 'RecaptchaModal',
- props: {
- html: {
- type: String,
- required: false,
- default: '',
+ components: {
+ modal,
},
- },
- data() {
- return {
- script: {},
- scriptSrc: 'https://www.google.com/recaptcha/api.js',
- };
- },
+ props: {
+ html: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ },
- components: {
- modal,
- },
+ data() {
+ return {
+ script: {},
+ scriptSrc: 'https://www.google.com/recaptcha/api.js',
+ };
+ },
- methods: {
- appendRecaptchaScript() {
- this.removeRecaptchaScript();
+ watch: {
+ html() {
+ this.appendRecaptchaScript();
+ },
+ },
- const script = document.createElement('script');
- script.src = this.scriptSrc;
- script.classList.add('js-recaptcha-script');
- script.async = true;
- script.defer = true;
+ mounted() {
+ window.recaptchaDialogCallback = this.submit.bind(this);
+ },
- this.script = script;
+ methods: {
+ appendRecaptchaScript() {
+ this.removeRecaptchaScript();
- document.body.appendChild(script);
- },
+ const script = document.createElement('script');
+ script.src = this.scriptSrc;
+ script.classList.add('js-recaptcha-script');
+ script.async = true;
+ script.defer = true;
- removeRecaptchaScript() {
- if (this.script instanceof Element) this.script.remove();
- },
+ this.script = script;
- close() {
- this.removeRecaptchaScript();
- this.$emit('close');
- },
+ document.body.appendChild(script);
+ },
- submit() {
- this.$el.querySelector('form').submit();
- },
- },
+ removeRecaptchaScript() {
+ if (this.script instanceof Element) this.script.remove();
+ },
- watch: {
- html() {
- this.appendRecaptchaScript();
- },
- },
+ close() {
+ this.removeRecaptchaScript();
+ this.$emit('close');
+ },
- mounted() {
- window.recaptchaDialogCallback = this.submit.bind(this);
- },
-};
+ submit() {
+ this.$el.querySelector('form').submit();
+ },
+ },
+ };
</script>
<template>
-<modal
- kind="warning"
- class="recaptcha-modal js-recaptcha-modal"
- :hide-footer="true"
- :title="__('Please solve the reCAPTCHA')"
- @cancel="close"
->
- <div slot="body">
- <p>
- {{__('We want to be sure it is you, please confirm you are not a robot.')}}
- </p>
- <div
- ref="recaptcha"
- v-html="html"
- ></div>
- </div>
-</modal>
+ <modal
+ kind="warning"
+ class="recaptcha-modal js-recaptcha-modal"
+ :hide-footer="true"
+ :title="__('Please solve the reCAPTCHA')"
+ @cancel="close"
+ >
+ <div slot="body">
+ <p>
+ {{ __('We want to be sure it is you, please confirm you are not a robot.') }}
+ </p>
+ <div
+ ref="recaptcha"
+ v-html="html"
+ >
+ </div>
+ </div>
+ </modal>
</template>