From 43240acd006ccae9411391101719c47636cc5df3 Mon Sep 17 00:00:00 2001 From: Bernardo Anderson Date: Tue, 12 Aug 2025 20:04:15 -0500 Subject: [PATCH] CP-10360 - Add prefill dropdown - Add available_ats_fields to template edit response payload - Implement ATS field dropdown in field settings component - Add prefill attribute to template fields for ATS integration - Format ATS field names for user-friendly display in dropdown --- app/controllers/templates_controller.rb | 5 +- .../template_builder/field_settings.vue | 50 +++++++++++++++++++ 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/app/controllers/templates_controller.rb b/app/controllers/templates_controller.rb index 2c77ed73..12258115 100644 --- a/app/controllers/templates_controller.rb +++ b/app/controllers/templates_controller.rb @@ -49,7 +49,8 @@ class TemplatesController < ApplicationController documents: @template.schema_documents.as_json( methods: %i[metadata signed_uuid], include: { preview_images: { methods: %i[url metadata filename] } } - ) + ), + available_ats_fields: @available_ats_fields ).to_json render :edit, layout: 'plain' @@ -129,7 +130,7 @@ class TemplatesController < ApplicationController external_data_fields: {}, fields: [[:uuid, :question_id, :submitter_uuid, :name, :type, :required, :readonly, :default_value, - :title, :description, + :title, :description, :prefill, { preferences: {}, conditions: [%i[field_uuid value action operation]], options: [%i[value uuid answer_id]], diff --git a/app/javascript/template_builder/field_settings.vue b/app/javascript/template_builder/field_settings.vue index 36bd53bc..ae5bea32 100644 --- a/app/javascript/template_builder/field_settings.vue +++ b/app/javascript/template_builder/field_settings.vue @@ -255,6 +255,40 @@ {{ t('format') }} +
+ + +
  • { acc[item.attachment_uuid] = index @@ -551,6 +594,13 @@ export default { } }, methods: { + formatAtsFieldName (fieldName) { + // Convert snake_case to Title Case for display + return fieldName + .split('_') + .map(word => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' ') + }, onChangeValidation (event) { if (event.target.value === 'custom') { this.field.validation = { pattern: '' }