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 @@
- <%= render :partial => 'form' %>
+
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| %>
+ <%= render :partial => 'form', :locals => { :mode => :create, :f => f } %>
+ <% end %>