diff --git a/app/helpers/dynamic_form_helper.rb b/app/helpers/dynamic_form_helper.rb index 89dbd0e..1c72763 100644 --- a/app/helpers/dynamic_form_helper.rb +++ b/app/helpers/dynamic_form_helper.rb @@ -1,6 +1,6 @@ module DynamicFormHelper - def create_text_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0) + def create_text_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0, ttip: nil, example: nil) render partial: 'shared/dynamic_form/fields/text_field', locals: { f: form, @@ -12,13 +12,15 @@ field_class: html_class, input_type: nil, readonly: readonly, - validation: validation + validation: validation, + ttip: ttip, + example: example } end - def create_url_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0) + def create_url_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0, ttip: nil, example: nil) render partial: 'shared/dynamic_form/fields/text_field', locals: { f: form, @@ -30,13 +32,15 @@ field_class: html_class, input_type: 'url', readonly: readonly, - validation: validation + validation: validation, + ttip: ttip, + example: example } end - - - - def create_email_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0) + + + + def create_email_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0, ttip: nil, example: nil) render partial: 'shared/dynamic_form/fields/text_field', locals: { f: form, @@ -48,13 +52,15 @@ field_class: html_class, input_type: 'email', readonly: readonly, - validation: validation + validation: validation, + ttip: ttip, + example: example } end - def create_date_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0) + def create_date_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0, ttip: nil, example: nil) render partial: 'shared/dynamic_form/fields/text_field', locals: { f: form, @@ -66,13 +72,15 @@ field_class: html_class, input_type: 'date', readonly: readonly, - validation: validation + validation: validation, + ttip: ttip, + example: example } end - def create_number_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0) + def create_number_field(form, value, name, label, validation: nil, html_class: nil, is_multiple: false, readonly: false, index: 0, ttip: nil) render partial: 'shared/dynamic_form/fields/number_field', locals: { f: form, @@ -83,7 +91,8 @@ field_label: label, field_class: html_class, readonly: readonly, - validation: validation + validation: validation, + ttip: ttip } end diff --git a/app/views/branded/plans/plan_details/_plan_metadata.html.erb b/app/views/branded/plans/plan_details/_plan_metadata.html.erb index 249f910..ed7703a 100644 --- a/app/views/branded/plans/plan_details/_plan_metadata.html.erb +++ b/app/views/branded/plans/plan_details/_plan_metadata.html.erb @@ -87,7 +87,7 @@ "format" => "uri" }, field_name: "relatedDocUrl", answer_id: nil - }) + }) %> diff --git a/app/views/branded/shared/dynamic_form/_form.html.erb b/app/views/branded/shared/dynamic_form/_form.html.erb index d3734ff..0f34543 100644 --- a/app/views/branded/shared/dynamic_form/_form.html.erb +++ b/app/views/branded/shared/dynamic_form/_form.html.erb @@ -3,6 +3,7 @@ <% data = fragment.data unless fragment.nil? %> <% additional_info = fragment.additional_info unless fragment.nil? %> <% validations = additional_info.present? && additional_info['validations'].present? ? additional_info["validations"] : nil %> +<% user_language = current_user.language.abbreviation %> <% sub_fragments = fragment.present? ? fragment.get_sub_fragments() : [] %> <% schema_properties = schema.schema["properties"]%> @@ -11,23 +12,26 @@ <% value = data[key] unless data.nil? %> <% field_name = defined?(form_prefix) ? "#{form_prefix}[#{key}]" : key %> <% validation = validations.nil? ? "none" : validations[key] %> + <% label = prop["label@#{user_language}"] %> + <% ttip = prop["toolTip@#{user_language}"] %> + <% example = prop['example'] %> <% case prop['type'] %> <% when 'string' %> <% if prop['format'].nil?%> - <%= create_text_field(f, value, field_name, prop['label'], readonly: readonly, validation: validation) %> + <%= create_text_field(f, value, field_name, label, readonly: readonly, validation: validation, ttip: ttip, example: example) %> <% elsif prop['format'] == 'date' %> - <%= create_date_field(f, value, field_name, prop['label'], readonly: readonly, validation: validation) %> + <%= create_date_field(f, value, field_name, label, readonly: readonly, validation: validation, ttip: ttip, example: example) %> <% elsif prop['format'] == 'uri' %> - <%= create_url_field(f, value, field_name, prop['label'], readonly: readonly, validation: validation) %> + <%= create_url_field(f, value, field_name, label, readonly: readonly, validation: validation, ttip: ttip, example: example) %> <% elsif prop['format'] == 'email' %> - <%= create_email_field(f, value, field_name, prop['label'], readonly: readonly, validation: validation) %> + <%= create_email_field(f, value, field_name, label, readonly: readonly, validation: validation, example: example) %> <% elsif prop['format'] == 'select' && prop['values'] %> - <%= create_select_field(f, value, "#{f.object_name}[#{field_name}]", prop['label'], prop['values'], readonly: readonly, validation: validation) %> + <%= create_select_field(f, value, "#{f.object_name}[#{field_name}]", label, prop['values'], readonly: readonly, validation: validation) %> <%end%> <% when 'integer', 'number' %> - <%= create_number_field(f, value, field_name, prop['label'], readonly: readonly, validation: validation) %> + <%= create_number_field(f, value, field_name, label, readonly: readonly, validation: validation, ttip: ttip) %> <% when 'boolean' %> - <%= create_checkbox_field(f, value, field_name, prop['label'], readonly: readonly, validation: validation) %> + <%= create_checkbox_field(f, value, field_name, label, readonly: readonly, validation: validation) %> <% when 'array' %> <% if prop['items']['type'] == 'object' && prop['items']['schema_id'].present? %> <% unless classname == "research_output" %> @@ -47,9 +51,10 @@ f: f, field_values: value, readonly: readonly, - field_label: prop['label'], + field_label: label, field_properties: prop['items'], - field_name: field_name, answer_id: nil + field_name: field_name, answer_id: nil, + ttip: ttip } ) %> <% end %> diff --git a/app/views/branded/shared/dynamic_form/fields/_complex_multiple_field.html.erb b/app/views/branded/shared/dynamic_form/fields/_complex_multiple_field.html.erb index 3e661cd..efd9d50 100644 --- a/app/views/branded/shared/dynamic_form/fields/_complex_multiple_field.html.erb +++ b/app/views/branded/shared/dynamic_form/fields/_complex_multiple_field.html.erb @@ -1,4 +1,5 @@ -<%# locals: { field_values, parent_id, schema, field_label} %> +<%# locals: { field_values, parent_id, schema, field_name } %> +<% ttip = nil %> <% field_values = [] if field_values.nil? %> <% field_label = field_label || 'No label defined' %>
diff --git a/app/views/branded/shared/dynamic_form/fields/_number_field.html.erb b/app/views/branded/shared/dynamic_form/fields/_number_field.html.erb index 94bb6c9..53ddb9c 100644 --- a/app/views/branded/shared/dynamic_form/fields/_number_field.html.erb +++ b/app/views/branded/shared/dynamic_form/fields/_number_field.html.erb @@ -1,4 +1,4 @@ -<%# locals: { f, field_label, field_name, multiple, classname, field_name, readonly, validation } %> +<%# locals: { f, field_label, field_name, multiple, classname, field_name, readonly, validation, ttip } %> <% field_class = nil if local_assigns[:field_class].nil? %> <% field_label = field_label || 'No label defined' %> <% unless multiple %> @@ -11,7 +11,9 @@ value: field_value, multiple: multiple, disabled: readonly, - class: "form-control #{field_class}" %> + class: "form-control #{field_class}", + data: { toggle: 'tooltip' }, + title: ttip %> <% if multiple %>
diff --git a/app/views/branded/shared/dynamic_form/fields/_simple_multiple_field.html.erb b/app/views/branded/shared/dynamic_form/fields/_simple_multiple_field.html.erb index 97e5dfd..710521c 100644 --- a/app/views/branded/shared/dynamic_form/fields/_simple_multiple_field.html.erb +++ b/app/views/branded/shared/dynamic_form/fields/_simple_multiple_field.html.erb @@ -1,5 +1,6 @@ -<%# locals: { f, field_values, readonly, field_label, field_properties, field_name } %> +<%# locals: { f, field_values, readonly, field_label, field_properties, field_name, ttip } %> <% field_label = field_label || 'No label defined' %> +<% ttip = nil %>
<%= f.label field_name, field_label, class: 'control-label' %>
@@ -8,13 +9,13 @@ <% case field_properties["type"] %> <% when "string" %> <% if field_properties['format'].nil?%> - <%= create_text_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx) %> + <%= create_text_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx, ttip: ttip) %> <% elsif field_properties['format'] == 'date' %> - <%= create_date_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx) %> + <%= create_date_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx, ttip: ttip) %> <% elsif field_properties['format'] == 'uri' %> - <%= create_url_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx) %> + <%= create_url_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx, ttip: ttip) %> <% elsif field_properties['format'] == 'email' %> - <%= create_email_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx) %> + <%= create_email_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx, ttip: ttip) %> <%end%> <% when "integer" %> <%= create_number_field(f, value, field_name, field_label, is_multiple: true, readonly: readonly, index: idx)%> @@ -26,13 +27,13 @@ <% case field_properties["type"] %> <% when "string" %> <% if field_properties['format'].nil?%> - <%= create_text_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0) %> + <%= create_text_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0, ttip: ttip) %> <% elsif field_properties['format'] == 'date' %> - <%= create_date_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0) %> + <%= create_date_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0, ttip: ttip) %> <% elsif field_properties['format'] == 'uri' %> - <%= create_url_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0) %> + <%= create_url_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0, ttip: ttip) %> <% elsif field_properties['format'] == 'email' %> - <%= create_email_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0) %> + <%= create_email_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0, ttip: ttip) %> <%end%> <% when "integer" %> <%= create_number_field(f, nil, field_name, field_label, is_multiple: true, readonly: readonly, index: 0)%> diff --git a/app/views/branded/shared/dynamic_form/fields/_text_field.html.erb b/app/views/branded/shared/dynamic_form/fields/_text_field.html.erb index d71f2d4..76a5efb 100644 --- a/app/views/branded/shared/dynamic_form/fields/_text_field.html.erb +++ b/app/views/branded/shared/dynamic_form/fields/_text_field.html.erb @@ -1,4 +1,4 @@ -<%# locals: { f, field_label, field_name, multiple, classname, field_name, readonly, validation } %> +<%# locals: { f, field_label, field_name, multiple, classname, field_name, readonly, validation, ttip, example } %> <% field_label = field_label || 'No label defined' %> <% unless multiple %>
@@ -11,7 +11,10 @@ multiple: multiple, disabled: readonly, class: "form-control #{field_class}", - type: input_type %> + type: input_type, + "data-toggle": "tooltip", + title: ttip, + placeholder: example %> <% if multiple && readonly == false%>
diff --git a/config/schemas/main/CostValue-schema.json b/config/schemas/main/CostValue-schema.json index 0c2e33a..78bc4c3 100644 --- a/config/schemas/main/CostValue-schema.json +++ b/config/schemas/main/CostValue-schema.json @@ -8,7 +8,9 @@ "properties":{ "amount":{ "label": "Amount", - "type": "number" + "type": "number", + "toolTip@fr_FR": "Saisir le montant", + "toolTip@en_GB": "Enter the amount" }, "currency":{ "label": "Currency", diff --git a/config/schemas/main/DataCollection-schema.json b/config/schemas/main/DataCollection-schema.json index 8a2f485..acc3ca6 100644 --- a/config/schemas/main/DataCollection-schema.json +++ b/config/schemas/main/DataCollection-schema.json @@ -6,16 +6,23 @@ "type": "object", "properties": { "title": { - "label": "Title", + "label@fr_FR": "Titre", + "label@en_GB": "Title", "type": "string", "pattern": "(.)*((@en)|(@fr))", - "description": "Title for a data collection (step)" + "description": "Title for a data collection (step)", + "toolTip@fr_FR": "Saisissez le titre de la collection", + "toolTip@en_GB": "Enter collection title", + "example": "Foobar", + "default": "Titre de la collection" }, "description": { "label": "Description", "type": "string", "pattern": "(.)*((@en)|(@fr))", - "description": "description of the data collection methodology" + "description": "description of the data collection methodology", + "toolTip@fr_FR": "Saisissez la description de la collection", + "toolTip@en_GB": "Enter the collection description" }, "dataNature": { "label": "Data Nature", @@ -39,7 +46,9 @@ "label": "Methods URL", "type": "string", "format": "uri", - "description": "Urls of methods" + "description": "Urls of methods", + "toolTip@fr_FR": "Saisissez une URL de méthode", + "toolTip@en_GB": "Enter a method URL" }, "staffMember": { "label": "Staff Member", diff --git a/config/schemas/main/index.json b/config/schemas/main/index.json index 2b3299a..d1e232a 100644 --- a/config/schemas/main/index.json +++ b/config/schemas/main/index.json @@ -27,7 +27,7 @@ { "path": "DataOrganization-schema.json", "classname": "data_organization", - "question_id": 23981 + "question_id": null }, { "path": "DataProcessing-schema.json", @@ -37,7 +37,7 @@ { "path": "DataStorage-schema_Genci.json", "classname": "data_storage", - "question_id": 23984 + "question_id": null }, { "path": "Distribution-schema.json", @@ -47,12 +47,12 @@ { "path": "DocumentationQuality-schema.json", "classname": "documentation_quality", - "question_id": 23982 + "question_id": null }, { "path": "EthicalIssues-schema.json", "classname": "ethical_issues", - "question_id": 23988 + "question_id": null }, { "path": "Funder-schema.json", @@ -72,7 +72,7 @@ { "path": "LegalIssues-schema.json", "classname": "legal_issues", - "question_id": 23987 + "question_id": null }, { "path": "LegalItem-schema.json", diff --git a/rails.sh b/rails.sh index 4c059c9..c8aec8d 100644 --- a/rails.sh +++ b/rails.sh @@ -17,6 +17,7 @@ # Additionnal DB actions # bundle exec rake db:seed +bundle exec rake db:migrate bundle exec rake load_schemas # Start the app