diff --git a/app/controllers/deliverables_controller.rb b/app/controllers/deliverables_controller.rb index 787eab5..930a9d1 100644 --- a/app/controllers/deliverables_controller.rb +++ b/app/controllers/deliverables_controller.rb @@ -54,6 +54,26 @@ class DeliverablesController < ApplicationController end + def edit + @deliverable = Deliverable.find_by_id_and_project_id(params[:deliverable_id], params[:id]) + end + + def update + # TODO: Handle type change + @deliverable = Deliverable.find(params[:deliverable_id]) + + respond_to do |format| + if @deliverable.update_attributes(params[:deliverable]) + @flash = l(:notice_successful_create) + format.html { redirect_to :action => 'index', :id => @project.id } + else + format.html { render :action => 'edit', :id => @project.id} + end + end + + + end + # Create a query in the session and redirects to the issue list with that query def issues @query = Query.new(:name => "_") diff --git a/app/views/deliverables/_deliverable.html.erb b/app/views/deliverables/_deliverable.html.erb index 9ab7d06..b9eb1c5 100644 --- a/app/views/deliverables/_deliverable.html.erb +++ b/app/views/deliverables/_deliverable.html.erb @@ -30,7 +30,8 @@ <%= content_tag( :td, - content_tag(:p,link_to("Assigned Issues", :action => 'issues', :id => @project.id, :deliverable_id => deliverable.id)), - content_tag(:p,"Edit TODO"), + content_tag(:p,link_to("Assigned Issues", :action => 'issues', :id => @project.id, :deliverable_id => deliverable.id)) + + content_tag(:p,link_to("Edit", :action => 'edit', :id => @project.id, :deliverable_id => deliverable.id)) + + content_tag(:p,link_to("Delete", :action => 'destroy', :id => @project.id, :deliverable_id => deliverable.id)), :colspan => 4) %> diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb index ac400a1..ad5215a 100644 --- a/app/views/deliverables/_form.html.erb +++ b/app/views/deliverables/_form.html.erb @@ -1,8 +1,3 @@ -

New Deliverable

- -<% remote_form_for :deliverable, @deliverable, :url => {:controller => 'deliverables', :action => 'create', :id => @project }, - :method => :post, :builder => TabularFormBuilder, :lang => current_language, - :html => {:multipart => true, :id => 'deliverable-form', :class => 'tabular'} do |f| %> <%= error_messages_for 'deliverable' %>
@@ -48,14 +43,15 @@ :class => "total-budget") %>

<%= f.hidden_field :budget %>

+
- +
- <%= submit_tag l(:button_create) %> + <%= mode == :create ? submit_tag(l(:button_create)) : submit_tag(l(:button_update)) %> <%= link_to_remote l(:label_preview), { :url => { :controller => 'deliverables', :action => 'preview', :id => @project }, :method => 'post', @@ -63,7 +59,6 @@ :with => "Form.serialize('deliverable-form')", :complete => "Element.scrollTo('preview')" }, :accesskey => accesskey(:preview) %> -<% end %> <%# Same as `wikitoolbar_for 'deliverable_description'` but without the help link %> <%= javascript_include_tag('jstoolbar/jstoolbar') %> diff --git a/app/views/deliverables/edit.html.erb b/app/views/deliverables/edit.html.erb new file mode 100644 index 0000000..78ea1c3 --- /dev/null +++ b/app/views/deliverables/edit.html.erb @@ -0,0 +1,7 @@ +

Update Deliverable

+<% form_for :deliverable, @deliverable, :url => {:controller => 'deliverables', :action => 'update', :id => @project, :deliverable_id => @deliverable.id }, + :method => :post, :builder => TabularFormBuilder, :lang => current_language, + :html => {:multipart => true, :id => 'deliverable-form', :class => 'tabular'} do |f| %> + + <%= render :partial => 'form', :locals => { :mode => :update, :f => f } %> +<% end %> diff --git a/app/views/deliverables/index.html.erb b/app/views/deliverables/index.html.erb index d65822b..dd1a337 100644 --- a/app/views/deliverables/index.html.erb +++ b/app/views/deliverables/index.html.erb @@ -31,7 +31,12 @@