mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
46 lines
1.5 KiB
Ruby
46 lines
1.5 KiB
Ruby
class ConferenceController < ApplicationController
|
|
load_and_authorize_resource find_by: :short_title
|
|
|
|
def show; end
|
|
|
|
def subscribe
|
|
conference = Conference.find_by_short_title(params[:id])
|
|
if current_user.subscriptions.where(conference: conference).blank?
|
|
subscription = Subscription.new(user_id: current_user.id, conference_id: conference.id)
|
|
begin
|
|
subscription.save!
|
|
flash[:success] = 'You have been subscribed to receive Email Notifications from this Conference.'
|
|
redirect_to root_path
|
|
rescue ActiveRecord::RecordInvalid
|
|
flash[:error] = subscription.errors.full_messages.to_sentence
|
|
redirect_to root_path
|
|
end
|
|
else
|
|
flash[:notice] = 'Already Subscribed'
|
|
redirect_to root_path
|
|
end
|
|
end
|
|
|
|
def unsubscribe
|
|
conference = Conference.find_by_short_title(params[:id])
|
|
subscription = current_user.subscriptions.where(conference_id: conference.id).first
|
|
if subscription.blank?
|
|
flash[:notice] = 'Already Unsubscribed'
|
|
redirect_to root_path
|
|
else
|
|
begin
|
|
subscription.destroy!
|
|
flash[:notice] = "You have been unsubscribed and now you won't be receiving any Email Notifications."
|
|
redirect_to root_path
|
|
rescue ActiveRecord::RecordInvalid
|
|
flash[:error] = subscription.errors.full_messages.to_sentence
|
|
redirect_to root_path
|
|
end
|
|
end
|
|
end
|
|
|
|
def gallery_photos
|
|
@photos = @conference.photos
|
|
render 'photos', formats: [:js]
|
|
end
|
|
end
|