- Create new TicketsController with actions for name collection, creation, and checkout - Add dedicated ticket views (new.html.erb, checkout.html.erb, show.html.erb) - Update ticket_selection_controller.js to handle form submission via AJAX - Add store_cart endpoint in EventsController for session-based cart management - Update routes to support new ticket flow: /tickets/new, /create, /checkout - Fix attribute name consistency across views (title→name, starts_at→start_time) - Add Stripe checkout integration with proper error handling - Remove deprecated collect_names flow in favor of streamlined approach The flow is now: Event selection → AJAX cart storage → Name collection → Checkout → Payment
21 lines
899 B
Plaintext
Executable File
21 lines
899 B
Plaintext
Executable File
<% if flash.any? %>
|
|
<div class="container">
|
|
<div class="relative w-full flex justify-center p-4 mt-4">
|
|
<div class="w-full max-w-xl">
|
|
<% flash.each do |type, message| %>
|
|
<div class="notification <%= flash_class(type) %> flex items-center gap-3 p-4 rounded-lg mb-3 font-medium w-full box-border"
|
|
data-controller="flash-message">
|
|
<div class="notification-icon flex items-center shrink-0">
|
|
<%= flash_icon(type) %>
|
|
</div>
|
|
<span class="flex-1"><%= message %></span>
|
|
<button data-action="click->flash-message#close"
|
|
class="bg-transparent border-none cursor-pointer p-1 text-inherit opacity-70 transition-opacity duration-200">
|
|
<i data-lucide="x" class="w-4 h-4"></i>
|
|
</button>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<% end %> |