General functionality improvement

This commit is contained in:
2014-06-26 17:26:15 +02:00
parent 8730d30621
commit 2a30ff5d3d
19 changed files with 71 additions and 52 deletions
@@ -14,7 +14,7 @@ Qsupplier.App.List = DS.Model.extend
price: attr 'number' price: attr 'number'
closed_at: DS.attr('date') closed_at: DS.attr('date')
#table_number: attr 'number' #table_number: attr 'number'
#table: DS.belongsTo('table', inverse: 'active_list') table: DS.belongsTo('table', inverse: 'active_list')
#users: DS.hasMany('user', inverse: 'active_list') #users: DS.hasMany('user', inverse: 'active_list')
orders: DS.hasMany('order') orders: DS.hasMany('order')
section: DS.belongsTo('section') section: DS.belongsTo('section')
@@ -1,6 +1,9 @@
.display-row .display-row
.display-label=t 'attributes.list.created_at' .display-label=t 'attributes.list.created_at'
.display-field=time list.created_at .display-field=time list.created_at
.display-row
.display-label=t 'attributes.list.state'
.display-field=state 'list' list.state
each user in list.users each user in list.users
img.facebook-image src="http://graph.facebook.com/#{unbound user.facebook_id}/picture?type=square" alt="f" img.facebook-image src="http://graph.facebook.com/#{unbound user.facebook_id}/picture?type=square" alt="f"
if list.orders if list.orders
@@ -1,5 +1,5 @@
.row .row
h2=t 'models.list' h2=t 'models.list'
partial "list_content" partial "list_content"
link-to 'lists' link-to 'lists' class="button"
span Go to lists span=t 'list.go_to_lists'
@@ -1,4 +1,5 @@
App.ApplicationController = Ember.Controller.extend App.ApplicationController = Ember.Controller.extend
join_request_sent: false
notice: '' notice: ''
actions: actions:
confirmCancel: -> confirmCancel: ->
@@ -39,11 +40,22 @@ App.ApplicationController = Ember.Controller.extend
join_request = @store.createRecord 'join_request', data.join_request join_request = @store.createRecord 'join_request', data.join_request
@transitionToRoute 'join_requests' @transitionToRoute 'join_requests'
join_request_rejected: (data)-> join_request_rejected: (data)->
# Remove join request from connected users
join_request = @store.all('join_request').findBy 'id', data.id join_request = @store.all('join_request').findBy 'id', data.id
join_request.eraseRecord() if join_request join_request.eraseRecord() if join_request
# Notify requestor in a proper manner
# 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 'join_request_sent', false
join_request_approved: -> join_request_approved: ->
@setCurrentList -> @setCurrentList ->
@transitionToRoute 'active_list' @transitionToRoute('active_list').then =>
@set 'notice', t('join_request.requestor.join_request_approved')
list_changed_table: -> list_changed_table: ->
@setCurrentList() @setCurrentList()
@@ -69,4 +81,4 @@ App.ApplicationController = Ember.Controller.extend
@set 'list', null @set 'list', null
@store.find('list', 'current').then(success, error) @store.find('list', 'current').then(success, error)
didInsertElement: (e)-> didInsertElement: (e)->
debugger #debugger
@@ -1,5 +1,5 @@
App.TableController = Ember.ObjectController.extend App.TableController = Ember.ObjectController.extend
join_request_sent: false join_request_sent: (-> @get('controllers.application.join_request_sent')).property('controllers.application.join_request_sent')
tableCanTakeOrders: (-> tableCanTakeOrders: (->
return false unless @get('supplier.can_take_orders') return false unless @get('supplier.can_take_orders')
list = @get('controllers.application.list') list = @get('controllers.application.list')
@@ -14,7 +14,7 @@ App.TableController = Ember.ObjectController.extend
showJoinButton: (-> showJoinButton: (->
return false unless @get('supplier.can_take_orders') 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 return false if @get('controllers.application.list') # if you already have an active list, do not join another
if @get('model.occupied') then true else false if @get('model.occupied') then true else false # no point in joining tables that are not occupied
).property('controllers.application.list.id', 'supplier.can_take_orders', 'model.occupied', 'model.id', 'controllers.application.list.table.id') ).property('controllers.application.list.id', 'supplier.can_take_orders', 'model.occupied', 'model.id', 'controllers.application.list.table.id')
actions: actions:
addProduct: (product)-> addProduct: (product)->
@@ -25,7 +25,7 @@ App.TableController = Ember.ObjectController.extend
joinOccupiedTable: -> joinOccupiedTable: ->
#@secured => #@secured =>
Ember.$.post('/user/join_occupied_table.json', table_id: @get('model.id')) Ember.$.post('/user/join_occupied_table.json', table_id: @get('model.id'))
@set 'join_request_sent', true # keeps the button deactivated @set 'controllers.application.join_request_sent', true # keeps the button deactivated
toggleProductCategory: (product_category)-> toggleProductCategory: (product_category)->
product_category.set 'collapsed', not product_category.get('collapsed') product_category.set 'collapsed', not product_category.get('collapsed')
showProductDescription: (product)-> showProductDescription: (product)->
@@ -1,5 +1,6 @@
.lists-overview-entry .lists-overview-entry
+grid-column(12) +grid-column(12)
cursor: pointer
@media #{$medium-only} @media #{$medium-only}
+grid-column(6) +grid-column(6)
@media #{$large-up} @media #{$large-up}
@@ -3,7 +3,9 @@ module Suppliers
# GET /lists # GET /lists
# GET /lists.json # GET /lists.json
def index def index
if params[:date].present? if params[:state] == 'active'
@lists = List.active_for_supplier(current_supplier, page: params[:page], per_page: params[:per_page] || 25)
elsif params[:date].present?
@date = params[:date].present? ? (Date.parse(params[:date]) rescue Date.today) : Date.today @date = params[:date].present? ? (Date.parse(params[:date]) rescue Date.today) : Date.today
@time = @date.to_time(:utc) @time = @date.to_time(:utc)
@start_time = @time.beginning_of_day @start_time = @time.beginning_of_day
+1
View File
@@ -99,6 +99,7 @@ class List
end end
def self.active_for_supplier(supplier_id, options = {}) def self.active_for_supplier(supplier_id, options = {})
supplier_id = supplier_id.id if supplier_id.is_a?(Supplier)
database.view(active_by_supplier_id_view(key: supplier_id, reduce: false, include_docs: true)) database.view(active_by_supplier_id_view(key: supplier_id, reduce: false, include_docs: true))
end end
+1 -1
View File
@@ -35,7 +35,7 @@
/jQuery(function(){ /jQuery(function(){
/Qsupplier.load_list('#{@list.id}'); /Qsupplier.load_list('#{@list.id}');
/}) /})
.test-div /.test-div
span.fa.fa-square-o.fa-2x span.fa.fa-square-o.fa-2x
span.fa-stack span.fa-stack
i.fa.fa-square-o.fa-stack-2x i.fa.fa-square-o.fa-stack-2x
+1
View File
@@ -33,6 +33,7 @@ en:
is_helped_button: Question answered! is_helped_button: Question answered!
close_list: Close! close_list: Close!
none_found: 'No ${models.plural.list|downcase}' none_found: 'No ${models.plural.list|downcase}'
go_to_lists: Go to lists
order: order:
being_processed: 'In process!' being_processed: 'In process!'
being_served: 'Is delivered!' being_served: 'Is delivered!'
+1
View File
@@ -33,6 +33,7 @@ nl:
is_helped_button: Vraag beantwoord! is_helped_button: Vraag beantwoord!
close_list: Afsluiten! close_list: Afsluiten!
none_found: 'Geen ${models.plural.list|downcase}' none_found: 'Geen ${models.plural.list|downcase}'
go_to_lists: Naar lijsten
order: order:
being_processed: 'Ben bezig!' being_processed: 'Ben bezig!'
being_served: 'Ik kom het brengen!' being_served: 'Ik kom het brengen!'
+3 -3
View File
@@ -13,8 +13,6 @@ en:
table_is_reserved: The table you want to sit on is reserved by someone else table_is_reserved: The table you want to sit on is reserved by someone else
table_is_closed: The table you want to sit on is not available for service table_is_closed: The table you want to sit on is not available for service
supplier_is_closed: The owner of this table is currently not handling orders supplier_is_closed: The owner of this table is currently not handling orders
join_request_rejected: Your request to join the table has been rejected
join_request_approved: Your request to join the table has been approved
table_is_from_other_supplier: You cannot move to another table when you have an open list table_is_from_other_supplier: You cannot move to another table when you have an open list
moved_to_another_table: You successfully moved to another table moved_to_another_table: You successfully moved to another table
cannot_identify_table: The application cannot determine the table number cannot_identify_table: The application cannot determine the table number
@@ -34,10 +32,12 @@ en:
title: '${models.plural.join_request}' title: '${models.plural.join_request}'
reject_request: Reject reject_request: Reject
approve_request: Approve approve_request: Approve
no_join_requests_message: Nobody wants to join right now no_join_requests_message: No current join requests for your list
requestor: requestor:
join_this_table: Join this table join_this_table: Join this table
waiting_for_approval: Waiting for approval waiting_for_approval: Waiting for approval
join_request_rejected: Your request to join the table has been rejected
join_request_approved: Your request to join the table has been approved
list_products: list_products:
title: Order title: Order
+3 -3
View File
@@ -13,8 +13,6 @@ nl:
table_is_reserved: De tafel waar je aan wil gaan zitten is gereserveerd table_is_reserved: De tafel waar je aan wil gaan zitten is gereserveerd
table_is_closed: De tafel waar je aan wil gaan zitten is niet beschikbaar voor bediening table_is_closed: De tafel waar je aan wil gaan zitten is niet beschikbaar voor bediening
supplier_is_closed: De eigenaar van deze tafel is momenteel gesloten supplier_is_closed: De eigenaar van deze tafel is momenteel gesloten
join_request_rejected: Je verzoek om te mogen bestellen op een bestaande lijst is afgewezen
join_request_approved: Je verzoek om te mogen bestellen op een bestaande lijst is goedgekeurd
table_is_from_other_supplier: Je kan geen lijst openen bij een andere zaak zolang je huidige lijst nog niet is afgesloten table_is_from_other_supplier: Je kan geen lijst openen bij een andere zaak zolang je huidige lijst nog niet is afgesloten
moved_to_another_table: De tafel is gewijzigd moved_to_another_table: De tafel is gewijzigd
cannot_identify_table: De applicatie kan niet bepalen om welke tafel het gaat cannot_identify_table: De applicatie kan niet bepalen om welke tafel het gaat
@@ -35,10 +33,12 @@ nl:
title: '${models.plural.join_request}' title: '${models.plural.join_request}'
reject_request: Afwijzen reject_request: Afwijzen
approve_request: Toestaan approve_request: Toestaan
no_join_requests_message: Niemand wil deelnemen aan de ${models.list} no_join_requests_message: Geen deelname verzoeken voor de huidige ${models.list}
requestor: requestor:
waiting_for_approval: Wachten op toestemming waiting_for_approval: Wachten op toestemming
join_this_table: Ik wil ook bestellen bij deze tafel join_this_table: Ik wil ook bestellen bij deze tafel
join_request_rejected: Je verzoek om deel te nemen aan de ${models.list|downcase} is afgewezen
join_request_approved: Je verzoek om deel te nemen aan de ${models.list|downcase} is goedgekeurd
history_list: history_list:
title: Afgesloten lijst title: Afgesloten lijst
list_history: list_history:
@@ -12,9 +12,9 @@ Feature: Joining an occupied table
When the original user approves the other user's join request When the original user approves the other user's join request
Then the original user should not see the join request anymore Then the original user should not see the join request anymore
And the other user should be added to the active list And the other user should be added to the active list
And the other user should be redirected to the user menu page And the other user should be redirected to active list it just joined
@javascript @broken @javascript
Scenario: Original user rejects the join request Scenario: Original user rejects the join request
Given There is an open supplier with a menu Given There is an open supplier with a menu
And there is a signed in user with an active order And there is a signed in user with an active order
@@ -27,13 +27,3 @@ Feature: Joining an occupied table
Then the original user should not see the join request anymore Then the original user should not see the join request anymore
And the other user should not be added to the active list And the other user should not be added to the active list
And the other user should see a join reject message And the other user should see a join reject message
@javascript @broken
Scenario: The other user just wants to see the table menu
Given There is an open supplier with a menu
And there is a signed in user with an active order
And I am on the user homepage
When another user scans the QR code on the table
And the other user clicks the show me the menu button
Then the other user sees the table menu
And the other user does not see order buttons
@@ -30,16 +30,3 @@ step "I am signed in as a user" do
step "I visit the user obtain token path" step "I visit the user obtain token path"
end end
step "the other user should be added to the active list" do
@other_user.reload
@list.reload
@other_user.active_list_id.should == @list.id
@list.user_ids.should =~ [@user.id, @other_user.id]
end
step "the other user should not be added to the active list" do
@other_user.reload
@list.reload
@other_user.active_list_id.should be_nil
@list.user_ids.should == [@user.id]
end
@@ -39,7 +39,3 @@ step "the other user clicks the join table button" do
find('.join-table-button').click find('.join-table-button').click
end end
step "the other user should be redirected to the user menu page" do
Capybara.session_name = :other_user
route_should_be 'user#list_products'
end
@@ -134,6 +134,7 @@ step "the active list changes to another table in another section" do
end end
step "the supplier main board table number should be updated to the new table number" do step "the supplier main board table number should be updated to the new table number" do
binding.pry
expect( find(".list-row-#{@list.id} .table_number").text ).to eq "65" expect( find(".list-row-#{@list.id} .table_number").text ).to eq "65"
expect( find(".order-row-#{@list.orders.first.id} .table_number").text ).to eq "65" expect( find(".order-row-#{@list.orders.first.id} .table_number").text ).to eq "65"
end end
@@ -1,8 +1,10 @@
step "the original user should see a join request message" do step "the original user should see a join request message" do
Capybara.session_name = :default Capybara.session_name = :default
request_text = page.evaluate_script(%|t('join_request.body', {email: '#{@other_user.email}'})|) #request_text = page.evaluate_script(%|t('join_request.body', {email: '#{@other_user.email}'})|)
request_text.should be_present request_title = page.evaluate_script(%|t('join_request.existing_user.title')|)
page.should have_content request_text request_title.should be_present
page.should have_content request_title
page.should have_content @other_user.email
end end
step "the original user should not see the join request anymore" do step "the original user should not see the join request anymore" do
@@ -13,11 +15,11 @@ step "the original user should not see the join request anymore" do
end end
step "the original user approves the other user's join request" do step "the original user approves the other user's join request" do
find('.approve-join-request-button').click find('.join-request-approve').click
end end
step "the original user rejects the other user's join request" do step "the original user rejects the other user's join request" do
find('.reject-join-request-button').click find('.join-request-reject').click
end end
step "the other user clicks the show me the menu button" do step "the other user clicks the show me the menu button" do
@@ -33,8 +35,29 @@ end
step "the other user should see a join reject message" do step "the other user should see a join reject message" do
Capybara.session_name = :other_user Capybara.session_name = :other_user
reject_text = I18n.t('messages.join_request_rejected') reject_text = page.evaluate_script(%|t('join_request.requestor.join_request_rejected')|)
reject_text.should be_present reject_text.should be_present
reject_text.should_not include 'translation' reject_text.should_not include 'translation'
page.should have_content reject_text page.should have_content reject_text
end end
step "the other user should be added to the active list" do
sleep 1
@other_user.reload
@list.reload
@other_user.active_list_id.should == @list.id
@list.user_ids.should =~ [@user.id, @other_user.id]
end
step "the other user should not be added to the active list" do
sleep 1
@other_user.reload
@list.reload
@other_user.active_list_id.should be_nil
@list.user_ids.should == [@user.id]
end
step "the other user should be redirected to active list it just joined" do
Capybara.session_name = :other_user
ember_route_should_be '/active_list'
end
+2 -1
View File
@@ -47,4 +47,5 @@ General:
Post release Post release
------------ ------------
noting so far Chromecast app
Waiter app