class CalendarsController < ApplicationController # GET /events # GET /events.json include ActionView::Helpers::AssetTagHelper def index page = Page.where(page_id: OrbitHelper.params[:page_id]).first style_file = page.layout=='index3' ? '/assets/calendar_widget2' : '/assets/calendar_widget1' { "extras" => { "page_id" => OrbitHelper.params[:page_id], 'widget_title' => page.name, 'widget_title_class' => page.name.blank? ? 'center' : '', 'calendar_title' => get_calendar_title, 'style_tag' => stylesheet_link_tag(style_file), 'default_column' => widget_default_column } } end def show params = OrbitHelper.params event = Event.find(params[:uid]) { "page_id" => params[:page_id], "event_date" => event.start.strftime("%Y-%m-%d") } end def widget part = OrbitHelper.get_current_widget { "extras" => { "subpart-id" => part.id.to_s, "more_url" => OrbitHelper.widget_more_url, 'widget_title' => part.title, 'widget_title_class' => part.title.blank? ? 'center' : '', 'calendar_title' => get_calendar_title, 'default_column' => widget_default_column } } end def events page = Page.find_by(:page_id => params[:page_id]) rescue nil events =[] if !page.nil? if params[:start].present? && params[:end].present? sdt = Time.at(params[:start].to_i).utc edt = Time.at(params[:end].to_i).utc events = Event.monthly_event(sdt,edt).convert_front+Event.recurring_event(sdt,edt) end end respond_to do |format| format.html # index.html.erb format.json { render json: events.to_json } end end def index_agenda I18n.with_locale(params[:locale]||I18n.locale) do if !params[:subpart_id].nil? subpartid = params[:subpart_id] page = Page.where(page_id: subpartid).first calendar_types = page.categories else calendar_types = [] end if params[:unix_start].present? && params[:unix_end].present? agenda_start = Time.at(params[:unix_start].to_i).utc.to_s agenda_end = Time.at(params[:unix_end].to_i).utc.to_s if !calendar_types.blank? events = Event.where(:calendar_type_id.in => calendar_types).agenda_events(agenda_start,agenda_end) else events = Event.agenda_events(agenda_start,agenda_end) end end render json: {"events" => events,"calendar_title"=>get_calendar_title(Time.at(params[:month_start].to_i).utc)}.to_json({"frontend" => true}) end end def agenda I18n.with_locale(params[:locale]||I18n.locale) do if !params[:subpart_id].nil? subpartid = params[:subpart_id] widget = SubPart.find(subpartid) calendar_types = widget.custom_array_field else calendar_types = [] end if params[:unix_start].present? && params[:unix_end].present? agenda_start = Time.at(params[:unix_start].to_i).utc.to_s agenda_end = Time.at(params[:unix_end].to_i).utc.to_s if !calendar_types.blank? events = Event.where(:calendar_type_id.in => calendar_types).agenda_events(agenda_start,agenda_end) else events = Event.agenda_events(agenda_start,agenda_end) end end render json: {"events" => events,"calendar_title"=>get_calendar_title(Time.at(params[:month_start].to_i).utc)}.to_json({"frontend" => true}) end end def get_calendar_title(now_date=nil) now_date = Time.now.utc if now_date.nil? month_name = I18n.locale.to_s=='zh_tw' ? now_date.month : I18n.t("calendar.month_name.#{now_date.month}") I18n.t("calendar.calendar_title",year: now_date.year,month: month_name) end def widget_default_column (1..5).collect do |i| " " end.join("\n") end end