From ef7c2420180a98e164d42b5a71ebfa983cae91f8 Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Mon, 1 Sep 2014 10:45:11 +0200 Subject: [PATCH] Add remove list needs payment functionality --- .../javascripts/supplier/app/models/list.js.coffee | 3 +++ .../supplier/app/templates/active_list.emblem | 1 + .../remove_list_needs_payment_button.emblem | 3 +++ .../views/remove_list_needs_payment_view.js.coffee | 7 +++++++ .../supplier/foundation1/qsupplier.js.coffee.erb | 4 ++++ .../controllers/application_controller.js.coffee | 3 +++ .../foundation1/components/_dashboard.css.sass | 6 ++++++ app/controllers/supplier_controller.rb | 13 ++++++++++--- app/models/list.rb | 8 ++++++++ config/routes.rb | 1 + 10 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 app/assets/javascripts/supplier/app/templates/remove_list_needs_payment_button.emblem create mode 100644 app/assets/javascripts/supplier/app/views/remove_list_needs_payment_view.js.coffee diff --git a/app/assets/javascripts/supplier/app/models/list.js.coffee b/app/assets/javascripts/supplier/app/models/list.js.coffee index b0e42d0d..8f87ea1a 100644 --- a/app/assets/javascripts/supplier/app/models/list.js.coffee +++ b/app/assets/javascripts/supplier/app/models/list.js.coffee @@ -49,4 +49,7 @@ App.List = DS.Model.extend is_helped: -> @markHelped() $.post Routes.supplier_mark_list_as_helped_path(), list_id: @id + remove_needs_payment: -> + @set 'needs_payment', false + $.post Routes.supplier_remove_list_needs_payment_path(), list_id: @id sorted_orders: (-> @get('relevant_orders').sortBy('created_at').reverseObjects()).property('relevant_orders.@each.isLoaded') diff --git a/app/assets/javascripts/supplier/app/templates/active_list.emblem b/app/assets/javascripts/supplier/app/templates/active_list.emblem index f98a0404..6941b1c1 100644 --- a/app/assets/javascripts/supplier/app/templates/active_list.emblem +++ b/app/assets/javascripts/supplier/app/templates/active_list.emblem @@ -17,6 +17,7 @@ td.actions i.fa.fa-bell.fa-stack-small i.fa.fa-ban.revoke App.MarkListHelpedButtonView content=view.content + App.RemoveListNeedsPaymentView content=view.content App.CloseListButtonView content=view.content button.show-list.button{action "showList" view.content.id}: span diff --git a/app/assets/javascripts/supplier/app/templates/remove_list_needs_payment_button.emblem b/app/assets/javascripts/supplier/app/templates/remove_list_needs_payment_button.emblem new file mode 100644 index 00000000..04dd6564 --- /dev/null +++ b/app/assets/javascripts/supplier/app/templates/remove_list_needs_payment_button.emblem @@ -0,0 +1,3 @@ +span.fa-stack.fa-2x.fa-stack-sized + i.fa.fa-money.fa-stack-small + i.fa.fa-ban.revoke diff --git a/app/assets/javascripts/supplier/app/views/remove_list_needs_payment_view.js.coffee b/app/assets/javascripts/supplier/app/views/remove_list_needs_payment_view.js.coffee new file mode 100644 index 00000000..d0301107 --- /dev/null +++ b/app/assets/javascripts/supplier/app/views/remove_list_needs_payment_view.js.coffee @@ -0,0 +1,7 @@ +App.RemoveListNeedsPaymentView = Ember.View.extend + templateName: 'remove_list_needs_payment_button' + classNames: ['remove_list_needs_payment'] + classNameBindings: ['content.needs_payment:show:hide'] + tagName: 'button' + click: (e)-> + @get('content').then (l)->l.remove_needs_payment() diff --git a/app/assets/javascripts/supplier/foundation1/qsupplier.js.coffee.erb b/app/assets/javascripts/supplier/foundation1/qsupplier.js.coffee.erb index 207a7e4b..9fef31b4 100644 --- a/app/assets/javascripts/supplier/foundation1/qsupplier.js.coffee.erb +++ b/app/assets/javascripts/supplier/foundation1/qsupplier.js.coffee.erb @@ -60,6 +60,10 @@ root.Qsupplier = else if e.event == 'order_being_delivered' order.markDelivered() if order = App.Order.findCached(e.data.id) + else if e.event == 'remove_list_needs_payment' + if list = App.List.findCached(e.data.id) + list.set 'needs_payment', false + else if e.event == 'orders_in_process_count' $('.supplier-orders-in-process-count-number').text e.data.count else if e.event == 'orders_placed_count' diff --git a/app/assets/javascripts/user/app/controllers/application_controller.js.coffee b/app/assets/javascripts/user/app/controllers/application_controller.js.coffee index 9eba24c3..d978ec6d 100644 --- a/app/assets/javascripts/user/app/controllers/application_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/application_controller.js.coffee @@ -78,6 +78,9 @@ App.ApplicationController = Ember.Controller.extend # list.get('orders').addObject(order) + remove_list_needs_payment: (data)-> + if list = @store.all('list').findBy 'id', data.id + list.set 'needs_payment', false setCurrentList: (callback)-> success = (list)=> #@store.find('list', 'current').deleteRecord() # gets not replaced, buty stays as dummy diff --git a/app/assets/stylesheets/supplier/foundation1/components/_dashboard.css.sass b/app/assets/stylesheets/supplier/foundation1/components/_dashboard.css.sass index d9b9b1e7..f56efd46 100644 --- a/app/assets/stylesheets/supplier/foundation1/components/_dashboard.css.sass +++ b/app/assets/stylesheets/supplier/foundation1/components/_dashboard.css.sass @@ -19,6 +19,12 @@ $button-spacing: 8px padding-left: 8px //do not ask me why, just looks padding-right: 2px //do not ask me why, just looks margin-right: $button-spacing +.remove_list_needs_payment + +button-icon-only + vertical-align: top + padding-left: 8px //do not ask me why, just looks + padding-right: 2px //do not ask me why, just looks + margin-right: $button-spacing .close-list-button +button-icon-only .active-orders-table diff --git a/app/controllers/supplier_controller.rb b/app/controllers/supplier_controller.rb index cc193497..ceb60373 100644 --- a/app/controllers/supplier_controller.rb +++ b/app/controllers/supplier_controller.rb @@ -66,7 +66,7 @@ class SupplierController < ApplicationController ho[:list_id] = order.list_id list_total += ho[:total_amount] h[:orders] << ho - end + end h[:total_amount] = list_total.round(2) render json: h, layout: 'tablet' end @@ -87,7 +87,7 @@ class SupplierController < ApplicationController hl = list.with_info_as_json grand_total += hl[:total_amount] h[:lists] << hl - end + end h[:total_amount] = grand_total.round(2) render json: h, layout: 'tablet' end @@ -101,13 +101,20 @@ class SupplierController < ApplicationController render nothing: true end - # POST /orders/1/is_helped + # POST /supplier/mark_list_as_helped def mark_list_as_helped @list = List.find_by_supplier_id_and_id(current_supplier.id, params[:list_id]) @list.is_helped! render nothing: true end + #POST /supplier/remove_list_needs_payment + def remove_list_needs_payment + @list = List.find_by_supplier_id_and_id(current_supplier.id, params[:list_id]) + @list.remove_needs_payment! + render nothing: true + end + # POST /orders/1/is_being_processed def mark_order_in_process @order = Order.find_by_supplier_id_and_id!(current_supplier.id, params[:order_id]) diff --git a/app/models/list.rb b/app/models/list.rb index 1217d40e..eaae4699 100644 --- a/app/models/list.rb +++ b/app/models/list.rb @@ -172,6 +172,14 @@ class List end end + def remove_needs_payment! + self.needs_payment = false + if save + broadcast_users 'remove_list_needs_payment', id: id + broadcast_supplier supplier_id, 'remove_list_needs_payment', id: id + end + end + def needs_payment! self.needs_payment = true if save diff --git a/config/routes.rb b/config/routes.rb index 61914a0c..8e71699f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -37,6 +37,7 @@ Qwaiter::Application.routes.draw do post '/supplier/close_list' => 'supplier#close_list', as: :supplier_close_list post '/supplier/mark_list_as_helped' => 'supplier#mark_list_as_helped', as: :supplier_mark_list_as_helped + post '/supplier/remove_list_needs_payment' => 'supplier#remove_list_needs_payment', as: :supplier_remove_list_needs_payment post '/supplier/mark_order_in_process' => 'supplier#mark_order_in_process', as: :supplier_mark_order_in_process post '/supplier/order_is_delivered' => 'supplier#order_is_delivered', as: :supplier_order_is_delivered