Polish UX (#100)

This commit is contained in:
Chirag Chhatrala 2023-03-11 16:43:21 +05:30 committed by GitHub
parent 43020939ed
commit 5df4488c25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 25 deletions

View File

@ -22,9 +22,12 @@
class="nf-code w-full px-2 mb-3" class="nf-code w-full px-2 mb-3"
v-html="field.content" v-html="field.content"
/> />
<div v-if="field.type === 'nf-divider'" :id="field.id" :key="field.id" class="border-b my-4 w-full mx-2"/> <div v-if="field.type === 'nf-divider'" :id="field.id" :key="field.id"
class="border-b my-4 w-full mx-2"
/>
<div v-if="field.type === 'nf-image' && (field.image_block || !isPublicFormPage)" :id="field.id" <div v-if="field.type === 'nf-image' && (field.image_block || !isPublicFormPage)" :id="field.id"
:key="field.id" class="my-4 w-full px-2"> :key="field.id" class="my-4 w-full px-2"
>
<div v-if="!field.image_block" class="p-4 border border-dashed"> <div v-if="!field.image_block" class="p-4 border border-dashed">
Open <b>{{ field.name }}'s</b> block settings to upload image. Open <b>{{ field.name }}'s</b> block settings to upload image.
</div> </div>
@ -249,7 +252,7 @@ export default {
mounted() { mounted() {
this.initForm() this.initForm()
if(window.location.href.includes('auto_submit=true')){ if (window.location.href.includes('auto_submit=true')) {
this.isAutoSubmit = true this.isAutoSubmit = true
this.submitForm() this.submitForm()
} }
@ -381,7 +384,7 @@ export default {
String(dateObj.getDate()).padStart(2, '0') String(dateObj.getDate()).padStart(2, '0')
if(field.with_time === true){ if(field.with_time === true){
currentDate += 'T' + String(dateObj.getHours()).padStart(2, '0') + ':' + currentDate += 'T' + String(dateObj.getHours()).padStart(2, '0') + ':' +
String(dateObj.getMinutes()).padStart(2, '0'); String(dateObj.getMinutes()).padStart(2, '0')
} }
formData[field.id] = currentDate formData[field.id] = currentDate
} else { // Default prefill if any } else { // Default prefill if any
@ -482,17 +485,19 @@ export default {
}, },
previousPage() { previousPage() {
this.currentFieldGroupIndex -= 1 this.currentFieldGroupIndex -= 1
window.scrollTo({ top: 0, behavior: 'smooth' })
return false return false
}, },
nextPage() { nextPage() {
this.currentFieldGroupIndex += 1 this.currentFieldGroupIndex += 1
window.scrollTo({ top: 0, behavior: 'smooth' })
return false return false
} }
} }
} }
</script> </script>
<style lang="scss"> <style lang='scss'>
.nf-text { .nf-text {
ol { ol {
@apply list-decimal list-inside; @apply list-decimal list-inside;

View File

@ -45,7 +45,7 @@
<template #title> <template #title>
Copy Settings from another form Copy Settings from another form
</template> </template>
<div class="p-4"> <div class="p-4 min-h-[450px]">
<p class="text-gray-600"> <p class="text-gray-600">
If you already have another form that you like to use as a base for this form, you can do that here. If you already have another form that you like to use as a base for this form, you can do that here.
Select another form, confirm, and we will copy all of the other form settings (except the form structure) Select another form, confirm, and we will copy all of the other form settings (except the form structure)

View File

@ -43,23 +43,25 @@
/> />
<modal :show="showCopyFormModal" @close="showCopyFormModal = false"> <modal :show="showCopyFormModal" @close="showCopyFormModal = false">
<h3 class="font-semibold block text-lg"> <div class="min-h-[450px]">
Copy logic from another field <h3 class="font-semibold block text-lg">
</h3> Copy logic from another field
<p class="text-gray-400 mb-5"> </h3>
Select another field/block to copy its logic and apply it to "{{ field.name }}". <p class="text-gray-400 mb-5">
</p> Select another field/block to copy its logic and apply it to "{{ field.name }}".
<select-input v-model="copyFrom" name="copy_from" emit-key="value" </p>
label="Copy logic from" placeholder="Choose a field/block..." <select-input v-model="copyFrom" name="copy_from" emit-key="value"
:options="copyFromOptions" :searchable="copyFromOptions && copyFromOptions.options > 5" label="Copy logic from" placeholder="Choose a field/block..."
/> :options="copyFromOptions" :searchable="copyFromOptions && copyFromOptions.options > 5"
<div class="flex justify-between mb-6"> />
<v-button color="blue" shade="light" @click="copyLogic"> <div class="flex justify-between mb-6">
Confirm & Copy <v-button color="blue" shade="light" @click="copyLogic">
</v-button> Confirm & Copy
<v-button color="gray" shade="light" class="ml-1" @click="showCopyFormModal=false"> </v-button>
Close <v-button color="gray" shade="light" class="ml-1" @click="showCopyFormModal=false">
</v-button> Close
</v-button>
</div>
</div> </div>
</modal> </modal>
</div> </div>
@ -101,7 +103,7 @@ export default {
computed: { computed: {
copyFromOptions() { copyFromOptions() {
return this.form.properties.filter((field) => { return this.form.properties.filter((field) => {
return field.id !== this.field.id return field.id !== this.field.id && field.hasOwnProperty('logic') && field.logic !== null && field.logic !== {}
}).map((field) => { }).map((field) => {
return {name: field.name, value: field.id} return {name: field.name, value: field.id}
}) })

View File

@ -2,7 +2,7 @@
<div class="flex flex-wrap px-4 py-1 -ml-1 -mt-1"> <div class="flex flex-wrap px-4 py-1 -ml-1 -mt-1">
<select-input ref="ruleSelect" v-model="selectedRule" class="flex-grow ml-1 mr-1 mt-1" <select-input ref="ruleSelect" v-model="selectedRule" class="flex-grow ml-1 mr-1 mt-1"
wrapper-class="relative" placeholder="Add condition on input field" wrapper-class="relative" placeholder="Add condition on input field"
:options="groupCtrl.rules" margin-bottom="" :options="groupCtrl.rules" margin-bottom="" :searchable="groupCtrl.rules.length > 5"
emit-key="identifier" emit-key="identifier"
option-key="identifier" option-key="identifier"
name="group-control-slot-rule" name="group-control-slot-rule"