mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 23:30:12 +01:00
Merge pull request #59 from maddentim/mobile
DRY up the mobile interface handling by moving it back into toggle_check
This commit is contained in:
commit
4705aca8dc
3 changed files with 13 additions and 52 deletions
|
|
@ -348,62 +348,23 @@ class TodosController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
format.m {
|
format.m {
|
||||||
if cookies[:mobile_url]
|
if @saved
|
||||||
old_path = cookies[:mobile_url]
|
if cookies[:mobile_url]
|
||||||
cookies[:mobile_url] = {:value => nil, :secure => SITE_CONFIG['secure_cookies']}
|
old_path = cookies[:mobile_url]
|
||||||
notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'))
|
cookies[:mobile_url] = {:value => nil, :secure => SITE_CONFIG['secure_cookies']}
|
||||||
redirect_to old_path
|
notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'))
|
||||||
|
redirect_to old_path
|
||||||
|
else
|
||||||
|
notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'))
|
||||||
|
redirect_to todos_path(:format => 'm')
|
||||||
|
end
|
||||||
else
|
else
|
||||||
notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'))
|
render :action => "edit", :format => :m
|
||||||
redirect_to todos_path(:format => 'm')
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def mobile_done
|
|
||||||
# copied from toggle_check, left out other formats as they shouldn't come here
|
|
||||||
# ultimately would like to just use toggle_check
|
|
||||||
@todo = current_user.todos.find(params['id'])
|
|
||||||
@source_view = params['_source_view'] || 'todo'
|
|
||||||
@original_item_due = @todo.due
|
|
||||||
@original_item_was_deferred = @todo.deferred?
|
|
||||||
@original_item_was_pending = @todo.pending?
|
|
||||||
@original_item_was_hidden = @todo.hidden?
|
|
||||||
@original_item_context_id = @todo.context_id
|
|
||||||
@original_item_project_id = @todo.project_id
|
|
||||||
@todo_was_completed_from_deferred_or_blocked_state = @original_item_was_deferred || @original_item_was_pending
|
|
||||||
@saved = @todo.toggle_completion!
|
|
||||||
|
|
||||||
@todo_was_blocked_from_completed_state = @todo.pending? # since we toggled_completion the previous state was completed
|
|
||||||
|
|
||||||
# check if this todo has a related recurring_todo. If so, create next todo
|
|
||||||
@new_recurring_todo = check_for_next_todo(@todo) if @saved
|
|
||||||
|
|
||||||
@predecessors = @todo.uncompleted_predecessors
|
|
||||||
if @saved
|
|
||||||
if @todo.completed?
|
|
||||||
@pending_to_activate = @todo.activate_pending_todos
|
|
||||||
else
|
|
||||||
@active_to_block = @todo.block_successors
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if @saved
|
|
||||||
if cookies[:mobile_url]
|
|
||||||
old_path = cookies[:mobile_url]
|
|
||||||
cookies[:mobile_url] = {:value => nil, :secure => SITE_CONFIG['secure_cookies']}
|
|
||||||
notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'))
|
|
||||||
redirect_to old_path
|
|
||||||
else
|
|
||||||
notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'))
|
|
||||||
redirect_to todos_path(:format => 'm')
|
|
||||||
end
|
|
||||||
else
|
|
||||||
render :action => "edit", :format => :m
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def toggle_star
|
def toggle_star
|
||||||
@todo = current_user.todos.find(params['id'])
|
@todo = current_user.todos.find(params['id'])
|
||||||
@todo.toggle_star!
|
@todo.toggle_star!
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ module TodosHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def remote_mobile_checkbox(todo=@todo)
|
def remote_mobile_checkbox(todo=@todo)
|
||||||
form_tag mobile_done_todo_path(@todo, :format => 'm'), :method => :put, :class => "mobile-done", :name => "mobile_complete_#{@todo.id}" do
|
form_tag toggle_check_todo_path(@todo, :format => 'm'), :method => :put, :class => "mobile-done", :name => "mobile_complete_#{@todo.id}" do
|
||||||
check_box_tag('_source_view', 'todo', @todo && @todo.completed?, "onClick" => "document.mobile_complete_#{@todo.id}.submit()")
|
check_box_tag('_source_view', 'todo', @todo && @todo.completed?, "onClick" => "document.mobile_complete_#{@todo.id}.submit()")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ ActionController::Routing::Routes.draw do |map|
|
||||||
map.resources :notes
|
map.resources :notes
|
||||||
|
|
||||||
map.resources :todos,
|
map.resources :todos,
|
||||||
:member => {:toggle_check => :put, :toggle_star => :put, :defer => :put, :mobile_done => :put},
|
:member => {:toggle_check => :put, :toggle_star => :put, :defer => :put},
|
||||||
:collection => {:check_deferred => :post, :filter_to_context => :post, :filter_to_project => :post, :done => :get, :all_done => :get
|
:collection => {:check_deferred => :post, :filter_to_context => :post, :filter_to_project => :post, :done => :get, :all_done => :get
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue