diff --git a/app/lib/message_template_parser.rb b/app/lib/message_template_parser.rb index 78506d86f..0de8ef3fb 100644 --- a/app/lib/message_template_parser.rb +++ b/app/lib/message_template_parser.rb @@ -1,5 +1,5 @@ module MessageTemplateParser - PLACEHOLDER_PATTERN=/({{ ?([\p{L} +]+)(\*?):([\p{L}_]+)(?:\:"([\p{L} +]+)")? }})/ + PLACEHOLDER_PATTERN=/({{ ?([\p{L} +]+)(\*?):([\p{L}_]+)(?:\:"([\p{L}.@\-+_\d\s]+)")? }})/ def self.parse_template_placeholders(template) template_content = template.content diff --git a/test/fixtures/upvs/message_templates.yml b/test/fixtures/upvs/message_templates.yml index afe660e4b..45a846bda 100644 --- a/test/fixtures/upvs/message_templates.yml +++ b/test/fixtures/upvs/message_templates.yml @@ -2,8 +2,8 @@ message_reply: content: - {{Predmet::text_field}} - {{Text::text_area}} + {{ Predmet:text_field }} + {{ Text:text_area }} metadata: posp_id: App.GeneralAgenda @@ -15,8 +15,8 @@ message_reply: general_agenda: content: - {{Predmet::text_field}} - {{Text::text_area}} + {{ Predmet:text_field }} + {{ Text:text_area }} metadata: posp_id: App.GeneralAgenda @@ -32,25 +32,25 @@ ssd_crac_template: PO - {{IČO::text_field}} + {{ IČO*:text_field }} - {{Kontaktná osoba:Ján Suchal:text_field}} - {{Email:jan.suchal@test.sk:text_field}} - {{Telefón:+4190000000:text_field}} + {{ Kontaktná osoba*:text_field:"Ján Suchal" }} + {{ Email*:text_field:"jan.suchal@test.sk" }} + {{ Telefón*:text_field:"+4190000000" }} - {{Názov prostriedku:IRVIN:text_field}} + {{ Názov prostriedku:text_field:"IRVIN" }} 1 - {{Dátum začiatku platnosti::date_field}} + {{ Dátum začiatku platnosti*:date_field }} - {{Digitálny odtlačok::text_field}} + {{ Digitálny odtlačok*:text_field }} metadata: diff --git a/test/lib/message_template_parser_test.rb b/test/lib/message_template_parser_test.rb index 7ee13cdd7..8c7b96e56 100644 --- a/test/lib/message_template_parser_test.rb +++ b/test/lib/message_template_parser_test.rb @@ -9,13 +9,15 @@ class MessageTemplateParserTest < ActiveSupport::TestCase assert_equal template_items.count, 2 - assert_equal template_items.first[:placeholder], "{{Predmet::text_field}}" + assert_equal template_items.first[:placeholder], "{{ Predmet:text_field }}" assert_equal template_items.first[:name], "Predmet" + assert_equal template_items.first[:required], false assert_equal template_items.first[:default_value], nil assert_equal template_items.first[:type], "text_field" - assert_equal template_items.second[:placeholder], "{{Text::text_area}}" + assert_equal template_items.second[:placeholder], "{{ Text:text_area }}" assert_equal template_items.second[:name], "Text" + assert_equal template_items.second[:required], false assert_equal template_items.second[:default_value], nil assert_equal template_items.second[:type], "text_area" end @@ -26,40 +28,47 @@ class MessageTemplateParserTest < ActiveSupport::TestCase assert_equal template_items.count, 7 - assert_equal template_items.first[:placeholder], "{{IČO::text_field}}" - assert_equal template_items.first[:name], "IČO" + assert_equal template_items.first[:placeholder], '{{ IČO*:text_field }}' + assert_equal template_items.first[:name], 'IČO' + assert_equal template_items.first[:required], true assert_equal template_items.first[:default_value], nil - assert_equal template_items.first[:type], "text_field" + assert_equal template_items.first[:type], 'text_field' - assert_equal template_items.second[:placeholder], "{{Kontaktná osoba:Ján Suchal:text_field}}" - assert_equal template_items.second[:name], "Kontaktná osoba" - assert_equal template_items.second[:default_value], "Ján Suchal" - assert_equal template_items.second[:type], "text_field" + assert_equal template_items.second[:placeholder], '{{ Kontaktná osoba*:text_field:"Ján Suchal" }}' + assert_equal template_items.second[:name], 'Kontaktná osoba' + assert_equal template_items.second[:required], true + assert_equal template_items.second[:default_value], 'Ján Suchal' + assert_equal template_items.second[:type], 'text_field' - assert_equal template_items.third[:placeholder], "{{Email:jan.suchal@test.sk:text_field}}" - assert_equal template_items.third[:name], "Email" - assert_equal template_items.third[:default_value], "jan.suchal@test.sk" - assert_equal template_items.third[:type], "text_field" + assert_equal template_items.third[:placeholder], '{{ Email*:text_field:"jan.suchal@test.sk" }}' + assert_equal template_items.third[:name], 'Email' + assert_equal template_items.third[:required], true + assert_equal template_items.third[:default_value], 'jan.suchal@test.sk' + assert_equal template_items.third[:type], 'text_field' - assert_equal template_items.fourth[:placeholder], "{{Telefón:+4190000000:text_field}}" - assert_equal template_items.fourth[:name], "Telefón" - assert_equal template_items.fourth[:default_value], "+4190000000" - assert_equal template_items.fourth[:type], "text_field" + assert_equal template_items.fourth[:placeholder], '{{ Telefón*:text_field:"+4190000000" }}' + assert_equal template_items.fourth[:name], 'Telefón' + assert_equal template_items.fourth[:required], true + assert_equal template_items.fourth[:default_value], '+4190000000' + assert_equal template_items.fourth[:type], 'text_field' - assert_equal template_items.fifth[:placeholder], "{{Názov prostriedku:IRVIN:text_field}}" - assert_equal template_items.fifth[:name], "Názov prostriedku" - assert_equal template_items.fifth[:default_value], "IRVIN" - assert_equal template_items.fifth[:type], "text_field" + assert_equal template_items.fifth[:placeholder], '{{ Názov prostriedku:text_field:"IRVIN" }}' + assert_equal template_items.fifth[:name], 'Názov prostriedku' + assert_equal template_items.fifth[:required], false + assert_equal template_items.fifth[:default_value], 'IRVIN' + assert_equal template_items.fifth[:type], 'text_field' - assert_equal template_items[5][:placeholder], "{{Dátum začiatku platnosti::date_field}}" - assert_equal template_items[5][:name], "Dátum začiatku platnosti" + assert_equal template_items[5][:placeholder], '{{ Dátum začiatku platnosti*:date_field }}' + assert_equal template_items[5][:name], 'Dátum začiatku platnosti' + assert_equal template_items[5][:required], true assert_equal template_items[5][:default_value], nil - assert_equal template_items[5][:type], "date_field" + assert_equal template_items[5][:type], 'date_field' - assert_equal template_items[6][:placeholder], "{{Digitálny odtlačok::text_field}}" - assert_equal template_items[6][:name], "Digitálny odtlačok" + assert_equal template_items[6][:placeholder], '{{ Digitálny odtlačok*:text_field }}' + assert_equal template_items[6][:name], 'Digitálny odtlačok' + assert_equal template_items[6][:required], true assert_equal template_items[6][:default_value], nil - assert_equal template_items[6][:type], "text_field" + assert_equal template_items[6][:type], 'text_field' end end