mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 23:30:12 +01:00
fix #1101. Most strings were pushed into html attributes. The remaining are generated from the layout into an array
This commit is contained in:
parent
e528af30a6
commit
f2760ed7de
21 changed files with 147 additions and 76 deletions
|
|
@ -129,30 +129,6 @@ module ApplicationHelper
|
||||||
{:id => "link_edit_#{dom_id(note)}", :class => "note_edit_settings"})
|
{:id => "link_edit_#{dom_id(note)}", :class => "note_edit_settings"})
|
||||||
end
|
end
|
||||||
|
|
||||||
def link_to_delete_project(project, descriptor = sanitize(project.name))
|
|
||||||
link_to(
|
|
||||||
descriptor,
|
|
||||||
project_path(project, :format => 'js'),
|
|
||||||
{:id => "delete_project_#{project.id}", :class => "delete_project_button", :title => "#{t('projects.delete_project_title')} '#{project.name}'"}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
def link_to_delete_context(context, descriptor = sanitize(context.name))
|
|
||||||
link_to(
|
|
||||||
descriptor,
|
|
||||||
context_path(context, :format => 'js'),
|
|
||||||
{:id => "delete_context_#{context.id}", :class => "delete_context_button", :title => t('contexts.delete_context_confirmation', :name => context.name)}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
def link_to_delete_note(note, descriptor = sanitize(note.id.to_s))
|
|
||||||
link_to(
|
|
||||||
descriptor,
|
|
||||||
note_path(note, :format => 'js'),
|
|
||||||
{:id => "delete_note_#{note.id}", :class => "delete_note_button", :title => "delete the note '#{note.id}'"}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
def link_to_project_mobile(project, accesskey, descriptor = sanitize(project.name))
|
def link_to_project_mobile(project, accesskey, descriptor = sanitize(project.name))
|
||||||
link_to( descriptor, project_path(project, :format => 'm'), {:title => "View project: #{project.name}", :accesskey => accesskey} )
|
link_to( descriptor, project_path(project, :format => 'm'), {:title => "View project: #{project.name}", :accesskey => accesskey} )
|
||||||
end
|
end
|
||||||
|
|
@ -263,4 +239,24 @@ module ApplicationHelper
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def generate_i18n_strings
|
||||||
|
js = ""
|
||||||
|
js << "i18n = new Array();\n"
|
||||||
|
%w{
|
||||||
|
shared.toggle_multi shared.toggle_multi_title
|
||||||
|
shared.hide_form shared.hide_action_form_title
|
||||||
|
shared.toggle_single shared.toggle_single_title
|
||||||
|
projects.hide_form projects.hide_form_title
|
||||||
|
projects.show_form projects.show_form_title
|
||||||
|
contexts.hide_form contexts.hide_form_title
|
||||||
|
contexts.show_form contexts.show_form_title
|
||||||
|
contexts.new_context_pre contexts.new_context_post
|
||||||
|
common.cancel common.ok
|
||||||
|
common.ajaxError
|
||||||
|
}.each do |s|
|
||||||
|
js << "i18n['#{s}'] = \"#{t(s)}\";\n"
|
||||||
|
end
|
||||||
|
return js
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,17 @@ module ContextsHelper
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def link_to_delete_context(context, descriptor = sanitize(context.name))
|
||||||
|
link_to(
|
||||||
|
descriptor,
|
||||||
|
context_path(context, :format => 'js'),
|
||||||
|
{
|
||||||
|
:id => "delete_context_#{context.id}",
|
||||||
|
:class => "delete_context_button",
|
||||||
|
:x_confirm_message => t('contexts.delete_context_confirmation', :name => context.name),
|
||||||
|
:title => t('contexts.delete_context_title')
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -6,4 +6,14 @@ module NotesHelper
|
||||||
def rendered_note(note)
|
def rendered_note(note)
|
||||||
sanitize(textilize_without_paragraph(note.body))
|
sanitize(textilize_without_paragraph(note.body))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def link_to_delete_note(note, descriptor = sanitize(note.id.to_s))
|
||||||
|
link_to(
|
||||||
|
descriptor,
|
||||||
|
note_path(note, :format => 'js'),
|
||||||
|
{:id => "delete_note_#{note.id}", :class => "delete_note_button",
|
||||||
|
:title => t('notes.delete_note_title', :id => note.id), :x_confirm_message => t('notes.delete_note_confirm', :id => note.id)}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -44,5 +44,18 @@ module ProjectsHelper
|
||||||
end
|
end
|
||||||
html
|
html
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def link_to_delete_project(project, descriptor = sanitize(project.name))
|
||||||
|
link_to(
|
||||||
|
descriptor,
|
||||||
|
project_path(project, :format => 'js'),
|
||||||
|
{
|
||||||
|
:id => "delete_project_#{project.id}",
|
||||||
|
:class => "delete_project_button",
|
||||||
|
:x_confirm_message => t('projects.delete_project_confirmation', :name => project.name),
|
||||||
|
:title => t('projects.delete_project_title')
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ module RecurringTodosHelper
|
||||||
def recurring_todo_remote_delete_icon
|
def recurring_todo_remote_delete_icon
|
||||||
link_to( image_tag_for_delete,
|
link_to( image_tag_for_delete,
|
||||||
recurring_todo_path(@recurring_todo), :id => "delete_icon_"+@recurring_todo.id.to_s,
|
recurring_todo_path(@recurring_todo), :id => "delete_icon_"+@recurring_todo.id.to_s,
|
||||||
:class => "icon delete_icon", :title => t('todos.delete_recurring_action', :description => @recurring_todo.description))
|
:class => "icon delete_icon", :title => t('todos.delete_recurring_action_title'), :x_confirm_message => t('todos.delete_recurring_action_confirm', :description => @recurring_todo.description))
|
||||||
end
|
end
|
||||||
|
|
||||||
def recurring_todo_remote_star_icon
|
def recurring_todo_remote_star_icon
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@ module TodosHelper
|
||||||
{:controller => 'todos', :action => 'destroy', :id => todo.id},
|
{:controller => 'todos', :action => 'destroy', :id => todo.id},
|
||||||
:class => "icon_delete_item",
|
:class => "icon_delete_item",
|
||||||
:id => "delete_#{dom_id(todo)}",
|
:id => "delete_#{dom_id(todo)}",
|
||||||
:title => t('todos.confirm_delete', :description => todo.description));
|
:x_confirm_message => t('todos.confirm_delete', :description => todo.description),
|
||||||
|
:title => t('todos.delete_action'));
|
||||||
end
|
end
|
||||||
|
|
||||||
def remote_defer_menu_item(days, todo)
|
def remote_defer_menu_item(days, todo)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<div id="context_new_container">
|
<div id="context_new_container">
|
||||||
|
|
||||||
<div id="toggle_context_new" class="hide_form">
|
<div id="toggle_context_link" class="hide_form">
|
||||||
<a title="<%= t('contexts.hide_form_link_title') %>" accesskey="n">« <%= t('contexts.hide_form') %></a>
|
<a id="toggle_context_new" href="#" title="<%= t('contexts.hide_form_title') %>" accesskey="n"><%= t('contexts.hide_form') %></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="context_new" class="context_new" style="display:block">
|
<div id="context_new" class="context_new" style="display:block">
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
setup_periodic_check("<%=url_for(:controller => "login", :action => "check_expiry")%>", 5*60);
|
setup_periodic_check("<%=url_for(:controller => "login", :action => "check_expiry")%>", 5*60);
|
||||||
<% end -%>
|
<% end -%>
|
||||||
setup_periodic_check("<%=check_deferred_todos_path(:format => 'js')%>", 10*60, 'POST');
|
setup_periodic_check("<%=check_deferred_todos_path(:format => 'js')%>", 10*60, 'POST');
|
||||||
|
<%= generate_i18n_strings %>
|
||||||
</script>
|
</script>
|
||||||
<link rel="shortcut icon" href="<%= url_for(:controller => 'favicon.ico') %>" />
|
<link rel="shortcut icon" href="<%= url_for(:controller => 'favicon.ico') %>" />
|
||||||
<%= auto_discovery_link_tag(:rss, {:controller => "todos", :action => "index", :format => 'rss', :token => "#{current_user.token}"}, {:title => t('layouts.next_actions_rss_feed')}) %>
|
<%= auto_discovery_link_tag(:rss, {:controller => "todos", :action => "index", :format => 'rss', :token => "#{current_user.token}"}, {:title => t('layouts.next_actions_rss_feed')}) %>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<div id="project_new_project_container">
|
<div id="project_new_project_container">
|
||||||
|
|
||||||
<div id="toggle_project_link" class="hide_form">
|
<div id="toggle_project_link" class="hide_form">
|
||||||
<a id="toggle_project_new" href="#" title="<%= t('projects.hide_new_project_form') %>" accesskey="n">« <%= t('projects.hide_form') %></a>
|
<a id="toggle_project_new" href="#" title="<%= t('projects.hide_form_title') %>" accesskey="n">« <%= t('projects.hide_form') %></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="project_new" class="project_new" style="display:block">
|
<div id="project_new" class="project_new" style="display:block">
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ suppress_edit_button ||= false
|
||||||
|
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<span class="grey"><%= project.current_state.to_s.upcase %></span>
|
<span class="grey"><%= project.current_state.to_s.upcase %></span>
|
||||||
<%= link_to_delete_project(project, image_tag( "blank.png", :title => t('projects.delete_project'), :class=>"delete_item")) %>
|
<%= link_to_delete_project(project, image_tag( "blank.png", :title => t('projects.delete_project_title'), :class=>"delete_item")) %>
|
||||||
<%= suppress_edit_button ? "" : link_to_edit_project(project, image_tag( "blank.png", :title => t('projects.edit_project_title'), :class=>"edit_item")) %>
|
<%= suppress_edit_button ? "" : link_to_edit_project(project, image_tag( "blank.png", :title => t('projects.edit_project_title'), :class=>"edit_item")) %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,10 @@
|
||||||
<div class="menu_sort"><span class="sort_separator"><%= t('common.sort.sort') %> </span>
|
<div class="menu_sort"><span class="sort_separator"><%= t('common.sort.sort') %> </span>
|
||||||
<div class="alpha_sort">
|
<div class="alpha_sort">
|
||||||
<%= link_to("Alphabetically", alphabetize_projects_path(:state => state),
|
<%= link_to("Alphabetically", alphabetize_projects_path(:state => state),
|
||||||
:id => "#{state}_alphabetize_link", :class => "alphabetize_link", :title => t('common.sort.alphabetically_title')) %>
|
:id => "#{state}_alphabetize_link", :class => "alphabetize_link", :title => t('common.sort.alphabetically_title'), :x_confirm_message => t('common.sort.alphabetically_confirm')) %>
|
||||||
</div><span class="sort_separator"> | </span><div class="tasks_sort">
|
</div><span class="sort_separator"> | </span><div class="tasks_sort">
|
||||||
<%= link_to("By number of tasks", actionize_projects_path(:state => state),
|
<%= link_to("By number of tasks", actionize_projects_path(:state => state),
|
||||||
:id => "#{state}_actionize_link", :class => "actionize_link", :title => t('common.sort.by_task_count_title')) %>
|
:id => "#{state}_actionize_link", :class => "actionize_link", :title => t('common.sort.by_task_count_title'), :x_confirm_message => t('common.sort.by_task_count_title_confirm')) %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<div id="todo_new_action_container">
|
<div id="todo_new_action_container">
|
||||||
|
|
||||||
<div id="toggle_forms" class="toggle_forms">
|
<div id="toggle_forms" class="toggle_forms">
|
||||||
<a title="<%= t('shared.hide_action_form_title') %>" accesskey="n" href="#" id="toggle_action_new">« <%= t('shared.hide_form') %></a>
|
<a title="<%= t('shared.hide_action_form_title') %>" accesskey="n" href="#" id="toggle_action_new"><%= t('shared.hide_form') %></a> |
|
||||||
<a title="<%= t('shared.toggle_multi_title') %>" accesskey="m" href="#" id="toggle_multi"><%= t('shared.toggle_multi') %></a>
|
<a title="<%= t('shared.toggle_multi_title') %>" accesskey="m" href="#" id="toggle_multi"><%= t('shared.toggle_multi') %></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ en:
|
||||||
update: "Update"
|
update: "Update"
|
||||||
logout: "Logout"
|
logout: "Logout"
|
||||||
cancel: "Cancel"
|
cancel: "Cancel"
|
||||||
|
ok: "Ok"
|
||||||
project: "Project"
|
project: "Project"
|
||||||
projects: "Projects"
|
projects: "Projects"
|
||||||
context: "Context"
|
context: "Context"
|
||||||
|
|
@ -55,12 +56,15 @@ en:
|
||||||
description: "Description"
|
description: "Description"
|
||||||
notes: "Notes"
|
notes: "Notes"
|
||||||
optional: "optional"
|
optional: "optional"
|
||||||
|
ajaxError: 'There was an error retrieving from server'
|
||||||
sort:
|
sort:
|
||||||
sort: "Sort"
|
sort: "Sort"
|
||||||
alphabetically: "Alphabetically"
|
alphabetically: "Alphabetically"
|
||||||
alphabetically_title: "Sort projects alphabetically"
|
alphabetically_title: "Sort projects alphabetically"
|
||||||
|
alphabetically_confirm: "Are you sure that you want to sort these projects alphabetically? This will replace the existing sort order."
|
||||||
by_task_count: "By number of tasks"
|
by_task_count: "By number of tasks"
|
||||||
by_task_count_title: "Sort by number of tasks"
|
by_task_count_title: "Sort by number of tasks"
|
||||||
|
by_task_count_title_confirm: "Are you sure that you want to sort these projects by the number of tasks? This will replace the existing sort order."
|
||||||
drag_handle: "DRAG"
|
drag_handle: "DRAG"
|
||||||
contexts:
|
contexts:
|
||||||
status_hidden: "Context is hidden"
|
status_hidden: "Context is hidden"
|
||||||
|
|
@ -73,14 +77,19 @@ en:
|
||||||
add_context: "Add Context"
|
add_context: "Add Context"
|
||||||
context_hide: "Hide from front page?"
|
context_hide: "Hide from front page?"
|
||||||
hide_form: "Hide form"
|
hide_form: "Hide form"
|
||||||
|
hide_form_title: "Hide new context form"
|
||||||
|
show_form: "Create a new context"
|
||||||
|
show_form_title: "Add a context"
|
||||||
visible_contexts: "Visible contexts"
|
visible_contexts: "Visible contexts"
|
||||||
hidden_contexts: "Hidden contexts"
|
hidden_contexts: "Hidden contexts"
|
||||||
context_deleted: "Deleted context '%{name}'"
|
context_deleted: "Deleted context '%{name}'"
|
||||||
no_contexts_hidden: "Currently there are no hidden contexts"
|
no_contexts_hidden: "Currently there are no hidden contexts"
|
||||||
no_contexts_active: "Currently there are no active contexts"
|
no_contexts_active: "Currently there are no active contexts"
|
||||||
hide_form_link_title: "Hide new context form"
|
|
||||||
delete_context: "Delete context"
|
delete_context: "Delete context"
|
||||||
|
delete_context_title: "Delete context"
|
||||||
delete_context_confirmation: "Are you sure that you want to delete the context '%{name}'? Be aware that this will also delete all (repeating) actions in this context!"
|
delete_context_confirmation: "Are you sure that you want to delete the context '%{name}'? Be aware that this will also delete all (repeating) actions in this context!"
|
||||||
|
new_context_pre: "New context '"
|
||||||
|
new_context_post: "' will be also created. Are you sure?"
|
||||||
edit_context: "Edit context"
|
edit_context: "Edit context"
|
||||||
data:
|
data:
|
||||||
import_errors: "Some errors occurred during import"
|
import_errors: "Some errors occurred during import"
|
||||||
|
|
@ -194,6 +203,8 @@ en:
|
||||||
delete_item_title: "Delete item"
|
delete_item_title: "Delete item"
|
||||||
show_note_title: "Show note"
|
show_note_title: "Show note"
|
||||||
deleted_note: "Deleted note '%{id}'"
|
deleted_note: "Deleted note '%{id}'"
|
||||||
|
delete_note_title: "Delete the note '%{id}'"
|
||||||
|
delete_note_confirm: "Are you sure that you want to delete the note '%{id}'?"
|
||||||
no_notes_available: "Currently there are no notes: add notes to projects from individual project pages."
|
no_notes_available: "Currently there are no notes: add notes to projects from individual project pages."
|
||||||
preferences:
|
preferences:
|
||||||
title: "Your preferences"
|
title: "Your preferences"
|
||||||
|
|
@ -241,11 +252,14 @@ en:
|
||||||
default_context: "The default context for this project is %{context}"
|
default_context: "The default context for this project is %{context}"
|
||||||
project_state: "Project is %{state}."
|
project_state: "Project is %{state}."
|
||||||
no_projects: "Currently there are no projects"
|
no_projects: "Currently there are no projects"
|
||||||
hide_new_project_form: "Hide new project form"
|
hide_form_title: "Hide new project form"
|
||||||
hide_form: "Hide form"
|
hide_form: "Hide form"
|
||||||
|
show_form_title: "Create a new project"
|
||||||
|
show_form: "Add a project"
|
||||||
add_project: "Add Project"
|
add_project: "Add Project"
|
||||||
to_new_project_page: "Take me to the new project page"
|
to_new_project_page: "Take me to the new project page"
|
||||||
delete_project_title: "delete the project"
|
delete_project_title: "Delete the project"
|
||||||
|
delete_project_confirmation: "Are you sure that you want to delete the project '%{name}'?"
|
||||||
delete_project: "Delete project"
|
delete_project: "Delete project"
|
||||||
edit_project_title: "Edit project"
|
edit_project_title: "Edit project"
|
||||||
states:
|
states:
|
||||||
|
|
@ -269,6 +283,8 @@ en:
|
||||||
hide_form: "Hide form"
|
hide_form: "Hide form"
|
||||||
toggle_multi_title: "Toggle single/multi new action form"
|
toggle_multi_title: "Toggle single/multi new action form"
|
||||||
toggle_multi: "Add multiple next actions"
|
toggle_multi: "Add multiple next actions"
|
||||||
|
toggle_single: 'Add a next action'
|
||||||
|
toggle_single_title: 'Add a new next action'
|
||||||
separate_tags_with_commas: "separate with commas"
|
separate_tags_with_commas: "separate with commas"
|
||||||
add_action: "Add action"
|
add_action: "Add action"
|
||||||
multiple_next_actions: "Multiple next actions (one on each line)"
|
multiple_next_actions: "Multiple next actions (one on each line)"
|
||||||
|
|
@ -429,7 +445,8 @@ en:
|
||||||
show_option_always: "always"
|
show_option_always: "always"
|
||||||
show_days_before: "%{days} days before the todo is due"
|
show_days_before: "%{days} days before the todo is due"
|
||||||
from_tickler: "the date todo comes from tickler (no due date set)"
|
from_tickler: "the date todo comes from tickler (no due date set)"
|
||||||
delete_recurring_action: "delete the recurring action '%{description}'"
|
delete_recurring_action_confirm: "Are you sure that you want to delete the recurring action '%{description}'?"
|
||||||
|
delete_recurring_action_title: "Delete the recurring action"
|
||||||
star_action_with_description: "star the action '%{description}'"
|
star_action_with_description: "star the action '%{description}'"
|
||||||
star_action: "Star this action"
|
star_action: "Star this action"
|
||||||
delete_action: "Delete action"
|
delete_action: "Delete action"
|
||||||
|
|
|
||||||
|
|
@ -80,3 +80,12 @@ Feature: Manage the list of contexts
|
||||||
Scenario: I can drag and drop to order the contexts
|
Scenario: I can drag and drop to order the contexts
|
||||||
# TODO: pending scenario
|
# TODO: pending scenario
|
||||||
Given this is a pending scenario
|
Given this is a pending scenario
|
||||||
|
|
||||||
|
@selenium @wip
|
||||||
|
Scenario: Hiding and unhiding the new project form
|
||||||
|
When I go to the contexts page
|
||||||
|
Then the new context form should be visible
|
||||||
|
When I follow "Hide form"
|
||||||
|
Then the new context form should not be visible
|
||||||
|
When I follow "Create a new context"
|
||||||
|
Then the new context form should be visible
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,13 @@ Feature: Edit a next action from every page
|
||||||
Scenario: I can toggle the star of a todo
|
Scenario: I can toggle the star of a todo
|
||||||
Given this is a pending scenario
|
Given this is a pending scenario
|
||||||
|
|
||||||
|
@selenium @wip
|
||||||
Scenario: I can delete a todo
|
Scenario: I can delete a todo
|
||||||
Given this is a pending scenario
|
Given I have a todo with description "delete me" in the context "@home"
|
||||||
|
When I go to the home page
|
||||||
|
Then I should see "delete me"
|
||||||
|
And I delete the todo
|
||||||
|
Then I should not see "delete me"
|
||||||
|
|
||||||
Scenario: Removing the last todo in context will hide context # delete, edit
|
Scenario: Removing the last todo in context will hide context # delete, edit
|
||||||
Given this is a pending scenario
|
Given this is a pending scenario
|
||||||
|
|
|
||||||
|
|
@ -72,9 +72,9 @@ Feature: Manage the list of projects
|
||||||
Scenario: Hiding and unhiding the new project form
|
Scenario: Hiding and unhiding the new project form
|
||||||
When I go to the projects page
|
When I go to the projects page
|
||||||
Then the new project form should be visible
|
Then the new project form should be visible
|
||||||
When I follow "« Hide form"
|
When I follow "Hide form"
|
||||||
Then the new project form should not be visible
|
Then the new project form should not be visible
|
||||||
When I follow "Create a new project »"
|
When I follow "Create a new project"
|
||||||
Then the new project form should be visible
|
Then the new project form should be visible
|
||||||
|
|
||||||
@selenium
|
@selenium
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ Feature: Add new next action from every page
|
||||||
Scenario Outline: I can hide the input form for single next action on a page
|
Scenario Outline: I can hide the input form for single next action on a page
|
||||||
When I <action> the <page>
|
When I <action> the <page>
|
||||||
Then the single action form should be visible
|
Then the single action form should be visible
|
||||||
When I follow "« Hide form"
|
When I follow "Hide form"
|
||||||
Then the single action form should not be visible
|
Then the single action form should not be visible
|
||||||
|
|
||||||
Scenarios:
|
Scenarios:
|
||||||
|
|
@ -32,7 +32,7 @@ Feature: Add new next action from every page
|
||||||
Then the single action form should be visible
|
Then the single action form should be visible
|
||||||
When I follow "Add multiple next actions"
|
When I follow "Add multiple next actions"
|
||||||
Then the multiple action form should be visible
|
Then the multiple action form should be visible
|
||||||
When I follow "« Hide form"
|
When I follow "Hide form"
|
||||||
Then the single action form should not be visible
|
Then the single action form should not be visible
|
||||||
And the multiple action form should not be visible
|
And the multiple action form should not be visible
|
||||||
|
|
||||||
|
|
@ -48,11 +48,11 @@ Feature: Add new next action from every page
|
||||||
Scenario Outline: I can hide the input form and then choose both input forms
|
Scenario Outline: I can hide the input form and then choose both input forms
|
||||||
When I <action> the <page>
|
When I <action> the <page>
|
||||||
Then the single action form should be visible
|
Then the single action form should be visible
|
||||||
When I follow "« Hide form"
|
When I follow "Hide form"
|
||||||
Then the single action form should not be visible
|
Then the single action form should not be visible
|
||||||
When I follow "Add multiple next actions"
|
When I follow "Add multiple next actions"
|
||||||
Then the multiple action form should be visible
|
Then the multiple action form should be visible
|
||||||
When I follow "« Hide form"
|
When I follow "Hide form"
|
||||||
Then the single action form should not be visible
|
Then the single action form should not be visible
|
||||||
And the multiple action form should not be visible
|
And the multiple action form should not be visible
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ Feature: Add new next action from every page
|
||||||
When I follow "Add multiple next actions"
|
When I follow "Add multiple next actions"
|
||||||
Then the single action form should not be visible
|
Then the single action form should not be visible
|
||||||
And the multiple action form should be visible
|
And the multiple action form should be visible
|
||||||
When I follow "Add single next action"
|
When I follow "Add a next action"
|
||||||
Then the single action form should be visible
|
Then the single action form should be visible
|
||||||
And the multiple action form should not be visible
|
And the multiple action form should not be visible
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ end
|
||||||
When /^I edit the context name in place to be "([^\"]*)"$/ do |new_context_name|
|
When /^I edit the context name in place to be "([^\"]*)"$/ do |new_context_name|
|
||||||
selenium.click "context_name"
|
selenium.click "context_name"
|
||||||
fill_in "value", :with => new_context_name
|
fill_in "value", :with => new_context_name
|
||||||
click_button "OK"
|
click_button "Ok"
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^I should see the context name is "([^\"]*)"$/ do |context_name|
|
Then /^I should see the context name is "([^\"]*)"$/ do |context_name|
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ end
|
||||||
When /^I edit the project name in place to be "([^"]*)"$/ do |new_project_name|
|
When /^I edit the project name in place to be "([^"]*)"$/ do |new_project_name|
|
||||||
selenium.click "project_name"
|
selenium.click "project_name"
|
||||||
fill_in "value", :with => new_project_name
|
fill_in "value", :with => new_project_name
|
||||||
click_button "OK"
|
click_button "Ok"
|
||||||
end
|
end
|
||||||
|
|
||||||
When /^I edit the project state of "([^"]*)" to "([^"]*)"$/ do |project_name, state_name|
|
When /^I edit the project state of "([^"]*)" to "([^"]*)"$/ do |project_name, state_name|
|
||||||
|
|
|
||||||
|
|
@ -243,7 +243,7 @@ Then /^the container for the context "([^"]*)" should not be visible$/ do |conte
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^a confirmation for adding a new context "([^"]*)" should be asked$/ do |context_name|
|
Then /^a confirmation for adding a new context "([^"]*)" should be asked$/ do |context_name|
|
||||||
selenium.get_confirmation.should == "New context \"#{context_name}\" will be also created. Are you sure?"
|
selenium.get_confirmation.should == "New context '#{context_name}' will be also created. Are you sure?"
|
||||||
end
|
end
|
||||||
|
|
||||||
Then /^I should see "([^"]*)" in the deferred container$/ do |todo_description|
|
Then /^I should see "([^"]*)" in the deferred container$/ do |todo_description|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ var TracksForm = {
|
||||||
toggleLink.text(showLinkText).attr('title', showLinkTitle);
|
toggleLink.text(showLinkText).attr('title', showLinkTitle);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
toggleLidefault_ajax_optionsnk.text(hideLinkText).attr('title', hideLinkTitle);
|
toggleLink.text(hideLinkText).attr('title', hideLinkTitle);
|
||||||
$('#'+formId+' input:text:first').focus();
|
$('#'+formId+' input:text:first').focus();
|
||||||
}
|
}
|
||||||
toggleLink.parent().toggleClass('hide_form');
|
toggleLink.parent().toggleClass('hide_form');
|
||||||
|
|
@ -46,12 +46,12 @@ var TracksForm = {
|
||||||
if ($("#todo_multi_add").is(':visible')) { /* hide multi next action form first */
|
if ($("#todo_multi_add").is(':visible')) { /* hide multi next action form first */
|
||||||
$('#todo_new_action').show();
|
$('#todo_new_action').show();
|
||||||
$('#todo_multi_add').hide();
|
$('#todo_multi_add').hide();
|
||||||
$('a#toggle_multi').text("Add multiple next actions");
|
$('a#toggle_multi').text(i18n['shared.toggle_multi']);
|
||||||
}
|
}
|
||||||
|
|
||||||
TracksForm.toggle('toggle_action_new', 'todo_new_action', 'todo-form-new-action',
|
TracksForm.toggle('toggle_action_new', 'todo_new_action', 'todo-form-new-action',
|
||||||
'« Hide form', 'Hide next action form',
|
i18n['shared.hide_form'], i18n['shared.hide_action_form_title'],
|
||||||
'Add a next action »', 'Add a next action');
|
i18n['shared.toggle_single'], i18n['shared.toggle_single_title']);
|
||||||
});
|
});
|
||||||
|
|
||||||
/* toggle new todo form for multi edit */
|
/* toggle new todo form for multi edit */
|
||||||
|
|
@ -59,13 +59,13 @@ var TracksForm = {
|
||||||
if ($("#todo_multi_add").is(':visible')) {
|
if ($("#todo_multi_add").is(':visible')) {
|
||||||
$('#todo_new_action').show();
|
$('#todo_new_action').show();
|
||||||
$('#todo_multi_add').hide();
|
$('#todo_multi_add').hide();
|
||||||
$('a#toggle_multi').text("Add multiple next actions");
|
$('a#toggle_multi').text(i18n['shared.toggle_multi']);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$('#todo_new_action').hide();
|
$('#todo_new_action').hide();
|
||||||
$('#todo_multi_add').show();
|
$('#todo_multi_add').show();
|
||||||
$('a#toggle_multi').text("Add single next action");
|
$('a#toggle_multi').text(i18n['shared.toggle_single']);
|
||||||
$('a#toggle_action_new').text('« Hide form');
|
$('a#toggle_action_new').text(i18n['shared.hide_form']);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -74,14 +74,15 @@ var TracksForm = {
|
||||||
$(this).prev().val('');
|
$(this).prev().val('');
|
||||||
});
|
});
|
||||||
|
|
||||||
/* behavior for delete icon */
|
/* behavior for delete icon. DEAD CODE??? */
|
||||||
$('.item-container a.delete_icon').live('click', function(evt){
|
$('.item-container a.delete_icon').live('click', function(evt){
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
params = {};
|
params = {};
|
||||||
if(typeof(TAG_NAME) !== 'undefined'){
|
if(typeof(TAG_NAME) !== 'undefined'){
|
||||||
params._tag_name = TAG_NAME;
|
params._tag_name = TAG_NAME;
|
||||||
}
|
}
|
||||||
if(confirm("Are you sure that you want to "+this.title+"?")){
|
confirm_message = $(this).attr("x_confirm_message")
|
||||||
|
if(confirm(confirm_message)){
|
||||||
itemContainer = $(this).parents(".item-container");
|
itemContainer = $(this).parents(".item-container");
|
||||||
itemContainer.block({
|
itemContainer.block({
|
||||||
message: null
|
message: null
|
||||||
|
|
@ -93,7 +94,7 @@ var TracksForm = {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/* behavior for edit icon */
|
/* behavior for edit icon DEAD CODE???*/
|
||||||
$('.item-container a.edit_icon').live('click', function(evt){
|
$('.item-container a.edit_icon').live('click', function(evt){
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
params = {};
|
params = {};
|
||||||
|
|
@ -318,7 +319,7 @@ var TodoItems = {
|
||||||
for (i=0; i<contexts.length; i++)
|
for (i=0; i<contexts.length; i++)
|
||||||
if (contexts[i].value == givenContextName) return true;
|
if (contexts[i].value == givenContextName) return true;
|
||||||
}
|
}
|
||||||
return confirm('New context "' + givenContextName + '" will be also created. Are you sure?');
|
return confirm(i18n['contexts.new_context_pre'] + givenContextName + i18n['contexts.new_context_post']);
|
||||||
},
|
},
|
||||||
setup_behavior: function() {
|
setup_behavior: function() {
|
||||||
/* show the notes of a todo */
|
/* show the notes of a todo */
|
||||||
|
|
@ -350,9 +351,10 @@ var TodoItems = {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
/* delete button to delete a project from the list */
|
/* delete button to delete a todo or recurring_todo from the list */
|
||||||
$('.item-container a.icon_delete_item').live('click', function(evt){
|
$('.item-container a.icon_delete_item').live('click', function(evt){
|
||||||
if(confirm(this.title)){
|
confirm_message = $(this).attr("x_confirm_message")
|
||||||
|
if(confirm(confirm_message)){
|
||||||
delete_with_ajax_and_block_element(this.href, $(this).parents('.project'));
|
delete_with_ajax_and_block_element(this.href, $(this).parents('.project'));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -434,13 +436,14 @@ var ProjectListPage = {
|
||||||
/* in-place edit of project name */
|
/* in-place edit of project name */
|
||||||
$('h2#project_name').editable(ProjectListPage.save_project_name, {
|
$('h2#project_name').editable(ProjectListPage.save_project_name, {
|
||||||
style: 'padding:0px',
|
style: 'padding:0px',
|
||||||
submit: "OK",
|
submit: i18n['common.ok'],
|
||||||
cancel: "CANCEL"
|
cancel: i18n['common.cancel']
|
||||||
});
|
});
|
||||||
|
|
||||||
/* alphabetize project list */
|
/* alphabetize project list */
|
||||||
$('.alphabetize_link').live('click', function(evt){
|
$('.alphabetize_link').live('click', function(evt){
|
||||||
if(confirm('Are you sure that you want to sort these projects alphabetically? This will replace the existing sort order.')){
|
confirm_message = $(this).attr("x_confirm_message")
|
||||||
|
if(confirm(confirm_message)){
|
||||||
post_with_ajax_and_block_element(this.href, $(this).parents('.alpha_sort'));
|
post_with_ajax_and_block_element(this.href, $(this).parents('.alpha_sort'));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -448,7 +451,8 @@ var ProjectListPage = {
|
||||||
|
|
||||||
/* sort by number of actions */
|
/* sort by number of actions */
|
||||||
$('.actionize_link').click(function(evt){
|
$('.actionize_link').click(function(evt){
|
||||||
if(confirm('Are you sure that you want to sort these projects by the number of tasks? This will replace the existing sort order.')){
|
confirm_message = $(this).attr("x_confirm_message")
|
||||||
|
if(confirm(confirm_message)){
|
||||||
post_with_ajax_and_block_element(this.href, $(this).parents('.tasks_sort'));
|
post_with_ajax_and_block_element(this.href, $(this).parents('.tasks_sort'));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -456,7 +460,8 @@ var ProjectListPage = {
|
||||||
|
|
||||||
/* delete button to delete a project from the list */
|
/* delete button to delete a project from the list */
|
||||||
$('a.delete_project_button').live('click', function(evt){
|
$('a.delete_project_button').live('click', function(evt){
|
||||||
if(confirm("Are you sure that you want to "+this.title+"?")){
|
confirm_message = $(this).attr("x_confirm_message")
|
||||||
|
if(confirm(confirm_message)){
|
||||||
delete_with_ajax_and_block_element(this.href, $(this).parents('.project'));
|
delete_with_ajax_and_block_element(this.href, $(this).parents('.project'));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -483,8 +488,8 @@ var ProjectListPage = {
|
||||||
/* toggle new project form */
|
/* toggle new project form */
|
||||||
$('#toggle_project_new').click(function(evt){
|
$('#toggle_project_new').click(function(evt){
|
||||||
TracksForm.toggle('toggle_project_new', 'project_new', 'project-form',
|
TracksForm.toggle('toggle_project_new', 'project_new', 'project-form',
|
||||||
'« Hide form', 'Hide new project form',
|
i18n['projects.hide_form'], i18n['projects.hide_form_title'],
|
||||||
'Create a new project »', 'Add a project');
|
i18n['projects.show_form'], i18n['projects.show_form_title']);
|
||||||
});
|
});
|
||||||
|
|
||||||
/* make the three lists of project sortable */
|
/* make the three lists of project sortable */
|
||||||
|
|
@ -532,14 +537,14 @@ var ContextListPage = {
|
||||||
/* in place edit of context name */
|
/* in place edit of context name */
|
||||||
$('div.context span#context_name').editable(ContextListPage.save_context_name, {
|
$('div.context span#context_name').editable(ContextListPage.save_context_name, {
|
||||||
style: 'padding:0px',
|
style: 'padding:0px',
|
||||||
submit: "OK",
|
submit: i18n['common.ok'],
|
||||||
cancel: "CANCEL"
|
cancel: i18n['common.cancel']
|
||||||
});
|
});
|
||||||
|
|
||||||
/* delete a context using the x button */
|
/* delete a context using the x button */
|
||||||
$('a.delete_context_button').live('click', function(evt){
|
$('a.delete_context_button').live('click', function(evt){
|
||||||
/* TODO: move from this.title to this.x-messsage or something similar */
|
confirm_message = $(this).attr("x_confirm_message")
|
||||||
if(confirm(this.title)){
|
if(confirm(confirm_message)){
|
||||||
delete_with_ajax_and_block_element(this.href, $(this).parents('.context'));
|
delete_with_ajax_and_block_element(this.href, $(this).parents('.context'));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -566,8 +571,8 @@ var ContextListPage = {
|
||||||
/* Contexts behavior */
|
/* Contexts behavior */
|
||||||
$('#toggle_context_new').click(function(evt){
|
$('#toggle_context_new').click(function(evt){
|
||||||
TracksForm.toggle('toggle_context_new', 'context_new', 'context-form',
|
TracksForm.toggle('toggle_context_new', 'context_new', 'context-form',
|
||||||
'« Hide form', 'Hide new context form',
|
i18n['contexts.hide_form'], i18n['contexts.hide_form_title'],
|
||||||
'Create a new context »', 'Add a context');
|
i18n['contexts.show_form'], i18n['contexts.show_form_title']);
|
||||||
});
|
});
|
||||||
|
|
||||||
/* make the two state lists of context sortable */
|
/* make the two state lists of context sortable */
|
||||||
|
|
@ -626,7 +631,8 @@ var NotesPage = {
|
||||||
|
|
||||||
/* delete button for note */
|
/* delete button for note */
|
||||||
$('a.delete_note_button').live('click', function(){
|
$('a.delete_note_button').live('click', function(){
|
||||||
if(confirm("Are you sure that you want to "+this.title+"?")){
|
confirm_message = $(this).attr("x_confirm_message")
|
||||||
|
if(confirm(confirm_message)){
|
||||||
delete_with_ajax_and_block_element(this.href, $(this).parents('.project_notes'));
|
delete_with_ajax_and_block_element(this.href, $(this).parents('.project_notes'));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -789,7 +795,7 @@ function default_ajax_options_for_submit(ajax_type, element_to_block) {
|
||||||
enable_rich_interaction();
|
enable_rich_interaction();
|
||||||
},
|
},
|
||||||
error: function(req, status) {
|
error: function(req, status) {
|
||||||
TracksPages.page_notify('error', 'There was an error retrieving from server: '+status, 8);
|
TracksPages.page_notify('error', i18n['common.ajaxError']+': '+status, 8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(typeof(TAG_NAME) !== 'undefined')
|
if(typeof(TAG_NAME) !== 'undefined')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue