add validation to catch empty descriptions

This commit is contained in:
Reinier Balt 2010-07-16 13:11:01 +02:00
parent 6e5057138d
commit abf4524679
6 changed files with 56 additions and 5 deletions

View file

@ -169,7 +169,13 @@ class TodosController < ApplicationController
@projects = current_user.projects.find(:all) if @new_project_created
@initial_context_name = params['default_context_name']
@initial_project_name = params['default_project_name']
@default_tags = @todos[0].project.default_tags unless @todos[0].project.nil?
if @todos.size > 0
@default_tags = @todos[0].project.default_tags unless @todos[0].project.nil?
else
@multiple_error = "You need to submit at least one next action"
@saved = false;
@default_tags = current_user.projects.find_by_name(@initial_project_name).default_tags unless @initial_project_name.blank?
end
render :action => 'create_multiple'
end
format.xml do

View file

@ -78,6 +78,8 @@
:complete => "$('#todo_multi_new_action_submit').unblock()",
:condition => "askIfNewContextProvided('multi_')") do -%>
<div id="multiple_status"><%= error_messages_for("item", :object_name => 'action') %></div>
<label for="todo_notes">Multiple next actions (one on each line)</label>
<%= text_area( "todo", "multiple_todos", "cols" => 29, "rows" => 6, "tabindex" => 2) %>

View file

@ -1,5 +1,5 @@
if @saved
page.hide 'status'
page.hide 'multiple_status'
status_message = 'Added new next action'
status_message += 's' if @todos.size > 1
@ -37,6 +37,14 @@ if @saved
# make sure the behavior of the new/updated todo is enabled
page << "enable_rich_interaction();"
else
page.show 'status'
page.replace_html 'status', "#{error_messages_for('todo', :object_name => 'action')}"
page.show 'multiple_status'
# add error about missing todo description that is not available in @todos
@multiple_error = content_tag(:div, content_tag(:p, @multiple_error), {:class => 'errorExplanation', :id => 'errorExplanation'}) unless @multiple_error.blank?
error_messages = @multiple_error || ""
# add errors of individual @todos
@todos.each do |todo|
@todo_i = todo
error_messages += error_messages_for('todo_i', :object_name => 'action')
end
page.replace_html 'multiple_status', error_messages
end