2018-12-05 23:21:45 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-11-08 19:23:39 +05:30
|
|
|
module IssuesCalendar
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
# rubocop:disable Gitlab/ModuleWithInstanceVariables
|
2018-12-05 23:21:45 +05:30
|
|
|
# rubocop: disable CodeReuse/ActiveRecord
|
2018-11-08 19:23:39 +05:30
|
|
|
def render_issues_calendar(issuables)
|
|
|
|
@issues = issuables
|
|
|
|
.non_archived
|
|
|
|
.with_due_date
|
|
|
|
.limit(100)
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
format.ics do
|
|
|
|
# NOTE: with text/calendar as Content-Type, the browser always downloads
|
|
|
|
# the content as a file (even ignoring the Content-Disposition
|
|
|
|
# header). We want to display the content inline when accessed
|
|
|
|
# from GitLab, similarly to the RSS feed.
|
|
|
|
if request.referer&.start_with?(::Settings.gitlab.base_url)
|
|
|
|
response.headers['Content-Type'] = 'text/plain'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2018-12-05 23:21:45 +05:30
|
|
|
# rubocop: enable CodeReuse/ActiveRecord
|
2018-11-08 19:23:39 +05:30
|
|
|
# rubocop:enable Gitlab/ModuleWithInstanceVariables
|
|
|
|
end
|