@@ -14,11 +14,11 @@
<%= t.text_area("notes", "cols" => 29, "rows" => 6, "tabindex" => 2) %>
-
+
-
+
<%= text_field_tag "tag_list", @default_tags, :size => 30, :tabindex => 5 %>
diff --git a/app/views/todos/add_predecessor.js.erb b/app/views/todos/add_predecessor.js.erb
index 25517fbc..69af584b 100644
--- a/app/views/todos/add_predecessor.js.erb
+++ b/app/views/todos/add_predecessor.js.erb
@@ -1,6 +1,11 @@
-<% if !@saved -%>
+<% if !@saved
+ if @predecessor.completed? -%>
+ TracksPages.page_notify('error', "<%= t('todos.cannot_add_dependency_to_completed_todo') %>", 8);
+ $('#<%=dom_id(@todo)%>').html(html_for_todo());
+<% else -%>
TracksPages.page_notify('error', "<%= t('todos.unable_to_add_dependency') %>", 8);
-<% else -%>
+<% end
+ else -%>
remove_successor_from_page();
replace_updated_predecessor();
regenerate_predecessor_family();
@@ -19,7 +24,7 @@ function replace_updated_predecessor() {
function show_in_tickler_box() {
$("#tickler-empty-nd").hide();
- $('#tickler').append( html_for_deferred_todo() );
+ $('#tickler').append( html_for_todo() );
}
function regenerate_predecessor_family() {
@@ -37,9 +42,12 @@ function html_for_predecessor() {
return "<%= escape_javascript(render(:partial => @predecessor, :locals => { :parent_container_type => parent_container_type })) %>";
}
-function html_for_deferred_todo() {
+<% end # if !@saved
+
+# following js is needed in case of an error with dragging onto a completed action althoug
+%>
+
+function html_for_todo() {
return "<%= escape_javascript(render(:partial => @todo, :locals => { :parent_container_type => parent_container_type })) %>";
}
-<% end # if !@saved
-%>
\ No newline at end of file
diff --git a/app/views/todos/toggle_check.js.erb b/app/views/todos/toggle_check.js.erb
index e90c0741..ff85d442 100644
--- a/app/views/todos/toggle_check.js.erb
+++ b/app/views/todos/toggle_check.js.erb
@@ -1,5 +1,5 @@
<% if !@saved -%>
- TracksPages.page_notify('error', "Could not mark this todo complete", 5);
+ TracksPages.page_notify('error', "<%= t('todos.error_toggle_complete') %>", 5);
<% else -%>
<% if @wants_redirect_after_complete && @todo.completed? -%>
redirect_after_complete();
diff --git a/config/environment.rb b/config/environment.rb
index e7398a18..ff02891b 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -24,7 +24,7 @@ Rails::Initializer.run do |config|
config.gem "highline"
config.gem "RedCloth"
config.gem "soap4r", :lib => false
- config.gem 'datanoise-actionwebservice', :lib => 'actionwebservice'
+ config.gem 'datanoise-actionwebservice', :lib => 'actionwebservice', :source => "http://gems.github.com"
config.gem 'sanitize', :version => '~> 1.2.1'
config.gem 'rack', :version => '1.1.0'
config.gem 'will_paginate', :version => '~> 2.3.15'
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 10b5cb5c..9bdaa74d 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1,37 +1,5 @@
---
de:
- common:
- actions: Aktionen
- back: "Zur\xC3\xBCck"
- logout: Abmelden
- go_back: "Zur\xC3\xBCck"
- none: Keine
- cancel: Abbrechen
- optional: optional
- notes: Notizen
- server_error: Auf dem Server ist ein Fehler aufgetreten.
- projects: Projekte
- action: Aktion
- project: Projekt
- ok: Ok
- numbered_step: Schritt %{number}
- context: Kontext
- 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 ü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 überschrieben.
- by_task_count: Nach Anzahl der Aufgaben
- create: Erstellen
- description: Beschreibung
- errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:"
- contexts: Kontexte
- drag_handle: Verschieben
- update: Aktualisieren
- ajaxError: Fehler beim Empfangen vom Server
- search: Suchen
number:
format:
separator: ","
@@ -63,15 +31,59 @@ de:
unit: !binary |
4oKs
- separator:
+ separator: .
precision:
- delimiter:
+ 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_before_id: "N\xC3\xA4chste neue Aufgabe mit ID"
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 ü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 ü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
@@ -86,35 +98,35 @@ de:
contexts: 2-Kontexte
home: 1-Home
navigation:
- manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen"
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
- notes_title: Alle Notizen anzeigen
tickler_title: Notizbuch
manage_users: Benutzer verwalten
export_title: Daten importieren und exportieren
- preferences: Einstellungen
integrations_: Tracks integrieren
- feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen"
+ 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
- tickler: Notizbuch
recurring_todos_title: Sich wiederholende To-Dos verwalten
+ tickler: Notizbuch
completed_tasks: Erledigt
- organize: Organisieren
view: Betrachten
+ organize: Organisieren
completed_tasks_title: "Vollst\xC3\xA4ndig"
- contexts_title: Kontexte
export: Export
+ contexts_title: Kontexte
home: Start
projects_title: Projekte
- calendar: Kalender
preferences_title: Meine Einstellungen
+ calendar: Kalender
search: "Alle Eintr\xC3\xA4ge durchsuchen"
models:
project:
@@ -122,13 +134,13 @@ de:
feed_description: "Listet alle Projekte f\xC3\xBCr %{username} auf"
todo:
error_date_must_be_future: muss ein Datum in der Zukunft sein
- user:
- error_context_not_associated: "Kontext-ID %{context} nicht mit Benutzer-ID %{user} verkn\xC3\xBCpft."
- error_project_not_associated: "Projekt-ID %{project} nicht mit User-ID %{user} verkn\xC3\xBCpft."
preference:
due_styles:
- "F\xC3\xA4llig in ___ Tagen"
- "F\xC3\xA4llig am _______"
+ user:
+ error_context_not_associated: "Kontext-ID %{context} nicht mit Benutzer-ID %{user} verkn\xC3\xBCpft."
+ error_project_not_associated: "Projekt-ID %{project} nicht mit User-ID %{user} verkn\xC3\xBCpft."
data:
import_successful: Import war erfolgreich.
import_errors: Beim Import sind Fehler aufgetreten.
@@ -147,20 +159,20 @@ de:
context: Kontext
description: Beschreibung
due: Fällig
- user:
- last_name: Nachname
- first_name: Vorname
preference:
- mobile_todos_per_page: Aufgaben pro Seite (Mobile Version)
sms_context: Standard-E-Mail-Kontext
+ mobile_todos_per_page: Aufgaben pro Seite (Mobile Version)
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
+ user:
+ last_name: Nachname
+ first_name: Vorname
errors:
messages:
- record_invalid: ""
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"
@@ -192,79 +204,81 @@ de:
one: "Konnte dieses %{model} Objekt nicht speichern: 1 Fehler."
other: "Konnte dieses %{model} Objekt nicht speichern: %{count} Fehler."
full_messages:
- format: ""
+ 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)
- tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen
+ 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
- totals_first_action: Seit deiner ersten Aktion am %{date}
- actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen.
+ 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
- totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind"
- top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte"
legend:
- actions: Aktionen
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
- running_time_legend:
- actions: Aufgaben
- percentage: Prozentsatz
- weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen."
+ 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_unique_tags: Von diesen Tags sind %{count} einmalig..
- actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt.
+ 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_context_count: Du hast %{count} Kontexte.
+ 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"
- actions_day_of_week_title: Wochentag (alle Aktionen)
- totals_project_count: Du hast %{count} Projekte.
tags: Tags
- actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}."
- time_of_day: Tageszeit (alle Aktionen)
- totals_hidden_project_count: "%{count} sind versteckt"
+ 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_further: und danach
- tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden.
- spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte
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
- click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen.
- totals_completed_project_count: und %{count} sind abgeschlossene Projekte.
- top10_projects_30days: Top-10-Projekt der letzten 30 Tage
- totals_hidden_context_count: und %{count} sind versteckte 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
- click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren.
+ totals_hidden_context_count: und %{count} sind versteckte Kontexte.
labels:
month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt"
completed: Erledigt
@@ -273,6 +287,7 @@ de:
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."
@@ -283,10 +298,10 @@ de:
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ühren
recurring_action_deleted: Die Aktion wurde gelö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}
@@ -300,17 +315,18 @@ de:
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
- edit_action_with_description: Aktion '%{description}' bearbeiten
action_due_on: "(Aktion f\xC3\xA4llig am %{date})"
- archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben
+ edit_action_with_description: Aktion '%{description}' bearbeiten
remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe)
+ archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben
list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen
action_deleted_success: Die nächste Aktion erfolgreich gelö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"
mobile_todos_page_title: Alle Aufgaben
- 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
@@ -338,22 +354,25 @@ de:
no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden.
delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden?
completed_last_day: In den letzten 24 Stunden erledigt
- feed_title_in_context: im Kontext '%{context}'
- no_project: --Kein Projekt--
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}'
older_than_days: "Ä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ä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ä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."
@@ -364,8 +383,9 @@ de:
clear_show_from_date: Datum leeren
calendar_page_title: TRACKS::Kalender
in_hidden_state: als versteckt markiert
- completed_last_x_days: In den letzten %{count} Tagen erledigt
show_today: Heute anzeigen
+ no_actions_found_title: Keine Aktionen gefunden
+ completed_last_x_days: In den letzten %{count} Tagen erledigt
no_actions_with: "Im Augenblick gibt es keine unvollst\xC3\xA4ndigen Aktionen mit dem Tag '%{tag_name}'"
defer_x_days:
one: "Einen Tag zur\xC3\xBCckstellen"
@@ -384,6 +404,7 @@ de:
recurring_todos: Wiederkehrende To-Dos
delete: "L\xC3\xB6schen"
drag_action_title: "Auf andere Aktion ziehen, um sie als Abh\xC3\xA4ngigkeit zu definieren"
+ cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!"
depends_on: "H\xC3\xA4ngt ab von"
tickler_items_due:
one: Ein Notizbuch-Eintrag ist nun fällig - lade die Seite neu, um sie zu sehen.
@@ -393,7 +414,9 @@ de:
one: Du hast heute bereits eine Aufgabe erledigt.
other: Du hast heute bereits %{count} Aufgaben erledigt.
added_new_next_action_plural: Neue weiterführende Aufgaben angelegt
+ new_related_todo_not_created_short: nicht schaffen todo
error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen
+ show_tomorrow: Morgen anzeigen
calendar:
get_in_ical_format: Diesen Kalender im iCal Format herunterladen
due_next_week: Nächste Woche fällig
@@ -405,11 +428,10 @@ de:
no_actions_due_after_this_month: Nach diesem Monat sind keine Aufgaben fällig
due_this_month: Im %{month} fällig
no_actions_due_this_month: Keine Aktionen für den Rest des Monats
- show_tomorrow: Morgen anzeigen
recurrence:
- ends_on_date: Endet am %{date}
every_work_day: Jeden Arbeitstag
ends_on_number_times: Endet nach %{number} Mal
+ ends_on_date: Endet am %{date}
recurrence_on_due_date: Das Datum der To-Do ist verstrichen.
weekly_options: "Einstellungen f\xC3\xBCr sich w\xC3\xB6chentlich wiederholende Aktionen"
weekly: "W\xC3\xB6chentlich"
@@ -419,30 +441,32 @@ de:
daily_options: "Einstellungen f\xC3\xBCr sich t\xC3\xA4glich wiederholenden Aktionen"
daily: "T\xC3\xA4glich"
show_option_always: immer
- yearly_every_x_day: "Jeden %{day}. %{month} "
recurrence_on_options: Setze Wiederholung auf
+ yearly_every_x_day: "Jeden %{day}. %{month} "
daily_every_number_day: Alle %{number} Tage
ends_on: Endet am
weekly_every_number_week: Kehrt jede %{number}. Woche wieder am
show_options: To-Do anzeigen
- 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
yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen"
- yearly: "J\xC3\xA4hrlich"
+ yearly_every_xth_day: Den %{day} %{day_of_week} des %{month}
+ show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist"
+ from_tickler: the date todo comes from tickler (no due date set)
+ no_end_date: Kein Enddatum
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ängigkeit hinzugefügt."
no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden.
recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit
- no_actions_found_title: Keine Aktionen gefunden
- in_pending_state: und als ausstehend markiert
- due: Fällig
action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} 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ällig
recurring_action_saved: Wiederkehrende Aktion gespeichert
+ overdue: "Überfällig"
action_saved_to_tickler: Aktion im Notizbuch gespeichert
depends_on_separate_with_commas: Hängt ab von (Komma-separiert)
completed_in_archive:
@@ -452,9 +476,8 @@ de:
next_actions_description_additions:
completed: In den letzten %{count} Tagen
due_date: mit einem Datum %{due_date} oder früher
- overdue: "Überfällig"
- add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu"
no_incomplete_actions: Es gibt keine unerledigten Aufgaben
+ add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu"
notes:
delete_note_title: Notiz '%{id}' löschen
delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?"
@@ -467,54 +490,8 @@ de:
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öscht werden?
- projects:
- default_tags_removed_notice: Standard-Tags entfernt
- default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt
- deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt"
- edit_project_title: Projekt bearbeiten
- 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"
- project_state: Projekt ist %{state}
- show_form_title: Neues Projekt anlegen
- to_new_project_page: Zu neuem Projekt weiterleiten
- notes: Notizen
- todos_append: an dieses Projekt
- 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"
- delete_project: Projekt löschen
- show_form: Projekt erstellen
- delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden?
- add_note: "Notiz hinzuf\xC3\xBCgen"
- settings: Einstellungen
- completed_projects: Abgeschlossene Projekte
- list_projects: TRACKS::Projektliste
- add_project: Projekt hinzufügen
- set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen
- project_saved_status: Projekt gespeichert
- hidden_projects: Versteckte Projekte
- delete_project_title: Projekt löschen
- default_context_removed: Standard-Kontext entfernt
- add_note_submit: "Notiz hinzuf\xC3\xBCgen"
- completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt"
- default_context: Der Standard-Kontext dieses Projektes ist %{context}
- status_project_name_changed: "Projektname ge\xC3\xA4ndert"
- state: Dieses Projekt ist %{state}
- active_projects: Aktive Projekte
- no_default_context: Dieses Projekt hat keinen Standard-Kontext
errors:
user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen."
- time:
- am: vormittags
- formats:
- default: "%A, %d. %B %Y, %H:%M Uhr"
- time: "%H:%M"
- short: "%d. %B, %H:%M Uhr"
- long: "%A, %d. %B %Y, %H:%M Uhr"
- pm: nachmittags
states:
hidden_plural: Versteckte
completed: Erledigt
@@ -524,9 +501,17 @@ de:
visible: Sichtbar
active: Aktiv
hidden: Versteckt
+ time:
+ am: vormittags
+ formats:
+ default: "%A, %d. %B %Y, %H:%M Uhr"
+ time: "%H:%M"
+ short: "%d. %B, %H:%M Uhr"
+ long: "%A, %d. %B %Y, %H:%M Uhr"
+ pm: nachmittags
preferences:
- staleness_starts_after: Staleness starts after %{days} days
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"
page_title: TRACKS::Einstellungen
change_password: "Passwort \xC3\xA4ndern"
@@ -538,10 +523,59 @@ de:
generate_new_token: Neues Token generieren
sms_context_none: Keine
token_header: Dein Token
- authentication_header: Deine Authentifizierung
current_authentication_type: Dein Authentifizierungsart ist %{auth_type}
+ authentication_header: Deine Authentifizierung
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
+ 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
+ notes: Notizen
+ 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öschen
+ 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öscht werden?
+ list_projects: TRACKS::Projektliste
+ add_project: Projekt hinzufügen
+ set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen
+ add_note: "Notiz hinzuf\xC3\xBCgen"
+ is_active: ist aktiv
+ project_saved_status: Projekt gespeichert
+ settings: Einstellungen
+ with_default_tags: und mit '%{tags}' als Standard-Tags
+ completed_projects: Abgeschlossene Projekte
+ hidden_projects: Versteckte Projekte
+ delete_project_title: Projekt löschen
+ was_marked_complete: wurde als erledigt markiert
+ completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt"
+ default_context_removed: Standard-Kontext entfernt
+ add_note_submit: "Notiz hinzuf\xC3\xBCgen"
+ edit_project_settings: ""
+ 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
date:
month_names:
-
@@ -559,10 +593,6 @@ de:
- Oktober
- November
- Dezember
- order:
- - :day
- - :month
- - :year
abbr_day_names:
- So
- Mo
@@ -571,6 +601,10 @@ de:
- Do
- Fr
- Sa
+ order:
+ - :day
+ - :month
+ - :year
formats:
only_day: "%e"
default: "%d.%m.%Y"
@@ -605,6 +639,10 @@ de:
last_word_connector: " und "
words_connector: ", "
two_words_connector: " und "
+ select:
+ prompt: "Bitte w\xC3\xA4hlen Sie"
+ footer:
+ send_feedback: Senden Sie Feedback zu %{version}
shared:
multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile)
hide_form: Formular verstecken
@@ -612,80 +650,80 @@ 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)"
+ 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ügen
project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben"
- context_for_all_actions: "Kontext 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"
- users:
- total_contexts: Alle Kontexte
- successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht.
- failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen
- openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt.
- destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht"
- auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}"
- 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
- no_signups_title: TRACKS::Anmeldung nicht erlaubt
- user_created: Benutzer angelegt.
- change_password_submit: "Passwort \xC3\xA4ndern"
- manage_users: Benutzer verwalten
- account_signup: Accounteinrichtung
- password_updated: Passwort aktualisiert.
- signup: Registrieren
- confirm_password: "Passwort best\xC3\xA4tigen"
- new_user_heading: "Einen neuen Benutzer anlegen:"
- auth_type_updated: Authentifizierungs-Art erfolgreich geändert.
- total_actions: Alle Aufgaben
- desired_login: "Gew\xC3\xBCnschter Benutzername"
- destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten."
- choose_password: "Passwort w\xC3\xA4hlen"
- change_password_title: TRACKS::Passwort ändern
- change_auth_type_title: TRACKS::Authentifizierungstyp ä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."
- password_confirmation_label: "Passwort best\xC3\xA4tigen"
- label_auth_type: Authentifizierungsart
- new_password_label: Neues Passwort
- register_with_cas: Mit deinem CAS-Benutzernamen
- destroy_user: "Benutzer l\xC3\xB6schen"
- total_users_count: Derzeit existieren %{count} Benutzer
- new_user_title: TRACKS::Als Administrator anmelden
- 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?"
- signup_new_user: Neuen Benutzer anlegen
- 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ät verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf.
- 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
feedlist:
- actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig"
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
- legend: "Legende:"
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"
- projects_and_actions: Aktive Projekte und deren Aufgaben
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
- all_actions: Alle Aufgaben
- actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben
project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext"
+ users:
+ successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht.
+ failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen
+ openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt.
+ destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht"
+ auth_type_update_error: "Beim Ä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
+ 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
+ signup: Registrieren
+ 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ä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 ändern
+ change_auth_type_title: TRACKS::Authentifizierungstyp ändern
+ 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
+ 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ät verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf.
+ 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
@@ -699,24 +737,24 @@ de:
show_form_title: Neuen Kontext erstellen
delete_context: Kontext löschen
delete_context_confirmation: Soll der Kontext '%{name}' wirklich gelöscht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gelöscht.
- edit_context: Kontext bearbeiten
hide_form_title: Formular fü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
- context_hide: Auf Startseite ausblenden?
- show_form: Neuen Kontext erstellen
add_context: "Kontext hinzuf\xC3\xBCgen"
visible_contexts: Sichtbare Kontexte
save_status_message: Kontext gespeichert
- update_status_message: "Kontextname wurde ge\xC3\xA4ndert"
+ show_form: Neuen Kontext erstellen
context_name: Kontextname
+ update_status_message: "Kontextname wurde ge\xC3\xA4ndert"
status_active: Kontext ist aktiv
new_context_post: "' wird ebenfalls angelegt. Fortfahren?"
- new_context_pre: Der neue Kontext '
- no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext"
last_completed_in_context: in diesem Kontext (letzte %{number})
context_deleted: "Gel\xC3\xB6schter Kontext '%{name}'"
no_contexts_hidden: Derzeit gibt es keine versteckten Kontexte
+ new_context_pre: Der neue Kontext '
+ no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext"
status_hidden: Kontext ist versteckt
datetime:
prompts:
@@ -731,6 +769,9 @@ de:
one: weniger als eine Minute
other: weniger als %{count} Minuten
zero: weniger als 1 Minute
+ almost_x_years:
+ one: fast 1 Jahr
+ other: fast %{count} Jahre
x_days:
one: 1 Tag
other: "%{count} Tage"
@@ -761,22 +802,22 @@ de:
other: mehr als %{count} Jahre
half_a_minute: eine halbe Minute
login:
- user_no_expiry: Angemeldet bleiben
- login_cas: zum CAS gehen
- sign_in: Anmeldung
openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})"
- cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert.
- cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account.
+ login_cas: zum CAS gehen
+ user_no_expiry: Angemeldet bleiben
+ sign_in: Anmeldung
cas_login: CAS-Anmeldung
successful_with_session_info: "Anmeldung erfolgreich:"
please_login: Bitte melde dich an, um Tracks zu nutzen
+ cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert.
+ cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account.
cas_username_not_found: Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen (%{username})
cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}"
mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden"
- account_login: Account-Anmeldung
cas_signup_link: Account beantragen
- successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!"
+ account_login: Account-Anmeldung
session_will_not_expire: Sitzung wird nicht ablaufen.
+ successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!"
session_time_out: Sitzung abgelaufen. Bitte %{link}
session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen."
option_separator: oder,
diff --git a/config/locales/en.yml b/config/locales/en.yml
index e88710f1..a17523ce 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -415,6 +415,9 @@ en:
actions_day_of_week_title: "Day of week (all actions)"
actions_dow_30days_title: "Day of week (past 30 days)"
action_completion_time_title: "Completion time (all completed actions)"
+ actions: Actions
+ contexts: Contexts
+ projects: Projects
todos:
action_saved: "Action saved"
recurring_action_saved: "Recurring action saved"
@@ -422,6 +425,7 @@ en:
added_new_project: "Added new project"
added_new_context: "Added new context"
error_starring: "Could not toggle the star of this todo \'%{description}\'"
+ error_toggle_complete: "Could not mark this todo complete"
recurrence_completed: "There is no next action after the recurring action you just finished. The recurrence is completed"
tagged_with: "tagged with ‘%{tag_name}’"
no_actions_found_title: "No actions found"
@@ -557,6 +561,7 @@ en:
set_to_pending: "%{task} set to pending"
append_in_this_project: "in this project"
unable_to_add_dependency: "Unable to add dependency"
+ cannot_add_dependency_to_completed_todo : "Cannot add this action as a dependency to a completed action!"
calendar:
due_today: "Due today"
no_actions_due_today: "No actions due today"
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index e8ab0851..51d90ecd 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -27,8 +27,8 @@ nl:
opensearch_description: Zoek in Tracks
gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget
applescript_next_action_prompt: "Omschrijving van de actie:"
- applescript_success_before_id: Nieuwe actie met ID
applescript_success_after_id: gemaakt
+ applescript_success_before_id: Nieuwe actie met ID
common:
third: Derde
actions: Acties
@@ -36,8 +36,8 @@ nl:
add: Toevoegen
logout: Log uit
go_back: Ga terug
- second: Tweede
none: Geen
+ second: Tweede
cancel: Annuleer
optional: optioneel
notes: Notities
@@ -50,12 +50,11 @@ nl:
ok: Ok
contribute: Bijdragen
first: Eerste
- website: Website
numbered_step: Stap %{number}
- fourth: Vierde
+ website: Website
context: Context
+ fourth: Vierde
errors_with_fields: Er waren problemen met de volgende velden
- drag_handle: SLEEP
sort:
by_task_count_title: Sorteer op aantal acties
by_task_count_title_confirm: Weet u zeker dat u deze projecten alphabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen.
@@ -64,12 +63,13 @@ nl:
sort: Sorteer
alphabetically_confirm: Weet u zeker dat u deze projecten alphabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen.
by_task_count: Bij aantal acties
+ drag_handle: SLEEP
create: Maken
description: Beschrijving
contexts: Contexten
update: Bijwerken
- wiki: Wiki
bugs: Fouten
+ wiki: Wiki
email: E-mail
ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server
search: Zoeken
@@ -87,13 +87,13 @@ nl:
contexts: 2-Contexten
home: 1-Start
navigation:
- manage_users_title: Toevoegen of verwijderen gebruikers
recurring_todos: Terugkerende acties
+ manage_users_title: Toevoegen of verwijderen gebruikers
api_docs: REST API Docs
feeds: Feeds
+ notes_title: Toon alle notities
stats: Statistieken
starred: Ster
- notes_title: Toon alle notities
tickler_title: Tickler
manage_users: Beheren gebruikers
export_title: Import en export van gegevens
@@ -101,12 +101,12 @@ nl:
preferences: Voorkeuren
calendar_title: Kalender met acties met deadline
feeds_title: Zie een lijst met beschikbare feeds
+ stats_title: Zie je statistieken
home_title: Start
starred_title: Zie je ster acties
recurring_todos_title: Beheren terugkerende acties
tickler: Tickler
completed_tasks: Gereed
- stats_title: Zie je statistieken
view: Bekijk
organize: Organiseer
completed_tasks_title: Afgerond
@@ -152,12 +152,12 @@ nl:
show_hidden_projects_in_sidebar: Toon verborgen projecten in sidebar
show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar
date_format: Datum formaat
- staleness_starts: Begin van markeren openstaande actie
sms_context: Standaard context voor email
- verbose_action_descriptors: Context en project uitschrijven in actielijst
mobile_todos_per_page: Acties per pagina (mobiel)
- show_number_completed: Aantal te tonen afgeronde acties
+ verbose_action_descriptors: Context en project uitschrijven in actielijst
+ staleness_starts: Begin van markeren openstaande actie
title_date_format: Datum formaat in titel
+ show_number_completed: Aantal te tonen afgeronde acties
refresh: Ververs interval (in minuten)
week_starts: Week start op
time_zone: Tijdzone
@@ -179,8 +179,8 @@ nl:
exclusion: is gereserveerd
invalid: mag niet een komma (',') karakter bevatten
odd: moet oneven zijn
- empty: mag niet leeg zijn
wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn)
+ empty: mag niet leeg zijn
even: moet even zijn
too_short: is te kort (minimum is %{count} karakters)
less_than: moet kleiner zijn dan %{count}
@@ -206,15 +206,17 @@ nl:
full_messages:
format: "%{attribute} %{message}"
stats:
+ tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen
totals_active_project_count: Van deze zijn %{count} actieve projecten
+ actions: Acties
tag_cloud_title: Tag Cloud voor alle acties
tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen)
- tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen
+ totals_first_action: Sinds uw eerste actie op %{date}
actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen.
actions_last_year_legend:
number_of_actions: Aantal acties
months_ago: Maanden geleden
- totals_first_action: Sinds uw eerste actie op %{date}
+ top10_longrunning: Top 10 langstlopende projecten
actions_dow_30days_title: Dag van de week (laatste 30 dagen)
current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties
running_time_legend:
@@ -222,7 +224,6 @@ nl:
percentage: Percentage
weeks: Looptijd van een actie (weken). Klik op een balk voor meer info
totals_action_count: u heeft een totaal van %{count} acties
- totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn
legend:
number_of_days: Aantal dagen geleden
actions: Acties
@@ -231,24 +232,28 @@ nl:
running_time: Looptijd van een actie (weken)
percentage: Percentage
months_ago: Maanden geleden
- top10_longrunning: Top 10 langstlopende projecten
+ totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn
+ totals_unique_tags: Van deze tags zijn %{count} uniek.
+ actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag.
top5_contexts: Top 5 contexten
actions_lastyear_title: Acties in de afgelopen 12 maanden
totals_actions_completed: "%{count} van deze zijn voltooid."
totals_incomplete_actions: U heeft %{count} onvolledige acties
- totals_unique_tags: Van deze tags zijn %{count} uniek.
- actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag.
+ totals_context_count: U heeft %{count} contexten.
totals_visible_context_count: Van deze zijn %{count} zichtbare contexten
totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties."
action_completion_time_title: Doorlooptijd (alle voltooide acties)
+ projects: Projecten
actions_last_year: Acties in de afgelopen jaren
- totals_context_count: U heeft %{count} contexten.
+ totals_project_count: U heeft %{count} projecten.
+ actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}.
actions_min_completion_time: De minimale tijd tot afronding is %{time}.
no_tags_available: geen tags beschikbaar
- actions_day_of_week_title: Dag van de week (alle acties)
- totals_project_count: U heeft %{count} projecten.
tags: Tags
- actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}.
+ actions_day_of_week_title: Dag van de week (alle acties)
+ top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties
+ actions_further: en verder
+ tod30: Tijd van de dag (laatste 30 dagen)
tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen.
running_time_all: Huidige looptijd van alle onvolledige acties
totals_tag_count: U heeft %{count} tags geplaatst op acties.
@@ -256,9 +261,9 @@ nl:
actions_30days_title: Acties in de afgelopen 30 dagen
totals_hidden_project_count: "%{count} zijn verborgen"
more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd.
- top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties
- actions_further: en verder
- tod30: Tijd van de dag (laatste 30 dagen)
+ actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt
+ click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien.
+ other_actions_label: (anderen)
totals_completed_project_count: en %{count} zijn afgeronde projecten.
click_to_return: Klik %{link} om terug te keren naar de statistieken pagina.
top10_projects_30days: Top 10 project in de laatste 30 dagen
@@ -266,17 +271,14 @@ nl:
top10_projects: Top 10 projecten
spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten
spread_of_actions_for_all_context: Verdeling van acties voor alle contexten
- actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt
- click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien.
- other_actions_label: (anderen)
+ actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand.
totals: Totalen
time_of_day_legend:
number_of_actions: Aantal acties
time_of_day: Tijd van de dag
+ contexts: Contexten
click_to_return_link: hier
totals_hidden_context_count: en %{count} zijn verborgen contexten.
- actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand.
- no_actions_selected: Er zijn geen acties geselecteerd.
labels:
month_avg_completed: "%{months} gem afgerond per maand"
completed: Afgerond
@@ -284,23 +286,24 @@ nl:
avg_created: Gem gemaakt
avg_completed: Gem afgerond
created: Gemaakt
+ no_actions_selected: Er zijn geen acties geselecteerd.
click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen.
running_time_all_legend:
actions: Acties
running_time: Looptijd van een actie (weken). Klik op een balk voor meer info
percentage: Percentage
- action_selection_title: "TRACKS:: Actie selectie"
- actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt
tod30_legend:
number_of_actions: Aantal acties
time_of_day: Tijd van de dag
+ action_selection_title: "TRACKS:: Actie selectie"
+ actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt
todos:
- recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd
+ completed_actions: Voltooide acties
show_from: Toon vanaf
error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\'
- completed_actions: Voltooide acties
- added_new_next_action: Nieuwe actie toegevoegd
+ recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd
completed_recurring: Afgesloten terugkerende todos
+ added_new_next_action: Nieuwe actie toegevoegd
blocked_by: Geblokkeerd door %{predecessors}
star_action: Markeer deze actie met een ster
completed_recurrence_completed: Er is geen actie na de terugkerende actie die u new verwijderd heeft. De herhaling is voltooid
@@ -312,18 +315,18 @@ nl:
completed: Afgerond
no_deferred_actions_with: Geen uitgestelde acties met de tag '%{tag_name}'
no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden
- edit_action_with_description: Bewerk de actie '%{description}'
action_due_on: (deadline actie op %{date})
- archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken"
+ edit_action_with_description: Bewerk de actie '%{description}'
remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen)
+ archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken"
list_incomplete_next_actions: Toon onvoltooide acties
- tags: Tags (gescheiden door komma's)
action_deleted_success: Actie succesvol verwijderd
- mobile_todos_page_title: Alle acties
+ tags: Tags (gescheiden door komma's)
+ delete_recurring_action_title: Verwijder de terugkerende actie
new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo
context_changed: Context veranderd in '%{name}'
add_another_dependency: Nog een afhankelijkheid toevoegen
- delete_recurring_action_title: Verwijder de terugkerende actie
+ mobile_todos_page_title: Alle acties
removed_predecessor: "'%{successor}' is verwijderd als afhankelijkheid van '%{predecessor}'."
recurring_actions_title: TRACKS::Terugkerende acties
next_action_needed: U dient ten minste een actie in te vullen
@@ -333,7 +336,6 @@ nl:
edit_action: Actie bewerken
added_new_context: Nieuwe context toegevoegd
next_actions_description: "Filter:"
- older_completed_items: Oudere voltooide items
list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties
set_to_pending: "'%{task}' als wachtend ingesteld"
added_new_project: Nieuw project toegevoegd
@@ -341,9 +343,10 @@ nl:
completed: acties voltooid
due_today: deadline vandaag
due_within_a_week: deadline binnen een week
- task_list_title: TRACKS::Toon acties
+ older_completed_items: Oudere voltooide items
append_in_this_project: in dit project
error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}'
+ task_list_title: TRACKS::Toon acties
no_actions_due_this_week: Geen acties met deadline in rest van deze week
no_recurring_todos: Momenteel zijn er geen terugkerende acties
error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}'
@@ -351,25 +354,25 @@ nl:
no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties
delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen?
completed_last_day: Voltooid in de laatste 24 uur
- error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}'
- no_project: -- Geen project --
show_in_days: Toon over %{days} dagen
+ no_project: -- Geen project --
+ error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}'
completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden
new_related_todo_created_short: een nieuwe actie gemaakt
feed_title_in_context: in context '%{context}'
+ completed_actions_with: Afgeronde acties met de tag %{tag_name}
older_than_days: Ouder dan %{count} dagen
edit: Bewerken
pending: Wachtend
- completed_actions_with: Afgeronde acties met de tag %{tag_name}
deleted_success: De actie werd met succes verwijderd.
completed_tasks_title: TRACKS::Voltooide taken
feed_title_in_project: In het project '%{project}'
clear_due_date: Maak deadline leeg
error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie
hidden_actions: Verborgen acties
+ recurrence_period: Herhaling periode
was_due_on_date: had deadline op %{date}
show_on_date: Toon op %{date}
- recurrence_period: Herhaling periode
deferred_actions_with: Uitgestelde acties met de tag '%{tag_name}'
confirm_delete: Weet u zeker dat u de actie '%{description}' wilt verwijderen?
recurring_deleted_success: De recurrente actie is succesvol verwijderd.
@@ -383,10 +386,10 @@ nl:
show_today: Toon vandaag
no_actions_found_title: Geen acties gevonden
completed_last_x_days: Voltooid in de laatste %{count} dagen
+ no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}'
defer_x_days:
one: Een dag uitstellen
other: "%{count} dagen uitstellen"
- no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}'
added_new_next_action_singular: Nieuwe actie toegevoegd
no_completed_actions: Momenteel zijn er geen voltooide acties.
deferred_pending_actions: Uitgestelde/wachtende acties
@@ -401,6 +404,7 @@ nl:
recurring_todos: Terugkerende acties
delete: Verwijder
drag_action_title: Sleep naar een andere actie om deze afhankelijk te maken van die actie
+ cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen!
depends_on: Hangt af van
tickler_items_due:
one: Een tickler item wordt nu zichtbaar - vernieuw de pagina om het te zien.
@@ -425,30 +429,30 @@ nl:
due_this_month: Deadline in rest van %{month}
no_actions_due_this_month: Geen acties met deadline in de rest van deze maand
recurrence:
- ends_on_date: Eindigt op %{date}
every_work_day: Elke werkdag
ends_on_number_times: Eindigt na %{number} keer
+ ends_on_date: Eindigt op %{date}
recurrence_on_due_date: de datum dat deadline van de actie is
weekly_options: Instellingen voor de wekelijkse terugkerende acties
- monthly_options: Instellingen voor maandelijks terugkerende acties
weekly: Wekelijks
+ monthly_options: Instellingen voor maandelijks terugkerende acties
monthly: Maandelijks
starts_on: Begint op
daily_options: Instellingen voor dagelijks terugkerende acties
- show_option_always: altijd
daily: Dagelijks
- yearly_every_x_day: Elke %{month} %{day}
+ show_option_always: altijd
recurrence_on_options: Stel herhaling in op
+ yearly_every_x_day: Elke %{month} %{day}
daily_every_number_day: Elke %{number} dag(en)
- weekly_every_number_week: Herhaalt elke %{number} weken op
ends_on: Eindigt op
+ weekly_every_number_week: Herhaalt elke %{number} weken op
show_options: Toon de actie
+ day_x_on_every_x_month: Dag %{day} op elke %{month} maand
yearly_options: Instellingen voor jaarlijks terugkerende acties
- show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie"
yearly_every_xth_day: De %{day} %{day_of_week} van %{month}
+ show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie"
from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld)
no_end_date: Geen einddatum
- day_x_on_every_x_month: Dag %{day} op elke %{month} maand
yearly: Jaarlijks
monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand
tagged_page_title: TRACKS::Tagged met '%{tag_name}'
@@ -458,28 +462,29 @@ nl:
recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid
no_actions_found: Momenteel zijn er geen onafgeronde acties.
in_pending_state: in wachtende toestand
+ error_toggle_complete: Kon deze actie niet als afgerond markeren
due: Deadline
action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server.
- next_actions_description_additions:
- completed: in de afgelopen %{count} dagen
- due_date: met een deadline %{due_date} of eerder
- depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's)
- action_saved_to_tickler: Actie opgeslagen in tickler
recurring_action_saved: Terugkerende actie opgeslagen
+ overdue: Achterstallig
+ action_saved_to_tickler: Actie opgeslagen in tickler
+ depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's)
completed_in_archive:
one: Er is een voltooide actie in het archief.
other: Er zijn %{count} afgeronde acties in het archief.
to_tickler: naar tickler
- overdue: Achterstallig
- add_new_recurring: Voeg een nieuwe terugkerende actie toe
+ next_actions_description_additions:
+ completed: in de afgelopen %{count} dagen
+ due_date: met een deadline %{due_date} of eerder
no_incomplete_actions: Er zijn geen onvoltooide acties
+ add_new_recurring: Voeg een nieuwe terugkerende actie toe
notes:
delete_note_title: Verwijder de notitie '%{id}'
delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen?
delete_item_title: Verwijder item
- deleted_note: Verwijder notitie '%{id}'
note_link_title: Toon notitie %{id}
show_note_title: Toon notitie
+ deleted_note: Verwijder notitie '%{id}'
note_location_link: "In:"
edit_item_title: Item bewerken
note_header: Notitie %{id}
@@ -487,15 +492,6 @@ nl:
delete_note_confirm: Weet u zeker dat u de notitie '%{id}' wilt verwijderen?
errors:
user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken."
- states:
- hidden_plural: Verborgen
- completed: Afgerond
- completed_plural: Afgeronde
- visible_plural: Zichtbare
- visible: Zichtbaar
- active_plural: Actieve
- active: Actief
- hidden: Verborgen
time:
am: ochtend
formats:
@@ -504,9 +500,18 @@ nl:
short: "%d %B %H:%M"
long: "%A, %d. %B %Y, %H:%M"
pm: middag
+ states:
+ hidden_plural: Verborgen
+ completed: Afgerond
+ completed_plural: Afgeronde
+ visible_plural: Zichtbare
+ active_plural: Actieve
+ visible: Zichtbaar
+ active: Actief
+ hidden: Verborgen
preferences:
- staleness_starts_after: Ophopen begint na %{days} dagen
open_id_url: Uw OpenID URL is
+ staleness_starts_after: Ophopen begint na %{days} dagen
change_identity_url: Verander uw Identity URL
page_title: "TRACKS:: Voorkeuren"
change_password: Wijzig uw wachtwoord
@@ -518,59 +523,59 @@ nl:
generate_new_token: Genereer een nieuwe token
sms_context_none: Geen
token_header: Uw token
- change_authentication_type: Verander uw authenticatietype
- authentication_header: Uw authenticatie
current_authentication_type: Uw authenticatietype is %{auth_type}
+ authentication_header: Uw authenticatie
+ change_authentication_type: Verander uw authenticatietype
generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken.
projects:
- no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project
default_tags_removed_notice: De standaard tags zijn verwijderd
- was_marked_hidden: is gemarkeerd als verborgen
default_context_set: Stel project standaard context in op %{default_context}
+ no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project
deferred_actions: Uitgestelde acties voor dit project
+ was_marked_hidden: is gemarkeerd als verborgen
edit_project_title: Bewerk project
- page_title: "TRACKS:: Project: %{project}"
hide_form: Verberg formulier
+ page_title: "TRACKS:: Project: %{project}"
+ no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project
deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project
+ this_project: Dit project
project_state: Project is %{state}.
show_form_title: Maak een nieuw project
to_new_project_page: Ga naar de nieuwe projectpagina
- this_project: Dit project
- no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project
- notes: Notities
todos_append: in dit project
+ notes: Notities
notes_empty: Er zijn geen notities voor dit project
no_projects: Momenteel zijn er geen projecten
hide_form_title: Verberg nieuw project formulier
- delete_project: Project verwijderen
- with_no_default_context: zonder standaard context
completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project
- actions_in_project_title: Acties in dit project
+ with_no_default_context: zonder standaard context
+ delete_project: Project verwijderen
with_default_context: met een standaard context '%{context_name}'
show_form: Toevoegen van een project
+ actions_in_project_title: Acties in dit project
delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen?
- with_default_tags: en met '%{tags}' als de standaard tags
+ list_projects: "TRACKS:: Overzicht van projecten"
+ add_project: Voeg project toe
set_default_tags_notice: Stel project standaard tags in op %{default_tags}
add_note: Een notitie toevoegen
+ is_active: is actief
project_saved_status: Project opgeslagen
settings: Instellingen
+ with_default_tags: en met '%{tags}' als de standaard tags
completed_projects: Voltooide projecten
- list_projects: "TRACKS:: Overzicht van projecten"
- is_active: is actief
- add_project: Voeg project toe
- delete_project_title: Verwijder het project
hidden_projects: Verborgen projecten
- default_context_removed: Standaard context verwijderd
- completed_actions: Afgeronde acties voor dit project
- add_note_submit: Notitie toevoegen
+ delete_project_title: Verwijder het project
was_marked_complete: is gemarkeerd als voltooid
- default_context: De standaard context voor dit project is %{context}
- status_project_name_changed: Naam van het project werd gewijzigd
- no_default_context: Dit project heeft geen standaard context
- with_no_default_tags: en zonder standaard tags
+ completed_actions: Afgeronde acties voor dit project
+ default_context_removed: Standaard context verwijderd
+ add_note_submit: Notitie toevoegen
edit_project_settings: Bewerk project instellingen
+ status_project_name_changed: Naam van het project werd gewijzigd
+ default_context: De standaard context voor dit project is %{context}
+ no_default_context: Dit project heeft geen standaard context
active_projects: Actieve projecten
state: Dit project is %{state}
+ with_no_default_tags: en zonder standaard tags
date:
month_names:
-
@@ -632,22 +637,6 @@ nl:
two_words_connector: en
select:
prompt: Selecteer
- footer:
- send_feedback: Stuur reactie op %{version}
- shared:
- multiple_next_actions: Meerdere acties (een op elke regel)
- toggle_single: Voeg een actie toe
- hide_form: Verberg formulier
- add_action: Actie toevoegen
- add_actions: Toevoegen acties
- tags_for_all_actions: Tags voor alle acties (scheiden met een komma)
- toggle_multi: Voeg meerdere acties toe
- toggle_single_title: Voeg een nieuwe actie toe
- project_for_all_actions: Project voor alle acties
- context_for_all_actions: Context voor alle acties
- separate_tags_with_commas: gescheiden door komma's
- toggle_multi_title: Toggle single / multi actie formulier
- hide_action_form_title: Verberg nieuwe actie formulier
dates:
month_names:
- Januari
@@ -670,6 +659,89 @@ nl:
- Donderdag
- Vrijdag
- Zaterdag
+ footer:
+ send_feedback: Stuur reactie op %{version}
+ shared:
+ multiple_next_actions: Meerdere acties (een op elke regel)
+ hide_form: Verberg formulier
+ toggle_single: Voeg een actie toe
+ add_action: Actie toevoegen
+ add_actions: Toevoegen acties
+ tags_for_all_actions: Tags voor alle acties (scheiden met een komma)
+ context_for_all_actions: Context voor alle acties
+ toggle_multi: Voeg meerdere acties toe
+ toggle_single_title: Voeg een nieuwe actie toe
+ project_for_all_actions: Project voor alle acties
+ separate_tags_with_commas: gescheiden door komma's
+ toggle_multi_title: Toggle single / multi actie formulier
+ hide_action_form_title: Verberg nieuwe actie formulier
+ users:
+ successfully_deleted_user: Succesvol gebruiker %{username} verwijderd
+ failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen
+ openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen.
+ destroy_successful: Gebruiker %{login} met succes verwijderd
+ auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}"
+ total_contexts: Totaal aantal contexten
+ first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:"
+ total_projects: Totaal aantal projecten
+ signup_successful: Aanmelding succesvol voor gebruiker %{username}.
+ new_token_generated: Nieuwe token met succes gegenereerd
+ change_password_submit: Wachtwoord wijzigen
+ no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen"
+ user_created: Gebruiker aangemaakt.
+ account_signup: Aanmelden voor een account
+ password_updated: Wachtwoord bijgewerkt.
+ manage_users: Beheren gebruikers
+ total_actions: Totaal aanal acties
+ signup: Aanmelden
+ desired_login: Gewenste login
+ confirm_password: Bevestig wachtwoord
+ new_user_heading: "Registreer een nieuwe gebruiker:"
+ auth_type_updated: Authenticatietype bijgewerkt.
+ change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen.
+ password_confirmation_label: Bevestig wachtwoord
+ destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}'
+ choose_password: Kies een wachtwoord
+ change_password_title: TRACKS::Wachtwoord wijzigen
+ change_auth_type_title: TRACKS::Wijzig authenticatietype
+ new_password_label: Nieuw wachtwoord
+ register_with_cas: Met uw CAS gebruikersnaam
+ label_auth_type: Authenticatietype
+ destroy_user: Verwijder de gebruiker
+ total_users_count: Je hebt een totaal van %{count} gebruikers
+ new_user_title: "TRACKS:: Aanmelden als de admin gebruiker"
+ signup_new_user: Registreer nieuwe gebruiker
+ destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?"
+ identity_url: Identiteit URL
+ change_authentication_type: Wijzigen authenticatietype
+ auth_change_submit: Wijzigen authenticatietype
+ openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren.
+ select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen.
+ total_notes: Totaal aantal notities
+ feedlist:
+ choose_context: Kies de context waar je een feed van wilt
+ actions_due_today: Acties die vandaag of eerder af moeten
+ ical_feed: iCal feed
+ all_contexts: Alle contexten
+ legend: Legenda
+ rss_feed: RSS Feed
+ all_projects: Alle projecten
+ choose_project: Kies het project waar je een feed van wilt
+ project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden"
+ select_feed_for_project: Kies de feed voor dit project
+ active_projects_wo_next: Actieve projecten zonder acties
+ active_starred_actions: Alle gesterde, actieve acties
+ projects_and_actions: Actieve projecten met hun acties
+ context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen"
+ select_feed_for_context: Kies de feed voor deze context
+ actions_due_next_week: Acties die binnen 7 dagen afgerond moeten
+ notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld."
+ all_actions: Alle acties
+ actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen
+ context_centric_actions: Feeds voor onafgeronde acties in een specifieke context
+ plain_text_feed: Reguliere tekst feed
+ last_fixed_number: Laatste %{number} acties
+ project_centric: Feeds voor onafgeronde acties in een specifiek project
sidebar:
list_name_active_contexts: Actieve contexten
list_name_active_projects: Actieve projecten
@@ -677,49 +749,6 @@ nl:
list_name_completed_projects: Voltooide projecten
list_name_hidden_projects: Verborgen projecten
list_name_hidden_contexts: Verborgen contexten
- users:
- openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen.
- destroy_successful: Gebruiker %{login} met succes verwijderd
- auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}"
- total_contexts: Totaal aantal contexten
- first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:"
- successfully_deleted_user: Succesvol gebruiker %{username} verwijderd
- failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen
- total_projects: Totaal aantal projecten
- signup_successful: Aanmelding succesvol voor gebruiker %{username}.
- new_token_generated: Nieuwe token met succes gegenereerd
- no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen"
- user_created: Gebruiker aangemaakt.
- change_password_submit: Wachtwoord wijzigen
- account_signup: Aanmelden voor een account
- password_updated: Wachtwoord bijgewerkt.
- manage_users: Beheren gebruikers
- signup: Aanmelden
- confirm_password: Bevestig wachtwoord
- new_user_heading: "Registreer een nieuwe gebruiker:"
- auth_type_updated: Authenticatietype bijgewerkt.
- total_actions: Totaal aanal acties
- desired_login: Gewenste login
- password_confirmation_label: Bevestig wachtwoord
- destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}'
- choose_password: Kies een wachtwoord
- change_password_title: TRACKS::Wachtwoord wijzigen
- change_auth_type_title: TRACKS::Wijzig authenticatietype
- change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen.
- label_auth_type: Authenticatietype
- new_password_label: Nieuw wachtwoord
- register_with_cas: Met uw CAS gebruikersnaam
- destroy_user: Verwijder de gebruiker
- total_users_count: Je hebt een totaal van %{count} gebruikers
- new_user_title: "TRACKS:: Aanmelden als de admin gebruiker"
- destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?"
- signup_new_user: Registreer nieuwe gebruiker
- change_authentication_type: Wijzigen authenticatietype
- identity_url: Identiteit URL
- auth_change_submit: Wijzigen authenticatietype
- openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren.
- total_notes: Totaal aantal notities
- select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen.
contexts:
delete_context_title: Verwijder context
hide_form: Verberg formulier
@@ -728,47 +757,23 @@ nl:
delete_context_confirmation: Weet u zeker dat u de context '%{name}' wilt verwijderen? Merk op dat dit ook alle (herhalende) acties in deze context zal verwijderen!
hide_form_title: "Verberg formulier voor nieuwe context "
edit_context: Bewerk context
+ context_hide: Verberg van de start pagina?
hidden_contexts: Verborgen contexten
no_contexts_active: Momenteel zijn er geen actieve contexten
- context_hide: Verberg van de start pagina?
+ add_context: Context toevoegen
visible_contexts: Zichtbare contexten
save_status_message: Context bewaard
show_form: Maak een nieuwe context
- add_context: Context toevoegen
- context_name: Context naam
update_status_message: Naam van de context was veranderd
+ context_name: Context naam
status_active: Context is actief
new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?"
+ last_completed_in_context: in deze context (laatste %{number})
context_deleted: De context '%{name}' is verwijderd
no_contexts_hidden: Momenteel zijn er geen verborgen contexten
new_context_pre: Nieuwe context '
no_actions: Momenteel zijn er geen onafgeronde acties in deze context
- last_completed_in_context: in deze context (laatste %{number})
status_hidden: Context is verborgen
- feedlist:
- actions_due_today: Acties die vandaag of eerder af moeten
- choose_context: Kies de context waar je een feed van wilt
- ical_feed: iCal feed
- all_contexts: Alle contexten
- rss_feed: RSS Feed
- legend: Legenda
- all_projects: Alle projecten
- choose_project: Kies het project waar je een feed van wilt
- project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden"
- select_feed_for_project: Kies de feed voor dit project
- active_projects_wo_next: Actieve projecten zonder acties
- active_starred_actions: Alle gesterde, actieve acties
- context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen"
- select_feed_for_context: Kies de feed voor deze context
- projects_and_actions: Actieve projecten met hun acties
- actions_due_next_week: Acties die binnen 7 dagen afgerond moeten
- notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld."
- context_centric_actions: Feeds voor onafgeronde acties in een specifieke context
- plain_text_feed: Reguliere tekst feed
- last_fixed_number: Laatste %{number} acties
- all_actions: Alle acties
- actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen
- project_centric: Feeds voor onafgeronde acties in een specifiek project
datetime:
prompts:
minute: Minuut
@@ -815,34 +820,34 @@ nl:
other: over %{count} jaren
half_a_minute: halve minuut
login:
- user_no_expiry: Blijf ingelogd
- login_cas: Ga naar het CAS
- sign_in: Meld aan
openid_identity_url_not_found: Sorry, geen gebruiker met die identiteit URL bestaat (%{identity_url})
+ login_cas: Ga naar het CAS
+ user_no_expiry: Blijf ingelogd
+ sign_in: Meld aan
+ cas_login: CAS Inloggen
successful_with_session_info: "Login succesvol:"
please_login: Log in om Tracks te gebruiken
cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd.
cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks.
- cas_login: CAS Inloggen
cas_username_not_found: Sorry, geen gebruiker met die CAS gebruikersnaam bestaat (%{username})
- mobile_use_openid: ... if inloggen met een OpenID
cas_create_account: Als u willen vragen ga hier om %{signup_link}
- account_login: Account login
+ mobile_use_openid: ... if inloggen met een OpenID
cas_signup_link: Aanvragen account
+ account_login: Account login
session_will_not_expire: sessie zal niet verlopen.
successful: Succesvol aangemeld. Welkom terug!
+ session_time_out: Sessie is verlopen. Gelieve %{link}
session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit.
option_separator: of,
- session_time_out: Sessie is verlopen. Gelieve %{link}
login_standard: Ga terug naar de standaard login
+ unsuccessful: Login mislukt.
log_in_again: opnieuw in te loggen.
logged_out: Je bent afgemeld bij Tracks.
login_with_openid: inloggen met een OpenID
- unsuccessful: Login mislukt.
search:
contexts_matching_query: Contexten passend bij zoekopdracht
tags_matching_query: Tags passend bij zoekopdracht
+ no_results: Uw zoekopdracht heeft geen resultaten opgeleverd.
todos_matching_query: Todos passend bij zoekopdracht
projects_matching_query: Projecten passend bij zoekopdracht
notes_matching_query: Notities passend bij zoekopdracht
- no_results: Uw zoekopdracht heeft geen resultaten opgeleverd.
diff --git a/features/calendar.feature b/features/calendar.feature
index 5343bc9c..ddc68106 100644
--- a/features/calendar.feature
+++ b/features/calendar.feature
@@ -10,7 +10,7 @@ Feature: Show all due actions in a calendar view
And I have logged in as "testuser" with password "secret"
And I have a context called "@calendar"
- @selenium
+ @selenium
Scenario: Setting due date of a todo will show it in the calendar
When I submit a new action with description "a new next action" in the context "@calendar"
And I go to the calendar page
@@ -22,7 +22,7 @@ Feature: Show all due actions in a calendar view
Then the badge should show 1
And I should see "a new next action"
- @selenium
+ @selenium
Scenario: Clearing the due date of a todo will remove it from the calendar
When I go to the home page
And I submit a new action with description "a new next action" in the context "@calendar"
@@ -32,7 +32,7 @@ Feature: Show all due actions in a calendar view
When I clear the due date of "a new next action"
Then I should not see "a new next action"
- @selenium
+ @selenium
Scenario: Marking a todo complete will remove it from the calendar
Given I have a todo "a new next action" in the context "@calendar" which is due tomorrow
When I go to the calendar page
diff --git a/features/context_list.feature b/features/context_list.feature
index a1c3afa8..3b864fef 100644
--- a/features/context_list.feature
+++ b/features/context_list.feature
@@ -9,6 +9,24 @@ Feature: Manage the list of contexts
| testuser | secret | false |
And I have logged in as "testuser" with password "secret"
+ Scenario: The list of contexts contain all contexts
+ Given I have the following contexts
+ | name | hide |
+ | @ipad | false |
+ | @home | false |
+ | @boss | false |
+ When I go to the contexts page
+ Then I should see "@ipad"
+ And I should see "@home"
+ And I should see "@boss"
+ And the badge should show 3
+
+ Scenario: Clicking on a project takes me to the context page
+ Given I have a context called "@computer"
+ When I go to the contexts page
+ And I follow "@computer"
+ Then I should be on the context page for "@computer"
+
@selenium
Scenario: Delete context from context page should update badge
Given I have a context called "@computer"
@@ -76,13 +94,20 @@ Feature: Manage the list of contexts
And I add a new active context "foo, bar"
Then I should see "Name cannot contain the comma"
- @selenium @wip
+ @selenium
Scenario: I can drag and drop to order the contexts
- # TODO: pending scenario
- Given this is a pending scenario
+ Given I have the following contexts
+ | name |
+ | @ipad |
+ | @home |
+ | @boss |
+ When I go to the contexts page
+ Then context "@ipad" should be above context "@home"
+ When I drag context "@ipad" below context "@home"
+ Then context "@home" should be above context "@ipad"
- @selenium @wip
- Scenario: Hiding and unhiding the new project form
+ @selenium
+ Scenario: Hiding and unhiding the new context form
When I go to the contexts page
Then the new context form should be visible
When I follow "Hide form"
diff --git a/features/dependencies.feature b/features/dependencies.feature
index b15f6377..591f345f 100644
--- a/features/dependencies.feature
+++ b/features/dependencies.feature
@@ -1,6 +1,6 @@
Feature: dependencies
As a Tracks user
- In order to keep track of complex todos
+ In order to keep track of complex todos that are dependent on each other
I want to assign and manage todo dependencies
Background:
@@ -94,3 +94,16 @@ Feature: dependencies
Scenario: Deleting a successor will update predecessor
Given this is a pending scenario
+
+ @selenium @wip
+ 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
+ | description | context | completed |
+ | test 1 | @pc | no |
+ | test 2 | @pc | no |
+ | test 3 | @pc | yes |
+ When I visit 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"
\ No newline at end of file
diff --git a/features/project_list.feature b/features/project_list.feature
index e682797b..862716cd 100644
--- a/features/project_list.feature
+++ b/features/project_list.feature
@@ -12,10 +12,11 @@ Feature: Manage the list of projects
And there exists a project "a project name starting with a" for user "testuser"
And I have logged in as "testuser" with password "secret"
- Scenario: The list of project contain all projects
+ Scenario: The list of projects contain all projects
When I go to the projects page
Then I should see "manage me"
And I should see "upgrade jquery"
+ And I should see "a project name starting with a"
And the badge should show 3
Scenario: Clicking on a project takes me to the project page
diff --git a/features/step_definitions/context_list_steps.rb b/features/step_definitions/context_list_steps.rb
index e808ceac..e7906782 100644
--- a/features/step_definitions/context_list_steps.rb
+++ b/features/step_definitions/context_list_steps.rb
@@ -42,6 +42,31 @@ When /^I add a new hidden context "([^"]*)"$/ do |context_name|
submit_new_context_form
end
+Then /^context "([^"]*)" should be above context "([^"]*)"$/ do |context_high, context_low|
+ high_id = @current_user.contexts.find_by_name(context_high).id
+ low_id = @current_user.contexts.find_by_name(context_low).id
+ high_pos = selenium.get_element_position_top("//div[@id='context_#{high_id}']").to_i
+ low_pos = selenium.get_element_position_top("//div[@id='context_#{low_id}']").to_i
+ (high_pos < low_pos).should be_true
+end
+
+When /^I drag context "([^"]*)" below context "([^"]*)"$/ do |context_drag, context_drop|
+ drag_id = @current_user.contexts.find_by_name(context_drag).id
+ drop_id = @current_user.contexts.find_by_name(context_drop).id
+
+ container_height = selenium.get_element_height("//div[@id='container_context_#{drag_id}']").to_i
+ vertical_offset = container_height*2
+ coord_string = "10,#{vertical_offset}"
+
+ drag_context_handle_xpath = "//div[@id='context_#{drag_id}']//span[@class='handle']"
+ drop_context_container_xpath = "//div[@id='container_context_#{drop_id}']"
+
+ selenium.mouse_down_at(drag_context_handle_xpath,"2,2")
+ selenium.mouse_move_at(drop_context_container_xpath,coord_string)
+ # no need to simulate mouse_over for this test
+ selenium.mouse_up_at(drop_context_container_xpath,coord_string)
+end
+
Then /^I should see that a context named "([^"]*)" is not present$/ do |context_name|
Then "I should not see \"#{context_name}\""
end
@@ -60,6 +85,14 @@ Then /^I should see the context "([^"]*)" under "([^"]*)"$/ do |context_name, st
response.should have_xpath("//div[@id='list-contexts-#{state}']//div[@id='context_#{context.id}']")
end
+Then /^the new context form should be visible$/ do
+ selenium.is_visible("context_new").should be_true
+end
+
+Then /^the new context form should not be visible$/ do
+ selenium.is_visible("context_new").should be_false
+end
+
Then /^the context list badge for ([^"]*) contexts should show (\d+)$/ do |state_name, count|
selenium.get_text("xpath=//span[@id='#{state_name}-contexts-count']").should == count
end
diff --git a/features/step_definitions/context_steps.rb b/features/step_definitions/context_steps.rb
index 5a7dfbfa..40a8b3ba 100644
--- a/features/step_definitions/context_steps.rb
+++ b/features/step_definitions/context_steps.rb
@@ -47,7 +47,11 @@ end
Given /^I have the following contexts$/ do |table|
Context.delete_all
table.hashes.each do |hash|
- context = Factory(:context, hash)
+ context = @current_user.contexts.create!(:name => hash[:name])
+ unless hash[:hide].blank?
+ context.hide = hash[:hide] == true
+ context.save!
+ end
end
end
diff --git a/features/step_definitions/dependencies_steps.rb b/features/step_definitions/dependencies_steps.rb
index 26833079..5de5cde4 100644
--- a/features/step_definitions/dependencies_steps.rb
+++ b/features/step_definitions/dependencies_steps.rb
@@ -15,8 +15,7 @@ When /^I drag "(.*)" to "(.*)"$/ do |dragged, target|
selenium.drag_and_drop_to_object(drag_name, drop_name)
- arrow = "xpath=//div[@id='line_todo_#{drop_id}']/div/a[@class='show_successors']/img"
- selenium.wait_for_element(arrow, :timeout_in_seconds => 5)
+ wait_for_ajax
end
When /^I expand the dependencies of "([^\"]*)"$/ do |todo_name|
diff --git a/features/step_definitions/generic_steps.rb b/features/step_definitions/generic_steps.rb
index c21113a5..be22dcdc 100644
--- a/features/step_definitions/generic_steps.rb
+++ b/features/step_definitions/generic_steps.rb
@@ -34,3 +34,34 @@ Then /^I should not see the context "([^"]*)"$/ do |context_name|
!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
+
diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb
index 776d6374..acedd92c 100644
--- a/features/step_definitions/todo_steps.rb
+++ b/features/step_definitions/todo_steps.rb
@@ -65,6 +65,9 @@ Given /^I have a project "([^"]*)" that has the following todos$/ do |project_na
unless todo[:tags].nil?
new_todo.tag_with(todo[:tags])
end
+ unless todo[:completed].nil?
+ new_todo.complete! if todo[:completed] == 'yes'
+ end
end
end
@@ -291,10 +294,10 @@ Then /^I should see "([^"]*)" in the due next month container$/ do |todo_descrip
todo = @current_user.todos.find_by_description(todo_description)
todo.should_not be_nil
- xpath = "xpath=//div[@id='due_after_this_month']//div[@id='line_todo_#{todo.id}']"
+ xpath = "//div[@id='due_after_this_month']//div[@id='line_todo_#{todo.id}']"
wait_for :timeout => 5 do
- !selenium.is_element_present(xpath)
+ selenium.is_element_present(xpath)
end
end
diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index d964d8f7..592909ec 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -171,7 +171,7 @@ var TracksPages = {
Nifty("div#project_new_project_container","normal");
},
page_notify: function(type, message, fade_duration_in_sec) {
- var flash = $('h4#flash');
+ var flash = $('div#message_holder');
flash.html("
"+message+"
");
flash = $('h4#flash');
flash.show();
@@ -228,6 +228,33 @@ var TracksPages = {
selectFirst: true
});
},
+ setup_all_autocompleters: function() {
+ //fix for #1036 where closing a edit form before the autocomplete was filled
+ //resulted in a dropdown box that could not be removed. We remove all
+ //autocomplete boxes the hard way
+ $('.ac_results').remove();
+
+ // initialize autocompleters
+ ProjectItems.setup_autocomplete_for_projects('input[name=project_name]');
+ ContextItems.setup_autocomplete_for_contexts('input[name=context_name]');
+ ContextItems.setup_autocomplete_for_contexts('input[id="project_default_context_name"]');
+ TracksPages.setup_autocomplete_for_tag_list('input[name=tag_list]');
+ TracksPages.setup_autocomplete_for_tag_list('input[id="project_default_tags"]');
+ TodoItems.setup_autocomplete_for_predecessor();
+ },
+ setup_datepicker: function() {
+ $('input.Date').datepicker({
+ 'dateFormat': dateFormat,
+ 'firstDay': weekStart,
+ 'showButtonPanel': true,
+ 'showWeek': true,
+ 'changeMonth': true,
+ 'changeYear': true,
+ 'maxDate': '+5y',
+ 'minDate': '-1y',
+ 'showAnim': '' /* leave empty, see #1117 */
+ });
+ },
setup_behavior: function () {
/* main menu */
$('ul.sf-menu').superfish({
@@ -436,6 +463,53 @@ var TodoItems = {
selectFirst: true
});
},
+ drag_todo: function() {
+ $('.drop_target').show();
+ $(this).parents(".container").find(".context_target").hide();
+ },
+ drop_todo: function(evt, ui) {
+ /* Drag & Drop for successor/predecessor */
+ var dragged_todo = ui.draggable[0].id.split('_')[2];
+ var dropped_todo = this.id.split('_')[2];
+ ui.draggable.remove();
+ $('.drop_target').hide(); // IE8 doesn't call stop() in this situation
+
+ ajax_options = default_ajax_options_for_scripts('POST', relative_to_root('todos/add_predecessor'), $(this));
+ ajax_options.data += "&predecessor="+dropped_todo + "&successor="+dragged_todo
+ $.ajax(ajax_options);
+ },
+ drop_todo_on_context: function(evt, ui) {
+ /* Drag & drop for changing contexts */
+ var target = $(this).parent().get();
+ var dragged_todo = ui.draggable[0].id.split('_')[2];
+ var context_id = this.id.split('_')[1];
+ ui.draggable.remove();
+ $('.drop_target').hide();
+
+ ajax_options = default_ajax_options_for_scripts('POST', relative_to_root('todos/change_context'), target);
+ ajax_options.data += "&todo[id]="+dragged_todo + "&todo[context_id]="+context_id
+ $.ajax(ajax_options);
+ },
+ setup_drag_and_drop: function() {
+ $('.item-show').draggable({
+ handle: '.grip',
+ revert: 'invalid',
+ start: TodoItems.drag_todo,
+ stop: function() {
+ $('.drop_target').hide();
+ }
+ });
+ $('.item-show').droppable({
+ drop: TodoItems.drop_todo,
+ tolerance: 'pointer',
+ hoverClass: 'hover'
+ });
+ $('.context_target').droppable({
+ drop: TodoItems.drop_todo_on_context,
+ tolerance: 'pointer',
+ hoverClass: 'hover'
+ });
+ },
setup_behavior: function() {
/* show the notes of a todo */
$(".show_notes").live('click', function () {
@@ -968,21 +1042,21 @@ function default_ajax_options_for_submit(ajax_type, element_to_block) {
var options = {
type: ajax_type,
async: true,
- context: element_to_block,
+ block_element: element_to_block,
data: "_source_view=" + SOURCE_VIEW,
beforeSend: function() {
- // console.debug('data: '+this.data);
- if (this.context) {
- $(this.context).block({
+ if (this.block_element) {
+ $(this.block_element).block({
message: null
});
}
},
complete: [function() {
- if (this.context) {
- $(this.context).unblock();
+ if (this.block_element) {
+ $(this.block_element).unblock();
}
- enable_rich_interaction();
+ // delay a bit to wait for animations to finish
+ setTimeout(function(){enable_rich_interaction();}, 500);
}],
error: function(req, status) {
TracksPages.page_notify('error', i18n['common.ajaxError']+': '+status, 8);
@@ -1098,30 +1172,9 @@ function project_defaults(){
function enable_rich_interaction(){
// called after completion of all AJAX calls
- //fix for #1036 where closing a edit form before the autocomplete was filled
- //resulted in a dropdown box that could not be removed. We remove all
- //autocomplete boxes the hard way
- $('.ac_results').remove();
-
- $('input.Date').datepicker({
- 'dateFormat': dateFormat,
- 'firstDay': weekStart,
- 'showButtonPanel': true,
- 'showWeek': true,
- 'changeMonth': true,
- 'changeYear': true,
- 'maxDate': '+5y',
- 'minDate': '-1y',
- 'showAnim': '' /* leave empty, see #1117 */
- });
-
- /* Autocomplete */
- ProjectItems.setup_autocomplete_for_projects('input[name=project_name]');
- ContextItems.setup_autocomplete_for_contexts('input[name=context_name]');
- ContextItems.setup_autocomplete_for_contexts('input[id="project_default_context_name"]');
- TracksPages.setup_autocomplete_for_tag_list('input[name=tag_list]');
- TracksPages.setup_autocomplete_for_tag_list('input[id="project_default_tags"]');
- TodoItems.setup_autocomplete_for_predecessor();
+ TracksPages.setup_datepicker();
+ TracksPages.setup_all_autocompleters();
+ TodoItems.setup_drag_and_drop();
/* have to bind on keypress because of limitations of live() */
$('input[name=project_name]').live('keypress', function(){
@@ -1134,72 +1187,11 @@ function enable_rich_interaction(){
$(this).attr('edited', 'true');
});
- /* Drag & Drop for successor/predecessor */
- function drop_todo(evt, ui) {
- var dragged_todo = ui.draggable[0].id.split('_')[2];
- var dropped_todo = this.id.split('_')[2];
- ui.draggable.remove();
- $('.drop_target').hide(); // IE8 doesn't call stop() in this situation
-
- ajax_options = default_ajax_options_for_scripts('POST', relative_to_root('todos/add_predecessor'), $(this));
- ajax_options.data += "&predecessor="+dropped_todo + "&successor="+dragged_todo
- $.ajax(ajax_options);
- }
-
- function drag_todo(){
- $('.drop_target').show();
- $(this).parents(".container").find(".context_target").hide();
- }
-
- $('.item-show').draggable({
- handle: '.grip',
- revert: 'invalid',
- start: drag_todo,
- stop: function() {
- $('.drop_target').hide();
- }
- });
-
- $('.item-show').droppable({
- drop: drop_todo,
- tolerance: 'pointer',
- hoverClass: 'hover'
- });
-
- /* Drag & drop for changing contexts */
- function drop_todo_on_context(evt, ui) {
- var target = $(this);
- var dragged_todo = ui.draggable[0].id.split('_')[2];
- var context_id = this.id.split('_')[1];
- ui.draggable.remove();
- target.block({
- message: null
- });
- setTimeout(function() {
- target.show()
- }, 0);
- $.post(relative_to_root('todos/change_context'),
- {
- "todo[id]": dragged_todo,
- "todo[context_id]": context_id
- },
- function(){
- target.unblock();
- target.hide();
- }, 'script');
- }
-
- $('.context_target').droppable({
- drop: drop_todo_on_context,
- tolerance: 'pointer',
- hoverClass: 'hover'
- });
-
/* Reset auto updater */
field_touched = false;
/* shrink the notes on the project pages. This is not live(), so this needs
- * to be run after ajax adding of a new note */
+ * to be run after ajax adding of a new note */
$('.note_wrapper').truncate({
max_length: 90,
more: '',
diff --git a/public/javascripts/jquery-ui-1.8.10.custom.min.js b/public/javascripts/jquery-ui-1.8.11.custom.min.js
similarity index 74%
rename from public/javascripts/jquery-ui-1.8.10.custom.min.js
rename to public/javascripts/jquery-ui-1.8.11.custom.min.js
index 7d4ff1ce..f8709e0f 100644
--- a/public/javascripts/jquery-ui-1.8.10.custom.min.js
+++ b/public/javascripts/jquery-ui-1.8.11.custom.min.js
@@ -1,5 +1,5 @@
/*!
- * jQuery UI 1.8.10
+ * jQuery UI 1.8.11
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -7,7 +7,7 @@
*
* http://docs.jquery.com/UI
*/
-(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.10",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
+(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
@@ -16,7 +16,7 @@ d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c
c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);
-return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent",
-true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
+(function(b){b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
+a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,e=a.which==1,f=typeof this.options.cancel=="string"?b(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
+this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(d){return c._mouseMove(d)};this._mouseUpDelegate=function(d){return c._mouseUp(d)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=
+true}},_mouseMove:function(a){if(b.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);
+if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
;/*
- * jQuery UI Position 1.8.10
+ * jQuery UI Position 1.8.11
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -64,7 +64,7 @@ d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a)
a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
;/*
- * jQuery UI Draggable 1.8.10
+ * jQuery UI Draggable 1.8.11
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -87,34 +87,34 @@ this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this
a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
-"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?
-0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
-10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==
-Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
-f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;
-if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/
-b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left