Skip to content

Commit

Permalink
Add form error partial
Browse files Browse the repository at this point in the history
  • Loading branch information
dngst committed Feb 19, 2024
1 parent 2b48f54 commit 35638c8
Show file tree
Hide file tree
Showing 10 changed files with 29 additions and 75 deletions.
18 changes: 3 additions & 15 deletions app/views/articles/_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@
Property <span class="text-red-500">*</span>
<% end %>
<%= form.collection_select(:property_id, Property.my_properties(current_user), :id, :name, { prompt: "Select a property" }, { class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" }) %>
<% if @article.errors.include?(:property) %>
<% @article.errors.full_messages_for(:property).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "shared/form_error", model: @article, field: :property %>
</div>
<% else %>
<div class="mb-4">
Expand All @@ -22,20 +18,12 @@
Title <span class="text-red-500">*</span>
<% end %>
<%= form.text_field :title, placeholder: "Untitled", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if @article.errors.include?(:title) %>
<% @article.errors.full_messages_for(:title).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "shared/form_error", model: @article, field: :title %>
</div>

<div class="mt-4">
<%= form.text_area :body, placeholder: "Write your article", class: "w-full px-3 py-2 border rounded-lg border-gray-300 h-64 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if @article.errors.include?(:body) %>
<% @article.errors.full_messages_for(:body).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "shared/form_error", model: @article, field: :body %>
</div>


Expand Down
12 changes: 2 additions & 10 deletions app/views/devise/passwords/edit.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,13 @@
<em class="text-gray-600">(<%= @minimum_password_length %> characters minimum)</em>
<% end %>
<%= f.password_field :password, autofocus: true, autocomplete: "new-password", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:password) %>
<% resource.errors.full_messages_for(:password).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :password %>
</div>

<div class="mt-4">
<%= f.label :password_confirmation, "Confirm new password", class: "block font-semibold text-gray-800" %>
<%= f.password_field :password_confirmation, autocomplete: "new-password", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:password_confirmation) %>
<% resource.errors.full_messages_for(:password_confirmation).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :password_confirmation %>
</div>

<div class="mt-4">
Expand Down
6 changes: 1 addition & 5 deletions app/views/devise/passwords/new.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,7 @@
<div class="mt-4">
<%= f.label :email, class: "block font-semibold text-gray-800" %>
<%= f.email_field :email, autofocus: true, autocomplete: "email", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:email) %>
<% resource.errors.full_messages_for(:email).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :email %>
</div>

<div class="mt-4">
Expand Down
24 changes: 4 additions & 20 deletions app/views/devise/registrations/edit.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,7 @@
Email <span class="text-red-500">*</span>
<% end %>
<%= f.email_field :email, autofocus: true, autocomplete: "email", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:email) %>
<% resource.errors.full_messages_for(:email).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :email %>
</div>

<% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
Expand All @@ -32,11 +28,7 @@
<%= f.label :password, class: "text-gray-800" %>
<i class="text-gray-600">(leave blank if you don't want to change it)</i>
<%= f.password_field :password, autocomplete: "new-password", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:password) %>
<% resource.errors.full_messages_for(:password).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :password %>
<% if @minimum_password_length %>
<div class="text-gray-600">
<%= @minimum_password_length %> characters minimum
Expand All @@ -47,11 +39,7 @@
<div class="mb-4">
<%= f.label :password_confirmation, class: "text-gray-800" %>
<%= f.password_field :password_confirmation, autocomplete: "new-password", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:password_confirmation) %>
<% resource.errors.full_messages_for(:password_confirmation).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :password_confirmation %>
</div>

<div class="mb-4">
Expand All @@ -60,11 +48,7 @@
<% end %>
<i class="text-gray-600">(we need your current password to confirm your changes)</i>
<%= f.password_field :current_password, autocomplete: "current-password", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:current_password) %>
<% resource.errors.full_messages_for(:current_password).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :current_password %>
</div>

<div class="mb-4">
Expand Down
12 changes: 2 additions & 10 deletions app/views/devise/registrations/new.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -40,23 +40,15 @@
Phone number <span class="text-red-500">*</span>
<% end %>
<%= f.text_field :phone_number, placeholder: "0700000000", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:phone_number) %>
<% resource.errors.full_messages_for(:phone_number).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :phone_number %>
</div>

<div class="mb-4">
<%= f.label :email, class: "block font-semibold text-gray-800" do %>
Email <span class="text-red-500">*</span>
<% end %>
<%= f.email_field :email, placeholder: "jane.doe@example.com", autocomplete: "email", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if resource.errors.include?(:email) %>
<% resource.errors.full_messages_for(:email).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "devise/shared/form_error", field: :email %>
</div>

<div class="mb-4">
Expand Down
5 changes: 5 additions & 0 deletions app/views/devise/shared/_form_error.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<% if resource.errors.include?(field) %>
<% resource.errors.full_messages_for(field).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
6 changes: 1 addition & 5 deletions app/views/properties/_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@
Name <span class="text-red-500">*</span>
<% end %>
<%= form.text_field :name, placeholder: "Fhloston Paradise", autofocus: true, class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if property.errors.include?(:name) %>
<% property.errors.full_messages_for(:name).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "shared/form_error", model: property, field: :name %>
</div>

<%= form.hidden_field :user_id, value: current_user.id %>
Expand Down
12 changes: 2 additions & 10 deletions app/views/requests/_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,15 @@
Title <span class="text-red-500">*</span>
<% end %>
<%= form.text_field :title, placeholder: "Untitled", autofocus: true, class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston" %>
<% if @request.errors.include?(:title) %>
<% @request.errors.full_messages_for(:title).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "shared/form_error", model: @request, field: :title %>
</div>

<div class="mb-4">
<%= form.label :description, class: "block text-gray-800" do %>
Description <span class="text-red-500">*</span>
<% end %>
<%= form.text_area :description, placeholder: "Write your request", class: "w-full px-3 py-2 border rounded-lg border-gray-300 mt-2 focus:outline-none focus:border-floston focus:ring-floston h-64" %>
<% if @request.errors.include?(:description) %>
<% @request.errors.full_messages_for(:description).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
<%= render "shared/form_error", model: @request, field: :description %>
</div>

<div class="mt-4">
Expand Down
5 changes: 5 additions & 0 deletions app/views/shared/_form_error.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<% if model.errors.include?(field) %>
<% model.errors.full_messages_for(field).each do |error| %>
<p class="text-red-500 mt-2"><%= error %></p>
<% end %>
<% end %>
4 changes: 4 additions & 0 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ en:
activerecord:
errors:
models:
comment:
attributes:
body:
blank: "Comment can't be blank"
user:
attributes:
fname:
Expand Down

0 comments on commit 35638c8

Please sign in to comment.