calendar/app/controllers/admin/calendars_controller.rb

149 lines
3.8 KiB
Ruby

class Admin::CalendarsController < OrbitAdminController
# GET /events
# GET /events.json
def index
if params[:start].present? && params[:end].present?
sdt = Time.at(params[:start].to_i)
edt = Time.at(params[:end].to_i)
@monthly_events = Event.monthly_event(sdt,edt)
@re = Event.recurring_event(sdt,edt)
events = @monthly_events.inject(@re, :<<)
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: events.to_json }
end
end
# GET /events/1
# GET /events/1.json
def show
@event = Event.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @event }
end
end
def agenda
agenda_start = Date.strptime(params[:agenda_start], '%m/%d/%Y')
agenda_end = Date.strptime(params[:agenda_end], '%m/%d/%Y')
@events = Event.agenda_events(agenda_start,agenda_end)
# re = Event.recurring_event(Time.at(params[:unix_start].to_i), Time.at(params[:unix_end].to_i))
# @events = @events.inject(re, :<<)
render :json=>@events.to_json
end
# GET /events/new
# GET /events/new.json
def new
@event = Event.new
categories = user_authenticated_categories rescue []
if categories.first == "all"
@categories = CalendarType.all
else
@categories = CalendarType.where(:category_id.in => categories) rescue []
end
@end_d_t = params[:endDate]
@start_d_t = params[:startDate]
@all_day = false;
@recurring = false;
if params
case params[:allDay]
when "true"
@all_day = true
when "false"
@all_day = false
case params[:recurring]
when "true"
@recurring = true
when "false"
@recurring = false
end
end
end
render :layout => false
end
# GET /events/1/edit
def edit
@event = Event.find(params[:id])
categories = user_authenticated_categories rescue []
if categories.first == "all"
@categories = CalendarType.all
else
@categories = CalendarType.where(:category_id.in => categories) rescue []
end
@end_d_t = @event.end.strftime("%Y/%m/%d %H:%M").to_s
@start_d_t = @event.start.strftime("%Y/%m/%d %H:%M").to_s
@all_day = @event.all_day
@recurring = @event.recurring
render :layout => false
end
# POST /events
# POST /events.json
def create
@event = Event.new(event_page_params)
if @event.present? && @event.save
render json: @event.to_json
else
respond_to do |format|
format.html { render action: "new" }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end
# PUT /events/1
# PUT /events/1.json
def update
@event = Event.find(params[:id])
if @event.update_attributes(event_page_params)
render json: @event.to_json
else
respond_to do |format|
format.html { render action: "edit" }
format.json { render json: @event.errors, status: :unprocessable_entity }
#format.js
end
end
end
# DELETE /events/1
# DELETE /events/1.json
def destroy
@event = Event.find(params[:id])
@event.destroy
render :json => {"success"=>true}.to_json
# respond_to do |format|
# format.html { redirect_to events }
# format.json { head :no_content }
# end
end
private
def event_page_params
params.require(:event).permit!
end
def can_edit_or_delete_event?(obj)
create_user = obj.create_user_id.to_s rescue nil
if @user_authenticated_categories.first == "all"
return true
elsif @current_user_is_sub_manager && !create_user.nil?
create_user == current_user.id.to_s
else
@user_authenticated_categories.include?obj.calendar_type.category_id rescue (current_user.is_manager?(@module_app) rescue false)
end
end
end