From b6416e86c9c58b8e886c14de55b01aeb863b8676 Mon Sep 17 00:00:00 2001
From: erdgeist
Date: Thu, 2 Jul 2026 00:12:02 +0200
Subject: Clean up events views: return_to, subnav, remove custom_rrule
- events_controller: wire return_to through show and new actions;
create respects return_to with fallback to node/event path;
new pre-populates node_id and tag_list from params
- events/edit: remove custom_rrule checkbox; node link removed from
subnav (use show for node navigation); destroy button added
- events/new: remove custom_rrule checkbox; add return_to hidden
field and back link; tag_list field added
- events/show: fix back link via safe_return_to; add node link to
subnav; add destroy button; remove custom_rrule display; show
humanized rrule below raw string
- events/index: destructive class on destroy button; node_id column
replaced with node link; show/edit links carry return_to
- nodes/show: add show/edit links to event entries with return_to
---
app/controllers/events_controller.rb | 10 +++++++---
app/views/events/edit.html.erb | 9 +++------
app/views/events/index.html.erb | 10 ++++------
app/views/events/new.html.erb | 7 ++++---
app/views/events/show.html.erb | 16 +++++++++++-----
app/views/nodes/show.html.erb | 6 +++++-
6 files changed, 34 insertions(+), 24 deletions(-)
(limited to 'app')
diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb
index 3a60cf9..9bed5dd 100644
--- a/app/controllers/events_controller.rb
+++ b/app/controllers/events_controller.rb
@@ -21,6 +21,7 @@ class EventsController < ApplicationController
# GET /events/1.xml
def show
@event = Event.find(params[:id])
+ @return_to = params[:return_to] || events_path
respond_to do |format|
format.html # show.html.erb
@@ -31,7 +32,10 @@ class EventsController < ApplicationController
# GET /events/new
# GET /events/new.xml
def new
- @event = Event.new(:node_id => params[:node_id])
+ @event = Event.new(
+ node_id: params[:node_id],
+ tag_list: params[:tag_list]
+ )
respond_to do |format|
format.html # new.html.erb
@@ -53,7 +57,7 @@ class EventsController < ApplicationController
respond_to do |format|
if @event.save
flash[:notice] = 'Event was successfully created.'
- format.html { redirect_to(@event.node ? edit_node_path(@event.node) : edit_event_path(@event)) }
+ format.html { redirect_to(safe_return_to(params[:return_to] || (@event.node ? edit_node_path(@event.node) : edit_event_path(@event)))) }
format.xml { render :xml => @event, :status => :created, :location => @event }
else
format.html { render :action => "new" }
@@ -94,6 +98,6 @@ class EventsController < ApplicationController
private
def event_params
- params.require(:event).permit(:title, :description, :is_primary, :start_time, :end_time, :rrule, :custom_rrule, :allday, :url, :latitude, :longitude, :node_id, :location)
+ params.require(:event).permit(:title, :description, :start_time, :end_time, :rrule, :allday, :url, :latitude, :longitude, :node_id, :location, :tag_list)
end
end
diff --git a/app/views/events/edit.html.erb b/app/views/events/edit.html.erb
index 17457df..5aee501 100644
--- a/app/views/events/edit.html.erb
+++ b/app/views/events/edit.html.erb
@@ -1,9 +1,6 @@
<% content_for :subnavigation do %>
<%= link_to 'back', safe_return_to(params[:return_to] || events_path) %>
- <% if @event.node %>
- <%= link_to 'node', edit_node_path(@event.node) %>
- <% end %>
- <%= link_to 'show', @event %>
+ <%= button_to 'destroy', event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } %>
<% end %>
Editing event
@@ -25,8 +22,8 @@
<%= f.text_field :rrule %>
- <%= f.label :custom_rrule %>
- <%= f.check_box :custom_rrule %>
+ <%= f.label :tag_list, "Tags" %>
+ <%= f.text_field :tag_list %>
<%= f.label :allday %>
diff --git a/app/views/events/index.html.erb b/app/views/events/index.html.erb
index 064fa86..d0458d7 100644
--- a/app/views/events/index.html.erb
+++ b/app/views/events/index.html.erb
@@ -3,7 +3,6 @@
| Title |
- Is primary |
Start time |
End time |
Rrule |
@@ -16,17 +15,16 @@
<% @events.each do |event| %>
| <%=h event.display_title %> |
- <%=h event.is_primary %> |
<%=h event.start_time %> |
<%=h event.end_time %> |
<%=h event.rrule %> |
<%=h event.custom_rrule %> |
<%=h event.allday %> |
<%=h event.url %> |
- <%=h event.node_id %> |
- <%= link_to 'Show', event %> |
- <%= link_to 'Edit', edit_event_path(event) %> |
- <%= button_to 'Destroy', event, method: :delete, form: { data: { confirm: 'Are you sure?' } } %> |
+ <%= event.node ? link_to(event.node_id, node_path(event.node)) : '' %> |
+ <%= link_to 'show', event %> |
+ <%= link_to 'edit', edit_event_path(event) %> |
+ <%= button_to 'destroy', event, method: :delete, form: { data: { confirm: 'Are you sure?' }, class: 'button_to destructive' } %> |
<% end %>
diff --git a/app/views/events/new.html.erb b/app/views/events/new.html.erb
index cd892c5..4e1ef53 100644
--- a/app/views/events/new.html.erb
+++ b/app/views/events/new.html.erb
@@ -16,8 +16,8 @@
<%= f.text_field :rrule %>
- <%= f.label :custom_rrule %>
- <%= f.check_box :custom_rrule %>
+ <%= f.label :tag_list, "Tags" %>
+ <%= f.text_field :tag_list %>
<%= f.label :allday %>
@@ -37,10 +37,11 @@
<%= f.hidden_field :node_id %>
+ <%= hidden_field_tag :return_to, params[:return_to] %>
<%= f.submit 'Create' %>
<% end %>
-<%= link_to 'Back', events_path %>
+<%= link_to 'Back', safe_return_to(params[:return_to] || events_path) %>
diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb
index ba14a7d..e206bc4 100644
--- a/app/views/events/show.html.erb
+++ b/app/views/events/show.html.erb
@@ -1,6 +1,9 @@
<% content_for :subnavigation do %>
- <%= link_to 'back', edit_node_path(@event.node) %>
- <%= link_to 'edit', edit_event_path(@event) %>
+ <% if @event.node %>
+ <%= link_to 'node', node_path(@event.node) %>
+ <% end %>
+ <%= link_to 'edit', edit_event_path(@event, return_to: request.path) %>
+ <%= button_to 'destroy', event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } %>
<% end %>
Event for node <%= @event.node.unique_name %>
@@ -18,11 +21,14 @@
Rrule:
<%=h @event.rrule %>
+ <% if (human = @event.humanize_rrule(I18n.locale)) %>
+
( <%= human %> )
+ <% end %>
- Custom rrule:
- <%=h @event.custom_rrule %>
+ Tags:
+ <%=h @event.tag_list %>
@@ -43,4 +49,4 @@
Longitude:
<%=h @event.longitude %>
-
\ No newline at end of file
+
diff --git a/app/views/nodes/show.html.erb b/app/views/nodes/show.html.erb
index 7223219..2ce3853 100644
--- a/app/views/nodes/show.html.erb
+++ b/app/views/nodes/show.html.erb
@@ -48,7 +48,11 @@
<% @node.events.order(:start_time).each do |event| %>
- - <%= event_schedule_text(event) %><%= " (primary)" if event.is_primary? %>
+ -
+ <%= event_schedule_text(event) %>
+ [<%= link_to 'show', event_path(event, return_to: request.path) %>
+ | <%= link_to 'edit', edit_event_path(event, return_to: request.path) %>]
+
<% end %>
|
--
cgit v1.3