Orbit/vendor/built_in_modules/calendar/app/controllers/panel/calendar/back_end/cals_controller.rb

280 lines
7.9 KiB
Ruby

class Panel::Calendar::BackEnd::CalsController < OrbitBackendController
include AdminHelper
include Panel::Calendar::BackEnd::CalsHelper
def index
end
def new
@calendar = Cal.new
@calendars = Cal.all
end
def edit
@calendar = Cal.find(params[:id])
render :layout=>false
end
def update
@calendar = Cal.find(params[:id])
@calendar.update_attributes(params[:cal])
respond_to do |h|
h.js
end
end
def create
@calendar = Cal.new(params[:cal])
@calendar.save!
respond_to do |h|
h.js
end
end
def destroy
calendar = Cal.find(params[:id])
calendar.delete
render :json => {"success"=>"true"}.to_json
end
def day_view
date = params[:date].to_i
month = params[:month].to_i
year = params[:year].to_i
@cur_day = getDayName(date,month,year) + " " + month.to_s + "/" + date.to_s + " - " + year.to_s
@hours = getHours(12)
render :layout => false
end
def week_view
week = params[:week].to_i
year = params[:year].to_i
@dates = week_dates(week,year)
@range = week_range(week,year)
@d = getWeekDataSet(week,year)
t = Time.now
dt = Date.new(t.year,t.month,t.day)
today_cur_week = dt.strftime("%U").to_i
if week == today_cur_week && t.year == year
@today = @d.index(t.day.to_s)
else
@today = 20
end
@hours = getHours(12)
render :layout => false
end
def month_view
month = params[:month].to_i
year = params[:year].to_i
t = Time.now
startday = monthStartDay(month,year)
@pre_disabled_days = startday - 1
if t.month == month && t.year == year
@today = @pre_disabled_days + t.day
else
@today = 50
end
cur_month_days = getMonthDays(year)
@post_disabled_days = @pre_disabled_days + cur_month_days[month]
@dateset = getDateSet(month,year)
render :layout => false
end
def agenda_view
render :layout => false
end
def get_month_events
month = params[:month].to_i
year = params[:year].to_i
# events = Event.where(:start_month.lt => month).and(:start_year => year).and(:end_month.gte => month).asc(:start_date).desc(:total_days)
@events = Array.new
no_of_days_in_month = getMonthDays(year)
# events.each_with_index do |event,i|
# no_of_days = event.total_days
# if event.end_month > month
# no_of_days = no_of_days_in_month[month]
# elsif event.end_month == month
# no_of_days = event.end_date
# end
# no_of_days = no_of_days.to_i
# color = Cal.find(event.cal_id).color
# @events << {"id"=>event.id,"index"=>i,"start_date"=>"1", "total_days" => no_of_days, "title" => event.title,"color"=>color,"show_link"=>panel_calendar_back_end_event_path(event)}
# end
# events = Event.where(:start_month => month).and(:start_year => year).asc(:start_date).desc(:total_days)
# events.each_with_index do |event,i|
# # @temp = Array.new
# no_of_days = event.total_days
# if event.end_month > month
# no_of_days = no_of_days_in_month[month] - event.start_date
# end
# no_of_days = no_of_days.to_i
# no_of_days += 1
# color = Cal.find(event.cal_id).color
# @events << {"id"=>event.id,"index"=>i,"start_date"=>event.start_date, "total_days" => no_of_days, "title" => event.title,"color"=>color,"show_link"=>panel_calendar_back_end_event_path(event)}
# end
events = Event.all.asc(:start_date).desc(:total_days)
events.each_with_index do |event,i|
# @temp = Array.new
startdt = Date.new(event.start_year,event.start_month)
enddt = Date.new(event.end_year,event.end_month)
range = startdt..enddt
dt = Date.new(year,month)
if range === dt
no_of_days = event.total_days
start_date = event.start_date
if event.start_year < year
no_of_days = no_of_days_in_month[month] - event.start_date
no_of_days += 1
temp = month + 12
if event.start_month < temp
start_date = 1
end
end
if event.end_year > year
no_of_days = no_of_days_in_month[month] - event.start_date
no_of_days += 1
temp = month + 12
end
if event.end_month > month
no_of_days = no_of_days_in_month[month] - event.start_date
no_of_days += 1
elsif event.end_month == month
no_of_days = event.end_date
end
if event.start_month == month && event.end_month == month
no_of_days = event.total_days
no_of_days += 1
end
if event.start_month < month
start_date = 1
end
color = Cal.find(event.cal_id).color
@events << {"start_year"=>event.start_year, "id"=>event.id,"index"=>i,"start_date"=>start_date, "total_days" => no_of_days, "title" => event.title,"color"=>color,"show_link"=>panel_calendar_back_end_event_path(event)}
end
end
render :json => @events.to_json
end
def get_week_events
week = params[:week].to_i
year = params[:year].to_i
@d = getWeekDataSet(week,year)
events = Event.where(:start_week.lte => week).and(:start_year => year).and(:end_week.gte => week).and(:start_year => year).asc(:start_week).asc(:start_date)
@events = Array.new
events.each_with_index do |event,i|
# @temp = Array.new
days = event.total_days.to_i + 1
colcount = 0
startdt = event.start_date
all_day = event.all_day
if days > 1
all_day = true
end
if event.end_week > week && event.start_week < week
days = 7
end
if event.end_week == week
days = @d.index(event.end_date.to_s).to_i
end
if event.start_week == week
days = 7 - @d.index(event.start_date.to_s).to_i
end
if event.start_week == week && event.end_week == week
x = @d.index(event.end_date.to_s).to_i
y = @d.index(event.start_date.to_s).to_i
colcount = x - y
colcount+=1
end
if event.start_week < week
startdt = @d[0].to_i
event.all_day = true
if event.end_week == week
colcount = 7 - @d.index(event.end_date.to_s).to_i
days = 7;
startdt = event.start_date
end
end
color = Cal.find(event.cal_id).color
@events << {"id"=>event.id,"index"=>i,"start_date"=>startdt,"end_date"=>event.end_date ,"all_day"=>all_day, "start_week" => event.start_week, "end_week" => event.end_week, "total_days" => days, "title" => event.title,"color"=>color,"show_link"=>panel_calendar_back_end_event_path(event),"start_time"=>event.start_time,"end_time"=>event.end_time,"start_am_pm"=>event.start_am_pm,"end_am_pm"=>event.end_am_pm,"colcount"=>colcount}
end
render :json => @events.to_json
end
def get_day_events
day = params[:date].to_i
month = params[:month].to_i
year = params[:year].to_i
dt = Date.new(year,month,day)
week = dt.strftime("%U")
events = Event.where(:start_month.lte => month).and(:start_year => year).and(:end_month.gte => month)
@events = Array.new
events.each_with_index do |event,i|
days = event.total_days.to_i + 1
colcount = 0
all_day = event.all_day
if days > 1
all_day = true
end
startdt = Date.new(event.start_year,event.start_month,event.start_date)
enddt = Date.new(event.end_year,event.end_month,event.end_date)
range = startdt..enddt
if range === dt
color = Cal.find(event.cal_id).color
@events << {"id"=>event.id,"index"=>i,"start_date"=>event.start_date,"end_date"=>event.end_date ,"all_day"=>all_day, "start_week" => event.start_week, "end_week" => event.end_week, "total_days" => days, "title" => event.title,"color"=>color,"show_link"=>panel_calendar_back_end_event_path(event),"start_time"=>event.start_time,"end_time"=>event.end_time,"start_am_pm"=>event.start_am_pm,"end_am_pm"=>event.end_am_pm}
end
end
render :json => @events.to_json
end
def week_number_test
events = Event.all
events.each do |event|
dt = Date.new(event.start_year,event.start_month,event.start_date)
sweeknumber = dt.strftime("%U")
dt = Date.new(event.end_year,event.end_month,event.end_date)
eweeknumber = dt.strftime("%U")
event.start_week = sweeknumber
event.end_week = eweeknumber
event.save!
end
dt = Date.new(2012,10,4)
@week = dt.strftime("%U")
render :text => @week.to_s
end
end