Files
redmine-budget-plugin/app/controllers/deliverables_controller.rb
T
2008-05-23 18:17:27 -07:00

66 lines
1.9 KiB
Ruby

class DeliverablesController < ApplicationController
unloadable
layout 'base'
before_filter :find_project, :authorize, :get_settings
helper :sort
include SortHelper
def index
sort_init "#{Deliverable.table_name}.id", "desc"
sort_update
limit = per_page_option
@deliverable_count = Deliverable.count(:conditions => { :project_id => @project.id })
@deliverable_pages = Paginator.new self, @deliverable_count, limit, params['page']
@deliverables = Deliverable.find(:all,
:order => sort_clause,
:conditions => { :project_id => @project.id },
:limit => limit,
:offset => @deliverable_pages.current.offset)
@deliverable = Deliverable.new
@budget = Budget.new(@project.id)
respond_to do |format|
format.html { render :action => 'index', :layout => !request.xhr? }
end
end
def preview
@text = params[:deliverable][:description]
render :partial => 'common/preview'
end
def create
if params[:deliverable][:type] == FixedDeliverable.name
@deliverable = FixedDeliverable.new(params[:deliverable])
elsif params[:deliverable][:type] == HourlyDeliverable.name
@deliverable = HourlyDeliverable.new(params[:deliverable])
else
@deliverable = Deliverable.new(params[:deliverable])
end
@deliverable.project = @project
respond_to do |format|
if @deliverable.save
@flash = l(:notice_successful_create)
format.html { redirect_to :action => 'index' }
format.js { render :action => 'create.js.rjs'}
else
format.js { render :action => 'create_error.js.rjs'}
end
end
end
private
def find_project
@project = Project.find(params[:id])
end
def get_settings
@settings = Setting.plugin_budget_plugin
end
end