Add contact flash

This commit is contained in:
julien committed 2026-11-03 16:47:04 +01:00
1 parent 9d1cda213e
commit 4ba81f3a6b
3 files changed
+20 -4

No files matched your search

+4 -1
View File
@@ -6,6 +6,8 @@ class ContactForm
"message" => 5000 "message" => 5000
}.freeze }.freeze
EMAIL_PATTERN = /\A[A-Z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[A-Z0-9!#$%&'*+\/=?^_`{|}~-]+)*@[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?(?:\.[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?)+\z/i
def initialize(params) def initialize(params)
@params = params @params = params
end end
@@ -26,7 +28,8 @@ class ContactForm
return false unless fields_valid return false unless fields_valid
email_valid = @params["email"].strip.match?(/\A[^\s@]+@[^\s@]+\.[^\s@]+\z/) email_valid = @params["email"].strip.match?(EMAIL_PATTERN)
headers_valid = %w[name subject].none? do |key| headers_valid = %w[name subject].none? do |key|
@params[key].match?(/[\r\n]/) @params[key].match?(/[\r\n]/)
end end
+3 -3
View File
@@ -6,9 +6,9 @@ class ContactMailer
end end
def build def build
email = @params["email"] email = @params["email"].strip
name = @params["name"] name = @params["name"].strip
subject = @params["subject"] subject = @params["subject"].strip
message = @params["message"] message = @params["message"]
Mail.new do Mail.new do
+13
View File
@@ -1,6 +1,19 @@
<section class="page-section"> <section class="page-section">
<div class="content page-panel"> <div class="content page-panel">
<h1>Contact</h1> <h1>Contact</h1>
<% if flash["error"] || flash["notice"] %>
<div class="flash-container">
<% if error = flash["error"] %>
<p class="flash flash--error" role="alert"><%= error %></p>
<% end %>
<% if notice = flash["notice"] %>
<p class="flash flash--notice" role="status"><%= notice %></p>
<% end %>
</div>
<% end %>
<div class="col--1-1"> <div class="col--1-1">
<div> <div>
<p>Vous avez un projet en tête ? Un service vous intéresse ? Ou simplement une question ? Ce formulaire est là pour ça !</p> <p>Vous avez un projet en tête ? Un service vous intéresse ? Ou simplement une question ? Ce formulaire est là pour ça !</p>