From b1e5c221015823af62634b1491647e02b2e41957 Mon Sep 17 00:00:00 2001 From: Dan Elbert Date: Fri, 7 Sep 2018 21:56:13 -0500 Subject: [PATCH] task lists --- app/controllers/task_items_controller.rb | 20 ++++- app/javascript/components/AppDropdown.vue | 15 +++- app/javascript/components/AppIcon.vue | 26 +++--- app/javascript/components/TaskItemList.vue | 20 +++-- .../components/TaskListDropdownItem.vue | 2 +- app/javascript/components/TheRecipeList.vue | 48 ++++++++--- app/javascript/components/TheTaskListList.vue | 57 ++++++++++++- app/javascript/lib/Api.js | 19 ++++- app/javascript/store/index.js | 35 +++++--- app/views/home/sw.js.erb | 9 ++- config/routes.rb | 7 +- db/schema.rb | 1 + spec/controllers/task_item_controller_spec.rb | 80 +++++++++++++++++++ spec/factories/task_items.rb | 1 + spec/models/task_item_spec.rb | 2 +- spec/models/task_list_spec.rb | 2 +- 16 files changed, 288 insertions(+), 56 deletions(-) create mode 100644 spec/controllers/task_item_controller_spec.rb diff --git a/app/controllers/task_items_controller.rb b/app/controllers/task_items_controller.rb index 10b71b2..c706e29 100644 --- a/app/controllers/task_items_controller.rb +++ b/app/controllers/task_items_controller.rb @@ -2,7 +2,7 @@ class TaskItemsController < ApplicationController before_action :ensure_valid_user before_action :set_task_list - before_action :set_task_item, only: [:update, :destroy] + before_action :set_task_item, only: [:update] def create @task_item = TaskItem.new(task_item_params) @@ -24,7 +24,23 @@ class TaskItemsController < ApplicationController end def destroy - @task_item.destroy + ids = Array.wrap(params[:id]) + Array.wrap(params[:ids]) + TaskItem.transaction do + @task_items = @task_list.task_items.find(ids) + @task_items.each { |i| i.destroy } + end + + head :no_content + end + + def complete + ids = Array.wrap(params[:id]) + Array.wrap(params[:ids]) + new_status = !params[:invert].present? + TaskItem.transaction do + @task_items = @task_list.task_items.find(ids) + @task_items.each { |i| i.update_attribute(:completed, new_status) } + end + head :no_content end diff --git a/app/javascript/components/AppDropdown.vue b/app/javascript/components/AppDropdown.vue index 8acb916..c37dfb7 100644 --- a/app/javascript/components/AppDropdown.vue +++ b/app/javascript/components/AppDropdown.vue @@ -1,10 +1,10 @@