diff --git a/app/controllers/contexts_controller.rb b/app/controllers/contexts_controller.rb index cf46a942..7d8a14ea 100644 --- a/app/controllers/contexts_controller.rb +++ b/app/controllers/contexts_controller.rb @@ -11,7 +11,7 @@ class ContextsController < ApplicationController def index # #true is passed here to force an immediate load so that size and empty? # checks later don't result in separate SQL queries - @active_contexts = current_user.contexts.active(true) + @active_contexts = current_user.contexts.active(true) @hidden_contexts = current_user.contexts.hidden(true) @new_context = current_user.contexts.build @@ -34,7 +34,7 @@ class ContextsController < ApplicationController format.autocomplete { render :text => for_autocomplete(@active_contexts + @hidden_contexts, params[:term])} end end - + def show @contexts = current_user.contexts(true) if @context.nil? @@ -51,7 +51,7 @@ class ContextsController < ApplicationController end end end - + # Example XML usage: curl -H 'Accept: application/xml' -H 'Content-Type: # application/xml' # -u username:password @@ -86,14 +86,14 @@ class ContextsController < ApplicationController end end end - + # Edit the details of the context # def update params['context'] ||= {} success_text = if params['field'] == 'name' && params['value'] - params['context']['id'] = params['id'] - params['context']['name'] = params['value'] + params['context']['id'] = params['id'] + params['context']['name'] = params['value'] end @original_context_hidden = @context.hidden? @@ -110,7 +110,7 @@ class ContextsController < ApplicationController end # TODO is this param ever used? is this dead code? - + elsif boolean_param('update_context_name') @contexts = current_user.projects render :template => 'contexts/update_context_name.js.rjs' @@ -120,10 +120,10 @@ class ContextsController < ApplicationController end else respond_to do |format| - format.js + format.js format.xml { if @saved - render :xml => @context.to_xml( :except => :user_id ) + render :xml => @context.to_xml( :except => :user_id ) else render :text => "Error on update: #{@context.errors.full_messages.inject("") {|v, e| v + e + " " }}", :status => 409 end @@ -145,7 +145,7 @@ class ContextsController < ApplicationController def destroy # make sure the deleted recurring patterns are removed from associated todos @context.recurring_todos.each { |rt| rt.clear_todos_association } unless @context.recurring_todos.nil? - + @context.destroy respond_to do |format| format.js do @@ -166,26 +166,28 @@ class ContextsController < ApplicationController notify :error, $! redirect_to :action => 'index' end - + def done_todos @source_view = 'context' - @page_title = t('context.completed_tasks_title') - - completed_todos = current_user.contexts.find(params[:id]).todos.completed + @context = current_user.contexts.find(params[:id]) + @page_title = t('contexts.completed_tasks_title', :context_name => @context.name) + + completed_todos = @context.todos.completed @done_today = get_done_today(completed_todos) @done_this_week = get_done_this_week(completed_todos) @done_this_month = get_done_this_month(completed_todos) @count = @done_today.size + @done_this_week.size + @done_this_month.size - + render :template => 'todos/done' end - + def all_done_todos @source_view = 'context' - @page_title = t('context.completed_tasks_title') + @context = current_user.contexts.find(params[:id]) + @page_title = t('contexts.all_completed_tasks_title', :context_name => @context.name) - @done = current_user.contexts.find(params[:id]).todos.completed.paginate :page => params[:page], :per_page => 20, :order => 'completed_at DESC', :include => Todo::DEFAULT_INCLUDES + @done = @context.todos.completed.paginate :page => params[:page], :per_page => 20, :order => 'completed_at DESC', :include => Todo::DEFAULT_INCLUDES @count = @done.size render :template => 'todos/all_done' end @@ -209,23 +211,23 @@ class ContextsController < ApplicationController render end end - + def render_contexts_mobile lambda do @page_title = "TRACKS::List Contexts" @active_contexts = current_user.contexts.active @hidden_contexts = current_user.contexts.hidden - @down_count = @active_contexts.size + @hidden_contexts.size + @down_count = @active_contexts.size + @hidden_contexts.size cookies[:mobile_url]= {:value => request.request_uri, :secure => SITE_CONFIG['secure_cookies']} render :action => 'index_mobile' end end - + def render_context_mobile lambda do @page_title = "TRACKS::List actions in "+@context.name - @not_done = @not_done_todos.select {|t| t.context_id == @context.id } - @down_count = @not_done.size + @not_done = @not_done_todos.select {|t| t.context_id == @context.id } + @down_count = @not_done.size cookies[:mobile_url]= {:value => request.request_uri, :secure => SITE_CONFIG['secure_cookies']} @mobile_from_context = @context.id render :action => 'mobile_show_context' @@ -246,7 +248,7 @@ class ContextsController < ApplicationController :author => lambda { |c| nil } } end end - + def feed_options Context.feed_options(current_user) end @@ -256,7 +258,7 @@ class ContextsController < ApplicationController rescue @context = nil end - + def init @source_view = params['_source_view'] || 'context' init_data_for_sidebar @@ -270,13 +272,13 @@ class ContextsController < ApplicationController end @max_completed = current_user.prefs.show_number_completed - + # @not_done_todos = @context.not_done_todos TODO: Temporarily doing this # search manually until I can work out a way to do the same thing using # not_done_todos acts_as_todo_container method Hides actions in hidden # projects from context. @not_done_todos = @context.todos.active( - :order => "todos.due IS NULL, todos.due ASC, todos.created_at ASC", + :order => "todos.due IS NULL, todos.due ASC, todos.created_at ASC", :include => Todo::DEFAULT_INCLUDES) @projects = current_user.projects diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index a81d72ad..5f681aa4 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -12,7 +12,7 @@ class ProjectsController < ApplicationController @new_project = current_user.projects.build if params[:projects_and_actions] projects_and_actions - else + else @contexts = current_user.contexts.all init_not_done_counts(['project']) init_project_hidden_todo_counts(['project']) @@ -32,18 +32,18 @@ class ProjectsController < ApplicationController end end end - + def done @source_view = params['_source_view'] || 'project_list' @page_title = t('projects.list_completed_projects') - + page = params[:page] || 1 projects_per_page = 20 @projects = current_user.projects.completed.paginate :page => page, :per_page => projects_per_page @count = @projects.count @total = current_user.projects.completed.count @no_projects = @projects.empty? - + @range_low = (page.to_i-1) * projects_per_page + 1 @range_high = @range_low + @projects.size - 1 @@ -54,7 +54,7 @@ class ProjectsController < ApplicationController def projects_and_actions @projects = current_user.projects.active respond_to do |format| - format.text { + format.text { render :action => 'index_text_projects_and_actions', :layout => false, :content_type => Mime::TEXT } end @@ -64,7 +64,7 @@ class ProjectsController < ApplicationController @max_completed = current_user.prefs.show_number_completed init_data_for_sidebar unless mobile? @page_title = t('projects.page_title', :project => @project.name) - + @not_done = @project.todos.active_or_hidden(:include => Todo::DEFAULT_INCLUDES) @deferred = @project.todos.deferred(:include => Todo::DEFAULT_INCLUDES) @pending = @project.todos.pending(:include => Todo::DEFAULT_INCLUDES) @@ -85,7 +85,7 @@ class ProjectsController < ApplicationController format.xml { render :xml => @project.to_xml( :except => :user_id ) } end end - + # Example XML usage: curl -H 'Accept: application/xml' -H 'Content-Type: # application/xml' # -u username:password @@ -138,8 +138,8 @@ class ProjectsController < ApplicationController params['project'].delete('state') end success_text = if params['field'] == 'name' && params['value'] - params['project']['id'] = params['id'] - params['project']['name'] = params['value'] + params['project']['id'] = params['id'] + params['project']['name'] = params['value'] end @project.attributes = params['project'] @@ -165,7 +165,7 @@ class ProjectsController < ApplicationController elsif boolean_param('update_status') template = 'projects/update_status.js.rjs' elsif boolean_param('update_default_context') - @initial_context_name = @project.default_context.name + @initial_context_name = @project.default_context.name template = 'projects/update_default_context.js.rjs' elsif boolean_param('update_default_tags') template = 'projects/update_default_tags.js.rjs' @@ -184,23 +184,23 @@ class ProjectsController < ApplicationController respond_to do |format| format.js { render :template => template } format.html { redirect_to :action => 'index'} - format.xml { + format.xml { if @saved - render :xml => @project.to_xml( :except => :user_id ) + render :xml => @project.to_xml( :except => :user_id ) else render :text => "Error on update: #{@project.errors.full_messages.inject("") {|v, e| v + e + " " }}", :status => 409 end } end - + end - + def edit respond_to do |format| format.js end end - + def destroy @project.recurring_todos.each {|rt| rt.remove_from_project!} @project.destroy @@ -213,7 +213,7 @@ class ProjectsController < ApplicationController format.xml { render :text => "Deleted project #{@project.name}" } end end - + def order project_ids = params["container_project"] @projects = current_user.projects.update_positions( project_ids ) @@ -222,44 +222,46 @@ class ProjectsController < ApplicationController notify :error, $! redirect_to :action => 'index' end - + def alphabetize @state = params['state'] @projects = current_user.projects.alphabetize(:state => @state) if @state @contexts = current_user.contexts init_not_done_counts(['project']) end - + def actionize @state = params['state'] @projects = current_user.projects.actionize(:state => @state) if @state @contexts = current_user.contexts init_not_done_counts(['project']) end - + def done_todos @source_view = 'project' - @page_title = t('project.completed_tasks_title') - - completed_todos = current_user.projects.find(params[:id]).todos.completed + @project = current_user.projects.find(params[:id]) + @page_title = t('projects.completed_tasks_title', :project_name => @project.name) + + completed_todos = @project.todos.completed @done_today = get_done_today(completed_todos) @done_this_week = get_done_this_week(completed_todos) @done_this_month = get_done_this_month(completed_todos) @count = @done_today.size + @done_this_week.size + @done_this_month.size - + render :template => 'todos/done' end - + def all_done_todos @source_view = 'project' - @page_title = t('project.completed_tasks_title') + @project = current_user.projects.find(params[:id]) + @page_title = t('projects.all_completed_tasks_title', :project_name => @project.name) - @done = current_user.projects.find(params[:id]).todos.completed.paginate :page => params[:page], :per_page => 20, :order => 'completed_at DESC', :include => Todo::DEFAULT_INCLUDES + @done = @project.todos.completed.paginate :page => params[:page], :per_page => 20, :order => 'completed_at DESC', :include => Todo::DEFAULT_INCLUDES @count = @done.size render :template => 'todos/all_done' end - + protected def update_state_counts @@ -291,12 +293,12 @@ class ProjectsController < ApplicationController @active_projects = current_user.projects.active @hidden_projects = current_user.projects.hidden @completed_projects = current_user.projects.completed - @down_count = @active_projects.size + @hidden_projects.size + @completed_projects.size + @down_count = @active_projects.size + @hidden_projects.size + @completed_projects.size cookies[:mobile_url]= {:value => request.request_uri, :secure => SITE_CONFIG['secure_cookies']} render :action => 'index_mobile' end end - + def render_project_mobile lambda do if @project.default_context.nil? @@ -326,7 +328,7 @@ class ProjectsController < ApplicationController :author => lambda { |p| nil } } end end - + def feed_options Project.feed_options(current_user) end @@ -336,15 +338,15 @@ class ProjectsController < ApplicationController render :action => 'index', :layout => false, :content_type => Mime::TEXT end end - + def set_project_from_params @project = current_user.projects.find_by_params(params) end - + def set_source_view @source_view = params['_source_view'] || 'project' end - + def default_context_filter p = params['project'] p = params['request']['project'] if p.nil? && params['request'] diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 72179169..97a15a49 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -22,7 +22,7 @@ class TodosController < ApplicationController @contexts = current_user.contexts.find(:all) @contexts_to_show = current_user.contexts.active - + respond_to do |format| format.html &render_todos_html format.m &render_todos_mobile @@ -33,7 +33,7 @@ class TodosController < ApplicationController format.ics &render_ical_feed end end - + def new @projects = current_user.projects.active @contexts = current_user.contexts.find(:all) @@ -47,16 +47,16 @@ class TodosController < ApplicationController # we have a project but not a context -> use the default context @mobile_from_context = @mobile_from_project.default_context end - render :action => "new" + render :action => "new" } end end - + def create @source_view = params['_source_view'] || 'todo' @default_context = current_user.contexts.find_by_name(params['default_context_name']) @default_project = current_user.projects.find_by_name(params['default_project_name']) unless params['default_project_name'].blank? - + @tag_name = params['_tag_name'] is_multiple = params[:todo] && params[:todo][:multiple_todos] && !params[:todo][:multiple_todos].nil? @@ -67,7 +67,7 @@ class TodosController < ApplicationController p.parse_dates() unless mobile? tag_list = p.tag_list predecessor_list = p.predecessor_list - + @todo = current_user.todos.build(p.attributes) if p.project_specified_by_name? @@ -75,7 +75,7 @@ class TodosController < ApplicationController @new_project_created = project.new_record_before_save? @todo.project_id = project.id end - + if p.context_specified_by_name? context = current_user.contexts.find_or_create_by_name(p.context_name) @new_context_created = context.new_record_before_save? @@ -210,7 +210,7 @@ class TodosController < ApplicationController end end end - + def edit @todo = current_user.todos.find(params['id'], :include => Todo::DEFAULT_INCLUDES) @source_view = params['_source_view'] || 'todo' @@ -219,7 +219,7 @@ class TodosController < ApplicationController format.js end end - + def show @todo = current_user.todos.find(params['id']) respond_to do |format| @@ -233,7 +233,7 @@ class TodosController < ApplicationController format.xml { render :xml => @todo.to_xml( :root => 'todo', :except => :user_id ) } end end - + def add_predecessor @source_view = params['_source_view'] || 'todo' @predecessor = current_user.todos.find(params['predecessor']) @@ -251,7 +251,7 @@ class TodosController < ApplicationController @saved = false end respond_to do |format| - format.js + format.js end end @@ -278,18 +278,18 @@ class TodosController < ApplicationController @original_item_context_id = @todo.context_id @original_item_project_id = @todo.project_id @saved = @todo.toggle_completion! - + # check if this todo has a related recurring_todo. If so, create next todo @new_recurring_todo = check_for_next_todo(@todo) if @saved - + if @saved if @todo.completed? - @pending_to_activate = @todo.activate_pending_todos + @pending_to_activate = @todo.activate_pending_todos else @active_to_block = @todo.block_successors end end - + respond_to do |format| format.js do if @saved @@ -318,7 +318,7 @@ class TodosController < ApplicationController end end end - + def toggle_star @todo = current_user.todos.find(params['id']) @todo.toggle_star! @@ -357,18 +357,18 @@ class TodosController < ApplicationController cache_attributes_from_before_update update_tags - update_project - update_context + update_project + update_context update_due_and_show_from_dates update_completed_state update_dependencies update_attributes_of_todo - + @saved = @todo.save # this is set after save and cleared after reload, so save it here @removed_predecessors = @todo.removed_predecessors - + @todo.reload # refresh context and project object too (not only their id's) update_dependency_state @@ -401,7 +401,7 @@ class TodosController < ApplicationController end end end - + def destroy @source_view = params['_source_view'] || 'todo' @todo = current_user.todos.find(params['id']) @@ -428,9 +428,9 @@ class TodosController < ApplicationController # check if this todo has a related recurring_todo. If so, create next todo @new_recurring_todo = check_for_next_todo(@todo) if @saved - + respond_to do |format| - + format.html do if @saved message = t('todos.action_deleted_success') @@ -444,7 +444,7 @@ class TodosController < ApplicationController redirect_to :action => 'index' end end - + format.js do if @saved determine_down_count @@ -457,16 +457,16 @@ class TodosController < ApplicationController end render end - + format.xml { render :text => '200 OK. Action deleted.', :status => 200 } - + end end def done @source_view = 'done' @page_title = t('todos.completed_tasks_title') - + completed_todos = current_user.todos.completed @done_today = get_done_today(completed_todos) @@ -474,7 +474,7 @@ class TodosController < ApplicationController @done_this_month = get_done_this_month(completed_todos) @count = @done_today.size + @done_this_week.size + @done_this_month.size end - + def all_done @source_view = 'done' @page_title = t('todos.completed_tasks_title') @@ -482,25 +482,25 @@ class TodosController < ApplicationController @done = current_user.todos.completed.paginate :page => params[:page], :per_page => 20, :order => 'completed_at DESC', :include => Todo::DEFAULT_INCLUDES @count = @done.size end - + def list_deferred @source_view = 'deferred' @page_title = t('todos.deferred_tasks_title') - + @contexts_to_show = @contexts = current_user.contexts.find(:all) - + includes = params[:format]=='xml' ? [:context, :project] : Todo::DEFAULT_INCLUDES - + @not_done_todos = current_user.todos.deferred(:include => includes) + current_user.todos.pending(:include => includes) @down_count = @count = @not_done_todos.size - + respond_to do |format| format.html format.m { render :action => 'mobile_list_deferred' } format.xml { render :xml => @not_done_todos.to_xml( :except => :user_id ) } end end - + # Check for any due tickler items, activate them Called by # periodically_call_remote def check_deferred @@ -510,46 +510,47 @@ class TodosController < ApplicationController format.js end end - + def filter_to_context context = current_user.contexts.find(params['context']['id']) redirect_to context_todos_path(context, :format => 'm') end - + def filter_to_project project = current_user.projects.find(params['project']['id']) redirect_to project_todos_path(project, :format => 'm') end - + # /todos/tag/[tag_name] shows all the actions tagged with tag_name def tag init_data_for_sidebar unless mobile? @source_view = params['_source_view'] || 'tag' @tag_name = sanitize(params[:name]) # sanitize to prevent XSS vunerability! @page_title = t('todos.tagged_page_title', :tag_name => @tag_name) - + # mobile tags are routed with :name ending on .m. So we need to chomp it @tag_name = @tag_name.chomp('.m') if mobile? - + @tag = Tag.find_by_name(@tag_name) @tag = Tag.new(:name => @tag_name) if @tag.nil? - + @not_done_todos = current_user.todos.with_tag(@tag).active.not_hidden.find(:all, - :order => 'todos.due IS NULL, todos.due ASC, todos.created_at ASC', :include => [:context]) + :order => 'todos.due IS NULL, todos.due ASC, todos.created_at ASC', :include => Todo::DEFAULT_INCLUDES) @hidden_todos = current_user.todos.with_tag(@tag).hidden.find(:all, - :include => [:taggings, :tags, :context], + :include => Todo::DEFAULT_INCLUDES, :order => 'todos.completed_at DESC, todos.created_at DESC') @deferred = current_user.todos.with_tag(@tag).deferred.find(:all, - :order => 'show_from ASC, todos.created_at DESC', :include => [:context]) + :order => 'show_from ASC, todos.created_at DESC', :include => Todo::DEFAULT_INCLUDES) @pending = current_user.todos.with_tag(@tag).blocked.find(:all, - :order => 'show_from ASC, todos.created_at DESC', :include => [:context]) - + :order => 'show_from ASC, todos.created_at DESC', :include => Todo::DEFAULT_INCLUDES) + # If you've set no_completed to zero, the completed items box isn't shown on # the tag page max_completed = current_user.prefs.show_number_completed @done = current_user.todos.with_tag(@tag).completed.find(:all, :limit => max_completed, - :order => 'todos.completed_at DESC') + :order => 'todos.completed_at DESC', + :include => Todo::DEFAULT_INCLUDES) @projects = current_user.projects @contexts = current_user.contexts @@ -560,7 +561,7 @@ class TodosController < ApplicationController unless @not_done_todos.empty? @context = current_user.contexts.find_by_id(@not_done_todos[0].context_id) end - + # Set count badge to number of items with this tag @not_done_todos.empty? ? @count = 0 : @count = @not_done_todos.size @down_count = @count @@ -574,13 +575,42 @@ class TodosController < ApplicationController end end + def done_tag + @source_view = params['_source_view'] || 'tag' + @tag_name = sanitize(params[:name]) # sanitize to prevent XSS vunerability! + @page_title = t('todos.completed_tagged_page_title', :tag_name => @tag_name) + @tag = Tag.find_by_name(@tag_name) + @tag = Tag.new(:name => @tag_name) if @tag.nil? + + completed_todos = current_user.todos.completed.with_tag(@tag) + + @done_today = get_done_today(completed_todos) + @done_this_week = get_done_this_week(completed_todos) + @done_this_month = get_done_this_month(completed_todos) + @count = @done_today.size + @done_this_week.size + @done_this_month.size + + render :template => 'todos/done' + end + + def all_done_tag + @source_view = params['_source_view'] || 'tag' + @tag_name = sanitize(params[:name]) # sanitize to prevent XSS vunerability! + @page_title = t('todos.all_completed_tagged_page_title', :tag_name => @tag_name) + @tag = Tag.find_by_name(@tag_name) + @tag = Tag.new(:name => @tag_name) if @tag.nil? + + @done = current_user.todos.completed.with_tag(@tag).paginate :page => params[:page], :per_page => 20, :order => 'completed_at DESC', :include => Todo::DEFAULT_INCLUDES + @count = @done.size + render :template => 'todos/all_done' + end + def tags @tags = Tag.find(:all, :conditions =>['name like ?', '%'+params[:term]+'%']) respond_to do |format| format.autocomplete { render :text => for_autocomplete(@tags, params[:term]) } end end - + def defer @source_view = params['_source_view'] || 'todo' numdays = params['days'].to_i @@ -621,13 +651,13 @@ class TodosController < ApplicationController @page_title = t('todos.calendar_page_title') @projects = current_user.projects.find(:all) - + due_today_date = Time.zone.now due_this_week_date = Time.zone.now.end_of_week due_next_week_date = due_this_week_date + 7.days due_this_month_date = Time.zone.now.end_of_month included_tables = Todo::DEFAULT_INCLUDES - + @due_today = current_user.todos.not_completed.find(:all, :include => included_tables, :conditions => ['todos.due <= ?', due_today_date], @@ -648,7 +678,7 @@ class TodosController < ApplicationController :include => included_tables, :conditions => ['todos.due > ?', due_this_month_date], :order => "due") - + @count = current_user.todos.not_completed.are_due.count respond_to do |format| @@ -659,7 +689,7 @@ class TodosController < ApplicationController } end end - + def auto_complete_for_predecessor unless params['id'].nil? get_todo_from_params @@ -723,13 +753,13 @@ class TodosController < ApplicationController end private - + def get_todo_from_params # TODO: this was a :append_before but was removed to tune performance per # method. Reconsider re-enabling it @todo = current_user.todos.find(params['id']) end - + def find_and_activate_ready current_user.deferred_todos.find_and_activate_ready end @@ -774,7 +804,7 @@ class TodosController < ApplicationController @title << t('todos.next_actions_title_additions.completed') @description << t('todos.next_actions_description_additions.completed', :count => done_in_last.to_s) end - + if params.key?('tag') tag = Tag.find_by_name(params['tag']) if tag.nil? @@ -782,11 +812,11 @@ class TodosController < ApplicationController end condition_builder.add('taggings.tag_id = ?', tag.id) end - + Todo.send :with_scope, :find => {:conditions => condition_builder.to_conditions} do yield end - + end def with_parent_resource_scope(&block) @@ -830,11 +860,11 @@ class TodosController < ApplicationController with_feed_query_scope do with_parent_resource_scope do # @context or @project may get defined here with_limit_scope do - + if mobile? init_todos_for_mobile_view else - + # Note: these next two finds were previously using # current_users.todos.find but that broke with_scope for :limit @@ -852,18 +882,18 @@ class TodosController < ApplicationController end end end - + def init_todos_for_mobile_view # Note: these next two finds were previously using current_users.todos.find # but that broke with_scope for :limit - + # Exclude hidden projects from the home page @not_done_todos = current_user.todos.find(:all, :conditions => ['todos.state = ? AND contexts.hide = ? AND (projects.state = ? OR todos.project_id IS NULL)', 'active', false, 'active'], :order => "todos.due IS NULL, todos.due ASC, todos.created_at ASC", :include => [ :project, :context, :tags ]) end - + def determine_down_count source_view do |from| from.todo do @@ -890,7 +920,7 @@ class TodosController < ApplicationController end end end - + def determine_remaining_in_context_count(context_id = @todo.context_id) source_view do |from| from.deferred { @@ -931,7 +961,7 @@ class TodosController < ApplicationController @remaining_in_context = current_user.contexts.find(context_id).todos(true).active.not_hidden.count if !@remaining_in_context @target_context_count = current_user.contexts.find(@todo.context_id).todos(true).active.not_hidden.count if !@target_context_count end - + def determine_completed_count source_view do |from| from.todo do @@ -972,7 +1002,7 @@ class TodosController < ApplicationController # Set count badge to number of not-done, not hidden context items @count = current_user.todos.active.not_hidden.count(:all) - + render end end @@ -983,11 +1013,11 @@ class TodosController < ApplicationController @home = true cookies[:mobile_url]= { :value => request.request_uri, :secure => SITE_CONFIG['secure_cookies']} determine_down_count - + render :action => 'index' end end - + def render_rss_feed lambda do render_rss_feed_for @todos, :feed => todo_feed_options, @@ -999,7 +1029,7 @@ class TodosController < ApplicationController } end end - + def todo_feed_options options = Todo.feed_options(current_user) options[:title] = @feed_title @@ -1049,7 +1079,7 @@ class TodosController < ApplicationController def self.is_feed_request(req) ['rss','atom','txt','ics'].include?(req.parameters[:format]) end - + def check_for_next_todo(todo) # check if this todo has a related recurring_todo. If so, create next todo new_recurring_todo = nil @@ -1060,15 +1090,15 @@ class TodosController < ApplicationController # check if there are active todos belonging to this recurring todo. only # add new one if all active todos are completed if recurring_todo.todos.active.count == 0 - + # check for next todo either from the due date or the show_from date date_to_check = todo.due.nil? ? todo.show_from : todo.due - + # if both due and show_from are nil, check for a next todo from now date_to_check = Time.zone.now if date_to_check.nil? if recurring_todo.active? && recurring_todo.has_next_todo(date_to_check) - + # shift the reference date to yesterday if date_to_check is furher in # the past. This is to make sure we do not get older todos for overdue # todos. I.e. checking a daily todo that is overdue with 5 days will @@ -1084,7 +1114,7 @@ class TodosController < ApplicationController end return new_recurring_todo end - + def get_due_id_for_calendar(due) return "" if due.nil? due_today_date = Time.zone.now @@ -1104,7 +1134,7 @@ class TodosController < ApplicationController end return new_due_id end - + def is_old_due_empty(id) return 0 == count_old_due_empty(id) end @@ -1255,7 +1285,7 @@ class TodosController < ApplicationController source_view do |page| page.calendar do @old_due_empty = is_old_due_empty(@original_item_due_id) - @new_due_id = get_due_id_for_calendar(@todo.due) + @new_due_id = get_due_id_for_calendar(@todo.due) end page.tag do @tag_name = params['_tag_name'] @@ -1276,14 +1306,14 @@ class TodosController < ApplicationController return false if context_name.blank? true end - + def determine_non_uniq_todo # for calendar view. TODO: unused all_list_uniq_ids = (@due_today.map(&:id) + @due_this_week.map(&:id) + @due_next_week.map(&:id) + @due_this_month.map(&:id) + @due_after_this_month.map(&:id)).uniq all_list_count = @due_today.count + @due_this_week.count + @due_next_week.count + @due_this_month.count + @due_after_this_month.count - + return !( all_list_uniq_ids.length == all_list_count ) end @@ -1311,54 +1341,54 @@ class TodosController < ApplicationController @prefs = prefs @attributes = params['request'] && params['request']['todo'] || params['todo'] end - + def attributes @attributes end - + def show_from @attributes['show_from'] end - + def due @attributes['due'] end - + def project_name @params['project_name'].strip unless @params['project_name'].nil? end - + def context_name @params['context_name'].strip unless @params['context_name'].nil? end - + def tag_list @params['tag_list'] end - + def predecessor_list @params['predecessor_list'] end - + def parse_dates() @attributes['show_from'] = @prefs.parse_date(show_from) @attributes['due'] = @prefs.parse_date(due) @attributes['due'] ||= '' end - + def project_specified_by_name? return false unless @attributes['project_id'].blank? return false if project_name.blank? return false if project_name == 'None' true end - + def context_specified_by_name? return false unless @attributes['context_id'].blank? return false if context_name.blank? true end - + end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index f4854256..fbf0a0cf 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -282,6 +282,12 @@ module ApplicationHelper done_todos_context_path(@context) when "projects" done_todos_project_path(@project) + when "todos" + if source_view_is(:tag) + done_tag_path(@tag_name) + else + done_todos_path + end else done_todos_path end @@ -293,6 +299,12 @@ module ApplicationHelper all_done_todos_context_path(@context) when "projects" all_done_todos_project_path(@project) + when "todos" + if source_view_is(:tag) + all_done_tag_path(@tag_name) + else + all_done_todos_path + end else all_done_todos_path end diff --git a/app/views/todos/_todo.html.erb b/app/views/todos/_todo.html.erb index 79094d9f..4ca9bc23 100644 --- a/app/views/todos/_todo.html.erb +++ b/app/views/todos/_todo.html.erb @@ -18,8 +18,8 @@ parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag' <% unless todo.completed? || todo.deferred? -%>
  • <%= remote_defer_menu_item(1, todo) %>
  • <%= remote_defer_menu_item(7, todo) %>
  • +
  • <%= remote_promote_to_project_menu_item(todo) %>
  • <% end -%> -
  • <%= remote_promote_to_project_menu_item(todo) %>
  • diff --git a/config/locales/de.yml b/config/locales/de.yml index 2788a0d4..5def709a 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1,5 +1,49 @@ --- de: + layouts: + toggle_notes: Notizen umschalten + next_actions_rss_feed: RSS-Feed kommende Aufgaben + mobile_navigation: + logout: Abmelden + feeds: Feeds + new_action: 0-Neue Aufgabe + starred: 4-Markiert + projects: 3-Projekte + tickler: Notizbuch + contexts: 2-Kontexte + home: 1-Home + toggle_notes_title: Alle Notizen umschalten + navigation: + manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" + recurring_todos: Sich wiederholende To-Dos + api_docs: REST API Docs + feeds: Feeds + starred: Markiert + notes_title: Alle Notizen anzeigen + stats: Statistiken + tickler_title: Notizbuch + manage_users: Benutzer verwalten + export_title: Daten importieren und exportieren + integrations_: Tracks integrieren + preferences: Einstellungen + feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" + calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" + starred_title: Markierte Aufgaben betrachten + tickler: Notizbuch + recurring_todos_title: Sich wiederholende To-Dos verwalten + completed_tasks: Erledigt + stats_title: Statistiken anzeigen + home_title: Start + organize: Organisieren + view: Betrachten + completed_tasks_title: "Vollst\xC3\xA4ndig" + home: Start + export: Export + contexts_title: Kontexte + calendar: Kalender + projects_title: Projekte + search: "Alle Eintr\xC3\xA4ge durchsuchen" + preferences_title: Meine Einstellungen number: format: separator: "," @@ -34,107 +78,65 @@ de: separator: . precision: delimiter: "," - layouts: - toggle_notes: Notizen umschalten - next_actions_rss_feed: RSS-Feed kommende Aufgaben - toggle_notes_title: Alle Notizen umschalten - mobile_navigation: - logout: Abmelden - feeds: Feeds - new_action: 0-Neue Aufgabe - starred: 4-Markiert - projects: 3-Projekte - tickler: Notizbuch - contexts: 2-Kontexte - home: 1-Home - navigation: - manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" - recurring_todos: Sich wiederholende To-Dos - api_docs: REST API Docs - feeds: Feeds - stats: Statistiken - starred: Markiert - notes_title: Alle Notizen anzeigen - tickler_title: Notizbuch - manage_users: Benutzer verwalten - export_title: Daten importieren und exportieren - integrations_: Tracks integrieren - preferences: Einstellungen - feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" - calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" - recurring_todos_title: Sich wiederholende To-Dos verwalten - completed_tasks: Erledigt - stats_title: Statistiken anzeigen - home_title: Start - tickler: Notizbuch - starred_title: Markierte Aufgaben betrachten - organize: Organisieren - view: Betrachten - completed_tasks_title: "Vollst\xC3\xA4ndig" - export: Export - contexts_title: Kontexte - home: Start - projects_title: Projekte - calendar: Kalender - preferences_title: Meine Einstellungen - search: "Alle Eintr\xC3\xA4ge durchsuchen" - common: - back: "Zur\xC3\xBCck" - third: Dritte - actions: Aktionen - add: "Hinzuf\xC3\xBCgen" - go_back: "Zur\xC3\xBCck" - logout: Abmelden - cancel: Abbrechen - none: Keine - second: Zweite - optional: optional - month: Monat - forum: Forum - notes: Notizen - server_error: Auf dem Server ist ein Fehler aufgetreten. - projects: Projekte - last: Letzte - action: Aktion - project: Projekt - contribute: Mitwirken - ok: Ok - first: Erste - website: Website - numbered_step: Schritt %{number} - fourth: Vierte - 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_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. - alphabetically_title: Projekte alphabetisch sortieren - by_task_count: Nach Anzahl der Aufgaben - create: Erstellen - drag_handle: Verschieben - months: Monate - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" - context: Kontext - description: Beschreibung - contexts: Kontexte - bugs: Bugs - update: Aktualisieren - weeks: Woche - forth: Vierte - wiki: Wiki - ajaxError: Fehler beim Empfangen vom Server - search: Suchen - email: E-Mail integrations: opensearch_description: In Tracks suchen applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" applescript_success_after_id: erstellt applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" - data: - import_successful: Import war erfolgreich. - import_errors: Beim Import sind Fehler aufgetreten. + common: + back: "Zur\xC3\xBCck" + third: Dritte + recurring_todos: Wiederholenden Aktionen + actions: Aktionen + add: "Hinzuf\xC3\xBCgen" + previous: Vorherige + logout: Abmelden + go_back: "Zur\xC3\xBCck" + week: Woche + cancel: Abbrechen + none: Keine + second: Zweite + month: Monat + optional: optional + notes: Notizen + forum: Forum + server_error: Auf dem Server ist ein Fehler aufgetreten. + last: Letzte + action: Aktion + projects: Projekte + project: Projekt + contribute: Mitwirken + ok: Ok + website: Website + first: Erste + numbered_step: Schritt %{number} + 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 + fourth: Vierte + create: Erstellen + months: Monate + todo: Aktione + contexts: Kontexte + context: Kontext + next: "N\xC3\xA4chste" + description: Beschreibung + drag_handle: Verschieben + update: Aktualisieren + weeks: Woche + bugs: Bugs + forth: Vierte + wiki: Wiki + ajaxError: Fehler beim Empfangen vom Server + search: Suchen + email: E-Mail models: project: feed_title: Tracks-Projekte @@ -167,8 +169,8 @@ de: due: Fällig preference: show_hidden_projects_in_sidebar: Zeige Versteckte Projekte in der Sidebar - date_format: Datum Format show_hidden_contexts_in_sidebar: "Zeige Versteckte Zusammenh\xC3\xA4nge in der Sidebar" + date_format: Datum Format staleness_starts: Anfang des Abgestandenheit mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) verbose_action_descriptors: "Ausf\xC3\xBChrlich Aktion Deskriptoren" @@ -177,8 +179,8 @@ de: title_date_format: Titel Datumsformat refresh: Aktualisierungsintverall (in Minuten) week_starts: Woche startet am - due_style: "F\xC3\xA4llig stijl" time_zone: Zeit Zone + due_style: "F\xC3\xA4llig stijl" locale: Zahle show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen sms_email: Per E-Mail @@ -222,18 +224,22 @@ de: header: one: "Konnte dieses %{model} Objekt nicht speichern: 1 Fehler." other: "Konnte dieses %{model} Objekt nicht speichern: %{count} Fehler." + data: + import_successful: Import war erfolgreich. + import_errors: Beim Import sind Fehler aufgetreten. 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 + actions: Aktionen tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) + 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. totals_action_count: hattest du insgesamt %{count} Aktionen + totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" legend: number_of_days: Anzahl vergangene Tage actions: Aktionen @@ -242,60 +248,61 @@ de: percentage: Prozentsatz running_time: Laufzeit einer Aktion (Wochen) months_ago: Monate zuvor + top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" actions_dow_30days_title: Wochentag (letzte 30 Tage) current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" running_time_legend: actions: Aufgaben percentage: Prozentsatz weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." - totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" - top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" - 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_visible_context_count: Von diesen sind %{count} sichtbare Kontexte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - projects: Projekte action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) actions_last_year: Aktionen im letzten Jahr + projects: Projekte totals_context_count: Du hast %{count} Kontexte. actions_day_of_week_title: Wochentag (alle Aktionen) - tags: Tags totals_project_count: Du hast %{count} Projekte. actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" - running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." - tod30: Tageszeit (letzte 30 Tage) - top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" - actions_30days_title: _Aktionen der letzten 30 Tage + tags: Tags tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. actions_further: und danach + running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." time_of_day: Tageszeit (alle Aktionen) + tod30: Tageszeit (letzte 30 Tage) more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." + top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" totals_tag_count: Du hast %{count} Tags in Aktionen. + actions_30days_title: _Aktionen der letzten 30 Tage totals_hidden_project_count: "%{count} sind versteckt" - top10_projects: Top 10 aller Projekte - click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." - spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte totals_completed_project_count: und %{count} sind abgeschlossene Projekte. + top10_projects_30days: Top-10-Projekt der letzten 30 Tage actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. + top10_projects: Top 10 aller Projekte actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt + click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte + spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte other_actions_label: (andere) - top10_projects_30days: Top-10-Projekt der letzten 30 Tage + actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt + totals: Ingesamt time_of_day_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit + contexts: Kontexte click_to_return_link: hier totals_hidden_context_count: und %{count} sind versteckte Kontexte. - actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt - totals: Ingesamt - contexts: Kontexte + 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. labels: month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt" completed: Erledigt @@ -303,28 +310,27 @@ de: avg_created: Durchschnittlich erstellt avg_completed: Durchschnittlich fertiggestellt created: Erstellt - no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." - click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. running_time_all_legend: actions: Aktionen percentage: Prozentsatz running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." + actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt tod30_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit action_selection_title: TRACKS::Aktionsauswahl - actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt todos: - error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen 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_rest_of_previous_month: Fertiggestellt den Rest des Vormonats + blocked_by: Blockiert durch %{predecessors} completed_recurring: Abgeschlossene wiederkehrende To-Dos added_new_next_action: Neue Aktion angelegt - blocked_by: Blockiert durch %{predecessors} + defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." star_action: Aktion markieren completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen. - defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." unable_to_add_dependency: Abhängigkeit nicht hinzufügbar done: Erledigt? star_action_with_description: Aktion '%{description}' markieren @@ -332,27 +338,28 @@ 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})" + edit_action_with_description: Aktion '%{description}' bearbeiten + tags: Tags (Komma-separiert) archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) 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" - context_changed: Kontext zu %{name} gewechselt - new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" - mobile_todos_page_title: Alle Aufgaben add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit" - removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." + 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 + mobile_todos_page_title: Alle Aufgaben + delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen" recurring_actions_title: TRACKS::Wiederkehrende Aktionen + removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." next_action_needed: Es muss mindestens eine folgende Aktion angelegt werden - action_saved: Aktion gespeichert scheduled_overdue: "Planm\xC3\xA4\xC3\x9Fig angezeigt vor %{days} Tagen" + action_saved: Aktion gespeichert action_deleted_error: Fehler beim Löschen der Aufgabe edit_action: Aktion bearbeiten added_new_context: "Neuer Kontext hinzugef\xC3\xBCgt" next_actions_description: "Filter:" + older_completed_items: "Ältere erledigte Aufgaben" list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben set_to_pending: "%{task} als ausstehend markiert" added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" @@ -360,37 +367,39 @@ de: completed: Aufgaben erledigt due_today: heute fällig due_within_a_week: diese Woche fällig - older_completed_items: "Ältere erledigte Aufgaben" + task_list_title: TRACKS::Aufgaben anzeigen append_in_this_project: in diesem Projekt error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf - task_list_title: TRACKS::Aufgaben anzeigen no_actions_due_this_week: Keine zu erledigenden Aufgaben für den Rest der Woche - no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten + no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos + recurring_pattern_removed: Das Wiederauftreten Muster ist aus entfernt %{count} convert_to_project: In Projekt umwandeln no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? completed_last_day: In den letzten 24 Stunden erledigt - show_in_days: Anzeigen in %{days} Tagen no_project: --Kein Projekt-- + show_in_days: Anzeigen in %{days} Tagen 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}' + all_completed: Alle abgeschlossenen Aktionen older_than_days: "Älter als %{count} Tage" + completed_tagged_page_title: "TRACKS:: Erledigte Aufgaben mit Tag %{tag_name}" edit: Bearbeiten pending: Ausstehend completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} + feed_title_in_project: im Projekt '%{project}' 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 + deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" 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." next_actions_title: TRACKS::Weitere Aufgaben @@ -398,17 +407,17 @@ de: deferred_tasks_title: TRACKS::Notizbuch no_completed_actions_with: Keine abgeschlossenen Aktionen mit dem Tag '%{tag_name}' clear_show_from_date: Datum leeren - unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" calendar_page_title: TRACKS::Kalender in_hidden_state: als versteckt markiert - show_today: Heute anzeigen - no_actions_found_title: Keine Aktionen gefunden + unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" next_actions_due_date: overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tag" due_today: "Heute f\xC3\xA4llig" due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" overdue_by_plural: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tagen" due_tomorrow: "F\xC3\xA4llig morgen" + 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: @@ -416,43 +425,44 @@ de: other: "%{count} Tage zur\xC3\xBCckstellen" added_new_next_action_singular: Neue weiterführende Aufgabe angelegt no_completed_actions: Momentan sind keine erledigten Aufgaben vorhanden. + feeds: + completed: "Erledigt: %{date}" + due: "F&auuml;llig: %{date}" deferred_pending_actions: Aufgeschobene/ausstehende Aufgaben has_x_pending: one: Hat eine ausstehende Aktion other: Hat %{count} ausstehende Aktionen - feeds: - completed: "Erledigt: %{date}" - due: "F&auuml;llig: %{date}" + recurring_todos: Wiederkehrende To-Dos delete_action: "Aktion l\xC3\xB6schen" error_deleting_recurring: "Beim L\xC3\xB6schen der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten" - recurring_todos: Wiederkehrende To-Dos delete: "L\xC3\xB6schen" + no_last_completed_actions: Keine abgeschlossene Aktionen gefunden 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!" + action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. + 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. other: "%{count} Notizbuch-Einträge sind nun fällig - lade die Seite neu, um sie zu sehen." - depends_on: "H\xC3\xA4ngt ab von" - action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. - added_new_next_action_plural: Neue weiterführende Aufgaben angelegt + new_related_todo_not_created_short: nicht schaffen todo completed_today: one: Du hast heute bereits eine Aufgabe erledigt. other: Du hast heute bereits %{count} Aufgaben erledigt. - new_related_todo_not_created_short: nicht schaffen todo + added_new_next_action_plural: Neue weiterführende Aufgaben angelegt + completed_rest_of_week: Fertiggestellt den Rest dieser Woche + error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen calendar: get_in_ical_format: Diesen Kalender im iCal Format herunterladen due_next_week: Nächste Woche fällig - no_actions_due_next_week: Keine Aufgaben für die kommende Woche due_this_week: Die restliche Woche zu erledigen + no_actions_due_next_week: Keine Aufgaben für die kommende Woche due_today: Heute zu erledigen no_actions_due_today: Heute sind keine Aufgaben fällig due_next_month_and_later: Im %{month} und später fällig 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 - error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen show_tomorrow: Morgen anzeigen - no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos recurrence: ends_on_date: Endet am %{date} every_work_day: Jeden Arbeitstag @@ -468,37 +478,13 @@ de: show_option_always: immer pattern: third: Drittel - every_n: jeden %{n} - second: zweite - on_day_n: am Tag %{n} - every_xth_day_of_every_n_months: "jedes %{x} %{day} jedes %{n_months} \xE2\x80\x8B" - weekly: "w\xC3\xB6chentlich" - from: von - last: zuletzt - every_day: jeden Tag - times: "f\xC3\xBCr %{number} Zeiten" - the_xth_day_of_month: der %{x} %{day} von %{month} - on_work_days: an Wochentagen - first: erste - show: Show - every_year_on: jedes Jahr in %{date} - fourth: vierte - due: "F\xC3\xA4llig" - until: bis - every_month: jeden Monat - day_names: - - Sonntag - - Montag - - Dienstag - - Mittwoch - - Donnerstag - - Freitag - - Samstag month_names: - - Januar - Februar - - März + - !binary | + TcOkcno= + - April - Mai - Juni @@ -508,103 +494,92 @@ de: - Oktober - November - Dezember + every_n: jeden %{n} + on_day_n: am Tag %{n} + second: zweite + every_xth_day_of_every_n_months: "jedes %{x} %{day} jedes %{n_months} \xE2\x80\x8B" + weekly: "w\xC3\xB6chentlich" + from: von + last: zuletzt + every_day: jeden Tag + the_xth_day_of_month: der %{x} %{day} von %{month} + times: "f\xC3\xBCr %{number} Zeiten" + every_year_on: jedes Jahr in %{date} + first: erste + show: Show + day_names: + - Sonntag + - Montag + - Dienstag + - Mittwoch + - Donnerstag + - Freitag + - Samstag + on_work_days: an Wochentagen + fourth: vierte + due: "F\xC3\xA4llig" + until: bis + every_month: jeden Monat yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage show_options: To-Do anzeigen ends_on: Endet am weekly_every_number_week: Kehrt jede %{number}. Woche wieder am - 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" 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) - monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats + no_end_date: Kein Enddatum + yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} + day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat yearly: "J\xC3\xA4hrlich" + monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats 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." + all_completed_tagged_page_title: "TRACKS:: Alle erledigten Aufgaben mit Tag %{tag_name}" no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. + completed_rest_of_month: Fertiggestellt den Rest des Monats recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit 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 action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. - action_saved_to_tickler: Aktion im Notizbuch gespeichert - recurring_action_saved: Wiederkehrende Aktion gespeichert - depends_on_separate_with_commas: Hängt ab von (Komma-separiert) completed_in_archive: one: Es befindet sich eine erledigte Aufgabe im Archiv. other: Es befinden sich %{count} erledigte Aufgaben im Archiv. + no_incomplete_actions: Es gibt keine unerledigten Aufgaben + depends_on_separate_with_commas: Hängt ab von (Komma-separiert) + action_saved_to_tickler: Aktion im Notizbuch gespeichert + recurring_action_saved: Wiederkehrende Aktion gespeichert to_tickler: ", im Notizbuch hinterlegt" 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 notes: delete_item_title: Eintrag löschen delete_note_title: Notiz '%{id}' löschen delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" + deleted_note: "Notiz '%{id}' l\xC3\xB6schen" note_link_title: Notiz %{id} anzeigen show_note_title: Notiz anzeigen - deleted_note: "Notiz '%{id}' l\xC3\xB6schen" note_location_link: "In:" edit_item_title: Eintrag bearbeiten - note_header: Notiz %{id} no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu." + note_header: Notiz %{id} delete_note_confirm: Soll die Notiz '%{id}' wirklich gelöscht werden? - projects: - deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" - was_marked_hidden: wurde als verborgen markiert - edit_project_title: Projekt bearbeiten - default_tags_removed_notice: Standard-Tags entfernt - 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" - 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 - no_projects: Keine Projekte vorhanden - hide_form_title: Formular verstecken - notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" - with_no_default_context: hat keinen Standardwert Kontext - delete_project: Projekt löschen - completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" - show_form: Projekt erstellen - actions_in_project_title: Die Aktionen in diesem Projekt - delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? - with_default_context: mit einem Standard-Rahmen von '%{context_name}' - set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen - with_default_tags: und mit '%{tags}' als Standard-Tags - project_saved_status: Projekt gespeichert - is_active: ist aktiv - completed_projects: Abgeschlossene Projekte - add_project: Projekt hinzufügen - settings: Einstellungen - list_projects: TRACKS::Projektliste - add_note: "Notiz hinzuf\xC3\xBCgen" - 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" - was_marked_complete: wurde als erledigt markiert - active_projects: Aktive Projekte - status_project_name_changed: "Projektname ge\xC3\xA4ndert" - no_default_context: Dieses Projekt hat keinen Standard-Kontext - with_no_default_tags: und hat keinen Standardwert Tags - edit_project_settings: Edit Project Settings - default_context: Der Standard-Kontext dieses Projektes ist %{context} - state: Dieses Projekt ist %{state} + states: + hidden_plural: Versteckte + completed: Erledigt + completed_plural: Erledigte + visible_plural: Sichtbare + active_plural: Aktive + visible: Sichtbar + active: Aktiv + hidden: Versteckt time: am: vormittags formats: @@ -614,15 +589,58 @@ de: month_day: "%d. %B" long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags - states: - hidden_plural: Versteckte - completed: Erledigt - completed_plural: Erledigte - visible_plural: Sichtbare - visible: Sichtbar - active_plural: Aktive - active: Aktiv - hidden: Versteckt + projects: + deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" + was_marked_hidden: wurde als verborgen markiert + edit_project_title: Projekt bearbeiten + default_tags_removed_notice: Standard-Tags entfernt + 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" + page_title: "TRACKS::Projekt: %{project}" + hide_form: Fomular verstecken + this_project: Dieses Projekt + project_state: Projekt ist %{state} + show_form_title: Neues Projekt anlegen + to_new_project_page: Zu neuem Projekt weiterleiten + 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" + no_last_completed_projects: Keine abgeschlossene Projekte gefunden + notes: Notizen + todos_append: an dieses Projekt + no_projects: Keine Projekte vorhanden + hide_form_title: Formular verstecken + notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" + with_no_default_context: hat keinen Standardwert Kontext + delete_project: Projekt löschen + completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" + delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? + with_default_context: mit einem Standard-Rahmen von '%{context_name}' + show_form: Projekt erstellen + actions_in_project_title: Die Aktionen in diesem Projekt + add_project: Projekt hinzufügen + set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen + settings: Einstellungen + with_default_tags: und mit '%{tags}' als Standard-Tags + list_projects: TRACKS::Projektliste + project_saved_status: Projekt gespeichert + add_note: "Notiz hinzuf\xC3\xBCgen" + is_active: ist aktiv + completed_projects: Abgeschlossene Projekte + 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" + was_marked_complete: wurde als erledigt markiert + default_context: Der Standard-Kontext dieses Projektes ist %{context} + active_projects: Aktive Projekte + status_project_name_changed: "Projektname ge\xC3\xA4ndert" + no_default_context: Dieses Projekt hat keinen Standard-Kontext + with_no_default_tags: und hat keinen Standardwert Tags + state: Dieses Projekt ist %{state} + edit_project_settings: Edit Project Settings + errors: + user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." preferences: staleness_starts_after: Abgestandenheit startet nach %{days} Tagen open_id_url: "Deine OpenID-URL lautet:" @@ -631,11 +649,11 @@ de: page_title: TRACKS::Einstellungen title: Deine Einstellungen token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)" - show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" is_false: Nein - is_true: Ja + show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" edit_preferences: Einstellungen bearbeiten page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" + is_true: Ja sms_context_none: Keine generate_new_token: Neues Token generieren token_header: Dein Token @@ -643,14 +661,14 @@ de: 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." - errors: - user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." date: month_names: - - Januar - Februar - - März + - !binary | + TcOkcno= + - April - Mai - Juni @@ -660,6 +678,10 @@ de: - Oktober - November - Dezember + order: + - :day + - :month + - :year abbr_day_names: - So - Mo @@ -668,10 +690,6 @@ de: - Do - Fr - Sa - order: - - :day - - :month - - :year formats: only_day: "%e" default: "%d.%m.%Y" @@ -713,8 +731,8 @@ de: send_feedback: Senden Sie Feedback zu %{version} shared: multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile) - hide_form: Formular verstecken toggle_single: Weitere Aktion erstellen + hide_form: Formular verstecken 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)" @@ -726,71 +744,71 @@ de: 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: + auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" + successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. total_contexts: Alle Kontexte failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. - auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" - successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. + new_token_generated: Neuer Token erfolgreich generiert 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 manage_users: Benutzer verwalten + account_signup: Accounteinrichtung password_updated: Passwort aktualisiert. - desired_login: "Gew\xC3\xBCnschter Benutzername" confirm_password: "Passwort best\xC3\xA4tigen" new_user_heading: "Einen neuen Benutzer anlegen:" signup: Registrieren auth_type_updated: Authentifizierungs-Art erfolgreich geändert. total_actions: Alle Aufgaben - choose_password: "Passwort w\xC3\xA4hlen" - change_password_title: TRACKS::Passwort ändern + desired_login: "Gew\xC3\xBCnschter Benutzername" 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" 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 label_auth_type: Authentifizierungsart new_password_label: Neues Passwort register_with_cas: Mit deinem CAS-Benutzernamen + new_user_title: TRACKS::Als Administrator anmelden 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 - 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. - identity_url: Identity-URL change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" + identity_url: Identity-URL + auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" total_notes: Alle Notizen select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." feedlist: choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" + legend: "Legende:" rss_feed: RSS-Feed ical_feed: iCal-Feed - legend: "Legende:" all_contexts: Alle Kontexte choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" all_projects: Alle Projekte + 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 - project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. active_starred_actions: Alle markierten, aktiven Aufgaben - select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" projects_and_actions: Aktive Projekte und deren Aufgaben context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. + select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." - 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 + context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" sidebar: list_name_active_contexts: Aktive Kontexte @@ -805,24 +823,24 @@ de: show_form_title: Neuen Kontext erstellen delete_context_confirmation: Soll der Kontext '%{name}' wirklich gelöscht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gelöscht. delete_context: Kontext löschen - edit_context: Kontext bearbeiten hide_form_title: Formular für neuen Kontext verstecken + edit_context: Kontext bearbeiten no_contexts_active: Derzeit gibt es keine aktiven Kontexte context_hide: Auf Startseite ausblenden? hidden_contexts: Versteckte Kontexte - show_form: Neuen Kontext erstellen visible_contexts: Sichtbare Kontexte + show_form: Neuen Kontext erstellen save_status_message: Kontext gespeichert add_context: "Kontext hinzuf\xC3\xBCgen" context_name: Kontextname update_status_message: "Kontextname wurde ge\xC3\xA4ndert" - new_context_post: "' wird ebenfalls angelegt. Fortfahren?" status_active: Kontext ist aktiv - no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" + new_context_post: "' wird ebenfalls angelegt. Fortfahren?" 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: @@ -871,9 +889,9 @@ de: half_a_minute: eine halbe Minute login: openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" + login_cas: zum CAS gehen user_no_expiry: Angemeldet bleiben sign_in: Anmeldung - login_cas: zum CAS gehen cas_login: CAS-Anmeldung successful_with_session_info: "Anmeldung erfolgreich:" please_login: Bitte melde dich an, um Tracks zu nutzen @@ -890,14 +908,14 @@ de: option_separator: oder, session_time_out: Sitzung abgelaufen. Bitte %{link} login_standard: "zur\xC3\xBCck zum Standard-Login" + log_in_again: Erneut anmelden. logged_out: Sie wurden von Tracks abgemeldet. login_with_openid: Mit einer OpenID anmelden unsuccessful: Anmeldung war nicht erfolgreich. - log_in_again: Erneut anmelden. search: contexts_matching_query: Kontexte entsprechen der Suche tags_matching_query: Tags entsprechen der Suche + todos_matching_query: Todos entsprechen der Suche projects_matching_query: Projekte entsprechen der Suche notes_matching_query: Notizen entsprechen der Suche no_results: Die Suche ergab kein Ergebnis. - todos_matching_query: Todos entsprechen der Suche diff --git a/config/locales/en.yml b/config/locales/en.yml index e1423a24..db45bfc2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -139,6 +139,8 @@ en: new_context_pre: "New context '" new_context_post: "' will be also created. Are you sure?" edit_context: "Edit context" + completed_tasks_title: "TRACKS::Completed actions in the context '%{context_name}'" + all_completed_tasks_title: "TRACKS::All Completed actions in the context '%{context_name}'" data: import_errors: "Some errors occurred during import" import_successful: "Import was successful." @@ -310,6 +312,9 @@ en: edit_project_settings: "Edit Project Settings" page_title: "TRACKS::Project: %{project}" list_projects: "TRACKS::List Projects" + list_completed_projects: "TRACKS::List Completed Projects" + completed_tasks_title: "TRACKS::List Completed Actions in Project '%{project_name}'" + all_completed_tasks_title: "TRACKS::List All Completed Actions in Project '%{project_name}'" no_default_context: "This project does not have a default context" default_context: "The default context for this project is %{context}" project_state: "Project is %{state}." @@ -541,7 +546,7 @@ en: from: from until: until times: for %{number} times - day_names: + day_names: - sunday - monday - tuesday @@ -549,8 +554,8 @@ en: - thursday - friday - saturday - month_names: - - + month_names: + - - January - February - Match @@ -597,6 +602,8 @@ en: action_deleted_success: "Successfully deleted next action" action_deleted_error: "Failed to delete the action" completed_tasks_title: "TRACKS::Completed tasks" + completed_tagged_page_title: "TRACKS::Completed tasks with tag %{tag_name}" + all_completed_tagged_page_title: "TRACKS::All completed tasks with tag %{tag_name}" archived_tasks_title: "TRACKS::Archived completed tasks" deferred_tasks_title: "TRACKS::Tickler" tagged_page_title: "TRACKS::Tagged with '%{tag_name}'" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index fc439bf1..488b55a1 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1,5 +1,49 @@ --- nl: + layouts: + toggle_notes: Toggle notities + next_actions_rss_feed: RSS-feed van de acties + mobile_navigation: + logout: Afmelden + feeds: Feeds + new_action: 0-Nieuwe actie + starred: 4-Ster + projects: 3-Projecten + tickler: Tickler + contexts: 2-Contexten + home: 1-Start + toggle_notes_title: Toggle alle notities + navigation: + recurring_todos: Terugkerende acties + manage_users_title: Toevoegen of verwijderen gebruikers + api_docs: REST API Docs + feeds: Feeds + starred: Ster + notes_title: Toon alle notities + stats: Statistieken + tickler_title: Tickler + manage_users: Beheren gebruikers + export_title: Import en export van gegevens + preferences: Voorkeuren + integrations_: Integreer Tracks + feeds_title: Zie een lijst met beschikbare feeds + calendar_title: Kalender met acties met deadline + starred_title: Zie je ster acties + tickler: Tickler + recurring_todos_title: Beheren terugkerende acties + completed_tasks: Gereed + stats_title: Zie je statistieken + home_title: Start + organize: Organiseer + view: Bekijk + completed_tasks_title: Afgerond + home: Start + export: Export + contexts_title: Contexten + calendar: Agenda + projects_title: Projecten + search: Zoeken in alle items + preferences_title: Toon mijn voorkeuren number: format: separator: "," @@ -23,107 +67,65 @@ nl: separator: "," delimiter: . + integrations: + opensearch_description: Zoek in Tracks + applescript_next_action_prompt: "Omschrijving van de actie:" + gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget + applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID common: back: Terug third: Derde + recurring_todos: Herhalende acties actions: Acties add: Toevoegen - go_back: Ga terug + previous: Vorige logout: Log uit + go_back: Ga terug cancel: Annuleer + week: week none: Geen second: Tweede optional: optioneel - forum: Forum + month: maand notes: Notities + forum: Forum server_error: Een fout heeft op de server plaatsgevonden - projects: Projecten last: Laatste + projects: Projecten action: Actie project: Project contribute: Bijdragen ok: Ok - first: Eerste website: Website + first: Eerste numbered_step: Stap %{number} + errors_with_fields: Er waren problemen met de volgende velden sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically: Alfabetisch + alphabetically_title: Sorteer projecten alfabetisch sort: Sorteer alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. - alphabetically_title: Sorteer projecten alfabetisch by_task_count: Op aantal acties fourth: Vierde create: Maken - drag_handle: SLEEP - context: Context - errors_with_fields: Er waren problemen met de volgende velden - description: Beschrijving - contexts: Contexten - update: Bijwerken - wiki: Wiki - bugs: Fouten - ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server - email: E-mail - search: Zoeken - month: maand months: maanden + context: Context + contexts: Contexten + todo: actie + next: Volgende + description: Beschrijving + drag_handle: SLEEP + update: Bijwerken + bugs: Fouten weeks: weken forth: Vierde - integrations: - 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_after_id: gemaakt - applescript_success_before_id: Nieuwe actie met ID - layouts: - toggle_notes: Toggle notities - next_actions_rss_feed: RSS-feed van de acties - toggle_notes_title: Toggle alle notities - mobile_navigation: - logout: Afmelden - feeds: Feeds - new_action: 0-Nieuwe actie - starred: 4-Ster - projects: 3-Projecten - tickler: Tickler - contexts: 2-Contexten - home: 1-Start - navigation: - api_docs: REST API Docs - manage_users_title: Toevoegen of verwijderen gebruikers - recurring_todos: Terugkerende acties - feeds: Feeds - stats: Statistieken - starred: Ster - notes_title: Toon alle notities - tickler_title: Tickler - manage_users: Beheren gebruikers - export_title: Import en export van gegevens - integrations_: Integreer Tracks - preferences: Voorkeuren - feeds_title: Zie een lijst met beschikbare feeds - calendar_title: Kalender met acties met deadline - home_title: Start - starred_title: Zie je ster acties - recurring_todos_title: Beheren terugkerende acties - completed_tasks: Gereed - stats_title: Zie je statistieken - tickler: Tickler - organize: Organiseer - view: Bekijk - completed_tasks_title: Afgerond - export: Export - home: Start - contexts_title: Contexten - preferences_title: Toon mijn voorkeuren - projects_title: Projecten - calendar: Agenda - search: Zoeken in alle items - data: - import_successful: De import was succesvol - import_errors: Er hebben zich fouten voorgedaan bij de import + wiki: Wiki + ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server + search: Zoeken + email: E-mail models: project: feed_title: Tracks Projecten @@ -158,19 +160,19 @@ 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 - mobile_todos_per_page: Acties per pagina (mobiel) staleness_starts: Begin van markeren openstaande actie - sms_context: Standaard context voor email + mobile_todos_per_page: Acties per pagina (mobiel) verbose_action_descriptors: Context en project uitschrijven in actielijst - show_number_completed: Aantal te tonen afgeronde acties + sms_context: Standaard context voor email 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 - due_style: Deadline stijl time_zone: Tijdzone + due_style: Deadline stijl locale: Taal - sms_email: Van email show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is + sms_email: Van email show_completed_projects_in_sidebar: Toon afgeronde projecten in sidebar user: last_name: Achternaam @@ -189,12 +191,12 @@ nl: confirmation: komt niet overeen met de configuratie less_than_or_equal_to: moet kleiner of gelijk zijn aan %{count} blank: mag niet leeg zijn - invalid: "mag niet een komma (',') karakter bevatten" + invalid: mag niet een komma (',') karakter bevatten exclusion: is gereserveerd odd: moet oneven zijn too_short: is te kort (minimum is %{count} karakters) - 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 less_than: moet kleiner zijn dan %{count} greater_than: moet groter zijn dan %{count} @@ -211,18 +213,21 @@ nl: header: one: 1 fout voorkomt het kunnen bewaren van deze %{model} other: "%{count} fouten voorkomen dat dit %{model} bewaard kan worden" + data: + import_successful: De import was succesvol + import_errors: Er hebben zich fouten voorgedaan bij de import stats: - 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 - actions: Acties totals_active_project_count: Van deze zijn %{count} actieve projecten + tag_cloud_title: Tag Cloud voor alle acties + actions: Acties + tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) 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} - current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties + 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 @@ -232,64 +237,61 @@ nl: percentage: Percentage running_time: Looptijd van een actie (weken) months_ago: Maanden geleden - totals_action_count: u heeft een totaal van %{count} acties + 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: actions: Acties percentage: Percentage weeks: Looptijd van een actie (weken). Klik op een balk voor meer info - top10_longrunning: Top 10 langstlopende projecten + 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. - top5_contexts: Top 5 contexten - 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_visible_context_count: Van deze zijn %{count} zichtbare contexten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - tags: Tags + action_completion_time_title: Doorlooptijd (alle voltooide acties) + actions_last_year: Acties in de afgelopen jaren + projects: Projecten + totals_context_count: U heeft %{count} contexten. + actions_day_of_week_title: Dag van de week (alle acties) + 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. - more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. - totals_hidden_project_count: "%{count} zijn verborgen" - tod30: Tijd van de dag (laatste 30 dagen) - actions_30days_title: Acties in de afgelopen 30 dagen - actions_further: en verder - time_of_day: Tijd van de dag (alle acties) - totals_tag_count: U heeft %{count} tags geplaatst op acties. - running_time_all: Huidige looptijd van alle onvolledige acties - top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties + tags: Tags tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. - top10_projects_30days: Top 10 project in de laatste 30 dagen - click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + actions_further: en verder + running_time_all: Huidige looptijd van alle onvolledige acties + time_of_day: Tijd van de dag (alle acties) + tod30: Tijd van de dag (laatste 30 dagen) + 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 + totals_tag_count: U heeft %{count} tags geplaatst op acties. + actions_30days_title: Acties in de afgelopen 30 dagen + totals_hidden_project_count: "%{count} zijn verborgen" totals_completed_project_count: en %{count} zijn afgeronde projecten. - click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. - spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten - other_actions_label: (anderen) - top10_projects: Top 10 projecten - spread_of_actions_for_all_context: Verdeling van acties voor alle contexten + top10_projects_30days: Top 10 project in de laatste 30 dagen actions_selected_from_week: Gekozen acties van week + click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. + top10_projects: Top 10 projecten actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt + click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + 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 + other_actions_label: (anderen) + actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. + totals: Totalen + contexts: Contexten time_of_day_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag 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. - totals: Totalen - contexts: Contexten no_actions_selected: Er zijn geen acties geselecteerd. - running_time_all_legend: - actions: Acties - percentage: Percentage - running_time: Looptijd van een actie (weken). Klik op een balk voor meer info + click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. labels: month_avg_completed: "%{months} gem afgerond per maand" completed: Afgerond @@ -297,20 +299,24 @@ nl: avg_created: Gem gemaakt avg_completed: Gem afgerond created: Gemaakt - click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. + running_time_all_legend: + actions: Acties + percentage: Percentage + running_time: Looptijd van een actie (weken). Klik op een balk voor meer info + 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: show_from: Toon vanaf - error_starring_recurring: "Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\'" + error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd completed_actions: Voltooide acties + completed_rest_of_previous_month: Afgerond in de rest van de vorige maand + blocked_by: Geblokkeerd door %{predecessors} completed_recurring: Afgesloten terugkerende todos added_new_next_action: Nieuwe actie toegevoegd - blocked_by: Geblokkeerd door %{predecessors} defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. 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 @@ -323,15 +329,15 @@ nl: no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden action_due_on: (deadline actie op %{date}) edit_action_with_description: Bewerk de actie '%{description}' + tags: Tags (gescheiden door komma's) archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) list_incomplete_next_actions: Toon onvoltooide acties action_deleted_success: Actie succesvol verwijderd - tags: Tags (gescheiden door komma's) + add_another_dependency: Nog een afhankelijkheid toevoegen new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo context_changed: Context veranderd in '%{name}' mobile_todos_page_title: Alle acties - add_another_dependency: Nog een afhankelijkheid toevoegen delete_recurring_action_title: Verwijder de terugkerende actie recurring_actions_title: TRACKS::Terugkerende acties removed_predecessor: "'%{successor}' is verwijderd als afhankelijkheid van '%{predecessor}'." @@ -342,6 +348,7 @@ 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 @@ -349,16 +356,16 @@ nl: completed: acties voltooid due_today: deadline vandaag due_within_a_week: deadline binnen een week - older_completed_items: Oudere voltooide items + task_list_title: TRACKS::Toon acties 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 - delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}' no_recurring_todos: Momenteel zijn er geen terugkerende acties + recurring_pattern_removed: Het herhalingspatroon is verwijderd van %{count} convert_to_project: Maak project 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 no_project: -- Geen project -- show_in_days: Toon over %{days} dagen @@ -366,13 +373,15 @@ nl: 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}' + all_completed: Alle afgeronde acties older_than_days: Ouder dan %{count} dagen + completed_tagged_page_title: "TRACKS:: Afgeronde acties met tag %{tag_name}" edit: Bewerken pending: Wachtend completed_actions_with: Afgeronde acties met de tag %{tag_name} - completed_tasks_title: TRACKS::Voltooide taken - deleted_success: De actie werd met succes verwijderd. feed_title_in_project: In het project '%{project}' + deleted_success: De actie werd met succes verwijderd. + completed_tasks_title: TRACKS::Voltooide taken clear_due_date: Maak deadline leeg error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie hidden_actions: Verborgen acties @@ -390,14 +399,14 @@ nl: calendar_page_title: TRACKS::Agenda in_hidden_state: in verborgen toestand unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? - show_today: Toon vandaag - no_actions_found_title: Geen acties gevonden next_actions_due_date: overdue_by: Over deadline met %{days} dag - overdue_by_plural: Over deadline met %{days} dagen due_today: Deadline vandaag due_in_x_days: Deadline over %{days} dagen + overdue_by_plural: Over deadline met %{days} dagen due_tomorrow: Deadline morgen + 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: @@ -405,29 +414,32 @@ nl: other: "%{count} dagen uitstellen" added_new_next_action_singular: Nieuwe actie toegevoegd no_completed_actions: Momenteel zijn er geen voltooide acties. + feeds: + completed: "Voltooid: %{date}" + due: "Deadline: %{date}" deferred_pending_actions: Uitgestelde/wachtende acties has_x_pending: one: Heeft een wachtende actie other: Heeft %{count} wachtende acties - feeds: - completed: "Voltooid: %{date}" - due: "Deadline: %{date}" + recurring_todos: Terugkerende acties delete_action: Verwijder actie error_deleting_recurring: Er is een fout opgetreden bij het verwijderen van het item \'%{description}\' - recurring_todos: Terugkerende acties delete: Verwijder + no_last_completed_actions: Geen afgeronde acties gevonden 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! + action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} depends_on: Hangt af van tickler_items_due: one: Een tickler item wordt nu zichtbaar - vernieuw de pagina om het te zien. other: "%{count} tickerl items zijn nu zichtbaar - vernieuw de pagina om ze te zien." - action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} + new_related_todo_not_created_short: een nieuwe actie is niet gemaakt completed_today: one: U heeft een actie tot nu toe vandaag voltooid. other: U heeft %{count} acties tot nu toe vandaag voltooid. added_new_next_action_plural: Nieuwe acties toegevoegd - new_related_todo_not_created_short: een nieuwe actie is niet gemaakt + completed_rest_of_week: Afgerond in de rest van deze week + error_starring: Kon niet de ster van deze actie niet omzetten \'%{description}\' calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat due_next_week: Deadline volgende week @@ -439,7 +451,6 @@ nl: no_actions_due_after_this_month: Geen acties met deadline na deze maand due_this_month: Deadline in rest van %{month} no_actions_due_this_month: Geen acties met deadline in de rest van deze maand - error_starring: "Kon niet de ster van deze actie niet omzetten \'%{description}\'" show_tomorrow: Toon morgen recurrence: ends_on_date: Eindigt op %{date} @@ -454,48 +465,8 @@ nl: starts_on: Begint op daily: Dagelijks show_option_always: altijd - yearly_every_x_day: Elke %{month} %{day} - recurrence_on_options: Stel herhaling in op - daily_every_number_day: Elke %{number} dag(en) - weekly_every_number_week: Herhaalt elke %{number} weken op - ends_on: Eindigt op - show_options: Toon de actie - no_end_date: Geen einddatum - day_x_on_every_x_month: Dag %{day} op elke %{month} maand - yearly_options: Instellingen voor jaarlijks terugkerende acties - 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) - yearly: Jaarlijks - monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand - pattern: - due: Deadline - show: Tonen - on_work_days: op werkdagen - weekly: wekelijks - every_n: elke %{n} - every_day: elke dag - every_month: elke maand - on_day_n: op dag %{n} - every_year_on: elk jaar op %{date} - the_xth_day_of_month: de %{x} %{day} van %{month} - every_xth_day_of_every_n_months: elke %{x} %{day} van elke %{n_months} - first: eerste - second: tweede + pattern: third: derde - fourth: vierde - last: laatste - from: vanaf - until: tot - times: voor %{number} keer - day_names: - - zondag - - maandag - - dinsdag - - woensdag - - donderdag - - vrijdag - - zaterdag month_names: - - januari @@ -509,49 +480,109 @@ nl: - september - oktober - november - - december - tagged_page_title: "TRACKS::Tagged met '%{tag_name}'" + - december + every_n: elke %{n} + on_day_n: op dag %{n} + second: tweede + every_xth_day_of_every_n_months: elke %{x} %{day} van elke %{n_months} + weekly: wekelijks + from: vanaf + last: laatste + every_day: elke dag + the_xth_day_of_month: de %{x} %{day} van %{month} + times: voor %{number} keer + every_year_on: elk jaar op %{date} + first: eerste + show: Tonen + day_names: + - zondag + - maandag + - dinsdag + - woensdag + - donderdag + - vrijdag + - zaterdag + on_work_days: op werkdagen + fourth: vierde + due: Deadline + until: tot + every_month: elke maand + yearly_every_x_day: Elke %{month} %{day} + recurrence_on_options: Stel herhaling in op + daily_every_number_day: Elke %{number} dag(en) + show_options: Toon de actie + ends_on: Eindigt op + weekly_every_number_week: Herhaalt elke %{number} weken op + yearly_options: Instellingen voor jaarlijks terugkerende acties + 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) + yearly_every_xth_day: De %{day} %{day_of_week} van %{month} + 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}' no_completed_recurring: Momenteel zijn er geen voltooide terugkerende acties added_dependency: "%{dependency} als afhankelijkheid toegevoegd." + all_completed_tagged_page_title: "TRACKS:: Alle afgeronde acties met tag %{tag_name}" no_deferred_actions: Momenteel zijn er geen uitgestelde acties. + completed_rest_of_month: Afgerond in de rest van deze maand recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid - in_pending_state: in wachtende toestand 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." - add_new_recurring: Voeg een nieuwe terugkerende actie toe - recurring_action_saved: Terugkerende actie opgeslagen - action_saved_to_tickler: Actie opgeslagen in tickler - depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) + action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. completed_in_archive: one: Er is een voltooide actie in het archief. other: Er zijn %{count} afgeronde acties in het archief. + no_incomplete_actions: Er zijn geen onvoltooide acties + 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 to_tickler: naar tickler next_actions_description_additions: completed: in de afgelopen %{count} dagen due_date: met een deadline %{due_date} of eerder overdue: Achterstallig - no_incomplete_actions: Er zijn geen onvoltooide acties + add_new_recurring: Voeg een nieuwe terugkerende actie toe notes: + delete_item_title: Verwijder item 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} no_notes_available: "Momenteel zijn er geen notities: voeg notities toe aan projecten vanaf de individuele project pagina's." + note_header: Notitie %{id} delete_note_confirm: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? + states: + hidden_plural: Verborgen + completed: Afgerond + completed_plural: Afgeronde + visible_plural: Zichtbare + active_plural: Actieve + visible: Zichtbaar + hidden: Verborgen + active: Actief + time: + am: ochtend + formats: + default: "%A, %d %B %Y %H:%M:%S %z" + time: "%H:%M" + short: "%d %B %H:%M" + month_day: "%d %B" + long: "%A, %d. %B %Y, %H:%M" + pm: middag projects: - 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 default_tags_removed_notice: De standaard tags zijn verwijderd + default_context_set: Stel project standaard context in op %{default_context} + no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project hide_form: Verberg formulier page_title: "TRACKS:: Project: %{project}" this_project: Dit project @@ -560,80 +591,63 @@ nl: to_new_project_page: Ga naar de nieuwe projectpagina no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project + no_last_completed_projects: Geen afgeronde projecten gevonden notes: Notities todos_append: in dit project + no_projects: Momenteel zijn er geen projecten hide_form_title: Verberg nieuw project formulier notes_empty: Er zijn geen notities voor dit project - no_projects: Momenteel zijn er geen projecten with_no_default_context: zonder standaard context delete_project: Project verwijderen completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project - 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_context: met een standaard context '%{context_name}' + show_form: Toevoegen van een project + actions_in_project_title: Acties in dit project + add_project: Voeg project toe + set_default_tags_notice: Stel project standaard tags in op %{default_tags} settings: Instellingen - add_note: Een notitie toevoegen with_default_tags: en met '%{tags}' als de standaard tags + list_projects: "TRACKS:: Overzicht van projecten" + project_saved_status: Project opgeslagen + add_note: Een notitie toevoegen is_active: is actief completed_projects: Voltooide projecten - add_project: Voeg project toe - list_projects: "TRACKS:: Overzicht van projecten" - set_default_tags_notice: Stel project standaard tags in op %{default_tags} - project_saved_status: Project opgeslagen hidden_projects: Verborgen projecten delete_project_title: Verwijder het project - was_marked_complete: is gemarkeerd als voltooid - completed_actions: Afgeronde acties voor dit project default_context_removed: Standaard context verwijderd add_note_submit: Notitie toevoegen + completed_actions: Afgeronde acties voor dit project + was_marked_complete: is gemarkeerd als voltooid + default_context: De standaard context voor dit project is %{context} active_projects: Actieve projecten 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 - default_context: De standaard context voor dit project is %{context} state: Dit project is %{state} edit_project_settings: Bewerk project instellingen - time: - am: ochtend - formats: - default: "%A, %d %B %Y %H:%M:%S %z" - time: "%H:%M" - short: "%d %B %H:%M" - long: "%A, %d. %B %Y, %H:%M" - month_day: "%d %B" - pm: middag - states: - hidden_plural: Verborgen - completed: Afgerond - completed_plural: Afgeronde - visible_plural: Zichtbare - active_plural: Actieve - visible: Zichtbaar - active: Actief - hidden: Verborgen + errors: + user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." preferences: - change_identity_url: Verander uw Identity URL - open_id_url: Uw OpenID URL is staleness_starts_after: Markeren openstaande acties begint na %{days} dagen + open_id_url: Uw OpenID URL is + change_identity_url: Verander uw Identity URL change_password: Wijzig uw wachtwoord page_title: "TRACKS:: Voorkeuren" title: Uw voorkeuren token_description: Token (voor feeds en API gebruik) - show_number_completed: Toon %{number} voltooide items is_false: Nee + show_number_completed: Toon %{number} voltooide items edit_preferences: Voorkeuren bewerken page_title_edit: "TRACKS:: Voorkeuren bewerken" is_true: Ja sms_context_none: Geen generate_new_token: Genereer een nieuwe token token_header: Uw token - change_authentication_type: Verander uw authenticatietype 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. - errors: - user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." date: month_names: - @@ -649,6 +663,10 @@ nl: - Oktober - November - December + order: + - :day + - :month + - :year abbr_day_names: - Zo - Ma @@ -657,16 +675,12 @@ nl: - Do - Vr - Za - order: - - :day - - :month - - :year formats: only_day: "%e" default: "%d-%m-%Y" short: "%e %b" - long: "%e %B %Y" month_day: "%B %d" + long: "%e %B %Y" day_names: - Zondag - Maandag @@ -696,6 +710,22 @@ 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_single_title: Voeg een nieuwe actie toe + project_for_all_actions: Project voor alle acties + context_for_all_actions: Context voor alle acties + toggle_multi: Voeg meerdere acties toe + 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 @@ -718,75 +748,35 @@ nl: - Donderdag - Vrijdag - Zaterdag - 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_single_title: Voeg een nieuwe actie toe - project_for_all_actions: Project voor alle acties - context_for_all_actions: Context voor alle acties - toggle_multi: Voeg meerdere acties toe - separate_tags_with_commas: gescheiden door komma's - toggle_multi_title: Toggle single / multi actie formulier - hide_action_form_title: Verberg nieuwe actie formulier - feedlist: - choose_context: Kies de context waar je een feed van wilt - actions_due_today: Acties die vandaag of eerder af moeten - legend: Legenda - all_contexts: Alle contexten - rss_feed: RSS Feed - ical_feed: iCal feed - choose_project: Kies het project waar je een feed van wilt - all_projects: Alle projecten - 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 - select_feed_for_context: Kies de feed voor deze context - 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" - notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." - actions_due_next_week: Acties die binnen 7 dagen afgerond moeten - 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 users: - 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. auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" - successfully_deleted_user: Succesvol gebruiker %{username} verwijderd destroy_successful: Gebruiker %{login} met succes verwijderd + successfully_deleted_user: Succesvol gebruiker %{username} verwijderd total_contexts: Totaal aantal contexten + failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" + openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. new_token_generated: Nieuwe token met succes gegenereerd total_projects: Totaal aantal projecten signup_successful: Aanmelding succesvol voor gebruiker %{username}. change_password_submit: Wachtwoord wijzigen no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" user_created: Gebruiker aangemaakt. - password_updated: Wachtwoord bijgewerkt. - account_signup: Aanmelden voor een account manage_users: Beheren gebruikers - desired_login: Gewenste login + account_signup: Aanmelden voor een account + password_updated: Wachtwoord bijgewerkt. confirm_password: Bevestig wachtwoord - signup: Aanmelden new_user_heading: "Registreer een nieuwe gebruiker:" + signup: Aanmelden auth_type_updated: Authenticatietype bijgewerkt. total_actions: Totaal aanal acties - 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 + desired_login: Gewenste login 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. 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 label_auth_type: Authenticatietype new_password_label: Nieuw wachtwoord register_with_cas: Met uw CAS gebruikersnaam @@ -795,12 +785,36 @@ nl: total_users_count: Je hebt een totaal van %{count} gebruikers 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 - auth_change_submit: Wijzigen authenticatietype - identity_url: Identiteit URL 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. + change_authentication_type: Wijzigen authenticatietype + identity_url: Identiteit URL + auth_change_submit: Wijzigen authenticatietype total_notes: Totaal aantal notities select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. + feedlist: + choose_context: Kies de context waar je een feed van wilt + actions_due_today: Acties die vandaag of eerder af moeten + legend: Legenda + rss_feed: RSS Feed + ical_feed: iCal feed + all_contexts: Alle contexten + choose_project: Kies het project waar je een feed van wilt + all_projects: Alle projecten + 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." + 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 + context_centric_actions: Feeds voor onafgeronde acties in een specifieke context + project_centric: Feeds voor onafgeronde acties in een specifiek project sidebar: list_name_active_contexts: Actieve contexten list_name_active_projects: Actieve projecten @@ -819,19 +833,19 @@ nl: no_contexts_active: Momenteel zijn er geen actieve contexten context_hide: Verberg van de start pagina? hidden_contexts: Verborgen contexten - show_form: Maak een nieuwe context 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 - new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?" status_active: Context is actief - no_actions: Momenteel zijn er geen onafgeronde acties in deze context + 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 status_hidden: Context is verborgen datetime: prompts: @@ -879,10 +893,10 @@ nl: other: over %{count} jaren half_a_minute: halve minuut login: + login_cas: Ga naar het CAS openid_identity_url_not_found: Sorry, geen gebruiker met die identiteit URL bestaat (%{identity_url}) user_no_expiry: Blijf ingelogd sign_in: Meld aan - login_cas: Ga naar het CAS cas_login: CAS Inloggen successful_with_session_info: "Login succesvol:" please_login: Log in om Tracks te gebruiken @@ -899,14 +913,14 @@ nl: option_separator: of, session_time_out: Sessie is verlopen. Gelieve %{link} login_standard: Ga terug naar de standaard login - login_with_openid: inloggen met een OpenID - 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 - notes_matching_query: Notities 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/config/routes.rb b/config/routes.rb index e1fd8c5d..830e4f63 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -36,6 +36,8 @@ ActionController::Routing::Routes.draw do |map| # routed to mobile view of tags. todos.tag 'todos/tag/:name.m', :action => "tag", :format => 'm' todos.tag 'todos/tag/:name', :action => "tag", :name => /.*/ + todos.done_tag 'todos/done/tag/:name', :action => "done_tag" + todos.all_done_tag 'todos/all_done/tag/:name', :action => "all_done_tag" todos.tags 'tags.autocomplete', :action => "tags", :format => 'autocomplete' todos.auto_complete_for_predecessor 'auto_complete_for_predecessor', :action => 'auto_complete_for_predecessor' diff --git a/features/step_definitions/container_steps.rb b/features/step_definitions/container_steps.rb index b3228384..76216a7d 100644 --- a/features/step_definitions/container_steps.rb +++ b/features/step_definitions/container_steps.rb @@ -60,6 +60,61 @@ Then /^I should not see "([^"]*)" in the context container for "([^"]*)"$/ do |t end end +Then /^I should see "([^"]*)" in the deferred container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + +Then /^I should see "([^"]*)" in the action container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='p#{todo.project.id}items']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + +Then /^I should see "([^"]*)" in the completed container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='completed_container']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + +Then /^I should not see "([^"]*)" in the deferred container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + !selenium.is_element_present(xpath) + end +end + +Then /^I should see "([^"]*)" in the due next month container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='due_after_this_month']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +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 @@ -75,19 +130,25 @@ end Then /^I should see "([^"]*)" in the active recurring todos container$/ do |repeat_pattern| repeat = @current_user.recurring_todos.find_by_description(repeat_pattern) - repeat.should_not be_nil - xpath = "//div[@id='active_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" - selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) - selenium.is_visible(xpath).should be_true + unless repeat.nil? + xpath = "//div[@id='active_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" + selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) + selenium.is_visible(xpath).should be_true + else + Then "I should not see \"#{repeat_pattern}\"" + end end Then /^I should not see "([^"]*)" in the completed recurring todos container$/ do |repeat_pattern| repeat = @current_user.recurring_todos.find_by_description(repeat_pattern) - repeat.should_not be_nil - - xpath = "//div[@id='completed_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" - selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) - selenium.is_visible(xpath).should be_true + + unless repeat.nil? + xpath = "//div[@id='completed_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" + selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) + selenium.is_visible(xpath).should be_true + else + Then "I should not see \"#{repeat_pattern}\"" + end end diff --git a/features/step_definitions/generic_steps.rb b/features/step_definitions/generic_steps.rb index 4b876ad2..41513295 100644 --- a/features/step_definitions/generic_steps.rb +++ b/features/step_definitions/generic_steps.rb @@ -2,6 +2,10 @@ Given /this is a pending scenario/ do pending end +Given /^I set the locale to "([^"]*)"$/ do |locale| + @locale = locale +end + Given /^I am working on the mobile interface$/ do @mobile_interface = true end @@ -11,7 +15,7 @@ Then /the badge should show (.*)/ do |number| xpath= "//span[@id='badge_count']" if response.respond_to? :selenium - response.should have_xpath(xpath) + response.should have_xpath(xpath) badge = response.selenium.get_text("xpath=#{xpath}").to_i else response.should have_xpath(xpath) do |node| diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index ad4eb612..f77d41c8 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -33,10 +33,6 @@ Given /^I have ([0-9]+) deferred todos$/ do |count| end end -Given /^I have a deferred todo "([^"]*)"$/ do |description| - Given "I have a deferred todo \"#{description}\" in the context \"context B\"" -end - Given /^I have a deferred todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| context = @current_user.contexts.find_or_create(:name => context_name) todo = @current_user.todos.create!(:context_id => context.id, :description => description) @@ -44,23 +40,40 @@ Given /^I have a deferred todo "([^"]*)" in the context "([^"]*)"$/ do |descript todo.save! end +Given /^I have a deferred todo "([^"]*)"$/ do |description| + Given "I have a deferred todo \"#{description}\" in the context \"context B\"" +end + Given /^I have ([0-9]+) completed todos in project "([^"]*)" in context "([^"]*)"$/ do |count, project_name, context_name| - context = @current_user.contexts.find_by_name(context_name) - context.should_not be_nil - - project = @current_user.projects.find_by_name(project_name) - project.should_not be_nil - + @context = @current_user.contexts.find_by_name(context_name) + @context.should_not be_nil + + @project = @current_user.projects.find_by_name(project_name) + @project.should_not be_nil + + @todos = [] count.to_i.downto 1 do |i| - todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}", :project_id => project.id) - todo.complete! + @todo = @current_user.todos.create!(:context_id => @context.id, :description => "todo #{i}", :project_id => @project.id) + @todo.complete! + @todos << @todo end end +Given /^I have a completed todo "([^"]*)" in project "([^"]*)" in context "([^"]*)"$/ do |action_description, project_name, context_name| + Given "I have 1 completed todos in project \"#{project_name}\" in context \"#{context_name}\"" + @todos[0].description = action_description + @todos[0].save! +end + +Given /^I have (\d+) completed todos in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| + Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\"" + @todos.each { |t| t.tag_with(tags); t.save! } +end + Given /^I have ([0-9]+) completed todos in context "([^"]*)"$/ do |count, context_name| context = @current_user.contexts.find_by_name(context_name) context.should_not be_nil - + count.to_i.downto 1 do |i| todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}") todo.complete! @@ -73,11 +86,13 @@ Given /^I have ([0-9]+) completed todos$/ do |count| end Given /^I have ([0-9]+) completed todos with a note$/ do |count| - context = @current_user.contexts.find_or_create(:name => "context D") - count.to_i.downto 1 do |i| - todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}", :notes => "note #{i}") - todo.complete! - end + Given "I have #{count} completed todos" + @todos.each { |t| t.notes = "note #{t.id}"; t.save!} +end + +Given /^I have ([0-9]+) completed todos with a note in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| + Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\" with tags \"#{tags}\"" + @todos.each { |t| t.notes = "note #{t.id}"; t.save! } end Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| @@ -146,10 +161,14 @@ When /^I mark "([^"]*)" as uncompleted$/ do |action_description| todo_container = "p#{todo.project_id}items" if @source_view=="project" todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" - todo_container.should_not == "fail" + todo_container.should_not == "fail" unless @source_view=="done" - wait_for :timeout => 5 do - selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") + unless @source_view=="done" + wait_for :timeout => 5 do + selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") + end + else + wait_for_ajax end end @@ -157,7 +176,6 @@ When /^I mark the complete todo "([^"]*)" active$/ do |action_description| When "I mark \"#{action_description}\" as uncompleted" end - When /^I star the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -175,6 +193,24 @@ When /^I star the action "([^"]*)"$/ do |action_description| end end +When /^I unstar the action "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='starred_todo']" + + selenium.is_element_present(xpath_starred).should be_true + + star_img = "//img[@id='star_img_#{todo.id}']" + selenium.click(star_img, :wait_for => :ajax, :javascript_framework => :jquery) + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_unstarred) + end +end + + Then /^I should see a starred "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -184,6 +220,18 @@ Then /^I should see a starred "([^"]*)"$/ do |action_description| selenium.is_element_present(xpath_starred).should be_true end +Then /^I should see an unstarred "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_starred) + end +end + + When /^I delete the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -231,61 +279,6 @@ Then /^a confirmation for adding a new context "([^"]*)" should be asked$/ do |c selenium.get_confirmation.should == "New context '#{context_name}' will be also created. Are you sure?" end -Then /^I should see "([^"]*)" in the deferred container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - -Then /^I should see "([^"]*)" in the action container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='p#{todo.project.id}items']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - -Then /^I should see "([^"]*)" in the completed container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='completed_container']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - -Then /^I should not see "([^"]*)" in the deferred container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - !selenium.is_element_present(xpath) - end -end - -Then /^I should see "([^"]*)" in the due next month container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='due_after_this_month']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - Then /^the selected project should be "([^"]*)"$/ do |content| # Works for mobile. TODO: make it work for both mobile and non-mobile field_labeled("Project").element.search(".//option[@selected = 'selected']").inner_html.should =~ /#{content}/ diff --git a/features/support/paths.rb b/features/support/paths.rb index 3eaea682..5703b413 100644 --- a/features/support/paths.rb +++ b/features/support/paths.rb @@ -7,24 +7,47 @@ module NavigationHelpers # def path_to(page_name) options = @mobile_interface ? {:format => :m} : {} + options.merge({:locale => @locale}) unless @locale.blank? + puts "@@@ l=#{@locale} sv = #{@source_view}- #{options}" @source_view = nil case page_name when /the home\s?page/ @source_view = "todos" root_path(options) + when /the done page/ + @source_view = "done" done_overview_path(options) when /the done actions page for context "([^"]*)"/i + @source_view = "done" context = @current_user.contexts.find_by_name($1) - done_todos_context_path(context) + done_todos_context_path(context, options) when /the done actions page for project "([^"]*)"/i + @source_view = "done" project = @current_user.projects.find_by_name($1) - done_todos_project_path(project) + done_todos_project_path(project, options) + when /the done actions page for tag "([^"]*)"/i + @source_view = "done" + done_tag_path($1, options) when /the done actions page/ + @source_view = "done" done_todos_path(options) + when /the all done actions page for context "([^"]*)"/i + @source_view = "done" + context = @current_user.contexts.find_by_name($1) + all_done_todos_context_path(context, options) + when /the all done actions page for project "([^"]*)"/i + @source_view = "done" + project = @current_user.projects.find_by_name($1) + all_done_todos_project_path(project, options) + when /the all done actions page for tag "([^"]*)"/i + @source_view = "done" + all_done_tag_path($1, options) when /the all done actions page/ + @source_view = "done" all_done_todos_path(options) + when /the statistics page/ @source_view = "stats" stats_path(options) diff --git a/features/view_done.feature b/features/view_done.feature index 35fc4a44..6a9e4dcb 100644 --- a/features/view_done.feature +++ b/features/view_done.feature @@ -8,79 +8,81 @@ Feature: Show done | login | password | is_admin | | testuser | secret | false | And I have logged in as "testuser" with password "secret" - And I have 1 completed todos with a note + And I have a context called "@pc" + And I have a project called "test project" + And I have 1 completed todos in project "test project" in context "@pc" with tags "starred" Scenario: Visit done overview page When I go to the done page Then I should see "Last Completed Actions" And I should see "Last Completed Projects" And I should see "Last Completed Repeating Actions" - - Scenario: Home page links to show all completed todos - When I go to the home page + + Scenario Outline: Page with actions links to show all completed actions + When I go to the Then I should see "Completed actions" And I should see "Show all" When I follow "Show all" - Then I should be on the done actions page + Then I should be on the + + Scenarios: + | page | next page | + | home page | done actions page | + | context page for "@pc" | done actions page for context "@pc" | + | "test project" project | done actions page for project "test project" | + | tag page for "starred" | done actions page for tag "starred" | Scenario Outline: I can see all todos completed in the last timeperiod - Given I have a context called "@pc" - And I have a project called "test" - And I have 1 completed todos in project "test" in context "@pc" When I go to the Then I should see "todo 1" And I should see "Completed today" And I should see "Completed in the rest of this week" And I should see "Completed in the rest of this month" - + Scenarios: - | page | - | done actions page | - | done actions page for context "@pc" | - | done actions page for project "test" | - - Scenario: I can see all todos completed - When I go to the done actions page + | page | + | done actions page | + | done actions page for context "@pc" | + | done actions page for project "test project" | + | done actions page for tag "starred" | + + Scenario Outline: I can see all todos completed + When I go to the And I should see "You can see all completed actions here" When I follow "here" - Then I should be on the all done actions page - - Scenario: I can browse all todos completed by page - Given I have 50 completed todos with a note - When I go to the all done actions page + Then I should be on the + + Scenarios: + | page | other page | + | done actions page | all done actions page | + | done actions page for project "test project" | all done actions page for project "test project" | + | done actions page for context "@pc" | all done actions page for context "@pc" | + | done actions page for tag "starred" | all done actions page for tag "starred" | + + Scenario Outline: I can browse all todos completed by page + Given I have 50 completed todos with a note in project "test project" in context "@pc" with tags "starred" + When I go to the Then I should see the page selector When I follow "2" - Then I should be on the all done actions page + Then I should be on the And the page should be "2" - - Scenario: The context page for a context shows a link to all completed actions - Given I have a context called "@pc" - And I have 1 completed todos in context "@pc" - When I go to the context page for "@pc" - Then I should see "Completed actions" - And I should see "Show all" - When I follow "Show all" - Then I should be on the done actions page for context "@pc" - Scenario: The project page for a project shows a link to all completed actions - Given I have a context called "@pc" - And I have a project called "test" - And I have 1 completed todos in project "test" in context "@pc" - When I go to the "test" project - Then I should see "Completed actions" - And I should see "Show all" - When I follow "Show all" - Then I should be on the done actions page for project "test" + Scenarios: + | page | + | all done actions page | + | all done actions page for project "test project" | + | all done actions page for context "@pc" | + | all done actions page for tag "starred" | Scenario: The projects page shows a link to all completed projects Given I have a completed project called "finished" When I go to the projects page - Then I should see "finished" + Then I should see "finished" And I should see "Show all" When I follow "Show all" Then I should be on the done projects page And I should see "finished" - + Scenario: I can browse all completed projects by page Given I have 40 completed projects When I go to the projects page @@ -95,12 +97,12 @@ Feature: Show done Scenario: The recurring todos page shows a link to all completed recurring todos Given I have a completed repeat pattern "finished" When I go to the recurring todos page - Then I should see "finished" + Then I should see "finished" And I should see "Show all" When I follow "Show all" Then I should be on the done recurring todos page And I should see "finished" - + Scenario: I can browse all completed recurring todos by page Given I have 40 completed repeat patterns When I go to the recurring todos page @@ -110,31 +112,98 @@ Feature: Show done When I follow "2" Then I should be on the done recurring todos page And the page should be "2" - + @selenium Scenario: I can toggle a done recurring todo active from done page - Given I have a completed repeat pattern "test" + Given I have a completed repeat pattern "test pattern" When I go to the done recurring todos page - Then I should see "test" - When I mark the pattern "test" as active - Then I should not see "test" in the completed recurring todos container + Then I should see "test pattern" + When I mark the pattern "test pattern" as active + Then I should not see "test pattern" in the completed recurring todos container When I go to the recurring todos page - Then I should see "test" in the active recurring todos container + Then I should see "test pattern" in the active recurring todos container + @selenium Scenario: I can delete a recurring todo from the done page - Given this scenario is pending - - Scenario: I can toggle a todo active from the done page - Given this scenario is pending + Given I have a completed repeat pattern "test pattern" + When I go to the done recurring todos page + Then I should see "test pattern" + When I delete the pattern "test pattern" + Then I should not see "test pattern" in the completed recurring todos container + When I go to the recurring todos page + Then I should see "test pattern" in the active recurring todos container - Scenario: I can toggle a todo active from the all done page - Given this scenario is pending - - Scenario: I can toggle a todo active from the project done page - Given this scenario is pending + @selenium @wip + Scenario Outline: I can toggle a todo active from the done pages + When I go to the + Then I should see "todo 1" + When I mark the complete todo "todo 1" active + Then I should not see "todo 1" + When I go to the + Then I should see "todo 1" in the context container for "@pc" - Scenario: I can toggle a todo active from the context done page - Given this scenario is pending + Scenarios: + | page | next page | + | done actions page | home page | + | all done actions page | home page | + | done actions page for context "@pc" | context page for "@pc" | + | done actions page for project "test project" | "test project" project | + | done actions page for tag "starred" | home page | + | all done actions page for context "@pc" | context page for "@pc" | + | all done actions page for project "test project"| "test project" project | + | all done actions page for tag "starred" | home page | + @selenium + Scenario Outline: I can toggle the star of a todo from the done pages + When I go to the + Then I should see a starred "todo 1" + When I unstar the action "todo 1" + Then I should see an unstarred "todo 1" + + Scenarios: + | page | + | done actions page | + | all done actions page | + | done actions page for context "@pc" | + | done actions page for project "test project" | + | done actions page for tag "starred" | + | all done actions page for context "@pc" | + | all done actions page for project "test project"| + | all done actions page for tag "starred" | + + @selenium Scenario: I can edit a project to active from the project done page Given this scenario is pending + + @wip + Scenario Outline: All pages are internationalized + Given I set the locale to "" + When I go to the + Then I should not see "translation missing" + + Scenarios: + | page | locale | + | done actions page | en | + | all done actions page | en | + | done actions page for context "@pc" | en | + | done actions page for project "test project" | en | + | done actions page for tag "starred" | en | + | all done actions page for context "@pc" | en | + | all done actions page for project "test project"| en | + | all done actions page for tag "starred" | en | + | done actions page | nl | + | all done actions page | nl | + | done actions page for context "@pc" | nl | + | done actions page for project "test project" | nl | + | done actions page for tag "starred" | nl | + | all done actions page for context "@pc" | nl | + | all done actions page for project "test project"| nl | + | all done actions page for tag "starred" | nl | + | done actions page | de | + | all done actions page | de | + | done actions page for context "@pc" | de | + | done actions page for project "test project" | de | + | done actions page for tag "starred" | de | + | all done actions page for context "@pc" | de | + | all done actions page for project "test project"| de | + | all done actions page for tag "starred" | de |