Project

General

Profile

Feature #1077 » ICS_Support.patch

Florian L, 2008-04-30 23:17

View differences:

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
      event.summary     =   i.subject
167
      event.description =   i.description
168
      cal.add_event(event)
169
     }
170
    @cal_string = cal.to_ical 
171
    render :template => "common/calendar.ics.erb", :layout => false , :content_type => Mime::ICS
172
  end
173
  
158 174
  def self.accept_key_auth(*actions)
159 175
    actions = actions.flatten.map(&:to_s)
160 176
    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
(1-1/12)