social_stream-events 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +9 -2
- data/GPL Affero license b/data/GPL Affero → license +0 -0
- data/Gemfile +1 -5
- data/README.rdoc +0 -0
- data/Rakefile +7 -0
- data/app/assets/images/btn/btn_certificate.png +0 -0
- data/app/assets/images/btn/btn_certificates.png +0 -0
- data/app/assets/images/btn/btn_edit.png +0 -0
- data/app/assets/images/btn/btn_embebed.png +0 -0
- data/app/assets/images/btn/btn_event.png +0 -0
- data/app/assets/images/btn/btn_outline.png +0 -0
- data/app/assets/images/btn/event.png +0 -0
- data/app/assets/images/btn/flyer.png +0 -0
- data/app/assets/images/btn/keynote.png +0 -0
- data/app/assets/images/btn/live.png +0 -0
- data/app/assets/images/btn/time.png +0 -0
- data/app/assets/images/btn/trash.png +0 -0
- data/app/assets/images/icons/IconsByGlyphish.txt +0 -0
- data/app/assets/images/icons/down.png +0 -0
- data/app/assets/images/icons/search.png +0 -0
- data/app/assets/images/icons/up.png +0 -0
- data/app/assets/images/logos/actor/event.png +0 -0
- data/app/assets/images/logos/contact/event.png +0 -0
- data/app/assets/images/logos/original/event.png +0 -0
- data/app/assets/images/logos/profile/event.png +0 -0
- data/app/assets/images/logos/representation/event.png +0 -0
- data/app/assets/images/tab_bottom.png +0 -0
- data/app/assets/javascripts/schedule.js +0 -0
- data/app/assets/javascripts/social_stream-events.js +0 -0
- data/app/assets/stylesheets/fullcalendar.css +0 -0
- data/app/assets/stylesheets/fullcalendar.print.css +0 -0
- data/app/assets/stylesheets/social_stream-events.css +1 -5
- data/app/controllers/agendas_controller.rb +0 -0
- data/app/controllers/events_controller.rb +0 -0
- data/app/controllers/sessions_controller.rb +0 -0
- data/app/helpers/event_helper.rb +0 -0
- data/app/models/agenda.rb +0 -0
- data/app/models/event.rb +0 -0
- data/app/models/session.rb +0 -0
- data/app/views/agendas/_agenda.html.erb +0 -0
- data/app/views/agendas/_edit.html.erb +0 -0
- data/app/views/agendas/_schedule.html.erb +0 -0
- data/app/views/agendas/_show.html.erb +0 -0
- data/app/views/agendas/_show_day.html.erb +0 -0
- data/app/views/agendas/edit.html.erb +0 -0
- data/app/views/agendas/event.html.erb +0 -0
- data/app/views/agendas/index.html.erb +0 -0
- data/app/views/agendas/show.html.erb +0 -0
- data/app/views/documents/_mediawall.html.erb +0 -0
- data/app/views/events/_event.html.erb +0 -0
- data/app/views/events/_event_with_details.html.erb +2 -0
- data/app/views/events/_form.html.erb +0 -0
- data/app/views/events/_jquery.html.erb +0 -0
- data/app/views/events/_manage.html.erb +0 -0
- data/app/views/events/_new_activity.html.erb +2 -0
- data/app/views/events/{_fields.html.erb → _new_activity_fields.html.erb} +0 -0
- data/app/views/events/_sessions_edit.html.erb +0 -0
- data/app/views/events/_sidebar_cloud.html.erb +0 -0
- data/app/views/events/_sidebar_index.html.erb +0 -0
- data/app/views/events/_sidebar_show.html.erb +0 -0
- data/app/views/events/agendas.html +0 -0
- data/app/views/events/edit.html.erb +0 -0
- data/app/views/events/index.html.erb +0 -0
- data/app/views/events/manage.html.erb +0 -0
- data/app/views/events/manage.js.erb +0 -0
- data/app/views/events/show.html.erb +0 -0
- data/app/views/profiles/_outline.html.erb +0 -0
- data/app/views/sessions/_form.html.erb +0 -0
- data/app/views/sessions/_new.html.erb +0 -0
- data/app/views/sessions/_session.html.erb +0 -0
- data/app/views/sessions/_show.html.erb +0 -0
- data/app/views/sessions/create.html.erb +0 -0
- data/app/views/sessions/create.js.erb +0 -0
- data/app/views/sessions/destroy.js.erb +0 -0
- data/app/views/sessions/edit.html.erb +0 -0
- data/app/views/sessions/index.html.erb +0 -0
- data/app/views/sessions/index.js.erb +0 -0
- data/app/views/sessions/new.html.erb +0 -0
- data/app/views/toolbar/_organizer.html.erb +0 -0
- data/app/views/toolbar/_sponsor.html.erb +0 -0
- data/app/views/toolbar/_suscribed.html.erb +0 -0
- data/config/locales/en.yml +0 -9
- data/config/routes.rb +0 -16
- data/db/{20110615143707_create_social_stream_events.rb → migrate/20110910161707_create_social_stream_events.rb} +0 -0
- data/lib/generators/social_stream/events/install_generator.rb +0 -0
- data/lib/social_stream-events.rb +6 -1
- data/lib/social_stream/events/engine.rb +5 -2
- data/lib/social_stream/events/version.rb +5 -0
- data/lib/social_stream/migrations/events.rb +2 -19
- data/lib/social_stream/toolbar_config/events.rb +40 -0
- data/social_stream-events.gemspec +5 -2
- data/vendor/assets/javascripts/fullcalendar.js +0 -0
- data/vendor/assets/javascripts/gcal.js +0 -0
- metadata +36 -88
- data/app/assets/javascripts/settings.js +0 -20
- data/app/assets/stylesheets/activities.css +0 -4
- data/app/assets/stylesheets/settings.css +0 -4
- data/app/assets/stylesheets/tie.css +0 -4
- data/app/assets/stylesheets/users.css +0 -4
- data/app/controllers/activities_controller.rb +0 -42
- data/app/controllers/calendar_events_controller.rb +0 -157
- data/app/controllers/settings_controller.rb +0 -70
- data/app/models/calendar_event.rb +0 -191
- data/app/models/calendar_event_series.rb +0 -126
- data/app/views/activities/_activity.html.erb +0 -5
- data/app/views/activities/_child.html.erb +0 -18
- data/app/views/activities/_comments.html.erb +0 -3
- data/app/views/activities/_index.html.erb +0 -94
- data/app/views/activities/_new.html.erb +0 -29
- data/app/views/activities/_options.html.erb +0 -15
- data/app/views/activities/_root.html.erb +0 -37
- data/app/views/activities/_wall.html.erb +0 -5
- data/app/views/activities/_walls.html.erb +0 -34
- data/app/views/activities/documents.js.erb +0 -1
- data/app/views/activities/index.js.erb +0 -1
- data/app/views/calendar_events/_calendar.html.erb +0 -0
- data/app/views/calendar_events/_edit_form.html.erb +0 -58
- data/app/views/calendar_events/_form.html.erb +0 -65
- data/app/views/calendar_events/available.html.erb +0 -81
- data/app/views/calendar_events/create.js.erb +0 -18
- data/app/views/calendar_events/edit.js.erb +0 -1
- data/app/views/calendar_events/index.html.erb +0 -162
- data/app/views/calendar_events/move.js.erb +0 -0
- data/app/views/calendar_events/new.js.erb +0 -9
- data/app/views/calendar_events/resize.js.erb +0 -0
- data/app/views/calendar_events/schedule.html.erb +0 -143
- data/app/views/events/_new.html.erb +0 -2
- data/app/views/kaminari/_first_page.html.erb +0 -11
- data/app/views/kaminari/_gap.html.erb +0 -8
- data/app/views/kaminari/_last_page.html.erb +0 -11
- data/app/views/kaminari/_next_page.html.erb +0 -11
- data/app/views/kaminari/_page.html.erb +0 -12
- data/app/views/kaminari/_paginator.html.erb +0 -23
- data/app/views/kaminari/_prev_page.html.erb +0 -11
- data/app/views/profiles/_profile.html.erb +0 -40
- data/app/views/settings/_contacto.html.erb +0 -24
- data/app/views/settings/_header.html.erb +0 -8
- data/app/views/settings/_index.html.erb +0 -16
- data/app/views/settings/_manage.html.erb +0 -25
- data/app/views/settings/_settings.html.erb +0 -49
- data/app/views/settings/delete_relation.js.erb +0 -3
- data/app/views/settings/index.html.erb +0 -38
- data/app/views/settings/manage.html.erb +0 -31
- data/app/views/settings/show.html.erb +0 -15
- data/app/views/settings/update_relation.js.erb +0 -1
- data/app/views/toolbar/_home.html.erb +0 -11
- data/app/views/toolbar/_logo.html.erb +0 -23
- data/app/views/toolbar/_profile.html.erb +0 -21
- data/app/views/users/_index.html.erb +0 -33
- data/app/views/users/index.html.erb +0 -46
@@ -1,70 +0,0 @@
|
|
1
|
-
class SettingsController < InheritedResources::Base
|
2
|
-
|
3
|
-
respond_to :html, :js
|
4
|
-
#before_filter :authenticate_user!
|
5
|
-
def show
|
6
|
-
|
7
|
-
end
|
8
|
-
|
9
|
-
def manage
|
10
|
-
|
11
|
-
# @cs_ = Actor.joins('INNER JOIN contacts ON contacts.receiver_id = actors.id INNER JOIN ties ON ties.contact_id = contacts.id INNER JOIN relations ON relations.id = ties.relation_id').where(:subject_type => ['User', 'Group', 'Event'], :contacts=>{:sender_id => current_subject}, :relations=>{:type => 'Relation::Custom'}).page(params[:page]).per(10)
|
12
|
-
|
13
|
-
@cs = current_subject.contact_subjects(:direction => :sent)
|
14
|
-
@cs = Kaminari.paginate_array(@cs).page(params[:page]).per(10)
|
15
|
-
# @cs_page = Paginator.new(self, cs.length, 10, 1)
|
16
|
-
# @offset = 0
|
17
|
-
# @cs= cs[offset..(offset + 10 -1)]
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
def delete_relation
|
22
|
-
@receiver = Actor.find params[:id]
|
23
|
-
logger.info "antes del each"
|
24
|
-
contact=Contact.where(["sender_id="+current_subject.id.to_s+" and receiver_id="+@receiver.id.to_s])
|
25
|
-
logger.info "cs:"+current_subject.name+"receiver:"+@receiver.name
|
26
|
-
tie_to_delete=contact.first.ties
|
27
|
-
logger.info "antes del if"
|
28
|
-
tie_x=tie_to_delete.first
|
29
|
-
if tie_x != nil
|
30
|
-
tie_x.destroy
|
31
|
-
end
|
32
|
-
@cs = current_subject.contact_subjects(:direction => :sent)
|
33
|
-
@cs = Kaminari.paginate_array(@cs).page(params[:page]).per(10)
|
34
|
-
respond_to do |format|
|
35
|
-
format.js {render :layout => false}
|
36
|
-
end
|
37
|
-
# redirect_to "/settings/manage"
|
38
|
-
end
|
39
|
-
|
40
|
-
def update_relation
|
41
|
-
@receiver = Actor.find params[:id]
|
42
|
-
relations = params['manage']
|
43
|
-
logger.info "antes del each"
|
44
|
-
relations.each do |x,y|
|
45
|
-
relation_id = y
|
46
|
-
contacto=Contact.where(["sender_id="+current_subject.id.to_s+" and receiver_id="+@receiver.id.to_s])
|
47
|
-
logger.info "cs:"+current_subject.name+"receiver:"+@receiver.name
|
48
|
-
tie_a_editar=contacto.first.ties
|
49
|
-
logger.info "antes del if"
|
50
|
-
tie_x=tie_a_editar.first
|
51
|
-
if tie_x != nil
|
52
|
-
logger.info "dentro del if"
|
53
|
-
tie_x.relation_id=relation_id
|
54
|
-
tie_x.save
|
55
|
-
logger.info "luego del save"
|
56
|
-
else
|
57
|
-
logger.info "dentro del else"
|
58
|
-
nuevo_tie=Tie.new
|
59
|
-
nuevo_tie.contact_id=contacto.first.id
|
60
|
-
nuevo_tie.relation_id=relation_id
|
61
|
-
nuevo_tie.save
|
62
|
-
end
|
63
|
-
end
|
64
|
-
respond_to do |format|
|
65
|
-
format.js {render :layout => false}
|
66
|
-
end
|
67
|
-
|
68
|
-
# redirect_to "/settings/manage"
|
69
|
-
end
|
70
|
-
end
|
@@ -1,191 +0,0 @@
|
|
1
|
-
# == Schema Information
|
2
|
-
# Schema version: 20100330111833
|
3
|
-
#
|
4
|
-
# Table name: events
|
5
|
-
#
|
6
|
-
# id :integer(4) not null, primary key
|
7
|
-
# title :string(255)
|
8
|
-
# starttime :datetime
|
9
|
-
# endtime :datetime
|
10
|
-
# all_day :boolean(1)
|
11
|
-
# created_at :datetime
|
12
|
-
# updated_at :datetime
|
13
|
-
# description :text
|
14
|
-
# event_series_id :integer(4)
|
15
|
-
#
|
16
|
-
|
17
|
-
class CalendarEvent < ActiveRecord::Base
|
18
|
-
attr_accessor :period, :frequency, :commit_button
|
19
|
-
|
20
|
-
validates_presence_of :title, :description
|
21
|
-
|
22
|
-
belongs_to :calendar_event_series
|
23
|
-
|
24
|
-
belongs_to :object, :polymorphic => true
|
25
|
-
|
26
|
-
named_scope :object_type, lambda { |type|
|
27
|
-
type ?
|
28
|
-
{ :conditions => [ "object_type = ?", type.to_s.classify ] } :
|
29
|
-
{}
|
30
|
-
}
|
31
|
-
|
32
|
-
REPEATS = [
|
33
|
-
["No repetir", "Does not repeat"],
|
34
|
-
# ["Diariamente", "Daily" ],
|
35
|
-
["Semanalmente", "Weekly" ]
|
36
|
-
# ["Mensualmente", "Monthly" ],
|
37
|
-
# ["Anualmente", "Yearly" ]
|
38
|
-
]
|
39
|
-
|
40
|
-
def validate
|
41
|
-
if (starttime >= endtime) and !all_day
|
42
|
-
errors.add_to_base("Inicio debe ser menor que Fin")
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def update_calendar_events(events, event)
|
47
|
-
events.each do |e|
|
48
|
-
begin
|
49
|
-
st, et = e.starttime, e.endtime
|
50
|
-
e.attributes = event
|
51
|
-
if calendar_event_series.period.downcase == 'monthly' or calendar_event_series.period.downcase == 'yearly'
|
52
|
-
nst = DateTime.parse("#{e.starttime.hour}:#{e.starttime.min}:#{e.starttime.sec}, #{e.starttime.day}-#{st.month}-#{st.year}")
|
53
|
-
net = DateTime.parse("#{e.endtime.hour}:#{e.endtime.min}:#{e.endtime.sec}, #{e.endtime.day}-#{et.month}-#{et.year}")
|
54
|
-
else
|
55
|
-
nst = DateTime.parse("#{e.starttime.hour}:#{e.starttime.min}:#{e.starttime.sec}, #{st.day}-#{st.month}-#{st.year}")
|
56
|
-
net = DateTime.parse("#{e.endtime.hour}:#{e.endtime.min}:#{e.endtime.sec}, #{et.day}-#{et.month}-#{et.year}")
|
57
|
-
end
|
58
|
-
#puts "#{nst} ::::::::: #{net}"
|
59
|
-
rescue
|
60
|
-
nst = net = nil
|
61
|
-
end
|
62
|
-
if nst and net
|
63
|
-
# e.attributes = event
|
64
|
-
e.starttime, e.endtime = nst, net
|
65
|
-
e.save
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
calendar_event_series.attributes = event
|
70
|
-
calendar_event_series.save
|
71
|
-
end
|
72
|
-
|
73
|
-
#method to know if an event happens in the future
|
74
|
-
def future?
|
75
|
-
return has_date? && starttime.future?
|
76
|
-
end
|
77
|
-
|
78
|
-
|
79
|
-
#method to know if an event happens in the past
|
80
|
-
def past?
|
81
|
-
return has_date? && endtime.past?
|
82
|
-
end
|
83
|
-
|
84
|
-
|
85
|
-
def has_date?
|
86
|
-
starttime
|
87
|
-
end
|
88
|
-
|
89
|
-
#method to get the starting date of an event in the correct format
|
90
|
-
def get_formatted_date
|
91
|
-
has_date? ?
|
92
|
-
I18n::localize(starttime, :format => "%A, %d %b %Y #{I18n::translate('date.at')} %H:%M. #{get_formatted_timezone}") :
|
93
|
-
I18n::t('date.undefined')
|
94
|
-
end
|
95
|
-
|
96
|
-
def get_formatted_timezone
|
97
|
-
has_date? ?
|
98
|
-
"#{I18n::t('timezone.one')}: #{Time.zone.name} (#{starttime.zone}, GMT #{starttime.formatted_offset})" :
|
99
|
-
I18n::t('date.undefined')
|
100
|
-
end
|
101
|
-
|
102
|
-
#method to get the starting hour of an event in the correct format
|
103
|
-
def get_formatted_hour
|
104
|
-
has_date? ? starttime.strftime("%H:%M") : I18n::t('date.undefined')
|
105
|
-
end
|
106
|
-
|
107
|
-
def get_formatted_timezone_lite
|
108
|
-
has_date? ?
|
109
|
-
"GMT #{starttime.formatted_offset}" :
|
110
|
-
I18n::t('date.undefined')
|
111
|
-
end
|
112
|
-
|
113
|
-
def to_s
|
114
|
-
s = I18n.localize(starttime, :format => '%A %d de %B de %Y')
|
115
|
-
if (starttime.strftime('%Y-%m-%d') == endtime.strftime('%Y-%m-%d'))
|
116
|
-
s += " de " + starttime.strftime("%H:%M") + " hasta " + endtime.strftime("%H:%M") + " " + get_formatted_timezone_lite
|
117
|
-
end
|
118
|
-
#starttime.strftime '%m/%d/%Y' + ' hasta ' + endtime.strftime '%m/%d/%Y'
|
119
|
-
end
|
120
|
-
|
121
|
-
def to_string(timezone)
|
122
|
-
s = I18n.localize(starttime, :format => '%A %d de %B de %Y')
|
123
|
-
if (starttime.strftime('%Y-%m-%d') == endtime.strftime('%Y-%m-%d'))
|
124
|
-
logger.error "timezone= #{timezone}"
|
125
|
-
if (!timezone.nil? && timezone != "")
|
126
|
-
s += " de " + starttime.in_time_zone(timezone).strftime("%H:%M") + " hasta " + endtime.in_time_zone(timezone).strftime("%H:%M") + " GMT #{starttime.in_time_zone(timezone).formatted_offset}"
|
127
|
-
end
|
128
|
-
s += " (" + starttime.utc.strftime("%H:%M") + " hasta " + endtime.utc.strftime("%H:%M") + " GMT)"
|
129
|
-
end
|
130
|
-
#starttime.strftime '%m/%d/%Y' + ' hasta ' + endtime.strftime '%m/%d/%Y'
|
131
|
-
end
|
132
|
-
|
133
|
-
def in(nce)
|
134
|
-
return (starttime <= nce.starttime && endtime > nce.starttime) || (starttime < nce.endtime && endtime >= nce.endtime)
|
135
|
-
end
|
136
|
-
|
137
|
-
def self.find_room(reservation, room_id)
|
138
|
-
logger.error "reservation=#{reservation.id} room=#{room_id}"
|
139
|
-
room_object=Room.find room_id
|
140
|
-
calendar_events_roster = room_object.calendar_events
|
141
|
-
logger.error "*** calendar_series.size = #{calendar_events_roster.size}"
|
142
|
-
for iterador in calendar_events_roster
|
143
|
-
logger.error "*** iterador.id = #{iterador.id} all_day=#{iterador.all_day}"
|
144
|
-
if iterador.all_day
|
145
|
-
logger.error "#{iterador.starttime} #{iterador.endtime}"
|
146
|
-
eventos = CalendarEvent.find(:all, :conditions => ["object_type = 'Room' AND object_id=? AND ((starttime <= ? AND endtime> ?) OR (starttime< ? AND endtime>= ? ))", room_id, iterador.starttime, iterador.starttime, iterador.endtime, iterador.endtime])
|
147
|
-
logger.error "tamanio #{eventos.size}"
|
148
|
-
if eventos.size != 0
|
149
|
-
return false
|
150
|
-
end
|
151
|
-
else
|
152
|
-
logger.error "#{iterador.starttime} #{iterador.endtime}"
|
153
|
-
eventos = CalendarEvent.find(:all, :conditions => ["object_type = 'Room' AND object_id=? AND ((starttime <= ? AND endtime> ?) OR (starttime< ? AND endtime>= ? ))", room_id, iterador.starttime, iterador.starttime, iterador.endtime, iterador.endtime])
|
154
|
-
logger.error "tamanio #{eventos.size}"
|
155
|
-
if eventos.size != 0
|
156
|
-
return false
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
160
|
-
return true
|
161
|
-
end
|
162
|
-
|
163
|
-
def self.find_room_reserved(reservation, room_id)
|
164
|
-
logger.error "reserved reservation=#{reservation.id} room=#{room_id}"
|
165
|
-
reservations_approved = Reservation.find(:all, :conditions => ["room_id=? AND state=?", room_id, Reservation::STATE_APPROVED])
|
166
|
-
for reservation_approved in reservations_approved
|
167
|
-
calendar_events_roster = reservation_approved.calendar_events
|
168
|
-
logger.error "*** reserved calendar_series.size = #{calendar_events_roster.size}"
|
169
|
-
for iterador in calendar_events_roster
|
170
|
-
logger.error "*** reserved iterador.id = #{iterador.id} all_day=#{iterador.all_day}"
|
171
|
-
if iterador.all_day
|
172
|
-
logger.error "reserved {iterador.starttime} #{iterador.endtime}"
|
173
|
-
eventos = CalendarEvent.find(:all, :conditions => ["object_type = 'Room' AND object_id=? AND ((starttime <= ? AND endtime> ?) OR (starttime< ? AND endtime>= ? ))", room_id, iterador.starttime, iterador.starttime, iterador.endtime, iterador.endtime])
|
174
|
-
logger.error "reserved tamanio #{eventos.size}"
|
175
|
-
if eventos.size != 0
|
176
|
-
return false
|
177
|
-
end
|
178
|
-
else
|
179
|
-
logger.error "reserved #{iterador.starttime} #{iterador.endtime}"
|
180
|
-
eventos = CalendarEvent.find(:all, :conditions => ["object_type = 'Room' AND object_id=? AND ((starttime <= ? AND endtime> ?) OR (starttime< ? AND endtime>= ? ))", room_id, iterador.starttime, iterador.starttime, iterador.endtime, iterador.endtime])
|
181
|
-
logger.error "reserved tamanio #{eventos.size}"
|
182
|
-
if eventos.size != 0
|
183
|
-
return false
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
188
|
-
return true
|
189
|
-
end
|
190
|
-
|
191
|
-
end
|
@@ -1,126 +0,0 @@
|
|
1
|
-
# == Schema Information
|
2
|
-
# Schema version: 20100330111833
|
3
|
-
#
|
4
|
-
# Table name: event_series
|
5
|
-
#
|
6
|
-
# id :integer(4) not null, primary key
|
7
|
-
# frequency :integer(4) default(1)
|
8
|
-
# period :string(255) default("months")
|
9
|
-
# starttime :datetime
|
10
|
-
# endtime :datetime
|
11
|
-
# all_day :boolean(1)
|
12
|
-
# created_at :datetime
|
13
|
-
# updated_at :datetime
|
14
|
-
#
|
15
|
-
|
16
|
-
class CalendarEventSeries < ActiveRecord::Base
|
17
|
-
attr_accessor :commit_button
|
18
|
-
attr_accessible :id, :title, :description, :starttime, :endtime, :frequency, :period, :all_day, :object_type, :object_id
|
19
|
-
|
20
|
-
validates_presence_of :frequency, :period, :starttime, :endtime
|
21
|
-
validates_presence_of :title, :description
|
22
|
-
|
23
|
-
has_many :calendar_events, :dependent => :destroy
|
24
|
-
|
25
|
-
belongs_to :object, :polymorphic => true
|
26
|
-
|
27
|
-
named_scope :object_type, lambda { |type|
|
28
|
-
type ?
|
29
|
-
{ :conditions => [ "object_type = ?", type.to_s.classify ] } :
|
30
|
-
{}
|
31
|
-
}
|
32
|
-
|
33
|
-
def after_create
|
34
|
-
#create_events_until
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.find_or_create(starttime, endtime, room_id)
|
38
|
-
calendar_series = self.find(:all, :conditions => [ "object_type = 'Room' AND object_id=?", room_id ] )
|
39
|
-
logger.error "*** calendar_series.size = #{calendar_series.size}"
|
40
|
-
for iterador in calendar_series
|
41
|
-
logger.error "*** iterador.id = #{iterador.id}"
|
42
|
-
if iterador.all_day
|
43
|
-
if iterador.repeat_until.nil?
|
44
|
-
indice= ((endtime - iterador.starttime)/(iterador.frequency.send(iterador.r_period(iterador.period)) )).to_i
|
45
|
-
fecha_consulta= (indice*iterador.frequency).send(iterador.r_period(iterador.period)).from_now(iterador.starttime)
|
46
|
-
fecha_consulta_end= (indice*iterador.frequency).send(iterador.r_period(iterador.period)).from_now(iterador.endtime)
|
47
|
-
|
48
|
-
logger.error "#{fecha_consulta} #{fecha_consulta_end}"
|
49
|
-
eventos= CalendarEvent.find(:all, :conditions => ["starttime =? AND calendar_event_series_id=?",fecha_consulta,iterador.id])
|
50
|
-
logger.error "tamanio #{eventos.size}"
|
51
|
-
if eventos.size == 0
|
52
|
-
CalendarEvent.create(:title=>iterador.title,:description=>iterador.description,:starttime=>fecha_consulta,:endtime=>fecha_consulta_end,:all_day=>iterador.all_day,:object_type=>'Room',:object_id=>room_id, :calendar_event_series_id=>iterador.id)
|
53
|
-
end
|
54
|
-
else
|
55
|
-
if endtime <= iterador.repeat_until
|
56
|
-
indice= ((endtime - iterador.starttime)/(iterador.frequency.send(iterador.r_period(iterador.period)) )).to_i
|
57
|
-
|
58
|
-
fecha_consulta= (indice*iterador.frequency).send(iterador.r_period(iterador.period)).from_now(iterador.starttime)
|
59
|
-
fecha_consulta_end= (indice*iterador.frequency).send(iterador.r_period(iterador.period)).from_now(iterador.endtime)
|
60
|
-
logger.error fecha_consulta
|
61
|
-
eventos= CalendarEvent.find(:all, :conditions => ["starttime =? AND calendar_event_series_id=?",fecha_consulta,iterador.id])
|
62
|
-
if eventos.size == 0
|
63
|
-
CalendarEvent.create(:title=>iterador.title,:description=>iterador.description,:starttime=>fecha_consulta,:endtime=>fecha_consulta_end,:all_day=>iterador.all_day,:object_type=>'Room',:object_id=>room_id, :calendar_event_series_id=>iterador.id)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
else
|
69
|
-
if iterador.repeat_until.nil? || endtime <= iterador.repeat_until
|
70
|
-
indice= ((endtime - iterador.starttime)/(iterador.frequency.send(iterador.r_period(iterador.period)) )).to_i
|
71
|
-
|
72
|
-
fecha_consulta= (indice*iterador.frequency).send(iterador.r_period(iterador.period)).from_now(iterador.starttime)
|
73
|
-
fecha_consulta_end= (indice*iterador.frequency).send(iterador.r_period(iterador.period)).from_now(iterador.endtime)
|
74
|
-
|
75
|
-
logger.error fecha_consulta
|
76
|
-
eventos= CalendarEvent.find(:all, :conditions => ["starttime =? AND endtime=? AND calendar_event_series_id=?",fecha_consulta,fecha_consulta_end,iterador.id])
|
77
|
-
if eventos.size == 0
|
78
|
-
CalendarEvent.create(:title=>iterador.title,:description=>iterador.description,:starttime=>fecha_consulta,:endtime=>fecha_consulta_end,:all_day=>iterador.all_day,:object_type=>'Room',:object_id=>room_id, :calendar_event_series_id=>iterador.id)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
def create_events_until
|
86
|
-
|
87
|
-
st = starttime
|
88
|
-
et = endtime
|
89
|
-
p = r_period(period)
|
90
|
-
nst, net = st, et
|
91
|
-
while frequency.send(p).from_now(st) <= repeat_until
|
92
|
-
# logger.error "*** title=#{title} description=#{description} all_day=#{all_day}"
|
93
|
-
# logger.error "*** starttime=#{nst} endtime=#{net} object_id=#{object_id} object_type=#{object_type}"
|
94
|
-
|
95
|
-
#while frequency.send(p).from_now(st) <= end_time
|
96
|
-
# puts "#{nst} ::::::::: #{net}" if nst and net
|
97
|
-
self.calendar_events.create(:title => title, :description => description, :all_day => all_day, :starttime => nst, :endtime => net, :object_id => object_id, :object_type => 'Room')
|
98
|
-
nst = st = frequency.send(p).from_now(st)
|
99
|
-
net = et = frequency.send(p).from_now(et)
|
100
|
-
|
101
|
-
if period.downcase == 'monthly' or period.downcase == 'yearly'
|
102
|
-
begin
|
103
|
-
nst = DateTime.parse("#{starttime.hour}:#{starttime.min}:#{starttime.sec}, #{starttime.day}-#{st.month}-#{st.year}")
|
104
|
-
net = DateTime.parse("#{endtime.hour}:#{endtime.min}:#{endtime.sec}, #{endtime.day}-#{et.month}-#{et.year}")
|
105
|
-
rescue
|
106
|
-
nst = net = nil
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def r_period(period)
|
113
|
-
case period
|
114
|
-
when 'Daily'
|
115
|
-
p = 'days'
|
116
|
-
when "Weekly"
|
117
|
-
p = 'weeks'
|
118
|
-
when "Monthly"
|
119
|
-
p = 'months'
|
120
|
-
when "Yearly"
|
121
|
-
p = 'years'
|
122
|
-
end
|
123
|
-
return p
|
124
|
-
end
|
125
|
-
|
126
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<%= div_for activity, :class => "subactivity" do %>
|
2
|
-
<div class="actor_logo_subactivity">
|
3
|
-
<%= link_to image_tag(activity.sender_subject.logo.url(:actor),
|
4
|
-
:alt => activity.sender_subject.name),
|
5
|
-
activity.sender_subject %>
|
6
|
-
</div>
|
7
|
-
<div class="activity_content">
|
8
|
-
<div class="actor_name-activity_objects">
|
9
|
-
<%= link_to(activity.sender_subject.name, activity.sender_subject) %>
|
10
|
-
<span class="subactivity_objects">
|
11
|
-
<%= render activity.activity_objects %>
|
12
|
-
</span>
|
13
|
-
</div>
|
14
|
-
<%= render :partial => 'activities/options',
|
15
|
-
:locals => { :activity => activity } %>
|
16
|
-
</div>
|
17
|
-
<% end %>
|
18
|
-
<div class="space_comments"></div>
|
@@ -1,94 +0,0 @@
|
|
1
|
-
<% content_for :javascript do %>
|
2
|
-
$(function() {
|
3
|
-
/**
|
4
|
-
* the element
|
5
|
-
*/
|
6
|
-
var $ui = $('#form_filter');
|
7
|
-
var $ui_really = $('#ul_filter');
|
8
|
-
/**
|
9
|
-
* on focus and on click display the dropdown,
|
10
|
-
* and change the arrow image
|
11
|
-
*/
|
12
|
-
/*$ui.find('.sb_down').bind('focus click',function()*/
|
13
|
-
$ui.find('.sb_down').bind('mouseover',function()
|
14
|
-
{
|
15
|
-
$ui.find('.sb_down')
|
16
|
-
.addClass('sb_up')
|
17
|
-
.removeClass('sb_down')
|
18
|
-
.andSelf()
|
19
|
-
.find('.sb_dropdown')
|
20
|
-
.show();
|
21
|
-
/*$ui.find('.sb_up')
|
22
|
-
.hide();*/
|
23
|
-
});
|
24
|
-
|
25
|
-
/**
|
26
|
-
* on mouse leave hide the dropdown,
|
27
|
-
* and change the arrow image
|
28
|
-
*/
|
29
|
-
|
30
|
-
$ui_really.bind('mouseleave',function(){
|
31
|
-
|
32
|
-
$ui.find('.sb_up')
|
33
|
-
.addClass('sb_down')
|
34
|
-
.removeClass('sb_up')
|
35
|
-
.andSelf()
|
36
|
-
.find('.sb_dropdown')
|
37
|
-
.hide();
|
38
|
-
/*$ui.find('.sb_down')
|
39
|
-
.show();*/
|
40
|
-
});
|
41
|
-
|
42
|
-
/**
|
43
|
-
* selecting all checkboxes
|
44
|
-
*/
|
45
|
-
$ui.find('.sb_dropdown').find('label[for="all"]').prev().bind('click',function(){
|
46
|
-
$(this).parent().siblings().find(':checkbox').attr('checked',this.checked).attr('disabled',this.checked);
|
47
|
-
});
|
48
|
-
});
|
49
|
-
<% end %>
|
50
|
-
<div id="wrapper_activities">
|
51
|
-
<div id="wrapper_activities_header">
|
52
|
-
<div id="activities_title" class="content_size">
|
53
|
-
<div class="activities_title_header">
|
54
|
-
<%= image_tag("btn/activity.png") %><%= t 'activity.title' %>
|
55
|
-
</div>
|
56
|
-
</div>
|
57
|
-
<%= render :partial => 'activities/new', :locals => { :receiver => owner } %>
|
58
|
-
</div>
|
59
|
-
<div id="filter_div">
|
60
|
-
<%= form_tag "/activities/documents", :method => :post ,:id=> 'form_filter', :class => "tie_form",:remote=> true do %>
|
61
|
-
<span class="sb_down">Filter</span>
|
62
|
-
<ul class="sb_dropdown" style="display:none;" id="ul_filter">
|
63
|
-
|
64
|
-
<li>
|
65
|
-
<%= check_box_tag 'types', 'Documents', false, :class => 'accept_tos',:onchange=>'$(\'#form_filter\').submit();'%>
|
66
|
-
<label for="<%=t('activity.view.documents')%>"><%=t('activity.view.documents')%></label>
|
67
|
-
</li>
|
68
|
-
<li>
|
69
|
-
<%= check_box_tag 'types', 'Audio', false, :class => 'accept_tos',:onchange=>'$(\'#form_filter\').submit();'%>
|
70
|
-
<label for="t('activity.view.audio')"><%=t('activity.view.audio')%></label>
|
71
|
-
</li>
|
72
|
-
<li>
|
73
|
-
<%= check_box_tag 'types', 'Event', false, :class => 'accept_tos',:onchange=>'$(\'#form_filter\').submit();'%>
|
74
|
-
<label for="<%=t('activity.view.event')%>"><%=t('activity.view.event')%></label>
|
75
|
-
</li>
|
76
|
-
<li>
|
77
|
-
<%= check_box_tag 'types', 'Picture', false, :class => 'accept_tos',:onchange=>'$(\'#form_filter\').submit();'%>
|
78
|
-
<label for="<%=t('activity.view.photos')%>"><%=t('activity.view.photos')%></label>
|
79
|
-
</li>
|
80
|
-
<li>
|
81
|
-
<%= check_box_tag 'types', 'Post', false, :class => 'accept_tos',:onchange=>'$(\'#form_filter\').submit();'%>
|
82
|
-
<label for="<%=t('activity.view.post')%>"><%=t('activity.view.post')%></label>
|
83
|
-
</li>
|
84
|
-
<li>
|
85
|
-
<%= check_box_tag 'types', 'Video', false, :class => 'accept_tos',:onchange=>'$(\'#form_filter\').submit();'%>
|
86
|
-
<label for="<%=t('activity.view.video')%>"><%=t('activity.view.video')%></label>
|
87
|
-
</li>
|
88
|
-
</ul>
|
89
|
-
<% end %>
|
90
|
-
</div>
|
91
|
-
<%= render :partial => 'activities/wall',
|
92
|
-
:locals => { :activities => activities } %>
|
93
|
-
|
94
|
-
</div>
|