From acebd481119538cc656bfe3ad59c378a7fe309a3 Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Tue, 29 Jul 2014 21:15:56 +0200 Subject: [PATCH] Add user facebook images to supplier main board --- .../shared-ember-helpers/image_tag.js.coffee | 7 ++++--- .../supplier/app/models/user.js.coffee | 6 ++++++ .../supplier/app/templates/active_list.emblem | 3 +++ .../supplier/app/templates/active_order.emblem | 3 +++ .../supplier/app/templates/index.emblem | 2 ++ app/serializers/supplier_user_serializer.rb | 6 +++++- spec/models/user_spec.rb | 15 +++++++++++++++ 7 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 spec/models/user_spec.rb diff --git a/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee b/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee index 1e22c375..b33ae266 100644 --- a/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee +++ b/app/assets/javascripts/shared-ember-helpers/image_tag.js.coffee @@ -1,3 +1,4 @@ -Ember.Handlebars.registerHelper 'image_tag', (path, params..., options={})-> - options.alt ||= '' - new Handlebars.SafeString "\"#{options.alt}\"" +Ember.Handlebars.registerBoundHelper 'image_tag', (path, params..., options={})-> + alt = options.hash.alt ||= '' + image_path = if path.substring(0,4) == 'http' then path else "/assets/#{path}" + new Handlebars.SafeString "\"#{alt}\"" diff --git a/app/assets/javascripts/supplier/app/models/user.js.coffee b/app/assets/javascripts/supplier/app/models/user.js.coffee index d778fb18..4ea5ac9e 100644 --- a/app/assets/javascripts/supplier/app/models/user.js.coffee +++ b/app/assets/javascripts/supplier/app/models/user.js.coffee @@ -2,6 +2,12 @@ attr = DS.attr Qsupplier.App.User= DS.Model.extend facebook_id: attr('string') email: attr('string') + name: attr('string') list: DS.belongsTo('list') # in ember scope not many to many (yet) join_requests: DS.hasMany('join_request') facebook_image: (-> "http://graph.facebook.com/#{@get('facebook_id')}/picture?type=square").property('facebook_id') + facebook_image_tag: (-> + name = @get('name') + url = @get('facebook_image') + new Handlebars.SafeString "\"#{name}\"" + ).property('facebook_image', 'name') diff --git a/app/assets/javascripts/supplier/app/templates/active_list.emblem b/app/assets/javascripts/supplier/app/templates/active_list.emblem index 353b3d2c..a2de9c18 100644 --- a/app/assets/javascripts/supplier/app/templates/active_list.emblem +++ b/app/assets/javascripts/supplier/app/templates/active_list.emblem @@ -1,3 +1,6 @@ +td.user-info.show-for-large-up + each user in view.content.users + = user.facebook_image_tag td.status-icons if view.content.needs_help span.icon.needs-help diff --git a/app/assets/javascripts/supplier/app/templates/active_order.emblem b/app/assets/javascripts/supplier/app/templates/active_order.emblem index e181eee1..7c140d4a 100644 --- a/app/assets/javascripts/supplier/app/templates/active_order.emblem +++ b/app/assets/javascripts/supplier/app/templates/active_order.emblem @@ -1,3 +1,6 @@ +td.user-info.show-for-large-up + each user in view.content.list.users + = user.facebook_image_tag td.status-icons span.active-order.fa.fa-check.fa-lg td= view.content.display diff --git a/app/assets/javascripts/supplier/app/templates/index.emblem b/app/assets/javascripts/supplier/app/templates/index.emblem index c3f28039..1e4520fa 100644 --- a/app/assets/javascripts/supplier/app/templates/index.emblem +++ b/app/assets/javascripts/supplier/app/templates/index.emblem @@ -7,6 +7,7 @@ table.active-lists-table.table thead tr + th.user-info th.status-icons th.numeric=t 'table_number' th=t 'models.section' @@ -20,6 +21,7 @@ table.active-orders-table.table thead tr + th.user-info th.status-icons th=t 'models.order' th.numeric=t 'table_number' diff --git a/app/serializers/supplier_user_serializer.rb b/app/serializers/supplier_user_serializer.rb index 4b5a27ec..540f4942 100644 --- a/app/serializers/supplier_user_serializer.rb +++ b/app/serializers/supplier_user_serializer.rb @@ -1,4 +1,8 @@ class SupplierUserSerializer < Qwaiter::Serializer self.root = :user - attributes :email, :facebook_id + attributes :email, :facebook_id, :name + + def name + object.supplier_name + end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb new file mode 100644 index 00000000..0b1c83e3 --- /dev/null +++ b/spec/models/user_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +describe User do + let(:user){ build :user } + describe '#supplier_name' do + it "displays the auth data name if available" do + user.auth_data = {'info' => {'name' => 'Benji setup'}} + user.supplier_name.should == 'Benji setup' + end + + it 'falls back to unkown if not present' do + user.supplier_name.should == I18n.t('user.unknown_supplier_name') + end + end +end