Merge pull request #1875 from C-Otto/tracks-1836

(2.3) Provide data needed for partial views
This commit is contained in:
Dan Rice 2015-06-14 18:15:59 -04:00
commit ebec4f089d
5 changed files with 23 additions and 5 deletions

View file

@ -434,6 +434,8 @@ class TodosController < ApplicationController
end
provide_project_or_context_for_view
# this is set after save and cleared after reload, so save it here
@removed_predecessors = @todo.removed_predecessors
@ -466,6 +468,15 @@ class TodosController < ApplicationController
end
end
def provide_project_or_context_for_view
# see application_helper:source_view_key, used in shown partials
if source_view_is :project
@project = @todo.project
elsif source_view_is :context
@context = @todo.context
end
end
def destroy
@source_view = params['_source_view'] || 'todo'
@todo = current_user.todos.find(params['id'])

View file

@ -513,7 +513,7 @@ module TodosHelper
def update_needs_to_remove_todo_from_container
source_view do |page|
page.context { return @context_changed || @todo_deferred_state_changed || @todo_pending_state_changed || @todo_should_be_hidden }
page.project { return @todo_deferred_state_changed || @todo_pending_state_changed || @project_changed}
page.project { return @context_changed || @todo_deferred_state_changed || @todo_pending_state_changed || @project_changed}
page.deferred { return todo_moved_out_of_container || !(@todo.deferred? || @todo.pending?) }
page.calendar { return @due_date_changed || !@todo.due }
page.stats { return @todo.completed? }
@ -547,7 +547,7 @@ module TodosHelper
def append_updated_todo
source_view do |page|
page.context { return @todo_deferred_state_changed || @todo_pending_state_changed }
page.project { return @todo_deferred_state_changed || @todo_pending_state_changed }
page.project { return @context_changed || @todo_deferred_state_changed || @todo_pending_state_changed }
page.deferred { return todo_moved_out_of_container && (@todo.deferred? || @todo.pending?) }
page.calendar { return @due_date_changed && @todo.due }
page.stats { return false }

View file

@ -28,7 +28,7 @@ function show_empty_messages() {
}
function remove_todo_from_page() {
<% if (@remaining_in_context == 0) && update_needs_to_hide_container
<% if update_needs_to_hide_container
# remove context with deleted todo
-%>
$('#<%=item_container_id(@todo)%>').fadeOut(400, function() {

View file

@ -34,7 +34,7 @@ var <%= object_name %> = {
redirect_to(path);
},
remove_todo: function(next_steps) {
<% if (@remaining_in_context == 0) && update_needs_to_hide_container
<% if update_needs_to_hide_container
# remove context with deleted todo
-%>
$('#<%= item_container_id(@original_item)%>').slideUp(400, function() {

View file

@ -326,7 +326,14 @@ Feature: Edit a next action from every page
Given I have a deferred todo "moving" in context "@pc" with tags "tag"
When I go to the tickler page
And I edit the context of "moving" to "@new"
And I should see the container for context "@new"
Then I should see the container for context "@new"
@javascript
Scenario: Editing the context of a todo in the project view to a new context will show new context
Given I have a todo "something" in the context "@pc" in the project "project"
When I go to the "project" project page
And I edit the context of "something" to "@new"
Then I should see the container for context "@new"
@javascript
Scenario: Making an error when editing a todo will show error message