forked from bofh/fetsite
140 lines
3.9 KiB
Ruby
Executable File
140 lines
3.9 KiB
Ruby
Executable File
class RubrikenController < ApplicationController
|
|
before_filter {@toolbar_elements=[]}
|
|
load_and_authorize_resource
|
|
def index
|
|
if can?(:showintern, Rubrik)
|
|
@rubriken = Rubrik.all
|
|
@neuigkeiten = Neuigkeit.page(params[:page]).per(3)
|
|
else
|
|
@rubriken = Rubrik.where(:public=>true)
|
|
@neuigkeiten = Neuigkeit.public.published.page(params[:page]).per(3)
|
|
end
|
|
|
|
@calentries= (@rubriken.map {|r| r.calendar}).collect(&:calentries).flatten.select {|c| c.object !=nil}
|
|
respond_to do |format|
|
|
format.html
|
|
format.js {render action: :show}
|
|
end
|
|
|
|
end
|
|
def intern
|
|
|
|
end
|
|
def show
|
|
if can?(:shownonpublic, Rubrik)
|
|
@rubriken = Rubrik.all
|
|
else
|
|
@rubriken = Rubrik.where(:public=>true)
|
|
end
|
|
|
|
@rubrik = Rubrik.find(params[:id])
|
|
@moderatoren=User.with_role(:newsmoderator,@rubrik)
|
|
@calentries= @rubrik.calendar.calentries.select {|c| c.object !=nil}
|
|
if can?(:showunpublished, Neuigkeit)
|
|
@neuigkeiten = @rubrik.neuigkeiten.page(params[:page]).per(3)
|
|
else
|
|
@neuigkeiten = @rubrik.neuigkeiten.published.page(params[:page]).per(3)
|
|
end
|
|
@toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'), :path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik
|
|
@toolbar_elements << {:text=>I18n.t('common.verwalten'), :path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik
|
|
|
|
respond_to do |format|
|
|
format.html
|
|
format.js
|
|
end
|
|
|
|
end
|
|
|
|
def new
|
|
@rubrik = Rubrik.new
|
|
|
|
end
|
|
|
|
def edit
|
|
@rubrik = Rubrik.find(params[:id])
|
|
end
|
|
|
|
def create
|
|
@rubrik = Rubrik.new(params[:rubrik])
|
|
|
|
respond_to do |format|
|
|
if @rubrik.save
|
|
format.html { redirect_to @rubrik, notice: 'Rubrik was successfully created.' }
|
|
else
|
|
format.html { render action: "new" }
|
|
end
|
|
end
|
|
end
|
|
|
|
def addmoderator
|
|
@rubrik = Rubrik.find(params[:id])
|
|
if can? :addmoderator, @rubrik
|
|
if params[:moderator].nil?
|
|
current_user.add_role(:newsmoderator,@rubrik)
|
|
else
|
|
User.find(params[:moderator]).add_role(:newsmoderator, @rubrik)
|
|
end
|
|
|
|
response_notice= I18n.t("rubrik/moderatoradded")
|
|
else
|
|
response_notice= I18n.t("rubrik/moderatoraddnorights")
|
|
end
|
|
respond_to do |format|
|
|
format.html { redirect_to @rubrik,:notice => response_notice }
|
|
end
|
|
end
|
|
|
|
def removemoderator
|
|
rubrik = Rubrik.find(params[:id])
|
|
m = User.find(params[:moderator])
|
|
if m.has_role?(:newsmoderator,rubrik)
|
|
m.remove_role(:newsmoderator,rubrik)
|
|
end
|
|
redirect_to verwalten_rubrik_path(rubrik)
|
|
end
|
|
|
|
def update
|
|
@rubrik = Rubrik.find(params[:id])
|
|
|
|
respond_to do |format|
|
|
if @rubrik.update_attributes(params[:rubrik])
|
|
format.html { redirect_to @rubrik, notice: 'Rubrik was successfully updated.' }
|
|
format.json { head :no_content }
|
|
else
|
|
format.html { render action: "edit" }
|
|
format.json { render json: @rubrik.errors, status: :unprocessable_entity }
|
|
end
|
|
end
|
|
end
|
|
|
|
def verwalten
|
|
@rubrik = Rubrik.find(params[:id])
|
|
@neuigkeiten_unpublished = @rubrik.neuigkeiten.unpublished
|
|
@neuigkeiten_published=@rubrik.neuigkeiten.published
|
|
@moderatoren=User.with_role(:newsmoderator,@rubrik)
|
|
@toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'),:path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik
|
|
|
|
|
|
end
|
|
|
|
# Alle Rubriken verwalten und Sachen einstellen..
|
|
def alle_verwalten
|
|
@rubriken =Rubrik.all
|
|
@neuigkeiten_unpublished = Neuigkeit.unpublished
|
|
@neuigkeiten_public_published = Neuigkeit.published.public
|
|
|
|
@toolbar_elements << {:text=>I18n.t('common.new'),:path=>new_rubrik_path() ,:icon=>:plus} if can? :new, Rubrik
|
|
|
|
end
|
|
|
|
# DELETE /rubriken/1
|
|
# DELETE /rubriken/1.json
|
|
def destroy
|
|
@rubrik = Rubrik.find(params[:id])
|
|
@rubrik.destroy
|
|
redirect_to rubriken_url
|
|
end
|
|
|
|
|
|
end
|