diff --git a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb index 3969ccdb4..ee7229a6a 100644 --- a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb +++ b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb @@ -120,7 +120,7 @@ module JamRuby def retailer_owner_welcome_message(user) @user = user - @subject= "Welcome to JamKazam and JamClass online lessons!" + @subject= "Welcome to JamKazam!" sendgrid_category "Welcome" sendgrid_unique_args :type => "welcome_message" diff --git a/ruby/lib/jam_ruby/models/retailer.rb b/ruby/lib/jam_ruby/models/retailer.rb index f6cf94d03..50185e5eb 100644 --- a/ruby/lib/jam_ruby/models/retailer.rb +++ b/ruby/lib/jam_ruby/models/retailer.rb @@ -27,7 +27,11 @@ module JamRuby # before_save :stringify_avatar_info, :if => :updating_avatar def create_slug - self.slug + if self.slug.blank? + puts "SELF ID #{self.id}" + self.slug = self.id.to_s + end + self.save! end @@ -40,6 +44,19 @@ module JamRuby end def matches_password(password) + + if password.blank? + return false + end + + puts "self.encrypted_password #{self.encrypted_password}" + begin + # we init passwordfield as a UUID, which is a bogus hash; so if we see UUId, we know retailer has no password yet + UUIDTools::UUID.parse(self.encrypted_password) + return false + rescue ArgumentError + end + BCrypt::Password.new(self.encrypted_password) == password end diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index 10b9407ca..894275058 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -280,7 +280,7 @@ module JamRuby end if retailer_interest && !retailer_interest_was - AdminMailer.partner({body: "#{email} signed up via the https://www.jamkazam.com/landing/jamclass/retailer page.\n\nFull list is here: https://www.jamkazam.com/admin/admin/retailer_interests", subject: "#{email} is interested in retailer program"}).deliver_now + AdminMailer.partner({body: "#{email} signed up via the https://www.jamkazam.com/landing/jamclass/retailers page.\n\nFull list is here: https://www.jamkazam.com/admin/admin/retailer_interests", subject: "#{email} is interested in retailer program"}).deliver_now if owned_retailer.nil? retailer = Retailer.new retailer.user = self diff --git a/ruby/spec/jam_ruby/models/retailer_spec.rb b/ruby/spec/jam_ruby/models/retailer_spec.rb index e82c741ec..b0ca83c27 100644 --- a/ruby/spec/jam_ruby/models/retailer_spec.rb +++ b/ruby/spec/jam_ruby/models/retailer_spec.rb @@ -6,6 +6,18 @@ describe Retailer do FactoryGirl.create(:retailer) end + it "doesn't match uuid password" do + retailer= FactoryGirl.create(:retailer) + retailer.reload + retailer.matches_password('hha').should be false + end + + it "automatic slug creation" do + retailer= FactoryGirl.create(:retailer, slug: nil) + retailer.id.should_not be_blank + retailer.slug.should eql retailer.id.to_s + + end it "has correct associations" do retailer = FactoryGirl.create(:retailer) retailer.slug.should eql retailer.id diff --git a/web/app/assets/javascripts/react-components/AccountRetailerScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/AccountRetailerScreen.js.jsx.coffee index 3ef23fd21..e4d31e1be 100644 --- a/web/app/assets/javascripts/react-components/AccountRetailerScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/AccountRetailerScreen.js.jsx.coffee @@ -287,14 +287,24 @@ profileUtils = context.JK.ProfileUtils +
- - +
- - {processSaleUrl} +
+ + +
+
+ + +
+
+ + {processSaleUrl} (enter Administrator/password to access this page) +

Payments

diff --git a/web/app/assets/javascripts/react-components/landing/PosaActivationPage.js.jsx.coffee b/web/app/assets/javascripts/react-components/landing/PosaActivationPage.js.jsx.coffee index 7fb9462ce..47c4bdfc8 100644 --- a/web/app/assets/javascripts/react-components/landing/PosaActivationPage.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/landing/PosaActivationPage.js.jsx.coffee @@ -5,13 +5,14 @@ rest = context.JK.Rest() render: () -> if this.props.retailer.large_photo_url? - logo = `
- -
- {this.props.retailer.name} -
-
-
` + logoImg = `` + logo = `
+ {logoImg} +
+ {this.props.retailer.name} +
+
+
` ctaButtonText = 'ACTIVATE' if @state.processing diff --git a/web/app/assets/stylesheets/client/react-components/AccountRetailerScreen.scss b/web/app/assets/stylesheets/client/react-components/AccountRetailerScreen.scss index fd39046b1..58134ce83 100644 --- a/web/app/assets/stylesheets/client/react-components/AccountRetailerScreen.scss +++ b/web/app/assets/stylesheets/client/react-components/AccountRetailerScreen.scss @@ -38,6 +38,14 @@ } } } + .usage-hint { + font-size:12px; + text-decoration:underline; + margin-left:10px; + } + .scooter { + margin-bottom:10px; + } .store-header { float: left; padding-top: 10px; diff --git a/web/app/assets/stylesheets/landings/posa_activation.scss b/web/app/assets/stylesheets/landings/posa_activation.scss index bea87bf62..bc3ecb47b 100644 --- a/web/app/assets/stylesheets/landings/posa_activation.scss +++ b/web/app/assets/stylesheets/landings/posa_activation.scss @@ -57,6 +57,7 @@ body.landing_page.full.posa_activation .landing-content { margin-bottom:20px; img { float:left; + margin-right:20px; } } @@ -65,7 +66,6 @@ body.landing_page.full.posa_activation .landing-content { line-height:200px; height:200px; float:left; - margin-left:20px; font-size:1.5rem; } } \ No newline at end of file