diff --git a/app/controllers/contexts_controller.rb b/app/controllers/contexts_controller.rb index 228434d5..34c11d26 100644 --- a/app/controllers/contexts_controller.rb +++ b/app/controllers/contexts_controller.rb @@ -83,10 +83,14 @@ class ContextsController < ApplicationController end @context.attributes = params["context"] if @context.save - if params['wants_render'] + if boolean_param('wants_render') respond_to do |format| format.js end + elsif boolean_param('update_context_name') + @contexts = current_user.projects + render :template => 'contexts/update_context_name.js.rjs' + return else render :text => success_text || 'Success' end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index da268803..4cd565d2 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -136,6 +136,10 @@ class ProjectsController < ApplicationController @initial_context_name = @project.default_context.name render :template => 'projects/update_default_context.js.rjs' return + elsif boolean_param('update_project_name') + @projects = current_user.projects + render :template => 'projects/update_project_name.js.rjs' + return else render :text => success_text || 'Success' return diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index bb72723b..3dddc2bd 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -89,6 +89,7 @@ class TodosController < ApplicationController @contexts = current_user.contexts.find(:all) if @new_context_created @projects = current_user.projects.find(:all) if @new_project_created @initial_context_name = params['default_context_name'] + @initial_project_name = params['default_project_name'] render :action => 'create' end format.xml do diff --git a/app/views/contexts/_context.rhtml b/app/views/contexts/_context.rhtml index 7fb2e942..bd90099f 100644 --- a/app/views/contexts/_context.rhtml +++ b/app/views/contexts/_context.rhtml @@ -25,7 +25,9 @@ <% end -%> <% if source_view_is :context %> <%= context.name %> - <%= in_place_editor 'context_name_in_place_editor', { :url => { :controller => 'contexts', :action => 'update', :id => context.id, :field => 'name', :wants_render => false, :escape => false} , :options=>"{method:'put'}" } %> + <%= in_place_editor 'context_name_in_place_editor', { + :url => { :controller => 'contexts', :action => 'update', :id => context.id, :field => 'name', :update_context_name => true, :escape => false}, + :options=>"{method:'put'}", :script => true } %> <% else %> <%= link_to_context( context ) %> <% end %> diff --git a/app/views/contexts/update_context_name.js.rjs b/app/views/contexts/update_context_name.js.rjs new file mode 100644 index 00000000..acee3308 --- /dev/null +++ b/app/views/contexts/update_context_name.js.rjs @@ -0,0 +1,10 @@ +page['context_name_in_place_editor'].replace_html @context.name + +page['default_context_name_id'].value = @context.name +page['todo_context_name'].value = @context.name + +# renew context auto complete array +page << "contextAutoCompleter.options.array = #{context_names_for_autocomplete}; contextAutoCompleter.changed = true" + +status_message = "Name of context was changed" +page.notify :notice, status_message, 5.0 diff --git a/app/views/projects/_project.rhtml b/app/views/projects/_project.rhtml index 3e1d6418..2006c184 100644 --- a/app/views/projects/_project.rhtml +++ b/app/views/projects/_project.rhtml @@ -6,7 +6,9 @@ <%= image_tag("collapse.png") %> <% end %> <%= project.name %> - <%= in_place_editor 'project_name_in_place_editor', { :url => { :controller => 'projects', :action => 'update', :id => project.id, :field => 'name', :wants_render => false, :escape => false} , :options=>"{method:'put'}" } %> + <%= in_place_editor 'project_name_in_place_editor', { + :url => { :controller => 'projects', :action => 'update', :id => project.id, :field => 'name', :update_project_name => true, :escape => false} , + :options=>"{method:'put'}", :script => true} %> <% unless project.description.blank? -%>
<%= sanitize(project.description) %>
diff --git a/app/views/projects/update_project_name.js.rjs b/app/views/projects/update_project_name.js.rjs new file mode 100644 index 00000000..e643738b --- /dev/null +++ b/app/views/projects/update_project_name.js.rjs @@ -0,0 +1,10 @@ +page['project_name_in_place_editor'].replace_html @project.name + +page['default_project_name_id'].value = @project.name +page['todo_project_name'].value = @project.name + +# renew project auto complete array +page << "projectAutoCompleter.options.array = #{project_names_for_autocomplete}; projectAutoCompleter.changed = true" + +status_message = "Name of project was changed" +page.notify :notice, status_message, 5.0 diff --git a/app/views/shared/_add_new_item_form.rhtml b/app/views/shared/_add_new_item_form.rhtml index 49345eb9..ee43217e 100644 --- a/app/views/shared/_add_new_item_form.rhtml +++ b/app/views/shared/_add_new_item_form.rhtml @@ -34,6 +34,7 @@ <%= text_area( "todo", "notes", "cols" => 29, "rows" => 6, "tabindex" => 2) %> + diff --git a/app/views/todos/create.js.rjs b/app/views/todos/create.js.rjs index eb796a77..404efb75 100644 --- a/app/views/todos/create.js.rjs +++ b/app/views/todos/create.js.rjs @@ -8,6 +8,7 @@ if @saved page['badge_count'].replace_html @down_count page.send :record, "Form.reset('todo-form-new-action');Form.focusFirstElement('todo-form-new-action')" page['todo_context_name'].value = @initial_context_name + page['todo_project_name'].value = @initial_project_name 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()