module BacklogsHelper def remove_active_task(page) page.visual_effect :blind_up, "task_#{@task.id}" if not @tasks.find {|t| t.period_id == @task.period_id} page["task_#{@task.id}"].ancestors.first.ancestors.first.remove else page.remove "task_#{@task.id}" end if @tasks.empty? page.visual_effect :blind_up, "active_tasks" page.visual_effect :appear, "no_tasks_message" end end def add_finished_task(page) tasks_in_period = @completed_tasks.select {|t| t.period_id == @task.period_id} work_done = ! tasks_in_period.find {|t| t.total_done != 0}.nil? not_first = tasks_in_period.size > 1 if not_first page.select("#completed_tasks_#{@task.period_id} tr").first.remove page.select("#completed_tasks_#{@task.period_id} tr").first.remove else page.insert_html :top, "completed_tasks", "" end page.insert_html :top, "completed_tasks_#{@task.period_id}", :partial => '/tasks/task', :locals => {:active => false, :hidden => true, :highlight_task => false} page.visual_effect :appear, "task_#{@task.id}" page.insert_html :top, "completed_tasks_#{@task.period_id}", :partial => '/tasks/fields_header', :locals => {:backlog => @task.backlog, :active => false, :work_done => work_done} page.insert_html :top, "completed_tasks_#{@task.period_id}", :partial => '/tasks/period_header', :locals => {:period => @task.period} end def remove_finished_task(page) page.visual_effect :fade, "task_#{@task.id}" page.remove "task_#{@task.id}" unless @completed_tasks.find {|t| t.period_id == @task.period_id} page["completed_tasks_#{@task.period_id}"].remove end end def add_active_task(page) tasks_in_period = @tasks.select{|t| t.period_id == @task.period_id} first_in_period = tasks_in_period.size == 1 if first_in_period page.insert_html :top, :active_tasks, %Q{
} else page.select("#active_tasks_#{@task.period_id} tr").first.remove page.select("#active_tasks_#{@task.period_id} tr").first.remove end page.insert_html(:top, "active_tasks_#{@task.period_id}", render(:partial => "/tasks/task", :locals => { :task => @task, :i => 1, :active => true, :highlight_task => false, :update => :spotlight, :hidden => true })) fields_header = render(:partial => '/tasks/fields_header', :locals => { :backlog => @task.backlog, :active => true, :track_times => tasks_in_period.find {|t|t.period && t.period.active?} } ) page.insert_html :top, "active_tasks_#{@task.period_id}", fields_header page.insert_html :top, "active_tasks_#{@task.period_id}", render(:partial => "/tasks/period_header", :locals => {:period => @task.period}) page[:no_tasks_message].hide if @tasks.size == 1 page.visual_effect :appear, "active_tasks" end page.visual_effect :appear, "task_#{@task.id}" end end