summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-02 00:12:02 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-02 00:12:02 +0200
commitb6416e86c9c58b8e886c14de55b01aeb863b8676 (patch)
tree55a69ed46888e6a47ccc35a22cef45a33cddfd87
parentbf68c8fed6776cd40d859e6e968a251b4b934c8b (diff)
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
-rw-r--r--app/controllers/events_controller.rb10
-rw-r--r--app/views/events/edit.html.erb9
-rw-r--r--app/views/events/index.html.erb10
-rw-r--r--app/views/events/new.html.erb7
-rw-r--r--app/views/events/show.html.erb16
-rw-r--r--app/views/nodes/show.html.erb6
6 files changed, 34 insertions, 24 deletions
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
21 # GET /events/1.xml 21 # GET /events/1.xml
22 def show 22 def show
23 @event = Event.find(params[:id]) 23 @event = Event.find(params[:id])
24 @return_to = params[:return_to] || events_path
24 25
25 respond_to do |format| 26 respond_to do |format|
26 format.html # show.html.erb 27 format.html # show.html.erb
@@ -31,7 +32,10 @@ class EventsController < ApplicationController
31 # GET /events/new 32 # GET /events/new
32 # GET /events/new.xml 33 # GET /events/new.xml
33 def new 34 def new
34 @event = Event.new(:node_id => params[:node_id]) 35 @event = Event.new(
36 node_id: params[:node_id],
37 tag_list: params[:tag_list]
38 )
35 39
36 respond_to do |format| 40 respond_to do |format|
37 format.html # new.html.erb 41 format.html # new.html.erb
@@ -53,7 +57,7 @@ class EventsController < ApplicationController
53 respond_to do |format| 57 respond_to do |format|
54 if @event.save 58 if @event.save
55 flash[:notice] = 'Event was successfully created.' 59 flash[:notice] = 'Event was successfully created.'
56 format.html { redirect_to(@event.node ? edit_node_path(@event.node) : edit_event_path(@event)) } 60 format.html { redirect_to(safe_return_to(params[:return_to] || (@event.node ? edit_node_path(@event.node) : edit_event_path(@event)))) }
57 format.xml { render :xml => @event, :status => :created, :location => @event } 61 format.xml { render :xml => @event, :status => :created, :location => @event }
58 else 62 else
59 format.html { render :action => "new" } 63 format.html { render :action => "new" }
@@ -94,6 +98,6 @@ class EventsController < ApplicationController
94 private 98 private
95 99
96 def event_params 100 def event_params
97 params.require(:event).permit(:title, :description, :is_primary, :start_time, :end_time, :rrule, :custom_rrule, :allday, :url, :latitude, :longitude, :node_id, :location) 101 params.require(:event).permit(:title, :description, :start_time, :end_time, :rrule, :allday, :url, :latitude, :longitude, :node_id, :location, :tag_list)
98 end 102 end
99end 103end
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 @@
1<% content_for :subnavigation do %> 1<% content_for :subnavigation do %>
2 <%= link_to 'back', safe_return_to(params[:return_to] || events_path) %> 2 <%= link_to 'back', safe_return_to(params[:return_to] || events_path) %>
3 <% if @event.node %> 3 <%= button_to 'destroy', event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } %>
4 <%= link_to 'node', edit_node_path(@event.node) %>
5 <% end %>
6 <%= link_to 'show', @event %>
7<% end %> 4<% end %>
8 5
9<h1>Editing event</h1> 6<h1>Editing event</h1>
@@ -25,8 +22,8 @@
25 <%= f.text_field :rrule %> 22 <%= f.text_field :rrule %>
26 </p> 23 </p>
27 <p> 24 <p>
28 <%= f.label :custom_rrule %><br /> 25 <%= f.label :tag_list, "Tags" %><br />
29 <%= f.check_box :custom_rrule %> 26 <%= f.text_field :tag_list %>
30 </p> 27 </p>
31 <p> 28 <p>
32 <%= f.label :allday %><br /> 29 <%= f.label :allday %><br />
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 @@
3<table> 3<table>
4 <tr> 4 <tr>
5 <th>Title</th> 5 <th>Title</th>
6 <th>Is primary</th>
7 <th>Start time</th> 6 <th>Start time</th>
8 <th>End time</th> 7 <th>End time</th>
9 <th>Rrule</th> 8 <th>Rrule</th>
@@ -16,17 +15,16 @@
16<% @events.each do |event| %> 15<% @events.each do |event| %>
17 <tr> 16 <tr>
18 <td><%=h event.display_title %></td> 17 <td><%=h event.display_title %></td>
19 <td><%=h event.is_primary %></td>
20 <td><%=h event.start_time %></td> 18 <td><%=h event.start_time %></td>
21 <td><%=h event.end_time %></td> 19 <td><%=h event.end_time %></td>
22 <td><%=h event.rrule %></td> 20 <td><%=h event.rrule %></td>
23 <td><%=h event.custom_rrule %></td> 21 <td><%=h event.custom_rrule %></td>
24 <td><%=h event.allday %></td> 22 <td><%=h event.allday %></td>
25 <td><%=h event.url %></td> 23 <td><%=h event.url %></td>
26 <td><%=h event.node_id %></td> 24 <td><%= event.node ? link_to(event.node_id, node_path(event.node)) : '' %></td>
27 <td><%= link_to 'Show', event %></td> 25 <td><%= link_to 'show', event %></td>
28 <td><%= link_to 'Edit', edit_event_path(event) %></td> 26 <td><%= link_to 'edit', edit_event_path(event) %></td>
29 <td><%= button_to 'Destroy', event, method: :delete, form: { data: { confirm: 'Are you sure?' } } %></td> 27 <td><%= button_to 'destroy', event, method: :delete, form: { data: { confirm: 'Are you sure?' }, class: 'button_to destructive' } %></td>
30 </tr> 28 </tr>
31<% end %> 29<% end %>
32</table> 30</table>
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 @@
16 <%= f.text_field :rrule %> 16 <%= f.text_field :rrule %>
17 </p> 17 </p>
18 <p> 18 <p>
19 <%= f.label :custom_rrule %><br /> 19 <%= f.label :tag_list, "Tags" %><br />
20 <%= f.check_box :custom_rrule %> 20 <%= f.text_field :tag_list %>
21 </p> 21 </p>
22 <p> 22 <p>
23 <%= f.label :allday %><br /> 23 <%= f.label :allday %><br />
@@ -37,10 +37,11 @@
37 </p> 37 </p>
38 <p> 38 <p>
39 <%= f.hidden_field :node_id %> 39 <%= f.hidden_field :node_id %>
40 <%= hidden_field_tag :return_to, params[:return_to] %>
40 </p> 41 </p>
41 <p> 42 <p>
42 <%= f.submit 'Create' %> 43 <%= f.submit 'Create' %>
43 </p> 44 </p>
44<% end %> 45<% end %>
45 46
46<%= link_to 'Back', events_path %> 47<%= 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 @@
1<% content_for :subnavigation do %> 1<% content_for :subnavigation do %>
2 <%= link_to 'back', edit_node_path(@event.node) %> 2 <% if @event.node %>
3 <%= link_to 'edit', edit_event_path(@event) %> 3 <%= link_to 'node', node_path(@event.node) %>
4 <% end %>
5 <%= link_to 'edit', edit_event_path(@event, return_to: request.path) %>
6 <%= button_to 'destroy', event_path(@event), method: :delete, form: { data: { confirm: 'Delete this event?' }, class: 'button_to destructive' } %>
4<% end %> 7<% end %>
5 8
6<h2>Event for node <%= @event.node.unique_name %></h2> 9<h2>Event for node <%= @event.node.unique_name %></h2>
@@ -18,11 +21,14 @@
18<p> 21<p>
19 <b>Rrule:</b> 22 <b>Rrule:</b>
20 <%=h @event.rrule %> 23 <%=h @event.rrule %>
24 <% if (human = @event.humanize_rrule(I18n.locale)) %>
25 <br/><small><em>( <%= human %></em> )</small>
26 <% end %>
21</p> 27</p>
22 28
23<p> 29<p>
24 <b>Custom rrule:</b> 30 <b>Tags:</b>
25 <%=h @event.custom_rrule %> 31 <%=h @event.tag_list %>
26</p> 32</p>
27 33
28<p> 34<p>
@@ -43,4 +49,4 @@
43<p> 49<p>
44 <b>Longitude:</b> 50 <b>Longitude:</b>
45 <%=h @event.longitude %> 51 <%=h @event.longitude %>
46</p> \ No newline at end of file 52</p>
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 @@
48 <td> 48 <td>
49 <ul> 49 <ul>
50 <% @node.events.order(:start_time).each do |event| %> 50 <% @node.events.order(:start_time).each do |event| %>
51 <li><%= event_schedule_text(event) %><%= " (primary)" if event.is_primary? %></li> 51 <li>
52 <%= event_schedule_text(event) %>
53 [<%= link_to 'show', event_path(event, return_to: request.path) %>
54 | <%= link_to 'edit', edit_event_path(event, return_to: request.path) %>]
55 </li>
52 <% end %> 56 <% end %>
53 </ul> 57 </ul>
54 </td> 58 </td>