osem-fcy/app/views/layouts/application.html.haml
Kushal SM 1958ac2b10 feat: Add public RSS feed for conferences
Users currently have no way to be notified when new conferences are
published on an OSEM instance. This adds an RSS 2.0 feed endpoint at
/feed.rss that lists all conferences ordered by creation date.

The feed action is excluded from CanCanCan authorization so it remains
publicly accessible without authentication, similar to the existing
calendar endpoint.

Also adds an RSS subscribe link to the conferences index page and an
auto-discovery <link> tag in the application layout so RSS readers can
detect the feed automatically.

Fixes #3543
2026-03-18 17:50:52 +01:00

51 lines
1.8 KiB
Text

%html{xmlns: 'http://www.w3.org/1999/html'}
%head
%meta{charset: 'utf-8'}
%meta{name: 'viewport', content: 'width=device-width, initial-scale=1, maximum-scale=1'}
%title= content_for?(:title) ? yield(:title) : ENV.fetch('OSEM_NAME', 'OSEM')
%meta{content: '', name: 'description'}
%meta{content: '', name: 'author'}
= stylesheet_link_tag "application", media: 'all'
= javascript_include_tag "application"
= auto_discovery_link_tag(:rss, feed_url(format: :rss), title: "#{ENV.fetch('OSEM_NAME', 'OSEM')} Conferences RSS Feed")
= csrf_meta_tags
= content_for(:script_head)
- if ENV.fetch('OSEM_TRANSIFEX_APIKEY', nil)
:javascript
window.liveSettings = {
api_key: "#{ENV['OSEM_TRANSIFEX_APIKEY']}",
picker: "bottom-right",
detectlang: true,
autocollect: true
};
= javascript_include_tag "//cdn.transifex.com/live.js"
= yield(:head)
%body{ class: ("conference-#{@conference.short_title}" if @conference) }
= render 'layouts/navigation', conference: @conference
-# Admin area
- if controller.class.name.split("::").first=="Admin"
= render 'layouts/admin'
-else
#messages
.container
= render 'layouts/messages'
#content
= yield
= yield :modals
#footer
.container
%p.muted.text-center
%small
This tool is
#{link_to "free software", "http://www.gnu.org/philosophy/free-sw.html"},
released under the
#{link_to "MIT license", "http://opensource.org/licenses/MIT"}.
You can run, copy, distribute, study, change and improve it.
The source code and the developers are on
#{link_to "GitHub", "https://github.com/openSUSE/osem"}.
= yield :script_body
= yield :charts_js