add react component (expert view) and block it when the flag is activated
This commit is contained in:
parent
03fd6eaeea
commit
a8b30c0cdc
2 changed files with 39 additions and 29 deletions
|
@ -1,30 +1,38 @@
|
||||||
%section.ask-avis
|
- if @dossier.procedure.feature_enabled?(:admin_affect_experts_to_avis).blank?
|
||||||
%h1.tab-title Inviter des personnes à donner leur avis
|
%section.ask-avis
|
||||||
%p.avis-notice Les invités pourront consulter le dossier, donner un avis et contribuer au fil de messagerie. Ils ne pourront pas modifier le dossier.
|
%h1.tab-title Inviter des personnes à donner leur avis
|
||||||
|
%p.avis-notice Les invités pourront consulter le dossier, donner un avis et contribuer au fil de messagerie. Ils ne pourront pas modifier le dossier.
|
||||||
|
|
||||||
= form_for avis, url: url, html: { class: 'form' } do |f|
|
= form_for avis, url: url, html: { class: 'form' } do |f|
|
||||||
= f.email_field :emails, placeholder: 'Adresses email, séparées par des virgules', required: true, multiple: true, onchange: "javascript:DS.replaceSemicolonByComma(event);"
|
- hidden_field_id = SecureRandom.uuid
|
||||||
= f.text_area :introduction, rows: 3, value: avis.introduction || 'Bonjour, merci de me donner votre avis sur ce dossier.', required: true
|
= hidden_field_tag 'avis[emails]', nil, data: { uuid: hidden_field_id }
|
||||||
%p.tab-title Ajouter une pièce jointe
|
= react_component("ComboMultipleDropdownList",
|
||||||
.form-group
|
options: [],
|
||||||
= text_upload_and_render f, avis.introduction_file
|
selected: [], disabled: [],
|
||||||
|
hiddenFieldId: hidden_field_id,
|
||||||
|
label: 'avis_emails',
|
||||||
|
acceptNewValues: true)
|
||||||
|
= f.text_area :introduction, rows: 3, value: avis.introduction || 'Bonjour, merci de me donner votre avis sur ce dossier.', required: true
|
||||||
|
%p.tab-title Ajouter une pièce jointe
|
||||||
|
.form-group
|
||||||
|
= text_upload_and_render f, avis.introduction_file
|
||||||
|
|
||||||
- if linked_dossiers.present?
|
- if linked_dossiers.present?
|
||||||
= f.check_box :invite_linked_dossiers, {}, true, false
|
= f.check_box :invite_linked_dossiers, {}, true, false
|
||||||
= f.label :invite_linked_dossiers, t('helpers.label.invite_linked_dossiers', count: linked_dossiers.length, ids: linked_dossiers.map(&:id).to_sentence)
|
= f.label :invite_linked_dossiers, t('helpers.label.invite_linked_dossiers', count: linked_dossiers.length, ids: linked_dossiers.map(&:id).to_sentence)
|
||||||
|
|
||||||
.flex.justify-between.align-baseline
|
.flex.justify-between.align-baseline
|
||||||
- if must_be_confidentiel
|
- if must_be_confidentiel
|
||||||
%p.confidentiel.flex
|
%p.confidentiel.flex
|
||||||
%span.icon.lock
|
%span.icon.lock
|
||||||
%span
|
%span
|
||||||
Cet avis sera confidentiel : il ne sera pas affiché aux autres experts consultés, mais sera visible par les instructeurs.
|
Cet avis sera confidentiel : il ne sera pas affiché aux autres experts consultés, mais sera visible par les instructeurs.
|
||||||
|
|
||||||
- else
|
- else
|
||||||
.confidentiel-wrapper
|
.confidentiel-wrapper
|
||||||
= f.label :confidentiel, 'Cet avis sera '
|
= f.label :confidentiel, 'Cet avis sera '
|
||||||
= f.select :confidentiel, [['partagé avec les autres experts', false], ['confidentiel', true]], {}, onchange: "javascript:DS.toggleCondidentielExplanation(event);"
|
= f.select :confidentiel, [['partagé avec les autres experts', false], ['confidentiel', true]], {}, onchange: "javascript:DS.toggleCondidentielExplanation(event);"
|
||||||
.confidentiel-explanation.hidden
|
.confidentiel-explanation.hidden
|
||||||
Il ne sera pas affiché aux autres experts consultés, mais sera visible par les instructeurs.
|
Il ne sera pas affiché aux autres experts consultés, mais sera visible par les instructeurs.
|
||||||
|
|
||||||
= f.submit 'Demander un avis', class: 'button primary send'
|
= f.submit 'Demander un avis', class: 'button primary send'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
feature 'Instructing a dossier:' do
|
feature 'Instructing a dossier:', js: true do
|
||||||
include ActiveJob::TestHelper
|
include ActiveJob::TestHelper
|
||||||
|
|
||||||
let(:password) { 'my-s3cure-p4ssword' }
|
let(:password) { 'my-s3cure-p4ssword' }
|
||||||
|
@ -101,11 +101,13 @@ feature 'Instructing a dossier:' do
|
||||||
click_on 'Avis externes'
|
click_on 'Avis externes'
|
||||||
expect(page).to have_current_path(avis_instructeur_dossier_path(procedure, dossier))
|
expect(page).to have_current_path(avis_instructeur_dossier_path(procedure, dossier))
|
||||||
|
|
||||||
|
expert_email_formated = "[\"expert@tps.com\"]"
|
||||||
expert_email = 'expert@tps.com'
|
expert_email = 'expert@tps.com'
|
||||||
ask_confidential_avis(expert_email, 'a good introduction')
|
ask_confidential_avis(expert_email_formated, 'a good introduction')
|
||||||
|
|
||||||
|
expert_email_formated = "[\"#{instructeur2.email}\"]"
|
||||||
expert_email = instructeur2.email
|
expert_email = instructeur2.email
|
||||||
ask_confidential_avis(expert_email, 'a good introduction')
|
ask_confidential_avis(expert_email_formated, 'a good introduction')
|
||||||
|
|
||||||
click_on 'Personnes impliquées'
|
click_on 'Personnes impliquées'
|
||||||
expect(page).to have_text(expert_email)
|
expect(page).to have_text(expert_email)
|
||||||
|
@ -206,7 +208,7 @@ feature 'Instructing a dossier:' do
|
||||||
end
|
end
|
||||||
|
|
||||||
def ask_confidential_avis(to, introduction)
|
def ask_confidential_avis(to, introduction)
|
||||||
fill_in 'avis_emails', with: to
|
page.execute_script("document.querySelector('#avis_emails').value = '#{to}'")
|
||||||
fill_in 'avis_introduction', with: introduction
|
fill_in 'avis_introduction', with: introduction
|
||||||
select 'confidentiel', from: 'avis_confidentiel'
|
select 'confidentiel', from: 'avis_confidentiel'
|
||||||
click_on 'Demander un avis'
|
click_on 'Demander un avis'
|
||||||
|
|
Loading…
Reference in a new issue