Pre-populate default tags from project instead of adding them when a todo is created. Fixes #879.

This commit is contained in:
Eric Allen 2009-05-02 17:38:26 -04:00
parent 7c1b4c0a24
commit 0fda4506eb
9 changed files with 63 additions and 14 deletions

View file

@ -133,6 +133,10 @@ class ApplicationController < ActionController::Base
Hash[*projects.reject{ |p| p.default_context.nil? }.map{ |p| [p.name, p.default_context.name] }.flatten].to_json
end
def build_default_project_tags_map(projects)
Hash[*projects.reject{ |p| p.default_tags.nil? }.map{ |p| [p.name, p.default_tags] }.flatten].to_json
end
# Here's the concept behind this "mobile content negotiation" hack: In
# addition to the main, AJAXy Web UI, Tracks has a lightweight low-feature
# 'mobile' version designed to be suitablef or use from a phone or PDA. It

View file

@ -219,6 +219,7 @@ class ContextsController < ApplicationController
@count = @not_done_todos.size
@default_project_context_name_map = build_default_project_context_name_map(@projects).to_json
@default_project_tags_map = build_default_project_tags_map(@projects).to_json
end
end

View file

@ -54,6 +54,7 @@ class ProjectsController < ApplicationController
@next_project = current_user.projects.next_from(@project)
@previous_project = current_user.projects.previous_from(@project)
@default_project_context_name_map = build_default_project_context_name_map(current_user.projects).to_json
@default_project_tags_map = build_default_project_tags_map(current_user.projects).to_json
respond_to do |format|
format.html
format.m &render_project_mobile

View file

@ -31,7 +31,7 @@ class RecurringTodosController < ApplicationController
def update
# TODO: write tests for updating
@recurring_todo.tag_with(params[:tag_list]) if params[:tag_list]
@recurring_todo.tag_with(params[:edit_recurring_todo_tag_list]) if params[:edit_recurring_todo_tag_list]
@original_item_context_id = @recurring_todo.context_id
@original_item_project_id = @recurring_todo.project_id
@ -252,6 +252,7 @@ class RecurringTodosController < ApplicationController
@projects = current_user.projects.find(:all, :include => [:default_context])
@contexts = current_user.contexts.find(:all)
@default_project_context_name_map = build_default_project_context_name_map(@projects).to_json
@default_project_tags_map = build_default_project_tags_map(@projects).to_json
end
def get_recurring_todo_from_param

View file

@ -60,11 +60,6 @@ class TodosController < ApplicationController
project = current_user.projects.find_or_create_by_name(p.project_name)
@new_project_created = project.new_record_before_save?
@todo.project_id = project.id
if tag_list.blank?
tag_list = project.default_tags unless project.default_tags.blank?
else
tag_list += ','+project.default_tags unless project.default_tags.blank?
end
end
if p.context_specified_by_name?
@ -363,7 +358,8 @@ class TodosController < ApplicationController
@not_done_todos = current_user.deferred_todos
@count = @not_done_todos.size
@down_count = @count
@default_project_context_name_map = build_default_project_context_name_map(@projects).to_json unless mobile?
@default_project_context_name_map = build_default_project_context_name_map(@projects).to_json
@default_project_tags_map = build_default_project_tags_map(@projects).to_json
respond_to do |format|
format.html
@ -434,6 +430,7 @@ class TodosController < ApplicationController
respond_to do |format|
format.html {
@default_project_context_name_map = build_default_project_context_name_map(@projects).to_json
@default_project_tags_map = build_default_project_tags_map(@projects).to_json
}
format.m {
cookies[:mobile_url]= {:value => request.request_uri, :secure => SITE_CONFIG['secure_cookies']}
@ -469,6 +466,7 @@ class TodosController < ApplicationController
@projects = current_user.projects.find(:all)
@default_project_context_name_map = build_default_project_context_name_map(@projects).to_json
@default_project_tags_map = build_default_project_tags_map(@projects).to_json
due_today_date = Time.zone.now
due_this_week_date = Time.zone.now.end_of_week
@ -750,6 +748,7 @@ class TodosController < ApplicationController
end
@default_project_context_name_map = build_default_project_context_name_map(@projects).to_json
@default_project_tags_map = build_default_project_tags_map(@projects).to_json
render
end