event_calendar testing
This commit is contained in:
		
							parent
							
								
									c84b6a626e
								
							
						
					
					
						commit
						2d053164e8
					
				
							
								
								
									
										1
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										1
									
								
								Gemfile
								
								
								
								
							|  | @ -33,6 +33,7 @@ gem 'tinymce-rails' | |||
| gem 'therubyracer' if RUBY_PLATFORM.downcase.include?("linux") | ||||
| gem 'mongoid-encryptor', :require => 'mongoid/encryptor' | ||||
| #gem 'contacts' | ||||
| gem 'event-calendar', :require => 'event_calendar' | ||||
| 
 | ||||
| gem "impressionist", :require => "impressionist", :path => "vendor/impressionist" | ||||
| 
 | ||||
|  |  | |||
|  | @ -85,6 +85,7 @@ GEM | |||
|     diff-lcs (1.1.3) | ||||
|     encrypted_strings (0.3.3) | ||||
|     erubis (2.7.0) | ||||
|     event-calendar (2.3.3) | ||||
|     exception_notification (2.5.2) | ||||
|       actionmailer (>= 3.0.4) | ||||
|     execjs (1.3.0) | ||||
|  | @ -282,6 +283,7 @@ DEPENDENCIES | |||
|   database_cleaner | ||||
|   delorean | ||||
|   devise (= 1.5.3) | ||||
|   event-calendar | ||||
|   exception_notification | ||||
|   execjs | ||||
|   factory_girl_rails | ||||
|  |  | |||
|  | @ -0,0 +1,24 @@ | |||
| module CalendarHelper | ||||
|   def month_link(month_date) | ||||
|     link_to(I18n.localize(month_date, :format => "%B"), {:month => month_date.month, :year => month_date.year}) | ||||
|   end | ||||
|    | ||||
|   # custom options for this calendar | ||||
|   def event_calendar_opts | ||||
|     {  | ||||
|       :year => @year, | ||||
|       :month => @month, | ||||
|       :event_strips => @event_strips, | ||||
|       :month_name_text => I18n.localize(@shown_month, :format => "%B %Y"), | ||||
|       :previous_month_text => "<< " + month_link(@shown_month.prev_month), | ||||
|       :next_month_text => month_link(@shown_month.next_month) + " >>"    } | ||||
|   end | ||||
| 
 | ||||
|   def event_calendar | ||||
|     # args is an argument hash containing :event, :day, and :options | ||||
|     calendar event_calendar_opts do |args| | ||||
|       event = args[:event] | ||||
|       %(<a href="/events/#{event.id}" title="#{h(event.name)}">#{h(event.name)}</a>) | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,37 @@ | |||
| /* | ||||
|  * Smart event highlighting | ||||
|  * Handles when events span rows, or don't have a background color | ||||
|  */ | ||||
| jQuery(document).ready(function($) { | ||||
|   var highlight_color = "#2EAC6A"; | ||||
|    | ||||
|   // highlight events that have a background color
 | ||||
|   $(".ec-event-bg").live("mouseover", function() { | ||||
|     event_id = $(this).attr("data-event-id"); | ||||
| 		event_class_name = $(this).attr("data-event-class"); | ||||
|     $(".ec-"+event_class_name+"-"+event_id).css("background-color", highlight_color); | ||||
|   }); | ||||
|   $(".ec-event-bg").live("mouseout", function() { | ||||
|     event_id = $(this).attr("data-event-id"); | ||||
| 		event_class_name = $(this).attr("data-event-class"); | ||||
|     event_color = $(this).attr("data-color"); | ||||
|     $(".ec-"+event_class_name+"-"+event_id).css("background-color", event_color); | ||||
|   }); | ||||
|    | ||||
|   // highlight events that don't have a background color
 | ||||
|   $(".ec-event-no-bg").live("mouseover", function() { | ||||
|     ele = $(this); | ||||
|     ele.css("color", "white"); | ||||
|     ele.find("a").css("color", "white"); | ||||
|     ele.find(".ec-bullet").css("background-color", "white"); | ||||
|     ele.css("background-color", highlight_color); | ||||
|   }); | ||||
|   $(".ec-event-no-bg").live("mouseout", function() { | ||||
|     ele = $(this); | ||||
|     event_color = $(this).attr("data-color"); | ||||
|     ele.css("color", event_color); | ||||
|     ele.find("a").css("color", event_color); | ||||
|     ele.find(".ec-bullet").css("background-color", event_color); | ||||
|     ele.css("background-color", "transparent"); | ||||
|   }); | ||||
| }); | ||||
|  | @ -0,0 +1,237 @@ | |||
| /*  | ||||
|   Event Calendar stylesheet | ||||
|    | ||||
|   Colors: | ||||
|   #d5d5d5 - border (gray) | ||||
|   #303030 - day names bg (gray) | ||||
|   #444 - number (gray) | ||||
|   #ecede2 - day header bg (light tan) | ||||
|   ##d7d7ba - today header bg (tan) | ||||
|   #ffffdd - today bg light (yellow) | ||||
|   #777 - other month number (gray) | ||||
|   #efefef - other month day header (gray) | ||||
|   #2eac6a - hover (green) | ||||
| */ | ||||
| 
 | ||||
| /* Outer most container */ | ||||
| .ec-calendar { | ||||
|   font-family: verdana, arial, helvetica, sans-serif; | ||||
|   font-size: 11px; | ||||
|   line-height: 14px; | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
|   border-bottom: 1px solid #d5d5d5; | ||||
| } | ||||
| 
 | ||||
| /* Month name header & links */ | ||||
| .ec-calendar-header { | ||||
|   padding: 5px 0; | ||||
|   width: 100%; | ||||
|   table-layout: fixed; | ||||
| } | ||||
| 
 | ||||
| .ec-month-name { | ||||
|   font-size: 16px; | ||||
|   font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| .ec-month-nav { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| /* Containers */ | ||||
| .ec-body { | ||||
|   position: relative; | ||||
|   border-right: 1px solid #303030; | ||||
|   white-space: nowrap; | ||||
| } | ||||
| 
 | ||||
| /* Day names */ | ||||
| .ec-day-names { | ||||
|   position: absolute; | ||||
|   top: 0; | ||||
|   left: 0; | ||||
|   width: 100%; | ||||
|   table-layout: fixed; | ||||
|   padding: 2px 0; | ||||
|   background: #303030; | ||||
|   color: white; | ||||
| } | ||||
| 
 | ||||
| .ec-day-name { | ||||
|   font-weight: normal; | ||||
| } | ||||
| 
 | ||||
| /* Rows container and Row */ | ||||
| .ec-rows { | ||||
|   position: absolute; | ||||
|   left: 0; | ||||
|   bottom: 0; | ||||
|   width: 100%; | ||||
|   background: white; | ||||
|   overflow: hidden; | ||||
|   border-right: 1px solid #d5d5d5; | ||||
| } | ||||
| 
 | ||||
| .ec-row { | ||||
|   position: absolute; | ||||
|   left: 0; | ||||
|   width: 100%; | ||||
|   overflow: hidden; | ||||
| } | ||||
| 
 | ||||
| /* Background */ | ||||
| .ec-row-bg { | ||||
|   position: absolute; | ||||
|   top: 0; | ||||
|   left: 0; | ||||
|   height: 100%; | ||||
|   width: 100%; | ||||
|   table-layout: fixed; | ||||
| } | ||||
| 
 | ||||
| .ec-day-bg { | ||||
|   border-left: 1px solid #d5d5d5; | ||||
| } | ||||
| 
 | ||||
| .ec-today-bg { | ||||
|   background-color: #ffffdd; | ||||
| } | ||||
| 
 | ||||
| .ec-row-table { | ||||
|   position: relative; | ||||
|   width: 100%; | ||||
|   table-layout: fixed; | ||||
| } | ||||
| 
 | ||||
| /* Day header */ | ||||
| .ec-day-header { | ||||
|   color: #444; | ||||
|   text-align: right; | ||||
|   padding: 0 5px; | ||||
|   line-height: 16px; | ||||
|   border-top: 1px solid #d5d5d5; | ||||
|   border-left: 1px solid #d5d5d5; | ||||
|   border-bottom: 1px dotted #bbbbbb; | ||||
|   background-color: #ecede2; | ||||
|   overflow: hidden; | ||||
| } | ||||
| 
 | ||||
| a.ec-day-link { | ||||
|   color: #444; | ||||
| } | ||||
| 
 | ||||
| .ec-today-header { | ||||
|   background-color: #d7d7ba; | ||||
| } | ||||
| 
 | ||||
| .ec-weekend-day-header { | ||||
|    | ||||
| } | ||||
| 
 | ||||
| .ec-other-month-header { | ||||
|   background-color: #efefef; | ||||
|   color: #777; | ||||
| } | ||||
| 
 | ||||
| .ec-other-month-bg { | ||||
|    | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* Event cell and container */ | ||||
| .ec-event-cell { | ||||
|   cursor: pointer; | ||||
|   vertical-align: top; | ||||
|   padding-right: 1px; | ||||
|   padding-left: 2px; | ||||
| } | ||||
| 
 | ||||
| .ec-event-cell a { | ||||
|   text-decoration: none; | ||||
|   display: block; | ||||
|   width: 100%; | ||||
|   height: 100%; | ||||
| } | ||||
| 
 | ||||
| .ec-no-event-cell { | ||||
|   cursor: default; | ||||
| } | ||||
| 
 | ||||
| .ec-event { | ||||
|   color: white; | ||||
|   padding-right: 1px; | ||||
|   padding-left: 11px; | ||||
|   -webkit-border-radius: 3px; | ||||
|   -khtml-border-radius: 3px; | ||||
|   -moz-border-radius: 3px; | ||||
|   overflow: hidden; | ||||
|   white-space: nowrap; | ||||
| } | ||||
| 
 | ||||
| .ec-event :hover { | ||||
|   /* doesn't look as good as js highlighting */ | ||||
|   /* background-color: #2eac6a; */ | ||||
| } | ||||
| 
 | ||||
| .ec-event-bg a { | ||||
|   color: white; | ||||
| } | ||||
| 
 | ||||
| /* used to distinguish non-all_day events */ | ||||
| .ec-event-no-bg { | ||||
|   position: relative; | ||||
|   /* padding-left: 5px; */ | ||||
| } | ||||
| 
 | ||||
| .ec-event-no-bg a { | ||||
|   /* isn't implemented in all browsers */ | ||||
|   color: inherit; | ||||
| } | ||||
| 
 | ||||
| .ec-event-time { | ||||
|   font-size: 85%; | ||||
|   font-weight: bold; | ||||
|   padding-right: 3px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* Left and right arrows */ | ||||
| /* Doesn't work in IE6, use bg images instead */ | ||||
| .ec-left-arrow, .ec-right-arrow { | ||||
|   position: relative; | ||||
|   top: 3px; | ||||
|   width: 0; | ||||
|   height: 0; | ||||
|   font-size: 0; | ||||
|   line-height: 0; | ||||
|   margin-bottom: -8px; | ||||
|   border-top: 4px solid transparent; | ||||
|   border-bottom: 4px solid transparent; | ||||
| } | ||||
| 
 | ||||
| .ec-left-arrow { | ||||
|   margin-left: -7px; | ||||
|   margin-right: auto; | ||||
|   border-right: 4px solid white; | ||||
| } | ||||
| 
 | ||||
| .ec-right-arrow { | ||||
|   margin-left: auto; | ||||
|   margin-right: 3px; | ||||
|   border-left: 4px solid white; | ||||
| } | ||||
| 
 | ||||
| /* remove this to not have a bullet */ | ||||
| /* don't look as good in ie */ | ||||
| .ec-bullet { | ||||
|   position: absolute; | ||||
|   top: 7px; | ||||
|   width: 4px; | ||||
|   height: 4px; | ||||
|   margin-left: -7px; | ||||
|   margin-right: auto; | ||||
|   -webkit-border-radius: 2px; | ||||
|   -khtml-border-radius: 2px; | ||||
|   -moz-border-radius: 2px; | ||||
| } | ||||
|  | @ -0,0 +1,99 @@ | |||
| PATH | ||||
|   remote: . | ||||
|   specs: | ||||
|     calendar (0.0.1) | ||||
|       rails (~> 3.1.4) | ||||
| 
 | ||||
| GEM | ||||
|   remote: http://rubygems.org/ | ||||
|   specs: | ||||
|     actionmailer (3.1.8) | ||||
|       actionpack (= 3.1.8) | ||||
|       mail (~> 2.3.3) | ||||
|     actionpack (3.1.8) | ||||
|       activemodel (= 3.1.8) | ||||
|       activesupport (= 3.1.8) | ||||
|       builder (~> 3.0.0) | ||||
|       erubis (~> 2.7.0) | ||||
|       i18n (~> 0.6) | ||||
|       rack (~> 1.3.6) | ||||
|       rack-cache (~> 1.2) | ||||
|       rack-mount (~> 0.8.2) | ||||
|       rack-test (~> 0.6.1) | ||||
|       sprockets (~> 2.0.4) | ||||
|     activemodel (3.1.8) | ||||
|       activesupport (= 3.1.8) | ||||
|       builder (~> 3.0.0) | ||||
|       i18n (~> 0.6) | ||||
|     activerecord (3.1.8) | ||||
|       activemodel (= 3.1.8) | ||||
|       activesupport (= 3.1.8) | ||||
|       arel (~> 2.2.3) | ||||
|       tzinfo (~> 0.3.29) | ||||
|     activeresource (3.1.8) | ||||
|       activemodel (= 3.1.8) | ||||
|       activesupport (= 3.1.8) | ||||
|     activesupport (3.1.8) | ||||
|       multi_json (>= 1.0, < 1.3) | ||||
|     arel (2.2.3) | ||||
|     builder (3.0.3) | ||||
|     erubis (2.7.0) | ||||
|     hike (1.2.1) | ||||
|     i18n (0.6.1) | ||||
|     jquery-rails (2.1.2) | ||||
|       railties (>= 3.1.0, < 5.0) | ||||
|       thor (~> 0.14) | ||||
|     json (1.7.5) | ||||
|     mail (2.3.3) | ||||
|       i18n (>= 0.4.0) | ||||
|       mime-types (~> 1.16) | ||||
|       treetop (~> 1.4.8) | ||||
|     mime-types (1.19) | ||||
|     multi_json (1.2.0) | ||||
|     polyglot (0.3.3) | ||||
|     rack (1.3.6) | ||||
|     rack-cache (1.2) | ||||
|       rack (>= 0.4) | ||||
|     rack-mount (0.8.3) | ||||
|       rack (>= 1.0.0) | ||||
|     rack-ssl (1.3.2) | ||||
|       rack | ||||
|     rack-test (0.6.1) | ||||
|       rack (>= 1.0) | ||||
|     rails (3.1.8) | ||||
|       actionmailer (= 3.1.8) | ||||
|       actionpack (= 3.1.8) | ||||
|       activerecord (= 3.1.8) | ||||
|       activeresource (= 3.1.8) | ||||
|       activesupport (= 3.1.8) | ||||
|       bundler (~> 1.0) | ||||
|       railties (= 3.1.8) | ||||
|     railties (3.1.8) | ||||
|       actionpack (= 3.1.8) | ||||
|       activesupport (= 3.1.8) | ||||
|       rack-ssl (~> 1.3.2) | ||||
|       rake (>= 0.8.7) | ||||
|       rdoc (~> 3.4) | ||||
|       thor (~> 0.14.6) | ||||
|     rake (0.9.2.2) | ||||
|     rdoc (3.12) | ||||
|       json (~> 1.4) | ||||
|     sprockets (2.0.4) | ||||
|       hike (~> 1.2) | ||||
|       rack (~> 1.0) | ||||
|       tilt (~> 1.1, != 1.3.0) | ||||
|     sqlite3 (1.3.6) | ||||
|     thor (0.14.6) | ||||
|     tilt (1.3.3) | ||||
|     treetop (1.4.10) | ||||
|       polyglot | ||||
|       polyglot (>= 0.3.1) | ||||
|     tzinfo (0.3.33) | ||||
| 
 | ||||
| PLATFORMS | ||||
|   ruby | ||||
| 
 | ||||
| DEPENDENCIES | ||||
|   calendar! | ||||
|   jquery-rails | ||||
|   sqlite3 | ||||
|  | @ -0,0 +1,12 @@ | |||
| class Panel::Orbitcalendar::BackEnd::CalendarController < ApplicationController | ||||
|    | ||||
|   def index | ||||
|     @month = (params[:month] || (Time.zone || Time).now.month).to_i | ||||
|     @year = (params[:year] || (Time.zone || Time).now.year).to_i | ||||
| 
 | ||||
|     @shown_month = Date.civil(@year, @month) | ||||
| 
 | ||||
|     @event_strips = Event.event_strips_for_month(@shown_month) | ||||
|   end | ||||
|    | ||||
| end | ||||
							
								
								
									
										24
									
								
								vendor/built_in_modules/calendar/app/helpers/panel/orbitcalendar/back_end/calendar_helper.rb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										24
									
								
								vendor/built_in_modules/calendar/app/helpers/panel/orbitcalendar/back_end/calendar_helper.rb
								
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,24 @@ | |||
| module Panel::Orbitcalendar::BackEnd::CalendarHelper | ||||
|   def month_link(month_date) | ||||
|     link_to(I18n.localize(month_date, :format => "%B"), {:month => month_date.month, :year => month_date.year}) | ||||
|   end | ||||
|    | ||||
|   # custom options for this calendar | ||||
|   def event_calendar_opts | ||||
|     {  | ||||
|       :year => @year, | ||||
|       :month => @month, | ||||
|       :event_strips => @event_strips, | ||||
|       :month_name_text => I18n.localize(@shown_month, :format => "%B %Y"), | ||||
|       :previous_month_text => "<< " + month_link(@shown_month.prev_month), | ||||
|       :next_month_text => month_link(@shown_month.next_month) + " >>"    } | ||||
|   end | ||||
| 
 | ||||
|   def event_calendar | ||||
|     # args is an argument hash containing :event, :day, and :options | ||||
|     calendar event_calendar_opts do |args| | ||||
|       event = args[:event] | ||||
|       %(<a href="/events/#{event.id}" title="#{h(event.name)}">#{h(event.name)}</a>) | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,4 @@ | |||
| class Event  | ||||
| 	include Mongoid::Document | ||||
|    has_event_calendar | ||||
| end | ||||
|  | @ -0,0 +1,6 @@ | |||
| <!-- Probably move the stylesheet to you layout. Also make sure you include the javascript. --> | ||||
| <%= stylesheet_link_tag "event_calendar" %> | ||||
| 
 | ||||
| <h1>Calendar</h1> | ||||
| 
 | ||||
| <%= raw(event_calendar) %> | ||||
|  | @ -1,9 +1,9 @@ | |||
| Rails.application.routes.draw do | ||||
| 	namespace :panel do | ||||
| 	  namespace :calendar do | ||||
| 	  namespace :orbitcalendar do | ||||
| 	      namespace :back_end do  | ||||
| 
 | ||||
| 	      	resources :cals | ||||
| 	      	match '/calendar(/:year(/:month))' => 'calendar#index', :as => :calendar, :constraints => {:year => /\d{4}/, :month => /\d{1,2}/} | ||||
| 	      	resources :calendar_categories | ||||
| 
 | ||||
| 	      end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue