From bfc6189611b6ae97d7c6aa5e80333ef3cbd36c46 Mon Sep 17 00:00:00 2001 From: Eric Allen Date: Fri, 16 Oct 2009 19:15:50 -0400 Subject: [PATCH] Project default tags --- app/controllers/projects_controller.rb | 1 + app/controllers/todos_controller.rb | 1 + app/views/projects/update.js.rjs | 5 +++-- app/views/shared/_add_new_item_form.rhtml | 2 +- app/views/todos/create.js.rjs | 1 + .../project_detail/prefill_default_tags.rsel | 16 ++++++++++++++++ 6 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 test/selenium/project_detail/prefill_default_tags.rsel diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 899c435d..9bdadaf5 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -53,6 +53,7 @@ class ProjectsController < ApplicationController @down_count = @count + @deferred.size @next_project = current_user.projects.next_from(@project) @previous_project = current_user.projects.previous_from(@project) + @default_tags = @project.default_tags respond_to do |format| format.html format.m &render_project_mobile diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 5b568af2..ba177b9d 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -95,6 +95,7 @@ class TodosController < ApplicationController @projects = current_user.projects.find(:all) if @new_project_created @initial_context_name = params['default_context_name'] @initial_project_name = params['default_project_name'] + @default_tags = @todo.project.default_tags unless @todo.project.nil? render :action => 'create' end format.xml do diff --git a/app/views/projects/update.js.rjs b/app/views/projects/update.js.rjs index a38b79d4..46524f1a 100644 --- a/app/views/projects/update.js.rjs +++ b/app/views/projects/update.js.rjs @@ -20,9 +20,10 @@ else page.replace_html dom_id(@project, 'container'), :partial => 'project_settings', :locals => { :project => @project } page[dom_id(@project)].show - page << "$('#todo_context_name').val('#{@project.default_context.name}');" if @project.default_context + page['todo_context_name'].value = @project.default_context.name if @project.default_context + page['#todo_project_name'].value = @project.name + page['tag_list'].value = @project.default_tags if @project.default_tags page << "$('input[name=default_context_name]').val('#{@project.default_context.name}');" if @project.default_context - page << "$('#todo_project_name').val('#{@project.name}');" page << "defaultContexts = #{default_contexts_for_autocomplete};" page << "defaultTags = #{default_tags_for_autocomplete};" end diff --git a/app/views/shared/_add_new_item_form.rhtml b/app/views/shared/_add_new_item_form.rhtml index 99fcb4db..ca2c2032 100644 --- a/app/views/shared/_add_new_item_form.rhtml +++ b/app/views/shared/_add_new_item_form.rhtml @@ -38,7 +38,7 @@ - <%= text_field_tag "tag_list", nil, :size => 30, :tabindex => 5 %> + <%= text_field_tag "tag_list", @default_tags, :size => 30, :tabindex => 5 %> <%= content_tag("div", "", :id => "tag_list_auto_complete", :class => "auto_complete") %>
diff --git a/app/views/todos/create.js.rjs b/app/views/todos/create.js.rjs index c746dda8..5f826699 100644 --- a/app/views/todos/create.js.rjs +++ b/app/views/todos/create.js.rjs @@ -9,6 +9,7 @@ if @saved page.send :record, "$('#todo-form-new-action').clearForm();$('#todo-form-new-action input:first').focus();" page['todo_context_name'].value = @initial_context_name page['todo_project_name'].value = @initial_project_name + page['tag_list'].value = @default_tags #page << "updateContextNamesForAutoComplete(#{context_names_for_autocomplete})" if @new_context_created #page << "projectAutoCompleter.options.array = #{project_names_for_autocomplete}" if @new_project_created if should_show_new_item() diff --git a/test/selenium/project_detail/prefill_default_tags.rsel b/test/selenium/project_detail/prefill_default_tags.rsel new file mode 100644 index 00000000..10a83746 --- /dev/null +++ b/test/selenium/project_detail/prefill_default_tags.rsel @@ -0,0 +1,16 @@ +setup :fixtures => :all +login :as => 'admin' + +#first, defer a todo +open "/projects/1" +click 'css=.project_settings a' +wait_for_visible "project[default_context_name]" +type "project_default_tags", "atag" +click 'css=.positive' +wait_for_value "tag_list", "atag" +open "/projects/1" +assert_value "tag_list", "atag" +type "todo_description", "a new task" +type "tag_list", "foo" +click "todo_new_action_submit" +wait_for_value "tag_list", "atag"