1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
class EventsController < ApplicationController
include PinnedToDefaultLocale
# Private
before_action :login_required
layout 'admin'
# GET /events
# GET /events.xml
def index
scope = Event.order(Arel.sql("start_time DESC NULLS LAST"))
scope = scope.merge(Event.editor_search(params[:q])) if params[:q].present?
respond_to do |format|
format.html { @events = scope.paginate(:page => params[:page], :per_page => 25) }
format.xml { render :xml => scope }
end
end
# GET /events/1
# 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
format.xml { render :xml => @event }
end
end
# GET /events/new
# GET /events/new.xml
def new
@event = Event.new(
node_id: params[:node_id],
tag_list: params[:tag_list]
)
if params[:tag_list].present? && params[:auto_tag_source].present?
flash.now[:notice] = t("flash.events.tag_prefilled", :tag => params[:tag_list], :source => params[:auto_tag_source])
end
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @event }
end
end
# GET /events/1/edit
def edit
@event = Event.find(params[:id])
@return_to = params[:return_to] || events_path
end
# POST /events
# POST /events.xml
def create
@event = Event.new(event_params)
respond_to do |format|
if @event.save_witnessed(:actor => current_user)
flash[:notice] = t("flash.events.created")
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" }
format.xml { render :xml => @event.errors, :status => :unprocessable_entity }
end
end
end
# PUT /events/1
# PUT /events/1.xml
def update
@event = Event.find(params[:id])
respond_to do |format|
if @event.update_witnessed(event_params, :actor => current_user)
flash[:notice] = t("flash.events.updated")
format.html { redirect_to(safe_return_to(params[:return_to] || events_path)) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @event.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /events/1
# DELETE /events/1.xml
def destroy
@event = Event.find(params[:id])
@event.destroy_witnessed(:actor => current_user)
respond_to do |format|
format.html { redirect_to(events_url) }
format.xml { head :ok }
end
end
private
def event_params
params.require(:event).permit(:title, :description, :start_time, :end_time, :rrule, :allday, :url, :latitude, :longitude, :node_id, :location, :tag_list)
end
end
|