From 8e7a566125abf3f1eb8aecaf372e05b61c3e3edd Mon Sep 17 00:00:00 2001 From: root Date: Thu, 31 Jul 2014 14:49:13 +0200 Subject: [PATCH 1/2] birthday dropdown --- .../assets/javascripts/accounts_profile.js | 9 +++++++++ .../javascripts/accounts_profile_avatar.js | 5 +++-- web/app/assets/javascripts/globals.js | 5 +++-- web/app/assets/javascripts/user_dropdown.js | 13 ++++++++++--- .../views/clients/_account_profile.html.erb | 2 +- web/spec/features/account_spec.rb | 18 ++++++++++++++++++ web/spec/features/avatar_spec.rb | 3 +++ web/spec/files/avatar.jpeg | Bin 0 -> 6651 bytes 8 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 web/spec/files/avatar.jpeg diff --git a/web/app/assets/javascripts/accounts_profile.js b/web/app/assets/javascripts/accounts_profile.js index 5c7cb6123..d904f5f0e 100644 --- a/web/app/assets/javascripts/accounts_profile.js +++ b/web/app/assets/javascripts/accounts_profile.js @@ -4,7 +4,9 @@ context.JK = context.JK || {}; context.JK.AccountProfileScreen = function(app) { + var $document = $(document); var logger = context.JK.logger; + var EVENTS = context.JK.EVENTS; var api = context.JK.Rest(); var userId; var user = {}; @@ -63,6 +65,7 @@ $('select#user_birth_date_1i', content_root).val(parseInt(birthDateYear)); $('select#user_birth_date_2i', content_root).val(parseInt(birthDateMonth)); $('select#user_birth_date_3i', content_root).val(parseInt(birthDateDay)); + } // update instruments @@ -87,6 +90,7 @@ } context.JK.dropdown($('select', content_root)); + } function isUserInstrument(instrument, userInstruments) { @@ -317,7 +321,9 @@ .always(function() { loadingCitiesData = false;}) } } + }) + context.JK.dropdown($('select')); } function navToAccount() { @@ -366,6 +372,9 @@ }, null, true); + + $document.triggerHandler(EVENTS.USER_UPDATED, response); + } function postUpdateProfileFailure(xhr, textStatus, errorMessage) { diff --git a/web/app/assets/javascripts/accounts_profile_avatar.js b/web/app/assets/javascripts/accounts_profile_avatar.js index 388bed37c..c89039d97 100644 --- a/web/app/assets/javascripts/accounts_profile_avatar.js +++ b/web/app/assets/javascripts/accounts_profile_avatar.js @@ -6,6 +6,7 @@ context.JK.AccountProfileAvatarScreen = function(app) { var self = this; var logger = context.JK.logger; + var EVENTS = context.JK.EVENTS; var rest = context.JK.Rest(); var user = {}; var tmpUploadPath = null; @@ -381,9 +382,9 @@ self.userDetail = response; // notify any listeners that the avatar changed - userDropdown.loadMe(); + // userDropdown.loadMe(); // $('.avatar_large img').trigger('avatar_changed', [self.userDetail.photo_url]); - + $(document).triggerHandler(EVENTS.USER_UPDATED, response); app.notify( { title: "Avatar Changed", text: "You have updated your avatar successfully." diff --git a/web/app/assets/javascripts/globals.js b/web/app/assets/javascripts/globals.js index 087e0213d..309c40509 100644 --- a/web/app/assets/javascripts/globals.js +++ b/web/app/assets/javascripts/globals.js @@ -32,8 +32,9 @@ SHOW_SIGNUP : 'show_signup', SHOW_SIGNIN : 'show_signin', RSVP_SUBMITTED: 'rsvp_submitted', - RSVP_CANCELED : 'rsvp_canceled' - } + RSVP_CANCELED : 'rsvp_canceled', + USER_UPDATED : 'user_updated' + }; context.JK.ALERT_NAMES = { NO_EVENT : 0, diff --git a/web/app/assets/javascripts/user_dropdown.js b/web/app/assets/javascripts/user_dropdown.js index 656ce71ab..3242ec824 100644 --- a/web/app/assets/javascripts/user_dropdown.js +++ b/web/app/assets/javascripts/user_dropdown.js @@ -6,7 +6,7 @@ context.JK = context.JK || {}; context.JK.UserDropdown = function (app) { - + var EVENTS = context.JK.EVENTS; var logger = context.JK.logger; var rest = new JK.Rest(); var userMe = null; @@ -53,12 +53,16 @@ $('.shortcuts .test-network').on('click', function(e) { app.layout.showDialog('network-test'); return false; - }) + }); $('#header-avatar').on('avatar_changed', function (event, newAvatarUrl) { updateAvatar(newAvatarUrl); event.preventDefault(); return false; + }); + $(document).on(EVENTS.USER_UPDATED, function(e, data) { + userMe = data; + updateHeader(); }) } @@ -115,5 +119,8 @@ loadMe(); } this.loadMe = loadMe; + } -})(window, jQuery); \ No newline at end of file +})(window, jQuery); + + diff --git a/web/app/views/clients/_account_profile.html.erb b/web/app/views/clients/_account_profile.html.erb index bf1ec484f..c297b0f7b 100644 --- a/web/app/views/clients/_account_profile.html.erb +++ b/web/app/views/clients/_account_profile.html.erb @@ -79,7 +79,7 @@
- <%= date_select("user", "birth_date", :use_short_month => true, :start_year => 1900, :end_year => Time.now.year - 18, :order => [:month, :day, :year], :default => -25.years.from_now) %> + <%= date_select("user", "birth_date", :use_short_month => true, :start_year => 1900, :end_year => Time.now.year - 18, :order => [:month, :day, :year], :default => -25.years.from_now, :html=>{:class => "account-profile-birthdate"} ) %>

diff --git a/web/spec/features/account_spec.rb b/web/spec/features/account_spec.rb index 64fa2baf5..ba5500e8f 100644 --- a/web/spec/features/account_spec.rb +++ b/web/spec/features/account_spec.rb @@ -99,7 +99,25 @@ describe "Account", :js => true, :type => :feature, :capybara_feature => true do user.subscribe_email.should be_false user.first_name.should == "Bobby" user.last_name.should == "Toes" + should have_selector('#profile #user', text: 'Bobby Toes') + + + + jk_select("Jan", '#account-edit-profile-form select[name="user[birth_date(2i)]"]') + #jk_select("Jan", '#account-edit-profile-form #user_birth_date_2i') + jk_select("12", '#account-edit-profile-form #user_birth_date_3i') + jk_select("1960", '#account-edit-profile-form #user_birth_date_1i') + find("#account-edit-profile-submit").trigger(:click) + + user.reload + user.birth_date == "1960-01-12" + + should have_selector('#account-edit-profile-form .birth_date li.active', text: "Jan") + should have_selector('#account-edit-profile-form .birth_date li.active', text: "12") + should have_selector('#account-edit-profile-form .birth_date li.active', text: "1960") + } + end describe "unsuccessfully" do diff --git a/web/spec/features/avatar_spec.rb b/web/spec/features/avatar_spec.rb index 18aab6609..1e9c6521f 100644 --- a/web/spec/features/avatar_spec.rb +++ b/web/spec/features/avatar_spec.rb @@ -18,6 +18,9 @@ describe "Avatar", :js => true, :type => :feature, :capybara_feature => true do visit "/client#/account/profile/avatar" find('#account-edit-avatar-upload') + # within_frame 'filepicker_dialog' do + # attach_file '#fileUploadInput', Rails.root.join('spec', 'files', 'avatar.jpg') + # end end it { diff --git a/web/spec/files/avatar.jpeg b/web/spec/files/avatar.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..799e5cbba0cd2dcf111673f9ee0316f8ac308f81 GIT binary patch literal 6651 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 K!A Date: Thu, 31 Jul 2014 16:54:51 +0200 Subject: [PATCH 2/2] account_spec --- web/spec/features/account_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/web/spec/features/account_spec.rb b/web/spec/features/account_spec.rb index ba5500e8f..80c2ab1b0 100644 --- a/web/spec/features/account_spec.rb +++ b/web/spec/features/account_spec.rb @@ -11,7 +11,7 @@ describe "Account", :js => true, :type => :feature, :capybara_feature => true do emulate_client sign_in_poltergeist user visit "/client#/account" - + find('div.account-mid.identity') end @@ -102,9 +102,9 @@ describe "Account", :js => true, :type => :feature, :capybara_feature => true do should have_selector('#profile #user', text: 'Bobby Toes') - - jk_select("Jan", '#account-edit-profile-form select[name="user[birth_date(2i)]"]') - #jk_select("Jan", '#account-edit-profile-form #user_birth_date_2i') + # Update birth date and check updated birth date + + jk_select("Jan", '#account-edit-profile-form #user_birth_date_2i') jk_select("12", '#account-edit-profile-form #user_birth_date_3i') jk_select("1960", '#account-edit-profile-form #user_birth_date_1i') find("#account-edit-profile-submit").trigger(:click)