class TasksController < ApplicationController before_filter :get_users, :only => [:edit, :update, :new, :create] before_filter :get_people, :only => [:edit, :update, :new, :create] before_filter :authorize, :except => [:index, :show] before_filter :get_task, :only => [:show, :edit, :update, :confirm, :delete] def index @page_title = "All tasks" @tasks = Task.find(:all, :order => 'title') end def show @page_title = "Task: " + @task.title end def new @page_title = "Adding new task" @task = Task.new if params[:default_person_id] @task.person = Person.find(params[:default_person_id]) end end def create @task = Task.new(params[:task]) if @task.save flash[:notice] = "Task added successfully" redirect_to_person @task.person_id else @page_title = "Adding new task" render :action => 'new' end end def edit @page_title = "Edit " + @task.title end def update if @task.update_attributes(params[:task]) flash[:notice] = "Task added successfully" redirect_to_person @task.person_id else @page_title = "Edit " + @task.title render :action => 'edit' end end def confirm confirm_delete(@task, "Are you sure you want to delete " + @task.title + "?") end def delete redirect_options = { :controller => 'people', :action => 'show', :id => @task.person_id } do_delete(@task, redirect_options) end private def get_task @task = Task.find(params[:id]) end private def get_people @people = Person.find_all_ordered end private def get_users @users = User.find(:all, :order => 'username') end private def redirect_to_person(person_id) if person_id redirect_to :controller => 'people', :action => 'show', :id => person_id else redirect_to :action => 'index' end end end