_explication: display champ.description instead of champ.value

This commit is contained in:
simon lehericey 2018-02-28 17:14:00 +01:00
parent 902cd1b4d9
commit 28c4dde96d
4 changed files with 39 additions and 4 deletions

View file

@ -20,7 +20,7 @@ class RootController < ApplicationController
end
def patron
description = 'a not so long description'
description = 'aller voir le super site : https://demarches-simplifiees.fr'
all_champs = TypeDeChamp.type_champs
.map { |name, _| TypeDeChamp.new(type_champ: name, private: false, libelle: name, description: description, mandatory: true) }
@ -45,8 +45,7 @@ class RootController < ApplicationController
type_champ_values = {
'date': '2016-07-26',
'datetime': '26/07/2016 07:35',
'textarea': 'Une description de mon projet',
'explication': 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In erat mauris, faucibus quis pharetra sit amet, pretium ac libero. Etiam vehicula eleifend bibendum. Morbi gravida metus ut sapien condimentum sodales mollis augue sodales. Vestibulum quis quam at sem placerat aliquet',
'textarea': 'Une description de mon projet'
}
type_champ_values.each do |(type_champ, value)|

View file

@ -2,4 +2,10 @@ module ChampHelper
def is_not_header_nor_explication?(champ)
!['header_section', 'explication'].include?(champ.type_champ)
end
def html_formatted_description(description)
html_formatted = simple_format(description)
with_links = html_formatted.gsub(URI.regexp, '<a target="_blank" href="\0">\0</a>')
sanitize(with_links, attributes: %w(href target))
end
end

View file

@ -1,2 +1,3 @@
%h2.explication-libelle= champ.libelle
%p.explication= champ.value
.explication
= html_formatted_description(champ.description)

View file

@ -0,0 +1,29 @@
RSpec.describe ChampHelper, type: :helper do
describe "#html_formatted_description" do
subject { html_formatted_description(description) }
context "with some simple texte" do
let(:description) { "1er ligne \n 2ieme ligne" }
it { is_expected.to eq("<p>1er ligne \n<br> 2ieme ligne</p>") }
end
context "with a link" do
let(:description) { "https://d-s.fr" }
it { is_expected.to eq("<p><a target=\"_blank\" href=\"https://d-s.fr\">https://d-s.fr</a></p>") }
end
context "with empty decription" do
let(:description) { nil }
it { is_expected.to eq('<p></p>') }
end
context "with a bad script" do
let(:description) { '<script>bad</script>' }
it { is_expected.to eq('<p>bad</p>') }
end
end
end