Fixes for event stream and section view actions

This commit is contained in:
2014-07-28 15:13:18 +02:00
parent 2c4c51fe77
commit 48e1850200
17 changed files with 76 additions and 40 deletions
@@ -5,7 +5,7 @@ Qsupplier.App.Table = DS.Model.extend
height: attr 'number'
position_x: attr 'number'
position_y: attr 'number'
occupied: attr 'boolean'
# occupied: attr 'boolean'
section: DS.belongsTo('section')
#active_list: DS.belongsTo('list', key: 'active_list')
active_list: DS.belongsTo('list')
@@ -13,3 +13,4 @@ Qsupplier.App.Table = DS.Model.extend
#active_list: (->
#@get('list')
#).property('list')
occupied: (-> !!@get('active_list')).property('active_list.id')
@@ -1,5 +1,6 @@
Qsupplier.App.ApplicationView = Ember.View.extend
didInsertElement: ->
Qsupplier.watch_events()
selector_mappings =
'.top-menu-root': '/'
'.top-menu-lists': 'lists'
@@ -48,11 +48,11 @@ Qsupplier.App.SectionTableView = Ember.View.extend DragNDrop.Draggable,
@$el = @$()
#@$('.table-actions').hide()
#title = @$('.table-actions .title').clone()
content = @$('.table-actions')
@$('.table-actions').hide()
#@$('.table-actions .title').remove()
content.hide()
@$el.on 'click', =>
content.toggle() if @$el.hasClass('occupied') and not @get('controller.editmode')
# duplication of .table-actions because variable gets unshadowed
@$('.table-actions').toggle() if @$el.hasClass('occupied') and not @get('controller.editmode')
#@$el.qtip
#content:
#text: content
@@ -2,7 +2,7 @@ root = exports ? this
root.Qsupplier=
watch_events: ->
faye = new Faye.Client(event_host)
faye.subscribe "/supplier/"+supplier_id, (e)=>
faye.subscribe "/supplier/#{supplier_id}", (e)=>
console.log "Event: #{e.event}"
console.log e.data
if(e.event == 'new_order')
@@ -14,14 +14,17 @@ root.Qsupplier=
# console.log "Ugly ember fix for adding order #{e.data.order.id} as relation to its list"
list = order.get('list')
list.get('orders').addRecord order
if table = list.get('table')
if table.get('active_list') isnt list
table.set 'active_list', list
, 200
else if(e.event == 'list_needs_help')
if Qsupplier.App and list = Qsupplier.App.List.findCached(e.data.id)
list.markNeedsHelp()
# old stuff
$('#list-needs-help-indicator-'+e.data.id).removeClass('hide')
$('#list-is-helped-button-'+e.data.id).removeClass('hide')
$('.section-table-list-'+e.data.id).addClass('needs_help')
# $('#list-needs-help-indicator-'+e.data.id).removeClass('hide')
# $('#list-is-helped-button-'+e.data.id).removeClass('hide')
# $('.section-table-list-'+e.data.id).addClass('needs_help')
else if(e.event == 'list_needs_payment')
if Qsupplier.App and list = Qsupplier.App.List.findCached(e.data.id)
list.markNeedsPayment()
@@ -34,7 +37,6 @@ root.Qsupplier=
else if e.event == 'list_update'
if Qsupplier.App
list = Qsupplier.App.List.updateOrAdd(e.data.list)
debugger
else if e.event == 'list_closed'
if Qsupplier.App and list = Qsupplier.App.List.findCached(e.data.id)
list.markClosed()
@@ -48,10 +50,10 @@ root.Qsupplier=
if Qsupplier.App and list = Qsupplier.App.List.findCached(e.data.id)
list.markHelped()
list_id = e.data.id
$('#list-needs-help-indicator-'+list_id).addClass('hide')
$('#list-is-helped-button-'+list_id).addClass('hide')
$('.section-table-list-'+list_id).removeClass('needs_help')
# list_id = e.data.id
# $('#list-needs-help-indicator-'+list_id).addClass('hide')
# $('#list-is-helped-button-'+list_id).addClass('hide')
# $('.section-table-list-'+list_id).removeClass('needs_help')
else if e.event == 'order_being_processed'
if Qsupplier.App and order = Qsupplier.App.Order.findCached(e.data.id)
order.markActive()
@@ -22,7 +22,7 @@ App.ApplicationSerializer = DS.ActiveModelSerializer.extend
else
@_super record, json, relationship
App.Store = DS.Store.extend
App.ApplicationStore = DS.Store.extend
adapter: DS.RESTAdapter.extend
namespace: 'user'
# user underscored paths
@@ -1,7 +1,7 @@
class SupplierExtendedTableSerializer < Qwaiter::Serializer
root 'table'
embed :ids, include: true
attributes :number, :width, :height, :position_x, :position_y, :section_id, :occupied, :active_list_id
attributes :number, :width, :height, :position_x, :position_y, :section_id, :active_list_id
#def list_id
#object.active_list_id || object.active_list.try(:id)
+1 -1
View File
@@ -1,6 +1,6 @@
class SupplierTableSerializer < Qwaiter::Serializer
self.root = :table
embed :ids, include: true
attributes :number, :width, :height, :position_x, :position_y, :section_id, :occupied, :needs_help
attributes :number, :width, :height, :position_x, :position_y, :section_id, :needs_help
has_one :supplier, serializer: SupplierSupplierSerializer
end
+1 -1
View File
@@ -1,6 +1,6 @@
- content_for :head do
= javascript_include_tag 'supplier/app/application'
- content_for :footer do
/- content_for :footer do
javascript:
$(function(){
Qsupplier.watch_events();
@@ -1,4 +1,4 @@
-# DEPRICATED
-# DEPRICATED now in ember app
ul#table-actions-list
- if @list
- if @list.needs_help?
@@ -1,4 +1,4 @@
- model_class = Section
/- model_class = Section
- content_for :head do
= javascript_include_tag 'supplier/app/application'
/- content_for :row do
@@ -19,7 +19,7 @@
- @tables.each do |table|
.section-table-menu-content class="section-table-menu-#{table.id} section-table-list-#{table.active_list_id}"
button.btn.btn-info.list-is-helped.hide Question answered!
#add-tables-modal.modal.hide.fade tabindex=-1 role=:dialog aria-labeledby='add-tables-modal-label' aria-hidden=true
/#add-tables-modal.modal.hide.fade tabindex=-1 role=:dialog aria-labeledby='add-tables-modal-label' aria-hidden=true
.modal-header
button.close type=:button data-dismiss=:modal aria-hidden=true x
h3#add-tables-modal-label data-t='section.add_tables.modal.title' = t('supplier.section.add_tables.modal.title')
@@ -37,7 +37,7 @@
.modal-footer
button.btn data-dismiss="modal" aria-hidden=true data-t='section.add_tables.modal.close_button'
button.btn.btn-primary onclick="Qsupplier.add_tables_to_active_section()" data-t='section.add_tables.modal.add_button'
#arrange-tables-modal.modal.hide.fade tabindex=-1 role=:dialog aria-labeledby='add-tables-modal-label' aria-hidden=true
/#arrange-tables-modal.modal.hide.fade tabindex=-1 role=:dialog aria-labeledby='add-tables-modal-label' aria-hidden=true
button.close type=:button data-dismiss=:modal aria-hidden=true x
h3#arrange-tables-modal-label data-t='section.arrange_tables.modal.title' = t('supplier.section.arrange_tables.modal.title')
.modal-body
@@ -66,7 +66,7 @@
.modal-footer
button.btn data-dismiss="modal" aria-hidden=true data-t='section.arrange_tables.modal.close_button'
button.btn.btn-primary onclick="Qsupplier.arrange_tables_of_active_section()" data-t='section.arrange_tables.modal.arrange_button'
- content_for :footer do
/- content_for :footer do
javascript:
var current_section_id = '#{@section.id}';
var current_section_width = #{@section.width};
@@ -30,6 +30,8 @@ Feature: Supplier section view
When the list is marked as in need of payment
Then the section table should be marked as in need of payment
And I wait 0.5 seconds
When I click on the close list button in the section table table popup
And I wait 1 second
Then the section table should not have any active list markings anymore
@@ -64,6 +66,18 @@ Feature: Supplier section view
When I click the supplier section normal mode button
Then the supplier last section properties should be updated to the new values
@javascript
Scenario: A new order is created when the view is already loaded
Given there is a confirmed and open supplier
And there is a table in the section
And there is a product
And I am signed in as supplier
When I visit the supplier section path
And A new order is placed
Then the table should be marked as occupied and having an active order
When the supplier clicks on the table having the new list
Then the supplier table actions of the new list should be visible
# capybara-webkit 1.1.0 drag to is not yet supported it seems
@javascript @broken
Scenario: Dragging a table to another section
@@ -0,0 +1,5 @@
step "A new order is placed" do
@user ||= create :user
@list = create :list, state: 'active', supplier: @supplier, table: @table, section: @section, user_ids: [@user.id]
@order = @list.place_order products: {@product.id => 2}, user: @user
end
@@ -5,3 +5,7 @@ step "the product :product_name has description :product_description" do |produc
product.save or raise "Cannot save product: #{product.errors.full_messages.to_sentence}"
@product ||= product
end
step 'there is a product' do
@product = create :product, price: 2.22, supplier: @supplier
end
@@ -3,6 +3,10 @@ step 'there is a table' do
@table ||= create :table, section: @section, supplier: @supplier
end
step 'there is a table in the section' do
step 'there is a table'
end
step "the other user sees the table menu" do
Capybara.session_name = :other_user
route_should_be 'user#list_products_for_table'
@@ -7,10 +7,6 @@ step "there are :count supplier products" do |count|
@products = create_list :product, count.to_i, supplier: @supplier
end
step 'there is a product' do
@product = create :product, supplier: @supplier
end
step "the supplier fills in the new product form selecting the first product category" do
find('#product_name').set 'New product'
find('#product_code').set 'NL0487'
@@ -31,6 +31,11 @@ step "the section table should not be marked as in need of help" do
table['class'].should_not include 'needs_help'
end
step 'Then the table should be marked as occupied and having an active order' do
classes = find(".section-table-#{@table.id}")['class'].split(/\s+/)
expect(classes & %w[occupied active_order]).to eq & %w[occupied active_order]
end
step "I click on section table as a supplier" do
table = page.find(".section-table-#{@table.id}")
table.click
@@ -41,27 +46,31 @@ step "the section table should be marked as in need of payment" do
end
step "A popup having table options should appear in supplier section area" do
page.should have_selector(".table-actions-#{@table.id}")
page.should have_selector(".section-table-#{@table.id} .table-actions")
end
step "I click on the mark list as helped in the section table popup as supplier" do
btn = page.find(".list-is-helped-button-#{@list.id}")
btn.click
# btn = page.find(".list-is-helped-button-#{@list.id}")
page.find(".section-table-#{@table.id} .mark_list_as_helped").click
# btn.click
end
step "the section table popup should no longer have the mark list as helped button" do
page.should_not have_selector(".list-is-helped-button-#{@list.id}")
page.should_not have_selector(".section-table-#{@table.id} .mark_list_as_helped")
end
step "I click on the close list button in the section table table popup" do
# first click on the table to open the table actions popup
table = page.find(".section-table-#{@table.id}")
table.click
page.find(".table-actions-#{@table.id} .close-list").click
# now click the close list button inside the table actions popup
page.find(".section-table-#{@table.id} .table-actions .close-list-button").click
end
step "the section table should not have any active list markings anymore" do
table = page.find(".section-table-#{@table.id}")
css_class = table['class']
binding.pry
css_class.should_not include 'needs_help'
css_class.should_not include 'occupied'
css_class.should_not include 'active_order'