diff --git a/forms/top_up.rb b/forms/top_up.rb index 280385b3952bb8c58efabd0c28f27c58892aec73..f79e07caf0e1921db2c40f1823655de702cde1ab 100644 --- a/forms/top_up.rb +++ b/forms/top_up.rb @@ -14,5 +14,6 @@ field( range: @range, var: "amount", label: "Amount of credit to buy", + prefix: "$", required: true ) diff --git a/lib/form_template.rb b/lib/form_template.rb index 55fdcc6147853a043bc0acd6eec2de67d84d04ac..0035f4b63895ceb90830c82c0df59551003ba378 100644 --- a/lib/form_template.rb +++ b/lib/form_template.rb @@ -91,11 +91,25 @@ class FormTemplate ).add_to_form(@__form) end - def field(datatype: nil, open: false, regex: nil, range: nil, **kwargs) + def simple_child(field, name, xmlns, content) + return unless content + + Nokogiri::XML::Builder.with(field) do |xml| + xml.public_send(name, content, xmlns: xmlns) + end + end + + def field( + datatype: nil, open: false, regex: nil, range: nil, + suffix: nil, prefix: nil, + **kwargs + ) f = Blather::Stanza::X::Field.new(kwargs) if datatype || open || regex || range validate(f, datatype: datatype, open: open, regex: regex, range: range) end + simple_child(f, :x, "https://ns.cheogram.com/suffix-label", suffix) + simple_child(f, :x, "https://ns.cheogram.com/prefix-label", prefix) @__form.fields += [f] end