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