social_stream-events 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. data/GPL Affero license +663 -0
  2. data/Gemfile +9 -0
  3. data/README.rdoc +6 -0
  4. data/Rakefile +29 -0
  5. data/app/assets/images/btn/btn_certificate.png +0 -0
  6. data/app/assets/images/btn/btn_certificates.png +0 -0
  7. data/app/assets/images/btn/btn_edit.png +0 -0
  8. data/app/assets/images/btn/btn_embebed.png +0 -0
  9. data/app/assets/images/btn/btn_event.png +0 -0
  10. data/app/assets/images/btn/btn_outline.png +0 -0
  11. data/app/assets/images/btn/event.png +0 -0
  12. data/app/assets/images/btn/flyer.png +0 -0
  13. data/app/assets/images/btn/keynote.png +0 -0
  14. data/app/assets/images/btn/live.png +0 -0
  15. data/app/assets/images/btn/time.png +0 -0
  16. data/app/assets/images/btn/trash.png +0 -0
  17. data/app/assets/images/icons/IconsByGlyphish.txt +1 -0
  18. data/app/assets/images/icons/down.png +0 -0
  19. data/app/assets/images/icons/search.png +0 -0
  20. data/app/assets/images/icons/up.png +0 -0
  21. data/app/assets/images/logos/actor/event.png +0 -0
  22. data/app/assets/images/logos/contact/event.png +0 -0
  23. data/app/assets/images/logos/original/event.png +0 -0
  24. data/app/assets/images/logos/profile/event.png +0 -0
  25. data/app/assets/images/logos/representation/event.png +0 -0
  26. data/app/assets/images/tab_bottom.png +0 -0
  27. data/app/assets/javascripts/schedule.js +123 -0
  28. data/app/assets/javascripts/settings.js +20 -0
  29. data/app/assets/javascripts/social_stream-events.js +5 -0
  30. data/app/assets/stylesheets/activities.css +4 -0
  31. data/app/assets/stylesheets/fullcalendar.css +621 -0
  32. data/app/assets/stylesheets/fullcalendar.print.css +61 -0
  33. data/app/assets/stylesheets/settings.css +4 -0
  34. data/app/assets/stylesheets/social_stream-events.css +262 -0
  35. data/app/assets/stylesheets/tie.css +4 -0
  36. data/app/assets/stylesheets/users.css +4 -0
  37. data/app/controllers/activities_controller.rb +42 -0
  38. data/app/controllers/agendas_controller.rb +54 -0
  39. data/app/controllers/calendar_events_controller.rb +157 -0
  40. data/app/controllers/events_controller.rb +85 -0
  41. data/app/controllers/sessions_controller.rb +133 -0
  42. data/app/controllers/settings_controller.rb +70 -0
  43. data/app/helpers/event_helper.rb +12 -0
  44. data/app/models/agenda.rb +55 -0
  45. data/app/models/calendar_event.rb +191 -0
  46. data/app/models/calendar_event_series.rb +126 -0
  47. data/app/models/event.rb +131 -0
  48. data/app/models/session.rb +22 -0
  49. data/app/views/activities/_activity.html.erb +5 -0
  50. data/app/views/activities/_child.html.erb +18 -0
  51. data/app/views/activities/_comments.html.erb +3 -0
  52. data/app/views/activities/_index.html.erb +95 -0
  53. data/app/views/activities/_new.html.erb +29 -0
  54. data/app/views/activities/_options.html.erb +15 -0
  55. data/app/views/activities/_root.html.erb +37 -0
  56. data/app/views/activities/_wall.html.erb +5 -0
  57. data/app/views/activities/_walls.html.erb +34 -0
  58. data/app/views/activities/documents.js.erb +1 -0
  59. data/app/views/activities/index.js.erb +1 -0
  60. data/app/views/agendas/_agenda.html.erb +1 -0
  61. data/app/views/agendas/_edit.html.erb +136 -0
  62. data/app/views/agendas/_schedule.html.erb +19 -0
  63. data/app/views/agendas/_show.html.erb +81 -0
  64. data/app/views/agendas/_show_day.html.erb +6 -0
  65. data/app/views/agendas/edit.html.erb +24 -0
  66. data/app/views/agendas/event.html.erb +1 -0
  67. data/app/views/agendas/index.html.erb +0 -0
  68. data/app/views/agendas/show.html.erb +25 -0
  69. data/app/views/calendar_events/_calendar.html.erb +0 -0
  70. data/app/views/calendar_events/_edit_form.html.erb +58 -0
  71. data/app/views/calendar_events/_form.html.erb +65 -0
  72. data/app/views/calendar_events/available.html.erb +81 -0
  73. data/app/views/calendar_events/create.js.erb +18 -0
  74. data/app/views/calendar_events/edit.js.erb +1 -0
  75. data/app/views/calendar_events/index.html.erb +162 -0
  76. data/app/views/calendar_events/move.js.erb +0 -0
  77. data/app/views/calendar_events/new.js.erb +9 -0
  78. data/app/views/calendar_events/resize.js.erb +0 -0
  79. data/app/views/calendar_events/schedule.html.erb +143 -0
  80. data/app/views/documents/_mediawall.html.erb +111 -0
  81. data/app/views/events/_event.html.erb +10 -0
  82. data/app/views/events/_fields.html.erb +5 -0
  83. data/app/views/events/_form.html.erb +12 -0
  84. data/app/views/events/_jquery.html.erb +125 -0
  85. data/app/views/events/_manage.html.erb +35 -0
  86. data/app/views/events/_new.html.erb +2 -0
  87. data/app/views/events/_sessions_edit.html.erb +46 -0
  88. data/app/views/events/_sidebar_cloud.html.erb +27 -0
  89. data/app/views/events/_sidebar_index.html.erb +1 -0
  90. data/app/views/events/_sidebar_show.html.erb +5 -0
  91. data/app/views/events/agendas.html +1 -0
  92. data/app/views/events/edit.html.erb +12 -0
  93. data/app/views/events/index.html.erb +30 -0
  94. data/app/views/events/manage.html.erb +69 -0
  95. data/app/views/events/manage.js.erb +1 -0
  96. data/app/views/events/show.html.erb +34 -0
  97. data/app/views/kaminari/_first_page.html.erb +11 -0
  98. data/app/views/kaminari/_gap.html.erb +8 -0
  99. data/app/views/kaminari/_last_page.html.erb +11 -0
  100. data/app/views/kaminari/_next_page.html.erb +11 -0
  101. data/app/views/kaminari/_page.html.erb +12 -0
  102. data/app/views/kaminari/_paginator.html.erb +23 -0
  103. data/app/views/kaminari/_prev_page.html.erb +11 -0
  104. data/app/views/profiles/_outline.html.erb +81 -0
  105. data/app/views/profiles/_profile.html.erb +40 -0
  106. data/app/views/sessions/_form.html.erb +41 -0
  107. data/app/views/sessions/_new.html.erb +63 -0
  108. data/app/views/sessions/_session.html.erb +1 -0
  109. data/app/views/sessions/_show.html.erb +27 -0
  110. data/app/views/sessions/create.html.erb +3 -0
  111. data/app/views/sessions/create.js.erb +1 -0
  112. data/app/views/sessions/destroy.js.erb +2 -0
  113. data/app/views/sessions/edit.html.erb +27 -0
  114. data/app/views/sessions/index.html.erb +1 -0
  115. data/app/views/sessions/index.js.erb +1 -0
  116. data/app/views/sessions/new.html.erb +27 -0
  117. data/app/views/settings/_contacto.html.erb +24 -0
  118. data/app/views/settings/_header.html.erb +8 -0
  119. data/app/views/settings/_index.html.erb +16 -0
  120. data/app/views/settings/_manage.html.erb +25 -0
  121. data/app/views/settings/_settings.html.erb +49 -0
  122. data/app/views/settings/delete_relation.js.erb +3 -0
  123. data/app/views/settings/index.html.erb +38 -0
  124. data/app/views/settings/manage.html.erb +31 -0
  125. data/app/views/settings/show.html.erb +15 -0
  126. data/app/views/settings/update_relation.js.erb +1 -0
  127. data/app/views/toolbar/_home.html.erb +11 -0
  128. data/app/views/toolbar/_logo.html.erb +23 -0
  129. data/app/views/toolbar/_organizer.html.erb +25 -0
  130. data/app/views/toolbar/_profile.html.erb +21 -0
  131. data/app/views/toolbar/_sponsor.html.erb +18 -0
  132. data/app/views/toolbar/_suscribed.html.erb +17 -0
  133. data/app/views/users/_index.html.erb +33 -0
  134. data/app/views/users/index.html.erb +46 -0
  135. data/config/locales/en.yml +97 -0
  136. data/config/routes.rb +46 -0
  137. data/db/20110615143707_create_social_stream_events.rb +54 -0
  138. data/lib/generators/social_stream/events/install_generator.rb +24 -0
  139. data/lib/social_stream-events.rb +15 -0
  140. data/lib/social_stream/events/engine.rb +8 -0
  141. data/lib/social_stream/migrations/events.rb +25 -0
  142. data/social_stream-events.gemspec +22 -0
  143. data/vendor/assets/javascripts/fullcalendar.js +5208 -0
  144. data/vendor/assets/javascripts/gcal.js +112 -0
  145. metadata +272 -0
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source "http://rubygems.org"
2
+
3
+ if File.exists?(File.join(File.dirname(__FILE__), '..', 'social_stream-base'))
4
+ gem 'social_stream-base', :path => '../social_stream-base'
5
+ else
6
+ gem 'social_stream-base', :git => 'https://github.com/ging/social_stream-base.git'
7
+ end
8
+
9
+ gemspec
data/README.rdoc ADDED
@@ -0,0 +1,6 @@
1
+ = Social Stream Events
2
+
3
+ Events and Video conferences capabilities to
4
+ {Social Stream}[http://social-stream.dit.upm.es/], the core for building social
5
+ network websites. This gem allow you to add events and videoconferences as new social stream activity.
6
+
data/Rakefile ADDED
@@ -0,0 +1,29 @@
1
+ # encoding: UTF-8
2
+ require 'rubygems'
3
+ begin
4
+ require 'bundler/setup'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
9
+ require 'rake'
10
+ require 'rake/rdoctask'
11
+
12
+ require 'rspec/core'
13
+ require 'rspec/core/rake_task'
14
+
15
+ require 'bundler'
16
+
17
+ RSpec::Core::RakeTask.new(:spec)
18
+
19
+ task :default => :spec
20
+
21
+ Rake::RDocTask.new(:rdoc) do |rdoc|
22
+ rdoc.rdoc_dir = 'rdoc'
23
+ rdoc.title = 'Socialstream-events'
24
+ rdoc.options << '--line-numbers' << '--inline-source'
25
+ rdoc.rdoc_files.include('README.rdoc')
26
+ rdoc.rdoc_files.include('lib/**/*.rb')
27
+ end
28
+
29
+ Bundler::GemHelper.install_tasks
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ Search icon by http://glyphish.com/
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,123 @@
1
+
2
+ // Place your application-specific JavaScript functions and classes here
3
+ // This file is automatically included by javascript_include_tag :defaults
4
+
5
+ function createSessionEvent(title, start, end, event_id,receiver){
6
+ jQuery.ajax({
7
+ data:
8
+ 'session[title]='+title+
9
+ '&session[_contact_id]='+receiver+
10
+ '&session[start_at]='+start.toString().substring(0, 24)+
11
+ '&session[end_at]='+end.toString().substring(0, 24)+
12
+ '&event_id='+event_id,
13
+ dataType: 'script',
14
+ type: 'POST',
15
+ url: '/events/'+event_id+'/sessions/create'
16
+ });
17
+ }
18
+
19
+ function moveSession(session, dayDelta, minuteDelta, allDay){
20
+
21
+ jQuery.ajax({
22
+ data: 'id=' + session.id + '&title=' + session.title + '&day_delta=' + dayDelta + '&minute_delta=' + minuteDelta + '&all_day=' + allDay,
23
+ dataType: 'script',
24
+ type: 'post',
25
+ url: '/sessions/'+session.id+'/move'
26
+
27
+ });
28
+ }
29
+
30
+ function resizeSession(session, dayDelta, minuteDelta){
31
+ jQuery.ajax({
32
+ data: 'id=' + session.id + '&title=' + session.title + '&day_delta=' + dayDelta + '&minute_delta=' + minuteDelta,
33
+ dataType: 'script',
34
+ type: 'post',
35
+ url: '/sessions/'+session.id+'/resize'
36
+ });
37
+ }
38
+
39
+ function showSessionDetails(session){
40
+ $('#event_desc').html(session.description);
41
+ //$('#edit_event').html("<a href = 'javascript:void(0);' onclick ='editSession(" + session.id + ")'>Editar</a>");
42
+
43
+ title = session.title;
44
+ $('#delete_event').html("<a href = 'javascript:void(0);' onclick ='deleteSession(" + session.id + ", " + false + ")'>Eliminar</a>");
45
+
46
+ $('#desc_dialog').dialog({
47
+ title: title,
48
+ modal: true,
49
+ width: 500,
50
+ close: function(session, ui){
51
+ $('#desc_dialog').dialog('destroy')
52
+ }
53
+ });
54
+ }
55
+
56
+ function showSessionDescription(event){
57
+ $('#event_desc').html(event.description);
58
+ $('#edit_event').html("");
59
+ $('#delete_event').html("");
60
+
61
+ $('#desc_dialog').dialog({
62
+ title: event.title,
63
+ modal: true,
64
+ width: 500,
65
+ close: function(event, ui){
66
+ $('#desc_dialog').dialog('destroy')
67
+ }
68
+ });
69
+ }
70
+
71
+ function deleteSession(session_id, delete_all){
72
+ jQuery.ajax({
73
+ data: 'id=' + session_id + '&delete_all='+delete_all,
74
+ dataType: 'script',
75
+ type: 'post',
76
+ url: '/sessions/'+session_id+'/destroy'
77
+ });
78
+ }
79
+
80
+
81
+ function dateScheduleAvailable(start, end, allDay){
82
+ return $('#calendar').fullCalendar('clientEvents', function(session)
83
+ {
84
+ if ((session.start_at < start && start < session.end_at) ||
85
+ (session.start_at < end && end < session.end_at) ||
86
+ (compareDate(session.start_at, start) && (session.allDay || allDay))
87
+ )
88
+ {
89
+ return true;
90
+ }
91
+ return false;
92
+ }) == '';
93
+ }
94
+
95
+ function dateAvailable(start, end, allDay){
96
+ return $('#calendar').fullCalendar('clientEvents', function(session)
97
+ {
98
+ if (session.start_at < start && start < session.end_at)
99
+ return true;
100
+ else if (session.start_at < end && end < session.end_at)
101
+ return true;
102
+ else if (session.start_at > start && (session.end_at && session.end_at < end))
103
+ return true;
104
+ else if (compareDateWithMinutes(session.start_at, start))
105
+ return true;
106
+ else if (session.end_at && compareDateWithMinutes(session.end_at, end))
107
+ return true;
108
+ else if (compareDate(session.start_at, start) && (session.allDay || allDay))
109
+ return true;
110
+ else
111
+ return false;
112
+ }) == '' && (start >= new Date(new Date().getTime() + 5*60*1000) && start <= new Date(new Date().getTime() + 3*30*24*60*60*1000));
113
+ }
114
+
115
+ function compareDate(date1, date2)
116
+ {
117
+ return $.fullCalendar.formatDate(date1, "yyyy-MM-dd") == $.fullCalendar.formatDate(date2, "yyyy-MM-dd");
118
+ }
119
+
120
+ function compareDateWithMinutes(date1, date2)
121
+ {
122
+ return $.fullCalendar.formatDate(date1, "yyyy-MM-dd HH:mm") == $.fullCalendar.formatDate(date2, "yyyy-MM-dd HH:mm");
123
+ }
@@ -0,0 +1,20 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
3
+ var contact_manage_open = false;
4
+ closeSettings = function() {
5
+ $("#contact_settings_content").hide("slow");
6
+ $("#contact_settings_briefing").show("slow");
7
+ contact_manage_open = false;
8
+ }
9
+ showContactSettings = function() {
10
+ if (contact_manage_open) {
11
+ $("#contact_settings_content").hide("slow");
12
+ $("#contact_settings_briefing").show("slow");
13
+ contact_manage_open = false;
14
+ } else {
15
+ closeAllSettings();
16
+ $("#contact_settings_content").show("slow");
17
+ $("#contact_settings_briefing").hide("slow");
18
+ contact_manage_open = true;
19
+ }
20
+ }
@@ -0,0 +1,5 @@
1
+ //= require fullcalendar
2
+ //= require gcal
3
+ //= require_tree .
4
+
5
+
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,621 @@
1
+ /*
2
+ * FullCalendar v1.5.1 Stylesheet
3
+ *
4
+ * Copyright (c) 2011 Adam Shaw
5
+ * Dual licensed under the MIT and GPL licenses, located in
6
+ * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
7
+ *
8
+ * Date: Sat Apr 9 14:09:51 2011 -0700
9
+ *
10
+ */
11
+
12
+
13
+ .fc {
14
+ direction: ltr;
15
+ text-align: left;
16
+ }
17
+
18
+ .fc table {
19
+ border-collapse: collapse;
20
+ border-spacing: 0;
21
+ }
22
+
23
+ html .fc,
24
+ .fc table {
25
+ font-size: 1em;
26
+ }
27
+
28
+ .fc td,
29
+ .fc th {
30
+ padding: 0;
31
+ vertical-align: top;
32
+ }
33
+
34
+
35
+
36
+ /* Header
37
+ ------------------------------------------------------------------------*/
38
+
39
+ .fc-header td {
40
+ white-space: nowrap;
41
+ }
42
+
43
+ .fc-header-left {
44
+ width: 25%;
45
+ text-align: left;
46
+ }
47
+
48
+ .fc-header-center {
49
+ text-align: center;
50
+ }
51
+
52
+ .fc-header-right {
53
+ width: 25%;
54
+ text-align: right;
55
+ }
56
+
57
+ .fc-header-title {
58
+ display: inline-block;
59
+ vertical-align: top;
60
+ }
61
+
62
+ .fc-header-title h2 {
63
+ margin-top: 0;
64
+ white-space: nowrap;
65
+ }
66
+
67
+ .fc .fc-header-space {
68
+ padding-left: 10px;
69
+ }
70
+
71
+ .fc-header .fc-button {
72
+ margin-bottom: 1em;
73
+ vertical-align: top;
74
+ }
75
+
76
+ /* buttons edges butting together */
77
+
78
+ .fc-header .fc-button {
79
+ margin-right: -1px;
80
+ }
81
+
82
+ .fc-header .fc-corner-right {
83
+ margin-right: 1px; /* back to normal */
84
+ }
85
+
86
+ .fc-header .ui-corner-right {
87
+ margin-right: 0; /* back to normal */
88
+ }
89
+
90
+ /* button layering (for border precedence) */
91
+
92
+ .fc-header .fc-state-hover,
93
+ .fc-header .ui-state-hover {
94
+ z-index: 2;
95
+ }
96
+
97
+ .fc-header .fc-state-down {
98
+ z-index: 3;
99
+ }
100
+
101
+ .fc-header .fc-state-active,
102
+ .fc-header .ui-state-active {
103
+ z-index: 4;
104
+ }
105
+
106
+
107
+
108
+ /* Content
109
+ ------------------------------------------------------------------------*/
110
+
111
+ .fc-content {
112
+ clear: both;
113
+ }
114
+
115
+ .fc-view {
116
+ width: 100%; /* needed for view switching (when view is absolute) */
117
+ overflow: hidden;
118
+ }
119
+
120
+
121
+
122
+ /* Cell Styles
123
+ ------------------------------------------------------------------------*/
124
+
125
+ .fc-widget-header, /* <th>, usually */
126
+ .fc-widget-content { /* <td>, usually */
127
+ border: 1px solid #ccc;
128
+ }
129
+
130
+ .fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
131
+ background: #ffc;
132
+ }
133
+
134
+ .fc-cell-overlay { /* semi-transparent rectangle while dragging */
135
+ background: #9cf;
136
+ /*opacity: .2;*/
137
+ /*filter: alpha(opacity=20); /* for IE */
138
+ }
139
+
140
+
141
+
142
+ /* Buttons
143
+ ------------------------------------------------------------------------*/
144
+
145
+ .fc-button {
146
+ position: relative;
147
+ display: inline-block;
148
+ cursor: pointer;
149
+ }
150
+
151
+ .fc-state-default { /* non-theme */
152
+ border-style: solid;
153
+ border-width: 1px 0;
154
+ }
155
+
156
+ .fc-button-inner {
157
+ position: relative;
158
+ float: left;
159
+ overflow: hidden;
160
+ }
161
+
162
+ .fc-state-default .fc-button-inner { /* non-theme */
163
+ border-style: solid;
164
+ border-width: 0 1px;
165
+ }
166
+
167
+ .fc-button-content {
168
+ position: relative;
169
+ float: left;
170
+ height: 1.9em;
171
+ line-height: 1.9em;
172
+ padding: 0 .6em;
173
+ white-space: nowrap;
174
+ }
175
+
176
+ /* icon (for jquery ui) */
177
+
178
+ .fc-button-content .fc-icon-wrap {
179
+ position: relative;
180
+ float: left;
181
+ top: 50%;
182
+ }
183
+
184
+ .fc-button-content .ui-icon {
185
+ position: relative;
186
+ float: left;
187
+ margin-top: -50%;
188
+ *margin-top: 0;
189
+ *top: -50%;
190
+ }
191
+
192
+ /* gloss effect */
193
+
194
+ .fc-state-default .fc-button-effect {
195
+ position: absolute;
196
+ top: 50%;
197
+ left: 0;
198
+ }
199
+
200
+ .fc-state-default .fc-button-effect span {
201
+ position: absolute;
202
+ top: -100px;
203
+ left: 0;
204
+ width: 500px;
205
+ height: 100px;
206
+ border-width: 100px 0 0 1px;
207
+ border-style: solid;
208
+ border-color: #fff;
209
+ background: #444;
210
+ opacity: .09;
211
+ filter: alpha(opacity=9);
212
+ }
213
+
214
+ /* button states (determines colors) */
215
+
216
+ .fc-state-default,
217
+ .fc-state-default .fc-button-inner {
218
+ border-style: solid;
219
+ border-color: #ccc #bbb #aaa;
220
+ background: #F3F3F3;
221
+ color: #000;
222
+ }
223
+
224
+ .fc-state-hover,
225
+ .fc-state-hover .fc-button-inner {
226
+ border-color: #999;
227
+ }
228
+
229
+ .fc-state-down,
230
+ .fc-state-down .fc-button-inner {
231
+ border-color: #555;
232
+ background: #777;
233
+ }
234
+
235
+ .fc-state-active,
236
+ .fc-state-active .fc-button-inner {
237
+ border-color: #555;
238
+ background: #777;
239
+ color: #fff;
240
+ }
241
+
242
+ .fc-state-disabled,
243
+ .fc-state-disabled .fc-button-inner {
244
+ color: #999;
245
+ border-color: #ddd;
246
+ }
247
+
248
+ .fc-state-disabled {
249
+ cursor: default;
250
+ }
251
+
252
+ .fc-state-disabled .fc-button-effect {
253
+ display: none;
254
+ }
255
+
256
+
257
+
258
+ /* Global Event Styles
259
+ ------------------------------------------------------------------------*/
260
+
261
+ .fc-event {
262
+ border-style: solid;
263
+ border-width: 0;
264
+ font-size: .85em;
265
+ cursor: default;
266
+ }
267
+
268
+ a.fc-event,
269
+ .fc-event-draggable {
270
+ cursor: pointer;
271
+ }
272
+
273
+ a.fc-event {
274
+ text-decoration: none;
275
+ }
276
+
277
+ .fc-rtl .fc-event {
278
+ text-align: right;
279
+ }
280
+
281
+ .fc-event-skin {
282
+ border-color: #1F4A75; /* default BORDER color */
283
+ background-color: #1F4A75; /* default BACKGROUND color */
284
+ color: #fff; /* default TEXT color */
285
+
286
+ }
287
+
288
+ .fc-event-inner {
289
+ position: relative;
290
+ width: 100%;
291
+ height: 100%;
292
+ border-style: solid;
293
+ border-width: 0;
294
+ overflow: hidden;
295
+ }
296
+
297
+ .fc-event-time,
298
+ .fc-event-title {
299
+ padding: 0 1px;
300
+ color:#fff;
301
+ }
302
+
303
+ .fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
304
+ display: block;
305
+ position: absolute;
306
+ z-index: 99999;
307
+ overflow: hidden; /* hacky spaces (IE6/7) */
308
+ font-size: 300%; /* */
309
+ line-height: 50%; /* */
310
+ }
311
+
312
+
313
+
314
+ /* Horizontal Events
315
+ ------------------------------------------------------------------------*/
316
+
317
+ .fc-event-hori {
318
+ border-width: 1px 0;
319
+ margin-bottom: 1px;
320
+ }
321
+
322
+ /* resizable */
323
+
324
+ .fc-event-hori .ui-resizable-e {
325
+ top: 0 !important; /* importants override pre jquery ui 1.7 styles */
326
+ right: -3px !important;
327
+ width: 7px !important;
328
+ height: 100% !important;
329
+ cursor: e-resize;
330
+ }
331
+
332
+ .fc-event-hori .ui-resizable-w {
333
+ top: 0 !important;
334
+ left: -3px !important;
335
+ width: 7px !important;
336
+ height: 100% !important;
337
+ cursor: w-resize;
338
+ }
339
+
340
+ .fc-event-hori .ui-resizable-handle {
341
+ _padding-bottom: 14px; /* IE6 had 0 height */
342
+ }
343
+
344
+
345
+
346
+ /* Fake Rounded Corners (for buttons and events)
347
+ ------------------------------------------------------------*/
348
+
349
+ .fc-corner-left {
350
+ margin-left: 1px;
351
+ }
352
+
353
+ .fc-corner-left .fc-button-inner,
354
+ .fc-corner-left .fc-event-inner {
355
+ margin-left: -1px;
356
+ }
357
+
358
+ .fc-corner-right {
359
+ margin-right: 1px;
360
+ }
361
+
362
+ .fc-corner-right .fc-button-inner,
363
+ .fc-corner-right .fc-event-inner {
364
+ margin-right: -1px;
365
+ }
366
+
367
+ .fc-corner-top {
368
+ margin-top: 1px;
369
+ }
370
+
371
+ .fc-corner-top .fc-event-inner {
372
+ margin-top: -1px;
373
+ }
374
+
375
+ .fc-corner-bottom {
376
+ margin-bottom: 1px;
377
+ }
378
+
379
+ .fc-corner-bottom .fc-event-inner {
380
+ margin-bottom: -1px;
381
+ }
382
+
383
+
384
+
385
+ /* Fake Rounded Corners SPECIFICALLY FOR EVENTS
386
+ -----------------------------------------------------------------*/
387
+
388
+ .fc-corner-left .fc-event-inner {
389
+ border-left-width: 1px;
390
+ }
391
+
392
+ .fc-corner-right .fc-event-inner {
393
+ border-right-width: 1px;
394
+ }
395
+
396
+ .fc-corner-top .fc-event-inner {
397
+ border-top-width: 1px;
398
+ }
399
+
400
+ .fc-corner-bottom .fc-event-inner {
401
+ border-bottom-width: 1px;
402
+ }
403
+
404
+
405
+
406
+ /* Reusable Separate-border Table
407
+ ------------------------------------------------------------*/
408
+
409
+ table.fc-border-separate {
410
+ border-collapse: separate;
411
+ }
412
+
413
+ .fc-border-separate th,
414
+ .fc-border-separate td {
415
+ border-width: 1px 0 0 1px;
416
+ }
417
+
418
+ .fc-border-separate th.fc-last,
419
+ .fc-border-separate td.fc-last {
420
+ border-right-width: 1px;
421
+ }
422
+
423
+ .fc-border-separate tr.fc-last th,
424
+ .fc-border-separate tr.fc-last td {
425
+ border-bottom-width: 1px;
426
+ }
427
+
428
+ .fc-border-separate tbody tr.fc-first td,
429
+ .fc-border-separate tbody tr.fc-first th {
430
+ border-top-width: 0;
431
+ }
432
+
433
+
434
+
435
+ /* Month View, Basic Week View, Basic Day View
436
+ ------------------------------------------------------------------------*/
437
+
438
+ .fc-grid th {
439
+ text-align: center;
440
+ }
441
+
442
+ .fc-grid .fc-day-number {
443
+ float: right;
444
+ padding: 0 2px;
445
+ }
446
+
447
+ .fc-grid .fc-other-month .fc-day-number {
448
+ opacity: 0.3;
449
+ filter: alpha(opacity=30); /* for IE */
450
+ /* opacity with small font can sometimes look too faded
451
+ might want to set the 'color' property instead
452
+ making day-numbers bold also fixes the problem */
453
+ }
454
+
455
+ .fc-grid .fc-day-content {
456
+ clear: both;
457
+ padding: 2px 2px 1px; /* distance between events and day edges */
458
+ }
459
+
460
+ /* event styles */
461
+
462
+ .fc-grid .fc-event-time {
463
+ font-weight: bold;
464
+ }
465
+
466
+ /* right-to-left */
467
+
468
+ .fc-rtl .fc-grid .fc-day-number {
469
+ float: left;
470
+ }
471
+
472
+ .fc-rtl .fc-grid .fc-event-time {
473
+ float: right;
474
+ }
475
+
476
+
477
+
478
+ /* Agenda Week View, Agenda Day View
479
+ ------------------------------------------------------------------------*/
480
+
481
+ .fc-agenda table {
482
+ border-collapse: separate;
483
+ }
484
+
485
+ .fc-agenda-days th {
486
+ text-align: center;
487
+ }
488
+
489
+ .fc-agenda .fc-agenda-axis {
490
+ width: 50px;
491
+ padding: 0 4px;
492
+ vertical-align: middle;
493
+ text-align: right;
494
+ white-space: nowrap;
495
+ font-weight: normal;
496
+ }
497
+
498
+ .fc-agenda .fc-day-content {
499
+ padding: 2px 2px 1px;
500
+ }
501
+
502
+ /* make axis border take precedence */
503
+
504
+ .fc-agenda-days .fc-agenda-axis {
505
+ border-right-width: 1px;
506
+ }
507
+
508
+ .fc-agenda-days .fc-col0 {
509
+ border-left-width: 0;
510
+ }
511
+
512
+ /* all-day area */
513
+
514
+ .fc-agenda-allday th {
515
+ border-width: 0 1px;
516
+ }
517
+
518
+ .fc-agenda-allday .fc-day-content {
519
+ min-height: 34px; /* TODO: doesnt work well in quirksmode */
520
+ _height: 34px;
521
+ }
522
+
523
+ /* divider (between all-day and slots) */
524
+
525
+ .fc-agenda-divider-inner {
526
+ height: 2px;
527
+ overflow: hidden;
528
+ }
529
+
530
+ .fc-widget-header .fc-agenda-divider-inner {
531
+ background: #eee;
532
+ }
533
+
534
+ /* slot rows */
535
+
536
+ .fc-agenda-slots th {
537
+ border-width: 1px 1px 0;
538
+ }
539
+
540
+ .fc-agenda-slots td {
541
+ border-width: 1px 0 0;
542
+ background: none;
543
+ }
544
+
545
+ .fc-agenda-slots td div {
546
+ height: 20px;
547
+ }
548
+
549
+ .fc-agenda-slots tr.fc-slot0 th,
550
+ .fc-agenda-slots tr.fc-slot0 td {
551
+ border-top-width: 0;
552
+ }
553
+
554
+ .fc-agenda-slots tr.fc-minor th,
555
+ .fc-agenda-slots tr.fc-minor td {
556
+ border-top-style: dotted;
557
+ }
558
+
559
+ .fc-agenda-slots tr.fc-minor th.ui-widget-header {
560
+ *border-top-style: solid; /* doesn't work with background in IE6/7 */
561
+ }
562
+
563
+
564
+
565
+ /* Vertical Events
566
+ ------------------------------------------------------------------------*/
567
+
568
+ .fc-event-vert {
569
+ border-width: 0 1px;
570
+ }
571
+
572
+ .fc-event-vert .fc-event-head,
573
+ .fc-event-vert .fc-event-content {
574
+ position: relative;
575
+ z-index: 2;
576
+ width: 100%;
577
+ overflow: hidden;
578
+ }
579
+
580
+ .fc-event-vert .fc-event-time {
581
+ white-space: nowrap;
582
+ font-size: 10px;
583
+ }
584
+
585
+ .fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
586
+ position: absolute;
587
+ z-index: 1;
588
+ top: 0;
589
+ left: 0;
590
+ width: 100%;
591
+ height: 100%;
592
+ background: #fff;
593
+ opacity: .3;
594
+
595
+
596
+ }
597
+
598
+ .fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
599
+ .fc-select-helper .fc-event-bg {
600
+ display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */
601
+ }
602
+
603
+ /* resizable */
604
+
605
+ .fc-event-vert .ui-resizable-s {
606
+ bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */
607
+ width: 100% !important;
608
+ height: 8px !important;
609
+ overflow: hidden !important;
610
+ line-height: 8px !important;
611
+ font-size: 11px !important;
612
+ font-family: monospace;
613
+ text-align: center;
614
+ cursor: s-resize;
615
+ }
616
+
617
+ .fc-agenda .ui-resizable-resizing { /* TODO: better selector */
618
+ _overflow: hidden;
619
+ }
620
+
621
+