From 66445d5c6c998e3e9d9c75b49d30b8ed6ac29922 Mon Sep 17 00:00:00 2001 From: Gasper Grom Date: Wed, 15 Feb 2023 10:14:28 +0100 Subject: [PATCH 1/5] Fix update button disable & select style --- frontend/src/assets/scss/form/select.scss | 5 +- .../list/eagle-eye-email-digest-drawer.vue | 76 ++++++++++++------- .../list/eagle-eye-settings-drawer.vue | 15 +++- 3 files changed, 60 insertions(+), 36 deletions(-) diff --git a/frontend/src/assets/scss/form/select.scss b/frontend/src/assets/scss/form/select.scss index ae28831194..92f6a185dd 100644 --- a/frontend/src/assets/scss/form/select.scss +++ b/frontend/src/assets/scss/form/select.scss @@ -69,8 +69,7 @@ } // Selected icon for single selection -.el-select-dropdown - .el-select-dropdown__item.selected::after { +.el-select-dropdown .el-select-dropdown__item:not(.no-checkmark).selected::after { content: ''; position: absolute; top: 50%; @@ -117,7 +116,7 @@ } // Select dropdown item selected - &.selected { + &.selected, &.selected.hover { @apply font-medium bg-brand-50 text-gray-900; } diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue index 7836f32a1b..b12fecef21 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue @@ -29,10 +29,11 @@ label-position="top" class="form pt-6 pb-10" :rules="rules" - :model="model" + :model="form" @submit.prevent="doSubmit" > @@ -43,7 +44,7 @@ > @@ -54,7 +55,7 @@ >Frequency Time (UTC) @@ -222,6 +223,7 @@ type="primary" class="btn btn--md btn--primary" :loading="loadingUpdateSettings" + :disabled="!isFormValid || !hasFormChanged" @click="doSubmit(formRef)" >Update @@ -248,6 +250,7 @@ import { } from '@/shared/vuex/vuex.helpers' import Message from '@/shared/message/message' import platformOptions from '@/premium/eagle-eye/constants/eagle-eye-platforms.json' +import Schema from 'async-validator' const props = defineProps({ modelValue: { @@ -268,25 +271,16 @@ const rules = { required: true, message: 'This field is required', trigger: 'blur' - } - ], - frequency: [ + }, { - required: true, - message: 'This field is required', - trigger: 'blur' - } - ], - time: [ - { - required: true, - message: 'This field is required', + type: 'email', + message: 'Enter valid email', trigger: 'blur' } ] } -const model = reactive({ +const form = reactive({ frequency: 'daily', time: '09:00', updateResults: true @@ -294,6 +288,10 @@ const model = reactive({ const active = ref(false) const formRef = ref() +const emailRef = ref() + +const tempForm = ref('') +const tempActive = ref(false) const drawerModel = computed({ get() { @@ -304,10 +302,25 @@ const drawerModel = computed({ } }) +const isFormValid = computed(() => { + const emailRegex = + /^(([^<>()\\[\].,;:\s@"]+(\.[^<>()\\[\].,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/ + return ( + form.email.length > 0 && form.email.match(emailRegex) + ) +}) + +const hasFormChanged = computed(() => { + return ( + tempForm.value !== JSON.stringify(form) || + active.value !== tempActive.value + ) +}) + const feed = ref(null) const results = computed(() => { - if (!model.updateResults) { + if (!form.updateResults) { if (currentUser.value && feed.value) { return feed.value } @@ -316,7 +329,7 @@ const results = computed(() => { }) const displayFeedWarning = computed(() => { - if (model.updateResults) { + if (form.updateResults) { return false } if ( @@ -349,26 +362,30 @@ const updateFeed = () => { const fillForm = (user) => { const { eagleEyeSettings } = user active.value = eagleEyeSettings.emailDigestActive || false - model.email = + form.email = eagleEyeSettings.emailDigest?.email || user.email - model.frequency = + form.frequency = eagleEyeSettings.emailDigest?.frequency || 'daily' - model.time = eagleEyeSettings.emailDigest?.time || '09:00' - model.updateResults = !eagleEyeSettings.emailDigest + form.time = eagleEyeSettings.emailDigest?.time || '09:00' + form.updateResults = !eagleEyeSettings.emailDigest ? true : eagleEyeSettings.emailDigest?.matchFeedSettings feed.value = user.eagleEyeSettings.emailDigest.feed + + tempForm.value = JSON.stringify(form) + tempActive.value = + eagleEyeSettings.emailDigestActive || false } const doSubmit = async (formEl) => { if (!formEl) return await formEl.validate((valid) => { if (valid) { const data = { - email: model.email, - frequency: model.frequency, - time: model.time, - matchFeedSettings: model.updateResults, - feed: !model.updateResults ? feed.value : undefined + email: form.email, + frequency: form.frequency, + time: form.time, + matchFeedSettings: form.updateResults, + feed: !form.updateResults ? feed.value : undefined } doUpdateSettings({ ...currentUser.value.eagleEyeSettings, @@ -389,6 +406,7 @@ const handleCancel = () => { } onMounted(() => { + console.log(Schema) fillForm(currentUser.value) }) diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue index 83db052560..e7fd1db789 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue @@ -46,7 +46,7 @@
Cancel - Update @@ -268,6 +267,8 @@ const rules = reactive({ ] }) +const tempForm = ref('') + const form = reactive({ include: [], exclude: [], @@ -286,6 +287,10 @@ const isFormValid = computed(() => { return includeValid && platformsValid }) +const hasFormChanged = computed(() => { + return tempForm.value !== JSON.stringify(form) +}) + const drawerModel = computed({ get() { return props.modelValue @@ -331,6 +336,7 @@ const fillForm = (user) => { } const { eagleEyeSettings } = user const { feed } = eagleEyeSettings + form.include = [ ...feed.keywords.map((keyword) => ({ keyword, @@ -350,6 +356,7 @@ const fillForm = (user) => { }) form.datePublished = feed.publishedDate + tempForm.value = JSON.stringify(form) } const onSubmit = async (formEl) => { From c3858cd05a77297d9c4171978047d8bf9bb22d46 Mon Sep 17 00:00:00 2001 From: Gasper Grom Date: Wed, 15 Feb 2023 10:18:12 +0100 Subject: [PATCH 2/5] Remove async validator import --- .../eagle-eye/components/list/eagle-eye-email-digest-drawer.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue index b12fecef21..67d6391dba 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue @@ -250,7 +250,6 @@ import { } from '@/shared/vuex/vuex.helpers' import Message from '@/shared/message/message' import platformOptions from '@/premium/eagle-eye/constants/eagle-eye-platforms.json' -import Schema from 'async-validator' const props = defineProps({ modelValue: { @@ -406,7 +405,6 @@ const handleCancel = () => { } onMounted(() => { - console.log(Schema) fillForm(currentUser.value) }) From 9f3595e6fe3bd3b749096f6f3dbad886bdbfc4d1 Mon Sep 17 00:00:00 2001 From: Gasper Grom Date: Wed, 15 Feb 2023 14:38:31 +0100 Subject: [PATCH 3/5] Migrate to new validation model --- frontend/package-lock.json | 118 ++++++++++ frontend/package.json | 2 + .../eagle-eye-platforms-drawers.vue | 80 +++++++ .../form/eagle-eye-settings-include.vue | 94 ++++++++ .../list/eagle-eye-email-digest-drawer.vue | 218 ++++++++---------- .../list/eagle-eye-settings-drawer.vue | 174 +++----------- .../components/list/eagle-eye-settings.vue | 6 + frontend/src/shared/form/form-change.js | 19 ++ frontend/src/shared/form/form-item.vue | 84 +++++++ 9 files changed, 528 insertions(+), 267 deletions(-) create mode 100644 frontend/src/premium/eagle-eye/components/eagle-eye-platforms-drawers.vue create mode 100644 frontend/src/premium/eagle-eye/components/form/eagle-eye-settings-include.vue create mode 100644 frontend/src/shared/form/form-change.js create mode 100644 frontend/src/shared/form/form-item.vue diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2c2861b579..5bda31163a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -15,6 +15,8 @@ "@tiptap/extension-placeholder": "^2.0.0-beta.199", "@tiptap/starter-kit": "^2.0.0-beta.199", "@tiptap/vue-3": "^2.0.0-beta.199", + "@vuelidate/core": "^2.0.0", + "@vuelidate/validators": "^2.0.0", "@vueuse/core": "^9.7.0", "apollo-boost": "^0.4.9", "axios": "^0.22.0", @@ -4055,6 +4057,90 @@ "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", "dev": true }, + "node_modules/@vuelidate/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/core/-/core-2.0.0.tgz", + "integrity": "sha512-xIFgdQlScO0aaSZ0wTGPJh8YcTMNAj5veI8yPgiAyxOT+GV7vNQFiU1vpYWCL4cklkkhYvRRSC2OEX7YOZNmPQ==", + "dependencies": { + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^2.0.0 || >=3.0.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vuelidate/core/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vuelidate/validators": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/validators/-/validators-2.0.0.tgz", + "integrity": "sha512-fQQcmDWfz7pyH5/JPi0Ng2GEgNK1pUHn/Z/j5rG/Q+HwhgIXvJblTPcZwKOj1ABL7V4UVuGKECvZCDHNGOwdrg==", + "dependencies": { + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^2.0.0 || >=3.0.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vuelidate/validators/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@vueuse/core": { "version": "9.7.0", "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.7.0.tgz", @@ -18790,6 +18876,38 @@ "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", "dev": true }, + "@vuelidate/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/core/-/core-2.0.0.tgz", + "integrity": "sha512-xIFgdQlScO0aaSZ0wTGPJh8YcTMNAj5veI8yPgiAyxOT+GV7vNQFiU1vpYWCL4cklkkhYvRRSC2OEX7YOZNmPQ==", + "requires": { + "vue-demi": "^0.13.11" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, + "@vuelidate/validators": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/validators/-/validators-2.0.0.tgz", + "integrity": "sha512-fQQcmDWfz7pyH5/JPi0Ng2GEgNK1pUHn/Z/j5rG/Q+HwhgIXvJblTPcZwKOj1ABL7V4UVuGKECvZCDHNGOwdrg==", + "requires": { + "vue-demi": "^0.13.11" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, "@vueuse/core": { "version": "9.7.0", "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.7.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index afcb4f6ee6..a795fbbfd1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,6 +25,8 @@ "@tiptap/extension-placeholder": "^2.0.0-beta.199", "@tiptap/starter-kit": "^2.0.0-beta.199", "@tiptap/vue-3": "^2.0.0-beta.199", + "@vuelidate/core": "^2.0.0", + "@vuelidate/validators": "^2.0.0", "@vueuse/core": "^9.7.0", "apollo-boost": "^0.4.9", "axios": "^0.22.0", diff --git a/frontend/src/premium/eagle-eye/components/eagle-eye-platforms-drawers.vue b/frontend/src/premium/eagle-eye/components/eagle-eye-platforms-drawers.vue new file mode 100644 index 0000000000..379a25d679 --- /dev/null +++ b/frontend/src/premium/eagle-eye/components/eagle-eye-platforms-drawers.vue @@ -0,0 +1,80 @@ + + + diff --git a/frontend/src/premium/eagle-eye/components/form/eagle-eye-settings-include.vue b/frontend/src/premium/eagle-eye/components/form/eagle-eye-settings-include.vue new file mode 100644 index 0000000000..b89ac5b8a4 --- /dev/null +++ b/frontend/src/premium/eagle-eye/components/form/eagle-eye-settings-include.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue index 67d6391dba..ed539ebf87 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-email-digest-drawer.vue @@ -20,87 +20,77 @@

- +
-
+
- - - - -
- + + + - + Daily +
+

+ From Monday to Friday (results from + previous day) +

+
+ - -
- Daily -
-

- From Monday to Friday (results from - previous day) -

-
- +

-

- Weekly -
-

- Every Monday (results from previous - week) -

-
-
- - - + Every Monday (results from previous + week) +

+ + + +
-
-
+ Update email results based on your current @@ -223,8 +213,8 @@ type="primary" class="btn btn--md btn--primary" :loading="loadingUpdateSettings" - :disabled="!isFormValid || !hasFormChanged" - @click="doSubmit(formRef)" + :disabled="$v.$invalid || !hasFormChanged" + @click="doSubmit()" >Update @@ -250,6 +240,10 @@ import { } from '@/shared/vuex/vuex.helpers' import Message from '@/shared/message/message' import platformOptions from '@/premium/eagle-eye/constants/eagle-eye-platforms.json' +import { email, required } from '@vuelidate/validators' +import useVuelidate from '@vuelidate/core' +import AppFormItem from '@/shared/form/form-item.vue' +import formChangeDetector from '@/shared/form/form-change' const props = defineProps({ modelValue: { @@ -265,32 +259,25 @@ const { loadingUpdateSettings } = mapState('eagleEye') const emit = defineEmits(['update:modelValue']) const rules = { - email: [ - { - required: true, - message: 'This field is required', - trigger: 'blur' - }, - { - type: 'email', - message: 'Enter valid email', - trigger: 'blur' - } - ] + email: { + required, + email + } } const form = reactive({ + active: false, + email: '', frequency: 'daily', time: '09:00', updateResults: true }) +const { hasFormChanged, formSnapshot } = + formChangeDetector(form) -const active = ref(false) -const formRef = ref() -const emailRef = ref() +const $v = useVuelidate(rules, form) -const tempForm = ref('') -const tempActive = ref(false) +const formRef = ref() const drawerModel = computed({ get() { @@ -301,21 +288,6 @@ const drawerModel = computed({ } }) -const isFormValid = computed(() => { - const emailRegex = - /^(([^<>()\\[\].,;:\s@"]+(\.[^<>()\\[\].,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/ - return ( - form.email.length > 0 && form.email.match(emailRegex) - ) -}) - -const hasFormChanged = computed(() => { - return ( - tempForm.value !== JSON.stringify(form) || - active.value !== tempActive.value - ) -}) - const feed = ref(null) const results = computed(() => { @@ -360,7 +332,7 @@ const updateFeed = () => { const fillForm = (user) => { const { eagleEyeSettings } = user - active.value = eagleEyeSettings.emailDigestActive || false + form.active = eagleEyeSettings.emailDigestActive || false form.email = eagleEyeSettings.emailDigest?.email || user.email form.frequency = @@ -371,33 +343,29 @@ const fillForm = (user) => { : eagleEyeSettings.emailDigest?.matchFeedSettings feed.value = user.eagleEyeSettings.emailDigest.feed - tempForm.value = JSON.stringify(form) - tempActive.value = - eagleEyeSettings.emailDigestActive || false + formSnapshot() } -const doSubmit = async (formEl) => { - if (!formEl) return - await formEl.validate((valid) => { - if (valid) { - const data = { - email: form.email, - frequency: form.frequency, - time: form.time, - matchFeedSettings: form.updateResults, - feed: !form.updateResults ? feed.value : undefined - } - doUpdateSettings({ - ...currentUser.value.eagleEyeSettings, - emailDigestActive: active.value, - emailDigest: data - }).then(() => { - Message.success( - 'Email Digest settings successfully updated' - ) - emit('update:modelValue', false) - }) +const doSubmit = async () => { + $v.value.$touch() + if (!$v.value.$invalid) { + const data = { + email: form.email, + frequency: form.frequency, + time: form.time, + matchFeedSettings: form.updateResults, + feed: !form.updateResults ? feed.value : undefined } - }) + doUpdateSettings({ + ...currentUser.value.eagleEyeSettings, + emailDigestActive: form.active, + emailDigest: data + }).then(() => { + Message.success( + 'Email Digest settings successfully updated' + ) + emit('update:modelValue', false) + }) + } } const handleCancel = () => { diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue index e7fd1db789..68fffda173 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue @@ -6,7 +6,7 @@ Keywords - +

*

-
-
- - - - + - - -
- Semantic match -
-

- Results semantically related -

-
- -
- Exact match -
-

- Results containing the keyword -

-
-
-
-
- - - -
+ + + +

- - +

@@ -176,7 +120,7 @@ type="primary" class="btn btn--md btn--primary" :loading="loadingUpdateSettings" - :disabled="!isFormValid || !hasFormChanged" + :disabled="$v.$invalid || !hasFormChanged" @click="onSubmit(formRef)" >Update @@ -186,7 +130,6 @@ diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue index 749a514908..a8728f8276 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue @@ -72,6 +72,12 @@ + + + + From 6c134cf86bdb340b9bb48f6153c6acb813b1188e Mon Sep 17 00:00:00 2001 From: Gasper Grom Date: Wed, 15 Feb 2023 16:33:39 +0100 Subject: [PATCH 4/5] Add default values and platform message --- .../components/list/eagle-eye-settings-drawer.vue | 6 +++++- .../components/onboard/eagle-eye-platforms-step.vue | 6 +++++- frontend/src/premium/eagle-eye/eagle-eye-routes.js | 6 ++++++ .../premium/eagle-eye/pages/eagle-eye-onboard-page.vue | 9 +++++++-- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue index 68fffda173..a44b7dd21d 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings-drawer.vue @@ -92,7 +92,7 @@ > Date published -
+
@@ -101,6 +101,10 @@
+

+ For better results, we recommend choosing at + least 3 platforms. +

diff --git a/frontend/src/premium/eagle-eye/components/onboard/eagle-eye-platforms-step.vue b/frontend/src/premium/eagle-eye/components/onboard/eagle-eye-platforms-step.vue index b06138f996..e7e08b4fbb 100644 --- a/frontend/src/premium/eagle-eye/components/onboard/eagle-eye-platforms-step.vue +++ b/frontend/src/premium/eagle-eye/components/onboard/eagle-eye-platforms-step.vue @@ -20,12 +20,16 @@
-
+
Platforms *
+

+ For better results, we recommend choosing at least 3 + platforms. +

{ + console.log('/eagle-eye') // Redirect to onboard page if user is not onboarded if (await isEagleEyeFeatureEnabled()) { const currentUser = store.getters['auth/currentUser'] + console.log( + !currentUser.eagleEyeSettings?.onboarded + ) if (!currentUser.eagleEyeSettings?.onboarded) { next('/eagle-eye/onboard') + return } } @@ -92,6 +97,7 @@ export default [ // Redirect to onboard page if user is not onboarded if (currentUser.eagleEyeSettings?.onboarded) { next('/eagle-eye') + return } next() diff --git a/frontend/src/premium/eagle-eye/pages/eagle-eye-onboard-page.vue b/frontend/src/premium/eagle-eye/pages/eagle-eye-onboard-page.vue index c2a478230c..29bc5b3093 100644 --- a/frontend/src/premium/eagle-eye/pages/eagle-eye-onboard-page.vue +++ b/frontend/src/premium/eagle-eye/pages/eagle-eye-onboard-page.vue @@ -51,6 +51,7 @@ import EagleEyeKeywords from '@/premium/eagle-eye/components/onboard/eagle-eye-k import EagleEyePlatforms from '@/premium/eagle-eye/components/onboard/eagle-eye-platforms-step.vue' import EagleEyeSummary from '@/premium/eagle-eye/components/onboard/eagle-eye-summary-step.vue' import publishedDateOptions from '@/premium/eagle-eye/constants/eagle-eye-date-published.json' +import platformOptions from '@/premium/eagle-eye/constants/eagle-eye-platforms.json' import ConfirmDialog from '@/shared/dialog/confirm-dialog.js' import { mapActions } from '@/shared/vuex/vuex.helpers' import { useStore } from 'vuex' @@ -61,14 +62,18 @@ const router = useRouter() const { doUpdateSettings } = mapActions('eagleEye') const step = ref(1) + const form = reactive({ keywords: [ { value: null } ], - datePublished: publishedDateOptions[0].label, - platforms: {} + datePublished: publishedDateOptions[1].label, + platforms: Object.keys(platformOptions).reduce((a, b) => { + a[b] = true + return a + }, {}) }) const headerContent = computed(() => { From 14298bdaa902602cfa569aa97db620267e3b1e5b Mon Sep 17 00:00:00 2001 From: Gasper Grom Date: Wed, 15 Feb 2023 16:45:32 +0100 Subject: [PATCH 5/5] Remove console logs & naming --- .../eagle-eye/components/list/eagle-eye-settings.vue | 6 ------ frontend/src/premium/eagle-eye/eagle-eye-routes.js | 4 ---- 2 files changed, 10 deletions(-) diff --git a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue index a8728f8276..749a514908 100644 --- a/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue +++ b/frontend/src/premium/eagle-eye/components/list/eagle-eye-settings.vue @@ -72,12 +72,6 @@
- -