Feature #1077 » ICS_Support__2.patch
app/controllers/application.rb Locally Modified (Based On LOCAL) | ||
---|---|---|
22 | 22 |
include Redmine::MenuManager::MenuController |
23 | 23 |
helper Redmine::MenuManager::MenuHelper |
24 | 24 |
|
25 |
require 'icalendar' |
|
26 |
|
|
25 | 27 |
REDMINE_SUPPORTED_SCM.each do |scm| |
26 | 28 |
require_dependency "repository/#{scm.underscore}" |
27 | 29 |
end |
... | ... | |
155 | 157 |
render :template => "common/feed.atom.rxml", :layout => false, :content_type => 'application/atom+xml' |
156 | 158 |
end |
157 | 159 |
|
160 |
def render_ics(items, options={}) |
|
161 |
cal = Icalendar::Calendar.new |
|
162 |
items.each { |i| |
|
163 |
event = Icalendar::Event.new |
|
164 |
event.dtstart = i.start_date |
|
165 |
event.dtend = i.due_date |
|
166 |
if i.is_a? Issue |
|
167 |
event.summary = i.subject |
|
168 |
else |
|
169 |
event.summary = "V. " + i.name |
|
170 |
end |
|
171 |
|
|
172 |
if !i.description.nil? |
|
173 |
event.description = i.description |
|
174 |
end |
|
175 |
cal.add_event(event) |
|
176 |
} |
|
177 |
@cal_string = cal.to_ical |
|
178 |
render :template => "common/calendar.ics.erb", :layout => false , :content_type => Mime::ICS |
|
179 |
end |
|
180 |
|
|
158 | 181 |
def self.accept_key_auth(*actions) |
159 | 182 |
actions = actions.flatten.map(&:to_s) |
160 | 183 |
write_inheritable_attribute('accept_key_auth_actions', actions) |
app/controllers/projects_controller.rb Locally Modified (Based On LOCAL) | ||
---|---|---|
336 | 336 |
@calendar = Redmine::Helpers::Calendar.new(Date.civil(@year, @month, 1), current_language, :month) |
337 | 337 |
@with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1') |
338 | 338 |
events = [] |
339 |
if (request.format == Mime::ICS) |
|
340 |
@calendar.startdt = @project.created_on.to_s(:db) |
|
341 |
end |
|
339 | 342 |
@project.issues_with_subprojects(@with_subprojects) do |
340 | 343 |
events += Issue.find(:all, |
341 | 344 |
:include => [:tracker, :status, :assigned_to, :priority, :project], |
... | ... | |
346 | 349 |
end |
347 | 350 |
@calendar.events = events |
348 | 351 |
|
349 |
render :layout => false if request.xhr? |
|
352 |
respond_to do |format| |
|
353 |
format.html { render :layout => false if request.xhr? } |
|
354 |
format.ics { render_ics(events) } |
|
350 | 355 |
end |
356 |
end |
|
351 | 357 | |
352 | 358 |
def gantt |
353 | 359 |
@trackers = @project.rolled_up_trackers |
app/views/common/calendar.ics.erb Locally New | ||
---|---|---|
1 |
<%= @cal_string %> |
lib/redmine/helpers/calendar.rb Locally Modified (Based On LOCAL) | ||
---|---|---|
45 | 45 |
end |
46 | 46 |
end |
47 | 47 |
|
48 |
def startdt=(dt) |
|
49 |
@startdt = dt |
|
50 |
end |
|
51 |
|
|
48 | 52 |
# Sets calendar events |
49 | 53 |
def events=(events) |
50 | 54 |
@events = events |