From b5a89d82755848f713cd471ec364d4a23f49a957 Mon Sep 17 00:00:00 2001 From: Chirag <103994754+chiragnotionforms@users.noreply.github.com> Date: Sun, 6 Nov 2022 00:15:31 +0530 Subject: [PATCH 1/7] C8292 reset password modal component + check reset screen (#18) * Reset Password Modal Component + Check reset screen * Fix footer font weight Co-authored-by: Julien Nahum --- .../js/components/pages/OpenFormFooter.vue | 2 +- .../js/pages/auth/ForgotPasswordModal.vue | 80 +++++++++++++++++++ resources/js/pages/auth/login.vue | 13 ++- 3 files changed, 90 insertions(+), 5 deletions(-) create mode 100644 resources/js/pages/auth/ForgotPasswordModal.vue diff --git a/resources/js/components/pages/OpenFormFooter.vue b/resources/js/components/pages/OpenFormFooter.vue index fe5d34d..434d122 100644 --- a/resources/js/components/pages/OpenFormFooter.vue +++ b/resources/js/components/pages/OpenFormFooter.vue @@ -7,7 +7,7 @@

- + notion tools logo {{ appName }} diff --git a/resources/js/pages/auth/ForgotPasswordModal.vue b/resources/js/pages/auth/ForgotPasswordModal.vue new file mode 100644 index 0000000..779a962 --- /dev/null +++ b/resources/js/pages/auth/ForgotPasswordModal.vue @@ -0,0 +1,80 @@ + + + + \ No newline at end of file diff --git a/resources/js/pages/auth/login.vue b/resources/js/pages/auth/login.vue index 126fbdf..173da98 100644 --- a/resources/js/pages/auth/login.vue +++ b/resources/js/pages/auth/login.vue @@ -1,5 +1,7 @@ - + - \ No newline at end of file From 8b6814c373c6683cc7222b09cb090bd960bf2832 Mon Sep 17 00:00:00 2001 From: Chirag <103994754+chiragnotionforms@users.noreply.github.com> Date: Sun, 6 Nov 2022 16:55:38 +0530 Subject: [PATCH 3/7] Code block (#21) Co-authored-by: Julien Nahum --- app/Rules/FormPropertyLogicRule.php | 2 +- resources/js/components/open/forms/OpenForm.vue | 3 +++ .../form-components/AddFormBlockModal.vue | 15 +++++++++++++++ .../FormBlockLogicEditor.vue | 2 +- .../open/forms/fields/FormBlockOptionsModal.vue | 7 ++++++- 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/Rules/FormPropertyLogicRule.php b/app/Rules/FormPropertyLogicRule.php index 8e8f84a..1c3ed40 100644 --- a/app/Rules/FormPropertyLogicRule.php +++ b/app/Rules/FormPropertyLogicRule.php @@ -490,7 +490,7 @@ class FormPropertyLogicRule implements Rule, DataAwareRule if (is_array($conditions) && count($conditions) > 0) { foreach($conditions as $val){ if (!in_array($val, static::ACTIONS_VALUES) || - (in_array($this->field["type"], ['nf-text', 'nf-page-break', 'nf-divider', 'nf-image']) && !in_array($val, ['hide-block'])) || + (in_array($this->field["type"], ['nf-text', 'nf-code', 'nf-page-break', 'nf-divider', 'nf-image']) && !in_array($val, ['hide-block'])) || (isset($this->field["hidden"]) && $this->field["hidden"] && !in_array($val, ['show-block', 'require-answer'])) || (isset($this->field["required"]) && $this->field["required"] && !in_array($val, ['make-it-optional', 'hide-block'])) ) { diff --git a/resources/js/components/open/forms/OpenForm.vue b/resources/js/components/open/forms/OpenForm.vue index 7cdba83..16bf259 100644 --- a/resources/js/components/open/forms/OpenForm.vue +++ b/resources/js/components/open/forms/OpenForm.vue @@ -12,6 +12,9 @@
+
diff --git a/resources/js/components/open/forms/components/form-components/AddFormBlockModal.vue b/resources/js/components/open/forms/components/form-components/AddFormBlockModal.vue index 36ac0e4..9284700 100644 --- a/resources/js/components/open/forms/components/form-components/AddFormBlockModal.vue +++ b/resources/js/components/open/forms/components/form-components/AddFormBlockModal.vue @@ -196,6 +196,18 @@

Image Block

+ +
+
+ + + +
+

Code Block

+
@@ -242,6 +254,7 @@ export default { 'nf-page-break': 'Page Break', 'nf-divider': 'Divider', 'nf-image': 'Image', + 'nf-code': 'Code Block', } } }, @@ -292,6 +305,8 @@ export default { } else if (data.type === 'nf-page-break') { data.next_btn_text = 'Next' data.previous_btn_text = 'Previous' + } else if (data.type === 'nf-code') { + data.content = '
This is a code block.
' } return data }, diff --git a/resources/js/components/open/forms/components/form-logic-components/FormBlockLogicEditor.vue b/resources/js/components/open/forms/components/form-logic-components/FormBlockLogicEditor.vue index f792163..ac6e021 100644 --- a/resources/js/components/open/forms/components/form-logic-components/FormBlockLogicEditor.vue +++ b/resources/js/components/open/forms/components/form-logic-components/FormBlockLogicEditor.vue @@ -107,7 +107,7 @@ export default { }) }, actionOptions() { - if (['nf-text', 'nf-page-break', 'nf-divider', 'nf-image'].includes(this.field.type)) { + if (['nf-text', 'nf-code', 'nf-page-break', 'nf-divider', 'nf-image'].includes(this.field.type)) { return [{name: 'Hide Block', value: 'hide-block'}] } diff --git a/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue b/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue index a7be406..0059d88 100644 --- a/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue +++ b/resources/js/components/open/forms/fields/FormBlockOptionsModal.vue @@ -115,6 +115,10 @@ :form="field" label="Upload Image" :required="false" />
+
+ +

No settings found.

@@ -137,10 +141,11 @@ diff --git a/tests/Feature/Forms/AnswerFormTest.php b/tests/Feature/Forms/AnswerFormTest.php index b89c820..8d6d98b 100644 --- a/tests/Feature/Forms/AnswerFormTest.php +++ b/tests/Feature/Forms/AnswerFormTest.php @@ -83,4 +83,52 @@ it('can not submit draft form', function () { $this->postJson(route('forms.answer', $form->slug), $formData) ->assertStatus(403); +}); + +it('can not submit form with past dates', function () { + $user = $this->actingAsUser(); + $workspace = $this->createUserWorkspace($user); + $form = $this->createForm($user, $workspace); + + $submissionData = []; + $form->properties = collect($form->properties)->map(function ($property) use (&$submissionData) { + if(in_array($property['type'], ['date'])){ + $property["disable_past_dates"] = true; + $submissionData[$property['id']] = now()->subDays(4)->format('Y-m-d'); + } + return $property; + })->toArray(); + $form->update(); + + $formData = FormSubmissionDataFactory::generateSubmissionData($form, $submissionData); + + $this->postJson(route('forms.answer', $form->slug), $formData) + ->assertStatus(422) + ->assertJson([ + 'message' => 'The Date must be a date after or equal to today.' + ]); +}); + +it('can not submit form with future dates', function () { + $user = $this->actingAsUser(); + $workspace = $this->createUserWorkspace($user); + $form = $this->createForm($user, $workspace); + + $submissionData = []; + $form->properties = collect($form->properties)->map(function ($property) use (&$submissionData) { + if(in_array($property['type'], ['date'])){ + $property["disable_future_dates"] = true; + $submissionData[$property['id']] = now()->addDays(4)->format('Y-m-d'); + } + return $property; + })->toArray(); + $form->update(); + + $formData = FormSubmissionDataFactory::generateSubmissionData($form, $submissionData); + + $this->postJson(route('forms.answer', $form->slug), $formData) + ->assertStatus(422) + ->assertJson([ + 'message' => 'The Date must be a date before or equal to today.' + ]); }); \ No newline at end of file From 4873dfe69687f1932899f360e329da2818c82d15 Mon Sep 17 00:00:00 2001 From: Chirag <103994754+chiragnotionforms@users.noreply.github.com> Date: Tue, 8 Nov 2022 22:14:04 +0530 Subject: [PATCH 5/7] New UI For Settings Page (#22) * New UI For Settings Page * WIP UI improvements Co-authored-by: Julien Nahum --- resources/js/components/common/Button.vue | 8 +- resources/js/pages/settings/account.vue | 18 +-- resources/js/pages/settings/admin.vue | 16 +-- resources/js/pages/settings/billing.vue | 21 ++-- resources/js/pages/settings/index.vue | 145 +++++++++------------- resources/js/pages/settings/password.vue | 17 +-- resources/js/pages/settings/profile.vue | 13 +- resources/js/pages/settings/workspace.vue | 36 +++--- 8 files changed, 133 insertions(+), 141 deletions(-) diff --git a/resources/js/components/common/Button.vue b/resources/js/components/common/Button.vue index c1fdca4..0738851 100644 --- a/resources/js/components/common/Button.vue +++ b/resources/js/components/common/Button.vue @@ -1,6 +1,6 @@