From de3f2f7cae1f8a256e37f8c1ed400651664d8abf Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Fri, 13 Feb 2015 12:37:01 +0100 Subject: [PATCH] Add supplier info popup --- .../application_controller.js.coffee | 4 + .../modals/base_controller.js.coffee | 7 +- .../supplier/app/templates/application.emblem | 1 + .../app/templates/global/_side_menu.emblem | 11 +++ .../app/templates/global/_top_menu.emblem | 13 +--- .../modals/supplier_status_info.emblem | 13 ++++ .../app/templates/tables/index.emblem | 7 +- .../supplier/foundation1/application.js.erb | 1 + .../javascripts/translations.js.coffee.erb | 2 +- .../user/app/templates/application.emblem | 73 +------------------ .../app/templates/global/_side_menu.emblem | 40 ++++++++++ .../app/templates/global/_top_menu.emblem | 31 ++++++++ .../foundation1/components/_tables.css.sass | 3 +- config/locales/supplier.en.yml | 11 ++- config/locales/supplier.nl.yml | 11 ++- fig.yml | 1 + wip.md | 3 +- 17 files changed, 133 insertions(+), 99 deletions(-) create mode 100644 app/assets/javascripts/supplier/app/templates/global/_side_menu.emblem create mode 100644 app/assets/javascripts/supplier/app/templates/modals/supplier_status_info.emblem create mode 100644 app/assets/javascripts/user/app/templates/global/_side_menu.emblem create mode 100644 app/assets/javascripts/user/app/templates/global/_top_menu.emblem diff --git a/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee index 98ba449d..f80058ce 100644 --- a/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee +++ b/app/assets/javascripts/supplier/app/controllers/application_controller.js.coffee @@ -24,3 +24,7 @@ App.ApplicationController = Ember.Controller.extend markSupplierOpen: -> return unless supplier = @get('supplier') supplier.open_the_place() + showSupplierStatusInfo: -> + @modal 'supplier_status_info', + model: @get('supplier') + title_path: 'supplier_status_info.title' diff --git a/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee b/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee index dbc06fac..def5e146 100644 --- a/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee +++ b/app/assets/javascripts/supplier/app/controllers/modals/base_controller.js.coffee @@ -7,14 +7,15 @@ translation_params = {} if model = @get('model') translation_params = model.serialize() if model.serialize - return new Ember.Handlebars.SafeString(tspan(@title_path, translation_params)) if @title_path + + return tspan(@title_path, translation_params).htmlSafe() if @title_path # return translated title_path if directly set by options - return new Ember.Handlebars.SafeString(tspan(@get('modal_options.title_path'), translation_params)) if @get('modal_options.title_path') + return tspan(@get('modal_options.title_path'), translation_params).htmlSafe() if @get('modal_options.title_path') # infer title path based on controller name App.modals.AddSectionController => add_section underscored = `this.constructor.toString().substr(11).replace(/Controller$/, '').underscore()` # find translated title or humanize the controller name if convention_translation = ttry("modal.#{underscored}.title", translation_params) - new Ember.Handlebars.SafeString(tspan(@get("modal.#{underscored}.title"), translation_params)) + tspan(@get("modal.#{underscored}.title"), translation_params).htmlSafe() else underscored.capitalize().replace(/_/, ' ') ).property('model.id') diff --git a/app/assets/javascripts/supplier/app/templates/application.emblem b/app/assets/javascripts/supplier/app/templates/application.emblem index 3927fda7..421438f1 100644 --- a/app/assets/javascripts/supplier/app/templates/application.emblem +++ b/app/assets/javascripts/supplier/app/templates/application.emblem @@ -1,4 +1,5 @@ = partial "global/top_menu" += partial "global/side_menu" .main-section= outlet = view flash_message = outlet modal diff --git a/app/assets/javascripts/supplier/app/templates/global/_side_menu.emblem b/app/assets/javascripts/supplier/app/templates/global/_side_menu.emblem new file mode 100644 index 00000000..210d90ee --- /dev/null +++ b/app/assets/javascripts/supplier/app/templates/global/_side_menu.emblem @@ -0,0 +1,11 @@ +aside.side-menu + ul + li.title: h3 Menu + li.supplier-name= supplier.name + if supplier.open + li: a.supplier-close-shop{action "markSupplierClosed"}= t 'supplier.close_for_orders' + else + li: a.supplier-open-shop{action "markSupplierOpen"}= t 'supplier.open_for_orders' + = link-to "settings" class="supplier-settings-link" + = t 'supplier.settings' + li class="supplier-sign-out-link": a{action "signOut"}= t 'supplier.sign_out' diff --git a/app/assets/javascripts/supplier/app/templates/global/_top_menu.emblem b/app/assets/javascripts/supplier/app/templates/global/_top_menu.emblem index 02531814..cd67d46f 100644 --- a/app/assets/javascripts/supplier/app/templates/global/_top_menu.emblem +++ b/app/assets/javascripts/supplier/app/templates/global/_top_menu.emblem @@ -13,7 +13,7 @@ header.top-menu = t 'models.plural.table' = link-to "lists" class="top-menu-lists" = t 'models.plural.list' - .extra-info + .extra-info{action "showSupplierStatusInfo"} .supplier-info-row .counter.supplier-orders-placed-count span.supplier-orders-placed-count-number= supplier.orders_placed_count @@ -22,14 +22,3 @@ header.top-menu .counter.supplier-orders-in-process-count span.supplier-orders-in-process-count-number= supplier.orders_in_process_count span.orders-in-process-count-icon -aside.side-menu - ul - li.title: h3 Menu - li.supplier-name= supplier.name - if supplier.open - li: a.supplier-close-shop{action "markSupplierClosed"}= t 'supplier.close_for_orders' - else - li: a.supplier-open-shop{action "markSupplierOpen"}= t 'supplier.open_for_orders' - = link-to "settings" class="supplier-settings-link" - = t 'supplier.settings' - li class="supplier-sign-out-link": a{action "signOut"}= t 'supplier.sign_out' diff --git a/app/assets/javascripts/supplier/app/templates/modals/supplier_status_info.emblem b/app/assets/javascripts/supplier/app/templates/modals/supplier_status_info.emblem new file mode 100644 index 00000000..c038af13 --- /dev/null +++ b/app/assets/javascripts/supplier/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/supplier/app/templates/tables/index.emblem b/app/assets/javascripts/supplier/app/templates/tables/index.emblem index c35b62bb..93225da9 100644 --- a/app/assets/javascripts/supplier/app/templates/tables/index.emblem +++ b/app/assets/javascripts/supplier/app/templates/tables/index.emblem @@ -6,7 +6,7 @@ tr th=t 'attributes.table.number' th.link=t 'models.section' - th.timestamp= t 'attributes.table.created_at' + /th.timestamp= t 'attributes.table.created_at' th.actions=t 'helpers.actions.title' tbody each table in tables @@ -16,8 +16,11 @@ if table.section = link-to 'section' table.section = table.section.title - td.numeric=time table.created_at + /td.timestamp=time table.created_at td.actions a.table-edit{ action 'editTable' table }: span a.table-destroy{ action 'destroyTable' table }: span a.button.new-table-button{action "newTable"}= t 'table.new_button' + a.table-qr-codes{path qr_codes_suppliers_tables} + span + = t 'table.print_qr_codes' diff --git a/app/assets/javascripts/supplier/foundation1/application.js.erb b/app/assets/javascripts/supplier/foundation1/application.js.erb index b02f041e..c1e12550 100644 --- a/app/assets/javascripts/supplier/foundation1/application.js.erb +++ b/app/assets/javascripts/supplier/foundation1/application.js.erb @@ -21,6 +21,7 @@ $.extend($translations.en, <%= I18n.t('supplier', locale: :en).to_json %>); $.extend($translations.nl, <%= I18n.t('supplier', locale: :nl).to_json %>); String.prototype.capitalize = function() { return this.charAt(0).toUpperCase() + this.slice(1); } + window.time_zones = <%= ActiveSupport::TimeZone.all.map{|tz| {name: tz.name, formatted: "GMT#{tz.formatted_offset} #{tz.name}"}}.to_json.html_safe %>; window.countries = <%= IsoCountryCodes.all.map{|cc| {name: cc.name}}.to_json.html_safe %>; diff --git a/app/assets/javascripts/translations.js.coffee.erb b/app/assets/javascripts/translations.js.coffee.erb index ffc3d14d..ce800d50 100644 --- a/app/assets/javascripts/translations.js.coffee.erb +++ b/app/assets/javascripts/translations.js.coffee.erb @@ -81,7 +81,7 @@ selector = $( selector || document) selector.find(".locale-select").show() selector.find(".locale-select-" + locale).hide() - moment.lang locale + moment.locale locale if selector selector.find("[data-t]").each -> $(this).html t($(this).data("t"), $(this).data("tAttributes")) diff --git a/app/assets/javascripts/user/app/templates/application.emblem b/app/assets/javascripts/user/app/templates/application.emblem index 2260d326..09a67c83 100644 --- a/app/assets/javascripts/user/app/templates/application.emblem +++ b/app/assets/javascripts/user/app/templates/application.emblem @@ -1,74 +1,5 @@ -.top-menu - .top-menu-bar - .menu-content - section.main-buttons - if list.id - link-to 'index' class="top-menu-logo with-list" - = image_tag 'user/logo-small.png' - = view "menu-item" route="active_list" - = view "menu-item" route="table" route_param=list.table.id - = view "menu-item-list-needs-help" - = view "menu-item-list-needs-payment" - else - link-to 'index' class="top-menu-logo without-list" - = image_tag 'user/logo-small.png' - = view "menu-item-scan-qr" - = view "menu-item-product-orders" - if list - .extra-info{action "showSupplierStatusInfo"} - .supplier-info-row - / .supplier-name= list.supplier.name - .table-number - |#  - = list.table.number - .supplier-info-row - .counter.supplier-orders-placed-count - = list.supplier.orders_placed_count - span.orders-placed-count-icon - .supplier-info-row - .counter.supplier-orders-in-process-count - = list.supplier.orders_in_process_count - span.orders-in-process-count-icon -.side-menu - .toggle-side-menu: span - ul - li.title: h3 Menu - li - = link-to 'index' - span Home - li - a{action "scanQr" bubbles=false} - span.scan-qr-icon - span Scan QR - if list.id - li - =link-to 'table' list.table.id class="side-menu-list-products" - span.fa.fa-cutlery - span.fa.fa-glass - = t 'list_products.title' - li - =link-to 'active_list' class="side-menu-active-list" - span.active-list-icon - span= t 'active_list.title' - if list.join_requests - li - =link-to 'join_requests' - span= t 'models.plural.join_request' - li - =link-to 'lists' class="side-menu-lists" - span= t 'models.plural.list' - li - =link-to 'settings' - span.settings-icon - span= t 'settings.title' - li - =link-to 'about' class="side-menu-about" - span.about-mozo-icon - span=t 'about.title' - li.hide - a{action "openDebugger"} - span.fa.fa-wrench.fa-lg - span Debugger += partial "global/top_menu" += partial "global/side_menu" .main-section .main-section-content if notice diff --git a/app/assets/javascripts/user/app/templates/global/_side_menu.emblem b/app/assets/javascripts/user/app/templates/global/_side_menu.emblem new file mode 100644 index 00000000..971da8bb --- /dev/null +++ b/app/assets/javascripts/user/app/templates/global/_side_menu.emblem @@ -0,0 +1,40 @@ +.side-menu + .toggle-side-menu: span + ul + li.title: h3 Menu + li + = link-to 'index' + span Home + li + a{action "scanQr" bubbles=false} + span.scan-qr-icon + span Scan QR + if list.id + li + =link-to 'table' list.table.id class="side-menu-list-products" + span.fa.fa-cutlery + span.fa.fa-glass + = t 'list_products.title' + li + =link-to 'active_list' class="side-menu-active-list" + span.active-list-icon + span= t 'active_list.title' + if list.join_requests + li + =link-to 'join_requests' + span= t 'models.plural.join_request' + li + =link-to 'lists' class="side-menu-lists" + span= t 'models.plural.list' + li + =link-to 'settings' + span.settings-icon + span= t 'settings.title' + li + =link-to 'about' class="side-menu-about" + span.about-mozo-icon + span=t 'about.title' + li.hide + a{action "openDebugger"} + span.fa.fa-wrench.fa-lg + span Debugger diff --git a/app/assets/javascripts/user/app/templates/global/_top_menu.emblem b/app/assets/javascripts/user/app/templates/global/_top_menu.emblem new file mode 100644 index 00000000..7ed1ead7 --- /dev/null +++ b/app/assets/javascripts/user/app/templates/global/_top_menu.emblem @@ -0,0 +1,31 @@ +.top-menu + .top-menu-bar + .menu-content + section.main-buttons + if list.id + link-to 'index' class="top-menu-logo with-list" + = image_tag 'user/logo-small.png' + = view "menu-item" route="active_list" + = view "menu-item" route="table" route_param=list.table.id + = view "menu-item-list-needs-help" + = view "menu-item-list-needs-payment" + else + link-to 'index' class="top-menu-logo without-list" + = image_tag 'user/logo-small.png' + = view "menu-item-scan-qr" + = view "menu-item-product-orders" + if list + .extra-info{action "showSupplierStatusInfo"} + .supplier-info-row + / .supplier-name= list.supplier.name + .table-number + |#  + = list.table.number + .supplier-info-row + .counter.supplier-orders-placed-count + = list.supplier.orders_placed_count + span.orders-placed-count-icon + .supplier-info-row + .counter.supplier-orders-in-process-count + = list.supplier.orders_in_process_count + span.orders-in-process-count-icon diff --git a/app/assets/stylesheets/supplier/foundation1/components/_tables.css.sass b/app/assets/stylesheets/supplier/foundation1/components/_tables.css.sass index 010e7531..f976a375 100644 --- a/app/assets/stylesheets/supplier/foundation1/components/_tables.css.sass +++ b/app/assets/stylesheets/supplier/foundation1/components/_tables.css.sass @@ -16,6 +16,8 @@ table text-align: right &.date text-align: right + a.table-qr-codes + +button-icon-only .table-edit +button($bg: $secondary-color) +button-icon-only @@ -24,7 +26,6 @@ table @extend .fa-pencil a.table-qr-codes +button($bg: $secondary-color) - +button-icon-only span @extend .fa @extend .fa-qrcode diff --git a/config/locales/supplier.en.yml b/config/locales/supplier.en.yml index 23152575..6086bda2 100644 --- a/config/locales/supplier.en.yml +++ b/config/locales/supplier.en.yml @@ -39,11 +39,8 @@ en: settings: Settings sign_out: Sign out table_number: Table - tables: - qr_codes: - link: Print Qr codes sheet - has_no_section: "Not placed" table: + print_qr_codes: Print Qr codes destroy: modal: title: Are you sure you want to delete ${models.table} %{number} @@ -183,3 +180,9 @@ en: modal: info: close: OK + supplier_status_info: + title: "%{name} info" + header: The icons at the top right corner contain information about the current orders + 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/supplier.nl.yml b/config/locales/supplier.nl.yml index e5711338..6d6dc798 100644 --- a/config/locales/supplier.nl.yml +++ b/config/locales/supplier.nl.yml @@ -38,11 +38,8 @@ nl: settings: Instellingen sign_out: Afmelden table_number: Tafel - tables: - qr_codes: - link: Print Qr codes - has_no_section: "Niet geplaatst" table: + print_qr_codes: Print Qr codes destroy: modal: title: Weet je zeker dat je ${models.table} %{number} wilt verwijderen @@ -186,3 +183,9 @@ nl: modal: info: close: OK + supplier_status_info: + title: "%{name} info" + header: The icons at the top right corner contain information about the current orders + 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/fig.yml b/fig.yml index 9291cff5..cfaa69df 100644 --- a/fig.yml +++ b/fig.yml @@ -10,6 +10,7 @@ counters: net: host volumes: - config:/usr/src/app/config + command: development faye: build: faye net: host diff --git a/wip.md b/wip.md index 2e49ae49..c6abd8f7 100644 --- a/wip.md +++ b/wip.md @@ -23,7 +23,8 @@ User - product variants - remove active orders on list close - fix ajaxError duplicity -- rename "I am signed in as a user" to "there is a signed in user" +- rename "I am signed in as a user" to "there is a signed in user" in + the specs Bugs ----