class WorkHasSubjectsController < ApplicationController load_and_authorize_resource helper_method :get_work, :get_subject after_filter :solr_commit, :only => [:create, :update, :destroy] cache_sweeper :subject_sweeper, :only => [:create, :update, :destroy] # GET /work_has_subjects # GET /work_has_subjects.json def index get_work; get_subject if @work @work_has_subjects = @work.work_has_subjects.page(params[:page]) elsif @subject @work_has_subjects = @subject.work_has_subjects.page(params[:page]) else @work_has_subjects = WorkHasSubject.page(params[:page]) end respond_to do |format| format.html # index.html.erb format.json { render :json => @work_has_subjects } end end # GET /work_has_subjects/1 # GET /work_has_subjects/1.json def show respond_to do |format| format.html # show.html.erb format.json { render :json => @work_has_subject } end end # GET /work_has_subjects/new # GET /work_has_subjects/new.json def new get_work; get_subject @work_has_subject = WorkHasSubject.new(:work => @work, :subject => @subject) respond_to do |format| format.html # new.html.erb format.json { render :json => @work_has_subject } end end # GET /work_has_subjects/1/edit def edit end # POST /work_has_subjects # POST /work_has_subjects.json def create @work_has_subject = WorkHasSubject.new(params[:work_has_subject]) respond_to do |format| if @work_has_subject.save flash[:notice] = t('controller.successfully_created', :model => t('activerecord.models.work_has_subject')) format.html { redirect_to(@work_has_subject) } format.json { render :json => @work_has_subject, :status => :created, :location => @work_has_subject } else format.html { render :action => "new" } format.json { render :json => @work_has_subject.errors, :status => :unprocessable_entity } end end end # PUT /work_has_subjects/1 # PUT /work_has_subjects/1.json def update get_work if @work and params[:move] if ['higher', 'lower'].include?(params[:move]) @work_has_subject.send("move_#{params[:move]}") redirect_to work_work_has_subjects_url(@work) return end end respond_to do |format| if @work_has_subject.update_attributes(params[:work_has_subject]) flash[:notice] = t('controller.successfully_updated', :model => t('activerecord.models.work_has_subject')) format.html { redirect_to(@work_has_subject) } format.json { head :ok } else format.html { render :action => "edit" } format.json { render :json => @work_has_subject.errors, :status => :unprocessable_entity } end end end # DELETE /work_has_subjects/1 # DELETE /work_has_subjects/1.json def destroy get_work; get_subject @work_has_subject.destroy respond_to do |format| case when @work format.html { redirect_to(work_work_has_subjects_url(@work)) } format.json { head :ok } when @subject format.html { redirect_to(subject_work_has_subjects_url(@subject)) } format.json { head :ok } else format.html { redirect_to(work_has_subjects_url) } format.json { head :ok } end end end end