From ca96475b52e347ecb069c2a2da647a26a6cd30b4 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Tue, 20 May 2008 20:18:31 -0700 Subject: [PATCH] Added the start of the deliverable form. #1135 --- app/controllers/deliverables_controller.rb | 7 ++++ app/models/deliverable.rb | 4 +++ app/views/deliverables/_form.html.erb | 42 ++++++++++++++++++++++ app/views/deliverables/index.html.erb | 2 +- assets/stylesheets/budget.css | 3 ++ init.rb | 2 +- lang/en.yml | 4 +++ 7 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 app/views/deliverables/_form.html.erb diff --git a/app/controllers/deliverables_controller.rb b/app/controllers/deliverables_controller.rb index d7f2ef8..99e95d5 100644 --- a/app/controllers/deliverables_controller.rb +++ b/app/controllers/deliverables_controller.rb @@ -18,11 +18,18 @@ class DeliverablesController < ApplicationController :limit => limit, :offset => @deliverable_pages.current.offset) + @deliverable = Deliverable.new + 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 + private def find_project @project = Project.find(params[:id]) diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb index 21bbc29..4499b1d 100644 --- a/app/models/deliverable.rb +++ b/app/models/deliverable.rb @@ -1,6 +1,10 @@ class Deliverable < ActiveRecord::Base belongs_to :project + attr_accessor :overhead + attr_accessor :materials + attr_accessor :profit + # TODO: mocked def score 0 diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb new file mode 100644 index 0000000..337f1c4 --- /dev/null +++ b/app/views/deliverables/_form.html.erb @@ -0,0 +1,42 @@ +

New Deliverable

+ +<% labelled_tabular_form_for :deliverable, @deliverable, + :html => {:multipart => true, :id => 'deliverable-form'} do |f| %> + <%= error_messages_for 'deliverable' %> +
+
+

<%= f.text_field :subject, :size => 80, :required => true %>

+

<%= f.text_area :description, :required => true, + :cols => 60, + :rows => (@deliverable.description.blank? ? 10 : [[10, @deliverable.description.length / 50].max, 100].min), + :accesskey => accesskey(:edit), + :class => 'wiki-edit' %>

+

<%= f.text_field :due_date, :size => 10 %><%= calendar_for('deliverable_due_date') %>

+
+ +
+

TODO: Fixed cost

+

<%= f.text_field :cost, :size => 5 %>

+

TODO: Total hours

+

<%= f.text_field :overhead, :size => 5 %>

+

<%= f.text_field :materials, :size => 5 %>

+

<%= f.text_field :profit, :size => 5 %>

+ +
+ +
+ +
+ <%= submit_tag l(:button_create) %> + <%= link_to_remote l(:label_preview), + { :url => { :controller => 'deliverables', :action => 'preview', :id => @project }, + :method => 'post', + :update => 'preview', + :with => "Form.serialize('deliverable-form')", + :complete => "Element.scrollTo('preview')" + }, :accesskey => accesskey(:preview) %> +<% end %> + +<%= wikitoolbar_for 'deliverable_description' %> + +
diff --git a/app/views/deliverables/index.html.erb b/app/views/deliverables/index.html.erb index 116844c..6b7cc4e 100644 --- a/app/views/deliverables/index.html.erb +++ b/app/views/deliverables/index.html.erb @@ -31,7 +31,7 @@
diff --git a/assets/stylesheets/budget.css b/assets/stylesheets/budget.css index fface3d..f80baa4 100644 --- a/assets/stylesheets/budget.css +++ b/assets/stylesheets/budget.css @@ -6,3 +6,6 @@ tr.deliverable { text-align: center; white-space: nowrap; } tr.deliverable td.subject, tr.deliverable td.category { white-space: normal; } tr.deliverable td.subject { text-align: left; } tr.deliverable td.done_ratio table.progress { margin-left:auto; margin-right: auto;} + +#deliverable-form .splitcontentleft { width: 72% } +#deliverable-form .splitcontentright { width: 27% } \ No newline at end of file diff --git a/init.rb b/init.rb index 0e6f702..f92a083 100644 --- a/init.rb +++ b/init.rb @@ -17,7 +17,7 @@ Redmine::Plugin.register :budget_plugin do project_module :budget_module do permission :view_budget, { :deliverables => [:index]} - permission :manage_budget, { :deliverables => [:new, :edit, :create, :update, :destroy]} + permission :manage_budget, { :deliverables => [:new, :edit, :create, :update, :destroy, :preview]} end menu :project_menu, :budget, :controller => "deliverables", :action => 'index' diff --git a/lang/en.yml b/lang/en.yml index e69de29..cadb44b 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -0,0 +1,4 @@ +field_cost: Cost per hour +field_overhead: Overhead +field_materials: Material costs +field_profit: Profit