From b048542307ba4345124f4023512b30e212b0a48b Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 4 Jun 2008 17:01:43 -0700 Subject: [PATCH] Refactored budget panel so it can be updated by RJS when a new deliverable is added. #1278 --- app/controllers/deliverables_controller.rb | 1 + app/views/deliverables/_budget.html.erb | 48 +++++++++++++++++++++ app/views/deliverables/create.js.rjs | 4 ++ app/views/deliverables/index.html.erb | 49 +--------------------- 4 files changed, 54 insertions(+), 48 deletions(-) create mode 100644 app/views/deliverables/_budget.html.erb diff --git a/app/controllers/deliverables_controller.rb b/app/controllers/deliverables_controller.rb index 8bc22ac..169042e 100644 --- a/app/controllers/deliverables_controller.rb +++ b/app/controllers/deliverables_controller.rb @@ -46,6 +46,7 @@ class DeliverablesController < ApplicationController end @deliverable.project = @project + @budget = Budget.new(@project.id) respond_to do |format| if @deliverable.save @flash = l(:notice_successful_create) diff --git a/app/views/deliverables/_budget.html.erb b/app/views/deliverables/_budget.html.erb new file mode 100644 index 0000000..5df1cd5 --- /dev/null +++ b/app/views/deliverables/_budget.html.erb @@ -0,0 +1,48 @@ +

Budget

+ +<% if allowed_management? %> +

+ Project Budget: <%= h number_to_currency(budget.budget, :precision => 0) %> +

+<% end %> + +<% if allowed_management? %> +

+ Budget Spent: <%= h number_to_currency(budget.spent, :precision => 0) %> +

+<% end %> + +<% if allowed_management? %> +

+ Budget Remaining: <%= h number_to_currency(budget.left, :precision => 0) %> +

+<% end %> + +

+ Progress: <%= h budget.progress %> +

+ +<% if allowed_management? %> +

+ Budget Score: <%= h budget.score %> +

+<% end %> + +<% if allowed_management? %> +

+ Overruns: <%= h number_to_currency(budget.overruns, :precision => 0) %> +

+<% end %> + +

+ Next Due Date: <%= h distance_of_time_in_words_to_now(budget.next_due_date) if budget.next_due_date %> +

+

+ Completion: <%= h distance_of_time_in_words_to_now(budget.final_due_date) if budget.final_due_date %> +

+ +<% if allowed_management? %> +

+ Profit: <%= h number_to_currency(budget.profit, :precision => 0) %> +

+<% end %> diff --git a/app/views/deliverables/create.js.rjs b/app/views/deliverables/create.js.rjs index b3cc297..a5e6afb 100644 --- a/app/views/deliverables/create.js.rjs +++ b/app/views/deliverables/create.js.rjs @@ -4,6 +4,10 @@ page << "if ($('deliverable-list') == null) {document.location.reload()}" # Add deliverable to list page.insert_html :top, 'deliverable-list', :partial => 'deliverable', :locals => {:deliverable => @deliverable} +# Update budget +page.replace_html 'budget-summary', :partial => 'budget', :object => @budget +page.visual_effect :highlight, 'budget-summary' + # Remove errors if found page.select('#errorExplanation').each do |value| page.remove value diff --git a/app/views/deliverables/index.html.erb b/app/views/deliverables/index.html.erb index 3beed0a..7912d63 100644 --- a/app/views/deliverables/index.html.erb +++ b/app/views/deliverables/index.html.erb @@ -1,52 +1,5 @@
-

Budget

- -<% if allowed_management? %> -

- Project Budget: <%= h number_to_currency(@budget.budget, :precision => 0) %> -

-<% end %> - -<% if allowed_management? %> -

- Budget Spent: <%= h number_to_currency(@budget.spent, :precision => 0) %> -

-<% end %> - -<% if allowed_management? %> -

- Budget Remaining: <%= h number_to_currency(@budget.left, :precision => 0) %> -

-<% end %> - -

- Progress: <%= h @budget.progress %> -

- -<% if allowed_management? %> -

- Budget Score: <%= h @budget.score %> -

-<% end %> - -<% if allowed_management? %> -

- Overruns: <%= h number_to_currency(@budget.overruns, :precision => 0) %> -

-<% end %> - -

- Next Due Date: <%= h distance_of_time_in_words_to_now(@budget.next_due_date) if @budget.next_due_date %> -

-

- Completion: <%= h distance_of_time_in_words_to_now(@budget.final_due_date) if @budget.final_due_date %> -

- -<% if allowed_management? %> -

- Profit: <%= h number_to_currency(@budget.profit, :precision => 0) %> -

-<% end %> + <%= render :partial => 'budget', :object => @budget %>
<% if allowed_management? %>