From d809bf6684af83012ab74724c295287d23c4a161 Mon Sep 17 00:00:00 2001 From: iozeey Date: Fri, 1 Dec 2023 22:35:02 +0500 Subject: [PATCH] adding first self editable text-field for prefills portion --- app/controllers/api/templates_controller.rb | 2 +- app/javascript/form.js | 1 + app/javascript/submission_form/area.vue | 49 +++++--- app/javascript/submission_form/areas.vue | 8 ++ app/javascript/submission_form/form.vue | 8 ++ app/javascript/template_builder/area.vue | 48 +++++++- app/javascript/template_builder/builder.vue | 15 ++- app/javascript/template_builder/document.vue | 3 +- app/javascript/template_builder/field.vue | 2 +- .../template_builder/field_submitter.vue | 88 +++++++++----- .../template_builder/field_type.vue | 8 +- app/javascript/template_builder/fields.vue | 110 ++++++++++++------ app/javascript/template_builder/page.vue | 4 +- app/models/template.rb | 2 + .../submit_form/_submission_form.html.erb | 3 +- .../20231130132129_add_values_to_templates.rb | 5 + db/schema.rb | 5 +- 17 files changed, 268 insertions(+), 93 deletions(-) create mode 100644 db/migrate/20231130132129_add_values_to_templates.rb diff --git a/app/controllers/api/templates_controller.rb b/app/controllers/api/templates_controller.rb index 43d5f99c..7772afba 100644 --- a/app/controllers/api/templates_controller.rb +++ b/app/controllers/api/templates_controller.rb @@ -53,7 +53,7 @@ module Api def template_params params.require(:template).permit( - :name, + :name, values: {}, schema: [%i[attachment_uuid name]], submitters: [%i[name uuid]], fields: [[:uuid, :submitter_uuid, :name, :type, :required, :readonly, :default_value, diff --git a/app/javascript/form.js b/app/javascript/form.js index ebdcea17..c681f343 100644 --- a/app/javascript/form.js +++ b/app/javascript/form.js @@ -10,6 +10,7 @@ window.customElements.define('submission-form', class extends HTMLElement { this.app = createApp(Form, { submitter: JSON.parse(this.dataset.submitter), + templateValues: JSON.parse(this.dataset.templateValues), authenticityToken: this.dataset.authenticityToken, canSendEmail: this.dataset.canSendEmail === 'true', isDirectUpload: this.dataset.isDirectUpload === 'true', diff --git a/app/javascript/submission_form/area.vue b/app/javascript/submission_form/area.vue index fbf7a6f4..0a2f2f3f 100644 --- a/app/javascript/submission_form/area.vue +++ b/app/javascript/submission_form/area.vue @@ -21,20 +21,19 @@ /> -
- - {{ modelValue.join(', ') }} - - - {{ formattedDate }} - - - {{ modelValue }} - -
+ + +
+
{ this.textOverflowChars = this.$refs.textContainer.scrollHeight > this.$refs.textContainer.clientHeight ? this.modelValue.length : 0 diff --git a/app/javascript/submission_form/areas.vue b/app/javascript/submission_form/areas.vue index 0cf3b825..5818a8fa 100644 --- a/app/javascript/submission_form/areas.vue +++ b/app/javascript/submission_form/areas.vue @@ -25,6 +25,7 @@ :with-label="withLabel" :is-value-set="step.some((f) => f.uuid in values)" :attachments-index="attachmentsIndex" + :template-values="templateValues" @click="$emit('focus-step', step)" /> @@ -66,6 +67,13 @@ export default { type: Array, required: false, default: () => [] + }, + templateValues: { + type: Object, + required: false, + default () { + return {} + } } }, emits: ['focus-step'], diff --git a/app/javascript/submission_form/form.vue b/app/javascript/submission_form/form.vue index e5bc40d3..b1f9e924 100644 --- a/app/javascript/submission_form/form.vue +++ b/app/javascript/submission_form/form.vue @@ -6,6 +6,7 @@ :attachments-index="attachmentsIndex" :with-label="!isAnonymousChecboxes" :current-step="currentStepFields" + :template-values="templateValues" @focus-step="[saveStep(), goToStep($event, false, true), currentField.type !== 'checkbox' ? isFormVisible = true : '']" />
+
+ +
{{ optionIndexText }} {{ field.name || defaultName }}
+ +
+