class AnnouncementsController < ApplicationController def index announcements = Bulletin.where(:is_preview.in=>[false,nil]).can_display.order_by(:created_at=>'desc').filter_by_categories.filter_by_tags(OrbitHelper.params['tags']) anns = announcements.collect do |a| statuses = a.statuses_with_classname.collect do |status| { "status" => status["name"], "status-class" => "status-#{status['classname']}" } end { "title" => a.title, "subtitle" => a.subtitle, "statuses" => statuses, "postdate" => a.postdate.strftime("%b %d, %Y at %I:%M %p"), "date" => a.postdate.strftime("%F"), "year" => a.postdate.strftime("%Y"), "month" => a.postdate.strftime("%b"), "month-num" => a.postdate.strftime("%m"), "week" => a.postdate.strftime("%A"), "week-num" => a.postdate.strftime("%u"), "day" => a.postdate.strftime("%d"), "hour" => a.postdate.strftime("%H"), "minute" => a.postdate.strftime("%M"), "second" => a.postdate.strftime("%S"), "meridian" => a.postdate.strftime("%p"), "link_to_show" => OrbitHelper.url_to_show(a.to_param), "img_src" => a.image.thumb.url || "http://placehold.it/100x100", "more" => t(:more_plus) } end { "announcements" => anns, "extras" => { "widget-title"=>t('announcement.announcement') }, "total_pages" => announcements.total_pages } end def widget announcements = Bulletin.where(:is_preview.in=>[false,nil]).can_display.order_by(:created_at=>'desc').filter_by_widget_categories.filter_by_tags(OrbitHelper.widget_tags) anns = announcements.collect do |a| statuses = a.statuses_with_classname.collect do |status| { "status" => status["name"], "status-class" => "status-#{status['classname']}" } end { "title" => a.title, "subtitle" => a.subtitle, "statuses" => statuses, "postdate" => a.postdate.strftime("%d"), "date" => a.postdate.strftime("%F"), "year" => a.postdate.strftime("%Y"), "month" => a.postdate.strftime("%b"), "month-num" => a.postdate.strftime("%m"), "week" => a.postdate.strftime("%A"), "week-num" => a.postdate.strftime("%u"), "day" => a.postdate.strftime("%d"), "hour" => a.postdate.strftime("%H"), "minute" => a.postdate.strftime("%M"), "second" => a.postdate.strftime("%S"), "meridian" => a.postdate.strftime("%p"), "link_to_show" => OrbitHelper.widget_item_url(a.to_param), "img_src" => a.image.thumb.url || "http://placehold.it/100x100", } end { "announcements" => anns, "extras" => { "more_url"=>OrbitHelper.widget_more_url } } end def widget1 announcements = Bulletin.where(:is_preview.in=>[false,nil]).can_display.order_by(:created_at=>'desc').filter_by_widget_categories.filter_by_tags(OrbitHelper.widget_tags) anns = announcements.collect do |a| statuses = a.statuses_with_classname.collect do |status| { "status" => status["name"], "status-class" => "status-#{status['classname']}" } end { "title" => a.title, "subtitle" => a.subtitle, "statuses" => statuses, "postdate" => a.postdate.strftime("%d"), "date" => a.postdate.strftime("%F"), "year" => a.postdate.strftime("%Y"), "month" => a.postdate.strftime("%b"), "month-num" => a.postdate.strftime("%m"), "week" => a.postdate.strftime("%A"), "week-num" => a.postdate.strftime("%u"), "day" => a.postdate.strftime("%d"), "hour" => a.postdate.strftime("%H"), "minute" => a.postdate.strftime("%M"), "second" => a.postdate.strftime("%S"), "meridian" => a.postdate.strftime("%p"), "link_to_show" => OrbitHelper.widget_item_url(a.to_param), "img_src" => a.image.thumb.url || "http://placehold.it/100x100", } end { "announcements" => anns, "extras" => { "more_url"=>OrbitHelper.widget_more_url } } end def show params = OrbitHelper.params announcement = Bulletin.can_display.find_by(:uid=>params[:uid]) url_to_edit = OrbitHelper.user_can_edit?(announcement) ? "/admin/announcements/#{announcement.id.to_s}/edit" : "" tags = announcement.tags.map{|tag| { "tag" => tag.name , "url" => OrbitHelper.page_for_tag(tag) } } rescue [] files = announcement.bulletin_files.map{|file| { "file_url" => file.file.url, "file_title" => (file.title.blank? ? File.basename(file.file.path) : file.title) } } rescue [] links = announcement.bulletin_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue [] update_user = announcement.update_user.member_profile.name rescue "" { "tags" => tags, "bulletin_files" => files, "bulletin_links" => links, "data" => { "title" => announcement.title, "update_user" => update_user, "updated_at" => announcement.updated_at.strftime('%Y-%m-%d %H:%M'), "body" =>announcement.text, "image" => announcement.image.url }, "impressionist" => (announcement.is_preview ? nil : announcement), "url_to_edit"=>url_to_edit } end end