From 911e821948a21b336a9ffc0f9e1c7cdd9e8e3e1f Mon Sep 17 00:00:00 2001 From: kbe Date: Thu, 28 Aug 2025 18:50:19 +0200 Subject: [PATCH] feat(events): breadcrumb on page - Add breadcrumb on ``/events`` page --- app/assets/stylesheets/pages/events.css | 90 ++++++++++++++++++ app/views/events/index.html.erb | 120 +++++++++++++++++++++--- 2 files changed, 196 insertions(+), 14 deletions(-) create mode 100755 app/assets/stylesheets/pages/events.css diff --git a/app/assets/stylesheets/pages/events.css b/app/assets/stylesheets/pages/events.css new file mode 100755 index 0000000..6498d5f --- /dev/null +++ b/app/assets/stylesheets/pages/events.css @@ -0,0 +1,90 @@ +/* Events page specific styles */ + +.events-page { + background: linear-gradient(135deg, var(--color-neutral-50) 0%, var(--color-neutral-100) 100%); + min-height: 100vh; +} + +.events-page .breadcrumb { + padding: var(--space-4) 0; +} + +.events-page .event-card { + background: white; + border-radius: var(--radius-2xl); + overflow: hidden; + box-shadow: var(--shadow-lg); + transition: all var(--duration-slow) var(--ease-out); + border: 1px solid var(--color-neutral-200); + position: relative; +} + +.events-page .event-card:hover { + transform: translateY(-8px) scale(1.02); + box-shadow: var(--shadow-2xl); + border-color: var(--color-primary-200); +} + +.events-page .event-date-badge { + background: linear-gradient(135deg, var(--color-primary-100) 0%, var(--color-accent-100) 100%); + color: var(--color-primary-800); + font-weight: 700; + padding: var(--space-1) var(--space-3); + border-radius: var(--radius-full); + font-size: var(--text-xs); +} + +.events-page .price-highlight { + color: var(--color-primary-600); + font-weight: 800; +} + +.events-page .pagination { + margin-top: var(--space-12); +} + +.events-page .pagination .page, +.events-page .pagination .next, +.events-page .pagination .last, +.events-page .pagination .prev, +.events-page .pagination .first { + padding: var(--space-2) var(--space-4); + border-radius: var(--radius-lg); + margin: 0 var(--space-1); + transition: all var(--duration-normal); +} + +.events-page .pagination .page:hover, +.events-page .pagination .next:hover, +.events-page .pagination .last:hover, +.events-page .pagination .prev:hover, +.events-page .pagination .first:hover { + background: var(--color-primary-100); + color: var(--color-primary-700); +} + +.events-page .pagination .current { + background: var(--color-primary-600); + color: white; + font-weight: 700; +} + +.events-page .no-events-card { + background: white; + border-radius: var(--radius-2xl); + padding: var(--space-12); + box-shadow: var(--shadow-lg); + text-align: center; + max-width: 500px; + margin: 0 auto; +} + +@media (max-width: 768px) { + .events-page .event-grid { + grid-template-columns: 1fr; + } + + .events-page .no-events-card { + padding: var(--space-8); + } +} \ No newline at end of file diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb index b6cb983..c027b37 100755 --- a/app/views/events/index.html.erb +++ b/app/views/events/index.html.erb @@ -1,23 +1,81 @@
-
+

Événements à venir

- <%= @events.total_count %> événements trouvés + <%= @events.total_count %> + événements trouvés
+ + <% if @events.any? %>
<% @events.each do |event| %> -
+
<% if event.image.present? %>
<%= image_tag event.image, class: "w-full h-full object-cover" %>
<% else %> -
- - +
+ +
<% end %> @@ -28,12 +86,22 @@

<%= event.name %>

- + <%= event.venue_name.truncate(20) %>

- + <%= event.start_time.strftime("%d/%m") %>
@@ -46,7 +114,8 @@
<% if event.ticket_types.any? %>

- À partir de <%= format_price(event.ticket_types.minimum(:price_cents)) %>€ + À partir de + <%= format_price(event.ticket_types.minimum(:price_cents)) %>€

<% else %>

Pas de billets disponibles

@@ -56,7 +125,12 @@ <%= link_to event_path(event.slug, event), class: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-lg shadow-sm text-white bg-gradient-to-r from-purple-600 to-indigo-600 hover:from-purple-700 hover:to-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-purple-500 transition-all duration-200" do %> Détails - + <% end %>
@@ -71,14 +145,32 @@ <% else %>
-
- - +
+ +

Aucun événement disponible

Il n'y a aucun événement à venir pour le moment.

- <%= link_to "Retour à l'accueil", root_path, class: "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-gradient-to-r from-purple-600 to-indigo-600 hover:from-purple-700 hover:to-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-purple-500" %> + <%= link_to "Retour à l'accueil", + root_path, + class: + "inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-gradient-to-r from-purple-600 to-indigo-600 hover:from-purple-700 hover:to-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-purple-500" %>
<% end %>