From 0543c25054c6b9aea2cfb7e8e80eded783d8b1e4 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sun, 18 Jan 2026 17:22:55 +0200 Subject: [PATCH] detect fields in context menu --- .../templates_detect_fields_controller.rb | 5 +- app/javascript/template_builder/builder.vue | 230 ++++++++++++++++++ .../template_builder/context_menu.vue | 24 +- app/javascript/template_builder/document.vue | 9 +- app/javascript/template_builder/i18n.js | 28 ++- app/javascript/template_builder/page.vue | 17 +- lib/templates/detect_fields.rb | 25 +- 7 files changed, 317 insertions(+), 21 deletions(-) diff --git a/app/controllers/templates_detect_fields_controller.rb b/app/controllers/templates_detect_fields_controller.rb index 8355dcb2..337e8008 100644 --- a/app/controllers/templates_detect_fields_controller.rb +++ b/app/controllers/templates_detect_fields_controller.rb @@ -11,11 +11,14 @@ class TemplatesDetectFieldsController < ApplicationController sse = SSE.new(response.stream) documents = @template.schema_documents.preload(:blob) + documents = documents.where(uuid: params[:attachment_uuid]) if params[:attachment_uuid].present? + + page_number = params[:page].present? ? params[:page].to_i : nil documents.each do |document| io = StringIO.new(document.download) - Templates::DetectFields.call(io, attachment: document) do |(attachment_uuid, page, fields)| + Templates::DetectFields.call(io, attachment: document, page_number:) do |(attachment_uuid, page, fields)| sse.write({ attachment_uuid:, page:, fields: }) end end diff --git a/app/javascript/template_builder/builder.vue b/app/javascript/template_builder/builder.vue index 34340fda..bb43cdfb 100644 --- a/app/javascript/template_builder/builder.vue +++ b/app/javascript/template_builder/builder.vue @@ -373,6 +373,7 @@ :draw-field-type="drawFieldType" :editable="editable" :base-url="baseUrl" + :with-fields-detection="withFieldsDetection" @draw="[onDraw($event), withSelectedFieldType ? '' : drawFieldType = '', showDrawField = false]" @drop-field="onDropfield" @remove-area="removeArea" @@ -381,6 +382,7 @@ @copy-selected-areas="copySelectedAreas" @delete-selected-areas="deleteSelectedAreas" @align-selected-areas="alignSelectedAreas" + @autodetect-fields="detectFieldsForPage" /> + +
+ +
+