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 a249fee2..57ed4460 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,4 +1 @@ -App.ListsIndexController = Ember.ArrayController.extend App.PaginationModule, - actions: - showList: (list)-> - @transitionToRoute 'list', list +App.ListsIndexController = Ember.ArrayController.extend App.PaginationModule diff --git a/app/assets/javascripts/user/app/models/list.js.coffee b/app/assets/javascripts/user/app/models/list.js.coffee index 567a0928..3fa42301 100644 --- a/app/assets/javascripts/user/app/models/list.js.coffee +++ b/app/assets/javascripts/user/app/models/list.js.coffee @@ -4,7 +4,6 @@ App.List = DS.Model.extend needs_help: attr('boolean') needs_payment: attr('boolean') user_requests_closing: attr('boolean') - supplier_name: attr('string') state: attr('string') price: attr('number') closed_at: DS.attr('date') @@ -24,3 +23,4 @@ App.List = DS.Model.extend total: (-> @get('relevant_orders').getEach('total').reduce(((sum, total) -> sum + total), 0) ).property('relevant_orders.@each.total') + active: (-> @get('state') is 'active' ).property('state') diff --git a/app/assets/javascripts/user/app/models/supplier.js.coffee b/app/assets/javascripts/user/app/models/supplier.js.coffee index 1f2585a3..47cc46d1 100644 --- a/app/assets/javascripts/user/app/models/supplier.js.coffee +++ b/app/assets/javascripts/user/app/models/supplier.js.coffee @@ -8,6 +8,7 @@ App.Supplier= DS.Model.extend orders: DS.hasMany('order') product_categories: DS.hasMany('product_category') + lists: DS.hasMany('list') is_extended_version: -> @get('extended_version') @@ -16,5 +17,3 @@ App.Supplier= DS.Model.extend return false unless @get('open') true ).property('open') - - diff --git a/app/assets/javascripts/user/app/templates/lists/index.emblem b/app/assets/javascripts/user/app/templates/lists/index.emblem index 42d1ec73..c1bb56ce 100644 --- a/app/assets/javascripts/user/app/templates/lists/index.emblem +++ b/app/assets/javascripts/user/app/templates/lists/index.emblem @@ -1,11 +1,6 @@ .row h2=t 'models.plural.list' - each list in controller - .lists-overview-entry{action "showList" list} - span.created_at=time list.created_at - span.price.currency= currency list.price - span.name= list.supplier_name - hr + each list in controller: App.ListIndexView contentBinding='list' .clearfix if hasMore button{action "showMore"}=t 'lists.show_more' diff --git a/app/assets/javascripts/user/app/templates/lists/list_entry.emblem b/app/assets/javascripts/user/app/templates/lists/list_entry.emblem new file mode 100644 index 00000000..7da66084 --- /dev/null +++ b/app/assets/javascripts/user/app/templates/lists/list_entry.emblem @@ -0,0 +1,3 @@ +span.created_at=time list.created_at +span.price.currency= currency list.price +span.name= list.supplier.name diff --git a/app/assets/javascripts/user/app/views/list_index_view.js.coffee b/app/assets/javascripts/user/app/views/list_index_view.js.coffee new file mode 100644 index 00000000..df0965c6 --- /dev/null +++ b/app/assets/javascripts/user/app/views/list_index_view.js.coffee @@ -0,0 +1,5 @@ +App.ListIndexView = Ember.View.extend + templateName: 'lists/list_entry' + classNames: ['lists-overview-entry'] + classNameBindings: ['content.active:active'] + click: -> @get('controller').transitionToRoute 'list', @get('content') diff --git a/app/assets/stylesheets/supplier/foundation1/_menu_main.css.sass b/app/assets/stylesheets/supplier/foundation1/_menu_main.css.sass index 49878d86..f3ff318d 100644 --- a/app/assets/stylesheets/supplier/foundation1/_menu_main.css.sass +++ b/app/assets/stylesheets/supplier/foundation1/_menu_main.css.sass @@ -6,7 +6,7 @@ header.top-menu background-image: image-url('theme1/button-bar-left.png'), image-url('theme1/button-bar-right.png') color: $green padding-left: 48px - padding-right: 52px + padding-right: 52px .menu-content background-color: white background-repeat: repeat-x diff --git a/app/assets/stylesheets/user/foundation/_qconstants.css.sass b/app/assets/stylesheets/user/foundation/_qconstants.css.sass index 96cd3f86..b0182b74 100644 --- a/app/assets/stylesheets/user/foundation/_qconstants.css.sass +++ b/app/assets/stylesheets/user/foundation/_qconstants.css.sass @@ -6,3 +6,4 @@ $green: #7BB459 //Heineken $wood: image-url('theme1/wall-bg.jpg') $background-brown: #57351f $current-color: #ff0 +$active-color: #f70 diff --git a/app/assets/stylesheets/user/foundation/_qlists.css.sass b/app/assets/stylesheets/user/foundation/_qlists.css.sass index 4aa60e75..eac92f99 100644 --- a/app/assets/stylesheets/user/foundation/_qlists.css.sass +++ b/app/assets/stylesheets/user/foundation/_qlists.css.sass @@ -1,6 +1,8 @@ .lists-overview-entry +grid-column(12) cursor: pointer + border-bottom: 1px solid #ddd + margin-bottom: 12px @media #{$medium-only} +grid-column(6) @media #{$large-up} @@ -11,6 +13,8 @@ float: right clear: right +panel($padding: 4px) + &.active + border: 1px solid $active-color .list-orders-container $padding: 6px 0 6px 35px border-top: 2px solid #555 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 7232acfe..1f131591 100644 --- a/app/assets/stylesheets/user/foundation/components/_menu_main.css.sass +++ b/app/assets/stylesheets/user/foundation/components/_menu_main.css.sass @@ -55,8 +55,8 @@ header.top-menu color: $current-color border-color: $current-color &.callout - color: #f70 - border-color: #f70 + color: $active-color + border-color: $active-color @media #{$medium-only} margin-left: 8px @media #{$small-only} diff --git a/app/controllers/users/lists_controller.rb b/app/controllers/users/lists_controller.rb index 31447492..e4e378fe 100644 --- a/app/controllers/users/lists_controller.rb +++ b/app/controllers/users/lists_controller.rb @@ -5,7 +5,8 @@ module Users #lists = current_user.lists.include_relation(:supplier, :table) lists = List.for_user(current_user, page: params[:page], per_page: params[:per_page].presence || 25) #lists.include_relation(:supplier) - lists.include_relation(:users, :orders, :supplier, :table) + lists.reject!{|l| l.id == params[:exclude_list]} if params[:exclude_list].present? + lists.include_relation(:users, :orders, :supplier) render json: lists, each_serializer: UserListSerializer, meta: {total_pages: lists.total_pages, page: lists.current_page} #, root: :lists end diff --git a/app/serializers/user_extended_list_serializer.rb b/app/serializers/user_extended_list_serializer.rb index abc3a052..2b6ce9da 100644 --- a/app/serializers/user_extended_list_serializer.rb +++ b/app/serializers/user_extended_list_serializer.rb @@ -18,7 +18,7 @@ class UserExtendedListSerializer < Qwaiter::Serializer end has_many :orders #has_many :product_categories - has_one :table, serializer: UserExtendedTableSerializer + has_one :table, serializer: UserExtendedTableSerializer # this one add a lot of stuff has_many :join_requests has_many :users, serializer: UserUserSerializer #has_one :supplier # added by other resource diff --git a/app/serializers/user_list_serializer.rb b/app/serializers/user_list_serializer.rb index 259809af..b1871764 100644 --- a/app/serializers/user_list_serializer.rb +++ b/app/serializers/user_list_serializer.rb @@ -1,6 +1,6 @@ class UserListSerializer < Qwaiter::Serializer # user ids for facebook pictures - embed :ids + embed :ids, include: true attributes :state, :needs_help, :needs_payment, :user_requests_closing, :is_paid, :price, :table_id, :table_number, :section_id, :user_ids, :supplier_name, :closed_at, :supplier_id #def has_active_orders @@ -9,6 +9,7 @@ class UserListSerializer < Qwaiter::Serializer def supplier_name object.supplier.name end - has_many :users + has_many :users, serializer: UserUserSerializer has_many :orders + has_one :supplier, serializer: UserSupplierSerializer end