mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-26 12:08:47 +01:00
add validation to catch empty descriptions
This commit is contained in:
parent
6e5057138d
commit
abf4524679
6 changed files with 56 additions and 5 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) %>
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -118,4 +118,20 @@ Feature: Add new next action from every page
|
|||
| go to | tickler page | not see| 0 | 3 |
|
||||
| visit | project page for "test project"| see | 3 | 3 |
|
||||
| visit | context page for "test context"| see | 2 | 3 |
|
||||
| visit | tag page for "starred" | not see| 0 | 3 |
|
||||
| visit | tag page for "starred" | not see| 0 | 3 |
|
||||
|
||||
@selenium
|
||||
Scenario: I need to fill in at least one description and a context
|
||||
When I go to the home page
|
||||
And I follow "Add multiple next actions"
|
||||
And I submit the new multiple actions form with "", "", "", ""
|
||||
Then I should see "You need to submit at least one next action"
|
||||
When I submit the new multiple actions form with "one", "", "", ""
|
||||
Then I should see "Context can't be blank"
|
||||
When I fill the multiple actions form with "", "a project", "a context", "tag"
|
||||
And I submit the new multiple actions form with
|
||||
"""
|
||||
|
||||
|
||||
"""
|
||||
Then I should see "You need to submit at least one next action"
|
||||
|
|
@ -76,6 +76,25 @@ When /^I submit multiple actions with using$/ do |multiple_actions|
|
|||
selenium.click("xpath=//form[@id='todo-form-multi-new-action']//button[@id='todo_multi_new_action_submit']", :wait_for => :ajax, :javascript_framework => :jquery)
|
||||
end
|
||||
|
||||
When /^I fill the multiple actions form with "([^"]*)", "([^"]*)", "([^"]*)", "([^"]*)"$/ do |descriptions, project_name, context_name, tags|
|
||||
fill_in "todo[multiple_todos]", :with => descriptions
|
||||
fill_in "multi_todo_project_name", :with => project_name
|
||||
fill_in "multi_todo_context_name", :with => context_name
|
||||
fill_in "multi_tag_list", :with => tags
|
||||
end
|
||||
|
||||
When /^I submit the new multiple actions form with "([^"]*)", "([^"]*)", "([^"]*)", "([^"]*)"$/ do |descriptions, project_name, context_name, tags|
|
||||
When "I fill the multiple actions form with \"#{descriptions}\", \"#{project_name}\", \"#{context_name}\", \"#{tags}\""
|
||||
selenium.click("xpath=//form[@id='todo-form-multi-new-action']//button[@id='todo_multi_new_action_submit']", :wait_for => :ajax, :javascript_framework => :jquery)
|
||||
end
|
||||
|
||||
When /^I submit the new multiple actions form with$/ do |multi_line_descriptions|
|
||||
fill_in "todo[multiple_todos]", :with => multi_line_descriptions
|
||||
selenium.click("xpath=//form[@id='todo-form-multi-new-action']//button[@id='todo_multi_new_action_submit']", :wait_for => :ajax, :javascript_framework => :jquery)
|
||||
end
|
||||
|
||||
|
||||
|
||||
Then /^the dependencies of "(.*)" should include "(.*)"$/ do |child_name, parent_name|
|
||||
parent = @current_user.todos.find_by_description(parent_name)
|
||||
parent.should_not be_nil
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue