From efae5837052bc1ac1118a83dbaad9dcd5afb165a Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Mon, 27 Jul 2015 20:40:53 +0200 Subject: [PATCH] Mozo upgrade progress --- Gemfile.lock | 24 +++++----- .../mark-order-active.js.coffee | 4 +- .../components/mark-order-cancelled.js.coffee | 10 +++++ .../mark-order-delivered.js.coffee | 4 +- .../app/templates/_list_content.emblem | 6 +-- .../app/templates/active_order.emblem | 6 +-- .../buttons/mark-order-active.emblem | 0 .../buttons/mark-order-cancelled.emblem | 0 .../buttons/mark-order-delivered.emblem | 0 app/assets/javascripts/user/app/app.js.coffee | 11 +++++ .../list-order.js.coffee} | 8 ++-- .../user/app/components/menu_item.js.coffee | 12 +++++ .../menu_item_list_needs_help.js.coffee | 10 +++++ .../menu_item_list_needs_payment.js.coffee} | 6 +-- .../menu_item_product_orders.js.coffee} | 4 +- .../components/menu_item_scan_qr.js.coffee | 5 +++ .../active_list_controller.js.coffee | 2 +- .../application_controller.js.coffee | 18 ++++---- .../join_requests_controller.js.coffee | 2 +- .../app/controllers/list_controller.js.coffee | 2 +- .../lists_index_controller.js.coffee | 2 +- .../modals/base_controller.js.coffee | 2 +- .../product_orders_controller.js.coffee | 6 +-- .../controllers/table_controller.js.coffee | 5 ++- .../controller_modifications.js.coffee | 27 +++++------ .../model_modifications.js.coffee | 2 +- .../routes/application_route.js.coffee.erb | 11 +++-- .../javascripts/user/app/store.js.coffee | 45 +++---------------- .../user/app/templates/_list_content.emblem | 6 ++- .../user/app/templates/application.emblem | 4 +- .../list-order.emblem} | 0 .../{ => components}/menu/active_list.emblem | 0 .../menu/list_needs_help.emblem | 0 .../menu/list_needs_payment.emblem | 0 .../menu/product_orders.emblem | 0 .../{ => components}/menu/scan_qr.emblem | 0 .../{ => components}/menu/table.emblem | 0 .../app/templates/global/_top_menu.emblem | 22 ++++----- .../menu_item_list_needs_help_view.js.coffee | 10 ----- .../views/menu_item_scan_qr_view.js.coffee | 5 --- .../user/app/views/menu_item_view.js.coffee | 14 ------ spec/spec_helper.rb | 2 +- wip.md | 2 +- 43 files changed, 148 insertions(+), 151 deletions(-) rename app/assets/javascripts/supplier/app/{views => components}/mark-order-active.js.coffee (58%) create mode 100644 app/assets/javascripts/supplier/app/components/mark-order-cancelled.js.coffee rename app/assets/javascripts/supplier/app/{views => components}/mark-order-delivered.js.coffee (70%) rename app/assets/javascripts/supplier/app/templates/{ => components}/buttons/mark-order-active.emblem (100%) rename app/assets/javascripts/supplier/app/templates/{ => components}/buttons/mark-order-cancelled.emblem (100%) rename app/assets/javascripts/supplier/app/templates/{ => components}/buttons/mark-order-delivered.emblem (100%) rename app/assets/javascripts/user/app/{views/list_order_view.js.coffee => components/list-order.js.coffee} (63%) create mode 100644 app/assets/javascripts/user/app/components/menu_item.js.coffee create mode 100644 app/assets/javascripts/user/app/components/menu_item_list_needs_help.js.coffee rename app/assets/javascripts/user/app/{views/menu_item_list_needs_payment_view.js.coffee => components/menu_item_list_needs_payment.js.coffee} (52%) rename app/assets/javascripts/user/app/{views/menu_item_product_orders_view.js.coffee => components/menu_item_product_orders.js.coffee} (77%) create mode 100644 app/assets/javascripts/user/app/components/menu_item_scan_qr.js.coffee rename app/assets/javascripts/user/app/templates/{list_order_row.emblem => components/list-order.emblem} (100%) rename app/assets/javascripts/user/app/templates/{ => components}/menu/active_list.emblem (100%) rename app/assets/javascripts/user/app/templates/{ => components}/menu/list_needs_help.emblem (100%) rename app/assets/javascripts/user/app/templates/{ => components}/menu/list_needs_payment.emblem (100%) rename app/assets/javascripts/user/app/templates/{ => components}/menu/product_orders.emblem (100%) rename app/assets/javascripts/user/app/templates/{ => components}/menu/scan_qr.emblem (100%) rename app/assets/javascripts/user/app/templates/{ => components}/menu/table.emblem (100%) delete mode 100644 app/assets/javascripts/user/app/views/menu_item_list_needs_help_view.js.coffee delete mode 100644 app/assets/javascripts/user/app/views/menu_item_scan_qr_view.js.coffee delete mode 100644 app/assets/javascripts/user/app/views/menu_item_view.js.coffee diff --git a/Gemfile.lock b/Gemfile.lock index beac6e55..264349ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,8 @@ GIT remote: git://github.com/bterkuile/cmtool.git - revision: 49b61a502624b00aaf3a96c0bd43085ef9f85d75 + revision: 6b6a7405bab49a798e38af5e74d52a38de519039 specs: - cmtool (1.0.0) + cmtool (2.0.0) ace-rails-ap bourbon email_validator @@ -23,7 +23,7 @@ GIT GIT remote: git://github.com/bterkuile/simply_stored.git - revision: 4f3d144096a7deb457a9e6b92c3ced0f4a9eeff0 + revision: 05cb3a06a9d4a3588efd4491db42fac84276befb specs: simply_stored (1.0.0) activesupport @@ -54,7 +54,7 @@ GEM erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - active-model-adapter-source (1.13.4) + active-model-adapter-source (1.13.5) ember-data-source (>= 1.13, < 3.0) active_attr (0.8.5) activemodel (>= 3.0.2, < 5.0) @@ -118,7 +118,7 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - capybara-screenshot (1.0.10) + capybara-screenshot (1.0.11) capybara (>= 1.0, < 3) launchy celluloid (0.16.0) @@ -173,7 +173,7 @@ GEM eventmachine (>= 1.0.0.beta.4) email_validator (1.6.0) activemodel - ember-data-source (1.13.5) + ember-data-source (1.13.6) ember-source (>= 1.8, < 3.0) ember-emblem-template (0.2.2) barber (>= 0.9.0) @@ -190,7 +190,7 @@ GEM ember-source (>= 1.8.0) jquery-rails (>= 1.0.17) railties (>= 3.1) - ember-source (1.13.4.1) + ember-source (1.13.5) ember-validations-rails (1.0.0) railties emblem-rails (0.2.2) @@ -207,7 +207,7 @@ GEM railties (>= 3.0.0) faraday (0.9.1) multipart-post (>= 1.2, < 3) - faye (1.1.1) + faye (1.1.2) cookiejar (>= 0.3.0) em-http-request (>= 0.3.0) eventmachine (>= 0.12.0) @@ -309,7 +309,7 @@ GEM slop (~> 3.4) pry-rails (0.3.4) pry (>= 0.9.10) - puma (2.12.1) + puma (2.12.2) quiet_assets (1.1.0) railties (>= 3.1, < 5.0) rack (1.6.4) @@ -327,7 +327,7 @@ GEM bundler (>= 1.3.0, < 2.0) railties (= 4.2.3) sprockets-rails - rails-assets-ember-qunit (0.4.1) + rails-assets-ember-qunit (0.4.6) rails-assets-qunit (1.18.0) rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) @@ -431,7 +431,7 @@ GEM tilt (1.4.1) timers (4.0.1) hitimes - tinymce-rails (4.1.6) + tinymce-rails (4.2.2) railties (>= 3.1.1) turnip (1.3.1) gherkin (>= 2.5) @@ -455,7 +455,7 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) websocket (1.2.2) - websocket-driver (0.6.1) + websocket-driver (0.6.2) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) xpath (2.0.0) diff --git a/app/assets/javascripts/supplier/app/views/mark-order-active.js.coffee b/app/assets/javascripts/supplier/app/components/mark-order-active.js.coffee similarity index 58% rename from app/assets/javascripts/supplier/app/views/mark-order-active.js.coffee rename to app/assets/javascripts/supplier/app/components/mark-order-active.js.coffee index 2f653116..da215a1d 100644 --- a/app/assets/javascripts/supplier/app/views/mark-order-active.js.coffee +++ b/app/assets/javascripts/supplier/app/components/mark-order-active.js.coffee @@ -1,6 +1,6 @@ -App.MarkOrderActiveView = Ember.View.extend +App.MarkOrderActiveComponent = Ember.Component.extend tagName: 'button' - templateName: 'buttons/mark-order-active' + templateName: 'components/buttons/mark-order-active' classNames: ['mark-order-active-button'] classNameBindings: ['order.placed:active:hide'] click: -> @get('order').mark_active() diff --git a/app/assets/javascripts/supplier/app/components/mark-order-cancelled.js.coffee b/app/assets/javascripts/supplier/app/components/mark-order-cancelled.js.coffee new file mode 100644 index 00000000..b0b62b52 --- /dev/null +++ b/app/assets/javascripts/supplier/app/components/mark-order-cancelled.js.coffee @@ -0,0 +1,10 @@ +App.MarkOrderCancelledComponent = Ember.Component.extend + tagName: 'button' + templateName: 'components/buttons/mark-order-cancelled' + classNames: ['mark-order-cancelled-button'] + classNameBindings: ['showButton:active:hide'] + showButton: Ember.computed 'order.state', -> + state = @get('order.state') + state is 'placed' or state is 'active' + click: -> @get('order').mark_cancelled() + diff --git a/app/assets/javascripts/supplier/app/views/mark-order-delivered.js.coffee b/app/assets/javascripts/supplier/app/components/mark-order-delivered.js.coffee similarity index 70% rename from app/assets/javascripts/supplier/app/views/mark-order-delivered.js.coffee rename to app/assets/javascripts/supplier/app/components/mark-order-delivered.js.coffee index 12288dd0..55ecaa3c 100644 --- a/app/assets/javascripts/supplier/app/views/mark-order-delivered.js.coffee +++ b/app/assets/javascripts/supplier/app/components/mark-order-delivered.js.coffee @@ -1,6 +1,6 @@ -App.MarkOrderDeliveredView = Ember.View.extend +App.MarkOrderDeliveredComponent = Ember.Component.extend tagName: 'button' - templateName: 'buttons/mark-order-delivered' + templateName: 'components/buttons/mark-order-delivered' classNames: ['mark-order-delivered-button'] classNameBindings: ['showButton:active:hide'] showButton: Ember.computed 'order.state', -> diff --git a/app/assets/javascripts/supplier/app/templates/_list_content.emblem b/app/assets/javascripts/supplier/app/templates/_list_content.emblem index b7890004..b5bb458a 100644 --- a/app/assets/javascripts/supplier/app/templates/_list_content.emblem +++ b/app/assets/javascripts/supplier/app/templates/_list_content.emblem @@ -23,9 +23,9 @@ if list.sorted_orders span.currency= currency order.total span.created_at= time order.created_at .list-order-actions - view mark-order-active order=order - view mark-order-delivered order=order - view mark-order-cancelled order=order + = mark-order-active order=order + = mark-order-delivered order=order + = mark-order-cancelled order=order if showTotal .list-orders-total.total = t 'general.total' diff --git a/app/assets/javascripts/supplier/app/templates/active_order.emblem b/app/assets/javascripts/supplier/app/templates/active_order.emblem index 711a9a3e..b0b1ff23 100644 --- a/app/assets/javascripts/supplier/app/templates/active_order.emblem +++ b/app/assets/javascripts/supplier/app/templates/active_order.emblem @@ -10,6 +10,6 @@ td.section_title= link-to 'section' view.content.list.table.section.id: span=vie td.currency=currency view.content.total td.time= time view.content.created_at format="HH:mm" td.actions - view mark-order-active order=view.content - view mark-order-delivered order=view.content - view mark-order-cancelled order=view.content + = mark-order-active order=view.content + = mark-order-delivered order=view.content + = mark-order-cancelled order=view.content diff --git a/app/assets/javascripts/supplier/app/templates/buttons/mark-order-active.emblem b/app/assets/javascripts/supplier/app/templates/components/buttons/mark-order-active.emblem similarity index 100% rename from app/assets/javascripts/supplier/app/templates/buttons/mark-order-active.emblem rename to app/assets/javascripts/supplier/app/templates/components/buttons/mark-order-active.emblem diff --git a/app/assets/javascripts/supplier/app/templates/buttons/mark-order-cancelled.emblem b/app/assets/javascripts/supplier/app/templates/components/buttons/mark-order-cancelled.emblem similarity index 100% rename from app/assets/javascripts/supplier/app/templates/buttons/mark-order-cancelled.emblem rename to app/assets/javascripts/supplier/app/templates/components/buttons/mark-order-cancelled.emblem diff --git a/app/assets/javascripts/supplier/app/templates/buttons/mark-order-delivered.emblem b/app/assets/javascripts/supplier/app/templates/components/buttons/mark-order-delivered.emblem similarity index 100% rename from app/assets/javascripts/supplier/app/templates/buttons/mark-order-delivered.emblem rename to app/assets/javascripts/supplier/app/templates/components/buttons/mark-order-delivered.emblem diff --git a/app/assets/javascripts/user/app/app.js.coffee b/app/assets/javascripts/user/app/app.js.coffee index 6866786d..63ed8fc2 100644 --- a/app/assets/javascripts/user/app/app.js.coffee +++ b/app/assets/javascripts/user/app/app.js.coffee @@ -16,6 +16,17 @@ Ember.Application.initializer container.register 'clock:service', ClockService application.inject 'component:menu-product-categories', 'clock', 'clock:service' +Globals = Ember.Object.extend + list: null + notice: '' +Ember.Application.initializer + name: 'Globals' + initialize: (container, application)-> + container.typeInjection('component', 'store', 'store:main') + application.register('global:variables', Globals, {singleton: true}) + application.inject('controller', 'globals', 'global:variables') + application.inject('component', 'globals', 'global:variables') + @App = Ember.Application.create LOG_TRANSITIONS: true rootElement: '#ember-app-container' diff --git a/app/assets/javascripts/user/app/views/list_order_view.js.coffee b/app/assets/javascripts/user/app/components/list-order.js.coffee similarity index 63% rename from app/assets/javascripts/user/app/views/list_order_view.js.coffee rename to app/assets/javascripts/user/app/components/list-order.js.coffee index 1c868cd3..52409c2f 100644 --- a/app/assets/javascripts/user/app/views/list_order_view.js.coffee +++ b/app/assets/javascripts/user/app/components/list-order.js.coffee @@ -1,8 +1,8 @@ -App.ListOrderView = Ember.View.extend +App.ListOrderComponent = Ember.Component.extend classNames: 'list-order-container' - classNameBindings: ['content.state', 'contentWrapClass'] - templateName: 'list_order_row' - contentWrapClass: (-> "order-row-#{@get('content.id')}").property('content.id') + classNameBindings: ['order.state', 'contentWrapClass'] + #templateName: 'components/list-order' + contentWrapClass: (-> "order-row-#{@get('order.id')}").property('order.id') #click: -> #if @route_param #@get('controller').transitionToRoute(@route, @route_param) diff --git a/app/assets/javascripts/user/app/components/menu_item.js.coffee b/app/assets/javascripts/user/app/components/menu_item.js.coffee new file mode 100644 index 00000000..793281cd --- /dev/null +++ b/app/assets/javascripts/user/app/components/menu_item.js.coffee @@ -0,0 +1,12 @@ +App.MenuItemComponent = Ember.Component.extend + classNames: 'menu-list-item' + classNameBindings: ['active'] + click: -> + if route_param = @get('route_param') + @get('reference_controller').transitionToRoute(@get('route'), route_param) + else + @get('reference_controller').transitionToRoute(@get('route')) + active: (-> + if @get('reference_controller.currentPath') == @get('route') then 'active' else '' + ).property('reference_controller.currentPath') + setTemplate: (-> @templateName = "components/menu/#{@get('route')}").on('init') diff --git a/app/assets/javascripts/user/app/components/menu_item_list_needs_help.js.coffee b/app/assets/javascripts/user/app/components/menu_item_list_needs_help.js.coffee new file mode 100644 index 00000000..36b4e37f --- /dev/null +++ b/app/assets/javascripts/user/app/components/menu_item_list_needs_help.js.coffee @@ -0,0 +1,10 @@ +App.MenuItemListNeedsHelpComponent = Ember.Component.extend Ember.ViewTargetActionSupport, + action: 'listNeedsHelp' + templateName: "components/menu/list_needs_help" + classNames: 'menu-list-item callout' + classNameBindings: ['globals.list.needs_help:active'] + click: -> + if @get('globals.list.needs_help') + @set 'globals.notice', t('list_needs_help.help_is_on_its_way') + else + @triggerAction() diff --git a/app/assets/javascripts/user/app/views/menu_item_list_needs_payment_view.js.coffee b/app/assets/javascripts/user/app/components/menu_item_list_needs_payment.js.coffee similarity index 52% rename from app/assets/javascripts/user/app/views/menu_item_list_needs_payment_view.js.coffee rename to app/assets/javascripts/user/app/components/menu_item_list_needs_payment.js.coffee index f0742684..2062ba1e 100644 --- a/app/assets/javascripts/user/app/views/menu_item_list_needs_payment_view.js.coffee +++ b/app/assets/javascripts/user/app/components/menu_item_list_needs_payment.js.coffee @@ -1,10 +1,10 @@ -App.MenuItemListNeedsPaymentView = Ember.View.extend Ember.ViewTargetActionSupport, +App.MenuItemListNeedsPaymentComponent = Ember.Component.extend Ember.ViewTargetActionSupport, action: 'listNeedsPayment' - templateName: "menu/list_needs_payment" + templateName: "components/menu/list_needs_payment" classNames: 'menu-list-item callout' classNameBindings: ['controller.list.needs_payment:active'] click: -> if @get('controller.list.needs_payment') - @set 'controller.notice', t('list_needs_payment.payment_already_requested') + @set 'globals.notice', t('list_needs_payment.payment_already_requested') else @triggerAction() #action: 'listNeedsPayment' diff --git a/app/assets/javascripts/user/app/views/menu_item_product_orders_view.js.coffee b/app/assets/javascripts/user/app/components/menu_item_product_orders.js.coffee similarity index 77% rename from app/assets/javascripts/user/app/views/menu_item_product_orders_view.js.coffee rename to app/assets/javascripts/user/app/components/menu_item_product_orders.js.coffee index 8b833d63..a7b14ea5 100644 --- a/app/assets/javascripts/user/app/views/menu_item_product_orders_view.js.coffee +++ b/app/assets/javascripts/user/app/components/menu_item_product_orders.js.coffee @@ -1,5 +1,5 @@ -App.MenuItemProductOrdersView = Ember.View.extend - templateName: 'menu/product_orders' +App.MenuItemProductOrdersComponent = Ember.Component.extend + templateName: 'components/menu/product_orders' classNames: ['menu-list-item', 'menu-list-item-product-orders'] classNameBindings: ['controller.controllers.product_orders.product_orders.length:show:hide', 'currentRoute:active'] currentRoute: (-> @get('controller.currentRouteName') is 'product_orders' ).property('controller.currentRouteName') diff --git a/app/assets/javascripts/user/app/components/menu_item_scan_qr.js.coffee b/app/assets/javascripts/user/app/components/menu_item_scan_qr.js.coffee new file mode 100644 index 00000000..4056981e --- /dev/null +++ b/app/assets/javascripts/user/app/components/menu_item_scan_qr.js.coffee @@ -0,0 +1,5 @@ +App.MenuItemScanQrComponent = Ember.Component.extend Ember.ViewTargetActionSupport, + action: 'scanQr' + templateName: "components/menu/scan_qr" + classNames: 'menu-list-item' + click: -> @triggerAction() diff --git a/app/assets/javascripts/user/app/controllers/active_list_controller.js.coffee b/app/assets/javascripts/user/app/controllers/active_list_controller.js.coffee index f33758ae..b98aef1a 100644 --- a/app/assets/javascripts/user/app/controllers/active_list_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/active_list_controller.js.coffee @@ -1,4 +1,4 @@ -App.ActiveListController = Ember.ObjectController.extend +App.ActiveListController = Ember.Controller.extend #orders: (-> #@get('list.orders') #).property('list.orders') 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 1eb15657..a57db38b 100644 --- a/app/assets/javascripts/user/app/controllers/application_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/application_controller.js.coffee @@ -1,14 +1,14 @@ App.ApplicationController = Ember.Controller.extend needs: ['product_orders'] join_request_sent: false - notice: '' + #notice: '' actions: confirmCancel: -> if cancel = @get('confirm.cancel') cancel.call(@) $('#confirm-modal').hide() clearNotice: -> - @set 'notice', null + @set 'globals.notice', '' showSupplierStatusInfo: -> @modal 'supplier_status_info', model: @get('list.supplier') @@ -18,10 +18,10 @@ App.ApplicationController = Ember.Controller.extend debugger currentPathDidChange: (-> - @set 'notice', '' + @set 'globals.notice', '' ).observes('currentPath') events: - notify: (notification) -> @set 'notice', notification.message + notify: (notification) -> @set 'globals.notice', notification.message list_helped: -> @set 'list.needs_help', false list_needs_help: -> @set 'list.needs_help', true # incoming from other users list_is_paid: -> @set 'list.needs_payment', false @@ -48,7 +48,7 @@ App.ApplicationController = Ember.Controller.extend join_request = @store.createRecord 'join_request', data.join_request @transitionToRoute 'join_requests' order_cancelled: (data)-> - if order = App.Order.findCached(data.id) + if order = @store.all('order').findBy('id', data.id) order.markCancelled() @events.orders_placed_count.call(@, count: data.supplier_orders_placed_count) if data.supplier_orders_placed_count == 0 or data.supplier_orders_placed_count @events.orders_in_process_count.call(@, count: data.supplier_orders_in_process_count) if data.supplier_orders_in_process_count == 0 or data.supplier_orders_in_process_count @@ -61,14 +61,14 @@ App.ApplicationController = Ember.Controller.extend # NOTE data.id is in the form of: jr-:user_id requestor_id = data.id.substr(3) if requestor_id is Qstorage.getItem('user_id') - @set 'notice', t('join_request.requestor.join_request_rejected') + @set 'globals.notice', t('join_request.requestor.join_request_rejected') @set 'join_request_sent', false join_request_approved: -> return if @get('list.id') @setCurrentList -> @transitionToRoute('active_list').then => - @set 'notice', t('join_request.requestor.join_request_approved') + @set 'globals.notice', t('join_request.requestor.join_request_approved') list_changed_table: -> @setCurrentList() @@ -96,7 +96,9 @@ App.ApplicationController = Ember.Controller.extend # at the moment remove the dummy list, this should be resolved by Ember eventually if error_list = @store.all('list').findBy('id', 'current') error_list.eraseRecord() + #TODO: depricate list on application controller @set 'list', list + @set 'globals.list', list if list.get('join_requests.length') @transitionToRoute 'join_requests' else if @currentRouteName is 'index' @@ -111,6 +113,6 @@ App.ApplicationController = Ember.Controller.extend @set 'list', null switch @currentRouteName when 'table' then # nothing - else @redirect_to 'index' + else @redirect_to 'user_root' @store.find('list', 'current').then(success, error) diff --git a/app/assets/javascripts/user/app/controllers/join_requests_controller.js.coffee b/app/assets/javascripts/user/app/controllers/join_requests_controller.js.coffee index f81b3ba8..d4b9b3c3 100644 --- a/app/assets/javascripts/user/app/controllers/join_requests_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/join_requests_controller.js.coffee @@ -1,4 +1,4 @@ -App.JoinRequestsController = Ember.ArrayController.extend +App.JoinRequestsController = Ember.Controller.extend join_requests: (-> @get('controllers.application.list.join_requests') ).property('controllers.application.list.join_requests') actions: rejectRequest: (join_request)-> diff --git a/app/assets/javascripts/user/app/controllers/list_controller.js.coffee b/app/assets/javascripts/user/app/controllers/list_controller.js.coffee index 1285fa64..7cc9e271 100644 --- a/app/assets/javascripts/user/app/controllers/list_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/list_controller.js.coffee @@ -1,2 +1,2 @@ -App.ListController = Ember.ObjectController.extend +App.ListController = Ember.Controller.extend list: (-> @get('model')).property('model') diff --git a/app/assets/javascripts/user/app/controllers/lists_index_controller.js.coffee b/app/assets/javascripts/user/app/controllers/lists_index_controller.js.coffee index 0e9d6258..26338c27 100644 --- a/app/assets/javascripts/user/app/controllers/lists_index_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/lists_index_controller.js.coffee @@ -1,2 +1,2 @@ -App.ListsIndexController = Ember.ArrayController.extend App.PaginationModule, +App.ListsIndexController = Ember.Controller.extend App.PaginationModule, lists: (->@get('model').sortBy('created_at').reverse()).property('model.@each') diff --git a/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee b/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee index dbc06fac..c2f746cf 100644 --- a/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/modals/base_controller.js.coffee @@ -1,4 +1,4 @@ -@App.modals.BaseController = Ember.ObjectController.extend +@App.modals.BaseController = Ember.Controller.extend alert_message: "" title: (-> # return title if directly set by options diff --git a/app/assets/javascripts/user/app/controllers/product_orders_controller.js.coffee b/app/assets/javascripts/user/app/controllers/product_orders_controller.js.coffee index 0f2c21a5..85584056 100644 --- a/app/assets/javascripts/user/app/controllers/product_orders_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/product_orders_controller.js.coffee @@ -1,4 +1,4 @@ -App.ProductOrdersController = Ember.ArrayController.extend +App.ProductOrdersController = Ember.Controller.extend needs: ['application', 'table'] orderTotal: (-> #Math.round(Math.random()*100) @@ -27,7 +27,7 @@ App.ProductOrdersController = Ember.ArrayController.extend # @transitionToRoute 'active_list' # , @ajaxError (jqXHR)=> # new_product_orders.invoke 'eraseRecord' - # @redirect_to 'index', message: 'order_could_not_be_processed' + # @redirect_to 'user_root', message: 'order_could_not_be_processed' #orders = @store.all('product_order').toArray() #data = @get('product_orders').map( (po)->po.serialize() ) @@ -41,7 +41,7 @@ App.ProductOrdersController = Ember.ArrayController.extend url: "#{$data_host}/user/orders.json" data: JSON.stringify(dataObject) success: (response) => - @store.pushPayload('order', response) if response.order + @store.pushPayload(order: response.order) if response.order @transitionToRoute 'active_list' @get('product_orders').invoke 'unloadRecord' diff --git a/app/assets/javascripts/user/app/controllers/table_controller.js.coffee b/app/assets/javascripts/user/app/controllers/table_controller.js.coffee index 8217161e..e9fe4d2c 100644 --- a/app/assets/javascripts/user/app/controllers/table_controller.js.coffee +++ b/app/assets/javascripts/user/app/controllers/table_controller.js.coffee @@ -1,8 +1,8 @@ -App.TableController = Ember.ObjectController.extend +App.TableController = Ember.Controller.extend join_request_sent: (-> @get('controllers.application.join_request_sent')).property('controllers.application.join_request_sent') tableCanTakeOrders: (-> return false unless @get('supplier.can_take_orders') - list = @get('controllers.application.list') + list = @get('globals.list') if list return false unless list.get('supplier.id') == @get('supplier.id') return false unless list.get('table.id') == @get('model.id') @@ -11,6 +11,7 @@ App.TableController = Ember.ObjectController.extend # no list and open supplier if @get('model.occupied') then false else true ).property('controllers.application.list.id', 'supplier.can_take_orders', 'model.occupied', 'model.id', 'controllers.application.list.table.id') + supplier: Ember.computed 'model.supplier', -> @get('model.supplier') showJoinButton: (-> return false unless @get('supplier.can_take_orders') return false if @get('controllers.application.list') # if you already have an active list, do not join another diff --git a/app/assets/javascripts/user/app/modifications/controller_modifications.js.coffee b/app/assets/javascripts/user/app/modifications/controller_modifications.js.coffee index dadfcb9d..27dbe8e3 100644 --- a/app/assets/javascripts/user/app/modifications/controller_modifications.js.coffee +++ b/app/assets/javascripts/user/app/modifications/controller_modifications.js.coffee @@ -15,13 +15,10 @@ ControllerExtensions = Ember.Mixin.create modal: (name, options={})-> options.model ||= Ember.Object.create() @send "openModal", name, options -Ember.ArrayController.reopen ControllerExtensions -Ember.Controller.reopen ControllerExtensions -Ember.ObjectController.reopen ControllerExtensions -Ember.Controller.reopen redirect_to: (route, args...)-> route = 'index' if route == 'user_root' - route_object= App.Router.router.recognizer.names[route] + #route_object= App.Router.router.recognizer.names[route] + route_object = @get "target.router.recognizer.names.#{route}" throw "Route #{route} cannot exist" unless route_object dynamic_segments = route_object.segments.reduce (sum, segment) -> if segment.name then sum + 1 else sum @@ -38,7 +35,11 @@ Ember.Controller.reopen @transitionToRoute.apply(@,route_args).then => if options.message tkey = if options.message.indexOf('.') > -1 then options.message else "messages.#{options.message}" - @set 'controllers.application.notice', t(tkey) + @set 'globals.notice', t(tkey) +#Ember.ArrayController.reopen ControllerExtensions +Ember.Controller.reopen ControllerExtensions +#Ember.ObjectController.reopen ControllerExtensions +#Ember.Controller.reopen #confirm: (options = {})-> ##@showModal options ##$(document).foundation('reflow') # needed (stupid!!!) @@ -54,10 +55,10 @@ Ember.Controller.reopen #$('#confirm-modal').foundation('reveal', 'open') #this kills the ember actions #$('#confirm-modal').css('visibility', 'visible').show() -Ember.ArrayController.reopen - redirect_to: (route, options={})-> - route = 'index' if route == 'user_root' - @transitionToRoute(route).then => - if options.message - tkey = if options.message.indexOf('.') > -1 then options.message else "messages.#{options.message}" - @set 'controllers.application.notice', t(tkey) +#Ember.ArrayController.reopen + #redirect_to: (route, options={})-> + #route = 'index' if route == 'user_root' + #@transitionToRoute(route).then => + #if options.message + #tkey = if options.message.indexOf('.') > -1 then options.message else "messages.#{options.message}" + #@set 'globals.notice', t(tkey) diff --git a/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee b/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee index c236a57b..0b74483e 100644 --- a/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee +++ b/app/assets/javascripts/user/app/modifications/model_modifications.js.coffee @@ -2,7 +2,7 @@ DS.Model.reopen created_at: DS.attr('date') updated_at: DS.attr('date') eraseRecord: -> - @clearRelationships() + #@clearRelationships() @transitionTo('deleted.saved') DS.Model.reopenClass findCached: (id)-> diff --git a/app/assets/javascripts/user/app/routes/application_route.js.coffee.erb b/app/assets/javascripts/user/app/routes/application_route.js.coffee.erb index a8c871f8..9d272c15 100644 --- a/app/assets/javascripts/user/app/routes/application_route.js.coffee.erb +++ b/app/assets/javascripts/user/app/routes/application_route.js.coffee.erb @@ -23,7 +23,7 @@ App.ApplicationRoute = Ember.Route.extend controller = @controllerFor('application') controller.setCurrentList -> @transitionTo('active_list') - controller.set 'notice', t('messages.authenticated') + controller.set 'globals.notice', t('messages.authenticated') actions: obtain_token: ( options = {} ) -> provider = options.provider || 'facebook' @@ -97,7 +97,8 @@ App.ApplicationRoute = Ember.Route.extend else message = t('errors.404.general.message') @transitionTo('index').then (route)-> - route.get('controller.controllers.application').set 'notice', message if route and route.get + #route.get('controller.controllers.application').set 'notice', message if route and route.get + route.set 'globals.notice', message if route and route.set $log action: 'applicationerror' error: error.message @@ -164,7 +165,8 @@ App.ApplicationRoute = Ember.Route.extend ar.send('selectQr', _id: table_id) else ar.transitionTo('index').then (route)-> - route.get('controller.controllers.application').set 'notice', "we got a barcode: '#{result.text}' but cannot extract a table id" + #route.get('controller.controllers.application').set 'notice', "we got a barcode: '#{result.text}' but cannot extract a table id" + route.set 'globals.notice', "we got a barcode: '#{result.text}' but cannot extract a table id" $log action: 'qrscan' error: 'cannot extract table id' @@ -176,7 +178,8 @@ App.ApplicationRoute = Ember.Route.extend error: 'scan failed' info: error ar.transitionTo('index').then (route)-> - route.get('controller.controllers.application').set 'notice', "scanning failed: #{error}" + #route.get('controller.controllers.application').set 'notice', "scanning failed: #{error}" + route.set 'globals.notice', "scanning failed: #{error}" <% else %> @transitionTo 'select_qrcode' <% end %> diff --git a/app/assets/javascripts/user/app/store.js.coffee b/app/assets/javascripts/user/app/store.js.coffee index 76dbd68d..3b9d9cfe 100644 --- a/app/assets/javascripts/user/app/store.js.coffee +++ b/app/assets/javascripts/user/app/store.js.coffee @@ -1,40 +1,7 @@ -#App.ApplicationSerializer = DS.ActiveModelSerializer.extend - #serializeBelongsTo: (record, json, relationship) -> - #console.log "Serialize belongsTo #{record.toString()}" - #key = relationship.key - #belongsTo = Ember.get(record, key) - #key = (if @keyForRelationship then @keyForRelationship(key, "belongsTo") else key) - #if relationship.options.embedded is "always" - #json[key] = belongsTo.serialize() - #else - #@_super record, json, relationship - - #serializeHasMany: (record, json, relationship) -> - #console.log "Serialize hasMany #{record.toString()}" - #key = relationship.key - #hasMany = Ember.get(record, key) - #relationshipType = DS.RelationshipChange.determineRelationshipType(record.constructor, relationship) - #if relationship.options.embedded is "always" - #if hasMany and relationshipType is "manyToNone" or relationshipType is "manyToMany" or relationshipType is "manyToOne" - #json[key] = [] - #hasMany.forEach (item, index) -> - #json[key].push item.serialize() - #else - #@_super record, json, relationship - App.ApplicationSerializer = DS.ActiveModelSerializer.extend() -App.ApplicationStore = DS.Store.extend - #adapter: DS.RESTAdapter.extend - #host: $data_host - #namespace: 'user' - ## user underscored paths - #pathForType: (type)-> - #decamelized = Ember.String.decamelize(type) - #Ember.String.pluralize(decamelized) - #headers: - #Accept: 'application/json' - adapter: DS.ActiveModelAdapter.extend - host: $data_host - namespace: 'user' - headers: - "Accept": "application/json, text/javascript; q=0.01" +App.ApplicationAdapter = DS.ActiveModelAdapter.extend + host: $data_host + namespace: 'user' + headers: + "Accept": "application/json, text/javascript; q=0.01" + diff --git a/app/assets/javascripts/user/app/templates/_list_content.emblem b/app/assets/javascripts/user/app/templates/_list_content.emblem index ce0a9071..8119959b 100644 --- a/app/assets/javascripts/user/app/templates/_list_content.emblem +++ b/app/assets/javascripts/user/app/templates/_list_content.emblem @@ -16,7 +16,11 @@ if list.closed_at if list.orders.isLoaded if list.sorted_orders .list-orders-container - each order in list.sorted_orders: = view "list-order" contentBinding="order" + each order in list.sorted_orders + = list-order order=order + /= order.display + /span.currency= currency order.total + /span.created_at= time order.created_at format="H:mm" if list.showTotal .list-orders-total.total = t 'total' diff --git a/app/assets/javascripts/user/app/templates/application.emblem b/app/assets/javascripts/user/app/templates/application.emblem index 09a67c83..167cbddb 100644 --- a/app/assets/javascripts/user/app/templates/application.emblem +++ b/app/assets/javascripts/user/app/templates/application.emblem @@ -2,10 +2,10 @@ = partial "global/side_menu" .main-section .main-section-content - if notice + if globals.notice #notice.alert-box{action "clearNotice"} data-alert=true a.right href="#" span.fa.fa-times.fa-lg - span= notice + span= globals.notice = outlet =outlet modal diff --git a/app/assets/javascripts/user/app/templates/list_order_row.emblem b/app/assets/javascripts/user/app/templates/components/list-order.emblem similarity index 100% rename from app/assets/javascripts/user/app/templates/list_order_row.emblem rename to app/assets/javascripts/user/app/templates/components/list-order.emblem diff --git a/app/assets/javascripts/user/app/templates/menu/active_list.emblem b/app/assets/javascripts/user/app/templates/components/menu/active_list.emblem similarity index 100% rename from app/assets/javascripts/user/app/templates/menu/active_list.emblem rename to app/assets/javascripts/user/app/templates/components/menu/active_list.emblem diff --git a/app/assets/javascripts/user/app/templates/menu/list_needs_help.emblem b/app/assets/javascripts/user/app/templates/components/menu/list_needs_help.emblem similarity index 100% rename from app/assets/javascripts/user/app/templates/menu/list_needs_help.emblem rename to app/assets/javascripts/user/app/templates/components/menu/list_needs_help.emblem diff --git a/app/assets/javascripts/user/app/templates/menu/list_needs_payment.emblem b/app/assets/javascripts/user/app/templates/components/menu/list_needs_payment.emblem similarity index 100% rename from app/assets/javascripts/user/app/templates/menu/list_needs_payment.emblem rename to app/assets/javascripts/user/app/templates/components/menu/list_needs_payment.emblem diff --git a/app/assets/javascripts/user/app/templates/menu/product_orders.emblem b/app/assets/javascripts/user/app/templates/components/menu/product_orders.emblem similarity index 100% rename from app/assets/javascripts/user/app/templates/menu/product_orders.emblem rename to app/assets/javascripts/user/app/templates/components/menu/product_orders.emblem diff --git a/app/assets/javascripts/user/app/templates/menu/scan_qr.emblem b/app/assets/javascripts/user/app/templates/components/menu/scan_qr.emblem similarity index 100% rename from app/assets/javascripts/user/app/templates/menu/scan_qr.emblem rename to app/assets/javascripts/user/app/templates/components/menu/scan_qr.emblem diff --git a/app/assets/javascripts/user/app/templates/menu/table.emblem b/app/assets/javascripts/user/app/templates/components/menu/table.emblem similarity index 100% rename from app/assets/javascripts/user/app/templates/menu/table.emblem rename to app/assets/javascripts/user/app/templates/components/menu/table.emblem diff --git a/app/assets/javascripts/user/app/templates/global/_top_menu.emblem b/app/assets/javascripts/user/app/templates/global/_top_menu.emblem index 7ed1ead7..a5208ec4 100644 --- a/app/assets/javascripts/user/app/templates/global/_top_menu.emblem +++ b/app/assets/javascripts/user/app/templates/global/_top_menu.emblem @@ -2,30 +2,30 @@ .top-menu-bar .menu-content section.main-buttons - if list.id + if globals.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" + = menu-item route="active_list" reference_controller=controller + = menu-item route="table" route_param=globals.list.table.id reference_controller=controller + = menu-item-list-needs-help reference_controller=controller + = menu-item-list-needs-payment reference_controller=controller 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 + = menu-item-scan-qr reference_controller=controller + = menu-item-product-orders reference_controller=controller + if globals.list .extra-info{action "showSupplierStatusInfo"} .supplier-info-row / .supplier-name= list.supplier.name .table-number |#  - = list.table.number + = globals.list.table.number .supplier-info-row .counter.supplier-orders-placed-count - = list.supplier.orders_placed_count + = globals.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 + = globals.list.supplier.orders_in_process_count span.orders-in-process-count-icon diff --git a/app/assets/javascripts/user/app/views/menu_item_list_needs_help_view.js.coffee b/app/assets/javascripts/user/app/views/menu_item_list_needs_help_view.js.coffee deleted file mode 100644 index d6e3cf27..00000000 --- a/app/assets/javascripts/user/app/views/menu_item_list_needs_help_view.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -App.MenuItemListNeedsHelpView = Ember.View.extend Ember.ViewTargetActionSupport, - action: 'listNeedsHelp' - templateName: "menu/list_needs_help" - classNames: 'menu-list-item callout' - classNameBindings: ['controller.list.needs_help:active'] - click: -> - if @get('controller.list.needs_help') - @set 'controller.notice', t('list_needs_help.help_is_on_its_way') - else - @triggerAction() diff --git a/app/assets/javascripts/user/app/views/menu_item_scan_qr_view.js.coffee b/app/assets/javascripts/user/app/views/menu_item_scan_qr_view.js.coffee deleted file mode 100644 index 16476cc3..00000000 --- a/app/assets/javascripts/user/app/views/menu_item_scan_qr_view.js.coffee +++ /dev/null @@ -1,5 +0,0 @@ -App.MenuItemScanQrView = Ember.View.extend Ember.ViewTargetActionSupport, - action: 'scanQr' - templateName: "menu/scan_qr" - classNames: 'menu-list-item' - click: -> @triggerAction() diff --git a/app/assets/javascripts/user/app/views/menu_item_view.js.coffee b/app/assets/javascripts/user/app/views/menu_item_view.js.coffee deleted file mode 100644 index 228bbe58..00000000 --- a/app/assets/javascripts/user/app/views/menu_item_view.js.coffee +++ /dev/null @@ -1,14 +0,0 @@ -App.MenuItemView = Ember.View.extend - classNames: 'menu-list-item' - classNameBindings: ['active'] - click: -> - if @route_param - @get('controller').transitionToRoute(@route, @route_param) - else - @get('controller').transitionToRoute(@route) - active: (-> - if @get('controller.currentPath') == @route then 'active' else '' - ).property('controller.currentPath') - init: -> - @templateName = "menu/#{@route}" - @_super() diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 35dd0903..4b17c820 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -139,7 +139,7 @@ RSpec.configure do |config| # Use color in STDOUT config.color = true - config.fail_fast = false + config.fail_fast = true # Use color not only in STDOUT but also in pagers and files config.tty = true diff --git a/wip.md b/wip.md index bf99750d..671dd1bc 100644 --- a/wip.md +++ b/wip.md @@ -20,7 +20,7 @@ Supplier User ---- - +- Implement https://github.com/EddyVerbruggen/Custom-URL-scheme with mozo:// scheme - test met veel producten - product variants - option to make products inactive, no order plus and click on name