From bd5bb6d1c5ab9db6add4911e97c1c1e5c0ffe622 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Tue, 20 May 2008 23:34:36 -0700 Subject: [PATCH] Added validation on subject. Fixed failed save. #1135 --- app/controllers/deliverables_controller.rb | 2 +- app/models/deliverable.rb | 3 ++- app/views/deliverables/_form.html.erb | 2 +- app/views/deliverables/create.js.rjs | 1 + app/views/deliverables/create_error.js.rjs | 2 ++ spec/models/deliverable_spec.rb | 6 +++++- 6 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 app/views/deliverables/create_error.js.rjs diff --git a/app/controllers/deliverables_controller.rb b/app/controllers/deliverables_controller.rb index 42f0980..07af21f 100644 --- a/app/controllers/deliverables_controller.rb +++ b/app/controllers/deliverables_controller.rb @@ -40,7 +40,7 @@ class DeliverablesController < ApplicationController format.html { redirect_to :action => 'index' } format.js { render :action => 'create.js.rjs'} else - # TODO: Failed save + format.js { render :action => 'create_error.js.rjs'} end end diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb index 6518987..b673771 100644 --- a/app/models/deliverable.rb +++ b/app/models/deliverable.rb @@ -1,6 +1,7 @@ class Deliverable < ActiveRecord::Base unloadable - + validates_presence_of :subject + belongs_to :project attr_accessor :overhead diff --git a/app/views/deliverables/_form.html.erb b/app/views/deliverables/_form.html.erb index f30fce7..43aec01 100644 --- a/app/views/deliverables/_form.html.erb +++ b/app/views/deliverables/_form.html.erb @@ -7,7 +7,7 @@

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

-

<%= f.text_area :description, :required => true, +

<%= f.text_area :description, :cols => 60, :rows => (@deliverable.description.blank? ? 10 : [[10, @deliverable.description.length / 50].max, 100].min), :accesskey => accesskey(:edit), diff --git a/app/views/deliverables/create.js.rjs b/app/views/deliverables/create.js.rjs index 7979a31..e1cd72a 100644 --- a/app/views/deliverables/create.js.rjs +++ b/app/views/deliverables/create.js.rjs @@ -10,6 +10,7 @@ page.select('#errorExplanation').each do |value| end page << "Form.reset($('deliverable-form'))" +page << "Budget.updateAmounts()" # Add a fading out flash page.insert_html :before, 'new-deliverable', content_tag(:div, @flash, :class => "flash notice", :id => 'rjs-flash') diff --git a/app/views/deliverables/create_error.js.rjs b/app/views/deliverables/create_error.js.rjs new file mode 100644 index 0000000..e43e65d --- /dev/null +++ b/app/views/deliverables/create_error.js.rjs @@ -0,0 +1,2 @@ +page.replace_html 'new-deliverable', :partial => 'form' +page << "Budget.updateAmounts()" diff --git a/spec/models/deliverable_spec.rb b/spec/models/deliverable_spec.rb index c234218..090cca5 100644 --- a/spec/models/deliverable_spec.rb +++ b/spec/models/deliverable_spec.rb @@ -1,8 +1,12 @@ require File.dirname(__FILE__) + '/../spec_helper' describe Deliverable do + it "should not be valid without subject" do + Deliverable.new.should_not be_valid + end + it "should be valid" do - Deliverable.new.should be_valid + Deliverable.new({ :subject => 'test' }).should be_valid end end