Mixed commit, user facebook issues
This commit is contained in:
+3
-3
@@ -247,8 +247,8 @@ GEM
|
|||||||
omniauth (1.2.2)
|
omniauth (1.2.2)
|
||||||
hashie (>= 1.2, < 4)
|
hashie (>= 1.2, < 4)
|
||||||
rack (~> 1.0)
|
rack (~> 1.0)
|
||||||
omniauth-facebook (1.6.0)
|
omniauth-facebook (2.0.0)
|
||||||
omniauth-oauth2 (~> 1.1)
|
omniauth-oauth2 (~> 1.2)
|
||||||
omniauth-oauth2 (1.2.0)
|
omniauth-oauth2 (1.2.0)
|
||||||
faraday (>= 0.8, < 0.10)
|
faraday (>= 0.8, < 0.10)
|
||||||
multi_json (~> 1.3)
|
multi_json (~> 1.3)
|
||||||
@@ -375,7 +375,7 @@ GEM
|
|||||||
turnip (1.2.2)
|
turnip (1.2.2)
|
||||||
gherkin (>= 2.5)
|
gherkin (>= 2.5)
|
||||||
rspec (>= 2.0, < 4.0)
|
rspec (>= 2.0, < 4.0)
|
||||||
tzinfo (1.2.1)
|
tzinfo (1.2.2)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
uglifier (2.5.3)
|
uglifier (2.5.3)
|
||||||
execjs (>= 0.3.0)
|
execjs (>= 0.3.0)
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
Ember.Handlebars.registerBoundHelper 'image_tag', (path, params..., options={})->
|
Ember.Handlebars.helper 'image_tag', (path, options={})->
|
||||||
alt = options.hash.alt ||= ''
|
alt = options.hash.alt || ''
|
||||||
image_path = if path.substring(0,4) == 'http' then path else "/assets/#{path}"
|
image_path = if path.substring(0,4) == 'http' then path else "/assets/#{path}"
|
||||||
new Handlebars.SafeString "<img src=\"#{image_path}\" alt=\"#{alt}\" title=\"#{alt}\" >"
|
extra_attributes = ''
|
||||||
|
extra_attributes += " width=\"#{options.hash.width}\"" if options.hash.width
|
||||||
|
extra_attributes += " height=\"#{options.hash.height}\"" if options.hash.height
|
||||||
|
new Handlebars.SafeString "<img src=\"#{image_path}\" alt=\"#{alt}\" title=\"#{alt}\" #{extra_attributes}>"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
App.SettingsController = Ember.ObjectController.extend
|
App.SettingsController = Ember.ObjectController.extend
|
||||||
needs: ['application']
|
needs: ['application']
|
||||||
model: (-> @get('controllers.application.supplier')).property('controllers.application.supplier')
|
# model: (-> @get('controllers.application.supplier')).property('controllers.application.supplier')
|
||||||
time_zones: (-> window.time_zones ).property()
|
time_zones: (-> window.time_zones ).property()
|
||||||
countries: (-> window.countries ).property()
|
countries: (-> window.countries ).property()
|
||||||
editIensProfile: (-> @get('model.country') is 'Netherlands' ).property('model.country')
|
editIensProfile: (-> @get('model.country') is 'Netherlands' ).property('model.country')
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
App.SettingsRoute = Ember.Route.extend
|
App.SettingsRoute = Ember.Route.extend
|
||||||
model: ->
|
model: -> @container.lookup('route:application').supplier
|
||||||
Em.RSVP.hash
|
# setupController: (controller, model)->
|
||||||
supplier: @controllerFor('application').get('supplier')
|
# #controller.set 'model', controller.get('controllers.application.supplier')
|
||||||
setupController: (controller, model)->
|
# controller.set 'model', model.supplier
|
||||||
#controller.set 'model', controller.get('controllers.application.supplier')
|
|
||||||
controller.set 'model', model.supplier
|
|
||||||
|
|||||||
@@ -12,7 +12,10 @@
|
|||||||
rootElement: '#ember-app-container'
|
rootElement: '#ember-app-container'
|
||||||
obtain_token: (message)->
|
obtain_token: (message)->
|
||||||
message ||= ''
|
message ||= ''
|
||||||
window.location = "#{$root_url}/obtain_token?message=#{message}"
|
# frame = $('<iframe></iframe>').addClass('obtain-token-frame').attr 'src', $obtain_token_url
|
||||||
|
# frame.css width: $('body').outerWidth(), height: $('body').outerHeight()
|
||||||
|
# $('body').append frame
|
||||||
|
window.location = "#{$obtain_token_url}"
|
||||||
|
|
||||||
Ember.$.ajaxPrefilter (options) ->
|
Ember.$.ajaxPrefilter (options) ->
|
||||||
if options.type.toUpperCase() == 'GET'
|
if options.type.toUpperCase() == 'GET'
|
||||||
|
|||||||
@@ -10,18 +10,21 @@ if list.closed_at
|
|||||||
.display-row
|
.display-row
|
||||||
.display-label=t 'attributes.list.state'
|
.display-label=t 'attributes.list.state'
|
||||||
.display-field=state 'list' list.state
|
.display-field=state 'list' list.state
|
||||||
if list.sorted_orders
|
if list.orders.isLoaded
|
||||||
.list-orders-container
|
if list.sorted_orders
|
||||||
each order in list.sorted_orders
|
.list-orders-container
|
||||||
App.ListOrderView contentBinding="order"
|
each order in list.sorted_orders
|
||||||
if showTotal
|
App.ListOrderView contentBinding="order"
|
||||||
.list-orders-total.total
|
if showTotal
|
||||||
= t 'total'
|
.list-orders-total.total
|
||||||
span.currency= currency list.total
|
= t 'total'
|
||||||
|
span.currency= currency list.total
|
||||||
|
else
|
||||||
|
p
|
||||||
|
span=t 'active_list.no_orders_explanation'
|
||||||
|
br
|
||||||
|
if list.table
|
||||||
|
link-to 'table' list.table class="button"
|
||||||
|
span=t 'list_products.title'
|
||||||
else
|
else
|
||||||
p
|
span.loading.large
|
||||||
span=t 'active_list.no_orders_explanation'
|
|
||||||
br
|
|
||||||
if list.table
|
|
||||||
link-to 'table' list.table class="button"
|
|
||||||
span=t 'list_products.title'
|
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
.row
|
.row
|
||||||
h2=t 'active_list.title'
|
h2=t 'active_list.title'
|
||||||
if list
|
if list.orders.isLoaded
|
||||||
partial "list_content"
|
if list
|
||||||
|
partial "list_content"
|
||||||
|
else
|
||||||
|
p
|
||||||
|
span=t 'active_list.not_active.message'
|
||||||
|
br
|
||||||
|
link-to 'index' class="button"
|
||||||
|
span= t 'active_list.not_active.home_button_text'
|
||||||
else
|
else
|
||||||
p
|
span.loading.large
|
||||||
span=t 'active_list.not_active.message'
|
|
||||||
br
|
|
||||||
link-to 'index' class="button"
|
|
||||||
span= t 'active_list.not_active.home_button_text'
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ header.top-menu
|
|||||||
.table-number
|
.table-number
|
||||||
|
|
|
|
||||||
= t 'models.table'
|
= t 'models.table'
|
||||||
|
|
|
|
||||||
= list.table.number
|
= list.table.number
|
||||||
.supplier-info-row
|
.supplier-info-row
|
||||||
.counter.supplier-orders-placed-count
|
.counter.supplier-orders-placed-count
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.home-panel
|
.home-panel
|
||||||
.home-header = image_tag 'logo.png'
|
.home-header= image_tag 'logo.png' width=100 height=115 alt="Logo"
|
||||||
.home-center
|
.home-center
|
||||||
a{action scanQr} href="#"= image_tag 'scan-logo.png'
|
a{ action "scanQr" } href="#"= image_tag 'scan-logo.png' width=148 height=177 alt="Scan"
|
||||||
.home-footer
|
.home-footer
|
||||||
.home-footer-content
|
.home-footer-content
|
||||||
|
|||||||
@@ -292,6 +292,12 @@ class UserController < Users::ApplicationController
|
|||||||
|
|
||||||
def obtain_token
|
def obtain_token
|
||||||
redirect_to user_omniauth_authorize_path('facebook') and return unless current_user.present?
|
redirect_to user_omniauth_authorize_path('facebook') and return unless current_user.present?
|
||||||
|
# redirect_to case platform
|
||||||
|
# when 'android' then "file:///android_asset/user/index.html?user_id=#{current_user.id}&auth_token=#{current_user.authentication_token}"
|
||||||
|
# when
|
||||||
|
# else user_root_path(user_id: current_user.id, auth_token: current_user.authentication_token)
|
||||||
|
# end
|
||||||
|
# return
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { render layout: 'user/obtain_token' }
|
format.html { render layout: 'user/obtain_token' }
|
||||||
format.json do
|
format.json do
|
||||||
|
|||||||
@@ -32,8 +32,16 @@ module ApplicationHelper
|
|||||||
|
|
||||||
def user_dynamic_root_url
|
def user_dynamic_root_url
|
||||||
case Rails.env
|
case Rails.env
|
||||||
when 'test' then "$root_url = 'http://#{request.host}:#{request.port}/user';".html_safe
|
when 'test' then "Qstorage.setItem('root_url', 'http://#{request.host}:#{request.port}/user/index.html');".html_safe
|
||||||
when 'development' then "$root_url = 'http://localhost:3000/user';".html_safe
|
when 'development' then "Qstorage.setItem('root_url', 'http://localhost:3000/user/index.html');".html_safe
|
||||||
|
else ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_dynamic_obtain_token_url
|
||||||
|
case Rails.env
|
||||||
|
when 'test' then "$obtain_token_url = 'http://#{request.host}:#{request.port}/user/obtain_token.html';".html_safe
|
||||||
|
when 'development' then "$obtain_token_url = 'http://localhost:3000/user/obtain_token.html';".html_safe
|
||||||
else ''
|
else ''
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ html lang="en"
|
|||||||
meta charset="utf-8"
|
meta charset="utf-8"
|
||||||
meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"
|
meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"
|
||||||
meta name="viewport" content="width=device-width, initial-scale=1.0"
|
meta name="viewport" content="width=device-width, initial-scale=1.0"
|
||||||
title= content_for?(:title) ? yield(:title) : application_title
|
title= application_title
|
||||||
= stylesheet_link_tag 'obtain_token/application'
|
/ = stylesheet_link_tag 'obtain_token/application'
|
||||||
= csrf_meta_tags
|
/ = csrf_meta_tags
|
||||||
body class=action_name
|
body
|
||||||
- if flash[:alert].present?
|
- if flash[:alert].present?
|
||||||
.alert.alert-error
|
.alert.alert-error
|
||||||
a.close data-dismiss="alert" ×
|
a.close data-dismiss="alert" ×
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ html lang="en"
|
|||||||
meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"
|
meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"
|
||||||
meta name="viewport" content="width=device-width, initial-scale=1.0"
|
meta name="viewport" content="width=device-width, initial-scale=1.0"
|
||||||
title= application_title
|
title= application_title
|
||||||
= stylesheet_link_tag "user/foundation/application"
|
|
||||||
= javascript_include_tag "vendor/modernizr"
|
= javascript_include_tag "vendor/modernizr"
|
||||||
= javascript_include_tag 'http://connect.facebook.net/en_US/all.js'
|
= stylesheet_link_tag "user/foundation/application"
|
||||||
|
/ = javascript_include_tag 'http://connect.facebook.net/en_US/all.js'
|
||||||
= javascript_include_tag "user/flat/application"
|
= javascript_include_tag "user/flat/application"
|
||||||
- if ENV['QWAITER_MOBILE_EXPORT'] == 'yes'
|
- if ENV['QWAITER_MOBILE_EXPORT'] == 'yes'
|
||||||
javascript:
|
javascript:
|
||||||
@@ -15,35 +15,20 @@ html lang="en"
|
|||||||
var $data_host = 'http://data.mozo.bar';
|
var $data_host = 'http://data.mozo.bar';
|
||||||
var $event_host = '#{Qwaiter.event_host}';
|
var $event_host = '#{Qwaiter.event_host}';
|
||||||
var $asset_path = '##assets_path##';
|
var $asset_path = '##assets_path##';
|
||||||
var Qstorage = localStorage;
|
var Qstorage = window.localStorage;
|
||||||
var $root_url = 'http://www.mozo.bar/user';
|
var Qstorage.setItem('root_url', '##root_url##');
|
||||||
|
var $platform = '##platform##';
|
||||||
|
var $obtain_token_url = 'http://mozo.bar/user/obtain_token';
|
||||||
|
|
||||||
- else
|
- else
|
||||||
javascript:
|
javascript:
|
||||||
var QMobile, Qwaiter, Quser;
|
var QMobile, Qwaiter, Quser;
|
||||||
var $event_host = '#{Qwaiter.event_host}';
|
var $event_host = '#{Qwaiter.event_host}';
|
||||||
var $asset_path = '/assets/';
|
var $asset_path = '/assets/';
|
||||||
var Qstorage = localStorage;
|
var Qstorage = window.localStorage;
|
||||||
#{user_dynamic_data_host};
|
#{user_dynamic_data_host};
|
||||||
#{user_dynamic_root_url};
|
#{user_dynamic_root_url};
|
||||||
QMobile || (QMobile = {
|
#{user_dynamic_obtain_token_url};
|
||||||
scanQr: function(){window.location = '/select_qrcode'},
|
var $platform = 'web'
|
||||||
activateRotation: function(){},
|
|
||||||
mobile: function(){return false},
|
|
||||||
authentication_string: function(){return this.authentication_string_storage || ''},
|
|
||||||
authentication_object: function(){return this.authentication_object_storage || '{}'},
|
|
||||||
setAuthToken: function(token){
|
|
||||||
this.auth_token = token;
|
|
||||||
this.authentication_string_storage = 'auth_token='+token;
|
|
||||||
this.authentication_object_storage = '{"auth_token": "'+token+'"}'
|
|
||||||
},
|
|
||||||
root_url: function(){return 'file:///Users/bterkuile/Documents/workspace/Qwaiter/assets/user'},
|
|
||||||
$root_url: function(){return '/user'},
|
|
||||||
goHome: function(){ redirect_to('user_root')},
|
|
||||||
connection_problem: function(){alert('There is a problem connecting to the server')},
|
|
||||||
token: function(){return this.auth_token},
|
|
||||||
setUserId: function(id){ this.stored_user_id = id},
|
|
||||||
user_id: function(){return this.stored_user_id },
|
|
||||||
log: function(str){console.log(str)}
|
|
||||||
});
|
|
||||||
body
|
body
|
||||||
#ember-app-container
|
#ember-app-container
|
||||||
|
|||||||
@@ -18,6 +18,12 @@
|
|||||||
button.btn.btn-primary data-t="obtain_token.obtain" onclick="Quser.authenticate_user(); return false" = t('user.obtain_token.obtain')
|
button.btn.btn-primary data-t="obtain_token.obtain" onclick="Quser.authenticate_user(); return false" = t('user.obtain_token.obtain')
|
||||||
- unless current_user.blank? || ENV['QWAITER_MOBILE_EXPORT']=='yes'
|
- unless current_user.blank? || ENV['QWAITER_MOBILE_EXPORT']=='yes'
|
||||||
javascript:
|
javascript:
|
||||||
|
Qstorage = window.localStorage;
|
||||||
Qstorage.setItem('auth_token', '#{current_user.authentication_token}');
|
Qstorage.setItem('auth_token', '#{current_user.authentication_token}');
|
||||||
Qstorage.setItem('user_id', '#{current_user.id}');
|
Qstorage.setItem('user_id', '#{current_user.id}');
|
||||||
window.location = '/index.html';
|
window.location = (Qstorage.getItem('root_url') || '/index.html') + '?user_id=#{current_user.id}&auth_token=#{current_user.authentication_token}';
|
||||||
|
// localStorage.setItem('auth_token', '#{current_user.authentication_token}');
|
||||||
|
// localStorage.setItem('user_id', '#{current_user.id}');
|
||||||
|
// window.location = $root_url + '?user_id=#{current_user.id}&auth_token=#{current_user.authentication_token}';
|
||||||
|
// debugger;
|
||||||
|
// QMobile.signed_in({user_id: '#{current_user.id}', auth_token: '#{current_user.authentication_token}'});
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ for action in uc.action_methods
|
|||||||
ios_view = ios_view.gsub /(href|src)="\/assets\/([^"]+)/, %|\\1="./assets/\\2| # make assets calls relative
|
ios_view = ios_view.gsub /(href|src)="\/assets\/([^"]+)/, %|\\1="./assets/\\2| # make assets calls relative
|
||||||
ios_view.sub! /<\/title>/, '</title><script type="text/javascript" src="qmobile.js"></script><script type="text/javascript" src="cordova-2.2.0.js"></script><script type="text/javascript" src="barcodescanner.js"></script>'
|
ios_view.sub! /<\/title>/, '</title><script type="text/javascript" src="qmobile.js"></script><script type="text/javascript" src="cordova-2.2.0.js"></script><script type="text/javascript" src="barcodescanner.js"></script>'
|
||||||
ios_view.gsub! '##assets_path##', './assets/'
|
ios_view.gsub! '##assets_path##', './assets/'
|
||||||
|
android_view.gsub! '##platform##', 'ios'
|
||||||
File.open(File.join(ios_root, "#{action}.html"), 'w'){|f| f.puts ios_view}
|
File.open(File.join(ios_root, "#{action}.html"), 'w'){|f| f.puts ios_view}
|
||||||
|
|
||||||
## MODIFY FOR ANDROID
|
## MODIFY FOR ANDROID
|
||||||
@@ -87,6 +88,8 @@ for action in uc.action_methods
|
|||||||
android_view.gsub! /(href|src)="([^#])/, %|\\1="#{android_root_url}\\2| # replace relative uri's with android specific one
|
android_view.gsub! /(href|src)="([^#])/, %|\\1="#{android_root_url}\\2| # replace relative uri's with android specific one
|
||||||
android_view.sub! /<\/title>/, '</title><script type="text/javascript" src="qmobile.js"></script><script type="text/javascript" src="cordova-2.6.0rc1.js"></script><script type="text/javascript" src="barcodescanner.js"></script>'
|
android_view.sub! /<\/title>/, '</title><script type="text/javascript" src="qmobile.js"></script><script type="text/javascript" src="cordova-2.6.0rc1.js"></script><script type="text/javascript" src="barcodescanner.js"></script>'
|
||||||
android_view.gsub! '##assets_path##', 'file:///android_asset/assets/'
|
android_view.gsub! '##assets_path##', 'file:///android_asset/assets/'
|
||||||
|
android_view.gsub! '##root_url##', 'file:///android_asset/user/index.html'
|
||||||
|
android_view.gsub! '##platform##', 'android'
|
||||||
if testhost = ENV['TEST_HOST'].presence
|
if testhost = ENV['TEST_HOST'].presence
|
||||||
android_view.gsub! /data.mozo.bar|www.mozo.bar/, "#{testhost}:3000"
|
android_view.gsub! /data.mozo.bar|www.mozo.bar/, "#{testhost}:3000"
|
||||||
android_view.gsub! /events.mozo.bar/, "#{testhost}:9296"
|
android_view.gsub! /events.mozo.bar/, "#{testhost}:9296"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Feature: Active list view
|
Feature: Active list view
|
||||||
|
|
||||||
@javascript
|
@javascript
|
||||||
Scenario: Loading lists and switching back to the active list
|
Scenario: Loading lists and switching back to the active list works, lists loading may unlink active list orders
|
||||||
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
|
||||||
And the user is on the active list page
|
And the user is on the active list page
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ step "I wait :number second/seconds" do |number|
|
|||||||
end
|
end
|
||||||
|
|
||||||
placeholder :number do
|
placeholder :number do
|
||||||
match /[-+]?\d+(\.\d+)?/ do |number_string|
|
# match /[-+]?\d+(\.\d+)?/ do |number_string|
|
||||||
|
match /\d+\.?\d?/ do |number_string|
|
||||||
number_string.to_f
|
number_string.to_f
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ step "the section table should not be marked as in need of help" do
|
|||||||
table['class'].should_not include 'needs_help'
|
table['class'].should_not include 'needs_help'
|
||||||
end
|
end
|
||||||
|
|
||||||
step 'Then the table should be marked as occupied and having an active order' do
|
step 'the table should be marked as occupied and having an active order' do
|
||||||
classes = find(".section-table-#{@table.id}")['class'].split(/\s+/)
|
classes = find(".section-table-#{@table.id}")['class'].split(/\s+/)
|
||||||
expect(classes & %w[occupied active_order]).to eq & %w[occupied active_order]
|
expect(classes & %w[occupied active_order]).to eq %w[occupied active_order]
|
||||||
end
|
end
|
||||||
|
|
||||||
step "I click on section table as a supplier" do
|
step "I click on section table as a supplier" do
|
||||||
@@ -70,7 +70,6 @@ end
|
|||||||
step "the section table should not have any active list markings anymore" do
|
step "the section table should not have any active list markings anymore" do
|
||||||
table = page.find(".section-table-#{@table.id}")
|
table = page.find(".section-table-#{@table.id}")
|
||||||
css_class = table['class']
|
css_class = table['class']
|
||||||
binding.pry
|
|
||||||
css_class.should_not include 'needs_help'
|
css_class.should_not include 'needs_help'
|
||||||
css_class.should_not include 'occupied'
|
css_class.should_not include 'occupied'
|
||||||
css_class.should_not include 'active_order'
|
css_class.should_not include 'active_order'
|
||||||
@@ -80,7 +79,8 @@ end
|
|||||||
step "I should be redirected to the supplier section view" do
|
step "I should be redirected to the supplier section view" do
|
||||||
sleep 1
|
sleep 1
|
||||||
#page.current_path.should == "/supplier/sections/#{@section.id}"
|
#page.current_path.should == "/supplier/sections/#{@section.id}"
|
||||||
page.evaluate_script('window.location.pathname').should == "/supplier/sections/#{@section.id}"
|
# page.evaluate_script('window.location.pathname').should == "/supplier/sections/#{@section.id}"
|
||||||
|
js_path.should == "/supplier#/sections/#{@section.id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
step "the last supplier section has a table with known coordinates" do
|
step "the last supplier section has a table with known coordinates" do
|
||||||
|
|||||||
@@ -118,7 +118,6 @@ RSpec.configure do |config|
|
|||||||
#config.use_transactional_fixtures = true
|
#config.use_transactional_fixtures = true
|
||||||
config.before :suite do
|
config.before :suite do
|
||||||
Qwaiter::Couchbase.load_design_docs!
|
Qwaiter::Couchbase.load_design_docs!
|
||||||
# NOT THREADSAFE!!!!!! but good enough for testing since the real couchbase flush is slowwwwww....
|
|
||||||
Qwaiter::Counter.connection = TestCounter.new
|
Qwaiter::Counter.connection = TestCounter.new
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user