diff --git a/app/assets/stylesheets/dmpopidor.scss b/app/assets/stylesheets/dmpopidor.scss index 003b7e4..117f063 100644 --- a/app/assets/stylesheets/dmpopidor.scss +++ b/app/assets/stylesheets/dmpopidor.scss @@ -710,9 +710,18 @@ border: 0.5px groove $color-border-light; box-shadow: 0px 0px 0px 0px $color-shadow-dark; padding: 5px; - .research-output-abbreviation, .research-output-pid, .research-output-type { + .research-output-pid, .research-output-type { width: 30%; } + .research-output-names { + display: flex; + .research-output-fullname { + flex: 8; + } + .research-output-abbreviation { + flex: 3; + } + } } .research-output-actions { flex: 1; @@ -721,7 +730,7 @@ justify-content: center; color: $blue; - .handle { + .handle, .edit, .cancel { cursor: pointer; } a { diff --git a/app/javascript/views/plans/research_outputs.js b/app/javascript/views/plans/research_outputs.js index 623e086..5e00aa5 100644 --- a/app/javascript/views/plans/research_outputs.js +++ b/app/javascript/views/plans/research_outputs.js @@ -12,7 +12,7 @@ $('#add-research-output').click(() => { const lastResearchOutput = $('#research-outputs .research-output-element').last(); const lastResearchOutputOrder = parseInt(lastResearchOutput.find('.research-output-order').val(), 10); - const duplicated = lastResearchOutput.clone(false, false); + const duplicated = lastResearchOutput.clone(true, true); const duplicatedId = `plan_research_outputs_attributes_${new Date().getTime()}`; const duplicatedName = `plan[research_outputs_attributes][${new Date().getTime()}]`; @@ -36,6 +36,7 @@ duplicated.find('.research-output-type select').attr('name', `${duplicatedName}[research_output_type_id]`); duplicated.find('.research-output-type label').attr('for', `${duplicatedId}_research_output_type_id`); duplicated.find('.research-output-type select').val(null); + duplicated.find('.research-output-type select').trigger('change'); // Research Output order duplicated.find('.research-output-order').attr('id', `${duplicatedId}_order`); duplicated.find('.research-output-order').attr('name', `${duplicatedName}[order]`); @@ -49,9 +50,41 @@ const parentElement = selectElement.closest('.research-output-element'); const otherTypeElement = parentElement.find('.research-output-other-type'); if (selectElement.find('option:selected').data('other')) { + console.log('ici'); otherTypeElement.show(); } else { + console.log('ici'); otherTypeElement.hide(); } }); + + $('#research-outputs').on('click', ' .research-output-actions .edit', (e) => { + const editElement = $(e.target); + const parentElement = $(e.target).closest('.research-output-element'); + const cancelElement = parentElement.find('.cancel'); + parentElement.find('.input').each((idx, inp) => { + $(inp).show(); + }); + parentElement.find('span').each((idx, val) => { + $(val).hide(); + }); + + editElement.hide(); + cancelElement.show(); + }); + + $('#research-outputs').on('click', ' .research-output-actions .cancel', (e) => { + const cancelElement = $(e.target); + const parentElement = $(e.target).closest('.research-output-element'); + const editElement = parentElement.find('.edit'); + parentElement.find('.input').each((idx, inp) => { + $(inp).hide(); + }); + parentElement.find('span').each((idx, val) => { + $(val).show(); + }); + + editElement.show(); + cancelElement.hide(); + }); }); diff --git a/app/views/branded/plans/_research_output_fields.html.erb b/app/views/branded/plans/_research_output_fields.html.erb index 9b0a87b..356e217 100644 --- a/app/views/branded/plans/_research_output_fields.html.erb +++ b/app/views/branded/plans/_research_output_fields.html.erb @@ -1,16 +1,22 @@ <%# locals: { plan, research_output, research_output_types } %> <% other_type_displayed = research_output.research_output_type && research_output.research_output_type.is_other ? '' : 'display:none;' %> +<% display_inputs = research_output.is_default ? '' : "display:none;" %> +<% display_values = research_output.is_default ? "display:none;" : '' %>
-
- <%= f.label :name, d_('dmpopidor', 'Abbreviated Name (20 chars max.)'), class: 'control-label' %> - <%= f.text_field :abbreviation, maxlength: 20, class: 'form-control', "aria-required": true %> +
+
+ <%= f.label :name, d_('dmpopidor', 'Abbreviated Name (20 chars max.)'), class: 'control-label' %> + <%= f.text_field :abbreviation, maxlength: 20, class: 'form-control input', "aria-required": true, style: display_inputs %> + <%= research_output.abbreviation ? research_output.abbreviation : _('None') %> +
+
+ <%= f.label :fullname, d_('dmpopidor', 'Fullname'), class: 'control-label' %> + <%= f.text_field :fullname, class: 'form-control input', "aria-required": true, style: display_inputs %> + <%= research_output.fullname ? research_output.fullname : _('None') %> +
-
- <%= f.label :fullname, d_('dmpopidor', 'Fullname'), class: 'control-label' %> - <%= f.text_field :fullname, class: 'form-control', "aria-required": true %> -
-
+ -
+
<%= f.label :other_type_label, d_('dmpopidor', 'Other Type'), class: 'control-label' %> - <%= f.text_field :other_type_label, class: 'form-control' %> + <%= f.text_field :other_type_label, class: 'form-control input', style: display_inputs %> + <%= research_output.other_type_label %>
-
+
<%= f.label :pid, d_('dmpopidor', 'Persistent Identifier'), class: 'control-label' %> - <%= f.text_field :pid, class: 'form-control' %> + <%= f.text_field :pid, class: 'form-control input', style: display_inputs %> + <%= research_output.pid ? research_output.pid : _('None') %>
<%= f.hidden_field :order, class: 'research-output-order' %>
- + + <%= link_to plan_research_output_url(plan, research_output), data: {:confirm => d_('dmpopidor', 'Deleting this research output will remove the associated answers. Do you confirm ?')}, :method => :delete do %> - <% end %>
diff --git a/config/locale/dmpopidor.pot b/config/locale/dmpopidor.pot index 7518289..5fd51fb 100644 --- a/config/locale/dmpopidor.pot +++ b/config/locale/dmpopidor.pot @@ -323,3 +323,9 @@ msgid "DMP owners and co-owners" msgstr "" + +msgid "Edit research output" +msgstr "" + +msgid "Cancel research output edition" +msgstr "" diff --git a/config/locale/en_GB/dmpopidor.po b/config/locale/en_GB/dmpopidor.po index bcd1580..036b05c 100644 --- a/config/locale/en_GB/dmpopidor.po +++ b/config/locale/en_GB/dmpopidor.po @@ -318,4 +318,10 @@ msgstr "All Users" msgid "DMP owners and co-owners" -msgstr "DMP owners and co-owners" \ No newline at end of file +msgstr "DMP owners and co-owners" + +msgid "Edit research output" +msgstr "Edit research output" + +msgid "Cancel research output edition" +msgstr "Cancel research output edition" \ No newline at end of file diff --git a/config/locale/fr_FR/dmpopidor.po b/config/locale/fr_FR/dmpopidor.po index e5db772..8011a3b 100644 --- a/config/locale/fr_FR/dmpopidor.po +++ b/config/locale/fr_FR/dmpopidor.po @@ -318,4 +318,10 @@ msgstr "Tous les utilisateurs" msgid "DMP owners and co-owners" -msgstr "Propriétaires et co-propriétaires de plans" \ No newline at end of file +msgstr "Propriétaires et co-propriétaires de plans" + +msgid "Edit research output" +msgstr "Modifier le produit de recherche" + +msgid "Cancel research output edition" +msgstr "Annuler la modification du produit de recherche" \ No newline at end of file