|
|
class AnnouncementsController < ApplicationController
|
|
|
|
|
|
before_action :admin_authorization
|
|
|
|
|
|
in_place_edit_for :announcement, :published
|
|
|
|
|
|
# GET /announcements
|
|
|
# GET /announcements.xml
|
|
|
def index
|
|
|
@announcements = Announcement.order(created_at: :desc)
|
|
|
|
|
|
respond_to do |format|
|
|
|
format.html # index.html.erb
|
|
|
format.xml { render :xml => @announcements }
|
|
|
end
|
|
|
end
|
|
|
|
|
|
# GET /announcements/1
|
|
|
# GET /announcements/1.xml
|
|
|
def show
|
|
|
@announcement = Announcement.find(params[:id])
|
|
|
|
|
|
respond_to do |format|
|
|
|
format.html # show.html.erb
|
|
|
format.xml { render :xml => @announcement }
|
|
|
end
|
|
|
end
|
|
|
|
|
|
# GET /announcements/new
|
|
|
# GET /announcements/new.xml
|
|
|
def new
|
|
|
@announcement = Announcement.new
|
|
|
|
|
|
respond_to do |format|
|
|
|
format.html # new.html.erb
|
|
|
format.xml { render :xml => @announcement }
|
|
|
end
|
|
|
end
|
|
|
|
|
|
# GET /announcements/1/edit
|
|
|
def edit
|
|
|
@announcement = Announcement.find(params[:id])
|
|
|
end
|
|
|
|
|
|
# POST /announcements
|
|
|
# POST /announcements.xml
|
|
|
def create
|
|
|
@announcement = Announcement.new(announcement_params)
|
|
|
|
|
|
respond_to do |format|
|
|
|
if @announcement.save
|
|
|
flash[:notice] = 'Announcement was successfully created.'
|
|
|
format.html { redirect_to(@announcement) }
|
|
|
format.xml { render :xml => @announcement, :status => :created, :location => @announcement }
|
|
|
else
|
|
|
format.html { render :action => "new" }
|
|
|
format.xml { render :xml => @announcement.errors, :status => :unprocessable_entity }
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
|
|
|
# PUT /announcements/1
|
|
|
# PUT /announcements/1.xml
|
|
|
def update
|
|
|
@announcement = Announcement.find(params[:id])
|
|
|
|
|
|
respond_to do |format|
|
|
|
if @announcement.update_attributes(announcement_params)
|
|
|
flash[:notice] = 'Announcement was successfully updated.'
|
|
|
format.html { redirect_to(@announcement) }
|
|
|
format.js {}
|
|
|
format.xml { head :ok }
|
|
|
else
|
|
|
format.html { render :action => "edit" }
|
|
|
format.js {}
|
|
|
format.xml { render :xml => @announcement.errors, :status => :unprocessable_entity }
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
|
|
|
def toggle
|
|
|
@announcement = Announcement.find(params[:id])
|
|
|
@announcement.update_attributes( published: !@announcement.published? )
|
|
|
respond_to do |format|
|
|
|
format.js { render partial: 'toggle_button',
|
|
|
locals: {button_id: "#announcement_toggle_#{@announcement.id}",button_on: @announcement.published? } }
|
|
|
end
|
|
|
end
|
|
|
|
|
|
def toggle_front
|
|
|
@announcement = Announcement.find(params[:id])
|
|
|
@announcement.update_attributes( frontpage: !@announcement.frontpage? )
|
|
|
respond_to do |format|
|
|
|
format.js { render partial: 'toggle_button',
|
|
|
locals: {button_id: "#announcement_toggle_front_#{@announcement.id}",button_on: @announcement.frontpage? } }
|
|
|
end
|
|
|
end
|
|
|
|
|
|
# DELETE /announcements/1
|
|
|
# DELETE /announcements/1.xml
|
|
|
def destroy
|
|
|
@announcement = Announcement.find(params[:id])
|
|
|
@announcement.destroy
|
|
|
|
|
|
respond_to do |format|
|
|
|
format.html { redirect_to(announcements_url) }
|
|
|
format.xml { head :ok }
|
|
|
end
|
|
|
end
|
|
|
|
|
|
private
|
|
|
|
|
|
def announcement_params
|
|
|
params.require(:announcement).permit(:author, :body, :published, :frontpage, :contest_only, :title, :on_nav_bar)
|
|
|
end
|
|
|
end
|
|
|
|