From 2f812ad52ef9af464af5e1588caa388dcbc06c34 Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Tue, 13 Jan 2015 13:38:52 +0100 Subject: [PATCH] Add supplier info popup --- .../shared-ember-helpers/translation.js.coffee | 4 ++-- .../controllers/application_controller.js.coffee | 1 + .../user/app/templates/modals/layout.emblem | 2 +- .../templates/modals/supplier_status_info.emblem | 13 +++++++++++++ .../user/flat/application.js.coffee.erb | 1 + .../foundation/components/_menu_main.css.sass | 11 ++++++----- config/locales/user.en.yml | 8 ++++++++ config/locales/user.nl.yml | 8 ++++++++ spec/acceptance/users/supplier_info.feature | 5 +++-- spec/acceptance_steps/global_list_steps.rb | 14 -------------- .../users/order_products_steps.rb | 16 ++++++++++++++++ .../users/supplier_info_steps.rb | 9 +++++++++ 12 files changed, 68 insertions(+), 24 deletions(-) create mode 100644 app/assets/javascripts/user/app/templates/modals/supplier_status_info.emblem create mode 100644 spec/acceptance_steps/users/supplier_info_steps.rb diff --git a/app/assets/javascripts/shared-ember-helpers/translation.js.coffee b/app/assets/javascripts/shared-ember-helpers/translation.js.coffee index 51955734..e2bbd057 100644 --- a/app/assets/javascripts/shared-ember-helpers/translation.js.coffee +++ b/app/assets/javascripts/shared-ember-helpers/translation.js.coffee @@ -1,4 +1,4 @@ Ember.Handlebars.helper 't', (path, params..., options)-> - text = t(path) - tag = if options.hash.bare then text else "#{text}" + text = t(path, options.hash) + tag = if options.hash.bare then text else "#{text}" tag.htmlSafe() 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 e7b9db3e..55db6b8b 100644 --- a/app/assets/javascripts/user/app/controllers/application_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/application_controller.js.coffee @@ -12,6 +12,7 @@ App.ApplicationController = Ember.Controller.extend showSupplierStatusInfo: -> @modal 'supplier_status_info', model: @get('list.supplier') + title_path: 'supplier_status_info.title' openDebugger: -> debugger diff --git a/app/assets/javascripts/user/app/templates/modals/layout.emblem b/app/assets/javascripts/user/app/templates/modals/layout.emblem index a2d072bc..85e13538 100644 --- a/app/assets/javascripts/user/app/templates/modals/layout.emblem +++ b/app/assets/javascripts/user/app/templates/modals/layout.emblem @@ -3,6 +3,6 @@ .modal-header h3.flush--top= title hr - .modal-body + .modal-body.clearfix .modal-alert== alert_message = yield diff --git a/app/assets/javascripts/user/app/templates/modals/supplier_status_info.emblem b/app/assets/javascripts/user/app/templates/modals/supplier_status_info.emblem new file mode 100644 index 00000000..c038af13 --- /dev/null +++ b/app/assets/javascripts/user/app/templates/modals/supplier_status_info.emblem @@ -0,0 +1,13 @@ +p== t 'supplier_status_info.header' +.row: .small-12.columns + .counter.supplier-orders-placed-count + = model.orders_placed_count + span.orders-placed-count-icon + = t 'supplier_status_info.orders_placed_count_explanation' count=model.orders_placed_count +.row: .small-12.columns + .counter.supplier-orders-in-process-count + = model.orders_in_process_count + span.orders-in-process-count-icon + = t 'supplier_status_info.orders_in_process_count_explanation' count=model.orders_in_process_count +hr +button.modal-confirm.right{action "close"}= t 'supplier_status_info.close' diff --git a/app/assets/javascripts/user/flat/application.js.coffee.erb b/app/assets/javascripts/user/flat/application.js.coffee.erb index adecdeca..65d67168 100644 --- a/app/assets/javascripts/user/flat/application.js.coffee.erb +++ b/app/assets/javascripts/user/flat/application.js.coffee.erb @@ -6,6 +6,7 @@ #= require_self @Qstorage = localStorage + $.extend($translations.en, <%= I18n.t('user', locale: :en).to_json %>); $.extend($translations.nl, <%= I18n.t('user', locale: :nl).to_json %>); diff --git a/app/assets/stylesheets/user/foundation/components/_menu_main.css.sass b/app/assets/stylesheets/user/foundation/components/_menu_main.css.sass index 3dc36f7e..ab6803cd 100644 --- a/app/assets/stylesheets/user/foundation/components/_menu_main.css.sass +++ b/app/assets/stylesheets/user/foundation/components/_menu_main.css.sass @@ -55,11 +55,6 @@ //text-transform: lowercase .supplier-name display: inline-block - .supplier-orders-placed-count - display: inline-block - // margin-right: 15px - .supplier-orders-in-process-count - display: inline-block .menu-list-item margin-left: 20px cursor: pointer @@ -80,11 +75,17 @@ margin-left: 8px @media #{$small-only} margin-left: 5px +.supplier-orders-placed-count + display: inline-block + // margin-right: 15px .orders-placed-count-icon @extend .fa @extend .fa-clock-o @extend .fa-lg margin-left: 3px + +.supplier-orders-in-process-count + display: inline-block .orders-in-process-count-icon @extend .fa @extend .fa-check diff --git a/config/locales/user.en.yml b/config/locales/user.en.yml index 80c84bbe..91007797 100644 --- a/config/locales/user.en.yml +++ b/config/locales/user.en.yml @@ -132,3 +132,11 @@ en: with external parties.
footer:
+ supplier_status_info: + title: "%{name} info" + header: | + The icons at the top right corner contain information about the place where you + are currently ordering. The number prefixed with # is your table number. + orders_placed_count_explanation: "  means that there are %{count} orders placed and not yet processing or finished" + orders_in_process_count_explanation: "  means that there are %{count} orders currently processing" + close: Got it diff --git a/config/locales/user.nl.yml b/config/locales/user.nl.yml index ad30ff68..e90009d1 100644 --- a/config/locales/user.nl.yml +++ b/config/locales/user.nl.yml @@ -132,3 +132,11 @@ nl: horeca onderneming waar je wat bestelt.
footer:
+ supplier_status_info: + title: "%{name} info" + header: | + De icoontjes rechtsboven geven informatie over de plek waar je aan het bestellen bent. + Het getal met # is je tafelnummer. + orders_placed_count_explanation: "  betekent dat er %{count} nog niet in behandeling of afgesloten bestellingen zijn" + orders_in_process_count_explanation: "  betekent dat er %{count} bestellingen in behandeling zijn" + close: Got it diff --git a/spec/acceptance/users/supplier_info.feature b/spec/acceptance/users/supplier_info.feature index d3cd94a7..00244552 100644 --- a/spec/acceptance/users/supplier_info.feature +++ b/spec/acceptance/users/supplier_info.feature @@ -3,7 +3,8 @@ Feature: A signed in uses sees supplier info in the top right corner @javascript Scenario: Clicking on the table number opens the supplier info popup Given there is a confirmed and open supplier - And there is a facebook user + And I am signed in as a user And the user has an active order - When the user clicks on the table number info in the top right corner + When I am on the user homepage + And the user clicks on the table number info in the top right corner Then the user sees the supplier information popup diff --git a/spec/acceptance_steps/global_list_steps.rb b/spec/acceptance_steps/global_list_steps.rb index 455b71dd..1c6e5655 100644 --- a/spec/acceptance_steps/global_list_steps.rb +++ b/spec/acceptance_steps/global_list_steps.rb @@ -7,20 +7,6 @@ step "the list is marked as in need of payment" do @list.needs_payment! end -step "the user has an active list with a/an :order_status order" do |order_status| - @list = create :list, supplier: @supplier, table: @table, user_ids: [@user.id] - @product ||= create :product, supplier: @supplier, name: 'Beer', price: 2.34 - @order = create :order, order_status.to_sym, supplier: @supplier, list: @list, user: @user - @product_order = create :product_order, order: @order, product: @product, quantity: 2, price: 2.34 - @user.reload - @user.active_list_id = @list.id - @user.save - case order_status.to_sym - when :placed then @supplier.increment_orders_placed_count! - when :active then @supplier.increment_orders_in_process_count! - end -end - step "the list changes to another table" do @list.move_to_table! @other_table end diff --git a/spec/acceptance_steps/users/order_products_steps.rb b/spec/acceptance_steps/users/order_products_steps.rb index b5b93908..9f4e1657 100644 --- a/spec/acceptance_steps/users/order_products_steps.rb +++ b/spec/acceptance_steps/users/order_products_steps.rb @@ -113,3 +113,19 @@ step "the user has an older list for the same supplier" do @older_list = create :list, supplier: @supplier, table: @table, user_ids: [@user.id] end + +step "the user has an active list with a/an :order_status order" do |order_status| + @list = create :list, supplier: @supplier, table: @table, user_ids: [@user.id] + @product_category ||= create :product_category, supplier: @supplier + @product ||= create :product, supplier: @supplier, name: 'Beer', price: 2.34, product_category: @product_category + @order = create :order, order_status.to_sym, supplier: @supplier, list: @list, user: @user + @product_order = create :product_order, order: @order, product: @product, quantity: 2, price: 2.34 + @user.reload + @user.active_list_id = @list.id + @user.save + case order_status.to_sym + when :placed then @supplier.increment_orders_placed_count! + when :active then @supplier.increment_orders_in_process_count! + end +end + diff --git a/spec/acceptance_steps/users/supplier_info_steps.rb b/spec/acceptance_steps/users/supplier_info_steps.rb new file mode 100644 index 00000000..e687eccf --- /dev/null +++ b/spec/acceptance_steps/users/supplier_info_steps.rb @@ -0,0 +1,9 @@ +step "the user clicks on the table number info in the top right corner" do + find('.top-menu .table-number').click +end + +step "the user sees the supplier information popup" do + within '.modal' do + page.should have_content @supplier.name + end +end