diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb
index 12b2dbd4..8442763f 100644
--- a/app/controllers/todos_controller.rb
+++ b/app/controllers/todos_controller.rb
@@ -49,6 +49,7 @@ class TodosController < ApplicationController
@source_view = params['_source_view'] || 'todo'
p = TodoCreateParamsHelper.new(params, prefs)
p.parse_dates() unless mobile?
+ tag_list = p.tag_list
@todo = current_user.todos.build(p.attributes)
@@ -56,6 +57,11 @@ 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?
@@ -67,8 +73,8 @@ class TodosController < ApplicationController
@todo.update_state_from_project
@saved = @todo.save
- unless (@saved == false) || p.tag_list.blank?
- @todo.tag_with(p.tag_list)
+ unless (@saved == false) || tag_list.blank?
+ @todo.tag_with(tag_list)
@todo.tags.reload
end
diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb
index 8e1aa83e..1ffd964f 100644
--- a/app/helpers/todos_helper.rb
+++ b/app/helpers/todos_helper.rb
@@ -60,11 +60,21 @@ module TodosHelper
url = {:controller => 'todos', :action => 'defer', :id => todo.id, :days => days,
:_source_view => (@source_view.underscore.gsub(/\s+/,'_') rescue "")}
url[:_tag_name] = @tag_name if @source_view == 'tag'
- return link_to_remote(
- image_tag("defer_#{days}_off.png", :mouseover => "defer_#{days}.png", :alt => "", :align => "absmiddle")+" Defer #{pluralize(days, "day")}",
- :url => url,
- :before => todo_start_waiting_js(todo),
- :complete => todo_stop_waiting_js)
+
+ futuredate = (@todo.show_from || @todo.user.date) + days.days
+ puts "DUE: #{@todo.due}, futuredate: #{futuredate}"
+ if @todo.due && futuredate > @todo.due
+ return link_to_function(
+ image_tag("defer_#{days}_off.png", :mouseover => "defer_#{days}.png", :alt => "", :align => "absmiddle")+" Defer #{pluralize(days, "day")}",
+ "alert('Defer date is after due date. Please edit and adjust due date before deferring.')"
+ )
+ else
+ return link_to_remote(
+ image_tag("defer_#{days}_off.png", :mouseover => "defer_#{days}.png", :alt => "", :align => "absmiddle")+" Defer #{pluralize(days, "day")}",
+ :url => url,
+ :before => todo_start_waiting_js(todo),
+ :complete => todo_stop_waiting_js)
+ end
end
def todo_start_waiting_js(todo)
@@ -276,13 +286,5 @@ module TodosHelper
def image_tag_for_star(todo)
class_str = todo.starred? ? "starred_todo" : "unstarred_todo"
image_tag("blank.png", :title =>"Star action", :class => class_str)
- end
-
- def defer_link(days)
- url = {:controller => 'todos', :action => 'defer', :id => @todo.id, :days => days,
- :_source_view => (@source_view.underscore.gsub(/\s+/,'_') rescue "")}
- url[:_tag_name] = @tag_name if @source_view == 'tag'
- link_to_remote image_tag("defer_#{days}.png", :alt => "Defer #{pluralize(days, 'day')}"), :url => url
end
-
end
diff --git a/app/views/projects/_project_form.rhtml b/app/views/projects/_project_form.rhtml
index 8aab07b9..10aa601a 100644
--- a/app/views/projects/_project_form.rhtml
+++ b/app/views/projects/_project_form.rhtml
@@ -19,6 +19,10 @@
<%= render :partial => 'default_context_autocomplete' %>
+
+ <%= text_field_tag("project[default_tags]", project.default_tags, {:tabindex=>2,:size=> 25}) %>
+
+