Merge branch 'master' of git://github.com/bsag/tracks into bsag

This commit is contained in:
Hans de Graaff 2011-04-20 13:03:16 +02:00
commit 0a889177b9
33 changed files with 1126 additions and 1018 deletions

View file

@ -7,7 +7,7 @@ class LoginController < ApplicationController
before_filter :login_optional
before_filter :get_current_user
protect_from_forgery :except => :check_expiry
protect_from_forgery :except => [:check_expiry, :login]
if ( SITE_CONFIG['authentication_schemes'].include? 'cas')
# This will allow the user to view the index page without authentication

View file

@ -107,6 +107,7 @@ class TodosController < ApplicationController
end
@todo.reload if @saved
@todo_was_created_deferred = @todo.deferred?
respond_to do |format|
format.html { redirect_to :action => "index" }
@ -415,7 +416,8 @@ class TodosController < ApplicationController
@original_item_due = @todo.due
@context_id = @todo.context_id
@project_id = @todo.project_id
@todo_was_destroyed_from_deferred_state = @todo.deferred?
# activate successors if they only depend on this todo
activated_successor_count = 0
@pending_to_activate = []

View file

@ -234,7 +234,9 @@ module TodosHelper
}
page.project {
return (@todo.active? && @todo.project && @todo.project.id == @default_project.id) ||
(@todo.project.hidden? && @todo.project_hidden?) || @todo.deferred? || @todo.pending?
(@todo.project.hidden? && @todo.project_hidden?) ||
( @todo.deferred? && (@todo.project.id == @default_project.id) ) ||
@todo.pending?
}
end
@ -354,11 +356,11 @@ module TodosHelper
source_view do |page|
page.project {
return "tickler-empty-nd" if @todo_was_deferred_from_active_state || @todo_was_blocked_from_active_state
return "tickler-empty-nd" if @todo_was_deferred_from_active_state || @todo_was_blocked_from_active_state || @todo_was_destroyed_from_deferred_state || @todo_was_created_deferred
return "p#{todo.project_id}empty-nd"
}
page.tag {
return "tickler-empty-nd" if @todo_was_deferred_from_active_state
return "tickler-empty-nd" if @todo_was_deferred_from_active_state || @todo_was_destroyed_from_deferred_state || @todo_was_created_deferred
return "hidden-empty-nd" if @todo.hidden?
return "c#{todo.context_id}empty-nd"
}
@ -389,7 +391,10 @@ module TodosHelper
(@original_item_was_deferred && @remaining_deferred_or_pending_count == 0 && (@todo.completed? || @tag_was_removed))
container_id = "empty-d" if @completed_count && @completed_count == 0 && !@todo.completed?
}
page.context { container_id = "c#{@original_item_context_id}empty-nd" if @remaining_in_context == 0 }
page.context {
container_id = "c#{@original_item_context_id}empty-nd" if @remaining_in_context == 0
container_id = "empty-d" if @completed_count && @completed_count == 0 && !@todo.completed?
}
page.todo { container_id = "c#{@original_item_context_id}empty-nd" if @remaining_in_context == 0 }
end
return container_id.blank? ? "" : "$(\"##{container_id}\").slideDown(100);"
@ -402,7 +407,7 @@ module TodosHelper
html += step + "({ go: function() {\r\n"
end
end
html += "}}) " * animation.count
html += "}}) " * animation.size
return html + ";"
end

View file

@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%= stylesheet_link_tag "scaffold" %>
<%= javascript_include_tag 'jquery-1.5.1.min', 'jquery.cookie' %>
<%= javascript_include_tag 'jquery-1.5.2.min', 'jquery.cookie' %>
<title><%= @page_title -%></title>

View file

@ -4,9 +4,9 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<%= stylesheet_link_tag 'standard','superfish','niftyCorners', 'jquery-ui-1.8.11.custom', :cache => 'tracks-cached' %>
<%= stylesheet_link_tag "print", :media => "print" %>
<%= javascript_include_tag 'jquery-1.5.1.min', 'jquery-ui-1.8.11.custom.min',
<%= javascript_include_tag 'jquery-1.5.2.min', 'jquery-ui-1.8.11.custom.min',
'jquery.truncator','jquery.jeditable.mini', 'jquery.cookie', 'jquery.blockUI',
'jquery.form','jquery.ui.autocomplete.selectFirst',
'jquery.form',
:cache => 'jquery-cached' %>
<%= javascript_tag_for_i18n_datepicker %>
<%= javascript_include_tag 'hoverIntent','superfish','application',

View file

@ -22,7 +22,7 @@
s
end
def row_with_select_field(pref_name, collection = [true,false], nowrap_label = false)
def row_with_select_field(pref_name, collection = [ [t('preferences.is_true'),true], [t('preferences.is_false'), false] ], nowrap_label = false)
table_row(pref_name, nowrap_label) { select('prefs', pref_name, collection) }
end
@ -43,7 +43,7 @@
<%= row_with_select_field("show_project_on_todo_done") %>
<% if current_user.is_admin? %> <%= row_with_text_field('admin_email') %> <% end %>
<%= row_with_text_field('staleness_starts', true) %>
<%= row_with_text_field('staleness_starts', false) %>
<%= row_with_text_field('show_number_completed') %>
<%= row_with_text_field('refresh') %>
<%= row_with_select_field("verbose_action_descriptors") %>

View file

@ -2,8 +2,8 @@
<div id="todo_multi_add" style="display:none">
<% form_for(todo, :html=> { :id=>'todo-form-multi-new-action', :name=>'todo', :class => 'inline-form' }) do |t| %>
<input id="default_project_name_id" name="default_project_name" type="hidden" value="<%=@initial_project_name-%>" />
<input id="default_context_name_id" name="default_context_name" type="hidden" value="<%=@initial_context_name-%>" />
<input id="default_project_name_id" name="default_project_name" type="hidden" value="<%=h @initial_project_name-%>" />
<input id="default_context_name_id" name="default_context_name" type="hidden" value="<%=h @initial_context_name-%>" />
<div id="multiple_error_status"><%= error_messages_for("item", :object_name => 'action') %></div>
@ -11,11 +11,11 @@
<%= text_area_tag( "todo[multiple_todos]", "", :cols => 29, :rows => 6, :tabindex => 2) %>
<label for="todo_project_name"><%= t('shared.project_for_all_actions') %></label>
<input id="multi_todo_project_name" name="project_name" autocomplete="off" tabindex="3" size="30" type="text" value="<%= @initial_project_name %>" />
<input id="multi_todo_project_name" name="project_name" autocomplete="off" tabindex="3" size="30" type="text" value="<%=h @initial_project_name %>" />
<div class="page_name_auto_complete" id="project_list" style="display:none"></div>
<label for="todo_context_name"><%= t('shared.context_for_all_actions') %></label>
<input id="multi_todo_context_name" name="context_name" autocomplete="off" tabindex="4" size="30" type="text" value="<%= @initial_context_name %>" />
<input id="multi_todo_context_name" name="context_name" autocomplete="off" tabindex="4" size="30" type="text" value="<%=h @initial_context_name %>" />
<div class="page_name_auto_complete" id="context_list" style="display:none"></div>
<label for="tag_list"><%= t('shared.tags_for_all_actions') %></label>

View file

@ -31,8 +31,10 @@ function insert_new_context_with_new_todo() {
function add_todo_to_existing_context() {
<% if source_view_is_one_of(:todo, :deferred, :tag) -%>
$('#c<%= @todo.context_id %>').fadeIn(500, function() {});
$('#no_todos_in_view').slideUp(100);
<% unless source_view_is_one_of(:todo, :tag) && @todo.deferred? -%>
$('#c<%= @todo.context_id %>').fadeIn(500, function() {});
$('#no_todos_in_view').slideUp(100);
<% end -%>
<% end -%>
$('#<%=empty_container_msg_div_id%>').hide();
$('#<%=item_container_id(@todo)%>').append(html_for_new_todo());

View file

@ -26,9 +26,9 @@ function set_notification() {
function clear_form() {
$('#todo-form-multi-new-action').clearForm();
TracksForm.set_context_name_for_multi_add('<%=@initial_context_name%>');
TracksForm.set_project_name_for_multi_add('<%=@initial_project_name%>');
TracksForm.set_tag_list_for_multi_add('<%=@default_tags%>');
TracksForm.set_context_name_for_multi_add('<%=escape_javascript @initial_context_name%>');
TracksForm.set_project_name_for_multi_add('<%=escape_javascript @initial_project_name%>');
TracksForm.set_tag_list_for_multi_add('<%=escape_javascript @default_tags%>');
$('#todo-form-multi-new-action input:text:first').focus();
}

View file

@ -31,18 +31,20 @@ function show_empty_messages() {
}
function remove_todo_from_page() {
<% if (@remaining_in_context == 0)
<% if (@remaining_in_context == 0) && update_needs_to_hide_context
# remove context with deleted todo
-%>
$('#c<%=@todo.context_id%>').fadeOut(1000, function() {
$('#c<%=@todo.context_id%>').fadeOut(400, function() {
$('#<%=dom_id(@todo)%>').remove();
});
<% else
<%= show_empty_message_in_source_container -%>
<% else
# remove only the todo
-%>
$('#<%=dom_id(@todo)%>').slideUp(1000, function() {
<%= show_empty_message_in_source_container %>
$('#<%=dom_id(@todo)%>').slideUp(400, function() {
$('#<%=dom_id(@todo)%>').remove();
});
});
<% end -%>
}
@ -54,7 +56,7 @@ function show_new_todo_if_todo_was_recurring() {
$('#<%= dom_id(@new_recurring_todo, 'line')%>').effect('highlight', {}, 2000 );
TracksPages.page_notify('notice', "<%=t('todos.recurring_action_deleted')%>", 5);
<% else -%>
<% if @todo.recurring_todo.todos.active.count == 0 && @new_recurring_todo.nil? -%>
<% if @todo.recurring_todo.todos.active.count(:all) == 0 && @new_recurring_todo.nil? -%>
TracksPages.page_notify('notice', "<%=t('todos.completed_recurrence_completed')%>", 5);
<% end -%>
<% end -%>
@ -88,4 +90,4 @@ function html_for_new_recurring_todo() {
<% end
# if @saved
-%>
-%>

View file

@ -48,7 +48,7 @@ function remove_todo(next_steps) {
function add_to_completed_container(next_steps) {
<% unless current_user.prefs.hide_completed_actions? -%>
$('#<%= item_container_id(@todo) %>').append(html_for_todo());
$('#<%= item_container_id(@todo) %>').prepend(html_for_todo());
$("#empty-d").slideUp(100);
highlight_updated_todo(next_steps);
<% end -%>
@ -76,7 +76,7 @@ function add_new_recurring_todo(next_steps) {
highlight_updated_recurring_todo(next_steps);
});
<% else
if @todo.recurring_todo.todos.active.count == 0 && @new_recurring_todo.nil? -%>
if @todo.recurring_todo.todos.active.count(:all) == 0 && @new_recurring_todo.nil? -%>
TracksPages.page_notify('notice', "<%=t('todos.recurrence_completed')%>", 6);
<% end -%>
next_steps.go();
@ -158,9 +158,13 @@ function remove_source_container(next_steps) {
}
function html_for_todo() {
return "<%= @saved ? escape_javascript(render(:partial => @todo, :locals => { :parent_container_type => "completed" })) : "" %>";
return "<%= @saved ? escape_javascript(render(:partial => @todo, :locals => {
:parent_container_type => parent_container_type,
:suppress_project => source_view_is(:project),
:suppress_context => source_view_is(:context)
})) : "" %>";
}
function html_for_recurring_todo() {
return "<%= @saved ? escape_javascript(render(:partial => @new_recurring_todo, :locals => { :parent_container_type => parent_container_type })) : "" %>";
}
}

View file

@ -1,5 +1,99 @@
---
de:
common:
back: "Zur\xC3\xBCck"
actions: Aktionen
third: Dritte
go_back: "Zur\xC3\xBCck"
add: "Hinzuf\xC3\xBCgen"
logout: Abmelden
none: Keine
cancel: Abbrechen
optional: optional
second: Zweite
notes: Notizen
server_error: Auf dem Server ist ein Fehler aufgetreten.
forum: Forum
action: Aktion
last: Letzte
projects: Projekte
project: Projekt
ok: Ok
contribute: Mitwirken
numbered_step: Schritt %{number}
first: Erste
website: Website
drag_handle: Verschieben
sort:
by_task_count_title: Nach Anzahl der Aufgaben sortieren
by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit &uuml;berschrieben.
alphabetically: Alphabetisch
sort: Sortieren
alphabetically_title: Projekte alphabetisch sortieren
alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit &uuml;berschrieben.
by_task_count: Nach Anzahl der Aufgaben
create: Erstellen
contexts: Kontexte
fourth: Vierte
context: Kontext
errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:"
description: Beschreibung
update: Aktualisieren
bugs: Bugs
wiki: Wiki
ajaxError: Fehler beim Empfangen vom Server
email: E-Mail
search: Suchen
layouts:
toggle_notes: Notizen umschalten
next_actions_rss_feed: RSS-Feed kommende Aufgaben
toggle_notes_title: Alle Notizen umschalten
mobile_navigation:
logout: Abmelden
feeds: Feeds
new_action: 0-Neue Aufgabe
starred: 4-Markiert
projects: 3-Projekte
tickler: Notizbuch
contexts: 2-Kontexte
home: 1-Home
navigation:
recurring_todos: Sich wiederholende To-Dos
manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen"
api_docs: REST API Docs
feeds: Feeds
starred: Markiert
notes_title: Alle Notizen anzeigen
stats: Statistiken
tickler_title: Notizbuch
manage_users: Benutzer verwalten
preferences: Einstellungen
export_title: Daten importieren und exportieren
integrations_: Tracks integrieren
calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben"
feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen"
recurring_todos_title: Sich wiederholende To-Dos verwalten
completed_tasks: Erledigt
stats_title: Statistiken anzeigen
tickler: Notizbuch
home_title: Start
starred_title: Markierte Aufgaben betrachten
organize: Organisieren
view: Betrachten
completed_tasks_title: "Vollst\xC3\xA4ndig"
home: Start
export: Export
contexts_title: Kontexte
projects_title: Projekte
preferences_title: Meine Einstellungen
calendar: Kalender
search: "Alle Eintr\xC3\xA4ge durchsuchen"
integrations:
opensearch_description: In Tracks suchen
gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen"
applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:"
applescript_success_after_id: erstellt
applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID"
number:
format:
separator: ","
@ -22,9 +116,6 @@ de:
percentage:
format:
delimiter: ""
precision:
format:
delimiter: ""
currency:
format:
format: "%n%u"
@ -34,100 +125,9 @@ de:
separator: .
precision:
delimiter: ","
integrations:
opensearch_description: In Tracks suchen
gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen"
applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:"
applescript_success_after_id: erstellt
applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID"
common:
third: Dritte
actions: Aktionen
back: "Zur\xC3\xBCck"
add: "Hinzuf\xC3\xBCgen"
logout: Abmelden
go_back: "Zur\xC3\xBCck"
none: Keine
second: Zweite
cancel: Abbrechen
optional: optional
notes: Notizen
server_error: Auf dem Server ist ein Fehler aufgetreten.
forum: Forum
last: Letzte
action: Aktion
projects: Projekte
project: Projekt
ok: Ok
contribute: Mitwirken
first: Erste
numbered_step: Schritt %{number}
website: Website
context: Kontext
fourth: Vierte
errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:"
sort:
by_task_count_title: Nach Anzahl der Aufgaben sortieren
by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit &uuml;berschrieben.
alphabetically: Alphabetisch
alphabetically_title: Projekte alphabetisch sortieren
sort: Sortieren
alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit &uuml;berschrieben.
by_task_count: Nach Anzahl der Aufgaben
create: Erstellen
drag_handle: Verschieben
description: Beschreibung
contexts: Kontexte
update: Aktualisieren
bugs: Bugs
wiki: Wiki
email: E-Mail
ajaxError: Fehler beim Empfangen vom Server
search: Suchen
layouts:
toggle_notes: Notizen umschalten
next_actions_rss_feed: RSS-Feed kommende Aufgaben
toggle_notes_title: Alle Notizen umschalten
mobile_navigation:
logout: Abmelden
feeds: Feeds
new_action: 0-Neue Aufgabe
starred: 4-Markiert
projects: 3-Projekte
tickler: Notizbuch
contexts: 2-Kontexte
home: 1-Home
navigation:
recurring_todos: Sich wiederholende To-Dos
manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen"
api_docs: REST API Docs
feeds: Feeds
notes_title: Alle Notizen anzeigen
stats: Statistiken
starred: Markiert
tickler_title: Notizbuch
manage_users: Benutzer verwalten
export_title: Daten importieren und exportieren
integrations_: Tracks integrieren
preferences: Einstellungen
calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben"
feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen"
stats_title: Statistiken anzeigen
home_title: Start
starred_title: Markierte Aufgaben betrachten
recurring_todos_title: Sich wiederholende To-Dos verwalten
tickler: Notizbuch
completed_tasks: Erledigt
view: Betrachten
organize: Organisieren
completed_tasks_title: "Vollst\xC3\xA4ndig"
export: Export
contexts_title: Kontexte
home: Start
projects_title: Projekte
preferences_title: Meine Einstellungen
calendar: Kalender
search: "Alle Eintr\xC3\xA4ge durchsuchen"
precision:
format:
delimiter: ""
models:
project:
feed_title: Tracks-Projekte
@ -160,44 +160,44 @@ de:
description: Beschreibung
due: F&auml;llig
preference:
sms_context: Standard-E-Mail-Kontext
mobile_todos_per_page: Aufgaben pro Seite (Mobile Version)
sms_context: Standard-E-Mail-Kontext
refresh: Aktualisierungsintverall (in Minuten)
week_starts: Woche startet am
sms_email: Per E-Mail
show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen
sms_email: Per E-Mail
user:
last_name: Nachname
first_name: Vorname
errors:
messages:
greater_than_or_equal_to: "muss gr\xC3\xB6\xC3\x9Fer oder gleich %{count} sein"
record_invalid: "Validierung fehlgeschlagen: %{Fehler}"
confirmation: "stimmt nicht mit der Best\xC3\xA4tigung \xC3\xBCberein"
less_than_or_equal_to: muss kleiner oder gleich %{count} sein
blank: "muss ausgef\xC3\xBCllt werden"
exclusion: "ist nicht verf\xC3\xBCgbar"
invalid: "ist nicht g\xC3\xBCltig"
odd: muss ungerade sein
empty: "muss ausgef\xC3\xBCllt werden"
wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)"
even: muss gerade sein
too_short: ist zu kurz (nicht weniger als %{count} Zeichen)
less_than: muss kleiner als %{count} sein
equal_to: muss genau %{count} sein
greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein"
taken: ist bereits vergeben
accepted: muss akzeptiert werden
too_long: ist zu lang (nicht mehr als %{count} Zeichen)
not_a_number: ist keine Zahl
inclusion: "ist kein g\xC3\xBCltiger Wert"
models:
project:
attributes:
name:
blank: Projekt muss einen Namen haben
taken: existiert bereits
too_long: Projektname muss weniger als 256 Zeichen haben
taken: existiert bereits
messages:
record_invalid: "Validierung fehlgeschlagen: %{Fehler}"
greater_than_or_equal_to: "muss gr\xC3\xB6\xC3\x9Fer oder gleich %{count} sein"
less_than_or_equal_to: muss kleiner oder gleich %{count} sein
confirmation: "stimmt nicht mit der Best\xC3\xA4tigung \xC3\xBCberein"
blank: "muss ausgef\xC3\xBCllt werden"
invalid: "ist nicht g\xC3\xBCltig"
exclusion: "ist nicht verf\xC3\xBCgbar"
odd: muss ungerade sein
too_short: ist zu kurz (nicht weniger als %{count} Zeichen)
wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)"
empty: "muss ausgef\xC3\xBCllt werden"
even: muss gerade sein
less_than: muss kleiner als %{count} sein
equal_to: muss genau %{count} sein
greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein"
too_long: ist zu lang (nicht mehr als %{count} Zeichen)
accepted: muss akzeptiert werden
taken: ist bereits vergeben
not_a_number: ist keine Zahl
inclusion: "ist kein g\xC3\xBCltiger Wert"
template:
body: "Bitte \xC3\xBCberpr\xC3\xBCfen Sie die folgenden Felder:"
header:
@ -205,128 +205,36 @@ de:
other: "Konnte dieses %{model} Objekt nicht speichern: %{count} Fehler."
full_messages:
format: "%{attribute} %{message}"
stats:
tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen
totals_active_project_count: Von diesen sind %{count} aktive Projekte
actions: Aktionen
tag_cloud_title: Tag-Cloud aller Aktionen
tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar)
totals_first_action: Seit deiner ersten Aktion am %{date}
actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen.
actions_last_year_legend:
number_of_actions: Anzahl Aktionen
months_ago: Monate zuvor
top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte"
actions_dow_30days_title: Wochentag (letzte 30 Tage)
current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben"
running_time_legend:
actions: Aufgaben
percentage: Prozentsatz
weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen."
totals_action_count: hattest du insgesamt %{count} Aktionen
legend:
number_of_days: Anzahl vergangene Tage
actions: Aktionen
number_of_actions: Anzahl Aktionen
day_of_week: Wochentag
running_time: Laufzeit einer Aktion (Wochen)
percentage: Prozentsatz
months_ago: Monate zuvor
totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind"
totals_unique_tags: Von diesen Tags sind %{count} einmalig..
actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt.
top5_contexts: Top 5 aller Kontexte
actions_lastyear_title: Aktionen der letzten 12 Monate
totals_actions_completed: "%{count} davon sind abgeschlossen."
totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen"
totals_context_count: Du hast %{count} Kontexte.
totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte
totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab."
action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen)
projects: Projekte
actions_last_year: Aktionen im letzten Jahr
totals_project_count: Du hast %{count} Projekte.
actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}."
actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}."
no_tags_available: "keine Tags verf\xC3\xBCgbar"
tags: Tags
actions_day_of_week_title: Wochentag (alle Aktionen)
top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen"
actions_further: und danach
tod30: Tageszeit (letzte 30 Tage)
tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden.
running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen."
totals_tag_count: Du hast %{count} Tags in Aktionen.
time_of_day: Tageszeit (alle Aktionen)
actions_30days_title: _Aktionen der letzten 30 Tage
totals_hidden_project_count: "%{count} sind versteckt"
more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden."
actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt
click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen.
other_actions_label: (andere)
totals_completed_project_count: und %{count} sind abgeschlossene Projekte.
click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren."
top10_projects_30days: Top-10-Projekt der letzten 30 Tage
actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche"
top10_projects: Top 10 aller Projekte
spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte
spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte
actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt
totals: Ingesamt
time_of_day_legend:
number_of_actions: Anzahl Aufgaben
time_of_day: Tageszeit
contexts: Kontexte
click_to_return_link: hier
totals_hidden_context_count: und %{count} sind versteckte Kontexte.
labels:
month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt"
completed: Erledigt
month_avg_created: "%{months} Monat durchschnittlich erstellt"
avg_created: Durchschnittlich erstellt
avg_completed: Durchschnittlich fertiggestellt
created: Erstellt
no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt."
click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren.
running_time_all_legend:
actions: Aktionen
running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen."
percentage: Prozentsatz
tod30_legend:
number_of_actions: Anzahl Aufgaben
time_of_day: Tageszeit
action_selection_title: TRACKS::Aktionsauswahl
actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt
todos:
completed_actions: Erledigte Aufgaben
show_from: Anzeigen ab dem
error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchf&uuml;hren
show_from: Anzeigen ab dem
recurring_action_deleted: Die Aktion wurde gel&ouml;scht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt.
completed_actions: Erledigte Aufgaben
completed_recurring: Abgeschlossene wiederkehrende To-Dos
added_new_next_action: Neue Aktion angelegt
blocked_by: Blockiert durch %{predecessors}
done: Erledigt?
star_action: Aktion markieren
completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gel&ouml;schten. Die Wiederholung ist abgeschlossen.
defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt."
unable_to_add_dependency: Abh&auml;ngigkeit nicht hinzuf&uuml;gbar
done: Erledigt?
star_action_with_description: Aktion '%{description}' markieren
tagged_with: getagged mit &lsquo;%{tag_name}&rsquo;
completed: Erledigt
no_deferred_actions_with: "Keine zur\xC3\xBCckgestellten Aktionen mit dem Tag '%{tag_name}'"
no_hidden_actions: Momentan sind keine versteckten Aufgaben vorhanden
action_due_on: "(Aktion f\xC3\xA4llig am %{date})"
edit_action_with_description: Aktion '%{description}' bearbeiten
remove_dependency: Abh&auml;ngigkeit l&ouml;schen (l&ouml;scht nicht die Aufgabe)
archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben
action_due_on: "(Aktion f\xC3\xA4llig am %{date})"
list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen
archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben
remove_dependency: Abh&auml;ngigkeit l&ouml;schen (l&ouml;scht nicht die Aufgabe)
action_deleted_success: Die n&auml;chste Aktion erfolgreich gel&ouml;scht
tags: Tags (Komma-separiert)
delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen"
new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt"
context_changed: Kontext zu %{name} gewechselt
add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit"
new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt"
mobile_todos_page_title: Alle Aufgaben
add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit"
delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen"
removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}."
recurring_actions_title: TRACKS::Wiederkehrende Aktionen
next_action_needed: Es muss mindestens eine folgende Aktion angelegt werden
@ -336,8 +244,8 @@ de:
edit_action: Aktion bearbeiten
added_new_context: "Neuer Kontext hinzugef\xC3\xBCgt"
next_actions_description: "Filter:"
list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben
set_to_pending: "%{task} als ausstehend markiert"
list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben
added_new_project: "Neues Projekt hinzugef\xC3\xBCgt"
next_actions_title_additions:
completed: Aufgaben erledigt
@ -352,27 +260,27 @@ de:
error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten
convert_to_project: In Projekt umwandeln
no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden.
delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gel&ouml;scht werden?
completed_last_day: In den letzten 24 Stunden erledigt
delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gel&ouml;scht werden?
new_related_todo_created_short: hat einen neuen todo
show_in_days: Anzeigen in %{days} Tagen
no_project: --Kein Projekt--
error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}'
completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt
new_related_todo_created_short: hat einen neuen todo
feed_title_in_context: im Kontext '%{context}'
completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name}
older_than_days: "&Auml;lter als %{count} Tage"
edit: Bearbeiten
pending: Ausstehend
completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name}
deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht."
completed_tasks_title: TRACKS::Erledigte Aufgaben
feed_title_in_project: im Projekt '%{project}'
clear_due_date: F&auml;lligkeitsdatum leeren
error_removing_dependency: "Beim Entfernen der Abh\xC3\xA4ngigkeit ist ein Fehler aufgetreten"
hidden_actions: Verstecke Aufgaben
recurrence_period: Wiederholungszeitraum
was_due_on_date: war am %{date} f&auml;llig
show_on_date: Anzeigen am %{date}
recurrence_period: Wiederholungszeitraum
deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'"
confirm_delete: "Bist du sicher, dass du die Aktion '%{description}' l\xC3\xB6schen m\xC3\xB6chtest?"
recurring_deleted_success: "Die wiederkehrende Aktion wurde erfolgreich gel\xC3\xB6scht."
@ -381,8 +289,8 @@ de:
deferred_tasks_title: TRACKS::Notizbuch
no_completed_actions_with: Keine abgeschlossenen Aktionen mit dem Tag '%{tag_name}'
clear_show_from_date: Datum leeren
calendar_page_title: TRACKS::Kalender
in_hidden_state: als versteckt markiert
calendar_page_title: TRACKS::Kalender
show_today: Heute anzeigen
no_actions_found_title: Keine Aktionen gefunden
completed_last_x_days: In den letzten %{count} Tagen erledigt
@ -422,12 +330,13 @@ de:
due_next_week: N&auml;chste Woche f&auml;llig
due_this_week: Die restliche Woche zu erledigen
no_actions_due_next_week: Keine Aufgaben f&uuml;r die kommende Woche
no_actions_due_today: Heute sind keine Aufgaben f&auml;llig
due_today: Heute zu erledigen
no_actions_due_today: Heute sind keine Aufgaben f&auml;llig
due_next_month_and_later: Im %{month} und sp&auml;ter f&auml;llig
no_actions_due_after_this_month: Nach diesem Monat sind keine Aufgaben f&auml;llig
due_this_month: Im %{month} f&auml;llig
no_actions_due_this_month: Keine Aktionen f&uuml;r den Rest des Monats
tagged_page_title: TRACKS::Als '%{tag_name}' markiert
recurrence:
every_work_day: Jeden Arbeitstag
ends_on_number_times: Endet nach %{number} Mal
@ -436,9 +345,9 @@ de:
weekly_options: "Einstellungen f\xC3\xBCr sich w\xC3\xB6chentlich wiederholende Aktionen"
weekly: "W\xC3\xB6chentlich"
monthly_options: "Einstellungen f\xC3\xBCr sich monatlich wiederholende Aktionen"
monthly: Monatlich
starts_on: Beginnt am
daily_options: "Einstellungen f\xC3\xBCr sich t\xC3\xA4glich wiederholenden Aktionen"
monthly: Monatlich
daily: "T\xC3\xA4glich"
show_option_always: immer
recurrence_on_options: Setze Wiederholung auf
@ -447,28 +356,26 @@ de:
ends_on: Endet am
weekly_every_number_week: Kehrt jede %{number}. Woche wieder am
show_options: To-Do anzeigen
day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat
yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen"
yearly_every_xth_day: Den %{day} %{day_of_week} des %{month}
show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist"
yearly_every_xth_day: Den %{day} %{day_of_week} des %{month}
from_tickler: the date todo comes from tickler (no due date set)
no_end_date: Kein Enddatum
day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat
monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats
yearly: "J\xC3\xA4hrlich"
tagged_page_title: TRACKS::Als '%{tag_name}' markiert
no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos
added_dependency: "%{dependency} als Abh&auml;ngigkeit hinzugef&uuml;gt."
no_deferred_actions: Zur Zeit sind keine zur&uuml;ckgestellten Aktionen vorhanden.
recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit
action_marked_complete_error: Die Aktion <strong>'%{description}'</strong> wurde aufgrund eines Fehlers NICHT als <strong>%{completed}</strong> markiert.
no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen."
in_pending_state: und als ausstehend markiert
error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett"
due: F&auml;llig
recurring_action_saved: Wiederkehrende Aktion gespeichert
overdue: "&Uuml;berf&auml;llig"
action_marked_complete_error: Die Aktion <strong>'%{description}'</strong> wurde aufgrund eines Fehlers NICHT als <strong>%{completed}</strong> markiert.
action_saved_to_tickler: Aktion im Notizbuch gespeichert
depends_on_separate_with_commas: H&auml;ngt ab von (Komma-separiert)
recurring_action_saved: Wiederkehrende Aktion gespeichert
completed_in_archive:
one: Es befindet sich eine erledigte Aufgabe im Archiv.
other: Es befinden sich %{count} erledigte Aufgaben im Archiv.
@ -476,31 +383,113 @@ de:
next_actions_description_additions:
completed: In den letzten %{count} Tagen
due_date: mit einem Datum %{due_date} oder fr&uuml;her
no_incomplete_actions: Es gibt keine unerledigten Aufgaben
overdue: "&Uuml;berf&auml;llig"
add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu"
no_incomplete_actions: Es gibt keine unerledigten Aufgaben
stats:
tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar)
tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen
actions: Aktionen
totals_active_project_count: Von diesen sind %{count} aktive Projekte
tag_cloud_title: Tag-Cloud aller Aktionen
actions_last_year_legend:
number_of_actions: Anzahl Aktionen
months_ago: Monate zuvor
totals_first_action: Seit deiner ersten Aktion am %{date}
actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen.
totals_action_count: hattest du insgesamt %{count} Aktionen
legend:
number_of_days: Anzahl vergangene Tage
actions: Aktionen
number_of_actions: Anzahl Aktionen
day_of_week: Wochentag
running_time: Laufzeit einer Aktion (Wochen)
percentage: Prozentsatz
months_ago: Monate zuvor
top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte"
actions_dow_30days_title: Wochentag (letzte 30 Tage)
totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind"
current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben"
running_time_legend:
actions: Aufgaben
percentage: Prozentsatz
weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen."
totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen"
totals_unique_tags: Von diesen Tags sind %{count} einmalig..
actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt.
top5_contexts: Top 5 aller Kontexte
actions_lastyear_title: Aktionen der letzten 12 Monate
totals_actions_completed: "%{count} davon sind abgeschlossen."
actions_last_year: Aktionen im letzten Jahr
totals_context_count: Du hast %{count} Kontexte.
totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte
totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab."
projects: Projekte
action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen)
actions_day_of_week_title: Wochentag (alle Aktionen)
tags: Tags
totals_project_count: Du hast %{count} Projekte.
actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}."
actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}."
no_tags_available: "keine Tags verf\xC3\xBCgbar"
totals_hidden_project_count: "%{count} sind versteckt"
tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden.
more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden."
running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen."
totals_tag_count: Du hast %{count} Tags in Aktionen.
top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen"
time_of_day: Tageszeit (alle Aktionen)
actions_further: und danach
actions_30days_title: _Aktionen der letzten 30 Tage
tod30: Tageszeit (letzte 30 Tage)
top10_projects: Top 10 aller Projekte
other_actions_label: (andere)
spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte
totals_completed_project_count: und %{count} sind abgeschlossene Projekte.
spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte
click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren."
top10_projects_30days: Top-10-Projekt der letzten 30 Tage
actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt
actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche"
click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen.
totals: Ingesamt
time_of_day_legend:
number_of_actions: Anzahl Aufgaben
time_of_day: Tageszeit
click_to_return_link: hier
totals_hidden_context_count: und %{count} sind versteckte Kontexte.
contexts: Kontexte
actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt
no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt."
click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren.
running_time_all_legend:
actions: Aktionen
running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen."
percentage: Prozentsatz
labels:
month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt"
completed: Erledigt
month_avg_created: "%{months} Monat durchschnittlich erstellt"
avg_created: Durchschnittlich erstellt
avg_completed: Durchschnittlich fertiggestellt
created: Erstellt
tod30_legend:
number_of_actions: Anzahl Aufgaben
time_of_day: Tageszeit
action_selection_title: TRACKS::Aktionsauswahl
actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt
notes:
delete_note_title: Notiz '%{id}' l&ouml;schen
delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?"
delete_item_title: Eintrag l&ouml;schen
note_link_title: Notiz %{id} anzeigen
show_note_title: Notiz anzeigen
deleted_note: "Notiz '%{id}' l\xC3\xB6schen"
note_link_title: Notiz %{id} anzeigen
note_location_link: "In:"
edit_item_title: Eintrag bearbeiten
note_header: Notiz %{id}
no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu."
delete_note_confirm: Soll die Notiz '%{id}' wirklich gel&ouml;scht werden?
errors:
user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen."
states:
hidden_plural: Versteckte
completed: Erledigt
completed_plural: Erledigte
visible_plural: Sichtbare
active_plural: Aktive
visible: Sichtbar
active: Aktiv
hidden: Versteckt
time:
am: vormittags
formats:
@ -511,71 +500,84 @@ de:
pm: nachmittags
preferences:
open_id_url: "Deine OpenID-URL lautet:"
staleness_starts_after: Staleness starts after %{days} days
change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL"
staleness_starts_after: Staleness starts after %{days} days
page_title: TRACKS::Einstellungen
change_password: "Passwort \xC3\xA4ndern"
token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)"
title: Deine Einstellungen
token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)"
show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge"
is_false: Nein
edit_preferences: Einstellungen bearbeiten
page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern"
generate_new_token: Neues Token generieren
is_true: Ja
sms_context_none: Keine
generate_new_token: Neues Token generieren
token_header: Dein Token
current_authentication_type: Dein Authentifizierungsart ist %{auth_type}
authentication_header: Deine Authentifizierung
current_authentication_type: Dein Authentifizierungsart ist %{auth_type}
change_authentication_type: "Authentifzierungsart \xC3\xA4ndern"
generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet."
projects:
default_tags_removed_notice: Standard-Tags entfernt
default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt
no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt"
deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt"
was_marked_hidden: wurde als verborgen markiert
edit_project_title: Projekt bearbeiten
default_tags_removed_notice: Standard-Tags entfernt
hide_form: Fomular verstecken
page_title: "TRACKS::Projekt: %{project}"
no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft."
deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt"
this_project: Dieses Projekt
project_state: Projekt ist %{state}
show_form_title: Neues Projekt anlegen
to_new_project_page: Zu neuem Projekt weiterleiten
todos_append: an dieses Projekt
no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft."
deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt"
this_project: Dieses Projekt
notes: Notizen
todos_append: an dieses Projekt
hide_form_title: Formular verstecken
notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt"
no_projects: Keine Projekte vorhanden
hide_form_title: Formular verstecken
completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt"
with_no_default_context: hat keinen Standardwert Kontext
delete_project: Projekt l&ouml;schen
delete_project_confirmation: Soll das Projekt '%{name}' wirklich gel&ouml;scht werden?
with_default_context: mit einem Standard-Rahmen von '%{context_name}'
show_form: Projekt erstellen
actions_in_project_title: Die Aktionen in diesem Projekt
delete_project_confirmation: Soll das Projekt '%{name}' wirklich gel&ouml;scht werden?
list_projects: TRACKS::Projektliste
add_project: Projekt hinzuf&uuml;gen
with_default_tags: und mit '%{tags}' als Standard-Tags
set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen
completed_projects: Abgeschlossene Projekte
add_note: "Notiz hinzuf\xC3\xBCgen"
is_active: ist aktiv
project_saved_status: Projekt gespeichert
list_projects: TRACKS::Projektliste
settings: Einstellungen
with_default_tags: und mit '%{tags}' als Standard-Tags
completed_projects: Abgeschlossene Projekte
hidden_projects: Versteckte Projekte
delete_project_title: Projekt l&ouml;schen
was_marked_complete: wurde als erledigt markiert
completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt"
default_context_removed: Standard-Kontext entfernt
completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt"
add_note_submit: "Notiz hinzuf\xC3\xBCgen"
edit_project_settings: ""
was_marked_complete: wurde als erledigt markiert
edit_project_settings: Edit Project Settings
state: Dieses Projekt ist %{state}
status_project_name_changed: "Projektname ge\xC3\xA4ndert"
default_context: Der Standard-Kontext dieses Projektes ist %{context}
no_default_context: Dieses Projekt hat keinen Standard-Kontext
active_projects: Aktive Projekte
state: Dieses Projekt ist %{state}
with_no_default_tags: und hat keinen Standardwert Tags
states:
hidden_plural: Versteckte
completed: Erledigt
completed_plural: Erledigte
visible_plural: Sichtbare
active_plural: Aktive
visible: Sichtbar
active: Aktiv
hidden: Versteckt
errors:
user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen."
date:
month_names:
-
@ -593,6 +595,10 @@ de:
- Oktober
- November
- Dezember
order:
- :day
- :month
- :year
abbr_day_names:
- So
- Mo
@ -601,10 +607,6 @@ de:
- Do
- Fr
- Sa
order:
- :day
- :month
- :year
formats:
only_day: "%e"
default: "%d.%m.%Y"
@ -636,8 +638,8 @@ de:
- Dez
support:
array:
last_word_connector: " und "
words_connector: ", "
last_word_connector: " und "
two_words_connector: " und "
select:
prompt: "Bitte w\xC3\xA4hlen Sie"
@ -650,102 +652,71 @@ de:
add_action: "Aufgabe hinzuf\xC3\xBCgen"
add_actions: "Aufgaben hinzuf\xC3\xBCgen"
tags_for_all_actions: "Tags f\xC3\xBCr alle Aufgaben (mit Kommas trennen)"
project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben"
context_for_all_actions: "Kontext f\xC3\xBCr alle Aufgaben"
toggle_multi: "Mehrere neue Aufgabeneintr\xC3\xA4ge hinzuf\xC3\xBCgen"
toggle_single_title: Eine weitere Aktion hinzuf&uuml;gen
project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben"
separate_tags_with_commas: mit Kommas trennen
toggle_multi_title: "Zwischen Einzel- und Mehrfachformular f\xC3\xBCr neue Aufgaben umschalten"
hide_action_form_title: "Formular f\xC3\xBCr neue Aufgaben verstecken"
feedlist:
choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen"
actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig"
ical_feed: iCal-Feed
all_contexts: Alle Kontexte
rss_feed: RSS-Feed
legend: "Legende:"
all_projects: Alle Projekte
choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen"
project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann.
select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen"
active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben
active_starred_actions: Alle markierten, aktiven Aufgaben
projects_and_actions: Aktive Projekte und deren Aufgaben
context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann.
select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen"
actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben"
notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden."
all_actions: Alle Aufgaben
actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben
context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext"
plain_text_feed: Plain-Text-Feed
last_fixed_number: Die letzten %{number} Aufgaben
project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext"
users:
auth_type_update_error: "Beim &Auml;ndern der Authentifizierung trat ein Fehler auf: %{error_messages}"
total_contexts: Alle Kontexte
successfully_deleted_user: Benutzer %{username} erfolgreich gel&ouml;scht.
first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:"
failed_to_delete_user: L&ouml;schen des Benutzers %{username} fehlgeschlagen
openid_url_verified: Die URL %{url} wurde erfolgreich als Identit&auml;t verifiziert und Deine Authentifizierung auf OpenID umgestellt.
destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht"
auth_type_update_error: "Beim &Auml;ndern der Authentifizierung trat ein Fehler auf: %{error_messages}"
total_contexts: Alle Kontexte
first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:"
total_projects: Alle Projekte
signup_successful: Benutzer %{username} erfolgreich angelegt.
new_token_generated: Neuer Token erfolgreich generiert
total_projects: Alle Projekte
change_password_submit: "Passwort \xC3\xA4ndern"
no_signups_title: TRACKS::Anmeldung nicht erlaubt
user_created: Benutzer angelegt.
account_signup: Accounteinrichtung
password_updated: Passwort aktualisiert.
manage_users: Benutzer verwalten
total_actions: Alle Aufgaben
account_signup: Accounteinrichtung
signup: Registrieren
total_actions: Alle Aufgaben
desired_login: "Gew\xC3\xBCnschter Benutzername"
confirm_password: "Passwort best\xC3\xA4tigen"
new_user_heading: "Einen neuen Benutzer anlegen:"
auth_type_updated: Authentifizierungs-Art erfolgreich ge&auml;ndert.
change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen."
password_confirmation_label: "Passwort best\xC3\xA4tigen"
destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten."
choose_password: "Passwort w\xC3\xA4hlen"
change_password_title: TRACKS::Passwort &auml;ndern
change_auth_type_title: TRACKS::Authentifizierungstyp &auml;ndern
change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen."
new_password_label: Neues Passwort
register_with_cas: Mit deinem CAS-Benutzernamen
label_auth_type: Authentifizierungsart
destroy_user: "Benutzer l\xC3\xB6schen"
total_users_count: Derzeit existieren %{count} Benutzer
new_user_title: TRACKS::Als Administrator anmelden
destroy_user: "Benutzer l\xC3\xB6schen"
signup_new_user: Neuen Benutzer anlegen
destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?"
identity_url: Identity-URL
change_authentication_type: "Authentifizierungsart \xC3\xA4ndern"
auth_change_submit: "Authentifizierungsart \xC3\xA4ndern"
openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identit&auml;t verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf.
change_authentication_type: "Authentifizierungsart \xC3\xA4ndern"
select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben."
total_notes: Alle Notizen
sidebar:
list_name_active_contexts: Aktive Kontexte
list_name_active_projects: Aktive Projekte
list_empty: Keine
list_name_completed_projects: Abgeschlossene Projekte
list_name_hidden_projects: Versteckte Projekte
list_name_hidden_contexts: Versteckte Kontexte
contexts:
delete_context_title: Kontext l&ouml;schen
hide_form: Formular verstecken
show_form_title: Neuen Kontext erstellen
delete_context: Kontext l&ouml;schen
delete_context_confirmation: Soll der Kontext '%{name}' wirklich gel&ouml;scht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gel&ouml;scht.
delete_context: Kontext l&ouml;schen
hide_form_title: Formular f&uuml;r neuen Kontext verstecken
edit_context: Kontext bearbeiten
context_hide: Auf Startseite ausblenden?
hidden_contexts: Versteckte Kontexte
no_contexts_active: Derzeit gibt es keine aktiven Kontexte
add_context: "Kontext hinzuf\xC3\xBCgen"
visible_contexts: Sichtbare Kontexte
save_status_message: Kontext gespeichert
show_form: Neuen Kontext erstellen
add_context: "Kontext hinzuf\xC3\xBCgen"
visible_contexts: Sichtbare Kontexte
context_name: Kontextname
update_status_message: "Kontextname wurde ge\xC3\xA4ndert"
status_active: Kontext ist aktiv
@ -756,11 +727,42 @@ de:
new_context_pre: Der neue Kontext '
no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext"
status_hidden: Kontext ist versteckt
feedlist:
choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen"
actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig"
all_contexts: Alle Kontexte
legend: "Legende:"
rss_feed: RSS-Feed
ical_feed: iCal-Feed
all_projects: Alle Projekte
choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen"
select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen"
active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben
project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann.
active_starred_actions: Alle markierten, aktiven Aufgaben
projects_and_actions: Aktive Projekte und deren Aufgaben
context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann.
select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen"
notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden."
actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben"
actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben
context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext"
plain_text_feed: Plain-Text-Feed
last_fixed_number: Die letzten %{number} Aufgaben
all_actions: Alle Aufgaben
project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext"
sidebar:
list_name_active_contexts: Aktive Kontexte
list_name_active_projects: Aktive Projekte
list_empty: Keine
list_name_completed_projects: Abgeschlossene Projekte
list_name_hidden_projects: Versteckte Projekte
list_name_hidden_contexts: Versteckte Kontexte
datetime:
prompts:
minute: Minuten
second: Sekunden
month: Monat
second: Sekunden
hour: Stunden
day: Tag
year: Jahr
@ -778,6 +780,9 @@ de:
x_seconds:
one: 1 Sekunde
other: "%{count} Sekunden"
about_x_hours:
one: etwa 1 Stunde
other: etwa %{count} Stunden
less_than_x_seconds:
one: weniger als 1 Sekunde
other: weniger als %{count} Sekunden
@ -788,9 +793,6 @@ de:
x_minutes:
one: 1 Minute
other: "%{count} Minuten"
about_x_hours:
one: etwa 1 Stunde
other: etwa %{count} Stunden
about_x_months:
one: etwa 1 Monat
other: etwa %{count} Monate
@ -803,9 +805,9 @@ de:
half_a_minute: eine halbe Minute
login:
openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})"
login_cas: zum CAS gehen
user_no_expiry: Angemeldet bleiben
sign_in: Anmeldung
login_cas: zum CAS gehen
cas_login: CAS-Anmeldung
successful_with_session_info: "Anmeldung erfolgreich:"
please_login: Bitte melde dich an, um Tracks zu nutzen
@ -822,14 +824,14 @@ de:
session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen."
option_separator: oder,
login_standard: "zur\xC3\xBCck zum Standard-Login"
login_with_openid: Mit einer OpenID anmelden
unsuccessful: Anmeldung war nicht erfolgreich.
log_in_again: Erneut anmelden.
logged_out: Sie wurden von Tracks abgemeldet.
login_with_openid: Mit einer OpenID anmelden
search:
contexts_matching_query: Kontexte entsprechen der Suche
tags_matching_query: Tags entsprechen der Suche
notes_matching_query: Notizen entsprechen der Suche
no_results: Die Suche ergab kein Ergebnis.
todos_matching_query: Todos entsprechen der Suche
projects_matching_query: Projekte entsprechen der Suche
notes_matching_query: Notizen entsprechen der Suche

View file

@ -240,6 +240,8 @@ en:
change_identity_url: "Change Your Identity URL"
page_title: "TRACKS::Preferences"
page_title_edit: "TRACKS::Edit Preferences"
is_true: "true"
is_false: "false"
projects:
status_project_name_changed: "Name of project was changed"
default_tags_removed_notice: "Removed the default tags"

File diff suppressed because it is too large Load diff

View file

@ -12,7 +12,7 @@ Feature: Edit a context
@selenium
Scenario: In place edit of context name
Given I have a context called "Errands"
When I visit the context page for "Errands"
When I go to the context page for "Errands"
And I edit the context name in place to be "OutAndAbout"
Then I should see the context name is "OutAndAbout"
When I go to the contexts page

View file

@ -13,7 +13,7 @@ Feature: dependencies
Scenario: Adding dependency to dependency by drag and drop
Given I have a project "dependencies" with 3 todos
And "Todo 2" depends on "Todo 1"
When I visit the "dependencies" project
When I go to the "dependencies" project
And I drag "Todo 3" to "Todo 2"
Then the successors of "Todo 1" should include "Todo 2"
And the successors of "Todo 2" should include "Todo 3"
@ -31,7 +31,7 @@ Feature: dependencies
| test 1 | @pc |
| test 2 | @pc |
| test 3 | @pc |
When I visit the "dependencies" project
When I go to the "dependencies" project
When I edit the dependency of "test 1" to add "test 2" as predecessor
Then I should see "test 1" within the dependencies of "test 2"
And I should see "test 1" in the deferred container
@ -51,7 +51,7 @@ Feature: dependencies
| test 1 | @pc |
| test 2 | @pc |
And "test 1" depends on "test 2"
When I visit the "dependencies" project
When I go to the "dependencies" project
Then I should see "test 1" in the deferred container
When I edit the dependency of "test 1" to remove "test 2" as predecessor
Then I should not see "test 1" within the dependencies of "test 2"
@ -66,7 +66,7 @@ Feature: dependencies
| test 2 | @pc |
| test 3 | @pc |
And "test 2" depends on "test 1"
When I visit the "dependencies" project
When I go to the "dependencies" project
Then I should see "test 2" in the deferred container
And I should see "test 1" in the action container
When I mark "test 1" as complete
@ -84,7 +84,7 @@ Feature: dependencies
| test 2 | @pc |
| test 3 | @pc |
And "test 2" depends on "test 1"
When I visit the "dependencies" project
When I go to the "dependencies" project
Then I should see "test 2" in the deferred container
And I should see "test 1" in the action container
When I delete the action "test 1"
@ -95,7 +95,7 @@ Feature: dependencies
Scenario: Deleting a successor will update predecessor
Given this is a pending scenario
@selenium @wip
@selenium
Scenario: Dragging an action to a completed action will not add it as a dependency
Given I have a context called "@pc"
And I have a project "dependencies" that has the following todos
@ -103,7 +103,7 @@ Feature: dependencies
| test 1 | @pc | no |
| test 2 | @pc | no |
| test 3 | @pc | yes |
When I visit the "dependencies" project
When I go to the "dependencies" project
And I drag "test 1" to "test 3"
Then I should see an error flash message saying "Cannot add this action as a dependency to a completed action!"
And I should see "test 1" in project container for "dependencies"

View file

@ -20,11 +20,44 @@ Feature: Edit a next action from every page
When I delete the action "delete me"
Then I should not see "delete me"
Scenario: Removing the last todo in context will hide context # delete, edit
Given this is a pending scenario
@selenium
Scenario: Removing the last todo in context will hide context
Given I have a todo "delete me" in the context "@home"
And I have a context called "@pc"
When I go to the home page
Then I should see the container for context "@home"
And I should see "delete me" in the context container for "@home"
When I mark "delete me" as complete
Then I should not see the container for context "@home"
When I mark "delete me" as uncompleted
Then I should see the container for context "@home"
When I edit the context of "delete me" to "@pc"
Then I should not see the container for context "@home"
When I delete the todo "delete me"
Then I should not see "delete me"
And I should not see the container for context "@home"
And I should not see the container for context "@pc"
Scenario: Deleting the last todo in container will show empty message # only project, context, tag, not todo
Given this is a pending scenario
@selenium
Scenario Outline: Deleting the last todo in container will show empty message # only project, context, tag, not todo
Given I have a context called "@home"
And I have a project "my project" that has the following todos
| context | description | tags |
| @home | first action | test, bla |
| @home | second action | bla |
When I go to the <page>
Then I should not see "<empty message>"
And I should see "first action"
When I delete the todo "first action"
Then I should not see "<empty message>"
When I delete the todo "second action"
Then I should see "<empty message>"
Scenarios:
| page | empty message |
| "my project" project | Currently there are no incomplete actions in this project |
| context page for "@home" | Currently there are no incomplete actions in this context |
| tag page for "bla" | No actions found |
@selenium
Scenario Outline: I can mark an active todo complete and it will update empty messages
@ -46,23 +79,23 @@ Feature: Edit a next action from every page
| tag page for "starred" | No actions found |
| context page for "visible context" | Currently there are no incomplete actions in this context |
@selenium @wip
@selenium
Scenario Outline: I can mark a deferred todo complete and it will update empty messages
When I go to the <page> # not for home page because it does not show deferred todos
Given I have a context called "visible context"
And I have a project called "visible project"
When I go to the <page>
Then I should see "<empty message>"
When I submit a new deferred action with description "visible todo" to project "visible project" with tags "test" in the context "visible context"
When I submit a new deferred action with description "visible todo" to project "visible project" with tags "starred" in the context "visible context"
Then I should see "visible todo"
And I should not see "<empty message>"
When I mark "visible todo" complete
Then I should not see "visible context"
When I mark "visible todo" as complete
And I should see "<empty message>"
And I should see "visible todo" in the completed todos container
And I should see "visible todo" in the completed container
Scenarios:
Scenarios:
| page | empty message |
| tag page for "starred" | Currently there are no deferred or pending actions |
| context page for "visible context" | Currently there are no deferred or pending actions |
| project page for "visible project" | Currently there are no deferred or pending actions |
| "visible project" project | Currently there are no deferred or pending actions |
@selenium @wip
Scenario Outline: I can mark a completed todo active and it will update empty messages
@ -74,7 +107,7 @@ Feature: Edit a next action from every page
When I mark the complete todo "visible todo" active
Then I should see "visible context"
And I should see "<empty completed message>"
And I should see "visible todo" in context container for "visible context"
And I should see "visible todo" in the context container for "visible context"
And I should not see "<empty message>"
Scenarios:

View file

@ -24,7 +24,7 @@ Feature: View, add, remove notes
Scenario: Link to note
Given I have a project "Pass Final Exam" with 1 note
When I visit the "Pass Final Exam" project
When I go to the "Pass Final Exam" project
And I click the icon next to the note
Then I should see the note text

View file

@ -47,7 +47,7 @@ Feature: Edit a project
Given I have a project "test" with 1 todos
When I go to the projects page
Then the badge should show 2 # "manage me" and "test"
When I visit the "manage me" project
When I go to the "manage me" project
And I try to edit the project name to "test"
Then I should see "Name already exists"

View file

@ -13,22 +13,22 @@ Feature: Add new next action from every page
@selenium
Scenario Outline: I can hide the input form for single next action on a page
When I <action> the <page>
When I go to the <page>
Then the single action form should be visible
When I follow "Hide form"
Then the single action form should not be visible
Scenarios:
| action | page |
| go to | home page |
| go to | tickler page |
| visit | project page for "test project" |
| visit | context page for "test context" |
| go to | tag page for "starred" |
| page |
| home page |
| tickler page |
| "test project" project |
| context page for "test context" |
| tag page for "starred" |
@selenium
Scenario Outline: I can hide the input form for multiple next actions
When I <action> the <page>
When I go to the <page>
Then the single action form should be visible
When I follow "Add multiple next actions"
Then the multiple action form should be visible
@ -37,16 +37,16 @@ Feature: Add new next action from every page
And the multiple action form should not be visible
Scenarios:
| action | page |
| go to | home page |
| go to | tickler page |
| visit | project page for "test project" |
| visit | context page for "test context" |
| go to | tag page for "starred" |
| page |
| home page |
| tickler page |
| "test project" project |
| context page for "test context" |
| tag page for "starred" |
@selenium
Scenario Outline: I can hide the input form and then choose both input forms
When I <action> the <page>
When I go to the <page>
Then the single action form should be visible
When I follow "Hide form"
Then the single action form should not be visible
@ -57,16 +57,16 @@ Feature: Add new next action from every page
And the multiple action form should not be visible
Scenarios:
| action | page |
| go to | home page |
| go to | tickler page |
| visit | project page for "test project" |
| visit | context page for "test context" |
| go to | tag page for "starred" |
| page |
| home page |
| tickler page |
| "test project" project |
| context page for "test context" |
| tag page for "starred" |
@selenium
Scenario Outline: I can switch forms for single next action to multiple next actions
When I <action> the <page>
When I go to the <page>
Then the single action form should be visible
When I follow "Add multiple next actions"
Then the single action form should not be visible
@ -76,30 +76,30 @@ Feature: Add new next action from every page
And the multiple action form should not be visible
Scenarios:
| action | page |
| go to | home page |
| go to | tickler page |
| visit | project page for "test project" |
| visit | context page for "test context" |
| go to | tag page for "starred" |
| page |
| home page |
| tickler page |
| "test project" project |
| context page for "test context" |
| tag page for "starred" |
@selenium
Scenario Outline: I can add a todo from several pages
When I <action> the <page>
When I go to the <page>
And I submit a new action with description "a new next action"
Then I should <see> "a new next action"
Scenarios:
| action | page | see |
| go to | home page | see |
| go to | tickler page | not see |
| visit | project page for "test project" | see |
| visit | context page for "test context" | see |
| go to | tag page for "starred" | not see |
| page | see |
| home page | see |
| tickler page | not see |
| "test project" project | see |
| context page for "test context" | see |
| tag page for "starred" | not see |
@selenium
Scenario Outline: I can add multiple todos from several pages
When I <action> the <page>
When I go to the <page>
And I follow "Add multiple next actions"
And I submit multiple actions with using
"""
@ -112,36 +112,49 @@ Feature: Add new next action from every page
And the number of actions should be <count>
Scenarios:
| action | page | see | badge | count |
| go to | home page | see | 3 | 3 |
| 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 |
| go to | tag page for "starred" | not see | 0 | 3 |
| page | see | badge | count |
| home page | see | 3 | 3 |
| tickler page | not see | 0 | 3 |
| "test project" project | see | 3 | 3 |
| context page for "test context" | see | 2 | 3 |
| tag page for "starred" | not see | 0 | 3 |
@selenium
Scenario: Adding a todo to another project does not show the todo
Given this is a pending scenario
Given I have a project called "another project"
When I go to the "test project" project
And I submit a new action with description "can you see me?" to project "another project" in the context "test context"
Then I should not see "can you see me?"
When I go to the "another project" project
Then I should see "can you see me?"
Scenario: Adding a todo to a hidden project does not show the todo
Given this is a pending scenario
@selenium
Scenario: Adding a deferred todo to another project does not show the todo
# scenario for #1146
Given I have a project called "another project"
When I go to the "test project" project
And I submit a deferred new action with description "a new next action" to project "another project" in the context "test context"
Then I should not see "a new next action"
And I submit a deferred new action with description "another new next action" to project "test project" in the context "test context"
Then I should see "another new next action"
@selenium
Scenario Outline: Adding a todo with a new context shows the new context
When I <action> the <page>
When I go to the <page>
And I submit a new <todo> with description "do at new context" and the tags "starred" in the context "New"
Then a confirmation for adding a new context "New" should be asked
And the container for the context "New" should <visible>
And the badge should show <badge>
Scenarios:
| action | page | todo | badge | visible |
| go to | home page | action | 2 | be visible |
| go to | tickler page | deferred action | 1 | be visible |
| visit | project page for "test project" | action | 2 | not be visible |
| visit | context page for "test context" | action | 1 | not be visible |
| go to | tag page for "starred" | action | 1 | be visible |
| page | todo | badge | visible |
| home page | action | 2 | be visible |
| tickler page | deferred action | 1 | be visible |
| "test project" project | action | 2 | not be visible |
| context page for "test context" | action | 1 | not be visible |
| tag page for "starred" | action | 1 | be visible |
@selenium
@selenium
Scenario Outline: Adding a todo to a hidden project does not show the todo
Given I have a hidden project called "hidden project"
And I have a project called "visible project"
@ -174,7 +187,7 @@ Feature: Add new next action from every page
When I submit a new action with description "another new todo" in the context "hidden context"
Then I should not see "another new todo"
@selenium
@selenium
Scenario: Adding a todo to a context show the todo in that context page
Given I have a context called "visible context"
And I have a hidden context called "hidden context"

View file

@ -0,0 +1,58 @@
Then /^I should not see the context "([^"]*)"$/ do |context_name|
context = @current_user.contexts.find_by_name(context_name)
context.should_not be_nil
xpath = "//div[@id='c#{context.id}']"
if selenium.is_element_present(xpath) # only check visibility if it is present
wait_for :timeout => 5 do
!selenium.is_visible("xpath=#{xpath}")
end
end
end
Then /^I should not see the container for context "([^"]*)"$/ do |context_name|
Then "I should not see the context \"#{context_name}\""
end
Then /^the container for the context "([^"]*)" should not be visible$/ do |context_name|
Then "I should not see the context \"#{context_name}\""
end
Then /^I should see the container for context "([^"]*)"$/ do |context_name|
context = @current_user.contexts.find_by_name(context_name)
context.should_not be_nil
xpath = "xpath=//div[@id='c#{context.id}']"
selenium.wait_for_element(xpath, :timeout_in_seconds => 5)
selenium.is_visible(xpath).should be_true
end
Then /^the container for the context "([^"]*)" should be visible$/ do |context_name|
Then "I should see the container for context \"#{context_name}\""
end
Then /^I should see "([^"]*)" in the context container for "([^"]*)"$/ do |todo_description, context_name|
context = @current_user.contexts.find_by_name(context_name)
context.should_not be_nil
todo = @current_user.todos.find_by_description(todo_description)
todo.should_not be_nil
xpath = "xpath=//div[@id=\"c#{context.id}\"]//div[@id='line_todo_#{todo.id}']"
selenium.wait_for_element(xpath, :timeout_in_seconds => 5)
selenium.is_visible(xpath).should be_true
end
Then /^I should see "([^"]*)" in project container for "([^"]*)"$/ do |todo_description, project_name|
todo = @current_user.todos.find_by_description(todo_description)
todo.should_not be_nil
project = @current_user.projects.find_by_name(project_name)
project.should_not be_nil
xpath = "//div[@id='p#{project.id}items']//div[@id='line_todo_#{todo.id}']"
selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5)
selenium.is_visible(xpath).should be_true
end

View file

@ -55,13 +55,6 @@ Given /^I have the following contexts$/ do |table|
end
end
# TODO: refactor this to paths.rb
When /^I visit the context page for "([^\"]*)"$/ do |context_name|
context = @current_user.contexts.find_by_name(context_name)
context.should_not be_nil
visit "/contexts/#{context.id}"
end
When /^I edit the context name in place to be "([^\"]*)"$/ do |new_context_name|
selenium.click "context_name"
fill_in "value", :with => new_context_name

View file

@ -28,40 +28,8 @@ Then /^I should see the empty message in the deferred container$/ do
end
end
Then /^I should not see the context "([^"]*)"$/ do |context_name|
context = @current_user.contexts.find_by_name(context_name)
wait_for :timeout => 5 do
!selenium.is_visible("xpath=//div[@id='c#{context.id}']")
end
end
Then /^I should see an error flash message saying "([^"]*)"$/ do |message|
xpath = "//div[@id='message_holder']/h4[@id='flash']"
text = response.selenium.get_text("xpath=#{xpath}")
text.should == message
end
Then /^I should see "([^"]*)" in context container for "([^"]*)"$/ do |todo_description, context_name|
context = @current_user.contexts.find_by_name(context_name)
context.should_not be_nil
todo = @current_user.todos.find_by_description(todo_description)
todo.should_not be_nil
xpath = "xpath=//div[@id=\"c#{context.id}\"]//div[@id='line_todo_#{todo.id}']"
selenium.wait_for_element(xpath, :timeout_in_seconds => 5)
selenium.is_visible(xpath).should be_true
end
Then /^I should see "([^"]*)" in project container for "([^"]*)"$/ do |todo_description, project_name|
todo = @current_user.todos.find_by_description(todo_description)
todo.should_not be_nil
project = @current_user.projects.find_by_name(project_name)
project.should_not be_nil
xpath = "//div[@id='p#{project.id}items']//div[@id='line_todo_#{todo.id}']"
selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5)
selenium.is_visible(xpath).should be_true
end

View file

@ -46,16 +46,6 @@ Given /^I have a hidden project called "([^"]*)"$/ do |project_name|
@project.hide!
end
When /^I visit the "([^\"]*)" project$/ do |project_name|
@project = Project.find_by_name(project_name)
@project.should_not be_nil
visit project_path(@project)
end
When /^I visit the project page for "([^"]*)"$/ do |project_name|
When "I visit the \"#{project_name}\" project"
end
When /^I edit the project description to "([^\"]*)"$/ do |new_description|
click_link "link_edit_project_#{@project.id}"
fill_in "project[description]", :with => new_description

View file

@ -0,0 +1,92 @@
When /^I submit a new action with description "([^"]*)"$/ do |description|
fill_in "todo[description]", :with => description
submit_next_action_form
end
When /^I submit a new action with description "([^"]*)" and the tags "([^"]*)" in the context "([^"]*)"$/ do |description, tags, context_name|
fill_in "todo[description]", :with => description
fill_in "tag_list", :with => tags
# fill_in does not seem to work when the field is prefilled with something. Empty the field first
clear_context_name_from_next_action_form
fill_in "todo_context_name", :with => context_name
submit_next_action_form
end
When /^I submit a new deferred action with description "([^"]*)" and the tags "([^"]*)" in the context "([^"]*)"$/ do |description, tags, context_name|
fill_in "todo[description]", :with => description
clear_context_name_from_next_action_form
fill_in "todo_context_name", :with => context_name
fill_in "tag_list", :with => tags
fill_in "todo[show_from]", :with => format_date(@current_user.time + 1.week)
submit_next_action_form
end
When /^I submit a new deferred action with description "([^"]*)" to project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, tags, context_name|
fill_in "todo[description]", :with => description
clear_project_name_from_next_action_form
clear_context_name_from_next_action_form
fill_in "todo_project_name", :with => project_name
fill_in "todo_context_name", :with => context_name
fill_in "tag_list", :with => tags
fill_in "todo[show_from]", :with => format_date(@current_user.time + 1.week)
submit_next_action_form
end
When /^I submit a deferred new action with description "([^"]*)" to project "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, context_name|
When "I submit a new deferred action with description \"#{description}\" to project \"#{project_name}\" with tags \"\" in the context \"#{context_name}\""
end
When /^I submit a new action with description "([^"]*)" to project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, tags, context_name|
fill_in "todo[description]", :with => description
clear_project_name_from_next_action_form
clear_context_name_from_next_action_form
fill_in "todo_project_name", :with => project_name
fill_in "todo_context_name", :with => context_name
fill_in "tag_list", :with => tags
submit_next_action_form
end
When /^I submit a new action with description "([^"]*)" to project "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, context_name|
When "I submit a new action with description \"#{description}\" to project \"#{project_name}\" with tags \"\" in the context \"#{context_name}\""
end
When /^I submit a new action with description "([^"]*)" in the context "([^"]*)"$/ do |description, context_name|
fill_in "todo[description]", :with => description
clear_context_name_from_next_action_form
fill_in "todo_context_name", :with => context_name
submit_next_action_form
end
When /^I submit multiple actions with using$/ do |multiple_actions|
fill_in "todo[multiple_todos]", :with => multiple_actions
submit_multiple_next_action_form
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}\""
submit_multiple_next_action_form
end
When /^I submit the new multiple actions form with$/ do |multi_line_descriptions|
fill_in "todo[multiple_todos]", :with => multi_line_descriptions
submit_multiple_next_action_form
end

View file

@ -0,0 +1,36 @@
When /I change the (.*) field of "([^\"]*)" to "([^\"]*)"$/ do |field_name, todo_name, new_value|
todo = @current_user.todos.find_by_description(todo_name)
todo.should_not be_nil
open_edit_form_for(todo)
selenium.type("css=form.edit_todo_form input[name=#{field_name}]", new_value)
submit_edit_todo_form(todo)
end
When /^I edit the context of "([^"]*)" to "([^"]*)"$/ do |context_old_name, context_new_name|
When "I change the context_name field of \"#{context_old_name}\" to \"#{context_new_name}\""
end
When /^I edit the due date of "([^"]*)" to tomorrow$/ do |action_description|
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
open_edit_form_for(todo)
fill_in "due_todo_#{todo.id}", :with => format_date(todo.created_at + 1.day)
submit_edit_todo_form(todo)
end
When /^I edit the due date of "([^"]*)" to next month$/ do |action_description|
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
open_edit_form_for(todo)
fill_in "due_todo_#{todo.id}", :with => format_date(todo.created_at + 1.month)
submit_edit_todo_form(todo)
end
When /^I clear the due date of "([^"]*)"$/ do |action_description|
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
open_edit_form_for(todo)
selenium.click("//div[@id='edit_todo_#{todo.id}']//a[@id='due_x_todo_#{todo.id}']/img", :wait_for => :ajax, :javascript_framework => :jquery)
submit_edit_todo_form(todo)
end

View file

@ -71,116 +71,35 @@ Given /^I have a project "([^"]*)" that has the following todos$/ do |project_na
end
end
When /I change the (.*) field of "([^\"]*)" to "([^\"]*)"$/ do |field_name, todo_name, new_value|
todo = @current_user.todos.find_by_description(todo_name)
todo.should_not be_nil
open_edit_form_for(todo)
selenium.type("css=form.edit_todo_form input[name=#{field_name}]", new_value)
submit_edit_todo_form(todo)
end
When /^I submit a new action with description "([^"]*)"$/ do |description|
fill_in "todo[description]", :with => description
submit_next_action_form
end
When /^I submit a new action with description "([^"]*)" and the tags "([^"]*)" in the context "([^"]*)"$/ do |description, tags, context_name|
fill_in "todo[description]", :with => description
fill_in "tag_list", :with => tags
# fill_in does not seem to work when the field is prefilled with something. Empty the field first
clear_context_name_from_next_action_form
fill_in "todo_context_name", :with => context_name
submit_next_action_form
end
When /^I submit a new deferred action with description "([^"]*)" and the tags "([^"]*)" in the context "([^"]*)"$/ do |description, tags, context_name|
fill_in "todo[description]", :with => description
clear_context_name_from_next_action_form
fill_in "todo_context_name", :with => context_name
fill_in "tag_list", :with => tags
fill_in "todo[show_from]", :with => format_date(@current_user.time + 1.week)
submit_next_action_form
end
When /^I submit a new action with description "([^"]*)" to project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, tags, context_name|
fill_in "todo[description]", :with => description
clear_project_name_from_next_action_form
clear_context_name_from_next_action_form
fill_in "todo_project_name", :with => project_name
fill_in "todo_context_name", :with => context_name
fill_in "tag_list", :with => tags
submit_next_action_form
end
When /^I submit a new action with description "([^"]*)" in the context "([^"]*)"$/ do |description, context_name|
fill_in "todo[description]", :with => description
clear_context_name_from_next_action_form
fill_in "todo_context_name", :with => context_name
submit_next_action_form
end
When /^I submit multiple actions with using$/ do |multiple_actions|
fill_in "todo[multiple_todos]", :with => multiple_actions
submit_multiple_next_action_form
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}\""
submit_multiple_next_action_form
end
When /^I submit the new multiple actions form with$/ do |multi_line_descriptions|
fill_in "todo[multiple_todos]", :with => multi_line_descriptions
submit_multiple_next_action_form
end
When /^I edit the due date of "([^"]*)" to tomorrow$/ do |action_description|
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
open_edit_form_for(todo)
fill_in "due_todo_#{todo.id}", :with => format_date(todo.created_at + 1.day)
submit_edit_todo_form(todo)
end
When /^I edit the due date of "([^"]*)" to next month$/ do |action_description|
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
open_edit_form_for(todo)
fill_in "due_todo_#{todo.id}", :with => format_date(todo.created_at + 1.month)
submit_edit_todo_form(todo)
end
When /^I clear the due date of "([^"]*)"$/ do |action_description|
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
open_edit_form_for(todo)
selenium.click("//div[@id='edit_todo_#{todo.id}']//a[@id='due_x_todo_#{todo.id}']/img", :wait_for => :ajax, :javascript_framework => :jquery)
submit_edit_todo_form(todo)
end
When /^I mark "([^"]*)" as complete$/ do |action_description|
# TODO: generalize. this currently only works for projects wrt xpath
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
check "mark_complete_#{todo.id}"
todo_container = "fail" # fail this test if @source_view is wrong
todo_container = "p#{todo.project_id}items" if @source_view=="project"
todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag"
# container should be there
selenium.is_element_present("//div[@id='#{todo_container}']").should be_true
wait_for :timeout => 5 do
!selenium.is_element_present("//div[@id='p#{todo.project.id}items']//div[@id='line_todo_#{todo.id}']")
!selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']")
end
# note that animations could be running after finishing this
end
When /^I mark "([^"]*)" as uncompleted$/ do |action_description|
# TODO: generalize. this currently only works for context wrt xpath
todo = @current_user.todos.find_by_description(action_description)
todo.should_not be_nil
check "mark_complete_#{todo.id}"
xpath="//div[@id='c#{todo.context_id}items']//div[@id='line_todo_#{todo.id}']"
wait_for :timeout => 5 do
selenium.is_element_present(xpath)
end
# note that animations could be running after finishing this
end
@ -198,6 +117,10 @@ When /^I delete the action "([^"]*)"$/ do |action_description|
end
end
When /^I delete the todo "([^"]*)"$/ do |action_description|
When "I delete the action \"#{action_description}\""
end
Then /^I should see ([0-9]+) todos$/ do |count|
count.to_i.downto 1 do |i|
match_xpath "div["
@ -224,24 +147,6 @@ Then /^the number of actions should be (\d+)$/ do |count|
@current_user.todos.count.should == count.to_i
end
Then /^the container for the context "([^"]*)" should be visible$/ do |context_name|
context = @current_user.contexts.find_by_name(context_name)
context.should_not be_nil
xpath = "xpath=//div[@id=\"c#{context.id}\"]"
selenium.wait_for_element(xpath, :timeout_in_seconds => 5)
selenium.is_visible(xpath).should be_true
end
Then /^the container for the context "([^"]*)" should not be visible$/ do |context_name|
context = @current_user.contexts.find_by_name(context_name)
context.should_not be_nil
wait_for_ajax
xpath = "xpath=//div[@id=\"c#{context.id}\"]"
selenium.is_element_present(xpath).should be_false
end
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?"
end

View file

@ -7,11 +7,14 @@ module NavigationHelpers
#
def path_to(page_name)
options = @mobile_interface ? {:format => :m} : {}
@source_view = nil
case page_name
when /the home\s?page/
@source_view = "todos"
root_path(options)
when /the statistics page/
@source_view = "stats"
stats_path(options)
when /the signup page/
signup_path(options)
@ -20,8 +23,10 @@ module NavigationHelpers
when /the notes page/
notes_path(options)
when /the contexts page/
@source_view = "contexts"
contexts_path(options)
when /the projects page/
@source_view = "projects"
projects_path(options)
when /the manage users page/
users_path(options)
@ -44,15 +49,20 @@ module NavigationHelpers
when /the feeds page/
feeds_path(options)
when /the context page for "([^\"]*)" for user "([^\"]*)"/i
@source_view = "context"
context_path(User.find_by_login($2).contexts.find_by_name($1), options)
when /the context page for "([^\"]*)"/i
@source_view = "context"
context_path(@current_user.contexts.find_by_name($1), options)
when /the "([^\"]*)" project for user "([^\"]*)"/i
@source_view = "project"
project_path(User.find_by_login($2).projects.find_by_name($1), options)
when /the "([^\"]*)" project/i
@source_view = "project"
@project = @current_user.projects.find_by_name($1)
project_path(@project, options)
when /the tag page for "([^"]*)"/i
@source_view = "tag"
tag_path($1, options)
# Add more mappings here.

View file

@ -189,7 +189,9 @@ var TracksPages = {
}
})
.autocomplete({
minLength: 0,
minLength: 2,
autoFocus: true,
delay: 400, /* increase a bit over dthe default of 300 */
source: function( request, response ) {
var last_term = extractLast( request.term );
if (last_term != "" && last_term != " ")
@ -224,8 +226,7 @@ var TracksPages = {
//terms.push( "" );
this.value = terms.join( ", " );
return false;
},
selectFirst: true
}
});
},
setup_all_autocompleters: function() {
@ -419,7 +420,9 @@ var TodoItems = {
}
})
.autocomplete({
minLength: 0,
minLength: 2,
autoFocus: true,
delay: 400, /* delay a bit more than the default of 300 */
source: function( request, response ) {
var term = request.term;
if (term != "" && term != " ")
@ -459,8 +462,7 @@ var TodoItems = {
$(form).find('input[name=predecessor_input]').val('');
$(form).find('input[name=predecessor_input]').focus();
return false;
},
selectFirst: true
}
});
},
drag_todo: function() {
@ -594,7 +596,9 @@ var ContextItems = {
setup_autocomplete_for_contexts: function(id) {
$(id).autocomplete({
source: relative_to_root('contexts.autocomplete'),
selectFirst: true
autoFocus: true,
minLength: 1,
delay: 400 /* increase a bit. default was 300 */
});
}
}
@ -603,7 +607,9 @@ var ProjectItems = {
setup_autocomplete_for_projects: function(id) {
$(id).autocomplete({
source: relative_to_root('projects.autocomplete'),
selectFirst: true
autoFocus: true,
minLength: 1,
delay: 400 /* increase a bit. default was 300 */
});
}
}
@ -1056,7 +1062,9 @@ function default_ajax_options_for_submit(ajax_type, element_to_block) {
$(this.block_element).unblock();
}
// delay a bit to wait for animations to finish
setTimeout(function(){enable_rich_interaction();}, 500);
setTimeout(function(){
enable_rich_interaction();
}, 500);
}],
error: function(req, status) {
TracksPages.page_notify('error', i18n['common.ajaxError']+': '+status, 8);

File diff suppressed because one or more lines are too long

16
public/javascripts/jquery-1.5.2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -1,23 +0,0 @@
/*
* jQuery UI Autocomplete Select First Extension
*
* Copyright 2010, Scott González (http://scottgonzalez.com)
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* http://github.com/scottgonzalez/jquery-ui-extensions
*/
(function( $ ) {
$( ".ui-autocomplete-input" ).live( "autocompleteopen", function() {
var autocomplete = $( this ).data( "autocomplete" ),
menu = autocomplete.menu;
if ( !autocomplete.options.selectFirst ) {
return;
}
menu.activate( $.Event({ type: "mouseenter" }), menu.element.children().first() );
});
}( jQuery ));

View file

@ -115,14 +115,18 @@ a.show_successors:hover, a.link_to_successors:hover {background-image: url(../im
}
body.preferences div#display_box {
margin-right:410px;
margin-right:510px;
}
body.preferences div#input_box {
width:390px;
width:490px;
right:15px;
}
body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_context_id {
width: 250px;
}
#single_box {
width: 60%;
margin: 80px auto;