class ContractStatusesController < ApplicationController unloadable layout 'admin' before_filter :require_admin, :except => :assing_to_project before_filter :find_project_by_project_id, :authorize, :only => :assing_to_project verify :method => :post, :only => [ :destroy, :create, :update, :move ], :redirect_to => { :action => :index } def index @contract_status_pages, @contract_statuses = paginate :contract_statuses, :per_page => 25, :order => "position" render :action => "index", :layout => false if request.xhr? end def new @contract_status = ContractStatus.new end def create @contract_status = ContractStatus.new(params[:contract_status]) if @contract_status.save flash[:notice] = l(:notice_successful_create) redirect_to :action =>"plugin", :id => "contacts", :controller => "settings", :tab => 'contract_statuses' else render :action => 'new' end end def edit @contract_status = ContractStatus.find(params[:id]) end def update @contract_status = ContractStatus.find(params[:id]) if @contract_status.update_attributes(params[:contract_status]) flash[:notice] = l(:notice_successful_update) redirect_to :action =>"plugin", :id => "contacts", :controller => "settings", :tab => 'contract_statuses' else render :action => 'edit' end end def destroy ContractStatus.find(params[:id]).destroy redirect_to :action =>"plugin", :id => "contacts", :controller => "settings", :tab => 'contract_statuses' rescue flash[:error] = l(:error_unable_delete) redirect_to :action =>"plugin", :id => "contacts", :controller => "settings", :tab => 'contract_statuses' end def assing_to_project if request.put? @project.contract_statuses = !params[:contract_statuses].blank? ? ContractStatus.find(params[:contract_statuses]) : [] @project.save flash[:notice] = l(:notice_successful_update) end redirect_to :controller => 'projects', :action => 'settings', :tab => 'contracts', :id => @project end end