From 38109c8b61e6fc40deaa0308212b8b7e86805a09 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 30 Oct 2015 14:43:59 -0500 Subject: [PATCH 01/36] * update deliverable csv for jamtrack users --- admin/app/controllers/email_controller.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/admin/app/controllers/email_controller.rb b/admin/app/controllers/email_controller.rb index 1e0c55182..4c999fd30 100644 --- a/admin/app/controllers/email_controller.rb +++ b/admin/app/controllers/email_controller.rb @@ -15,5 +15,11 @@ class EmailController < ApplicationController headers['Content-Type'] ||= 'text/csv' @users = User.where(subscribe_email: true) + + # if specified, return only users that have redeemed or bought a JamTrack + if params[:any_jam_track] + @users = @users.select('DISTINCT users.id, email, first_name, last_name').joins(:sales => :sale_line_items).where("sale_line_items.product_type = 'JamTrack'") + end + end end \ No newline at end of file From 99cd31ea785189c5a8c5098ee3edb6a9d04d7a2e Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sun, 1 Nov 2015 16:22:43 -0600 Subject: [PATCH 02/36] * whitespace change --- web/app/controllers/api_jam_tracks_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/app/controllers/api_jam_tracks_controller.rb b/web/app/controllers/api_jam_tracks_controller.rb index e1ddbb4c6..480514f8e 100644 --- a/web/app/controllers/api_jam_tracks_controller.rb +++ b/web/app/controllers/api_jam_tracks_controller.rb @@ -3,7 +3,7 @@ class ApiJamTracksController < ApiController # have to be signed in currently to see this screen before_filter :api_signed_in_user, :except => [:index, :autocomplete, :show_with_artist_info, :artist_index] before_filter :api_any_user, :only => [:index, :autocomplete, :show_with_artist_info, :artist_index] - before_filter :lookup_jam_track_right, :only => [:download,:enqueue, :show_jam_track_right, :mark_active, :download_stem] + before_filter :lookup_jam_track_right, :only => [:download, :enqueue, :show_jam_track_right, :mark_active, :download_stem] before_filter :ip_blacklist, :only => [:download_stem, :download] before_filter :user_blacklist, :only => [:download_stem, :download] From 7fbb215fcae11f8fff315c381e72ce227ec61f66 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 13 Nov 2015 07:12:58 -0600 Subject: [PATCH 03/36] * VRFS-3708 - allow redemption of gift cards --- admin/app/admin/gift_card_upload.rb | 41 ++ admin/app/admin/gift_cards.rb | 24 + admin/config/initializers/gift_cards.rb | 9 + db/manifest | 1 + db/up/giftcard.sql | 13 + ruby/lib/jam_ruby.rb | 1 + .../jam_ruby/constants/validation_messages.rb | 2 + ruby/lib/jam_ruby/models/anonymous_user.rb | 22 + ruby/lib/jam_ruby/models/gift_card.rb | 35 + ruby/lib/jam_ruby/models/sale.rb | 37 +- ruby/lib/jam_ruby/models/shopping_cart.rb | 100 ++- ruby/lib/jam_ruby/models/user.rb | 44 +- ruby/spec/factories.rb | 7 + ruby/spec/jam_ruby/models/sale_spec.rb | 107 +++ .../jam_ruby/models/shopping_cart_spec.rb | 142 +++- .../assets/javascripts/checkout_payment.js | 2 +- .../javascripts/checkout_utils.js.coffee | 10 + .../dialog/gettingStartedDialog.js | 6 +- web/app/assets/javascripts/jam_rest.js | 27 +- .../javascripts/jam_track_screen.js.coffee | 484 ------------- .../javascripts/jamtrack_landing.js.coffee | 80 --- web/app/assets/javascripts/order.js | 670 ------------------ .../JamTrackFilterScreen.js.jsx.coffee | 56 +- .../JamTrackLandingScreen.js.jsx.coffee | 8 +- .../JamTrackSearchScreen.js.jsx.coffee | 59 +- .../actions/UserActions.js.coffee | 1 + .../landing/JamTrackLandingPage.js.jsx.coffee | 3 +- .../landing/RedeemGiftCardPage.js.jsx.coffee | 159 +++++ .../stores/UserStore.js.coffee | 14 + web/app/assets/javascripts/redeem_complete.js | 15 +- web/app/assets/javascripts/redeem_signup.js | 2 +- web/app/assets/javascripts/shopping_cart.js | 5 +- .../stylesheets/client/jamkazam.css.scss | 21 +- .../react-components/SessionScreen.css.scss | 19 - .../client/redeem_complete.css.scss | 3 +- .../landings/redeem_giftcard.css.scss | 90 +++ web/app/controllers/api_recurly_controller.rb | 7 + .../api_shopping_carts_controller.rb | 8 +- web/app/controllers/api_users_controller.rb | 44 +- web/app/controllers/landings_controller.rb | 5 + .../api_shopping_carts/add_jamtrack.rabl | 6 +- .../views/api_shopping_carts/remove_cart.rabl | 3 + .../views/api_shopping_carts/update_cart.rabl | 3 + web/app/views/api_users/show.rabl | 6 +- .../views/clients/_jamtrack_browse.html.slim | 86 --- web/app/views/clients/_order.html.slim | 290 -------- .../views/clients/_redeem_complete.html.slim | 3 + web/app/views/clients/index.html.erb | 5 +- .../views/landings/redeem_giftcard.html.slim | 5 + web/app/views/layouts/web.html.erb | 8 +- web/config/initializers/dev_users.rb | 1 - web/config/routes.rb | 5 + web/lib/user_manager.rb | 4 +- .../api_shopping_carts_controller_spec.rb | 13 +- .../controllers/api_users_controller_spec.rb | 122 ++++ web/spec/factories.rb | 7 + web/spec/features/checkout_spec.rb | 98 +++ web/spec/features/jamtrack_landing_spec.rb | 2 +- web/spec/features/jamtrack_shopping_spec.rb | 2 +- web/spec/features/redeem_giftcard_spec.rb | 169 +++++ web/spec/managers/user_manager_spec.rb | 73 ++ .../active_music_sessions_api_spec.rb | 2 +- 62 files changed, 1540 insertions(+), 1756 deletions(-) create mode 100644 admin/app/admin/gift_card_upload.rb create mode 100644 admin/app/admin/gift_cards.rb create mode 100644 admin/config/initializers/gift_cards.rb create mode 100644 db/up/giftcard.sql create mode 100644 ruby/lib/jam_ruby/models/gift_card.rb delete mode 100644 web/app/assets/javascripts/jam_track_screen.js.coffee delete mode 100644 web/app/assets/javascripts/jamtrack_landing.js.coffee delete mode 100644 web/app/assets/javascripts/order.js create mode 100644 web/app/assets/javascripts/react-components/landing/RedeemGiftCardPage.js.jsx.coffee create mode 100644 web/app/assets/stylesheets/landings/redeem_giftcard.css.scss create mode 100644 web/app/views/api_shopping_carts/remove_cart.rabl create mode 100644 web/app/views/api_shopping_carts/update_cart.rabl delete mode 100644 web/app/views/clients/_jamtrack_browse.html.slim delete mode 100644 web/app/views/clients/_order.html.slim create mode 100644 web/app/views/landings/redeem_giftcard.html.slim create mode 100644 web/spec/features/redeem_giftcard_spec.rb diff --git a/admin/app/admin/gift_card_upload.rb b/admin/app/admin/gift_card_upload.rb new file mode 100644 index 000000000..19f1e2df9 --- /dev/null +++ b/admin/app/admin/gift_card_upload.rb @@ -0,0 +1,41 @@ +ActiveAdmin.register_page "Giftcarduploads" do + + menu :label => 'Gift Cards Upload', :parent => 'JamTracks' + + page_action :upload_giftcards, :method => :post do + GiftCard.transaction do + + puts params + + file = params[:jam_ruby_gift_card][:csv] + array_of_arrays = CSV.read(file.tempfile.path) + array_of_arrays.each do |row| + if row.length != 1 + raise "UKNONWN CSV FORMAT! Must be 1 column" + end + + code = row[0] + + gift_card = GiftCard.new + gift_card.code = code + gift_card.card_type = params[:jam_ruby_gift_card][:card_type] + gift_card.origin = file .original_filename + gift_card.save! + end + + redirect_to admin_giftcards_path, :notice => "Created #{array_of_arrays.length} gift cards!" + end + end + + content do + semantic_form_for GiftCard.new, :url => admin_giftcarduploads_upload_giftcards_path, :builder => ActiveAdmin::FormBuilder do |f| + f.inputs "Upload Gift Cards" do + f.input :csv, as: :file, required: true, :label => "A single column CSV that contains ONE type of gift card (5 JamTrack, 10 JamTrack, etc)" + f.input :card_type, required:true, as: :select, :collection => JamRuby::GiftCard::CARD_TYPES + end + f.actions + end + end + +end + diff --git a/admin/app/admin/gift_cards.rb b/admin/app/admin/gift_cards.rb new file mode 100644 index 000000000..8e1d4e80d --- /dev/null +++ b/admin/app/admin/gift_cards.rb @@ -0,0 +1,24 @@ +ActiveAdmin.register JamRuby::GiftCard, :as => 'GiftCards' do + + menu :label => 'Gift Cards', :parent => 'JamTracks' + + config.batch_actions = false + config.filters = true + config.per_page = 50 + + scope("Redeemed Most Recently", default: true) { |scope| scope.where('user_id IS NOT NULL').order('updated_at DESC') } + scope("Available") { |scope| scope.where('user_id is NULL') } + + filter :card_type + filter :origin + filter :code + + index do + column 'User' do |oo| oo.user ? link_to(oo.user.email, oo.user.admin_url, {:title => oo.user.email}) : '' end + column 'Code' do |oo| oo.code end + column 'Card Type' do |oo| oo.card_type end + column 'Origin' do |oo| oo.origin end + column 'Created' do |oo| oo.created_at end + end + +end diff --git a/admin/config/initializers/gift_cards.rb b/admin/config/initializers/gift_cards.rb new file mode 100644 index 000000000..8c967ccb4 --- /dev/null +++ b/admin/config/initializers/gift_cards.rb @@ -0,0 +1,9 @@ +class JamRuby::GiftCard + + attr_accessor :csv + + + def process_csv + + end +end diff --git a/db/manifest b/db/manifest index 4da7a1b28..bc0c3e7c2 100755 --- a/db/manifest +++ b/db/manifest @@ -310,3 +310,4 @@ web_playable_jamtracks.sql affiliate_partner_rate.sql track_downloads.sql jam_track_lang_idx.sql +giftcard.sql diff --git a/db/up/giftcard.sql b/db/up/giftcard.sql new file mode 100644 index 000000000..eae33c13e --- /dev/null +++ b/db/up/giftcard.sql @@ -0,0 +1,13 @@ +CREATE TABLE gift_cards ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + code VARCHAR(64) UNIQUE NOT NULL, + user_id VARCHAR (64) REFERENCES users(id) ON DELETE CASCADE, + card_type VARCHAR(64) NOT NULL, + origin VARCHAR(200), + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE INDEX gift_card_user_id_idx ON gift_cards(user_id); + +ALTER TABLE users ADD COLUMN gifted_jamtracks INTEGER DEFAULT 0; diff --git a/ruby/lib/jam_ruby.rb b/ruby/lib/jam_ruby.rb index 21e2446d9..1cbb0cdab 100755 --- a/ruby/lib/jam_ruby.rb +++ b/ruby/lib/jam_ruby.rb @@ -253,6 +253,7 @@ require "jam_ruby/models/musician_search" require "jam_ruby/models/band_search" require "jam_ruby/import/tency_stem_mapping" require "jam_ruby/models/jam_track_search" +require "jam_ruby/models/gift_card" include Jampb diff --git a/ruby/lib/jam_ruby/constants/validation_messages.rb b/ruby/lib/jam_ruby/constants/validation_messages.rb index 662fce608..e84dff7c3 100644 --- a/ruby/lib/jam_ruby/constants/validation_messages.rb +++ b/ruby/lib/jam_ruby/constants/validation_messages.rb @@ -19,6 +19,8 @@ module ValidationMessages # sessions SESSION_NOT_FOUND = "Session not found." + NOT_FOUND = 'not found' + # genres RECORDING_GENRE_LIMIT_EXCEEDED = "No more than 1 genre is allowed." BAND_GENRE_LIMIT_EXCEEDED = "No more than 3 genres are allowed." diff --git a/ruby/lib/jam_ruby/models/anonymous_user.rb b/ruby/lib/jam_ruby/models/anonymous_user.rb index 24bc2b104..9d711b349 100644 --- a/ruby/lib/jam_ruby/models/anonymous_user.rb +++ b/ruby/lib/jam_ruby/models/anonymous_user.rb @@ -24,11 +24,33 @@ module JamRuby end def has_redeemable_jamtrack + raise "not a cookied anonymous user" if @cookies.nil? + APP_CONFIG.one_free_jamtrack_per_user && !@cookies[:redeemed_jamtrack] end + def gifted_jamtracks + 0 + end + + def free_jamtracks + if has_redeemable_jamtrack + 1 + else + 0 + end + end + + def show_free_jamtrack? + ShoppingCart.user_has_redeemable_jam_track?(self) + end + def signup_hint SignupHint.where(anonymous_user_id: @id).where('expires_at > ?', Time.now).first end + + def reload + + end end end diff --git a/ruby/lib/jam_ruby/models/gift_card.rb b/ruby/lib/jam_ruby/models/gift_card.rb new file mode 100644 index 000000000..8a8469a27 --- /dev/null +++ b/ruby/lib/jam_ruby/models/gift_card.rb @@ -0,0 +1,35 @@ +module JamRuby + class GiftCard < ActiveRecord::Base + + @@log = Logging.logger[GiftCard] + + JAM_TRACKS_10 = 'jam_tracks_10' + JAM_TRACKS_20 = 'jam_tracks_20' + CARD_TYPES = + [ + JAM_TRACKS_10, + JAM_TRACKS_20 + ] + + + belongs_to :user, class_name: "JamRuby::User" + + validates :card_type, presence: true, inclusion: {in: CARD_TYPES} + validates :code, presence: true, uniqueness: true + + after_save :check_gifted + + def check_gifted + if user && user_id_changed? + if card_type == JAM_TRACKS_10 + user.gifted_jamtracks += 10 + elsif card_type == JAM_TRACKS_20 + user.gifted_jamtracks += 20 + else + raise "unknown card type #{card_type}" + end + user.save! + end + end + end +end diff --git a/ruby/lib/jam_ruby/models/sale.rb b/ruby/lib/jam_ruby/models/sale.rb index 70279f8eb..4db356055 100644 --- a/ruby/lib/jam_ruby/models/sale.rb +++ b/ruby/lib/jam_ruby/models/sale.rb @@ -129,7 +129,29 @@ module JamRuby end def self.is_only_freebie(shopping_carts_jam_tracks) - shopping_carts_jam_tracks.length == 1 && shopping_carts_jam_tracks[0].product_info[:free] + free = true + shopping_carts_jam_tracks.each do |cart| + free = cart.product_info[:free] + + if !free + break + end + end + free + end + + # we don't allow mixed shopping carts :/ + def self.is_mixed(shopping_carts) + free = false + non_free = false + shopping_carts.each do |cart| + if cart.product_info[:free] + free = true + else + non_free = true + end + end + free && non_free end # this method will either return a valid sale, or throw a RecurlyClientError or ActiveRecord validation error (save! failed) @@ -311,10 +333,17 @@ module JamRuby jam_track_right.redeemed = shopping_cart.free? end - # also if the purchase was a free one, then update the user record to no longer allow redeemed jamtracks + # also if the purchase was a free one, then: + # first, mark the free has_redeemable_jamtrack field if that's still true + # and if still they have more free things, then redeem the giftable_jamtracks if shopping_cart.free? - User.where(id: current_user.id).update_all(has_redeemable_jamtrack: false) - current_user.has_redeemable_jamtrack = false # make sure model reflects the truth + if user.has_redeemable_jamtrack + User.where(id: current_user.id).update_all(has_redeemable_jamtrack: false) + current_user.has_redeemable_jamtrack = false + else + User.where(id: current_user.id).update_all(gifted_jamtracks: current_user.gifted_jamtracks - 1) + current_user.gifted_jamtracks = current_user.gifted_jamtracks - 1 + end end diff --git a/ruby/lib/jam_ruby/models/shopping_cart.rb b/ruby/lib/jam_ruby/models/shopping_cart.rb index 568d94048..c113c5a99 100644 --- a/ruby/lib/jam_ruby/models/shopping_cart.rb +++ b/ruby/lib/jam_ruby/models/shopping_cart.rb @@ -12,6 +12,8 @@ module JamRuby attr_accessible :quantity, :cart_type, :product_info + attr_accessor :skip_mix_check + validates_uniqueness_of :cart_id, scope: [:cart_type, :user_id, :anonymous_user_id] belongs_to :user, :inverse_of => :shopping_carts, :class_name => "JamRuby::User", :foreign_key => "user_id" @@ -20,6 +22,7 @@ module JamRuby validates :cart_type, presence: true validates :cart_class_name, presence: true validates :marked_for_redeem, numericality: {only_integer: true} + validate :not_mixed default_scope order('created_at DESC') @@ -38,6 +41,31 @@ module JamRuby (quantity - marked_for_redeem) * product.price end + def not_mixed + + return if @skip_mix_check + existing_carts = [] + this_user = any_user() + + if this_user + existing_carts = this_user.shopping_carts + end + + existing_carts = existing_carts.to_a + existing_carts << self + + if Sale.is_mixed(existing_carts) + if free? + errors.add(:base, "You can not add a free JamTrack to a cart with non-free items. Please clear out your cart.") + return false + else + errors.add(:base, "You can not add a non-free JamTrack to a cart containing free items. Please clear out your cart.") + return false + end + end + + false + end def cart_product self.cart_class_name.classify.constantize.find_by_id(self.cart_id) unless self.cart_class_name.blank? @@ -51,6 +79,16 @@ module JamRuby marked_for_redeem == quantity end + def any_user + if user + user + elsif anonymous_user_id + AnonymousUser.new(anonymous_user_id, nil) + else + nil + end + end + def self.create user, product, quantity = 1, mark_redeem = false cart = ShoppingCart.new if user.is_a?(User) @@ -81,6 +119,7 @@ module JamRuby if free? + puts "GOT A FREEBIE!" # create the credit, then the pseudo charge [ { @@ -134,28 +173,32 @@ module JamRuby # if no shpping carts have been marked, then mark it redeemable # should be wrapped in a TRANSACTION def self.user_has_redeemable_jam_track?(any_user) - mark_redeem = false - if APP_CONFIG.one_free_jamtrack_per_user && any_user.has_redeemable_jamtrack - mark_redeem = true # start out assuming we can redeem... + + if any_user.has_redeemable_jamtrack || any_user.gifted_jamtracks > 0 + + free_in_cart = 0 any_user.shopping_carts.each do |shopping_cart| # but if we find any shopping cart item already marked for redeem, then back out of mark_redeem=true - if shopping_cart.cart_type == JamTrack::PRODUCT_TYPE && shopping_cart.marked_for_redeem > 0 - mark_redeem = false - break + if shopping_cart.cart_type == JamTrack::PRODUCT_TYPE + free_in_cart += shopping_cart.marked_for_redeem end end + + any_user.free_jamtracks > free_in_cart + else + false end - mark_redeem end # adds a jam_track to cart, checking for promotions - def self.add_jam_track_to_cart(any_user, jam_track) + def self.add_jam_track_to_cart(any_user, jam_track, clear:false) cart = nil ShoppingCart.transaction do - if any_user.has_redeemable_jamtrack - # if you still have a freebie available to you, or if you are an anonymous user, we make sure there is nothing else in your shopping cart + if clear + # if you are an anonymous user, we make sure there is nothing else in your shopping cart ... keep it clean for the 'new user rummaging around for a freebie scenario' any_user.destroy_all_shopping_carts + any_user.reload end mark_redeem = ShoppingCart.user_has_redeemable_jam_track?(any_user) @@ -168,19 +211,48 @@ module JamRuby def self.remove_jam_track_from_cart(any_user, cart) ShoppingCart.transaction do cart.destroy - # check if we should move the redemption + + # so that user.shopping_carts reflects truth + any_user.reload + + # check if we should move the redemption around automatically mark_redeem = ShoppingCart.user_has_redeemable_jam_track?(any_user) carts = any_user.shopping_carts - # if we find any carts on the account, mark one redeemable + # if we find any carts on the account that are not redeemed, mark first one redeemable if mark_redeem && carts.length > 0 - carts[0].redeem(mark_redeem) - carts[0].save + carts.each do |cart| + if cart.marked_for_redeem == 0 + if cart.quantity > 1 + raise 'unknown situation for redeemption juggling' + end + cart.redeem(mark_redeem) + cart.save + break + end + end end end end + # if the number of items in the shopping cart is less than gifted_jamtracks on the user, then fix them all up + def self.apply_gifted_jamtracks(user) + jam_track_carts = user.shopping_carts.where(cart_type:JamTrack::PRODUCT_TYPE) + + if jam_track_carts.count > user.gifted_jamtracks + # just whack everything in their shopping cart + user.destroy_all_shopping_carts + return + end + + jam_track_carts.each do |cart| + cart.skip_mix_check = true + cart.marked_for_redeem = 1 + cart.save! + end + end + def port(user, anonymous_user) ShoppingCart.transaction do diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index a9c46801a..f802954ea 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -40,7 +40,7 @@ module JamRuby attr_accessible :first_name, :last_name, :email, :city, :password, :password_confirmation, :state, :country, :birth_date, :subscribe_email, :terms_of_service, :original_fpfile, :cropped_fpfile, :cropped_large_fpfile, :cropped_s3_path, :cropped_large_s3_path, :photo_url, :large_photo_url, :crop_selection # updating_password corresponds to a lost_password - attr_accessor :updating_password, :updating_email, :updated_email, :update_email_confirmation_url, :administratively_created, :current_password, :setting_password, :confirm_current_password, :updating_avatar, :updating_progression_field, :mods_json + attr_accessor :updating_password, :updating_email, :updated_email, :update_email_confirmation_url, :administratively_created, :current_password, :setting_password, :confirm_current_password, :updating_avatar, :updating_progression_field, :mods_json, :expecting_gift_card belongs_to :icecast_server_group, class_name: "JamRuby::IcecastServerGroup", inverse_of: :users, foreign_key: 'icecast_server_group_id' @@ -148,6 +148,9 @@ module JamRuby # events has_many :event_sessions, :class_name => "JamRuby::EventSession" + # gift cards + has_many :gift_cards, :class_name=> "JamRuby::GiftCard" + # affiliate_partner has_one :affiliate_partner, :class_name => "JamRuby::AffiliatePartner", :foreign_key => :partner_user_id, inverse_of: :partner_user belongs_to :affiliate_referral, :class_name => "JamRuby::AffiliatePartner", :foreign_key => :affiliate_referral_id, :counter_cache => :referral_user_count @@ -194,6 +197,7 @@ module JamRuby validates :terms_of_service, :acceptance => {:accept => true, :on => :create, :allow_nil => false } validates :reuse_card, :inclusion => {:in => [true, false]} validates :has_redeemable_jamtrack, :inclusion => {:in => [true, false]} + validates :gifted_jamtracks, presence: true, :numericality => { :less_than_or_equal_to => 100 } validates :subscribe_email, :inclusion => {:in => [nil, true, false]} validates :musician, :inclusion => {:in => [true, false]} validates :show_whats_next, :inclusion => {:in => [nil, true, false]} @@ -214,6 +218,7 @@ module JamRuby validate :email_case_insensitive_uniqueness validate :update_email_case_insensitive_uniqueness, :if => :updating_email validate :validate_mods + validate :presence_gift_card, :if => :expecting_gift_card scope :musicians, where(:musician => true) scope :fans, where(:musician => false) @@ -233,6 +238,18 @@ module JamRuby end end + def has_any_free_jamtracks + has_redeemable_jamtrack || gifted_jamtracks > 0 + end + + def free_jamtracks + (has_redeemable_jamtrack ? 1 : 0) + gifted_jamtracks + end + + def show_free_jamtrack? + ShoppingCart.user_has_redeemable_jam_track?(self) + end + def failed_qualification(reason) self.last_failed_certified_gear_at = DateTime.now self.last_failed_certified_gear_reason = reason @@ -255,6 +272,12 @@ module JamRuby end end + def presence_gift_card + if self.gift_cards.length == 0 + errors.add(:gift_card, ValidationMessages::NOT_FOUND) + end + end + def validate_current_password # checks if the user put in their current password (used when changing your email, for instance) errors.add(:current_password, ValidationMessages::NOT_YOUR_PASSWORD) if should_confirm_existing_password? && !valid_password?(self.current_password) @@ -1025,6 +1048,7 @@ module JamRuby reuse_card = options[:reuse_card] signup_hint = options[:signup_hint] affiliate_partner = options[:affiliate_partner] + gift_card = options[:gift_card] user = User.new @@ -1036,6 +1060,9 @@ module JamRuby user.terms_of_service = terms_of_service user.musician = musician user.reuse_card unless reuse_card.nil? + user.gifted_jamtracks = 0 + user.has_redeemable_jamtrack = true + # FIXME: Setting random password for social network logins. This # is because we have validations all over the place on this. @@ -1140,8 +1167,22 @@ module JamRuby end end + found_gift_card = nil + + # if a gift card value was passed in, then try to find that gift card and apply it to user + if gift_card + user.expecting_gift_card = true + found_gift_card = GiftCard.where(code:gift_card).where(user_id:nil).first + user.gift_cards << found_gift_card if found_gift_card + end + user.save + if found_gift_card + user.reload + ShoppingCart.apply_gifted_jamtracks(user) + end + # if the user has just one, free jamtrack in their shopping cart, and it matches the signup hint, then auto-buy it # only_freebie_in_cart = # signup_hint && @@ -1181,6 +1222,7 @@ module JamRuby end end end + user.reload if user.id# gift card adding gifted_jamtracks doesn't reflect here until reload user end # def signup diff --git a/ruby/spec/factories.rb b/ruby/spec/factories.rb index c8c91241e..1a9097e68 100644 --- a/ruby/spec/factories.rb +++ b/ruby/spec/factories.rb @@ -19,6 +19,8 @@ FactoryGirl.define do terms_of_service true last_jam_audio_latency 5 reuse_card true + has_redeemable_jamtrack true + gifted_jamtracks 0 #u.association :musician_instrument, factory: :musician_instrument, user: u @@ -858,4 +860,9 @@ FactoryGirl.define do legalese Faker::Lorem.paragraphs(6).join("\n\n") end + factory :gift_card, class: 'JamRuby::GiftCard' do + sequence(:code) {n.to_s} + card_type = JamRuby::GiftCard::JAM_TRACKS_10 + end + end diff --git a/ruby/spec/jam_ruby/models/sale_spec.rb b/ruby/spec/jam_ruby/models/sale_spec.rb index 685d8dfbd..6119a5973 100644 --- a/ruby/spec/jam_ruby/models/sale_spec.rb +++ b/ruby/spec/jam_ruby/models/sale_spec.rb @@ -5,6 +5,23 @@ describe Sale do let(:user) {FactoryGirl.create(:user)} let(:user2) {FactoryGirl.create(:user)} let(:jam_track) {FactoryGirl.create(:jam_track)} + let(:jam_track2) {FactoryGirl.create(:jam_track)} + let(:jam_track3) {FactoryGirl.create(:jam_track)} + + def assert_free_line_item(sale_line_item, jamtrack) + sale_line_item.recurly_tax_in_cents.should be_nil + sale_line_item.recurly_total_in_cents.should be_nil + sale_line_item.recurly_currency.should be_nil + sale_line_item.recurly_discount_in_cents.should be_nil + sale_line_item.product_type.should eq(JamTrack::PRODUCT_TYPE) + sale_line_item.unit_price.should eq(jamtrack.price) + sale_line_item.quantity.should eq(1) + sale_line_item.free.should eq(1) + sale_line_item.sales_tax.should be_nil + sale_line_item.shipping_handling.should eq(0) + sale_line_item.recurly_plan_code.should eq(jamtrack.plan_code) + sale_line_item.product_id.should eq(jamtrack.id) + end describe "index" do it "empty" do @@ -47,6 +64,9 @@ describe Sale do let(:user) {FactoryGirl.create(:user)} let(:jamtrack) { FactoryGirl.create(:jam_track) } + let(:jamtrack2) { FactoryGirl.create(:jam_track) } + let(:jamtrack3) { FactoryGirl.create(:jam_track) } + let(:jamtrack4) { FactoryGirl.create(:jam_track) } let(:jam_track_price_in_cents) { (jamtrack.price * 100).to_i } let(:client) { RecurlyClient.new } let(:billing_info) { @@ -87,6 +107,7 @@ describe Sale do sales.should eq(user.sales) sale = sales[0] + sale.recurly_invoice_id.should be_nil sale.recurly_subtotal_in_cents.should eq(0) @@ -132,6 +153,92 @@ describe Sale do user.has_redeemable_jamtrack.should be_false end + it "for two jam tracks (1 freebie, 1 gifted), then 1 gifted/1 pay" do + user.gifted_jamtracks = 2 + user.save! + + shopping_cart1 = ShoppingCart.create user, jamtrack, 1, true + shopping_cart2 = ShoppingCart.create user, jamtrack2, 1, true + + client.find_or_create_account(user, billing_info) + + sales = Sale.place_order(user, [shopping_cart1, shopping_cart2]) + + user.reload + user.sales.length.should eq(1) + sale = sales[0] + sale.reload + + sale.recurly_invoice_id.should be_nil + + sale.recurly_subtotal_in_cents.should eq(0) + sale.recurly_tax_in_cents.should eq(0) + sale.recurly_total_in_cents.should eq(0) + sale.recurly_currency.should eq('USD') + sale.order_total.should eq(0) + sale.sale_line_items.length.should == 2 + + assert_free_line_item(sale.sale_line_items[0], jamtrack) + assert_free_line_item(sale.sale_line_items[1], jamtrack2) + + # verify jam_track_rights data + right1 = JamTrackRight.where(user_id: user.id).where(jam_track_id: jamtrack.id).first + right2 = JamTrackRight.where(user_id: user.id).where(jam_track_id: jamtrack2.id).first + user.jam_track_rights.should have(2).items + + right1.redeemed.should be_true + right2.redeemed.should be_true + user.has_redeemable_jamtrack.should be_false + user.gifted_jamtracks.should eq(1) + + + + # OK! Now make a second purchase; this time, buy one free, one not free + shopping_cart3 = ShoppingCart.create user, jamtrack3, 1, true + shopping_cart4 = ShoppingCart.create user, jamtrack4, 1, false + + client.find_or_create_account(user, billing_info) + + sales = Sale.place_order(user, [shopping_cart3, shopping_cart4]) + + user.reload + user.sales.length.should eq(2) + sale = sales[0] + sale.reload + + sale.recurly_invoice_id.should_not be_nil + sale.recurly_subtotal_in_cents.should eq(0) + sale.recurly_tax_in_cents.should eq(0) + sale.recurly_total_in_cents.should eq(0) + sale.recurly_currency.should eq('USD') + sale.order_total.should eq(0) + sale.sale_line_items.length.should == 2 + + assert_free_line_item(sale.sale_line_items[0], jamtrack3) + + paid_right = JamTrackRight.where(user_id:user.id).where(jam_track_id: jamtrack4.id).first + + sale_line_item.recurly_total_in_cents.should eq(jam_track_price_in_cents) + sale_line_item.recurly_currency.should eq('USD') + sale_line_item.recurly_discount_in_cents.should eq(0) + sale_line_item.product_type.should eq(JamTrack::PRODUCT_TYPE) + sale_line_item.unit_price.should eq(jamtrack4.price) + sale_line_item.quantity.should eq(1) + sale_line_item.free.should eq(0) + sale_line_item.sales_tax.should be_nil + sale_line_item.shipping_handling.should eq(0) + sale_line_item.recurly_plan_code.should eq(jamtrack4.plan_code) + sale_line_item.product_id.should eq(jamtrack.id) + sale_line_item.recurly_subscription_uuid.should be_nil + sale_line_item.recurly_adjustment_uuid.should_not be_nil + sale_line_item.recurly_adjustment_credit_uuid.should be_nil + sale_line_item.recurly_adjustment_uuid.should eq(paid_right.recurly_adjustment_uuid) + + user.has_redeemable_jamtrack.should be_false + user.gifted_jamtracks.should eq(0) + + end + it "for a free jam track with an affiliate association" do partner = FactoryGirl.create(:affiliate_partner) user.affiliate_referral = partner diff --git a/ruby/spec/jam_ruby/models/shopping_cart_spec.rb b/ruby/spec/jam_ruby/models/shopping_cart_spec.rb index 6be02e8d4..58a528c7b 100644 --- a/ruby/spec/jam_ruby/models/shopping_cart_spec.rb +++ b/ruby/spec/jam_ruby/models/shopping_cart_spec.rb @@ -3,8 +3,13 @@ require 'spec_helper' describe ShoppingCart do let(:user) { FactoryGirl.create(:user) } - let(:jam_track) {FactoryGirl.create(:jam_track) } - let(:jam_track2) {FactoryGirl.create(:jam_track) } + let(:jam_track) { FactoryGirl.create(:jam_track) } + let(:jam_track2) { FactoryGirl.create(:jam_track) } + let(:jam_track3) { FactoryGirl.create(:jam_track) } + let(:jam_track4) { FactoryGirl.create(:jam_track) } + let(:jam_track5) { FactoryGirl.create(:jam_track) } + let(:jam_track6) { FactoryGirl.create(:jam_track) } + let(:jam_track7) { FactoryGirl.create(:jam_track) } before(:each) do ShoppingCart.delete_all @@ -13,6 +18,9 @@ describe ShoppingCart do it "can reference a shopping cart" do shopping_cart = ShoppingCart.create user, jam_track, 1 + shopping_cart.errors.any?.should be_false + shopping_cart.valid?.should be_true + user.reload ShoppingCart.count.should == 1 user.shopping_carts.count.should == 1 user.shopping_carts[0].product_info[:name].should == jam_track.name @@ -22,16 +30,16 @@ describe ShoppingCart do end - it "maintains only one fre JamTrack in ShoppingCart" do - cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track) + it "maintains only one free JamTrack in ShoppingCart" do + cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track, clear: true) cart1.should_not be_nil cart1.errors.any?.should be_false user.reload - cart2 = ShoppingCart.add_jam_track_to_cart(user, jam_track) + cart2 = ShoppingCart.add_jam_track_to_cart(user, jam_track, clear: true) cart2.errors.any?.should be_false user.reload user.shopping_carts.length.should eq(1) - cart3 = ShoppingCart.add_jam_track_to_cart(user, jam_track2) + cart3 = ShoppingCart.add_jam_track_to_cart(user, jam_track2, clear: true) cart3.errors.any?.should be_false user.reload user.shopping_carts.length.should eq(1) @@ -53,19 +61,131 @@ describe ShoppingCart do it "removes redeemable item to shopping cart (maintains only one in cart)" do user.has_redeemable_jamtrack.should be_true + cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track, clear: true) + cart1.should_not be_nil + cart1.errors.any?.should be_false + cart1.marked_for_redeem.should eq(1) + user.reload + cart2 = ShoppingCart.add_jam_track_to_cart(user, jam_track2, clear: true) + cart2.should_not be_nil + cart2.errors.any?.should be_false + cart2.marked_for_redeem.should eq(1) + + ShoppingCart.find_by_id(cart1.id).should be nil + + + ShoppingCart.remove_jam_track_from_cart(user, cart2) + + user.reload + user.shopping_carts.length.should eq(0) + ShoppingCart.find_by_id(cart2.id).should be nil + end + end + + describe "multiple free jamtracks" do + + before(:each) do + user.gifted_jamtracks = 5 + user.save! + end + + it "user can add and remove jamtracks without issue, until 'mixed' free/non-free is hit" do cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track) cart1.should_not be_nil + cart1.errors.any?.should be_false + user.reload cart2 = ShoppingCart.add_jam_track_to_cart(user, jam_track2) - cart2.should_not be_nil - + cart2.errors.any?.should be_false + user.reload + user.shopping_carts.length.should eq(2) cart1.marked_for_redeem.should eq(1) cart2.marked_for_redeem.should eq(1) - ShoppingCart.remove_jam_track_from_cart(user, jam_track) - user.shopping_carts.length.should eq(0) - cart2.reload + cart3 = ShoppingCart.add_jam_track_to_cart(user, jam_track3) + cart3.errors.any?.should be_false + user.reload + user.shopping_carts.length.should eq(3) + cart1.marked_for_redeem.should eq(1) cart2.marked_for_redeem.should eq(1) + cart3.marked_for_redeem.should eq(1) + + cart4 = ShoppingCart.add_jam_track_to_cart(user, jam_track4) + cart4.errors.any?.should be_false + user.reload + user.shopping_carts.length.should eq(4) + cart1.marked_for_redeem.should eq(1) + cart2.marked_for_redeem.should eq(1) + cart3.marked_for_redeem.should eq(1) + cart4.marked_for_redeem.should eq(1) + + cart5 = ShoppingCart.add_jam_track_to_cart(user, jam_track5) + cart5.errors.any?.should be_false + user.reload + user.shopping_carts.length.should eq(5) + cart1.marked_for_redeem.should eq(1) + cart2.marked_for_redeem.should eq(1) + cart3.marked_for_redeem.should eq(1) + cart4.marked_for_redeem.should eq(1) + cart5.marked_for_redeem.should eq(1) + + cart6 = ShoppingCart.add_jam_track_to_cart(user, jam_track6) + cart6.errors.any?.should be_false + user.reload + user.shopping_carts.length.should eq(6) + cart1.marked_for_redeem.should eq(1) + cart2.marked_for_redeem.should eq(1) + cart3.marked_for_redeem.should eq(1) + cart4.marked_for_redeem.should eq(1) + cart5.marked_for_redeem.should eq(1) + cart6.marked_for_redeem.should eq(1) + + cart7 = ShoppingCart.add_jam_track_to_cart(user, jam_track7) + cart7.errors.any?.should be_true + user.reload + user.shopping_carts.length.should eq(6) + cart1.marked_for_redeem.should eq(1) + cart2.marked_for_redeem.should eq(1) + cart3.marked_for_redeem.should eq(1) + cart4.marked_for_redeem.should eq(1) + cart5.marked_for_redeem.should eq(1) + cart6.marked_for_redeem.should eq(1) + end + end + + describe "mixed" do + it "non-free then free" do + # you shouldn't be able to add a free after a non-free + user.has_redeemable_jamtrack = false + user.save! + + cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track) + cart1.should_not be_nil + cart1.errors.any?.should be_false + + user.has_redeemable_jamtrack = true + user.save! + user.reload + cart2 = ShoppingCart.add_jam_track_to_cart(user, jam_track2) + cart2.errors.any?.should be_true + cart2.errors[:base].should eq(["You can not add a free JamTrack to a cart with non-free items. Please clear out your cart."]) + + user.shopping_carts.length.should eq(1) + end + + it "free then non-free" do + + cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track) + cart1.should_not be_nil + cart1.errors.any?.should be_false + + user.reload + + cart2 = ShoppingCart.add_jam_track_to_cart(user, jam_track2) + cart2.errors.any?.should be_true + cart2.errors[:base].should eq(["You can not add a non-free JamTrack to a cart containing free items. Please clear out your cart."]) + + user.shopping_carts.length.should eq(1) end end end diff --git a/web/app/assets/javascripts/checkout_payment.js b/web/app/assets/javascripts/checkout_payment.js index 9b72f4fc5..956c11886 100644 --- a/web/app/assets/javascripts/checkout_payment.js +++ b/web/app/assets/javascripts/checkout_payment.js @@ -95,7 +95,7 @@ $reuseExistingCardChk.iCheck(userDetail.reuse_card && userDetail.has_recurly_account ? 'check' : 'uncheck').attr('checked', userDetail.reuse_card) // show appropriate prompt text based on whether user has a free jamtrack - if(user.free_jamtrack) { + if(user.has_redeemable_jamtrack) { $freeJamTrackPrompt.removeClass('hidden') } else { diff --git a/web/app/assets/javascripts/checkout_utils.js.coffee b/web/app/assets/javascripts/checkout_utils.js.coffee index c16e09f9b..c789ba71d 100644 --- a/web/app/assets/javascripts/checkout_utils.js.coffee +++ b/web/app/assets/javascripts/checkout_utils.js.coffee @@ -55,6 +55,16 @@ class CheckoutUtils return carts[0].product_info.free + hasOnlyFreeItemsInShoppingCart: (carts) => + if carts.length == 0 + return false + + for cart in carts + if !cart.product_info.free + return false + + return true + configureRecurly: () => unless @configuredRecurly context.recurly.configure(gon.global.recurly_public_api_key) diff --git a/web/app/assets/javascripts/dialog/gettingStartedDialog.js b/web/app/assets/javascripts/dialog/gettingStartedDialog.js index 867a411f2..aa35e80e7 100644 --- a/web/app/assets/javascripts/dialog/gettingStartedDialog.js +++ b/web/app/assets/javascripts/dialog/gettingStartedDialog.js @@ -50,7 +50,7 @@ $browserJamTrackBtn.click(function() { app.layout.closeDialog('getting-started') - window.location = '/client#/jamtrack/search' + window.location = '/client#/jamtrack' return false; }) @@ -69,9 +69,9 @@ function beforeShow() { app.user().done(function(user) { - var jamtrackRule = user.free_jamtrack ? 'has-free-jamtrack' : 'no-free-jamtrack' + var jamtrackRule = user.has_redeemable_jamtrack ? 'has-free-jamtrack' : 'no-free-jamtrack' $jamTrackSection.removeClass('has-free-jamtrack').removeClass('no-free-jamtrack').addClass(jamtrackRule) - if(user.free_jamtrack) { + if(user.has_redeemable_jamtrack) { $jamTracksLimitedTime.removeClass('hidden') } }) diff --git a/web/app/assets/javascripts/jam_rest.js b/web/app/assets/javascripts/jam_rest.js index 2dcaabfc3..b2d7a604a 100644 --- a/web/app/assets/javascripts/jam_rest.js +++ b/web/app/assets/javascripts/jam_rest.js @@ -1187,6 +1187,7 @@ }); deferred.done(function(user) { + context.JK.currentUserFreeJamTrack = user.show_free_jamtrack window.UserActions.loaded(user) }) @@ -1791,12 +1792,17 @@ } function addJamtrackToShoppingCart(options) { - return $.ajax({ + var deferred = $.ajax({ type: "POST", url: '/api/shopping_carts/add_jamtrack?' + $.param(options), dataType: "json", contentType: 'application/json' }); + + deferred.done(function(response) { + window.UserActions.modify(response) + }) + return deferred } function getShoppingCarts() { @@ -1810,12 +1816,17 @@ } function removeShoppingCart(options) { - return $.ajax({ + var deferred = $.ajax({ type: "DELETE", url: '/api/shopping_carts?' + $.param(options), dataType: "json", contentType: 'application/json' }) + + deferred.done(function(response) { + window.UserActions.modify(response) + }) + return deferred } function clearShoppingCart(options) { @@ -1986,6 +1997,17 @@ }); } + function redeemGiftCard(data) { + var id = getId(data); + return $.ajax({ + type: "POST", + url: '/api/users/' + id + '/gift_cards', + dataType: "json", + contentType: 'application/json', + data: JSON.stringify(data), + }); + } + function portOverCarts() { return $.ajax({ type: "POST", @@ -2190,6 +2212,7 @@ this.playJamTrack = playJamTrack; this.createSignupHint = createSignupHint; this.createAlert = createAlert; + this.redeemGiftCard = redeemGiftCard; this.signup = signup; this.portOverCarts = portOverCarts; return this; diff --git a/web/app/assets/javascripts/jam_track_screen.js.coffee b/web/app/assets/javascripts/jam_track_screen.js.coffee deleted file mode 100644 index bb0c2fa2b..000000000 --- a/web/app/assets/javascripts/jam_track_screen.js.coffee +++ /dev/null @@ -1,484 +0,0 @@ -$ = jQuery -context = window -context.JK ||= {} - -context.JK.JamTrackScreen=class JamTrackScreen - LIMIT = 10 - instrument_logo_map = context.JK.getInstrumentIconMap24() - - constructor: (@app) -> - @EVENTS = context.JK.EVENTS - @logger = context.JK.logger - @screen = null - @content = null - @scroller = null - @genre = null - @artist = null - @instrument = null - @availability = null - @nextPager = null - @noMoreJamtracks = null - @currentPage = 0 - @next = null - @currentQuery = this.defaultQuery() - @expanded = null - @shownHelperBubbles = false - - beforeShow:(data) => - this.setFilterFromURL() - - if context.JK.currentUserId? - @app.user().done((user) => - @user = user - this.refresh() - ).fail((arg) => - @logger.error("app.user.done failed: " + JSON.stringify(arg)) - - @logger.debug(arg.statusCode); - - throw 'fail should not occur if user is available' - ) - else - this.refresh() - unless @shownHelperBubbles - @shownHelperBubbles = true - @startHelperBubbles() - - afterShow:(data) => - context.JK.Tracking.jamtrackBrowseTrack(@app) - - beforeHide: () => - this.clearCtaHelpTimeout() - this.clearBandFilterHelpTimeout() - this.clearMasterHelpTimeout() - this.clearResults(); - - events:() => - @genre.on 'change', this.search - @artist.on 'change', this.search - @instrument.on 'change', this.search - @availability.on 'change', this.search - - clearResults:() => - @currentPage = 0 - @content.empty() - @noMoreJamtracks.hide() - @next = null - - startHelperBubbles: () => - @showBandFilterHelpTimeout = setTimeout(@showBandFilterHelp, 3500) - - showBandFilterHelp: () => - context.JK.HelpBubbleHelper.jamtrackBrowseBand(@artist.closest('.easydropdown-wrapper'), $('body')) - - @showMasterHelpDueTime = new Date().getTime() + 11000 # 6000 ms for band tooltip to display, and 5 seconds of quiet time - @scroller.on('scroll', @masterHelpScrollWatch) - @scroller.on('scroll', @clearBubbles) - @showMasterHelpTimeout = setTimeout(@showMasterHelp, @masterHelpDueTime()) - - clearBubbles: () => - if @helpBubble? - @helpBubble.btOff() - @helpBubble = null - - # computes when we should show the master help bubble - masterHelpDueTime: () => - dueTime = @showMasterHelpDueTime - new Date().getTime() - if dueTime <= 0 - dueTime = 2000 - dueTime - - - # computes when we should show the master help bubble - ctaHelpDueTime: () => - dueTime = @showCtaHelpDueTime - new Date().getTime() - if dueTime <= 0 - dueTime = 2000 - dueTime - - # if the user scrolls, reset the master help due time - masterHelpScrollWatch: () => - @clearMasterHelpTimeout() - @showMasterHelpTimeout = setTimeout(@showMasterHelp, @masterHelpDueTime() + 2000) - - # if the user scrolls, reset the master help due time - ctaHelpScrollWatch: () => - @clearCtaHelpTimeout() - @showCtaHelpTimeout = setTimeout(@showCtaHelp, @ctaHelpDueTime() + 2000) - - - showCtaHelp: () => - @scroller.off('scroll', @ctaHelpScrollWatch) - @clearCtaHelpTimeout() - - cutoff = @scroller.offset().top; - - @screen.find('.jamtrack-actions').each((i, element) => - $element = $(element) - - if ($element.offset().top >= cutoff) - @helpBubble = context.JK.HelpBubbleHelper.jamtrackBrowseCta($element, $('body')) - return false - else - return true - ) - - showMasterHelp: () => - @scroller.off('scroll', @masterHelpScrollWatch) - @clearMasterHelpTimeout() - - # don't show the help if the user has already clicked a preview - unless @userPreviewed - cutoff = @scroller.offset().top; - - @screen.find('.jamtrack-preview[data-track-type="Master"]').each((i, element) => - $element = $(element) - - if ($element.offset().top >= cutoff) - @helpBubble = context.JK.HelpBubbleHelper.jamtrackBrowseMasterMix($element.find('.play-button'), $('body')) - return false - else - return true - ) - - @showCtaHelpDueTime = new Date().getTime() + 11000 - @scroller.on('scroll', @ctaHelpScrollWatch) - @showCtaHelpTimeout = setTimeout(@showCtaHelp, @ctaHelpDueTime()) # 6000 ms for bubble show time, and 5000ms for delay - - previewPlayed: () => - @userPreviewed = true - - clearCtaHelpTimeout:() => - if @showCtaHelpTimeout? - clearTimeout(@showCtaHelpTimeout) - @showCtaHelpTimeout = null - - clearBandFilterHelpTimeout: () => - if @showBandFilterHelpTimeout? - clearTimeout(@showBandFilterHelpTimeout) - @showBandFilterHelpTimeout = null - - clearMasterHelpTimeout: () => - if @showMasterHelpTimeout? - clearTimeout(@showMasterHelpTimeout) - @showMasterHelpTimeout = null - - setFilterFromURL:() => - # Grab parms from URL for artist, instrument, and availability - parms=this.getParams() - - if(parms.artist?) - @artist.val(parms.artist) - else - @artist.val('') - if(parms.instrument?) - @instrument.val(parms.instrument) - else - @instrument.val('') - if(parms.availability?) - @availability.val(parms.availability) - else - @availability.val('') - - if window.history.replaceState #ie9 proofing - window.history.replaceState({}, "", "/client#/jamtrackBrowse") - - getParams:() => - params = {} - q = window.location.href.split("?")[1] - if q? - q = q.split('#')[0] - raw_vars = q.split("&") - for v in raw_vars - [key, val] = v.split("=") - params[key] = decodeURIComponent(val) - params - - setFilterState: (state) => - if state - @genre.easyDropDown('enable').removeAttr('disabled') - @artist.easyDropDown('enable').removeAttr('disabled') - @instrument.easyDropDown('enable').removeAttr('disabled') - @availability.easyDropDown('enable').removeAttr('disabled') - else - @genre.easyDropDown('disable').attr('disabled', 'disabled') - @artist.easyDropDown('disable').attr('disabled', 'disabled') - @instrument.easyDropDown('disable').attr('disabled', 'disabled') - @availability.easyDropDown('disable').attr('disabled', 'disabled') - - refresh:() => - this.clearResults() - @currentQuery = this.buildQuery() - that = this - this.setFilterState(false) - rest.getJamTracks(@currentQuery).done((response) => - that.handleJamtrackResponse(response) - ).fail( (jqXHR) => - that.clearResults() - that.noMoreJamtracks.show() - that.app.notifyServerError jqXHR, 'Jamtrack Unavailable' - ).always () => - that.setFilterState(true) - - search:() => - this.refresh() - false - - defaultQuery:() => - query = - per_page: LIMIT - page: @currentPage+1 - if @next - query.since = @next - query - - buildQuery:() => - @currentQuery = this.defaultQuery() - # genre filter - # var genres = @screen.find('#jamtrack_genre').val() - # if (genres !== undefined) { - # @currentQuery.genre = genres - # } - # instrument filter - - instrument = @instrument.val() - if instrument? - @currentQuery.instrument = instrument - - # artist filter - art = @artist.val() - if art? - @currentQuery.artist = art - - # availability filter - availability = @availability.val() - if availability? - @currentQuery.availability = availability - @currentQuery - - handleJamtrackResponse:(response) => - @next = response.next - this.renderJamtracks(response) - if response.next == null - # if we less results than asked for, end searching - @scroller.infinitescroll 'pause' - if @currentPage == 0 and response.jamtracks.length == 0 - @content.append 'Loading ...') - img: '/assets/shared/spinner.gif' - path: (page) => - '/api/jamtracks?' + $.param(that.buildQuery()) - - }, (json, opts) => - this.handleJamtrackResponse(json) - @scroller.infinitescroll 'resume' - - playJamtrack:(e) => - e.preventDefault() - - addToCartJamtrack:(e) => - e.preventDefault() - $target = $(e.target) - params = id: $target.attr('data-jamtrack-id') - isFree = $(e.target).is('.is_free') - - rest.addJamtrackToShoppingCart(params).done((response) => - if(isFree) - if context.JK.currentUserId? - context.JK.currentUserFreeJamTrack = true # make sure the user sees no more free notices - context.location = '/client#/redeemComplete' - else - # now make a rest call to buy it - context.location = '/client#/redeemSignup' - - else - context.location = '/client#/shoppingCart' - - ).fail @app.ajaxError - - licenseUSWhy:(e) => - e.preventDefault() - @app.layout.showDialog 'jamtrack-availability-dialog' - - handleExpanded:(trackElement) => - jamTrack = trackElement.data('jamTrack') - expanded = trackElement.data('expanded') - expand = !expanded - trackElement.data('expanded', expand) - - detailArrow = trackElement.find('.jamtrack-detail-btn') - - if expand - trackElement.find('.extra').removeClass('hidden') - detailArrow.html('hide tracks ') - for track in jamTrack.tracks - trackElement.find("[jamtrack-track-id='#{track.id}']").removeClass('hidden') - else - trackElement.find('.extra').addClass('hidden') - detailArrow.html('show all tracks ') - count = 0 - for track in jamTrack.tracks - if count < 6 - trackElement.find("[jamtrack-track-id='#{track.id}']").removeClass('hidden') - else - trackElement.find("[jamtrack-track-id='#{track.id}']").addClass('hidden') - count++ - - - registerEvents:(parent) => - #@screen.find('.jamtrack-detail-btn').on 'click', this.showJamtrackDescription - parent.find('.play-button').on 'click', this.playJamtrack - parent.find('.jamtrack-add-cart').on 'click', this.addToCartJamtrack - parent.find('.license-us-why').on 'click', this.licenseUSWhy - parent.find('.jamtrack-detail-btn').on 'click', this.toggleExpanded - # @screen.find('.jamtrack-preview').each (index, element) => - # new JK.JamTrackPreview(data.app, $element, jamTrack, track, {master_shows_duration: true}) - - rerenderJamtracks:() => - if @currentData? - @clearResults() - @renderJamtracks(@currentData) - false - - computeWeight: (jam_track_track, instrument) => - weight = switch - when jam_track_track.track_type == 'Master' then 0 - when jam_track_track.instrument?.id == instrument then 1 + jam_track_track.position - else 10000 + jam_track_track.position - - renderJamtracks:(data) => - @currentData = data - that = this - - for jamtrack in data.jamtracks - jamtrackExpanded = this.expanded==jamtrack.id - trackRow = _.clone(jamtrack) - trackRow.track_cnt = jamtrack.tracks.length - trackRow.tracks = [] - - # if an instrument is selected by the user, then re-order any jam tracks with a matching instrument to the top - instrument = @instrument.val() - if instrument? - jamtrack.tracks.sort((a, b) => - aWeight = @computeWeight(a, instrument) - bWeight = @computeWeight(b, instrument) - return aWeight - bWeight - ) - - for track in jamtrack.tracks - trackRow.tracks.push(track) - if track.track_type=='Master' - track.instrument_desc = "Master" - else - inst = '../assets/content/icon_instrument_default24.png' - if track.instrument? - if track.instrument.id in instrument_logo_map - inst = instrument_logo_map[track.instrument.id].asset - track.instrument_desc = track.instrument.description - track.instrument_url = inst - - if track.part != '' - track.instrument_desc += ' (' + track.part + ')' - - free_state = if context.JK.currentUserFreeJamTrack then 'free' else 'non-free' - - is_free = free_state == 'free' - - options = - jamtrack: trackRow - expanded: false - free_state: free_state, - is_free: is_free - @jamtrackItem = $(context._.template($('#template-jamtrack').html(), options, variable: 'data')) - that.renderJamtrack(@jamtrackItem, jamtrack) - that.registerEvents(@jamtrackItem) - - - renderJamtrack:(jamtrackElement, jamTrack) => - jamtrackElement.data('jamTrack', jamTrack) - jamtrackElement.data('expanded', true) - - @content.append jamtrackElement - - #if this.expanded==jamTrack.id - for track in jamTrack.tracks - trackRow = jamtrackElement.find("[jamtrack-track-id='#{track.id}']") - previewElement = trackRow.find(".jamtrack-preview") - preview = new JK.JamTrackPreview(@app, previewElement, jamTrack, track, {master_shows_duration: true, color:'gray'}) - $(preview).on(@EVENTS.PREVIEW_PLAYED, @previewPlayed) - - this.handleExpanded(jamtrackElement, false) - - showJamtrackDescription:(e) => - e.preventDefault() - @description = $(e.target).parent('.detail-arrow').next() - if @description.css('display') == 'none' - @description.show() - else - @description.hide() - - toggleExpanded:(e) => - e.preventDefault() - jamtrackRecord = $(e.target).parents('.jamtrack-record') - jamTrackId = jamtrackRecord.attr("jamtrack-id") - - this.handleExpanded(jamtrackRecord) - - initialize:() => - - screenBindings = - 'beforeShow': this.beforeShow - 'afterShow': this.afterShow - 'beforeHide' : this.beforeHide - @app.bindScreen 'jamtrackBrowse', screenBindings - @screen = $('#jamtrack-find-form') - @scroller = @screen.find('.content-body-scroller') - @content = @screen.find('.jamtrack-content') - @genre = @screen.find('#jamtrack_genre') - @artist = @screen.find('#jamtrack_artist') - @instrument = @screen.find('#jamtrack_instrument') - @availability = @screen.find('#jamtrack_availability') - @nextPager = @screen.find('a.btn-next-pager') - @noMoreJamtracks = @screen.find('.end-of-jamtrack-list') - if @screen.length == 0 - throw new Error('@screen must be specified') - if @scroller.length == 0 - throw new Error('@scroller must be specified') - if @content.length == 0 - throw new Error('@content must be specified') - if @noMoreJamtracks.length == 0 - throw new Error('@noMoreJamtracks must be specified') - #if(@genre.length == 0) throw new Error("@genre must be specified") - - if @artist.length == 0 - throw new Error('@artist must be specified') - if @instrument.length == 0 - throw new Error('@instrument must be specified') - #if @availability.length == 0 - # throw new Error('@availability must be specified') - this.events() - - diff --git a/web/app/assets/javascripts/jamtrack_landing.js.coffee b/web/app/assets/javascripts/jamtrack_landing.js.coffee deleted file mode 100644 index 73cb6d3fe..000000000 --- a/web/app/assets/javascripts/jamtrack_landing.js.coffee +++ /dev/null @@ -1,80 +0,0 @@ -$ = jQuery -context = window -context.JK ||= {} - -context.JK.JamTrackLanding = class JamTrackLanding - constructor: (@app) -> - @rest = context.JK.Rest() - @client = context.jamClient - @logger = context.JK.logger - @screen = null - @noFreeJamTrack = null - @freeJamTrack = null - @bandList = null - @noBandsFound = null - - initialize:() => - screenBindings = - 'beforeShow': @beforeShow - 'afterShow': @afterShow - - #@app.bindScreen('jamtrackLanding', screenBindings) - @screen = $('#jamtrackLanding') - @noFreeJamTrack = @screen.find('.no-free-jamtrack') - @freeJamTrack = @screen.find('.free-jamtrack') - @bandList = @screen.find('#band_list') - @noBandsFound = @screen.find('#no_bands_found') - - beforeShow:() => - - @noFreeJamTrack.addClass('hidden') - @freeJamTrack.addClass('hidden') - - afterShow:() => - - if context.JK.currentUserId - @app.user().done(@onUser) - else - @onUser({free_jamtrack: gon.global.one_free_jamtrack_per_user}) - - onUser:(user) => - if user.free_jamtrack - @freeJamTrack.removeClass('hidden') - else - @noFreeJamTrack.removeClass('hidden') - - # Get artist names and build links - @rest.getJamTrackArtists({group_artist: true, per_page:100}) - .done(this.buildArtistLinks) - .fail(this.handleFailure) - - # Bind links to action that will open the jam_tracks list view filtered to given artist_name: - # artist_name - this.bindArtistLinks() - - buildArtistLinks:(response) => - # Get artist names and build links - @logger.debug("buildArtest links response", response) - - artists = response.artists - $("#band_list>li:not('#no_bands_found')").remove() - if artists.length==0 - @noBandsFound.removeClass("hidden") - else - @noBandsFound.addClass("hidden") - - # client#/jamtrack - for artist in artists - artistLink = "#{artist.original_artist} (#{artist.song_count})" - @bandList.append("
  • #{artistLink}
  • ") - - # We don't want to do a full page load if this is clicked on here: - bindArtistLinks:() => - that=this - @bandList.on "click", "a.artist-link", (event)-> - context.location="client#/jamtrack/search" - if window.history.replaceState # ie9 proofing - window.history.replaceState({}, "", this.href) - event.preventDefault() - - handleFailure:(error) => diff --git a/web/app/assets/javascripts/order.js b/web/app/assets/javascripts/order.js deleted file mode 100644 index 23360c626..000000000 --- a/web/app/assets/javascripts/order.js +++ /dev/null @@ -1,670 +0,0 @@ -(function(context,$) { - - "use strict"; - context.JK = context.JK || {}; - context.JK.OrderScreen = function(app) { - - var EVENTS = context.JK.EVENTS; - var logger = context.JK.logger; - - var $screen = null; - var $templateOrderContent = null; - var $templatePurchasedJamTrack = null; - var $navigation = null; - var $billingInfo = null; - var $shippingInfo = null; - var $paymentMethod = null; - var $shippingAddress = null; - var $shippingAsBilling = null; - var $paymentInfoPanel = null; - var $orderPanel = null; - var $thanksPanel = null; - var $jamTrackInBrowser = null; - var $purchasedJamTrack = null; - var $purchasedJamTrackHeader = null; - var $purchasedJamTracks = null; - var $orderContent = null; - var userDetail = null; - var step = null; - var billing_info = null; - var shipping_info = null; - var shipping_as_billing = null; - var downloadJamTracks = []; - var purchasedJamTracks = null; - var purchasedJamTrackIterator = 0; - - function beforeShow() { - beforeShowPaymentInfo(); - resetJamTrackDownloadInfo(); - } - - function beforeShowPaymentInfo() { - step = 2; - renderNavigation(); - renderAccountInfo(); - $("#order_error").addClass("hidden") - } - - function resetJamTrackDownloadInfo() { - $purchasedJamTrack.addClass('hidden'); - $purchasedJamTracks.children().remove() - $jamTrackInBrowser.hide('hidden'); - } - - function renderAccountInfo() { - rest.getUserDetail() - .done(populateAccountInfo) - .error(app.ajaxError); - } - - function populateAccountInfo(user) { - userDetail = user; - - if (userDetail.has_recurly_account) { - rest.getBillingInfo() - .done(function(response) { - $billingInfo.find("#billing-first-name").val(response.first_name); - $billingInfo.find("#billing-last-name").val(response.last_name); - $billingInfo.find("#billing-address1").val(response.address1); - $billingInfo.find("#billing-address2").val(response.address2); - $billingInfo.find("#billing-city").val(response.city); - $billingInfo.find("#billing-state").val(response.state); - $billingInfo.find("#billing-zip").val(response.zip); - $billingInfo.find("#billing-country").val(response.country); - - $shippingAddress.find("#shipping-first-name").val(response.first_name); - $shippingAddress.find("#shipping-last-name").val(response.last_name); - $shippingAddress.find("#shipping-address1").val(response.address1); - $shippingAddress.find("#shipping-address2").val(response.address2); - $shippingAddress.find("#shipping-city").val(response.city); - $shippingAddress.find("#shipping-state").val(response.state); - $shippingAddress.find("#shipping-zip").val(response.zip); - $shippingAddress.find("#shipping-country").val(response.country); - }) - .error(app.ajaxError); - } - else { - $billingInfo.find("#billing-first-name").val(userDetail.first_name); - $billingInfo.find("#billing-last-name").val(userDetail.last_name); - $billingInfo.find("#billing-city").val(userDetail.city); - $billingInfo.find("#billing-state").val(userDetail.state); - $billingInfo.find("#billing-country").val(userDetail.country); - - $shippingAddress.find("#shipping-first-name").val(userDetail.first_name); - $shippingAddress.find("#shipping-last-name").val(userDetail.last_name); - $shippingAddress.find("#shipping-city").val(userDetail.city); - $shippingAddress.find("#shipping-state").val(userDetail.state); - $shippingAddress.find("#shipping-country").val(userDetail.country); - } - } - - function afterShow(data) { - // XXX : style-test code - // moveToThanks({jam_tracks: [{id: 14, jam_track_right_id: 11, name: 'Back in Black'}, {id: 15, jam_track_right_id: 11, name: 'In Bloom'}, {id: 16, jam_track_right_id: 11, name: 'Love Bird Supreme'}]}); - } - - function beforeHide() { - if(downloadJamTracks) { - context._.each(downloadJamTracks, function(downloadJamTrack) { - downloadJamTrack.destroy(); - downloadJamTrack.root.remove(); - }) - - downloadJamTracks = []; - } - purchasedJamTracks = null; - purchasedJamTrackIterator = 0; - } - - // TODO: Refactor: this function is long and fraught with many return points. - function next(e) { - e.preventDefault(); - $("#order_error").addClass("hidden") - - // validation - var billing_first_name = $billingInfo.find("#billing-first-name").val(); - var billing_last_name = $billingInfo.find("#billing-last-name").val(); - var billing_address1 = $billingInfo.find("#billing-address1").val(); - var billing_address2 = $billingInfo.find("#billing-address2").val(); - var billing_city = $billingInfo.find("#billing-city").val(); - var billing_state = $billingInfo.find("#billing-state").val(); - var billing_zip = $billingInfo.find("#billing-zip").val(); - var billing_country = $billingInfo.find("#billing-country").val(); - - if (!billing_first_name) { - $billingInfo.find('#divBillingFirstName .error-text').remove(); - $billingInfo.find('#divBillingFirstName').addClass("error"); - $billingInfo.find('#billing-first-name').after("
    • First Name is required
    "); - - return false; - } - else { - $billingInfo.find('#divBillingFirstName').removeClass("error"); - } - - if (!billing_last_name) { - $billingInfo.find('#divBillingLastName .error-text').remove(); - $billingInfo.find('#divBillingLastName').addClass("error"); - $billingInfo.find('#billing-last-name').after("
    • Last Name is required
    "); - - return false; - } - else { - $billingInfo.find('#divBillingLastName').removeClass("error"); - } - - if (!billing_address1) { - $billingInfo.find('#divBillingAddress1 .error-text').remove(); - $billingInfo.find('#divBillingAddress1').addClass("error"); - $billingInfo.find('#billing-address1').after("
    • Address is required
    "); - - return false; - } - else { - $billingInfo.find('#divBillingAddress1').removeClass("error"); - } - - if (!billing_zip) { - $billingInfo.find('#divBillingZip .error-text').remove(); - $billingInfo.find('#divBillingZip').addClass("error"); - $billingInfo.find('#billing-zip').after("
    • Zip code is required
    "); - - return false; - } - else { - $billingInfo.find('#divBillingZip').removeClass("error"); - } - - if (!billing_state) { - $billingInfo.find('#divBillingState .error-text').remove(); - $billingInfo.find('#divBillingState').addClass("error"); - $billingInfo.find('#billing-zip').after("
    • State is required
    "); - - return false; - } - else { - $billingInfo.find('#divBillingState').removeClass("error"); - } - - if (!billing_city) { - $billingInfo.find('#divBillingCity .error-text').remove(); - $billingInfo.find('#divBillingCity').addClass("error"); - $billingInfo.find('#billing-city').after("
    • City is required
    "); - - return false; - } - else { - $billingInfo.find('#divBillingCity').removeClass("error"); - } - - if (!billing_country) { - $billingInfo.find('#divBillingCountry .error-text').remove(); - $billingInfo.find('#divBillingCountry').addClass("error"); - $billingInfo.find('#billing-country').after("
    • Country is required
    "); - - return false; - } - else { - $billingInfo.find('#divBillingCountry').removeClass("error"); - } - - shipping_as_billing = $shippingAsBilling.is(":checked"); - var shipping_first_name, shipping_last_name, shipping_address1, shipping_address2; - var shipping_city, shipping_state, shipping_zip, shipping_country; - - if (!shipping_as_billing) { - shipping_first_name = $shippingAddress.find("#shipping-first-name").val(); - shipping_last_name = $shippingAddress.find("#shipping-last-name").val(); - shipping_address1 = $shippingAddress.find("#shipping-address1").val(); - shipping_address2 = $shippingAddress.find("#shipping-address2").val(); - shipping_city = $shippingAddress.find("#shipping-city").val(); - shipping_state = $shippingAddress.find("#shipping-state").val(); - shipping_zip = $shippingAddress.find("#shipping-zip").val(); - shipping_country = $shippingAddress.find("#shipping-country").val(); - - if (!shipping_first_name) { - $shippingAddress.find('#divShippingFirstName .error-text').remove(); - $shippingAddress.find('#divShippingFirstName').addClass("error"); - $shippingAddress.find('#shipping-first-name').after("
    • First Name is required
    "); - - return false; - } - else { - $shippingInfo.find('#divShippingFirstName').removeClass("error"); - } - - if (!shipping_last_name) { - $shippingAddress.find('#divShippingLastName .error-text').remove(); - $shippingAddress.find('#divShippingLastName').addClass("error"); - $shippingAddress.find('#shipping-last-name').after("
    • Last Name is required
    "); - - return false; - } - else { - $shippingInfo.find('#divShippingLastName').removeClass("error"); - } - - if (!shipping_address1) { - $shippingAddress.find('#divShippingAddress1 .error-text').remove(); - $shippingAddress.find('#divShippingAddress1').addClass("error"); - $shippingAddress.find('#shipping-address1').after("
    • Address is required
    "); - - return false; - } - else { - $shippingInfo.find('#divShippingAddress1').removeClass("error"); - } - - if (!shipping_zip) { - $shippingAddress.find('#divShippingZip .error-text').remove(); - $shippingAddress.find('#divShippingZip').addClass("error"); - $shippingAddress.find('#shipping-zip').after("
    • Zip code is required
    "); - - return false; - } - else { - $shippingInfo.find('#divShippingZip').removeClass("error"); - } - - if (!shipping_state) { - $shippingAddress.find('#divShippingState .error-text').remove(); - $shippingAddress.find('#divShippingState').addClass("error"); - $shippingAddress.find('#shipping-zip').after("
    • State is required
    "); - - return false; - } - else { - $shippingInfo.find('#divShippingState').removeClass("error"); - } - - if (!shipping_city) { - $shippingAddress.find('#divShippingCity .error-text').remove(); - $shippingAddress.find('#divShippingCity').addClass("error"); - $shippingAddress.find('#shipping-city').after("
    • City is required
    "); - - return false; - } - else { - $shippingInfo.find('#divShippingCity').removeClass("error"); - } - - if (!shipping_country) { - $shippingAddress.find('#divShippingCountry .error-text').remove(); - $shippingAddress.find('#divShippingCountry').addClass("error"); - $shippingAddress.find('#shipping-country').after("
    • Country is required
    "); - - return false; - } - else { - $shippingAddress.find('#divShippingCountry').removeClass("error"); - } - } - - var card_name = $paymentMethod.find("#card-name").val(); - var card_number = $paymentMethod.find("#card-number").val(); - var card_year = $paymentMethod.find("#card_expire-date_1i").val(); - var card_month = $paymentMethod.find("#card_expire-date_2i").val(); - var card_verify = $paymentMethod.find("#card-verify").val(); - - if (!card_name) { - $paymentMethod.find('#divCardName .error-text').remove(); - $paymentMethod.find('#divCardName').addClass("error"); - $paymentMethod.find('#card-name').after("
    • Card Name is required
    "); - return false; - } else { - $paymentMethod.find('#divCardName').removeClass("error"); - } - - if (!card_number) { - $paymentMethod.find('#divCardNumber .error-text').remove(); - $paymentMethod.find('#divCardNumber').addClass("error"); - $paymentMethod.find('#card-number').after("
    • Card Number is required
    "); - return false; - } else if (!$.payment.validateCardNumber(card_number)) { - $paymentMethod.find('#divCardNumber .error-text').remove(); - $paymentMethod.find('#divCardNumber').addClass("error"); - $paymentMethod.find('#card-number').after("
    • Card Number is not valid
    "); - return false; - } else { - $paymentMethod.find('#divCardNumber').removeClass("error"); - } - - if (!$.payment.validateCardExpiry(card_month, card_year)) { - $paymentMethod.find('#divCardExpiry .error-text').remove(); - $paymentMethod.find('#divCardExpiry').addClass("error"); - $paymentMethod.find('#card-expiry').after("
    • Card Number is not valid
    "); - } else { - $paymentMethod.find('#divCardExpiry').removeClass("error"); - } - - if (!card_verify) { - $paymentMethod.find('#divCardVerify .error-text').remove(); - $paymentMethod.find('#divCardVerify').addClass("error"); - $paymentMethod.find('#card-verify').after("
    • Card Verification Value is required
    "); - - return false; - } else if(!$.payment.validateCardCVC(card_verify)) { - $paymentMethod.find('#divCardVerify .error-text').remove(); - $paymentMethod.find('#divCardVerify').addClass("error"); - $paymentMethod.find('#card-verify').after("
    • Card Verification Value is not valid.
    "); - - return false; - } else { - $paymentMethod.find('#divCardVerify').removeClass("error"); - } - - billing_info = {}; - shipping_info = {}; - billing_info.first_name = billing_first_name; - billing_info.last_name = billing_last_name; - billing_info.address1 = billing_address1; - billing_info.address2 = billing_address2; - billing_info.city = billing_city; - billing_info.state = billing_state; - billing_info.country = billing_country; - billing_info.zip = billing_zip; - billing_info.number = card_number; - billing_info.month = card_month; - billing_info.year = card_year; - billing_info.verification_value = card_verify; - - if (shipping_as_billing) { - shipping_info = $.extend({},billing_info); - delete shipping_info.number; - delete shipping_info.month; - delete shipping_info.year; - delete shipping_info.verification_value; - } else { - shipping_info.first_name = shipping_first_name; - shipping_info.last_name = shipping_last_name; - shipping_info.address1 = shipping_address1; - shipping_info.address2 = shipping_address2; - shipping_info.city = shipping_city; - shipping_info.state = shipping_state; - shipping_info.country = shipping_country; - shipping_info.zip = shipping_zip; - } - - $paymentInfoPanel.find("#payment-info-next").addClass("disabled"); - $paymentInfoPanel.find("#payment-info-next").off("click"); - - rest.createRecurlyAccount({billing_info: billing_info}) - .done(function() { - moveToOrder(); - $paymentInfoPanel.find("#payment-info-next").removeClass("disabled"); - $paymentInfoPanel.find("#payment-info-next").on("click", next); - }) - .fail(errorHandling); - } - - function errorHandling(xhr, ajaxOptions, thrownError) { - $.each(xhr.responseJSON.errors, function(key, error) { - if (key == 'number') { - $paymentMethod.find('#divCardNumber .error-text').remove(); - $paymentMethod.find('#divCardNumber').addClass("error"); - $paymentMethod.find('#card-number').after("
    • " + error + "
    "); - } - else if (key == 'verification_value') { - $paymentMethod.find('#divCardVerify .error-text').remove(); - $paymentMethod.find('#divCardVerify').addClass("error"); - $paymentMethod.find('#card-verify').after("
    • " + error + "
    "); - } - }); - - $paymentInfoPanel.find("#payment-info-next").addClass("disabled"); - $paymentInfoPanel.find("#payment-info-next").on('click', next); - } - - function orderErrorHandling(xhr, ajaxOptions, thrownError) { - var message = "Error submitting payment: " - $.each(xhr.responseJSON.errors, function(key, error) { - message += key + ": " + error - }) - $("#order_error").text(message) - $("#order_error").removeClass("hidden") - $orderContent.find(".place-order").on('click', placeOrder) - } - - function beforeShowOrder() { - step = 3; - renderNavigation(); - populateOrderPage(); - } - - function clearOrderPage() { - $orderContent.empty(); - } - - function populateOrderPage() { - clearOrderPage(); - - rest.getShoppingCarts() - .done(renderOrderPage) - .fail(app.ajaxError); - } - - function renderOrderPage(carts) { - var data = {} - - var sub_total = 0.0 - var taxes = 0.0 - $.each(carts, function(index, cart) { - sub_total += parseFloat(cart.product_info.price) * parseFloat(cart.quantity) - }); - data.grand_total = (sub_total + taxes).toFixed(2) - data.sub_total = sub_total.toFixed(2) - data.taxes = taxes.toFixed(2) - data.carts = carts - data.billing_info = billing_info - data.shipping_info = shipping_info - data.shipping_as_billing = shipping_as_billing - var orderContentHtml = $( - context._.template( - $templateOrderContent.html(), - data, - {variable: 'data'} - ) - ) - - $orderContent.append(orderContentHtml) - - $orderPanel.find(".change-payment-info").on('click', moveToPaymentInfo) - $orderContent.find(".place-order").on('click', placeOrder) - } - - function moveToOrder() { - $paymentInfoPanel.addClass("hidden"); - $orderPanel.removeClass("hidden"); - beforeShowOrder(); - } - - function moveToThanks(purchaseResponse) { - $("#order_error").addClass("hidden") - $paymentInfoPanel.addClass("hidden") - $orderPanel.addClass("hidden") - $thanksPanel.removeClass("hidden") - rest.clearShoppingCart() - beforeShowOrder() - handleJamTracksPurchased(purchaseResponse.jam_tracks) - } - - function handleJamTracksPurchased(jamTracks) { - // were any JamTracks purchased? - var jamTracksPurchased = jamTracks && jamTracks.length > 0; - if(jamTracksPurchased) { - if(gon.isNativeClient) { - startDownloadJamTracks(jamTracks) - } - else { - $jamTrackInBrowser.removeClass('hidden'); - } - } - } - - function startDownloadJamTracks(jamTracks) { - // there can be multiple purchased JamTracks, so we cycle through them - - purchasedJamTracks = jamTracks; - - // populate list of jamtracks purchased, that we will iterate through graphically - context._.each(jamTracks, function(jamTrack) { - var downloadJamTrack = new context.JK.DownloadJamTrack(app, jamTrack, 'small'); - var $purchasedJamTrack = $(context._.template( - $templatePurchasedJamTrack.html(), - jamTrack, - {variable: 'data'} - )); - - $purchasedJamTracks.append($purchasedJamTrack) - - // show it on the page - $purchasedJamTrack.append(downloadJamTrack.root) - - downloadJamTracks.push(downloadJamTrack) - }) - - iteratePurchasedJamTracks(); - } - - function iteratePurchasedJamTracks() { - if(purchasedJamTrackIterator < purchasedJamTracks.length ) { - var downloadJamTrack = downloadJamTracks[purchasedJamTrackIterator++]; - - // make sure the 'purchasing JamTrack' section can be seen - $purchasedJamTrack.removeClass('hidden'); - - // the widget indicates when it gets to any transition; we can hide it once it reaches completion - $(downloadJamTrack).on(EVENTS.JAMTRACK_DOWNLOADER_STATE_CHANGED, function(e, data) { - - if(data.state == downloadJamTrack.states.synchronized) { - logger.debug("jamtrack " + downloadJamTrack.jamTrack.name + " synchronized;") - //downloadJamTrack.root.remove(); - downloadJamTrack.destroy(); - - // go to the next JamTrack - iteratePurchasedJamTracks() - } - }) - - logger.debug("jamtrack " + downloadJamTrack.jamTrack.name + " downloader initializing") - - // kick off the download JamTrack process - downloadJamTrack.init() - - // XXX style-test code - // downloadJamTrack.transitionError("package-error", "The server failed to create your package.") - - } - else { - logger.debug("done iterating over purchased JamTracks") - $purchasedJamTrackHeader.text('All purchased JamTracks have been downloaded successfully! You can now play them in a session.') - } - } - - function moveToPaymentInfo(e) { - e.preventDefault(); - $paymentInfoPanel.removeClass("hidden"); - $orderPanel.addClass("hidden"); - beforeShowPaymentInfo(); - } - - function toggleShippingAsBilling(e) { - e.preventDefault(); - - var shipping_as_billing = $(e.target).is(':checked'); - - if (!shipping_as_billing) { - $shippingAddress.removeClass("hidden"); - } - else { - $shippingAddress.addClass("hidden"); - } - } - - function placeOrder(e) { - e.preventDefault(); - $orderContent.find(".place-order").off('click') - rest.getShoppingCarts() - .done(function(carts) { - var jam_track_ids = _.map(carts, function(cart){ - return cart.product_info.product_id - }) - rest.placeOrder({jam_tracks: jam_track_ids}) - .done(moveToThanks) - .fail(orderErrorHandling); - } - ).fail(app.ajaxError); - } - - function events() { - $paymentInfoPanel.find("#payment-info-next").on('click', next); - $shippingAsBilling.on('ifChanged', toggleShippingAsBilling); - } - - function reset() { - } - - function renderNavigation() { - $navigation.html(""); - var navigationHtml = $( - context._.template( - $('#template-checkout-navigation').html(), - {current: step}, - {variable: 'data'} - ) - ); - - $navigation.append(navigationHtml); - } - - function initializeControls() { - $("form.payment-info").iCheck({ - checkboxClass: 'icheckbox_minimal', - radioClass: 'iradio_minimal', - inheritClass: true - }); - - // Use jquery.payment to limit characters and length: - $paymentMethod.find("#card-number").payment('formatCardNumber'); - $paymentMethod.find("#card-verify").payment('formatCardCVC'); - } - - function initialize() { - var screenBindings = { - 'beforeShow': beforeShow, - 'afterShow': afterShow, - 'beforeHide' : beforeHide - }; - app.bindScreen('order', screenBindings); - - $screen = $("#orderScreen"); - $templateOrderContent = $("#template-order-content"); - $templatePurchasedJamTrack = $('#template-purchased-jam-track'); - $paymentInfoPanel = $screen.find(".checkout-payment-info"); - $orderPanel = $screen.find(".order-panel"); - $thanksPanel = $screen.find(".thanks-panel"); - $jamTrackInBrowser = $screen.find(".thanks-detail.jam-tracks-in-browser"); - $purchasedJamTrack = $thanksPanel.find(".thanks-detail.purchased-jam-track"); - $purchasedJamTrackHeader = $purchasedJamTrack.find(".purchased-jam-track-header"); - $purchasedJamTracks = $purchasedJamTrack.find(".purchased-list") - $navigation = $screen.find(".checkout-navigation-bar"); - $billingInfo = $paymentInfoPanel.find(".billing-address"); - $shippingInfo = $paymentInfoPanel.find(".shipping-address"); - $paymentMethod = $paymentInfoPanel.find(".payment-method"); - $shippingAddress = $paymentInfoPanel.find(".shipping-address-detail"); - $shippingAsBilling = $paymentInfoPanel.find("#shipping-as-billing"); - $orderContent = $orderPanel.find(".order-content"); - - if($screen.length == 0) throw "$screen must be specified"; - if($navigation.length == 0) throw "$navigation must be specified"; - - initializeControls(); - - events(); - } - - this.initialize = initialize; - - return this; - } -})(window,jQuery); \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee index 82c7ebea6..88fb5525b 100644 --- a/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee @@ -4,17 +4,11 @@ MIX_MODES = context.JK.MIX_MODES @JamTrackFilterScreen = React.createClass({ - mixins: [Reflux.listenTo(@AppStore,"onAppInit")] + mixins: [Reflux.listenTo(@AppStore,"onAppInit"), Reflux.listenTo(@UserStore,"onUserChanged")] LIMIT: 20 instrument_logo_map: context.JK.getInstrumentIconMap24() - computeWeight: (jam_track_track, instrument) -> - weight = switch - when jam_track_track.track_type == 'Master' then 0 - when jam_track_track.instrument?.id == instrument then 1 + jam_track_track.position - else 10000 + jam_track_track.position - render: () -> searchText = if @state.first_search then 'SEARCH' else 'SEARCH AGAIN' @@ -76,10 +70,10 @@ MIX_MODES = context.JK.MIX_MODES ` actionBtn = null - if jamtrack.is_free - actionBtn = ` GET IT FREE!` - else if jamtrack.purchased + if jamtrack.purchased actionBtn = `PURCHASED` + else if jamtrack.is_free + actionBtn = ` GET IT FREE!` else if jamtrack.added_cart actionBtn = `ALREADY IN CART` else @@ -158,15 +152,13 @@ MIX_MODES = context.JK.MIX_MODES ` - - getInitialState: () -> - {search: '', type: 'user-input', jamtracks:[], show_all_artists: false, currentPage: 0, next: null, searching: false, count: 0, is_free: context.JK.currentUserFreeJamTrack} - - clearResults:() -> #@content.empty() #@noMoreJamtracks.hide() - @setState({currentPage: 0, next: null, jamtracks:[], type: 'user-input', searching:false, is_free: context.JK.currentUserFreeJamTrack}) + @setState({currentPage: 0, next: null, jamtracks:[], type: 'user-input', searching:false, is_free: @user.show_free_jamtrack}) + + getInitialState: () -> + {search: '', type: 'user-input', jamtracks:[], show_all_artists: false, currentPage: 0, next: null, searching: false, count: 0, is_free: context.JK.currentUserFreeJamTrack} defaultQuery:(extra) -> @@ -305,16 +297,21 @@ MIX_MODES = context.JK.MIX_MODES isFree = $(e.target).is('.is_free') @rest.addJamtrackToShoppingCart(params).done((response) => - if(isFree) - if context.JK.currentUserId? - context.JK.currentUserFreeJamTrack = true # make sure the user sees no more free notices - context.location = '/client#/redeemComplete' + if context.JK.currentUserId? + if isFree + if @user.has_redeemable_jamtrack + # this is the 1st jamtrack; let's user the user to completion + context.location = '/client#/redeemComplete' + else + # this is must be a user's gifted jamtrack, to treat them normally in that they'll go to the shopping cart + #context.location = '/client#/shoppingCart' + context.location = '/client#/redeemComplete' else - # now make a rest call to buy it - context.location = '/client#/redeemSignup' - + # this user has nothing free; so send them to shopping cart + context.location = '/client#/shoppingCart' else - context.location = '/client#/shoppingCart' + # user not logged in; make them signup + context.location = '/client#/redeemSignup' ).fail(() => @app.ajaxError) @@ -398,4 +395,15 @@ MIX_MODES = context.JK.MIX_MODES 'afterShow': @afterShow @app.bindScreen('jamtrack/filter', screenBindings) + + onUserChanged: (userState) -> + @user = userState?.user + @setState({is_free: @user?.show_free_jamtrack}) + + computeWeight: (jam_track_track, instrument) -> + weight = switch + when jam_track_track.track_type == 'Master' then 0 + when jam_track_track.instrument?.id == instrument then 1 + jam_track_track.position + else 10000 + jam_track_track.position + }) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee index f0cad879d..d1344d0ca 100644 --- a/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee @@ -13,12 +13,13 @@ rest = context.JK.Rest() {user: null, purchasedJamTracks: []} onUserChanged: (userState) -> + @user = userState?.user @onUser(userState.user) if userState.user render: () -> howTo = null - if @state.user?.free_jamtrack + if @state.user?.purchased_jamtracks_count == 0 && @state.user?.has_redeemable_jamtrack howTo = `
    @@ -206,11 +207,6 @@ rest = context.JK.Rest() @processUrl() - if !context.JK.currentUserId - @onUser({free_jamtrack: context.JK.currentUserFreeJamTrack}) - - - beforeShow: () -> @setState({user: null}) diff --git a/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee index 04b8fcb6b..18cae8578 100644 --- a/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee @@ -4,7 +4,7 @@ MIX_MODES = context.JK.MIX_MODES @JamTrackSearchScreen = React.createClass({ - mixins: [Reflux.listenTo(@AppStore,"onAppInit")] + mixins: [Reflux.listenTo(@AppStore,"onAppInit"), Reflux.listenTo(@UserStore,"onUserChanged")] LIMIT: 10 instrument_logo_map: context.JK.getInstrumentIconMap24() @@ -91,10 +91,10 @@ MIX_MODES = context.JK.MIX_MODES
    ` actionBtn = null - if jamtrack.is_free - actionBtn = ` GET IT FREE!` - else if jamtrack.purchased + if jamtrack.purchased actionBtn = `PURCHASED` + else if jamtrack.is_free + actionBtn = ` GET IT FREE!` else if jamtrack.added_cart actionBtn = `ALREADY IN CART` else @@ -219,14 +219,13 @@ MIX_MODES = context.JK.MIX_MODES clearResults:() -> - @setState({currentPage: 0, next: null, show_all_artists: false, artists:[], jamtracks:[], type: 'user-input', searching:false, artist: null, song:null, is_free: context.JK.currentUserFreeJamTrack, first_search: true}) + @setState({currentPage: 0, next: null, show_all_artists: false, artists:[], jamtracks:[], type: 'user-input', searching:false, artist: null, song:null, is_free: @user.show_free_jamtrack, first_search: true}) getInitialState: () -> {search: '', type: 'user-input', artists:[], jamtracks:[], show_all_artists: false, currentPage: 0, next: null, searching: false, first_search: true, count: 0, is_free: context.JK.currentUserFreeJamTrack} onSelectChange: (val) -> - #@logger.debug("CHANGE #{val}") return false unless val? @@ -435,18 +434,39 @@ MIX_MODES = context.JK.MIX_MODES isFree = $(e.target).is('.is_free') @rest.addJamtrackToShoppingCart(params).done((response) => - if(isFree) - if context.JK.currentUserId? - context.JK.currentUserFreeJamTrack = true # make sure the user sees no more free notices - context.location = '/client#/redeemComplete' + if context.JK.currentUserId? + if isFree + if @user.has_redeemable_jamtrack + # this is the 1st jamtrack; let's user the user to completion + context.location = '/client#/redeemComplete' + else + # this is must be a user's gifted jamtrack, to treat them normally in that they'll go to the shopping cart + #context.location = '/client#/shoppingCart' + context.location = '/client#/redeemComplete' else - # now make a rest call to buy it - context.location = '/client#/redeemSignup' - + # this user has nothing free; so send them to shopping cart + context.location = '/client#/shoppingCart' else - context.location = '/client#/shoppingCart' + if isFree + # user not logged in; make them signup + context.location = '/client#/redeemSignup' + else + # this user has nothing free; so send them to shopping cart + context.location = '/client#/shoppingCart' - ).fail(() => @app.ajaxError) + + ).fail(((jqxhr) => + + handled = false + if jqxhr.status == 422 + body = JSON.parse(jqxhr.responseText) + if body.errors && body.errors.base + handled = true + context.JK.Banner.showAlert("You can not have a mix of free and non-free items in your shopping cart.

    If you want to add this new item to your shopping cart, then clear out all current items by clicking on the shopping cart icon and clicking 'delete' next to each item.") + if !handled + @app.ajaxError(arguments[0], arguments[1], arguments[2]) + + )) licenseUSWhy:(e) -> e.preventDefault() @@ -517,12 +537,9 @@ MIX_MODES = context.JK.MIX_MODES beforeShow: () -> - @setState({is_free: context.JK.currentUserFreeJamTrack}) if !@state.first_search @search(@state.type, window.JamTrackSearchInput) - - onAppInit: (@app) -> window.JamTrackSearchInput = '' # need to be not null; otherwise react-select chokes @@ -530,10 +547,14 @@ MIX_MODES = context.JK.MIX_MODES @rest = context.JK.Rest() @logger = context.JK.logger - screenBindings = 'beforeShow': @beforeShow 'afterShow': @afterShow @app.bindScreen('jamtrack/search', screenBindings) + + onUserChanged: (userState) -> + @user = userState?.user + @setState({is_free: @user?.show_free_jamtrack}) + }) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/actions/UserActions.js.coffee b/web/app/assets/javascripts/react-components/actions/UserActions.js.coffee index c9469e5d6..daf5708ab 100644 --- a/web/app/assets/javascripts/react-components/actions/UserActions.js.coffee +++ b/web/app/assets/javascripts/react-components/actions/UserActions.js.coffee @@ -2,5 +2,6 @@ context = window @UserActions = Reflux.createActions({ loaded: {} + modify: {} }) diff --git a/web/app/assets/javascripts/react-components/landing/JamTrackLandingPage.js.jsx.coffee b/web/app/assets/javascripts/react-components/landing/JamTrackLandingPage.js.jsx.coffee index a1e01f323..0150f24e9 100644 --- a/web/app/assets/javascripts/react-components/landing/JamTrackLandingPage.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/landing/JamTrackLandingPage.js.jsx.coffee @@ -119,10 +119,9 @@ rest = context.JK.Rest() isFree = context.JK.currentUserFreeJamTrack - rest.addJamtrackToShoppingCart({id: @props.jam_track.id}).done((response) => + rest.addJamtrackToShoppingCart({id: @props.jam_track.id, clear:true}).done((response) => if isFree if loggedIn - context.JK.currentUserFreeJamTrack = true # make sure the user sees no more free notices @setState({done: true}) context.location = '/client?redeemed_flow=1#/jamtrack' else diff --git a/web/app/assets/javascripts/react-components/landing/RedeemGiftCardPage.js.jsx.coffee b/web/app/assets/javascripts/react-components/landing/RedeemGiftCardPage.js.jsx.coffee new file mode 100644 index 000000000..8bf7b2025 --- /dev/null +++ b/web/app/assets/javascripts/react-components/landing/RedeemGiftCardPage.js.jsx.coffee @@ -0,0 +1,159 @@ +context = window +rest = context.JK.Rest() +ReactCSSTransitionGroup = React.addons.CSSTransitionGroup; + +@RedeemGiftCardPage = React.createClass({ + + render: () -> + + + if this.state.formErrors? + for key, value of this.state.formErrors + break + + errorText = context.JK.getFullFirstError(key, @state.formErrors, {email: 'Email', password: 'Password', gift_card: 'Gift Card Code', 'terms_of_service' : 'The terms of service'}) + + buttonClassnames = classNames({'redeem-giftcard': true, 'button-orange': true, disabled: @state.processing || @state.done }) + + if @state.done + button = + `
    +
    You have {this.state.gifted_jamtracks} free JamTracks on your account!
    +
    You can now browse our collection and redeem them.
    +
    ` + else + button = `` + + action = ` + {button} + ` + + + if context.JK.currentUserId? + form = + `
    + + {action} +
    ` + instruments = `

    Enter the code from the back of your gift card to associate it with your account.

    ` + else + form = + `
    + + + +
    + +
    + {action} + ` + instruments = `

    Enter the code from the back of your gift card to associate it with your new JamKazam account.

    ` + + + classes = classNames({'redeem-container': true, 'not-logged-in': !context.JK.currentUserId?, 'logged-in': context.JK.currentUserId? }) + `
    +
    +

    Redeem Your Gift Card

    + {instruments} + {form} +
    + {errorText} +
    +
    +
    ` + + getInitialState: () -> + {formErrors: null, processing:false, gifted_jamtracks: null} + + privacyPolicy: (e) -> + e.preventDefault() + + context.JK.popExternalLink('/corp/privacy') + + termsClicked: (e) -> + e.preventDefault() + + context.JK.popExternalLink('/corp/terms') + + componentDidMount:() -> + $root = $(this.getDOMNode()) + $checkbox = $root.find('.terms-checkbox') + console.log("$checkbox", $checkbox) + context.JK.checkbox($checkbox) + + submit: (e) -> + @action(e) + action: (e) -> + + if @state.done || @state.processing + e.preventDefault() + return + + if context.JK.currentUserId? + @redeem(e) + else + @signup(e) + + redeem: (e) -> + e.preventDefault() + return if @state.done || @state.processing + + $root = $(@getDOMNode()) + $code = $root.find('input[name="code"]') + code = $code.val() + + rest.redeemGiftCard({gift_card: code}) + .done((response) => + + @setState({formErrors: null, processing:false, done: true, gifted_jamtracks: response.gifted_jamtracks}) + + ).fail((jqXHR) => + @setState({processing:false}) + + if jqXHR.status == 422 + response = JSON.parse(jqXHR.responseText) + if response.errors + @setState({formErrors: response.errors}) + else + context.JK.app.notify({title: 'Unknown Error', text: jqXHR.responseText}) + else + context.JK.app.notifyServerError(jqXHR, "Unable to Redeem Giftcard") + ) + + signup: (e) -> + e.preventDefault() + + return if @state.done || @state.processing + + $root = $(@getDOMNode()) + $email = $root.find('input[name="email"]') + $code = $root.find('input[name="code"]') + $password = $root.find('input[name="password"]') + terms = $root.find('input[name="terms"]').is(':checked') + + @setState({processing:true}) + email = $email.val() + password = $password.val() + code = $code.val() + if !code + # must pass up non-null value to indicate user is trying to redeem giftcard while creating account + code = '' + + rest.signup({email: email, password: password, gift_card: code, terms: terms}) + .done((response) => + + @setState({formErrors: null, processing:false, done: true, gifted_jamtracks: response.gifted_jamtracks}) + + ).fail((jqXHR) => + @setState({processing:false}) + + if jqXHR.status == 422 + response = JSON.parse(jqXHR.responseText) + if response.errors + @setState({formErrors: response.errors}) + else + context.JK.app.notify({title: 'Unknown Signup Error', text: jqXHR.responseText}) + else + context.JK.app.notifyServerError(jqXHR, "Unable to Sign Up") + ) +}) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee b/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee index 133c3f87c..6819fbf4d 100644 --- a/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee @@ -8,10 +8,24 @@ logger = context.JK.logger listenables: @UserActions + init: -> + this.listenTo(context.AppStore, this.onAppInit) + + onAppInit: (@app) -> + @loadAnonymousUser() + + loadAnonymousUser: () -> + @user = {id: null, has_redeemable_jamtrack: context.JK.currentUserFreeJamTrack, purchased_jamtracks_count:0, show_free_jamtrack: context.JK.currentUserFreeJamTrack } + @changed() + onLoaded:(user) -> @user = user @changed() + onModify: (changes) -> + @user = $.extend({}, @user, changes) + @changed( + ) changed:() -> @trigger({user: @user}) } diff --git a/web/app/assets/javascripts/redeem_complete.js b/web/app/assets/javascripts/redeem_complete.js index 0b89e1c9a..d5bb834e2 100644 --- a/web/app/assets/javascripts/redeem_complete.js +++ b/web/app/assets/javascripts/redeem_complete.js @@ -31,11 +31,6 @@ function beforeShow() { - - } - - function afterShow(data) { - context.JK.Tracking.redeemCompleteTrack() $noPurchasesPrompt.addClass('hidden') @@ -44,6 +39,10 @@ $purchasedJamTrackHeader.attr('status', 'in-progress') $jamTrackInBrowser.addClass('hidden') $jamTrackInClient.addClass('hidden') + } + + function afterShow(data) { + // if there is no current user, but it apperas we have a login cookie, just refresh @@ -59,23 +58,19 @@ function handleShoppingCartResponse(carts) { - if(!checkoutUtils.hasOneFreeItemInShoppingCart(carts)) { + if(!checkoutUtils.hasOnlyFreeItemsInShoppingCart(carts)) { // the user has multiple items in their shopping cart. They shouldn't be here. logger.error("invalid access of redeemComplete page") window.location = '/client#/jamtrack/search' } else { - // ok, we have one, free item. save it for - shoppingCartItem = carts[0]; rest.placeOrder() .done(function(purchaseResponse) { - context.JK.currentUserFreeJamTrack = false // make sure the user sees no more free notices without having to do a full page refresh rest.updateUser() checkoutUtils.setLastPurchase(purchaseResponse) jamTrackUtils.checkShoppingCart() - //app.refreshUser() // this only causes grief in tests for some reason, and with currentUserFreeJamTrack = false above, this is probably now unnecessary prepThanks(); }) diff --git a/web/app/assets/javascripts/redeem_signup.js b/web/app/assets/javascripts/redeem_signup.js index d3d514258..159794260 100644 --- a/web/app/assets/javascripts/redeem_signup.js +++ b/web/app/assets/javascripts/redeem_signup.js @@ -73,7 +73,7 @@ else if(carts.length > 1) { // the user has multiple items in their shopping cart. They shouldn't be here. logger.error("invalid access of redeemJamTrack page; multiple") - window.location = '/client#/jamtrack/search' + window.location = '/client#/shoppingCart' } else { var item = carts[0]; diff --git a/web/app/assets/javascripts/shopping_cart.js b/web/app/assets/javascripts/shopping_cart.js index 9193d9735..c0589b173 100644 --- a/web/app/assets/javascripts/shopping_cart.js +++ b/web/app/assets/javascripts/shopping_cart.js @@ -9,6 +9,7 @@ var $screen = null; var $content = null; + var totalCost = 0; function beforeShow(data) { clearContent(); @@ -30,7 +31,7 @@ function proceedCheckout(e) { e.preventDefault(); - if (context.JK.currentUserFreeJamTrack) { + if (totalCost == 0) { if(context.JK.currentUserId) { logger.debug("proceeding to redeem complete screen because user has a free jamtrack and is logged in") window.location = '/client#/redeemComplete' @@ -120,6 +121,8 @@ }); data.sub_total = sub_total; + totalCost = data.sub_total; + data.carts = carts; var $cartsHtml = $( context._.template( diff --git a/web/app/assets/stylesheets/client/jamkazam.css.scss b/web/app/assets/stylesheets/client/jamkazam.css.scss index 6af987666..292e6c631 100644 --- a/web/app/assets/stylesheets/client/jamkazam.css.scss +++ b/web/app/assets/stylesheets/client/jamkazam.css.scss @@ -702,4 +702,23 @@ $ReactSelectVerticalPadding: 3px; .Select-search-prompt { padding:3px 0 !important; -} \ No newline at end of file +} + + +.session-track-list-enter { + opacity: 0.01; + transition: opacity .5s ease-in; + + &.session-track-list-enter-active { + opacity: 1; + } +} + +.session-track-list-leave { + opacity:1; + transition: opacity .5s ease-in; + + &.session-track-list-leave-active { + opacity: 0.01; + } +} diff --git a/web/app/assets/stylesheets/client/react-components/SessionScreen.css.scss b/web/app/assets/stylesheets/client/react-components/SessionScreen.css.scss index e7e510b2e..bea31605f 100644 --- a/web/app/assets/stylesheets/client/react-components/SessionScreen.css.scss +++ b/web/app/assets/stylesheets/client/react-components/SessionScreen.css.scss @@ -386,22 +386,3 @@ $session-screen-divider: 1190px; } } } - - -.session-track-list-enter { - opacity: 0.01; - transition: opacity .5s ease-in; - - &.session-track-list-enter-active { - opacity: 1; - } -} - -.session-track-list-leave { - opacity:1; - transition: opacity .5s ease-in; - - &.session-track-list-leave-active { - opacity: 0.01; - } -} diff --git a/web/app/assets/stylesheets/client/redeem_complete.css.scss b/web/app/assets/stylesheets/client/redeem_complete.css.scss index 617e1a01f..82eff74e2 100644 --- a/web/app/assets/stylesheets/client/redeem_complete.css.scss +++ b/web/app/assets/stylesheets/client/redeem_complete.css.scss @@ -74,7 +74,7 @@ display:inline-block; } - .download-jamkazam-wrapper { + .download-jamkazam-wrapper, .back-to-browsing { text-align:center; display:block; margin-top:35px; @@ -83,6 +83,7 @@ display:none; } } + .thanks-detail.purchased-jam-track { margin-top:20px; diff --git a/web/app/assets/stylesheets/landings/redeem_giftcard.css.scss b/web/app/assets/stylesheets/landings/redeem_giftcard.css.scss new file mode 100644 index 000000000..c1cd5af24 --- /dev/null +++ b/web/app/assets/stylesheets/landings/redeem_giftcard.css.scss @@ -0,0 +1,90 @@ +@import "client/common"; + +body.web.redeem_giftcard { + + h2 { + margin-bottom:20px; + } + + label{ + margin-bottom:4px; + color:$ColorTextTypical; + } + + input{ + margin-bottom:20px; + width:200px; + } + + .redeem-container { + margin-left:350px; + width:400px; + padding-top:20px; + + &.logged-in { + button { + margin-top:10px !important; + } + } + + &.not-logged-in { + + } + } + .redeem-content { + + } + p.instructions { + line-height:125%; + color:$ColorTextTypical; + margin-bottom:20px; + } + + button { + display:block !important; + height: 29px !important; + margin-bottom: 10px; + margin-right: 0px; + font-size: 16px !important; + padding: 7px 3px !important; + line-height:inherit !important; + margin-left:2px !important; + margin-top:15px; + } + + .icheckbox_minimal { + float: left; + top: -2px; + margin-left: 0; + margin-right:10px; + } + + .errors { + font-size:14px; + height:20px; + margin:0; + visibility: hidden; + color: red; + font-weight: bold; + + &.active { + visibility: visible; + } + } + + form { + margin-bottom:20px; + } + .terms-help { + float:left; + margin-top:-5px; + font-size:12px; + width:178px; + } + + .done-action { + margin-top: 20px; + line-height: 125%; + } + +} \ No newline at end of file diff --git a/web/app/controllers/api_recurly_controller.rb b/web/app/controllers/api_recurly_controller.rb index a76113739..e051e17fc 100644 --- a/web/app/controllers/api_recurly_controller.rb +++ b/web/app/controllers/api_recurly_controller.rb @@ -126,8 +126,15 @@ class ApiRecurlyController < ApiController error=nil response = {jam_tracks: []} + if Sale.is_mixed(current_user.shopping_carts) + msg = "has free and non-free items. Try removing non-free items." + render json: {message: "Cart " + msg, errors: {cart: [msg]}}, :status => 404 + return + end + sales = Sale.place_order(current_user, current_user.shopping_carts) + sales.each do |sale| if sale.is_jam_track_sale? sale.sale_line_items.each do |line_item| diff --git a/web/app/controllers/api_shopping_carts_controller.rb b/web/app/controllers/api_shopping_carts_controller.rb index 05bf66aeb..0d1256daf 100644 --- a/web/app/controllers/api_shopping_carts_controller.rb +++ b/web/app/controllers/api_shopping_carts_controller.rb @@ -20,13 +20,13 @@ class ApiShoppingCartsController < ApiController raise StateError, "Invalid JamTrack." end - @cart = ShoppingCart.add_jam_track_to_cart(any_user, jam_track) + @cart = ShoppingCart.add_jam_track_to_cart(any_user, jam_track, clear:params[:clear]) if @cart.errors.any? response.status = :unprocessable_entity respond_with @cart else - respond_with @cart, responder: ApiResponder, :status => 201 + # let add_jamtrack.rabl take over end end @@ -42,7 +42,7 @@ class ApiShoppingCartsController < ApiController response.statue = :unprocessable_entity respond_with @cart else - respond_with @cart, responder: ApiResponder, :status => 200 + # let update_cart.rabl take over end end @@ -52,7 +52,7 @@ class ApiShoppingCartsController < ApiController ShoppingCart.remove_jam_track_from_cart(any_user, @cart) - respond_with responder: ApiResponder, :status => 204 + # let remove_cart.rabl take over end # take all shopping carts from anonymous user and copy them to logged in user diff --git a/web/app/controllers/api_users_controller.rb b/web/app/controllers/api_users_controller.rb index ad8ec6583..05eed5887 100644 --- a/web/app/controllers/api_users_controller.rb +++ b/web/app/controllers/api_users_controller.rb @@ -14,8 +14,8 @@ ApiUsersController < ApiController :band_invitation_index, :band_invitation_show, :band_invitation_update, # band invitations :set_password, :begin_update_email, :update_avatar, :delete_avatar, :generate_filepicker_policy, :share_session, :share_recording, - :affiliate_report, :audio_latency, :broadcast_notification] - before_filter :ip_blacklist, :only => [:create] + :affiliate_report, :audio_latency, :broadcast_notification, :redeem_giftcard] + before_filter :ip_blacklist, :only => [:create, :redeem_giftcard] respond_to :json, :except => :calendar respond_to :ics, :only => :calendar @@ -81,6 +81,7 @@ ApiUsersController < ApiController terms_of_service: params[:terms], location: {:country => nil, :state => nil, :city => nil}, signup_hint: signup_hint, + gift_card: params[:gift_card], affiliate_referral_id: cookies[:affiliate_visitor] } @@ -919,6 +920,45 @@ ApiUsersController < ApiController .find(params[:id]) end + def redeem_giftcard + @gift_card = GiftCard.find_by_code(params[:gift_card]) + + if @gift_card.nil? + render json: {errors:{gift_card: ['does not exist']}}, status: 422 + return + end + + if current_user.gift_cards.count >= 5 + render json: {errors:{gift_card: ['has too many on account']}}, status: 422 + return + end + + if @gift_card.user + if @gift_card.user == current_user + render json: {errors:{gift_card: ['already redeemed by you']}}, status: 422 + return + else + render json: {errors:{gift_card: ['already redeemed by another']}}, status: 422 + return + end + end + + @gift_card.user = current_user + @gift_card.save + + if @gift_card.errors.any? + respond_with_model(@gift_card) + return + else + + # apply gift card items to everything in shopping cart + current_user.reload + ShoppingCart.apply_gifted_jamtracks(current_user) + render json: {gifted_jamtracks:current_user.gifted_jamtracks}, status: 200 + end + end + + ###################### RECORDINGS ####################### # def recording_index # @recordings = User.recording_index(current_user, params[:id]) diff --git a/web/app/controllers/landings_controller.rb b/web/app/controllers/landings_controller.rb index fa13b018f..5e6cc538e 100644 --- a/web/app/controllers/landings_controller.rb +++ b/web/app/controllers/landings_controller.rb @@ -208,5 +208,10 @@ class LandingsController < ApplicationController render 'affiliate_program', layout: 'web' end + def redeem_giftcard + @no_landing_tag = true + @landing_tag_play_learn_earn = true + render 'redeem_giftcard', layout: 'web' + end end diff --git a/web/app/views/api_shopping_carts/add_jamtrack.rabl b/web/app/views/api_shopping_carts/add_jamtrack.rabl index c61e7b52b..272eb3c6d 100644 --- a/web/app/views/api_shopping_carts/add_jamtrack.rabl +++ b/web/app/views/api_shopping_carts/add_jamtrack.rabl @@ -1 +1,5 @@ -extends "api_shopping_carts/show" \ No newline at end of file +extends "api_shopping_carts/show" + +node :show_free_jamtrack do + any_user.show_free_jamtrack? +end \ No newline at end of file diff --git a/web/app/views/api_shopping_carts/remove_cart.rabl b/web/app/views/api_shopping_carts/remove_cart.rabl new file mode 100644 index 000000000..35e9a2b48 --- /dev/null +++ b/web/app/views/api_shopping_carts/remove_cart.rabl @@ -0,0 +1,3 @@ +node :show_free_jamtrack do + any_user.show_free_jamtrack? +end \ No newline at end of file diff --git a/web/app/views/api_shopping_carts/update_cart.rabl b/web/app/views/api_shopping_carts/update_cart.rabl new file mode 100644 index 000000000..35e9a2b48 --- /dev/null +++ b/web/app/views/api_shopping_carts/update_cart.rabl @@ -0,0 +1,3 @@ +node :show_free_jamtrack do + any_user.show_free_jamtrack? +end \ No newline at end of file diff --git a/web/app/views/api_users/show.rabl b/web/app/views/api_users/show.rabl index 9c9c8af0a..6b9f86be5 100644 --- a/web/app/views/api_users/show.rabl +++ b/web/app/views/api_users/show.rabl @@ -11,15 +11,15 @@ end # give back more info if the user being fetched is yourself if @user == current_user - attributes :email, :original_fpfile, :cropped_fpfile, :crop_selection, :session_settings, :show_whats_next, :show_whats_next_count, :subscribe_email, :auth_twitter, :new_notifications, :sales_count, :reuse_card, :purchased_jamtracks_count, :first_downloaded_client_at, :created_at, :first_opened_jamtrack_web_player + attributes :email, :original_fpfile, :cropped_fpfile, :crop_selection, :session_settings, :show_whats_next, :show_whats_next_count, :subscribe_email, :auth_twitter, :new_notifications, :sales_count, :reuse_card, :purchased_jamtracks_count, :first_downloaded_client_at, :created_at, :first_opened_jamtrack_web_player, :gifted_jamtracks, :has_redeemable_jamtrack node :geoiplocation do |user| geoiplocation = current_user.geoiplocation geoiplocation.info if geoiplocation end - node :free_jamtrack do |user| - Rails.application.config.one_free_jamtrack_per_user && user.has_redeemable_jamtrack + node :show_free_jamtrack do |user| + user.show_free_jamtrack? end node :show_jamtrack_guide do |user| diff --git a/web/app/views/clients/_jamtrack_browse.html.slim b/web/app/views/clients/_jamtrack_browse.html.slim deleted file mode 100644 index f7d7b515a..000000000 --- a/web/app/views/clients/_jamtrack_browse.html.slim +++ /dev/null @@ -1,86 +0,0 @@ -#jamtrackScreen.screen.secondary.no-login-required layout='screen' layout-id='jamtrackBrowse' - .content - .content-head - .content-icon=image_tag("content/icon_jamtracks.png", height:19, width:19 ) - h1 jamtracks - =render "screen_navigation" - .content-body - =form_tag('', {:id => 'jamtrack-find-form', :class => 'inner-content'}) do - =render(:partial => "web_filter", :locals => {:search_type => Search::PARAM_JAMTRACK}) - .filter-body - .content-body-scroller - .profile-wrapper - h2 shop for jamtracks - table.generaltable.jamtrack-table - thead - tr - th.jamtrack-detail JAMTRACK - th.jamtrack-tracks TRACKS INCLUDED / PREVIEW - th.jamtrack-action SHOP - tbody.jamtrack-content - a.btn-next-pager href="/api/jamtracks?page=1" Next - .end-of-jamtrack-list.end-of-list="No more Jamtracks" - -script#template-jamtrack type='text/template' - tr.jamtrack-record jamtrack-id="{{data.jamtrack.id}}" - td.jamtrack-detail - .jamtrack-name - | "{{data.jamtrack.name}}" - .jamtrack-original-artist - | by {{data.jamtrack.original_artist}} - br clear="all" - .clearall.detail-label.extra.hidden.song-writer - | Songwriters: - .detail-value.extra.hidden - | {{data.jamtrack.songwriter}} - .clearall.detail-label.extra.hidden - | Publishers: - .detail-value.extra.hidden - | {{data.jamtrack.publisher}} - .clearall.detail-label.extra.hidden - | Genre: - .detail-value.extra.hidden - | {{data.jamtrack.genres[0]}} - .clearall.detail-label.extra.hidden - | Version: - .detail-value.extra.hidden - | {{data.jamtrack.recording_type}} - td.jamtrack-tracks - .detail-arrow - .jamtrack-detail-btn - ="{% if (data.expanded) { %}" - | hide tracks - a.details-arrow.arrow-up - ="{% } else { %}" - | show all tracks - a.details-arrow.arrow-down - ="{% } %}" - ="{% _.each(data.jamtrack.tracks, function(track) { %}" - .jamtrack-track.hidden jamtrack-track-id="{{track.id}}" - / .instrument-desc - / | {{track.instrument_desc}} - /.track-instrument - .jamtrack-preview - .clearall - ="{% }); %}" - td.jamtrack-action - .jamtrack-action-container - .jamtrack-actions - / a.play-button href="#" data-jamtrack-id="{{data.jamtrack.id}}" - / =image_tag "shared/play_button.png" - .jamtrack-price class="{{data.free_state}}" - | {{"$ " + data.jamtrack.price}} - ="{% if (data.is_free) { %}" - a.jamtrack-add-cart.button-orange.is_free href="#" data-jamtrack-id="{{data.jamtrack.id}}" GET IT FREE! - ="{% } else if (data.jamtrack.purchased) { %}" - a.jamtrack-add-cart-disabled.button-grey.button-disabled href="javascript:void(0)" PURCHASED - ="{% } else if (data.jamtrack.added_cart) { %}" - a.jamtrack-add-cart-disabled.button-grey.button-disabled href="client#/shoppingCart" ALREADY IN CART - ="{% } else { %}" - a.jamtrack-add-cart.button-orange href="#" data-jamtrack-id="{{data.jamtrack.id}}" ADD TO CART - ="{% }; %}" - ="{% if (data.jamtrack.sales_region==JK.AVAILABILITY_US) { %}" - .jamtrack-license - | This JamTrack available only to US customers.      - a.license-us-why.orange href="#" why? - ="{% }; %}" diff --git a/web/app/views/clients/_order.html.slim b/web/app/views/clients/_order.html.slim deleted file mode 100644 index cc8982dfe..000000000 --- a/web/app/views/clients/_order.html.slim +++ /dev/null @@ -1,290 +0,0 @@ -div layout="screen" layout-id="order" id="orderScreen" class="screen secondary" - .content - .content-head - .content-icon= image_tag("content/icon_shopping_cart.png", {:height => 19, :width => 19}) - h1 check out - = render "screen_navigation" - .content-body - #order_error.error.hidden - .content-body-scroller - .content-wrapper - .checkout-navigation-bar - .checkout-payment-info - form class="payment-info" id="checkout-payment-info" - .billing-address - h2.billing-caption Billing Address - #divBillingFirstName - .billing-label - label for="billing-first-name" First Name: - .billing-value - input type="text" id="billing-first-name" - .clearall - #divBillingLastName - .billing-label - label for="billing-last-name" Last Name: - .billing-value - input type="text" id="billing-last-name" - .clearall - #divBillingAddress1 - .billing-label - label for="billing-address1" Address 1: - .billing-value - input type="text" id="billing-address1" - .clearall - .billing-label - label for="billing-address2" Address 2: - .billing-value - input type="text" id="billing-address2" - .clearall - #divBillingCity - .billing-label - label for="billing-city" City: - .billing-value - input type="text" id="billing-city" - .clearall - #divBillingState - .billing-label - label for="billing-state" State/Region: - .billing-value - input type="text" id="billing-state" - .clearall - #divBillingZip - .billing-label - label for="billing-zip" Zip: - .billing-value - input type="text" id="billing-zip" - .clearall - #divBillingCountry - .billing-label - label for="billing-country" Country: - .billing-value - input type="text" id="billing-country" - .clearall - .payment-method - h2.payment-method-caption Payment Method - b Enter Card Information - br - #divCardName - .card-label.mt10 - label for="card-name" Name of Card: - .card-value.mt10 - input type="text" id="card-name" - .clearall - #divCardNumber - .card-label.mt10 - label for="card-number" Card Number: - .card-value.mt10 - input type="text" id="card-number" - .clearall - #divCardExpiry - .card-label.mt10 Expiration Date: - .card-value.mt10 - =date_select("card", "expire-date", use_two_digit_numbers: true, discard_day: true, :start_year => Time.now.year, :end_year => Time.now.year + 18, :order => [:month, :day, :year], :default => -25.years.from_now, :html=>{:class => "account-profile-birthdate", :id=>"card-expiry"} ) - .clearall - #divCardVerify - .card-label.mt10 - label for="card-verify" Verification Value: - .card-value.mt10 - input type="text" id="card-verify" - .clearall - .card-label.mt15 - .card-value.mt15 - .save-card-checkbox.ichecbuttons - input type="checkbox" id="save-card" name="save-card" checked="checked" - .divSaveCardHelper - label for="save-card" Save card for future use - .clearall - .clearall - .clearall - - .action-bar.mt15 - .shipping-address - h2.shipping-address-label Shipping Address - .shipping-as-billing.ichecbuttons - input type="checkbox" id="shipping-as-billing" name="shipping-as-billing" checked="checked" - .divBillingHelper - label for="shipping-as-billing" Same as billing address - .clearall - .shipping-address-detail.hidden - #divShippingFirstName - .shipping-label - label for="shipping-first-name" First Name: - .shipping-value - input type="text" id="shipping-first-name" - .clearall - #divShippingLastName - .shipping-label - label for="shipping-last-name" Last Name: - .shipping-value - input type="text" id="shipping-last-name" - .clearall - #divShippingAddress1 - .shipping-label - label for="shipping-address1" Address 1: - .shipping-value - input type="text" id="shipping-address1" - .clearall - .shipping-label - label for="shipping-address2" Address 2: - .shipping-value - input type="text" id="shipping-address2" - .clearall - #divShippingCity - .shipping-label - label for="shipping-city" City: - .shipping-value - input type="text" id="shipping-city" - .clearall - #divShippingState - .shipping-label - label for="shipping-state" State/Region: - .shipping-value - input type="text" id="shipping-state" - .clearall - #divShippingZip - .shipping-label - label for="shipping-zip" Zip: - .shipping-value - input type="text" id="shipping-zip" - .clearall - #divShippingCountry - .shipping-label - label for="shipping-country" Country: - .shipping-value - input type="text" id="shipping-country" - .clearall - .right.mt30 - a href="#" id="payment-info-help" class="button-grey" HELP - a href="#" id="payment-info-next" class="button-orange" NEXT - .clearall - .order-panel.hidden - .order-header.left - h2 Review Your Order - .mt5 - span By placing your order, you agree to JamKazam's - ' - a href="/corp/terms" terms of service - ' - span and - ' - a href="/corp/returns" returns policy - span . - .right.mt10 - a href="#" class="button-grey" HELP - .clearall - - .order-content - .thanks-panel.hidden - h2 Thank you for your order! - br - .thanks-detail We'll send you an email confirming your order shortly. - br - .thanks-detail.jam-tracks-in-browser.hidden - | To play your purchased JamTrack, launch the JamKazam application and open the JamTrack while in a session. - .thanks-detail.purchased-jam-track.hidden - h2.purchased-jam-track-header Downloading Your Purchased JamTracks - span Each JamTrack will be downloaded sequentially. - br - span.notice Note that you do not have to wait for this to complete in order to use your JamTrack later. - br.clear - ul.purchased-list - - - -script type='text/template' id='template-order-content' - .order-left-page - .payment-info-page - .address-info - b.left Billing Address - a.left.ml5.change-payment-info href="#" change - .clearall - span.mt5= "{{data.billing_info.first_name}} {{data.billing_info.last_name}}" - br - span.mt5= "{{data.billing_info.address1}}" - br - span.mt5= "{{data.billing_info.address2}}" - br - br - b.left Shipping Address - a.left.ml5.change-payment-info href="#" change - .clearall - = "{% if (data.shipping_as_billing) { %}" - span.mt5 same as billing address - = "{% } else { %}" - span.mt5= "{{data.shipping_info.first_name}} {{data.shipping_info.last_name}}" - br - span.mt5= "{{data.shipping_info.address1}}" - br - span.mt5= "{{data.shipping_info.address2}}" - = "{% } %}" - br - .payment-method-info - b.left Payment Method - a.left.ml5.change-payment-info href="#" change - .clearall - - /= image_tag '' - ="Ending in: {{data.billing_info.number.slice(-4)}}" - - .clearall - .order-items-page - .cart-items - .cart-item-caption#header - span Your order includes: - .cart-item-price - span style="text-decoration: underline;" Price - .cart-item-quantity - span style="text-decoration: underline;" Quantity - .clearall - = "{% if (data.carts.length == 0) { %}" - .no-cart-items You have no orders now. - = "{% } %}" - = "{% _.each(data.carts, function(cart) { %}" - .cart-item cart-id="{{cart.id}}" - .cart-item-caption - = "{{cart.cart_type}}: {{cart.product_info.name}}" - .cart-item-price - = "$ {{cart.product_info.price}}" - .cart-item-quantity - = "{{cart.quantity}}" - .clearall - = "{% }); %}" - .clearall - .order-right-page - a href="#" class="button-orange place-order" PLACE YOUR ORDER - br - br - b.mt10 Order Summary: - br - .left Items: - .right= "${{data.sub_total}}" - .clearall - .left Shipping & handling - .right $0.00 - br - hr - .left Total before Tax: - .right= "${{data.sub_total}}" - .clearall - .left Taxes: - .right= "${{data.taxes}}" - .clearall - br - hr - b.order-total - .left Order Total: - .right= "${{data.grand_total}}" - .clearall - br - div style="text-align: left;" - span By placing your order, you agree to JamKazam's - ' - a href="/corp/terms" terms of service - ' - span and - ' - a href="/corp/returns" returns policy - span . - -script type='text/template' id='template-purchased-jam-track' - li data-jam-track-id="{{data.jam_track_id}}" \ No newline at end of file diff --git a/web/app/views/clients/_redeem_complete.html.slim b/web/app/views/clients/_redeem_complete.html.slim index f57cbe31a..3c2ba8ab5 100644 --- a/web/app/views/clients/_redeem_complete.html.slim +++ b/web/app/views/clients/_redeem_complete.html.slim @@ -27,6 +27,9 @@ div layout="screen" layout-id="redeemComplete" id="redeemCompleteScreen" class=" .download-jamkazam | Click Here to Get the Free JamKazam Application + a.back-to-browsing href="/client#/jamtrack" + | or click here to browse more jamtracks + .jam-tracks-in-client.hidden h2 Congratulations on getting your JamTrack! diff --git a/web/app/views/clients/index.html.erb b/web/app/views/clients/index.html.erb index 962e21298..0dd83c6ae 100644 --- a/web/app/views/clients/index.html.erb +++ b/web/app/views/clients/index.html.erb @@ -48,7 +48,6 @@ <%= render "checkout_complete" %> <%= render "redeem_signup" %> <%= render "redeem_complete" %> -<%= render "order" %> <%= render "feed" %> <%= render "bands" %> <%= render "musicians" %> @@ -122,14 +121,14 @@ JK.currentUserName = '<%= current_user.name %>'; JK.currentUserMusician = '<%= current_user.musician %>'; JK.currentUserAdmin = <%= current_user.admin %>; - JK.currentUserFreeJamTrack = <%= APP_CONFIG.one_free_jamtrack_per_user && current_user.has_redeemable_jamtrack %> + JK.currentUserFreeJamTrack = <%= current_user.show_free_jamtrack? %> <% else %> JK.currentUserId = null; JK.currentUserAvatarUrl = null; JK.currentUserName = null; JK.currentUserMusician = null; JK.currentUserAdmin = false; - JK.currentUserFreeJamTrack = <%= APP_CONFIG.one_free_jamtrack_per_user && anonymous_user.nil? ? false : anonymous_user.has_redeemable_jamtrack%> + JK.currentUserFreeJamTrack = <%= anonymous_user.nil? ? false : anonymous_user.show_free_jamtrack? %> <% end %> diff --git a/web/app/views/landings/redeem_giftcard.html.slim b/web/app/views/landings/redeem_giftcard.html.slim new file mode 100644 index 000000000..589fc7fd4 --- /dev/null +++ b/web/app/views/landings/redeem_giftcard.html.slim @@ -0,0 +1,5 @@ +- provide(:page_name, 'landing_page full redeem_giftcard') +- provide(:description, 'Here you can redeem a gift card and associate it with your JamKazam account.') +- provide(:title, 'Redeem a Gift Card') + += react_component 'RedeemGiftCardPage' diff --git a/web/app/views/layouts/web.html.erb b/web/app/views/layouts/web.html.erb index 4c09df132..85c1ea1eb 100644 --- a/web/app/views/layouts/web.html.erb +++ b/web/app/views/layouts/web.html.erb @@ -113,13 +113,13 @@ JK.currentUserAvatarUrl = JK.resolveAvatarUrl('<%= current_user.photo_url %>'); JK.currentUserName = '<%= current_user.name %>'; JK.currentUserMusician = '<%= current_user.musician %>'; - JK.currentUserFreeJamTrack = <%= APP_CONFIG.one_free_jamtrack_per_user && current_user.has_redeemable_jamtrack %> - <% else %> - JK.currentUserId = null; + JK.currentUserFreeJamTrack = <%= current_user.show_free_jamtrack? %> + <% else %> + JK.currentUserId = null; JK.currentUserAvatarUrl = null; JK.currentUserName = null; JK.currentUserMusician = null; - JK.currentUserFreeJamTrack = <%= APP_CONFIG.one_free_jamtrack_per_user && anonymous_user.nil? ? false : anonymous_user.has_redeemable_jamtrack%> + JK.currentUserFreeJamTrack = <%= anonymous_user.nil? ? false : anonymous_user.show_free_jamtrack? %> <% end %> diff --git a/web/config/initializers/dev_users.rb b/web/config/initializers/dev_users.rb index 528a5f9cf..2314a562b 100644 --- a/web/config/initializers/dev_users.rb +++ b/web/config/initializers/dev_users.rb @@ -11,7 +11,6 @@ if Rails.env == "development" && Rails.application.config.bootstrap_dev_users User.create_dev_user("David", "Wilson", "david@jamkazam.com", "jam123", "Austin", "TX", "US", nil, 'http://www.jamkazam.com/assets/avatars/avatar_david.jpg') User.create_dev_user("Jonathan", "Kolyer", "jonathan@jamkazam.com", "jam123", "Austin", "TX", "US", nil, nil) User.create_dev_user("Oswald", "Becca", "os@jamkazam.com", "jam123", "Austin", "TX", "US", nil, nil) - User.create_dev_user("Anthony", "Davis", "anthony@jamkazam.com", "jam123", "Austin", "TX", "US", nil, nil) User.create_dev_user("Steven", "Miers", "steven@jamkazam.com", "jam123", "Austin", "TX", "US", nil, nil) end diff --git a/web/config/routes.rb b/web/config/routes.rb index 658db1c33..4c66edfc4 100644 --- a/web/config/routes.rb +++ b/web/config/routes.rb @@ -21,6 +21,8 @@ SampleApp::Application.routes.draw do match '/signin', to: 'sessions#create', via: :post match '/signout', to: 'sessions#destroy', via: :delete + match '/redeem_giftcard', to: 'landings#redeem_giftcard', via: :get + # landing pages match '/landing/wb', to: 'landings#watch_bands', via: :get, as: 'landing_wb' match '/landing/wo', to: 'landings#watch_overview', via: :get, as: 'landing_wo' @@ -452,6 +454,9 @@ SampleApp::Application.routes.draw do match '/users/:id/syncs/:user_sync_id' => 'api_user_syncs#show', :via => :get match '/users/:id/syncs/deletables' => 'api_user_syncs#deletables', :via => :post + # giftcards + match '/users/:id/gift_cards' => 'api_users#redeem_giftcard', :via => :post + # bands diff --git a/web/lib/user_manager.rb b/web/lib/user_manager.rb index 8f231a57b..5fd12f487 100644 --- a/web/lib/user_manager.rb +++ b/web/lib/user_manager.rb @@ -29,6 +29,7 @@ class UserManager < BaseManager any_user = options[:any_user] signup_hint = options[:signup_hint] affiliate_partner = options[:affiliate_partner] + gift_card = options[:gift_card] recaptcha_failed = false unless options[:skip_recaptcha] # allow callers to opt-of recaptcha @@ -72,7 +73,8 @@ class UserManager < BaseManager affiliate_referral_id: affiliate_referral_id, any_user: any_user, signup_hint: signup_hint, - affiliate_partner: affiliate_partner) + affiliate_partner: affiliate_partner, + gift_card: gift_card) user end diff --git a/web/spec/controllers/api_shopping_carts_controller_spec.rb b/web/spec/controllers/api_shopping_carts_controller_spec.rb index c6f196d0d..b5efb7fa8 100644 --- a/web/spec/controllers/api_shopping_carts_controller_spec.rb +++ b/web/spec/controllers/api_shopping_carts_controller_spec.rb @@ -25,11 +25,14 @@ describe ApiShoppingCartsController do it "add_jamtrack" do post :add_jamtrack, {:format => 'json', id: jam_track.id} - response.status.should == 201 + response.status.should == 200 end it "index" do cart = ShoppingCart.create(user, jam_track) + cart.errors.any?.should be_false + user.reload + user.shopping_carts.count.should eq(1) get :index, {:format => 'json'} response.status.should == 200 @@ -41,7 +44,7 @@ describe ApiShoppingCartsController do it "remove_cart" do cart = ShoppingCart.create(user, jam_track) delete :remove_cart, {:format => 'json', id: cart.id} - response.status.should == 204 + response.status.should == 200 ShoppingCart.find_by_id(cart.id).should be_nil end @@ -64,7 +67,9 @@ describe ApiShoppingCartsController do it "add_jamtrack" do post :add_jamtrack, {:format => 'json', id: jam_track.id} - response.status.should == 201 + response.status.should == 200 + user.reload + user.shopping_carts.count.should eql(1) end it "index" do @@ -80,7 +85,7 @@ describe ApiShoppingCartsController do it "remove_cart" do cart = ShoppingCart.create(user, jam_track) delete :remove_cart, {:format => 'json', id: cart.id} - response.status.should == 204 + response.status.should == 200 ShoppingCart.find_by_id(cart.id).should be_nil end diff --git a/web/spec/controllers/api_users_controller_spec.rb b/web/spec/controllers/api_users_controller_spec.rb index 065602e77..6c7d83fdb 100644 --- a/web/spec/controllers/api_users_controller_spec.rb +++ b/web/spec/controllers/api_users_controller_spec.rb @@ -5,12 +5,134 @@ describe ApiUsersController do let (:user) { FactoryGirl.create(:user) } let (:conn) { FactoryGirl.create(:connection, user: user, last_jam_audio_latency: 5) } + let (:jam_track) { FactoryGirl.create(:jam_track)} before(:each) do controller.current_user = user end + describe "redeem_giftcard" do + let!(:gift_card) {FactoryGirl.create(:gift_card)} + + it "can succeed" do + post :redeem_giftcard, id:user.id, gift_card: gift_card.code, format:'json' + + response.should be_success + + user.reload + gift_card.reload + + user.gift_cards.should eq([gift_card]) + user.gifted_jamtracks.should eq(10) + gift_card.user.should eq(user) + end + + it "indicates if you've redeemed it" do + gift_card.user = user + gift_card.save! + + post :redeem_giftcard, id:user.id, gift_card: gift_card.code, format:'json' + + response.status.should eq(422) + error_data = JSON.parse(response.body) + error_data['errors']['gift_card'].should eq(["already redeemed by you"]) + + user.reload + gift_card.reload + + user.gift_cards.should eq([gift_card]) + user.gifted_jamtracks.should eq(10) + gift_card.user.should eq(user) + end + + it "indicates if someone else has redeemed it" do + user2 = FactoryGirl.create(:user) + gift_card.user = user2 + gift_card.save! + + post :redeem_giftcard, id:user.id, gift_card: gift_card.code, format:'json' + + response.status.should eq(422) + error_data = JSON.parse(response.body) + error_data['errors']['gift_card'].should eq(["already redeemed by another"]) + + user.reload + gift_card.reload + + user.gift_cards.should eq([]) + user.gifted_jamtracks.should eq(0) + gift_card.user.should eq(user2) + end + + it "marks free shopping cart item as free" do + # sort of a 'do nothing' really + cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track) + cart1.marked_for_redeem.should eq(1) + + post :redeem_giftcard, id:user.id, gift_card: gift_card.code, format:'json' + + response.should be_success + + user.reload + gift_card.reload + + user.gift_cards.should eq([gift_card]) + user.gifted_jamtracks.should eq(10) + gift_card.user.should eq(user) + cart1.reload + cart1.marked_for_redeem.should eq(1) + end + + it "marks non-free shopping cart item as free" do + # sort of a 'do nothing' really + user.has_redeemable_jamtrack = false + user.save! + + cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track) + cart1.marked_for_redeem.should eq(0) + + post :redeem_giftcard, id:user.id, gift_card: gift_card.code, format:'json' + + response.should be_success + + user.reload + gift_card.reload + + user.gift_cards.should eq([gift_card]) + user.gifted_jamtracks.should eq(10) + gift_card.user.should eq(user) + cart1.reload + cart1.marked_for_redeem.should eq(1) + end + + it "leaves shopping cart alone if too many items in it for size of new gift card" do + # sort of a 'do nothing' really + user.has_redeemable_jamtrack = false + user.save! + + 11.times do |i| + jamtrack = FactoryGirl.create(:jam_track) + cart1 = ShoppingCart.add_jam_track_to_cart(user, jamtrack) + cart1.marked_for_redeem.should eq(0) + end + + post :redeem_giftcard, id:user.id, gift_card: gift_card.code, format:'json' + + response.should be_success + + user.reload + gift_card.reload + + user.gift_cards.should eq([gift_card]) + user.gifted_jamtracks.should eq(10) + gift_card.user.should eq(user) + user.shopping_carts.each do |cart| + cart.marked_for_redeem.should eq(0) + end + end + end + describe "create" do it "successful" do email = 'user_create1@jamkazam.com' diff --git a/web/spec/factories.rb b/web/spec/factories.rb index 10b2d74f2..bc51f447e 100644 --- a/web/spec/factories.rb +++ b/web/spec/factories.rb @@ -21,6 +21,8 @@ FactoryGirl.define do subscribe_email true last_jam_audio_latency 5 reuse_card true + has_redeemable_jamtrack true + gifted_jamtracks 0 factory :fan do musician false @@ -837,4 +839,9 @@ FactoryGirl.define do factory :affiliate_legalese, class: 'JamRuby::AffiliateLegalese' do legalese Faker::Lorem.paragraphs(6).join("\n\n") end + + factory :gift_card, class: 'JamRuby::GiftCard' do + sequence(:code) {|n| n.to_s} + card_type GiftCard::JAM_TRACKS_10 + end end diff --git a/web/spec/features/checkout_spec.rb b/web/spec/features/checkout_spec.rb index c7e3e47d3..2ee4d81c7 100644 --- a/web/spec/features/checkout_spec.rb +++ b/web/spec/features/checkout_spec.rb @@ -5,6 +5,7 @@ describe "Checkout", :js => true, :type => :feature, :capybara_feature => true d let(:user) { FactoryGirl.create(:user) } let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack } let(:jamtrack_pearljam_evenflow) { @jamtrack_pearljam_evenflow } + let(:jamtrack_led_zeppelin_kashmir) {@jamtrack_led_zeppelin_kashmir} let(:billing_info) { { @@ -35,8 +36,11 @@ describe "Checkout", :js => true, :type => :feature, :capybara_feature => true d @recurlyClient = RecurlyClient.new @created_accounts = [] + JamTrack.delete_all + @jamtrack_acdc_backinblack = FactoryGirl.create(:jam_track, name: 'Back in Black', original_artist: 'AC/DC', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-acdc-backinblack') @jamtrack_pearljam_evenflow = FactoryGirl.create(:jam_track, name: 'Even Flow', original_artist: 'Pearl Jam', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-pearljam-evenflow') + @jamtrack_led_zeppelin_kashmir = FactoryGirl.create(:jam_track, name: 'Kashmir', original_artist: 'Led Zeppelin', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-led-zeppelin-kashmir') # make sure plans are there @recurlyClient.create_jam_track_plan(@jamtrack_acdc_backinblack) unless @recurlyClient.find_jam_track_plan(@jamtrack_acdc_backinblack) @@ -1225,4 +1229,98 @@ describe "Checkout", :js => true, :type => :feature, :capybara_feature => true d acdc_sale.sale.should eq(sale) end end + + describe "gift cards" do + + it "user has both redeemable jamtrack and gift card jamtracks" do + + jamtrack_led_zeppelin_kashmir.touch + jamtrack_pearljam_evenflow.touch + + user.gifted_jamtracks = 1 + user.save! + + fast_signin(user, "/client?song=#{jamtrack_acdc_backinblack.name}#/jamtrack/search") + find('h1', text: 'jamtracks') + find("a.jamtrack-add-cart[data-jamtrack-id=\"#{jamtrack_acdc_backinblack.id}\"]", text: 'GET IT FREE!').trigger(:click) + find('.jam-tracks-in-browser') + user.reload + user.has_redeemable_jamtrack.should be_false + + find('a.back-to-browsing').trigger(:click) + find('h1', text: 'search jamtracks') + find('.search-controls .Select-control').trigger(:mousedown) + # wait for the 'Type to search' prompt to show + find('.search-controls .Select-search-prompt') + find('.search-by-string-btn').trigger(:click) + find('.jamtrack-record[data-jamtrack-id="' + jamtrack_led_zeppelin_kashmir.id + '"]') + find("a.jamtrack-add-cart[data-jamtrack-id=\"#{jamtrack_led_zeppelin_kashmir.id}\"]", text: 'GET IT FREE!').trigger(:click) + find('.jam-tracks-in-browser') + sleep 2 + user.reload + user.has_redeemable_jamtrack.should be_false + user.gifted_jamtracks.should eq(0) + + find('a.back-to-browsing').trigger(:click) + find('h1', text: 'search jamtracks') + find('.search-controls .Select-control').trigger(:mousedown) + # wait for the 'Type to search' prompt to show + find('.search-controls .Select-search-prompt') + find('.search-by-string-btn').trigger(:click) + find('.jamtrack-record[data-jamtrack-id="' + jamtrack_pearljam_evenflow.id + '"]') + find("a.jamtrack-add-cart[data-jamtrack-id=\"#{jamtrack_pearljam_evenflow.id}\"]", text: 'ADD TO CART').trigger(:click) + + find('h1', text: 'shopping cart') + find('.cart-item-caption', text: "JamTrack: #{jamtrack_pearljam_evenflow.name}") + find('.cart-item-price', text: "$ #{jamtrack_pearljam_evenflow.price}") + find('.shopping-sub-total', text:"Subtotal:$ #{jamtrack_pearljam_evenflow.price}") + + # attempt to checkout + find('a.button-orange', text: 'PROCEED TO CHECKOUT').trigger(:click) + + # should be at payment page + + # this should take us to the payment screen + find('p.payment-prompt') + + # fill out all billing info and account info + fill_in 'billing-first-name', with: 'Seth' + fill_in 'billing-last-name', with: 'Call' + fill_in 'billing-address1', with: '10704 Buckthorn Drive' + fill_in 'billing-city', with: 'Austin' + fill_in 'billing-state', with: 'Texas' + fill_in 'billing-zip', with: '78759' + fill_in 'card-number', with: '4111111111111111' + fill_in 'card-verify', with: '012' + #jk_select('US', '#checkoutPaymentScreen #divBillingCountry #billing-country') + + find('#payment-info-next').trigger(:click) + + # should be taken straight to order page + + # now see order page, and everything should no longer appear free + find('p.order-prompt') + find('.order-items-value.order-total', text:'$1.99') + find('.order-items-value.shipping-handling', text:'$0.00') + find('.order-items-value.sub-total', text:'$1.99') + find('.order-items-value.taxes', text:'$0.16') + find('.order-items-value.grand-total', text:'$2.15') + + # click the ORDER button + find('.place-order-center a.button-orange.place-order').trigger(:click) + + # and now we should see confirmation, and a notice that we are in a normal browser + find('.thanks-detail.jam-tracks-in-browser') + + user.reload + + sleep 3 # challenge to all comers! WHY DO I HAVE TO SLEEP FOR THIS ASSERTION TO BE TRUE! GAH . and 1 second won't do it + + user.reload + user.has_redeemable_jamtrack.should be_false + user.gifted_jamtracks.should eq(0) + user.purchased_jamtracks_count.should eq(3) + end + + end end diff --git a/web/spec/features/jamtrack_landing_spec.rb b/web/spec/features/jamtrack_landing_spec.rb index 4fa6abdae..b568808c1 100644 --- a/web/spec/features/jamtrack_landing_spec.rb +++ b/web/spec/features/jamtrack_landing_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe "JamTrack Landing", :js => true, :type => :feature, :capybara_feature => true do - let(:user) { FactoryGirl.create(:user, has_redeemable_jamtrack: true) } + let(:user) { FactoryGirl.create(:user, free_jamtracks: 1) } let(:jt_us) { FactoryGirl.create(:jam_track, :name=>'jt_us', sales_region: 'United States', make_track: true, original_artist: "foobar") } let(:jt_ww) { FactoryGirl.create(:jam_track, :name=>'jt_ww', sales_region: 'Worldwide', make_track: true, original_artist: "barfoo") } let(:jt_rock) { FactoryGirl.create(:jam_track, :name=>'jt_rock', genres: [JamRuby::Genre.find('avante-garde')], make_track: true, original_artist: "badfood") } diff --git a/web/spec/features/jamtrack_shopping_spec.rb b/web/spec/features/jamtrack_shopping_spec.rb index 30a4ad3e6..474a73f5b 100644 --- a/web/spec/features/jamtrack_shopping_spec.rb +++ b/web/spec/features/jamtrack_shopping_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe "JamTrack Shopping", :js => true, :type => :feature, :capybara_feature => true do - let(:user) { FactoryGirl.create(:user, has_redeemable_jamtrack: false) } + let(:user) { FactoryGirl.create(:user, gifted_jamtracks: 0, has_redeemable_jamtrack: false) } let(:jt_us) { FactoryGirl.create(:jam_track, :name=>'jt_us', sales_region: 'Worldwide', make_track: true, original_artist: "foobar") } let(:jt_ww) { FactoryGirl.create(:jam_track, :name=>'jt_ww', sales_region: 'Worldwide', make_track: true, original_artist: "barfoo") } let(:jt_rock) { FactoryGirl.create(:jam_track, :name=>'jt_rock', genres: [JamRuby::Genre.find('rock')], make_track: true, original_artist: "badfood") } diff --git a/web/spec/features/redeem_giftcard_spec.rb b/web/spec/features/redeem_giftcard_spec.rb new file mode 100644 index 000000000..f075e8d88 --- /dev/null +++ b/web/spec/features/redeem_giftcard_spec.rb @@ -0,0 +1,169 @@ +require 'spec_helper' + +# tests what happens when the websocket connection goes away +describe "Redeem Gift Card", :js => true, :type => :feature, :capybara_feature => true do + + subject { page } + + let(:user1) { FactoryGirl.create(:user) } + let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack } + let(:gift_card) {FactoryGirl.create(:gift_card)} + + before(:all) do + User.delete_all + JamTrack.delete_all + + @jamtrack_acdc_backinblack = FactoryGirl.create(:jam_track, name: 'Back in Black', original_artist: 'AC/DC', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-acdc-backinblack') + end + + describe "not logged in" do + it "suceeeds" do + visit '/redeem_giftcard' + + find('h2', text:'Redeem Your Gift Card') + fill_in "code", with: gift_card.code + fill_in "email", with: "gifter1@jamkazam.com" + fill_in "password", with: "jam123" + find('.redeem-container ins').trigger(:click) + + find('button.redeem-giftcard').trigger(:click) + + find('.done-action a.go-browse').trigger(:click) + + find('.no-free-jamtrack') + + user = User.find_by_email("gifter1@jamkazam.com") + gift_card.reload + gift_card.user.should eq(user) + user.reload + user.gifted_jamtracks.should eq(10) + end + + it "validates correctly" do + visit '/redeem_giftcard' + + find('h2', text:'Redeem Your Gift Card') + + find('button.redeem-giftcard').trigger(:click) + + find('.errors.active', text: "Email can't be blank") + + find('h2', text:'Redeem Your Gift Card') + fill_in "code", with: gift_card.code + fill_in "email", with: "gifter2@jamkazam.com" + fill_in "password", with: "jam123" + find('.redeem-container ins').trigger(:click) + + find('button.redeem-giftcard').trigger(:click) + + find('.done-action a.go-browse').trigger(:click) + + find('.no-free-jamtrack') + + user = User.find_by_email("gifter2@jamkazam.com") + gift_card.reload + gift_card.user.should eq(user) + user.reload + user.gifted_jamtracks.should eq(10) + end + + it "converts shopping cart items to free" do + + visit '/redeem_giftcard' + + anon_user_id = page.driver.cookies["user_uuid"] + anon_user = AnonymousUser.new(anon_user_id.value, {}) + + cart = ShoppingCart.add_jam_track_to_cart(anon_user, jamtrack_acdc_backinblack) + cart.skip_mix_check = true + cart.marked_for_redeem = 0 + cart.save! + + find('h2', text:'Redeem Your Gift Card') + fill_in "code", with: gift_card.code + fill_in "email", with: "gifter_carted1@jamkazam.com" + fill_in "password", with: "jam123" + find('.redeem-container ins').trigger(:click) + + find('button.redeem-giftcard').trigger(:click) + + find('.done-action a.go-browse').trigger(:click) + + find('.no-free-jamtrack') + + cart.reload + cart.marked_for_redeem.should eq(1) + + end + end + + describe "logged in" do + it "succeeds" do + fast_signin(user1, '/redeem_giftcard') + + find('h2', text:'Redeem Your Gift Card') + fill_in "code", with: gift_card.code + + find('button.redeem-giftcard').trigger(:click) + + find('.done-action a.go-browse').trigger(:click) + + find('.no-free-jamtrack') + + gift_card.reload + gift_card.user.should eq(user1) + user1.reload + user1.gifted_jamtracks.should eq(10) + end + end + + describe "logged in" do + it "validates" do + fast_signin(user1, '/redeem_giftcard') + + find('h2', text:'Redeem Your Gift Card') + + find('button.redeem-giftcard').trigger(:click) + + find('.errors.active', text: "Gift Card Code does not exist") + + fill_in "code", with: gift_card.code + + find('button.redeem-giftcard').trigger(:click) + + find('.done-action a.go-browse').trigger(:click) + + find('.no-free-jamtrack') + + gift_card.reload + gift_card.user.should eq(user1) + user1.reload + user1.gifted_jamtracks.should eq(10) + end + + it "converts shopping cart items to free" do + + fast_signin(user1, '/redeem_giftcard') + cart = ShoppingCart.add_jam_track_to_cart(user1, jamtrack_acdc_backinblack) + cart.skip_mix_check = true + cart.marked_for_redeem = 0 + cart.save! + + visit '/redeem_giftcard' + + find('h2', text:'Redeem Your Gift Card') + + fill_in "code", with: gift_card.code + find('button.redeem-giftcard').trigger(:click) + find('.done-action a.go-browse').trigger(:click) + find('.no-free-jamtrack') + + gift_card.reload + gift_card.user.should eq(user1) + user1.reload + user1.gifted_jamtracks.should eq(10) + cart.reload + cart.marked_for_redeem.should eq(1) + end + end +end diff --git a/web/spec/managers/user_manager_spec.rb b/web/spec/managers/user_manager_spec.rb index f6d464226..974fbf031 100644 --- a/web/spec/managers/user_manager_spec.rb +++ b/web/spec/managers/user_manager_spec.rb @@ -707,4 +707,77 @@ describe UserManager do user.errors.any?.should be_false end # it "passes when facebook signup" end # describe "with nocaptcha" + + describe "gift_card" do + + let(:gift_card) {FactoryGirl.create(:gift_card)} + + it "can succeed when specified" do + user = @user_manager.signup(remote_ip: "1.2.3.4", + first_name: "bob", + last_name: "smith", + email: "giftcard1@jamkazam.com", + password: "foobar", + password_confirmation: "foobar", + terms_of_service: true, + instruments: @instruments, + musician: true, + location: @loca, + signup_confirm_url: "http://localhost:3000/confirm", + gift_card: gift_card.code) + user.errors.any?.should be_false + gift_card.reload + gift_card.user.should eq(user) + user = User.find(user.id) + user.has_redeemable_jamtrack.should be_true + user.gifted_jamtracks.should eq(10) + user.gift_cards[0].should eq(gift_card) + end + + it "will fail if invalid gift card code" do + user = @user_manager.signup(remote_ip: "1.2.3.4", + first_name: "bob", + last_name: "smith", + email: "giftcard2@jamkazam.com", + password: "foobar", + password_confirmation: "foobar", + terms_of_service: true, + instruments: @instruments, + musician: true, + location: @loca, + signup_confirm_url: "http://localhost:3000/confirm", + gift_card: '') + user.errors.any?.should be_true + user.errors["gift_card"].should eq(["not found"]) + user.gifted_jamtracks.should eq(0) + gift_card.reload + gift_card.user.should be_nil + + user.gift_cards.length.should eq(0) + end + + it "will fail if used gift card" do + gift_card.user = FactoryGirl.create(:user) + + user = @user_manager.signup(remote_ip: "1.2.3.4", + first_name: "bob", + last_name: "smith", + email: "giftcard2@jamkazam.com", + password: "foobar", + password_confirmation: "foobar", + terms_of_service: true, + instruments: @instruments, + musician: true, + location: @loca, + signup_confirm_url: "http://localhost:3000/confirm", + gift_card: '') + user.errors.any?.should be_true + user.errors["gift_card"].should eq(["not found"]) + user.gifted_jamtracks.should eq(0) + gift_card.reload + gift_card.user.should be_nil + + user.gift_cards.length.should eq(0) + end + end end # test diff --git a/web/spec/requests/active_music_sessions_api_spec.rb b/web/spec/requests/active_music_sessions_api_spec.rb index af4f9a5b6..8624110c0 100755 --- a/web/spec/requests/active_music_sessions_api_spec.rb +++ b/web/spec/requests/active_music_sessions_api_spec.rb @@ -627,7 +627,7 @@ describe "Active Music Session API ", :type => :api do music_session = JSON.parse(last_response.body)[0] # start a recording - post "/api/recordings/start", {:format => :json, :music_session_id => music_session['id'] }.to_json, "CONTENT_TYPE" => 'application/json' + post "/api/recordings/start", {:format => :json, :music_session_id => music_session['id'], record_video:false }.to_json, "CONTENT_TYPE" => 'application/json' last_response.status.should eql(201) # user 2 should not be able to join From e8cb39969232beb3efeed0c01b99974b88fddb77 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 13 Nov 2015 10:00:46 -0600 Subject: [PATCH 04/36] * fix some tests --- .../JamTrackLandingScreen.js.jsx.coffee | 2 +- web/app/assets/javascripts/recordingModel.js | 11 +++++++++++ web/spec/features/individual_jamtrack_spec.rb | 2 -- web/spec/features/jamtrack_landing_spec.rb | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee index d1344d0ca..46a5b272c 100644 --- a/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/JamTrackLandingScreen.js.jsx.coffee @@ -19,7 +19,7 @@ rest = context.JK.Rest() render: () -> howTo = null - if @state.user?.purchased_jamtracks_count == 0 && @state.user?.has_redeemable_jamtrack + if @user?.purchased_jamtracks_count == 0 && @user?.has_redeemable_jamtrack howTo = `
    diff --git a/web/app/assets/javascripts/recordingModel.js b/web/app/assets/javascripts/recordingModel.js index 57d9eaf7c..d925216ee 100644 --- a/web/app/assets/javascripts/recordingModel.js +++ b/web/app/assets/javascripts/recordingModel.js @@ -273,6 +273,7 @@ function handleRecordingStopped(recordingId, result) { if(recordingId == "video") { + // comes from VideoRecordingStopped return; } @@ -324,6 +325,16 @@ function handleRecordingAborted(recordingId, result) { if(recordingId == "video") { + /** + // comes from AbortedVideoRecording + recordingId = result; + if (arguments.length == 2) { + result = arguments[2] + } + logger.debug("video recording aborted", result) + context.JK.Banner.showAlert("Video has stopped recording. Audio is still recording...") + context.RecordingActions.stopRecording() + */ return; } diff --git a/web/spec/features/individual_jamtrack_spec.rb b/web/spec/features/individual_jamtrack_spec.rb index e914e4454..05ba964e8 100644 --- a/web/spec/features/individual_jamtrack_spec.rb +++ b/web/spec/features/individual_jamtrack_spec.rb @@ -94,8 +94,6 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description) end end - find('a.cta-free-jamtrack').trigger(:click) - find('a.browse-all')['href'].should eq("/client?search=#/jamtrack/search") find('button.cta-button').trigger(:click) find('.browse-jamtracks', text: 'search jamtracks') diff --git a/web/spec/features/jamtrack_landing_spec.rb b/web/spec/features/jamtrack_landing_spec.rb index b568808c1..4fa6abdae 100644 --- a/web/spec/features/jamtrack_landing_spec.rb +++ b/web/spec/features/jamtrack_landing_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe "JamTrack Landing", :js => true, :type => :feature, :capybara_feature => true do - let(:user) { FactoryGirl.create(:user, free_jamtracks: 1) } + let(:user) { FactoryGirl.create(:user, has_redeemable_jamtrack: true) } let(:jt_us) { FactoryGirl.create(:jam_track, :name=>'jt_us', sales_region: 'United States', make_track: true, original_artist: "foobar") } let(:jt_ww) { FactoryGirl.create(:jam_track, :name=>'jt_ww', sales_region: 'Worldwide', make_track: true, original_artist: "barfoo") } let(:jt_rock) { FactoryGirl.create(:jam_track, :name=>'jt_rock', genres: [JamRuby::Genre.find('avante-garde')], make_track: true, original_artist: "badfood") } From efb4214e9a9ef77a0d4cd06eb7fa4fa4a8ee5f37 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 13 Nov 2015 10:48:39 -0600 Subject: [PATCH 05/36] * fix path in admin gift card upload --- admin/app/admin/gift_card_upload.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/app/admin/gift_card_upload.rb b/admin/app/admin/gift_card_upload.rb index 19f1e2df9..87e69850e 100644 --- a/admin/app/admin/gift_card_upload.rb +++ b/admin/app/admin/gift_card_upload.rb @@ -23,7 +23,7 @@ ActiveAdmin.register_page "Giftcarduploads" do gift_card.save! end - redirect_to admin_giftcards_path, :notice => "Created #{array_of_arrays.length} gift cards!" + redirect_to admin_giftcarduploads_path, :notice => "Created #{array_of_arrays.length} gift cards!" end end From 38a64a3ddee1c255c5b42d14e05974949878b814 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 16 Nov 2015 20:46:44 -0600 Subject: [PATCH 06/36] * VRFS-3711 - push video button brings to front --- .../react-components/stores/VideoStore.js.coffee | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee b/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee index 3cca5720e..ef1b19f8d 100644 --- a/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee @@ -140,6 +140,11 @@ BackendToFrontendFPS = { @state.videoShared = @videoShared this.trigger(@state) + onBringVideoToFront: -> + if @videoShared + @logger.debug("BringVideoToFront") + context.jamClient.BringVideoWindowToFront(); + onTestVideo: () -> return unless context.jamClient.testVideoRender? @@ -150,7 +155,7 @@ BackendToFrontendFPS = { onToggleVideo: () -> if @videoShared - @onStopVideo() + @onBringVideoToFront() else @onStartVideo() From cd6bf55a1afaa5f76ed3c2270ef392ce254a6d6d Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 17 Nov 2015 05:28:02 -0600 Subject: [PATCH 07/36] * VRFS-3719 - dont show update dialog more than one at a time --- web/app/assets/javascripts/clientUpdate.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/web/app/assets/javascripts/clientUpdate.js b/web/app/assets/javascripts/clientUpdate.js index ca5bdd428..dd3142e76 100644 --- a/web/app/assets/javascripts/clientUpdate.js +++ b/web/app/assets/javascripts/clientUpdate.js @@ -61,7 +61,10 @@ }) } - app.layout.showDialog('client-update') + if(!app.layout.isDialogShowing('client-update')) { + app.layout.showDialog('client-update') + } + //$('#client_update').show() //$('#client_update_overlay').show() } @@ -192,6 +195,11 @@ function runCheck(product, version, uri, size, currentVersion) { + if (app.clientUpdating) { + logger.debug("client is already updating; skipping") + return + } + if(currentVersion === undefined) { currentVersion = context.jamClient.ClientUpdateVersion(); @@ -302,7 +310,7 @@ $(document).on(EVENTS.SESSION_ENDED, function(e, data){ if(app.clientUpdating) { - updateClientUpdateDialog("update-start", { uri: updateUri }) + updateClientUpdateDialog("update-start", { uri: updateUri}) } }); From d4cdab8d6be78d2ad68b991343b394348cafc703 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 17 Nov 2015 06:26:37 -0600 Subject: [PATCH 08/36] * VRFS-3715 - filepicker fixed by taking out signature and policy --- web/app/assets/javascripts/accounts_profile_avatar.js | 5 ++--- web/app/views/clients/_account_profile_avatar.html.erb | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/web/app/assets/javascripts/accounts_profile_avatar.js b/web/app/assets/javascripts/accounts_profile_avatar.js index 63d1aca1f..2ab8858cd 100644 --- a/web/app/assets/javascripts/accounts_profile_avatar.js +++ b/web/app/assets/javascripts/accounts_profile_avatar.js @@ -40,8 +40,8 @@ var template= context.JK.fillTemplate($('#template-account-profile-avatar').html(), { "fp_apikey" : gon.fp_apikey, "data-fp-store-path" : createStorePath(userDetail) + createOriginalFilename(userDetail), - "fp_policy" : filepicker_policy.policy, - "fp_signature" : filepicker_policy.signature + "fp_policy" : encodeURIComponent(filepicker_policy.policy), + "fp_signature" : encodeURIComponent(filepicker_policy.signature) }); $('#account-profile-avatar-content-scroller').html(template); @@ -202,7 +202,6 @@ renderNoAvatar(avatarSpace); } else { - rest.getFilepickerPolicy({handle: fpfile.url}) .done(function(filepickerPolicy) { avatarSpace.children().remove(); diff --git a/web/app/views/clients/_account_profile_avatar.html.erb b/web/app/views/clients/_account_profile_avatar.html.erb index c9dc2eb49..fb53c0c41 100644 --- a/web/app/views/clients/_account_profile_avatar.html.erb +++ b/web/app/views/clients/_account_profile_avatar.html.erb @@ -44,5 +44,5 @@ From d3d2fbb210dd0d61310be0590331d88849374220 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 18 Nov 2015 15:22:06 -0600 Subject: [PATCH 09/36] * generate jmep automatically --- admin/config/initializers/jam_tracks.rb | 23 --- ruby/lib/jam_ruby/jam_track_importer.rb | 198 ++++++++++++++++++------ ruby/lib/jam_ruby/models/jam_track.rb | 28 ++++ web/lib/tasks/jam_tracks.rake | 5 + 4 files changed, 186 insertions(+), 68 deletions(-) diff --git a/admin/config/initializers/jam_tracks.rb b/admin/config/initializers/jam_tracks.rb index 33efd995c..60537c467 100644 --- a/admin/config/initializers/jam_tracks.rb +++ b/admin/config/initializers/jam_tracks.rb @@ -2,28 +2,5 @@ class JamRuby::JamTrack # add a custom validation - attr_accessor :preview_generate_error - before_save :jmep_json_generate - validate :jmep_text_validate - - def jmep_text_validate - begin - JmepManager.execute(self.jmep_text) - rescue ArgumentError => err - errors.add(:jmep_text, err.to_s) - end - end - - def jmep_json_generate - self.licensor_id = nil if self.licensor_id == '' - self.jmep_json = nil if self.jmep_json == '' - self.time_signature = nil if self.time_signature == '' - - begin - self[:jmep_json] = JmepManager.execute(self.jmep_text) - rescue ArgumentError => err - #errors.add(:jmep_text, err.to_s) - end - end end diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index a92aca61b..4fe6d3d5a 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -33,6 +33,123 @@ module JamRuby self.detail = detail end + def generate_jmep(jam_track) + if jam_track.jmep_text + finish('success', 'jmep already exists') + return + else + # we need to download the click track, if it exists. + Dir.mktmpdir do |tmp_dir| + + master_track = jam_track.master_track + + click_track = jam_track.click_track + + if master_track.nil? + finish('no_master_track', nil) + return + end + + master_track_file = File.join(tmp_dir, File.basename(master_track[:url_48])) + begin + JamTrackImporter.private_s3_manager.download(master_track.url_by_sample_rate(44), master_track_file) + rescue Exception => e + @@log.error("unable to download master track") + finish("no-download-master", master_track.url_by_sample_rate(44)) + return + end + + if click_track + click_track_file = File.join(tmp_dir, File.basename(click_track[:url])) + JamTrackImporter.song_storage_manager.download(click_track[:url], click_track_file) + else + # we'll use the master for click analysis. not ideal, but would work + click_track_file = master_track_file + end + + start_time = determine_start_time(master_track_file, tmp_dir, master_track[:url]) + + # bpm comes from git clone http://www.pogo.org.uk/~mark/bpm-tools.git + + sox="sox #{Shellwords.escape(click_track_file)} -t raw -r 44100 -e float -c 1 - | bpm" + cmd = "bash -c #{Shellwords.escape(sox)}" + @@log.debug("executing cmd #{cmd}") + output=`#{cmd}` + + result_code = $?.to_i + + if result_code == 0 + bpm = output.to_f + + @@log.debug("bpm: #{bpm} start_time: #{start_time}") + + metro_fin = "#{Time.at(start_time).utc.strftime("%H:%M:%S")}:#{((start_time - start_time.to_i) * 1000).round}" + + jmep = "" + jmep << "# created via code using bpm/silence detection (bpm:#{bpm})\r\n" + jmep << "prelude@10.0 #number of seconds before music starts\r\n" + jmep << "metro_fin@#{metro_fin} bpm=#{bpm.round}, ticks=4, pmode=stream, name=Beep, play=mono" + + @@log.info("jmep generated: #{jmep}") + + jam_track.jmep_text = jmep + if jam_track.save + + else + @@log.error("jamtrack did not save. #{jam_track.errors.inspect}") + finish("no-save", "jamtrack did not save. #{jam_track.errors.inspect}") + return + end + else + finish("bpm-fail", "failed to run bpm: #{output}") + return + end + end + end + end + + + + def determine_start_time(audio_file, tmp_dir, original_filename) + burp_gaps = ['0.3', '0.2', '0.1', '0.05'] + + out_wav = File.join(tmp_dir, 'stripped.wav') + total_time_command = "soxi -D \"#{audio_file}\"" + total_time = `#{total_time_command}`.to_f + + result_code = -20 + stripped_time = total_time # default to the case where we just start the preview at the beginning + + burp_gaps.each do |gap| + command_strip_lead_silence = "sox \"#{audio_file}\" \"#{out_wav}\" silence 1 #{gap} 1%" + + @@log.debug("stripping silence: " + command_strip_lead_silence) + + output = `#{command_strip_lead_silence}` + + result_code = $?.to_i + + if result_code == 0 + stripped_time_command = "soxi -D \"#{out_wav}\"" + stripped_time_test = `#{stripped_time_command}`.to_f + + if stripped_time_test < 1 # meaning a very short duration + @@log.warn("could not determine the start of non-silence. assuming beginning") + stripped_time = total_time # default to the case where we just start the preview at the beginning + else + stripped_time = stripped_time_test # accept the measured time of the stripped file and move on by using break + break + end + else + @@log.warn("unable to determine silence for jam_track #{original_filename}, #{output}") + stripped_time = total_time # default to the case where we just start the preview at the beginning + end + end + + preview_start_time = total_time - stripped_time + + preview_start_time + end def synchronize_preview_dev(jam_track) jam_track.jam_track_tracks.each do |track| @@ -1341,58 +1458,15 @@ module JamRuby def synchronize_track_preview(track, tmp_dir, ogg_44100) - out_wav = File.join(tmp_dir, 'stripped.wav') - - burp_gaps = ['0.3', '0.2', '0.1', '0.05'] - - total_time_command = "soxi -D \"#{ogg_44100}\"" - total_time = `#{total_time_command}`.to_f - - result_code = -20 - stripped_time = total_time # default to the case where we just start the preview at the beginning - - burp_gaps.each do |gap| - command_strip_lead_silence = "sox \"#{ogg_44100}\" \"#{out_wav}\" silence 1 #{gap} 1%" - - @@log.debug("stripping silence: " + command_strip_lead_silence) - - output = `#{command_strip_lead_silence}` - - result_code = $?.to_i - - if result_code == 0 - stripped_time_command = "soxi -D \"#{out_wav}\"" - stripped_time_test = `#{stripped_time_command}`.to_f - - if stripped_time_test < 1 # meaning a very short duration - @@log.warn("could not determine the start of non-silencea. assuming beginning") - stripped_time = total_time # default to the case where we just start the preview at the beginning - else - stripped_time = stripped_time_test # accept the measured time of the stripped file and move on by using break - break - end - else - @@log.warn("unable to determine silence for jam_track #{track.original_filename}, #{output}") - stripped_time = total_time # default to the case where we just start the preview at the beginning - end - - end - - preview_start_time = total_time - stripped_time + preview_start_time = determine_start_time(ogg_44100, tmp_dir, track.original_filename) # this is in seconds; convert to integer milliseconds preview_start_time = (preview_start_time * 1000).to_i - preview_start_time = nil if preview_start_time < 0 + preview_start_time = 0 if preview_start_time < 0 track.preview_start_time = preview_start_time - if track.preview_start_time - @@log.debug("determined track start time to be #{track.preview_start_time}") - else - @@log.debug("determined track start time to be #{track.preview_start_time}") - end - track.process_preview(ogg_44100, tmp_dir) if track.preview_start_time if track.preview_generate_error @@ -1915,6 +1989,39 @@ module JamRuby end end + def generate_jmep(jam_track) + importer = JamTrackImporter.new + importer.name = jam_track.name + importer.generate_jmep(jam_track) + + importer + end + def generate_jmeps + importers = [] + + JamTrack.all.each do |jam_track| + importers << generate_jmep(jam_track) + end + + @@log.info("SUMMARY") + @@log.info("-------") + importers.each do |importer| + if importer + if importer.reason == "success" + @@log.info("#{importer.name} #{importer.reason}") + else + @@log.error("#{importer.name} failed to generate jmep.") + @@log.error("#{importer.name} reason=#{importer.reason}") + @@log.error("#{importer.name} detail=#{importer.detail}") + end + else + @@log.error("NULL IMPORTER") + end + + end + end + + def synchronize_previews importers = [] @@ -2395,3 +2502,4 @@ module JamRuby end end end + diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index b361d3fe5..611cdc029 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -433,6 +433,10 @@ module JamRuby end + def click_track + JamTrackFile.where(jam_track_id: self.id).where(file_type: 'ClickWav').first + end + def master_track JamTrackTrack.where(jam_track_id: self.id).where(track_type: 'Master').first end @@ -471,5 +475,29 @@ module JamRuby "#{self.name} (#{self.original_artist})" end + attr_accessor :preview_generate_error + + before_save :jmep_json_generate + validate :jmep_text_validate + + def jmep_text_validate + begin + JmepManager.execute(self.jmep_text) + rescue ArgumentError => err + errors.add(:jmep_text, err.to_s) + end + end + + def jmep_json_generate + self.licensor_id = nil if self.licensor_id == '' + self.jmep_json = nil if self.jmep_json == '' + self.time_signature = nil if self.time_signature == '' + + begin + self[:jmep_json] = JmepManager.execute(self.jmep_text) + rescue ArgumentError => err + #errors.add(:jmep_text, err.to_s) + end + end end end diff --git a/web/lib/tasks/jam_tracks.rake b/web/lib/tasks/jam_tracks.rake index bbabe08e5..68fcf835d 100644 --- a/web/lib/tasks/jam_tracks.rake +++ b/web/lib/tasks/jam_tracks.rake @@ -1,5 +1,10 @@ namespace :jam_tracks do + task generate_jmep: :environment do |task, args| + JamTrackImporter.storage_format = 'Tency' + JamTrackImporter.generate_jmeps + end + task dry_run: :environment do |task, args| JamTrackImporter.dry_run end From 086f555bbfe75e9ffc828d3881435ecd21f281ec Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 18 Nov 2015 15:42:14 -0600 Subject: [PATCH 10/36] * add finish --- ruby/lib/jam_ruby/jam_track_importer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 4fe6d3d5a..d2251b519 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -94,7 +94,7 @@ module JamRuby jam_track.jmep_text = jmep if jam_track.save - + finish('success', nil) else @@log.error("jamtrack did not save. #{jam_track.errors.inspect}") finish("no-save", "jamtrack did not save. #{jam_track.errors.inspect}") From 4aa5842deb3fb058c6788e7467e05fc148834a8a Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 18 Nov 2015 15:59:12 -0600 Subject: [PATCH 11/36] * change to 8 ticks --- ruby/lib/jam_ruby/jam_track_importer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index d2251b519..1646708d7 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -88,7 +88,7 @@ module JamRuby jmep = "" jmep << "# created via code using bpm/silence detection (bpm:#{bpm})\r\n" jmep << "prelude@10.0 #number of seconds before music starts\r\n" - jmep << "metro_fin@#{metro_fin} bpm=#{bpm.round}, ticks=4, pmode=stream, name=Beep, play=mono" + jmep << "metro_fin@#{metro_fin} bpm=#{bpm.round}, ticks=8, pmode=stream, name=Beep, play=mono" @@log.info("jmep generated: #{jmep}") From 86b7327eca68b869d1fad637dffb844d053c329c Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 18 Nov 2015 20:06:30 -0600 Subject: [PATCH 12/36] * unpin fog --- admin/Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/Gemfile b/admin/Gemfile index 756225a1a..1a1a7c248 100644 --- a/admin/Gemfile +++ b/admin/Gemfile @@ -44,7 +44,7 @@ gem 'rails3-jquery-autocomplete' gem 'activeadmin' #, github: 'activeadmin', branch: '0-6-stable' gem 'mime-types', '1.25' gem 'meta_search' -gem 'fog', "~> 1.32.0" +gem 'fog' gem 'unf', '0.1.3' #optional fog dependency gem 'country-select' gem 'aasm', '3.0.16' From 2a74d7ec9a5e42141a3e442d4b5dc0ff01e3cdc8 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Thu, 19 Nov 2015 11:22:41 -0600 Subject: [PATCH 13/36] * record crash dump description --- db/manifest | 1 + db/up/add_description_to_crash_dumps.sql | 1 + ruby/lib/jam_ruby/jam_track_importer.rb | 6 +++--- web/app/controllers/api_users_controller.rb | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 db/up/add_description_to_crash_dumps.sql diff --git a/db/manifest b/db/manifest index bc0c3e7c2..d9e1fb8b2 100755 --- a/db/manifest +++ b/db/manifest @@ -311,3 +311,4 @@ affiliate_partner_rate.sql track_downloads.sql jam_track_lang_idx.sql giftcard.sql +add_description_to_crash_dumps.sql \ No newline at end of file diff --git a/db/up/add_description_to_crash_dumps.sql b/db/up/add_description_to_crash_dumps.sql new file mode 100644 index 000000000..e08540d85 --- /dev/null +++ b/db/up/add_description_to_crash_dumps.sql @@ -0,0 +1 @@ +ALTER TABLE crash_dumps ADD COLUMN description VARCHAR(20000); \ No newline at end of file diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 1646708d7..0b56d49d7 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -60,8 +60,8 @@ module JamRuby end if click_track - click_track_file = File.join(tmp_dir, File.basename(click_track[:url])) - JamTrackImporter.song_storage_manager.download(click_track[:url], click_track_file) + click_track_file = File.join(tmp_dir, File.basename(click_track[:original_filename])) + JamTrackImporter.song_storage_manager.download(click_track[:original_filename], click_track_file) else # we'll use the master for click analysis. not ideal, but would work click_track_file = master_track_file @@ -88,7 +88,7 @@ module JamRuby jmep = "" jmep << "# created via code using bpm/silence detection (bpm:#{bpm})\r\n" jmep << "prelude@10.0 #number of seconds before music starts\r\n" - jmep << "metro_fin@#{metro_fin} bpm=#{bpm.round}, ticks=8, pmode=stream, name=Beep, play=mono" + jmep << "metro_fin@#{metro_fin} bpm=#{bpm}, ticks=8, pmode=stream, name=Beep, play=mono" @@log.info("jmep generated: #{jmep}") diff --git a/web/app/controllers/api_users_controller.rb b/web/app/controllers/api_users_controller.rb index 05eed5887..e664e4697 100644 --- a/web/app/controllers/api_users_controller.rb +++ b/web/app/controllers/api_users_controller.rb @@ -599,6 +599,7 @@ ApiUsersController < ApiController @dump.user_id = params[:user_id] @dump.session_id = params[:session_id] @dump.timestamp = params[:timestamp] + @dump.description = params[:description] unless @dump.save # There are at least some conditions on valid dumps (need client_type) From 1da8cfd4a1f523347900aea39de86dc0eaed3329 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Thu, 19 Nov 2015 16:58:55 -0600 Subject: [PATCH 14/36] * support abort signal --- web/app/assets/javascripts/recordingModel.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/web/app/assets/javascripts/recordingModel.js b/web/app/assets/javascripts/recordingModel.js index d925216ee..61114fdb8 100644 --- a/web/app/assets/javascripts/recordingModel.js +++ b/web/app/assets/javascripts/recordingModel.js @@ -325,16 +325,16 @@ function handleRecordingAborted(recordingId, result) { if(recordingId == "video") { - /** + // comes from AbortedVideoRecording recordingId = result; if (arguments.length == 2) { result = arguments[2] } logger.debug("video recording aborted", result) - context.JK.Banner.showAlert("Video has stopped recording. Audio is still recording...") - context.RecordingActions.stopRecording() - */ + context.JK.Banner.showAlert("Video has stopped recording. Audio is still recording.") + //context.RecordingActions.stopRecording() + return; } From 184bf2ba4d17d7d8986643d681b58e30e29fa83b Mon Sep 17 00:00:00 2001 From: Seth Call Date: Thu, 19 Nov 2015 22:07:38 -0600 Subject: [PATCH 15/36] * merge --- ruby/lib/jam_ruby/jam_track_importer.rb | 64 ++++++++++++++++--- web/app/assets/javascripts/backend_alerts.js | 3 + web/app/assets/javascripts/globals.js | 3 +- .../actions/ConfigureTracksActions.js.coffee | 22 +++++++ web/lib/tasks/jam_tracks.rake | 10 +++ 5 files changed, 92 insertions(+), 10 deletions(-) create mode 100644 web/app/assets/javascripts/react-components/actions/ConfigureTracksActions.js.coffee diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 0b56d49d7..702c6200d 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -29,6 +29,7 @@ module JamRuby end def finish(reason, detail) + @@log.info("JamTrackImporter:#{self.name} #{reason}") self.reason = reason self.detail = detail end @@ -348,6 +349,7 @@ module JamRuby original_artist = parsed_metalocation[1] name = parsed_metalocation[2] + JamTrackImporter.summaries[:unique_artists] << original_artist success = dry_run_metadata(metadata, original_artist, name) @@ -386,6 +388,11 @@ module JamRuby @storage_format == 'Tency' end + def is_tim_tracks_storage? + assert_storage_set + @storage_format == 'TimTracks' + end + def assert_storage_set raise "no storage_format set" if @storage_format.nil? end @@ -393,7 +400,7 @@ module JamRuby def parse_metalocation(metalocation) # metalocation = mapped/4 Non Blondes - What's Up - 6475/meta.yml - if is_tency_storage? + if is_tency_storage? || is_tim_tracks_storage? suffix = '/meta.yml' @@ -422,15 +429,20 @@ module JamRuby return nil end - last_dash = metalocation.rindex('-') - if last_dash - song = metalocation[(first_dash+3)...last_dash].strip - bits << song + if is_tim_tracks_storage? + song = metalocation[(first_dash+3)..-1].strip else - finish("invalid_metalocation", "metalocation not valid #{metalocation}") - return nil + last_dash = metalocation.rindex('-') + if last_dash + song = metalocation[(first_dash+3)...last_dash].strip + bits << song + else + finish("invalid_metalocation", "metalocation not valid #{metalocation}") + return nil + end end + bits << 'meta.yml' bits else @@ -633,6 +645,9 @@ module JamRuby jam_track.vendor_id = metadata[:id] jam_track.licensor = JamTrackLicensor.find_by_name('Tency Music') #add_licensor_metadata('Tency Music', metalocation) + elsif is_tim_tracks_storage? + jam_track.vendor_id = metadata[:id] + jam_track.licensor = JamTrackLicensor.find_by_name('Tim Waurick') end else if !options[:resync_audio] @@ -781,7 +796,7 @@ module JamRuby instrument = 'other' part = 'Bouzouki' elsif potential_instrument == 'claps' || potential_instrument == 'hand claps' - instrument = 'computer' + instrument = 'other' part = 'Claps' else found_instrument = Instrument.find_by_id(potential_instrument) @@ -891,7 +906,6 @@ module JamRuby end end end - end @@ -1680,6 +1694,8 @@ module JamRuby def song_storage_manager if is_tency_storage? tency_s3_manager + elsif is_tim_tracks_storage? + tim_tracks_s3_manager else s3_manager end @@ -1693,6 +1709,10 @@ module JamRuby @tency_s3_manager ||= S3Manager.new('jamkazam-tency', APP_CONFIG.aws_access_key_id, APP_CONFIG.aws_secret_access_key) end + def tim_tracks_s3_manager + @tim_tracks_s3_manager ||= S3Manager.new('jamkazam-timtracks', APP_CONFIG.aws_access_key_id, APP_CONFIG.aws_secret_access_key) + end + def s3_manager @s3_manager ||= S3Manager.new(APP_CONFIG.aws_bucket_jamtracks, APP_CONFIG.aws_access_key_id, APP_CONFIG.aws_secret_access_key) end @@ -1731,10 +1751,32 @@ module JamRuby @storage_format == 'Tency' end + def is_tim_tracks_storage? + assert_storage_set + @storage_format == 'TimTracks' + end + def assert_storage_set raise "no storage_format set" if @storage_format.nil? end + def iterate_tim_tracks_song_storage(&blk) + count = 0 + song_storage_manager.list_directories('mapped').each do |song| + @@log.debug("searching through song directory '#{song}'") + + metalocation = "#{song}meta.yml" + + metadata = load_metalocation(metalocation) + + blk.call(metadata, metalocation) + + count += 1 + #break if count > 100 + + end + end + def iterate_tency_song_storage(&blk) count = 0 song_storage_manager.list_directories('mapped').each do |song| @@ -1774,6 +1816,10 @@ module JamRuby iterate_tency_song_storage do |metadata, metalocation| blk.call(metadata, metalocation) end + elsif is_tim_tracks_storage? + iterate_tim_tracks_song_storage do |metadata, metalocation| + blk.call(metadata, metalocation) + end else iterate_default_song_storage do |metadata, metalocation| blk.call(metadata, metalocation) diff --git a/web/app/assets/javascripts/backend_alerts.js b/web/app/assets/javascripts/backend_alerts.js index bf5b1993b..2bd2b3737 100644 --- a/web/app/assets/javascripts/backend_alerts.js +++ b/web/app/assets/javascripts/backend_alerts.js @@ -137,6 +137,9 @@ else if(type === ALERT_NAMES.VIDEO_WINDOW_CLOSED) { context.VideoActions.videoWindowClosed() } + else if (type === ALERT_NAMES.VST_CHANGED) { + context.ConfigureTracksActions.onVstChanged() + } else if((!context.JK.CurrentSessionModel || !context.JK.CurrentSessionModel.inSession()) && (ALERT_NAMES.INPUT_IO_RATE == type || ALERT_NAMES.INPUT_IO_JTR == type || ALERT_NAMES.OUTPUT_IO_RATE == type || ALERT_NAMES.OUTPUT_IO_JTR== type)) { // squelch these events if not in session diff --git a/web/app/assets/javascripts/globals.js b/web/app/assets/javascripts/globals.js index c085e548b..f5b06edef 100644 --- a/web/app/assets/javascripts/globals.js +++ b/web/app/assets/javascripts/globals.js @@ -126,7 +126,8 @@ RECORDING_DONE :48, //the recording writer thread is done VIDEO_WINDOW_OPENED :49, //video window opened VIDEO_WINDOW_CLOSED :50, - LAST_ALERT : 51 + VST_CHANGED: 51, // VST state changed + LAST_ALERT : 52 } // recreate eThresholdType enum from MixerDialog.h context.JK.ALERT_TYPES = { diff --git a/web/app/assets/javascripts/react-components/actions/ConfigureTracksActions.js.coffee b/web/app/assets/javascripts/react-components/actions/ConfigureTracksActions.js.coffee new file mode 100644 index 000000000..4a2890385 --- /dev/null +++ b/web/app/assets/javascripts/react-components/actions/ConfigureTracksActions.js.coffee @@ -0,0 +1,22 @@ +context = window + +@ConfigureTracksActions = Reflux.createActions({ + reset: {} + trySave: {} + midiScan: {} + vstScan: {} + vstScanComplete: {} + clearVsts: {} + cancelEdit: {} + deleteTrack: {} + updateOutputs: {} + showAddNewTrack: {} + showEditTrack: {} + showEditOutputs: {} + showVstSettings: {} + associateInputsWithTrack: {} + associateInstrumentWithTrack: {} + associateVSTWithTrack: {} + associateMIDIWithTrack: {} + desiredTrackType: {} +}) diff --git a/web/lib/tasks/jam_tracks.rake b/web/lib/tasks/jam_tracks.rake index 68fcf835d..3387df29f 100644 --- a/web/lib/tasks/jam_tracks.rake +++ b/web/lib/tasks/jam_tracks.rake @@ -14,6 +14,11 @@ namespace :jam_tracks do JamTrackImporter.dry_run end + task timtracks_dry_run: :environment do |task, args| + JamTrackImporter.storage_format = 'TimTracks' + JamTrackImporter.dry_run + end + task tency_create_masters: :environment do |task, args| JamTrackImporter.storage_format = 'Tency' JamTrackImporter.create_masters @@ -80,6 +85,11 @@ namespace :jam_tracks do JamTrackImporter.synchronize_all(skip_audio_upload:false) end + task sync_tim_tracks: :environment do |task, args| + JamTrackImporter.storage_format = 'TimTracks' + JamTrackImporter.synchronize_all(skip_audio_upload:false) + end + task tency_dups: :environment do |task, args| end From 51429e8b5a1839208a61cabecb55d9c96ef36c7b Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 20 Nov 2015 06:57:32 -0600 Subject: [PATCH 16/36] * import of timtracks working --- db/manifest | 3 +- db/up/acappella.sql | 2 + ruby/lib/jam_ruby/jam_track_importer.rb | 45 +++++----- ruby/lib/jam_ruby/models/jam_track.rb | 21 +++++ ruby/lib/jam_ruby/models/jam_track_file.rb | 11 ++- .../lib/jam_ruby/models/jam_track_licensor.rb | 2 +- ruby/lib/jam_ruby/models/jam_track_track.rb | 83 +++++++++++++------ web/app/assets/javascripts/globals.js | 3 +- 8 files changed, 120 insertions(+), 50 deletions(-) create mode 100644 db/up/acappella.sql diff --git a/db/manifest b/db/manifest index d9e1fb8b2..825013c73 100755 --- a/db/manifest +++ b/db/manifest @@ -311,4 +311,5 @@ affiliate_partner_rate.sql track_downloads.sql jam_track_lang_idx.sql giftcard.sql -add_description_to_crash_dumps.sql \ No newline at end of file +add_description_to_crash_dumps.sql +acappella.sql \ No newline at end of file diff --git a/db/up/acappella.sql b/db/up/acappella.sql new file mode 100644 index 000000000..cf17e052d --- /dev/null +++ b/db/up/acappella.sql @@ -0,0 +1,2 @@ +INSERT INTO genres (id, description) values ('acapella', 'A Capella'); +ALTER TABLE jam_track_licensors ADD COLUMN slug VARCHAR UNIQUE; diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 702c6200d..9f11806c5 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -431,7 +431,8 @@ module JamRuby if is_tim_tracks_storage? song = metalocation[(first_dash+3)..-1].strip - else + bits << song + elsif is_tency_storage? last_dash = metalocation.rindex('-') if last_dash song = metalocation[(first_dash+3)...last_dash].strip @@ -467,24 +468,14 @@ module JamRuby end end - # if you change this, it will (at least without some work )break development usage of jamtracks - def gen_plan_code(original_artist, name) - # remove all non-alphanumeric chars from artist as well as name - artist_code = original_artist.gsub(/[^0-9a-z]/i, '').downcase - name_code = name.gsub(/[^0-9a-z]/i, '').downcase - "jamtrack-#{artist_code[0...20]}-#{name_code}"[0...50] # make sure it's a max of 50 long - end - def dry_run_metadata(metadata, original_artist, name) self.name = metadata["name"] || name original_artist = metadata["original_artist"] || original_artist - plan_code = metadata["plan_code"] || gen_plan_code(original_artist, self.name) description = metadata["description"] @@log.debug("#{self.name} original_artist=#{original_artist}") - @@log.debug("#{self.name} plan_code=#{plan_code}") true end @@ -623,7 +614,6 @@ module JamRuby jam_track.year = metadata[:year] jam_track.genres = determine_genres(metadata) jam_track.language = determine_language(metadata) - jam_track.plan_code = metadata["plan_code"] || gen_plan_code(jam_track.original_artist, jam_track.name) jam_track.price = 1.99 jam_track.reproduction_royalty_amount = nil jam_track.reproduction_royalty = true @@ -636,19 +626,25 @@ module JamRuby jam_track.alternative_license_status = false jam_track.hfa_license_desired = true jam_track.server_fixation_date = Time.now - jam_track.slug = metadata['slug'] - unless jam_track.slug - jam_track.generate_slug - end - if is_tency_storage? jam_track.vendor_id = metadata[:id] - jam_track.licensor = JamTrackLicensor.find_by_name('Tency Music') + jam_track.licensor = JamTrackLicensor.find_by_name!('Tency Music') #add_licensor_metadata('Tency Music', metalocation) elsif is_tim_tracks_storage? jam_track.vendor_id = metadata[:id] - jam_track.licensor = JamTrackLicensor.find_by_name('Tim Waurick') + jam_track.licensor = JamTrackLicensor.find_by_name!('Tim Waurick') end + jam_track.slug = metadata['slug'] + if jam_track.slug.nil? + jam_track.generate_slug + end + jam_track.plan_code = metadata["plan_code"] + if jam_track.plan_code.nil? + jam_track.gen_plan_code + end + + + else if !options[:resync_audio] #@@log.debug("#{self.name} skipped because it already exists in database") @@ -798,6 +794,9 @@ module JamRuby elsif potential_instrument == 'claps' || potential_instrument == 'hand claps' instrument = 'other' part = 'Claps' + elsif potential_instrument == 'snaps' || potential_instrument == 'snap' + instrument = 'other' + part = 'Snaps' else found_instrument = Instrument.find_by_id(potential_instrument) if found_instrument @@ -1383,6 +1382,7 @@ module JamRuby next end + puts "track.original_audio_s3_path #{track.original_audio_s3_path}" basename = File.basename(track.original_audio_s3_path) s3_dirname = File.dirname(track.original_audio_s3_path) @@ -1393,6 +1393,7 @@ module JamRuby mp3_48000_s3_path = track.filename(mp3_48000_filename) aac_48000_s3_path = track.filename(aac_48000_filename) + puts "mp3_48000_s3_path #{mp3_48000_s3_path}" track.skip_uploader = true if skip_audio_upload @@ -2481,7 +2482,11 @@ module JamRuby else begin data = s3_manager.read_all(metalocation) - return YAML.load(data) + meta = YAML.load(data) + + if is_tim_tracks_storage? + meta[:genres] = ['acapella'] + end rescue AWS::S3::Errors::NoSuchKey return nil end diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 611cdc029..aea976d89 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -469,6 +469,27 @@ module JamRuby def generate_slug self.slug = sluggarize(original_artist) + '-' + sluggarize(name) + + if licensor + raise "no slug on licensor #{licensor.id}" if licensor.slug.nil? + self.slug << "-" + licensor.slug + end + end + + def gen_plan_code + # remove all non-alphanumeric chars from artist as well as name + artist_code = original_artist.gsub(/[^0-9a-z]/i, '').downcase + name_code = name.gsub(/[^0-9a-z]/i, '').downcase + self.plan_code = "jamtrack-#{artist_code[0...20]}-#{name_code}" + + if licensor + raise "no slug on licensor #{licensor.id}" if licensor.slug.nil? + self.plan_code << "-" + licensor.slug + end + + self.plan_code = self.plan_code[0...50] # make sure it's a max of 50 long + + end def to_s diff --git a/ruby/lib/jam_ruby/models/jam_track_file.rb b/ruby/lib/jam_ruby/models/jam_track_file.rb index e7c880165..e31a95ba2 100644 --- a/ruby/lib/jam_ruby/models/jam_track_file.rb +++ b/ruby/lib/jam_ruby/models/jam_track_file.rb @@ -27,9 +27,18 @@ module JamRuby "jam_track_files" end + def licensor_suffix + suffix = '' + if jam_track.licensor + raise "no licensor name" if jam_track.licensor.name.nil? + suffix = " - #{jam_track.licensor.name}" + end + suffix + end + # create name of the file def filename(original_name) - "#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}/#{original_name}" + "#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}#{licensor_suffix}/#{original_name}" end def manually_uploaded_filename diff --git a/ruby/lib/jam_ruby/models/jam_track_licensor.rb b/ruby/lib/jam_ruby/models/jam_track_licensor.rb index e06e292bc..776418159 100644 --- a/ruby/lib/jam_ruby/models/jam_track_licensor.rb +++ b/ruby/lib/jam_ruby/models/jam_track_licensor.rb @@ -4,7 +4,7 @@ module JamRuby table_name = 'jam_track_licensors' attr_accessible :name, :description, :attention, :address_line_1, :address_line_2, - :city, :state, :zip_code, :contact, :email, :phone, as: :admin + :city, :state, :zip_code, :contact, :email, :phone, :slug, as: :admin validates :name, presence: true, uniqueness: true, length: {maximum: 200} validates :description, length: {maximum: 1000} diff --git a/ruby/lib/jam_ruby/models/jam_track_track.rb b/ruby/lib/jam_ruby/models/jam_track_track.rb index 22e8f17f3..f1cf8d8e0 100644 --- a/ruby/lib/jam_ruby/models/jam_track_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track_track.rb @@ -41,9 +41,19 @@ module JamRuby "jam_track_tracks" end + + def licensor_suffix + suffix = '' + if jam_track.licensor + raise "no licensor name" if jam_track.licensor.name.nil? + suffix = " - #{jam_track.licensor.name}" + end + suffix + end + # create name of the file def filename(original_name) - "#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}/#{original_name}" + "#{store_dir}/#{jam_track.original_artist}/#{jam_track.name}#{licensor_suffix}/#{original_name}" end # create name of the preview file. @@ -54,7 +64,7 @@ module JamRuby end def preview_directory - "jam_track_previews/#{jam_track.original_artist}/#{jam_track.name}" + "jam_track_previews/#{jam_track.original_artist}/#{jam_track.name}#{licensor_suffix}" end def has_preview? @@ -196,6 +206,7 @@ module JamRuby uuid = SecureRandom.uuid output = File.join(tmp_dir, "#{uuid}.ogg") output_mp3 = File.join(tmp_dir, "#{uuid}.mp3") + output_aac = File.join(tmp_dir, "#{uuid}.aac") start = self.preview_start_time.to_f / 1000 stop = start + 20 @@ -225,35 +236,55 @@ module JamRuby @@log.debug("fail #{result_code}") @preview_generate_error = "unable to execute mp3 convert command #{convert_output}" else - ogg_digest = ::Digest::MD5.file(output) - mp3_digest = ::Digest::MD5.file(output_mp3) - self["preview_md5"] = ogg_md5 = ogg_digest.hexdigest - self["preview_mp3_md5"] = mp3_md5 = mp3_digest.hexdigest - @@log.debug("uploading ogg preview to #{self.preview_filename('ogg')}") - s3_public_manager.upload(self.preview_filename(ogg_md5, 'ogg'), output, content_type: 'audio/ogg', content_md5: ogg_digest.base64digest) - @@log.debug("uploading mp3 preview to #{self.preview_filename('mp3')}") - s3_public_manager.upload(self.preview_filename(mp3_md5, 'mp3'), output_mp3, content_type: 'audio/mpeg', content_md5: mp3_digest.base64digest) + convert_aac_cmd = "#{APP_CONFIG.ffmpeg_path} -i \"#{output}\" -c:a libfdk_aac -b:a 192k \"#{output_aac}\"" + @@log.debug("converting to aac using: " + convert_aac_cmd) - self.skip_uploader = true + convert_output = `#{convert_aac_cmd}` - original_ogg_preview_url = self["preview_url"] - original_mp3_preview_url = self["preview_mp3_url"] + result_code = $?.to_i - # and finally update the JamTrackTrack with the new info - self["preview_url"] = self.preview_filename(ogg_md5, 'ogg') - self["preview_length"] = File.new(output).size - # and finally update the JamTrackTrack with the new info - self["preview_mp3_url"] = self.preview_filename(mp3_md5, 'mp3') - self["preview_mp3_length"] = File.new(output_mp3).size - self.save! + if result_code != 0 + @@log.debug("fail #{result_code}") + @preview_generate_error = "unable to execute aac convert command #{convert_output}" + else - # if all that worked, now delete old previews, if present - begin - s3_public_manager.delete(original_ogg_preview_url) if original_ogg_preview_url && original_ogg_preview_url != self["preview_url"] - s3_public_manager.delete(original_mp3_preview_url) if original_mp3_preview_url && original_mp3_preview_url != track["preview_mp3_url"] - rescue - puts "UNABLE TO CLEANUP OLD PREVIEW URL" + ogg_digest = ::Digest::MD5.file(output) + mp3_digest = ::Digest::MD5.file(output_mp3) + aac_digest = ::Digest::MD5.file(output_aac) + self["preview_md5"] = ogg_md5 = ogg_digest.hexdigest + self["preview_mp3_md5"] = mp3_md5 = mp3_digest.hexdigest + self["preview_aac_md5"] = aac_md5 = mp3_digest.hexdigest + + @@log.debug("uploading ogg preview to #{self.preview_filename('ogg')}") + s3_public_manager.upload(self.preview_filename(ogg_md5, 'ogg'), output, content_type: 'audio/ogg', content_md5: ogg_digest.base64digest) + @@log.debug("uploading mp3 preview to #{self.preview_filename('mp3')}") + s3_public_manager.upload(self.preview_filename(mp3_md5, 'mp3'), output_mp3, content_type: 'audio/mpeg', content_md5: mp3_digest.base64digest) + @@log.debug("uploading aac preview to #{self.preview_filename('aac')}") + s3_public_manager.upload(self.preview_filename(aac_md5, 'aac'), output_aac, content_type: 'audio/aac', content_md5: aac_digest.base64digest) + + self.skip_uploader = true + + original_ogg_preview_url = self["preview_url"] + original_mp3_preview_url = self["preview_mp3_url"] + original_aac_preview_url = self["preview_aac_url"] + + self["preview_url"] = self.preview_filename(ogg_md5, 'ogg') + self["preview_length"] = File.new(output).size + self["preview_mp3_url"] = self.preview_filename(mp3_md5, 'mp3') + self["preview_mp3_length"] = File.new(output_mp3).size + self["preview_aac_url"] = self.preview_filename(aac_md5, 'aac') + self["preview_aac_length"] = File.new(output_aac).size + self.save! + + # if all that worked, now delete old previews, if present + begin + s3_public_manager.delete(original_ogg_preview_url) if original_ogg_preview_url && original_ogg_preview_url != self["preview_url"] + s3_public_manager.delete(original_mp3_preview_url) if original_mp3_preview_url && original_mp3_preview_url != track["preview_mp3_url"] + s3_public_manager.delete(original_aac_preview_url) if original_aac_preview_url && original_aac_preview_url != track["preview_aac_url"] + rescue + puts "UNABLE TO CLEANUP OLD PREVIEW URL" + end end end diff --git a/web/app/assets/javascripts/globals.js b/web/app/assets/javascripts/globals.js index f5b06edef..8c5895a7f 100644 --- a/web/app/assets/javascripts/globals.js +++ b/web/app/assets/javascripts/globals.js @@ -191,7 +191,8 @@ 48: {"title": "", "message": ""}, // RECORDING_DONE 49: {"title": "", "message": ""}, // VIDEO_WINDOW_OPENED 50: {"title": "", "message": ""}, // VIDEO_WINDOW_CLOSED - 51: {"title": "", "message": ""} // LAST_ALERT + 51: {"title": "", "message": ""}, // VST_CHANGED + 52: {"title": "", "message": ""} // LAST_ALERT }; // add the alert's name to the ALERT_TYPES structure From c32991252717f9b6328379684fc24951475933a2 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 20 Nov 2015 07:07:56 -0600 Subject: [PATCH 17/36] *remove AAC generation warning --- ruby/lib/jam_ruby/models/jam_track_track.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/ruby/lib/jam_ruby/models/jam_track_track.rb b/ruby/lib/jam_ruby/models/jam_track_track.rb index f1cf8d8e0..78ba8da47 100644 --- a/ruby/lib/jam_ruby/models/jam_track_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track_track.rb @@ -202,7 +202,6 @@ module JamRuby # input is the original ogg file for the track. tmp_dir is where this code can safely generate output stuff and have it cleaned up later def process_preview(input, tmp_dir) - raise "Does not include AAC generation. Must be updated before used." uuid = SecureRandom.uuid output = File.join(tmp_dir, "#{uuid}.ogg") output_mp3 = File.join(tmp_dir, "#{uuid}.mp3") From 049a90445bfe5ce141f87bac1042f9e9045e81e5 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 20 Nov 2015 08:39:01 -0600 Subject: [PATCH 18/36] * return meta --- ruby/lib/jam_ruby/jam_track_importer.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 9f11806c5..e310ee4f1 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -2487,6 +2487,7 @@ module JamRuby if is_tim_tracks_storage? meta[:genres] = ['acapella'] end + meta rescue AWS::S3::Errors::NoSuchKey return nil end From 826f53ce8433debe9af9eb895d129c9b2fe2e987 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 20 Nov 2015 10:07:18 -0600 Subject: [PATCH 19/36] * add in more onboarding helpers --- admin/app/admin/jam_tracks.rb | 3 ++- admin/app/views/admin/jam_tracks/_form.html.slim | 1 + ruby/lib/jam_ruby/jam_track_importer.rb | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/admin/app/admin/jam_tracks.rb b/admin/app/admin/jam_tracks.rb index 534b65903..4a039e32f 100644 --- a/admin/app/admin/jam_tracks.rb +++ b/admin/app/admin/jam_tracks.rb @@ -11,7 +11,8 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do scope("Default", default: true) { |scope| scope } scope("Onboarding TODO") { |scope| scope.where('onboarding_exceptions is not null') } scope("Tency Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tency Music'") } - scope("Onboarding TODO w/ Tency Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tency Music'").where('onboarding_exceptions is not null') } + scope("TimTracks Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tim Waurick'") } + # scope("Onboarding TODO w/ Tency Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tency Music'").where('onboarding_exceptions is not null') } form :partial => 'form' diff --git a/admin/app/views/admin/jam_tracks/_form.html.slim b/admin/app/views/admin/jam_tracks/_form.html.slim index 334cdc27e..ac038e5ca 100644 --- a/admin/app/views/admin/jam_tracks/_form.html.slim +++ b/admin/app/views/admin/jam_tracks/_form.html.slim @@ -13,6 +13,7 @@ = f.input :publisher, :input_html => { :rows=>1, :maxlength=>1000 } = f.input :licensor, collection: JamRuby::JamTrackLicensor.all, include_blank: true = f.input :genres + = f.input :year = f.input :duration, hint: 'this should rarely need editing because it comes from the import process' = f.input :sales_region, collection: JamRuby::JamTrack::SALES_REGION, include_blank: false = f.input :price, :required => true, :input_html => {type: 'numeric'} diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index e310ee4f1..5ef86e03d 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -35,7 +35,7 @@ module JamRuby end def generate_jmep(jam_track) - if jam_track.jmep_text + if !jam_track.blank? finish('success', 'jmep already exists') return else @@ -2043,6 +2043,7 @@ module JamRuby importer end + def generate_jmeps importers = [] From becf0a82b1c8f694b3d7aa4b489ba7d5c1a61559 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 24 Nov 2015 06:03:23 -0600 Subject: [PATCH 20/36] * updatin landing pages for JamBlaster on Kickstarter --- .../images/web/button_cta_jamblaster.png | Bin 6419 -> 20153 bytes .../assets/images/web/button_cta_jamtrack.png | Bin 5782 -> 17783 bytes .../assets/images/web/button_cta_platform.png | Bin 6184 -> 18389 bytes .../landings/product_jamblaster.html.slim | 65 +++--------------- web/app/views/users/home.html.slim | 2 +- 5 files changed, 9 insertions(+), 58 deletions(-) diff --git a/web/app/assets/images/web/button_cta_jamblaster.png b/web/app/assets/images/web/button_cta_jamblaster.png index 8650fe3225c8e0343066648884bea91a9e2133e3..aed1fab4ab3bd08082b54f0b377d7782ff501b30 100644 GIT binary patch literal 20153 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 literal 6419 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 oB&JuAmw5=Qo9#k`}Z;!Q$2b03J;b9smFU diff --git a/web/app/assets/images/web/button_cta_jamtrack.png b/web/app/assets/images/web/button_cta_jamtrack.png index 998d89b75dd8c4aa80bdfcc3d57d5ec2865d0c48..d8dd6e40c712e9cf53ac8b197fb26a9a52ee3169 100644 GIT binary patch literal 17783 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 RbqDQx^mO%eS?83{1OQU@(xU(X literal 5782 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 diff --git a/web/app/assets/images/web/button_cta_platform.png b/web/app/assets/images/web/button_cta_platform.png index dba8d499b65a0a4cd4f3518b7293fcc4467e8c19..a2ddf74ef9af452e8f93df480455414f126a423e 100644 GIT binary patch literal 18389 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 S#M}MTy9a6Lt5>Spg!~VjdT3q% diff --git a/web/app/views/landings/product_jamblaster.html.slim b/web/app/views/landings/product_jamblaster.html.slim index 8fd33fd5d..7c2cebe37 100644 --- a/web/app/views/landings/product_jamblaster.html.slim +++ b/web/app/views/landings/product_jamblaster.html.slim @@ -7,27 +7,23 @@ h1.product-headline | The JamBlaster by JamKazam p.product-description - | The JamBlaster is a device designed from the ground up to meet the unique requirements of real-time, online, distributed music performance. This device vastly extends the range/distance over which musicians can play together across the Internet. + | With your smartphone and a JamBlaster, you can: ul - li Radically reduces audio processing latency compared to today's industry standard computers and audio interfaces. - li Delivers plug-and-play ease of use, with no worries about hardware and software incompatibilities, driver problems, and arcane configurations. - li Combines both a computer and an audio interface into a single elegant device. - li Works with computers (even old crappy ones), tablets or smartphones. - li Works with your favorite recording software applications like Garage Band, Reaper, Pro Tools, etc. + li Play live in sync with other musicians from different locations over the Internet – great for rehearsals without travel or space, co-writing, or joining open jams for fun + li Make pro quality audio (and optionally video) recordings of yourself and others – both master mix and fully isolated stems + li Learn and play along with 4,000+ of your favorite songs – with the ability to solo or mute any part, slow down playback for practice, change pitch/key, and more + li Teach or take online music lessons that really work – unlike Skype and Google Hangouts, which suffer from very high latency and poor audio quality + li Broadcast live video performances with pro quality audio through YouTube to family, friends, and fans – either yourself or your band playing in one location, or your online distributed JamKazam sessions .column h1 See What You Can Do With The JamBlaster .video-wrapper .video-container - iframe src="//www.youtube.com/embed/YHZQHfKDdMc" frameborder="0" allowfullscreen="allowfullscreen" + iframe src="//www.youtube.com/embed/iteR0ciRhtw" frameborder="0" allowfullscreen="allowfullscreen" br clear="all" .row .column - h1 - | Want a JamBlaster? Need One? - p If you are a registered member of the JamKazam community, and if you "know" you will buy a JamBlaster for $199 as soon as they become available, then click the button below to add yourself to our wait list. When we get enough "virtual orders", we'll reach back out to all signups to take real orders. - .cta-big-button - a.white-bordered-button href="#" SIGN UP TO BUY A JAMBLASTER + a.white-bordered-button href="https://www.kickstarter.com/projects/1091884999/jamblaster-the-ultimate-smartphone-accessory-for-m" Get JamBlaster On Kickstarter .column h1 Want To Know More About Latency? p @@ -74,51 +70,6 @@ javascript: promptConfirmed(data.app) } - $('.product_jamblaster a.white-bordered-button').on('click', function () { - var rest = window.JK.Rest(); - if (window.JK.currentUserId) { - window.JK.Banner.showYesNo({ - title: "please confirm", - html: "Are you sure you want to make a virtual order for a JamBlaster?", - yes: function () { - confirmOrder(data.app) - }, - no: function () { - window.JK.Banner.hide(); - } - }) - } - else { - window.JK.Banner.showAlert({ - buttons: [ - { - name: 'CANCEL', click: function () { - - } - }, - { - name: 'SIGN IN', buttonStyle: 'button-orange', click: function () { - var redirectPath = '?redirect-to=' + encodeURIComponent('/products/jamblaster?want_jamblaster=true'); - window.location.href = '/signin' + redirectPath; - } - }, - { - name: 'SIGN UP', click: function () { - rest.createSignupHint({redirect_location: '/products/jamblaster', want_jamblaster:true}) - .done(function() { - window.location.href = '/signup' - }) - .fail(function() { - data.app.layout.notify("Unable to take your virtual order at this time. Please try again later.") - }) - } - } - ], - title: 'please sign in or sign up', - html: "

    In order to place a virtual order for a JamBlaster, you must be a registered JamKazam user. Please sign in or sign up to place your order.

    " - }) - } - return false; }) }) \ No newline at end of file diff --git a/web/app/views/users/home.html.slim b/web/app/views/users/home.html.slim index a7fd408cf..6a73a6cd6 100644 --- a/web/app/views/users/home.html.slim +++ b/web/app/views/users/home.html.slim @@ -41,7 +41,7 @@ strong JamBlaster |  is a device designed from the ground up to meet the requirements of online music play, vastly extending the range over which musicians can play together across the Internet. - = link_to image_tag("web/button_cta_jamblaster.png", width: 234, height: 57), '/products/jamblaster', class: 'cta-button jamblaster' + = link_to image_tag("web/button_cta_jamblaster.png", width: 234, height: 57), 'https://www.kickstarter.com/projects/1091884999/jamblaster-the-ultimate-smartphone-accessory-for-m', class: 'cta-button jamblaster' .extra-links .learn-more a.learn-more-jamblaster href='/products/jamblaster' learn more From b9a7bd6e09208caa9633bd50e96009503cc0b571 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 24 Nov 2015 06:49:35 -0600 Subject: [PATCH 21/36] * fix JS error --- web/app/views/landings/product_jamblaster.html.slim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/app/views/landings/product_jamblaster.html.slim b/web/app/views/landings/product_jamblaster.html.slim index 7c2cebe37..42f07d6a4 100644 --- a/web/app/views/landings/product_jamblaster.html.slim +++ b/web/app/views/landings/product_jamblaster.html.slim @@ -70,6 +70,6 @@ javascript: promptConfirmed(data.app) } - return false; - }) - }) \ No newline at end of file + return false; + }) + From 5e754a70969165e7a1198ff14ae723183e85d991 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 24 Nov 2015 07:45:17 -0600 Subject: [PATCH 22/36] * update video Url --- web/app/views/users/home.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/app/views/users/home.html.slim b/web/app/views/users/home.html.slim index 6a73a6cd6..112998f47 100644 --- a/web/app/views/users/home.html.slim +++ b/web/app/views/users/home.html.slim @@ -33,7 +33,7 @@ br clear="all" .home-column.last - = link_to image_tag("web/thumbnail_jamblaster.jpg", :alt => "JamBlaster explanatory video!"), '#', class: "jamblaster-video video-item", 'data-video-header' => 'JamBlaster', 'data-video-url' => 'https://www.youtube.com/embed/YHZQHfKDdMc?autoplay=1' + = link_to image_tag("web/thumbnail_jamblaster.jpg", :alt => "JamBlaster explanatory video!"), '#', class: "jamblaster-video video-item", 'data-video-header' => 'JamBlaster', 'data-video-url' => 'https://www.youtube.com/embed/iteR0ciRhtw?autoplay=1' h3 Ultra Low-Latency Audio Interface p From 6d514c3df2e1888893359464e474a123bddc31e1 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sat, 28 Nov 2015 19:38:39 -0600 Subject: [PATCH 23/36] * api for marking purchase from ios --- ruby/lib/jam_ruby/models/sale.rb | 6 ++++++ .../controllers/api_jam_tracks_controller.rb | 19 +++++++++++++++++++ web/config/routes.rb | 1 + .../api_jam_tracks_controller_spec.rb | 10 ++++++++++ 4 files changed, 36 insertions(+) diff --git a/ruby/lib/jam_ruby/models/sale.rb b/ruby/lib/jam_ruby/models/sale.rb index 4db356055..6e3bb7cfb 100644 --- a/ruby/lib/jam_ruby/models/sale.rb +++ b/ruby/lib/jam_ruby/models/sale.rb @@ -92,6 +92,12 @@ module JamRuby line_items end + def self.ios_purchase(current_user, jam_track, receipt) + jam_track_right = JamRuby::JamTrackRight.find_or_create_by_user_id_and_jam_track_id(current_user.id, jam_track.id) do |jam_track_right| + jam_track_right.redeemed = false + end + end + # place_order will create one or more sales based on the contents of shopping_carts for the current user # individual subscriptions will end up create their own sale (you can't have N subscriptions in one sale--recurly limitation) # jamtracks however can be piled onto the same sale as adjustments (VRFS-3028) diff --git a/web/app/controllers/api_jam_tracks_controller.rb b/web/app/controllers/api_jam_tracks_controller.rb index 480514f8e..a07170432 100644 --- a/web/app/controllers/api_jam_tracks_controller.rb +++ b/web/app/controllers/api_jam_tracks_controller.rb @@ -253,6 +253,25 @@ class ApiJamTracksController < ApiController puts "jamtrack_mixdowns #{jamtrack_mixdowns}" end + def ios_order_placed + jam_track = JamTrack.find(params[:jam_track_id]) + + sales = Sale.ios_purchase(current_user, jam_track, nil) + + # + # sales.each do |sale| + # if sale.is_jam_track_sale? + # sale.sale_line_items.each do |line_item| + # jam_track = line_item.product + # jam_track_right = jam_track.right_for_user(current_user) + # response[:jam_tracks] << {name: jam_track.name, id: jam_track.id, jam_track_right_id: jam_track_right.id, version: jam_track.version} + # end + # end + # end + response = {name: jam_track.name, id: jam_track.id, jam_track_right_id: jam_track.right_for_user(current_user).id, version: jam_track.version} + render :json => response, :status => 200 + end + private def lookup_jam_track_right @jam_track_right = JamTrackRight.where("jam_track_id=? AND user_id=?", params[:id], current_user.id).first diff --git a/web/config/routes.rb b/web/config/routes.rb index 4c66edfc4..8ce1181e5 100644 --- a/web/config/routes.rb +++ b/web/config/routes.rb @@ -327,6 +327,7 @@ SampleApp::Application.routes.draw do match '/recurly/billing_info' => 'api_recurly#billing_info', :via => :get match '/recurly/update_billing_info' => 'api_recurly#update_billing_info', :via => :put match '/recurly/place_order' => 'api_recurly#place_order', :via => :post + match '/ios/order_placed' => 'api_jam_tracks#ios_order_placed', :via => :post # sale info match '/payment_histories' => 'api_payment_histories#index', :via => :get diff --git a/web/spec/controllers/api_jam_tracks_controller_spec.rb b/web/spec/controllers/api_jam_tracks_controller_spec.rb index 46a7d9c2d..fe4853d14 100644 --- a/web/spec/controllers/api_jam_tracks_controller_spec.rb +++ b/web/spec/controllers/api_jam_tracks_controller_spec.rb @@ -26,6 +26,16 @@ describe ApiJamTracksController do controller.current_user = @user end + describe "ios_order_placed" do + it "succeeds" do + post :ios_order_placed, { jam_track_id: @jam_track.id } + + response.status.should == 200 + right = @jam_track.right_for_user(@user) + right.id.should eq(JSON.parse(response.body)["jam_track_right_id"]) + end + end + describe "admin" do before(:each) do @admin = FactoryGirl.create(:admin) From bd02774db9fa9305101df2479aaac3002478fbcf Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sun, 29 Nov 2015 13:58:10 -0600 Subject: [PATCH 24/36] GiftCards are purchable --- db/manifest | 3 +- db/up/purchasable_gift_cards.sql | 24 ++ ruby/lib/jam_ruby.rb | 2 + ruby/lib/jam_ruby/models/affiliate_partner.rb | 18 +- ruby/lib/jam_ruby/models/anonymous_user.rb | 5 + ruby/lib/jam_ruby/models/gift_card.rb | 13 +- .../lib/jam_ruby/models/gift_card_purchase.rb | 17 ++ ruby/lib/jam_ruby/models/gift_card_type.rb | 66 +++++ ruby/lib/jam_ruby/models/jam_track.rb | 3 + .../models/recurly_transaction_web_hook.rb | 48 +--- ruby/lib/jam_ruby/models/sale.rb | 188 +++++++------- ruby/lib/jam_ruby/models/sale_line_item.rb | 14 +- ruby/lib/jam_ruby/models/shopping_cart.rb | 42 ++- ruby/lib/jam_ruby/models/user.rb | 7 + ruby/spec/factories.rb | 11 +- .../recurly_transaction_web_hook_spec.rb | 4 +- .../jam_ruby/models/sale_line_item_spec.rb | 18 +- ruby/spec/jam_ruby/models/sale_spec.rb | 102 ++++++-- .../jam_ruby/models/shopping_cart_spec.rb | 34 ++- ruby/spec/spec_helper.rb | 4 +- .../assets/javascripts/checkout_complete.js | 10 + web/app/assets/javascripts/checkout_order.js | 22 +- web/app/assets/javascripts/jam_rest.js | 12 + .../landing/GiftCardLandingPage.js.jsx.coffee | 93 +++++++ .../stores/UserStore.js.coffee | 4 +- .../client/checkout_complete.css.scss | 4 + .../landings/individual_jamtrack.css.scss | 35 ++- web/app/controllers/api_recurly_controller.rb | 11 +- .../api_shopping_carts_controller.rb | 28 ++ web/app/controllers/landings_controller.rb | 23 ++ .../api_shopping_carts/add_gift_card.rabl | 5 + .../clients/_checkout_complete.html.slim | 2 + .../views/clients/_checkout_order.html.slim | 2 +- .../views/clients/_checkout_payment.html.slim | 3 +- .../views/clients/_shopping_cart.html.haml | 2 +- .../views/landings/buy_gift_card.html.slim | 24 ++ web/config/routes.rb | 2 + .../controllers/api_users_controller_spec.rb | 10 +- web/spec/factories.rb | 2 +- web/spec/features/checkout_spec.rb | 2 - web/spec/features/gift_card_landing_spec.rb | 245 ++++++++++++++++++ web/spec/features/redeem_giftcard_spec.rb | 22 +- web/spec/managers/user_manager_spec.rb | 2 +- 43 files changed, 949 insertions(+), 239 deletions(-) create mode 100644 db/up/purchasable_gift_cards.sql create mode 100644 ruby/lib/jam_ruby/models/gift_card_purchase.rb create mode 100644 ruby/lib/jam_ruby/models/gift_card_type.rb create mode 100644 web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee create mode 100644 web/app/views/api_shopping_carts/add_gift_card.rabl create mode 100644 web/app/views/landings/buy_gift_card.html.slim create mode 100644 web/spec/features/gift_card_landing_spec.rb diff --git a/db/manifest b/db/manifest index 825013c73..40053da47 100755 --- a/db/manifest +++ b/db/manifest @@ -312,4 +312,5 @@ track_downloads.sql jam_track_lang_idx.sql giftcard.sql add_description_to_crash_dumps.sql -acappella.sql \ No newline at end of file +acappella.sql +purchasable_gift_cards.sql \ No newline at end of file diff --git a/db/up/purchasable_gift_cards.sql b/db/up/purchasable_gift_cards.sql new file mode 100644 index 000000000..9ef8d29fa --- /dev/null +++ b/db/up/purchasable_gift_cards.sql @@ -0,0 +1,24 @@ + + +CREATE TABLE gift_card_types ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + card_type VARCHAR(64) NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +INSERT INTO gift_card_types (id, card_type) VALUES ('jam_tracks_5', 'jam_tracks_5'); +INSERT INTO gift_card_types (id, card_type) VALUES ('jam_tracks_10', 'jam_tracks_10'); + +CREATE TABLE gift_card_purchases ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE SET NULL, + gift_card_type_id VARCHAR(64) REFERENCES gift_card_types(id) ON DELETE SET NULL, + recurly_adjustment_uuid VARCHAR(500), + recurly_adjustment_credit_uuid VARCHAR(500), + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + + +ALTER TABLE sale_line_items ADD COLUMN gift_card_purchase_id VARCHAR(64) REFERENCES gift_card_purchases(id); diff --git a/ruby/lib/jam_ruby.rb b/ruby/lib/jam_ruby.rb index 1cbb0cdab..b3772ec14 100755 --- a/ruby/lib/jam_ruby.rb +++ b/ruby/lib/jam_ruby.rb @@ -254,6 +254,8 @@ require "jam_ruby/models/band_search" require "jam_ruby/import/tency_stem_mapping" require "jam_ruby/models/jam_track_search" require "jam_ruby/models/gift_card" +require "jam_ruby/models/gift_card_purchase" +require "jam_ruby/models/gift_card_type" include Jampb diff --git a/ruby/lib/jam_ruby/models/affiliate_partner.rb b/ruby/lib/jam_ruby/models/affiliate_partner.rb index db41ddd12..e88aed9c7 100644 --- a/ruby/lib/jam_ruby/models/affiliate_partner.rb +++ b/ruby/lib/jam_ruby/models/affiliate_partner.rb @@ -119,18 +119,16 @@ class JamRuby::AffiliatePartner < ActiveRecord::Base end def should_attribute_sale?(shopping_cart) - if shopping_cart.is_jam_track? - if created_within_affiliate_window(shopping_cart.user, Time.now) - product_info = shopping_cart.product_info - # subtract the total quantity from the freebie quantity, to see how much we should attribute to them - real_quantity = product_info[:quantity].to_i - product_info[:marked_for_redeem].to_i - {fee_in_cents: (1.99 * 100 * real_quantity * rate.to_f).round} - else - false - end + + if created_within_affiliate_window(shopping_cart.user, Time.now) + product_info = shopping_cart.product_info + # subtract the total quantity from the freebie quantity, to see how much we should attribute to them + real_quantity = product_info[:quantity].to_i - product_info[:marked_for_redeem].to_i + {fee_in_cents: (product_info[:price] * 100 * real_quantity * rate.to_f).round} else - raise 'shopping cart type not implemented yet' + false end + end def cumulative_earnings_in_dollars diff --git a/ruby/lib/jam_ruby/models/anonymous_user.rb b/ruby/lib/jam_ruby/models/anonymous_user.rb index 9d711b349..55c788e90 100644 --- a/ruby/lib/jam_ruby/models/anonymous_user.rb +++ b/ruby/lib/jam_ruby/models/anonymous_user.rb @@ -15,10 +15,15 @@ module JamRuby ShoppingCart.where(anonymous_user_id: @id).order('created_at DESC') end + def destroy_all_shopping_carts ShoppingCart.destroy_all(anonymous_user_id: @id) end + def destroy_jam_track_shopping_carts + ShoppingCart.destroy_all(anonymous_user_id: @id, cart_type: JamTrack::PRODUCT_TYPE) + end + def admin false end diff --git a/ruby/lib/jam_ruby/models/gift_card.rb b/ruby/lib/jam_ruby/models/gift_card.rb index 8a8469a27..0dc5f94e8 100644 --- a/ruby/lib/jam_ruby/models/gift_card.rb +++ b/ruby/lib/jam_ruby/models/gift_card.rb @@ -1,14 +1,15 @@ +# represents the gift card you hold in your hand module JamRuby class GiftCard < ActiveRecord::Base @@log = Logging.logger[GiftCard] + JAM_TRACKS_5 = 'jam_tracks_5' JAM_TRACKS_10 = 'jam_tracks_10' - JAM_TRACKS_20 = 'jam_tracks_20' CARD_TYPES = [ - JAM_TRACKS_10, - JAM_TRACKS_20 + JAM_TRACKS_5, + JAM_TRACKS_10 ] @@ -21,10 +22,10 @@ module JamRuby def check_gifted if user && user_id_changed? - if card_type == JAM_TRACKS_10 + if card_type == JAM_TRACKS_5 + user.gifted_jamtracks += 5 + elsif card_type == JAM_TRACKS_10 user.gifted_jamtracks += 10 - elsif card_type == JAM_TRACKS_20 - user.gifted_jamtracks += 20 else raise "unknown card type #{card_type}" end diff --git a/ruby/lib/jam_ruby/models/gift_card_purchase.rb b/ruby/lib/jam_ruby/models/gift_card_purchase.rb new file mode 100644 index 000000000..0cfb00807 --- /dev/null +++ b/ruby/lib/jam_ruby/models/gift_card_purchase.rb @@ -0,0 +1,17 @@ +# reperesents the gift card you buy from the site (but physical gift card is modeled by GiftCard) +module JamRuby + class GiftCardPurchase < ActiveRecord::Base + + @@log = Logging.logger[GiftCardPurchase] + + attr_accessible :user, :gift_card_type + + def name + gift_card_type.sale_display + end + + # who purchased the card? + belongs_to :user, class_name: "JamRuby::User" + belongs_to :gift_card_type, class_name: "JamRuby::GiftCardType" + end +end diff --git a/ruby/lib/jam_ruby/models/gift_card_type.rb b/ruby/lib/jam_ruby/models/gift_card_type.rb new file mode 100644 index 000000000..e6336a9b1 --- /dev/null +++ b/ruby/lib/jam_ruby/models/gift_card_type.rb @@ -0,0 +1,66 @@ +# reperesents the gift card you buy from the site (but physical gift card is modeled by GiftCard) +module JamRuby + class GiftCardType < ActiveRecord::Base + + @@log = Logging.logger[GiftCardType] + + PRODUCT_TYPE = 'GiftCardType' + + JAM_TRACKS_5 = 'jam_tracks_5' + JAM_TRACKS_10 = 'jam_tracks_10' + CARD_TYPES = + [ + JAM_TRACKS_5, + JAM_TRACKS_10 + ] + + validates :card_type, presence: true, inclusion: {in: CARD_TYPES} + + def self.jam_track_5 + GiftCardType.find(JAM_TRACKS_5) + end + + def self.jam_track_10 + GiftCardType.find(JAM_TRACKS_10) + end + + def name + sale_display + end + + def price + if card_type == JAM_TRACKS_5 + 10.00 + elsif card_type == JAM_TRACKS_10 + 20.00 + else + raise "unknown card type #{card_type}" + end + end + + + def sale_display + if card_type == JAM_TRACKS_5 + 'JamTracks Gift Card (5)' + elsif card_type == JAM_TRACKS_10 + 'JamTracks Gift Card (10)' + else + raise "unknown card type #{card_type}" + end + end + + def plan_code + if card_type == JAM_TRACKS_5 + "jamtrack-giftcard-5" + elsif card_type == JAM_TRACKS_10 + "jamtrack-giftcard-10" + else + raise "unknown card type #{card_type}" + end + end + + def sales_region + 'Worldwide' + end + end +end diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index aea976d89..9303af65b 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -155,6 +155,9 @@ module JamRuby true end + def sale_display + "JamTrack: " + name + end def duplicate_positions? counter = {} jam_track_tracks.each do |track| diff --git a/ruby/lib/jam_ruby/models/recurly_transaction_web_hook.rb b/ruby/lib/jam_ruby/models/recurly_transaction_web_hook.rb index 9d0fc9bd4..006611f61 100644 --- a/ruby/lib/jam_ruby/models/recurly_transaction_web_hook.rb +++ b/ruby/lib/jam_ruby/models/recurly_transaction_web_hook.rb @@ -92,53 +92,15 @@ module JamRuby transaction.save! # now that we have the transaction saved, we also need to delete the jam_track_right if this is a refund, or voided - - if transaction.transaction_type == 'refund' || transaction.transaction_type == 'void' sale = Sale.find_by_recurly_invoice_id(transaction.invoice_id) - if sale && sale.is_jam_track_sale? - if sale.sale_line_items.length == 1 - if sale.recurly_total_in_cents == transaction.amount_in_cents - line_item = sale.sale_line_items[0] - jam_track = line_item.product - jam_track_right = jam_track.right_for_user(transaction.user) if jam_track - if jam_track_right - line_item.affiliate_refunded = true - line_item.affiliate_refunded_at = Time.now - line_item.save! + if sale + AdminMailer.recurly_alerts(transaction.user, { + subject: "ACTION REQUIRED: #{transaction.user.email} has refund on invoice", + body: "You will have to manually revoke any JamTrackRights in our database for the appropriate JamTracks" + }).deliver - jam_track_right.destroy - - # associate which JamTrack we assume this is related to in this one success case - transaction.jam_track = jam_track - transaction.save! - - AdminMailer.recurly_alerts(transaction.user, { - subject: "NOTICE: #{transaction.user.email} has had JamTrack: #{jam_track.name} revoked", - body: "A #{transaction.transaction_type} event came from Recurly for sale with Recurly invoice ID #{sale.recurly_invoice_id}. We deleted their right to the track in our own database as a result." - }).deliver - else - AdminMailer.recurly_alerts(transaction.user, { - subject: "NOTICE: #{transaction.user.email} got a refund, but unable to find JamTrackRight to delete", - body: "This should just mean the user already has no rights to the JamTrackRight when the refund came in. Not a big deal, but sort of weird..." - }).deliver - end - - else - AdminMailer.recurly_alerts(transaction.user, { - subject: "ACTION REQUIRED: #{transaction.user.email} got a refund it was not for total value of a JamTrack sale", - body: "We received a #{transaction.transaction_type} notice for an amount that was not the same as the original sale. So, no action was taken in the database. sale total: #{sale.recurly_total_in_cents}, refund amount: #{transaction.amount_in_cents}" - }).deliver - end - - - else - AdminMailer.recurly_alerts(transaction.user, { - subject: "ACTION REQUIRED: #{transaction.user.email} has refund on invoice with multiple JamTracks", - body: "You will have to manually revoke any JamTrackRights in our database for the appropriate JamTracks" - }).deliver - end else AdminMailer.recurly_alerts(transaction.user, { subject: "ACTION REQUIRED: #{transaction.user.email} has refund with no correlator to sales", diff --git a/ruby/lib/jam_ruby/models/sale.rb b/ruby/lib/jam_ruby/models/sale.rb index 6e3bb7cfb..9b0fb2047 100644 --- a/ruby/lib/jam_ruby/models/sale.rb +++ b/ruby/lib/jam_ruby/models/sale.rb @@ -69,28 +69,6 @@ module JamRuby } end - def self.preview_invoice(current_user, shopping_carts) - - line_items = {jam_tracks: []} - shopping_carts_jam_tracks = [] - shopping_carts_subscriptions = [] - shopping_carts.each do |shopping_cart| - - if shopping_cart.is_jam_track? - shopping_carts_jam_tracks << shopping_cart - else - # XXX: this may have to be revisited when we actually have something other than JamTracks for puchase - shopping_carts_subscriptions << shopping_cart - end - end - - jam_track_items = preview_invoice_jam_tracks(current_user, shopping_carts_jam_tracks) - line_items[:jam_tracks] = jam_track_items if jam_track_items - - # TODO: process shopping_carts_subscriptions - - line_items - end def self.ios_purchase(current_user, jam_track, receipt) jam_track_right = JamRuby::JamTrackRight.find_or_create_by_user_id_and_jam_track_id(current_user.id, jam_track.id) do |jam_track_right| @@ -105,19 +83,14 @@ module JamRuby def self.place_order(current_user, shopping_carts) sales = [] - shopping_carts_jam_tracks = [] - shopping_carts_subscriptions = [] - shopping_carts.each do |shopping_cart| - if shopping_cart.is_jam_track? - shopping_carts_jam_tracks << shopping_cart - else - # XXX: this may have to be revisited when we actually have something other than JamTracks for puchase - shopping_carts_subscriptions << shopping_cart - end + + if Sale.is_mixed(shopping_carts) + # the controller checks this too; this is just an extra-level of sanity checking + return sales end - jam_track_sale = order_jam_tracks(current_user, shopping_carts_jam_tracks) + jam_track_sale = order_jam_tracks(current_user, shopping_carts) sales << jam_track_sale if jam_track_sale # TODO: process shopping_carts_subscriptions @@ -125,18 +98,10 @@ module JamRuby sales end - def self.preview_invoice_jam_tracks(current_user, shopping_carts_jam_tracks) - ### XXX TODO; - # we currently use a fake plan in Recurly to estimate taxes using the Pricing.Attach metod in Recurly.js - - # if we were to implement this the right way (ensure adjustments are on the account as necessary), then it would be better (more correct) - # just a pain to implement - end - - def self.is_only_freebie(shopping_carts_jam_tracks) + def self.is_only_freebie(shopping_carts) free = true - shopping_carts_jam_tracks.each do |cart| + shopping_carts.each do |cart| free = cart.product_info[:free] if !free @@ -162,7 +127,23 @@ module JamRuby # this method will either return a valid sale, or throw a RecurlyClientError or ActiveRecord validation error (save! failed) # it may return an nil sale if the JamTrack(s) specified by the shopping carts are already owned - def self.order_jam_tracks(current_user, shopping_carts_jam_tracks) + def self.order_jam_tracks(current_user, shopping_carts) + + shopping_carts_jam_tracks = [] + shopping_carts_subscriptions = [] + shopping_carts_gift_cards = [] + + shopping_carts.each do |shopping_cart| + if shopping_cart.is_jam_track? + shopping_carts_jam_tracks << shopping_cart + elsif shopping_cart.is_gift_card? + shopping_carts_gift_cards << shopping_cart + else + # XXX: this may have to be revisited when we actually have something other than JamTracks for puchase + raise "unknown shopping cart type #{shopping_cart.cart_type}" + shopping_carts_subscriptions << shopping_cart + end + end client = RecurlyClient.new @@ -171,8 +152,8 @@ module JamRuby sale = create_jam_track_sale(current_user) if sale.valid? - if is_only_freebie(shopping_carts_jam_tracks) - sale.process_jam_tracks(current_user, shopping_carts_jam_tracks, nil) + if is_only_freebie(shopping_carts) + sale.process_shopping_carts(current_user, shopping_carts, nil) sale.recurly_subtotal_in_cents = 0 sale.recurly_tax_in_cents = 0 @@ -187,11 +168,13 @@ module JamRuby return sale end - sale_line_item = sale.sale_line_items[0] - sale_line_item.recurly_tax_in_cents = 0 - sale_line_item.recurly_total_in_cents = 0 - sale_line_item.recurly_currency = 'USD' - sale_line_item.recurly_discount_in_cents = 0 + sale.sale_line_items.each do |sale_line_item| + sale_line_item = sale.sale_line_items[0] + sale_line_item.recurly_tax_in_cents = 0 + sale_line_item.recurly_total_in_cents = 0 + sale_line_item.recurly_currency = 'USD' + sale_line_item.recurly_discount_in_cents = 0 + end sale.save else @@ -201,7 +184,7 @@ module JamRuby purge_pending_adjustments(account) - created_adjustments = sale.process_jam_tracks(current_user, shopping_carts_jam_tracks, account) + created_adjustments = sale.process_shopping_carts(current_user, shopping_carts, account) # now invoice the sale ... almost done @@ -257,13 +240,13 @@ module JamRuby sale end - def process_jam_tracks(current_user, shopping_carts_jam_tracks, account) + def process_shopping_carts(current_user, shopping_carts, account) created_adjustments = [] begin - shopping_carts_jam_tracks.each do |shopping_cart| - process_jam_track(current_user, shopping_cart, account, created_adjustments) + shopping_carts.each do |shopping_cart| + process_shopping_cart(current_user, shopping_cart, account, created_adjustments) end rescue Recurly::Error, NoMethodError => x # rollback any adjustments created if error @@ -279,7 +262,7 @@ module JamRuby end - def process_jam_track(current_user, shopping_cart, account, created_adjustments) + def process_shopping_cart(current_user, shopping_cart, account, created_adjustments) recurly_adjustment_uuid = nil recurly_adjustment_credit_uuid = nil @@ -287,15 +270,20 @@ module JamRuby shopping_cart.reload # get the JamTrack in this shopping cart - jam_track = shopping_cart.cart_product + cart_product = shopping_cart.cart_product - if jam_track.right_for_user(current_user) - # if the user already owns the JamTrack, we should just skip this cart item, and destroy it - # if this occurs, we have to reload every shopping_cart as we iterate. so, we do at the top of the loop - ShoppingCart.remove_jam_track_from_cart(current_user, shopping_cart) - return + if shopping_cart.is_jam_track? + jam_track = cart_product + if jam_track.right_for_user(current_user) + # if the user already owns the JamTrack, we should just skip this cart item, and destroy it + # if this occurs, we have to reload every shopping_cart as we iterate. so, we do at the top of the loop + ShoppingCart.remove_jam_track_from_cart(current_user, shopping_cart) + return + end end + + if account # ask the shopping cart to create the correct Recurly adjustment attributes for a JamTrack adjustments = shopping_cart.create_adjustment_attributes(current_user) @@ -328,45 +316,69 @@ module JamRuby # if the sale line item is invalid, blow up the transaction unless sale_line_item.valid? - @log.error("sale item invalid! #{sale_line_item.errors.inspect}") + @@log.error("sale item invalid! #{sale_line_item.errors.inspect}") puts("sale item invalid! #{sale_line_item.errors.inspect}") Stats.write('web.recurly.purchase.sale_invalid', {message: sale_line_item.errors.to_s, value: 1}) raise RecurlyClientError.new(sale_line_item.errors) end - # create a JamTrackRight (this needs to be in a transaction too to make sure we don't make these by accident) - jam_track_right = JamRuby::JamTrackRight.find_or_create_by_user_id_and_jam_track_id(current_user.id, jam_track.id) do |jam_track_right| - jam_track_right.redeemed = shopping_cart.free? - end + if shopping_cart.is_jam_track? + jam_track = cart_product - # also if the purchase was a free one, then: - # first, mark the free has_redeemable_jamtrack field if that's still true - # and if still they have more free things, then redeem the giftable_jamtracks - if shopping_cart.free? - if user.has_redeemable_jamtrack - User.where(id: current_user.id).update_all(has_redeemable_jamtrack: false) - current_user.has_redeemable_jamtrack = false - else - User.where(id: current_user.id).update_all(gifted_jamtracks: current_user.gifted_jamtracks - 1) - current_user.gifted_jamtracks = current_user.gifted_jamtracks - 1 + # create a JamTrackRight (this needs to be in a transaction too to make sure we don't make these by accident) + jam_track_right = JamRuby::JamTrackRight.find_or_create_by_user_id_and_jam_track_id(current_user.id, jam_track.id) do |jam_track_right| + jam_track_right.redeemed = shopping_cart.free? end - end - - # this can't go in the block above, as it's here to fix bad subscription UUIDs in an update path - if jam_track_right.recurly_adjustment_uuid != recurly_adjustment_uuid - jam_track_right.recurly_adjustment_uuid = recurly_adjustment_uuid - jam_track_right.recurly_adjustment_credit_uuid = recurly_adjustment_credit_uuid - unless jam_track_right.save - raise RecurlyClientError.new(jam_track_right.errors) + # also if the purchase was a free one, then: + # first, mark the free has_redeemable_jamtrack field if that's still true + # and if still they have more free things, then redeem the giftable_jamtracks + if shopping_cart.free? + if user.has_redeemable_jamtrack + User.where(id: current_user.id).update_all(has_redeemable_jamtrack: false) + current_user.has_redeemable_jamtrack = false + else + User.where(id: current_user.id).update_all(gifted_jamtracks: current_user.gifted_jamtracks - 1) + current_user.gifted_jamtracks = current_user.gifted_jamtracks - 1 + end end + + + # this can't go in the block above, as it's here to fix bad subscription UUIDs in an update path + if jam_track_right.recurly_adjustment_uuid != recurly_adjustment_uuid + jam_track_right.recurly_adjustment_uuid = recurly_adjustment_uuid + jam_track_right.recurly_adjustment_credit_uuid = recurly_adjustment_credit_uuid + unless jam_track_right.save + raise RecurlyClientError.new(jam_track_right.errors) + end + end + + # blow up the transaction if the JamTrackRight did not get created + raise RecurlyClientError.new(jam_track_right.errors) if jam_track_right.errors.any? + + elsif shopping_cart.is_gift_card? + gift_card_type = cart_product + raise "gift card is null" if gift_card_type.nil? + raise if current_user.nil? + + shopping_cart.quantity.times do |item| + gift_card_purchase = GiftCardPurchase.new( + { + user: current_user, + gift_card_type: gift_card_type + }) + + unless gift_card_purchase.save + raise RecurlyClientError.new(gift_card_purchase.errors) + end + end + + else + raise 'unknown shopping cart type: ' + shopping_cart.cart_type end # delete the shopping cart; it's been dealt with shopping_cart.destroy if shopping_cart - - # blow up the transaction if the JamTrackRight did not get created - raise RecurlyClientError.new(jam_track_right.errors) if jam_track_right.errors.any? end @@ -396,7 +408,7 @@ module JamRuby def self.create_jam_track_sale(user) sale = Sale.new sale.user = user - sale.sale_type = JAMTRACK_SALE + sale.sale_type = JAMTRACK_SALE # gift cards and jam tracks are sold with this type of sale sale.order_total = 0 sale.save sale diff --git a/ruby/lib/jam_ruby/models/sale_line_item.rb b/ruby/lib/jam_ruby/models/sale_line_item.rb index 7d744cfe5..5cbe5ad87 100644 --- a/ruby/lib/jam_ruby/models/sale_line_item.rb +++ b/ruby/lib/jam_ruby/models/sale_line_item.rb @@ -4,14 +4,16 @@ module JamRuby JAMBLASTER = 'JamBlaster' JAMCLOUD = 'JamCloud' JAMTRACK = 'JamTrack' + GIFTCARD = 'GiftCardType' belongs_to :sale, class_name: 'JamRuby::Sale' belongs_to :jam_track, class_name: 'JamRuby::JamTrack' belongs_to :jam_track_right, class_name: 'JamRuby::JamTrackRight' + belongs_to :gift_card, class_name: 'JamRuby::GiftCard' belongs_to :affiliate_referral, class_name: 'JamRuby::AffiliatePartner', foreign_key: :affiliate_referral_id has_many :recurly_transactions, class_name: 'JamRuby::RecurlyTransactionWebHook', inverse_of: :sale_line_item, foreign_key: 'subscription_id', primary_key: 'recurly_subscription_uuid' - validates :product_type, inclusion: {in: [JAMBLASTER, JAMCLOUD, JAMTRACK]} + validates :product_type, inclusion: {in: [JAMBLASTER, JAMCLOUD, JAMTRACK, GIFTCARD]} validates :unit_price, numericality: {only_integer: false} validates :quantity, numericality: {only_integer: true} validates :free, numericality: {only_integer: true} @@ -21,9 +23,19 @@ module JamRuby validates :recurly_plan_code, presence:true validates :sale, presence:true + def is_jam_track? + product_type == JAMTRACK + end + + def is_gift_card? + product_type == GIFTCARD + end + def product if product_type == JAMTRACK JamTrack.find_by_id(product_id) + elsif product_type == GIFTCARD + GiftCardType.find_by_id(product_id) else raise 'unsupported product type' end diff --git a/ruby/lib/jam_ruby/models/shopping_cart.rb b/ruby/lib/jam_ruby/models/shopping_cart.rb index c113c5a99..fb531c2bd 100644 --- a/ruby/lib/jam_ruby/models/shopping_cart.rb +++ b/ruby/lib/jam_ruby/models/shopping_cart.rb @@ -28,7 +28,7 @@ module JamRuby def product_info product = self.cart_product - {name: product.name, price: product.price, product_id: cart_id, plan_code: product.plan_code, real_price: real_price(product), total_price: total_price(product), quantity: quantity, marked_for_redeem: marked_for_redeem, free: free?, sales_region: product.sales_region} unless product.nil? + {type: cart_type, name: product.name, price: product.price, product_id: cart_id, plan_code: product.plan_code, real_price: real_price(product), total_price: total_price(product), quantity: quantity, marked_for_redeem: marked_for_redeem, free: free?, sales_region: product.sales_region, sale_display:product.sale_display} unless product.nil? end # multiply quantity by price @@ -90,6 +90,7 @@ module JamRuby end def self.create user, product, quantity = 1, mark_redeem = false + cart = ShoppingCart.new if user.is_a?(User) cart.user = user @@ -110,40 +111,42 @@ module JamRuby cart_type == JamTrack::PRODUCT_TYPE end + def is_gift_card? + cart_type == GiftCardType::PRODUCT_TYPE + end # returns an array of adjustments for the shopping cart def create_adjustment_attributes(current_user) - raise "not a jam track" unless is_jam_track? + raise "not a jam track or gift card" unless is_jam_track? || is_gift_card? info = self.product_info if free? - - puts "GOT A FREEBIE!" # create the credit, then the pseudo charge [ { accounting_code: PURCHASE_FREE_CREDIT, currency: 'USD', unit_amount_in_cents: -(info[:total_price] * 100).to_i, - description: "JamTrack: " + info[:name] + " (Credit)", + description: info[:sale_display] + " (Credit)", tax_exempt: true }, { accounting_code: PURCHASE_FREE, currency: 'USD', unit_amount_in_cents: (info[:total_price] * 100).to_i, - description: "JamTrack: " + info[:name], + description: info[:sale_display], tax_exempt: true } ] else + [ { accounting_code: PURCHASE_NORMAL, currency: 'USD', unit_amount_in_cents: (info[:total_price] * 100).to_i, - description: "JamTrack: " + info[:name], + description: info[:sale_display], tax_exempt: false } ] @@ -152,8 +155,13 @@ module JamRuby def self.move_to_user(user, anonymous_user, shopping_carts) shopping_carts.each do |shopping_cart| - mark_redeem = ShoppingCart.user_has_redeemable_jam_track?(user) - cart = ShoppingCart.create(user, shopping_cart.cart_product, shopping_cart.quantity, mark_redeem) + if shopping_cart.is_jam_track? + mark_redeem = ShoppingCart.user_has_redeemable_jam_track?(user) + cart = ShoppingCart.create(user, shopping_cart.cart_product, shopping_cart.quantity, mark_redeem) + else + cart = ShoppingCart.create(user, shopping_cart.cart_product, shopping_cart.quantity, false) + end + end anonymous_user.destroy_all_shopping_carts @@ -197,7 +205,7 @@ module JamRuby if clear # if you are an anonymous user, we make sure there is nothing else in your shopping cart ... keep it clean for the 'new user rummaging around for a freebie scenario' - any_user.destroy_all_shopping_carts + any_user.destroy_jam_track_shopping_carts any_user.reload end @@ -207,6 +215,14 @@ module JamRuby cart end + def self.add_item_to_cart(any_user, item) + cart = nil + ShoppingCart.transaction do + cart = ShoppingCart.create(any_user, item, 1, false) + end + cart + end + # deletes a jam track from the shopping cart, updating redeem flag as necessary def self.remove_jam_track_from_cart(any_user, cart) ShoppingCart.transaction do @@ -236,6 +252,12 @@ module JamRuby end end + def self.remove_item_from_cart(any_user, cart) + ShoppingCart.transaction do + cart.destroy + end + end + # if the number of items in the shopping cart is less than gifted_jamtracks on the user, then fix them all up def self.apply_gifted_jamtracks(user) jam_track_carts = user.shopping_carts.where(cart_type:JamTrack::PRODUCT_TYPE) diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index f802954ea..907cd9776 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -150,6 +150,8 @@ module JamRuby # gift cards has_many :gift_cards, :class_name=> "JamRuby::GiftCard" + has_many :gift_card_purchases, :class_name=> "JamRuby::GiftCardPurchase" + # affiliate_partner has_one :affiliate_partner, :class_name => "JamRuby::AffiliatePartner", :foreign_key => :partner_user_id, inverse_of: :partner_user @@ -1678,6 +1680,11 @@ module JamRuby ShoppingCart.where("user_id=?", self).destroy_all end + def destroy_jam_track_shopping_carts + ShoppingCart.destroy_all(anonymous_user_id: @id, cart_type: JamTrack::PRODUCT_TYPE) + end + + def unsubscribe_token self.class.create_access_token(self) end diff --git a/ruby/spec/factories.rb b/ruby/spec/factories.rb index 1a9097e68..024ecdc20 100644 --- a/ruby/spec/factories.rb +++ b/ruby/spec/factories.rb @@ -862,7 +862,16 @@ FactoryGirl.define do factory :gift_card, class: 'JamRuby::GiftCard' do sequence(:code) {n.to_s} - card_type = JamRuby::GiftCard::JAM_TRACKS_10 + card_type JamRuby::GiftCardType::JAM_TRACKS_5 + end + + factory :gift_card_type, class: 'JamRuby::GiftCardType' do + card_type JamRuby::GiftCardType::JAM_TRACKS_5 + end + + factory :gift_card_purchase, class: 'JamRuby::GiftCardPurchase' do + + association :user, factory: :user end end diff --git a/ruby/spec/jam_ruby/models/recurly_transaction_web_hook_spec.rb b/ruby/spec/jam_ruby/models/recurly_transaction_web_hook_spec.rb index ba89aee20..bce945d20 100644 --- a/ruby/spec/jam_ruby/models/recurly_transaction_web_hook_spec.rb +++ b/ruby/spec/jam_ruby/models/recurly_transaction_web_hook_spec.rb @@ -135,7 +135,7 @@ describe RecurlyTransactionWebHook do RecurlyTransactionWebHook.create_from_xml(document) - JamTrackRight.find_by_id(jam_track_right.id).should be_nil + JamTrackRight.find_by_id(jam_track_right.id).should_not be_nil end it "deletes jam_track_right when voided" do @@ -154,7 +154,7 @@ describe RecurlyTransactionWebHook do RecurlyTransactionWebHook.create_from_xml(document) - JamTrackRight.find_by_id(jam_track_right.id).should be_nil + JamTrackRight.find_by_id(jam_track_right.id).should_not be_nil end end diff --git a/ruby/spec/jam_ruby/models/sale_line_item_spec.rb b/ruby/spec/jam_ruby/models/sale_line_item_spec.rb index 334166734..4d0340259 100644 --- a/ruby/spec/jam_ruby/models/sale_line_item_spec.rb +++ b/ruby/spec/jam_ruby/models/sale_line_item_spec.rb @@ -6,6 +6,7 @@ describe SaleLineItem do let(:user) {FactoryGirl.create(:user)} let(:user2) {FactoryGirl.create(:user)} let(:jam_track) {FactoryGirl.create(:jam_track)} + let(:gift_card) {FactoryGirl.create(:gift_card_type, card_type: GiftCardType::JAM_TRACKS_10)} describe "associations" do @@ -23,7 +24,7 @@ describe SaleLineItem do describe "state" do - it "success" do + it "jam track success" do sale = Sale.create_jam_track_sale(user) shopping_cart = ShoppingCart.create(user, jam_track) sale_line_item = SaleLineItem.create_from_shopping_cart(sale, shopping_cart, 'some_recurly_uuid', nil, nil) @@ -37,5 +38,20 @@ describe SaleLineItem do success: true }) end + + it "gift card success" do + sale = Sale.create_jam_track_sale(user) + shopping_cart = ShoppingCart.create(user, gift_card) + sale_line_item = SaleLineItem.create_from_shopping_cart(sale, shopping_cart, 'some_recurly_uuid', nil, nil) + transaction = FactoryGirl.create(:recurly_transaction_web_hook, subscription_id: 'some_recurly_uuid') + + sale_line_item.reload + sale_line_item.state.should eq({ + void: false, + refund: false, + fail: false, + success: true + }) + end end end diff --git a/ruby/spec/jam_ruby/models/sale_spec.rb b/ruby/spec/jam_ruby/models/sale_spec.rb index 6119a5973..fc89145cb 100644 --- a/ruby/spec/jam_ruby/models/sale_spec.rb +++ b/ruby/spec/jam_ruby/models/sale_spec.rb @@ -7,6 +7,7 @@ describe Sale do let(:jam_track) {FactoryGirl.create(:jam_track)} let(:jam_track2) {FactoryGirl.create(:jam_track)} let(:jam_track3) {FactoryGirl.create(:jam_track)} + let(:gift_card) {GiftCardType.jam_track_5} def assert_free_line_item(sale_line_item, jamtrack) sale_line_item.recurly_tax_in_cents.should be_nil @@ -68,6 +69,7 @@ describe Sale do let(:jamtrack3) { FactoryGirl.create(:jam_track) } let(:jamtrack4) { FactoryGirl.create(:jam_track) } let(:jam_track_price_in_cents) { (jamtrack.price * 100).to_i } + let(:gift_card_price_in_cents) { (gift_card.price * 100).to_i } let(:client) { RecurlyClient.new } let(:billing_info) { info = {} @@ -95,6 +97,77 @@ describe Sale do end end + it "for a gift card" do + shopping_cart = ShoppingCart.create user, gift_card, 1, false + client.find_or_create_account(user, billing_info) + + sales = Sale.place_order(user, [shopping_cart]) + + user.reload + user.sales.length.should eq(1) + + sales.should eq(user.sales) + sale = sales[0] + sale.recurly_invoice_id.should_not be_nil + + sale.recurly_subtotal_in_cents.should eq(gift_card_price_in_cents) + sale.recurly_tax_in_cents.should eq(0) + sale.recurly_total_in_cents.should eq(gift_card_price_in_cents) + sale.recurly_currency.should eq('USD') + + sale.order_total.should eq(gift_card.price) + sale.sale_line_items.length.should == 1 + sale_line_item = sale.sale_line_items[0] + # validate we are storing pricing info from recurly + sale_line_item.recurly_tax_in_cents.should eq(0) + sale_line_item.recurly_total_in_cents.should eq(gift_card_price_in_cents) + sale_line_item.recurly_currency.should eq('USD') + sale_line_item.recurly_discount_in_cents.should eq(0) + sale_line_item.product_type.should eq(GiftCardType::PRODUCT_TYPE) + sale_line_item.unit_price.should eq(gift_card.price) + sale_line_item.quantity.should eq(1) + sale_line_item.free.should eq(0) + sale_line_item.sales_tax.should be_nil + sale_line_item.shipping_handling.should eq(0) + sale_line_item.recurly_plan_code.should eq(gift_card.plan_code) + sale_line_item.product_id.should eq(gift_card.id) + sale_line_item.recurly_subscription_uuid.should be_nil + sale_line_item.recurly_adjustment_uuid.should_not be_nil + sale_line_item.recurly_adjustment_credit_uuid.should be_nil + sale_line_item.recurly_adjustment_uuid.should_not be_nil + + # verify subscription is in Recurly + recurly_account = client.get_account(user) + adjustments = recurly_account.adjustments + adjustments.should_not be_nil + adjustments.should have(1).items + purchase= adjustments[0] + purchase.unit_amount_in_cents.should eq((gift_card.price * 100).to_i) + purchase.accounting_code.should eq(ShoppingCart::PURCHASE_NORMAL) + purchase.description.should eq("JamTracks Gift Card (5)") + purchase.state.should eq('invoiced') + purchase.uuid.should eq(sale_line_item.recurly_adjustment_uuid) + + invoices = recurly_account.invoices + invoices.should have(1).items + invoice = invoices[0] + invoice.uuid.should eq(sale.recurly_invoice_id) + invoice.line_items.should have(1).items # should have single adjustment associated + invoice.line_items[0].should eq(purchase) + invoice.subtotal_in_cents.should eq((gift_card.price * 100).to_i) + invoice.total_in_cents.should eq((gift_card.price * 100).to_i) + invoice.state.should eq('collected') + + # verify jam_track_rights data + user.gift_card_purchases.should_not be_nil + user.gift_card_purchases.should have(1).items + user.gift_card_purchases.last.gift_card_type.should eq(GiftCardType.jam_track_5) + user.has_redeemable_jamtrack.should be_true + + sale_line_item.affiliate_referral.should be_nil + sale_line_item.affiliate_referral_fee_in_cents.should be_nil + end + it "for a free jam track" do shopping_cart = ShoppingCart.create user, jamtrack, 1, true @@ -195,48 +268,25 @@ describe Sale do # OK! Now make a second purchase; this time, buy one free, one not free shopping_cart3 = ShoppingCart.create user, jamtrack3, 1, true - shopping_cart4 = ShoppingCart.create user, jamtrack4, 1, false client.find_or_create_account(user, billing_info) - sales = Sale.place_order(user, [shopping_cart3, shopping_cart4]) + sales = Sale.place_order(user, [shopping_cart3]) user.reload user.sales.length.should eq(2) sale = sales[0] sale.reload - sale.recurly_invoice_id.should_not be_nil + sale.recurly_invoice_id.should be_nil sale.recurly_subtotal_in_cents.should eq(0) sale.recurly_tax_in_cents.should eq(0) sale.recurly_total_in_cents.should eq(0) sale.recurly_currency.should eq('USD') sale.order_total.should eq(0) - sale.sale_line_items.length.should == 2 + sale.sale_line_items.length.should == 1 assert_free_line_item(sale.sale_line_items[0], jamtrack3) - - paid_right = JamTrackRight.where(user_id:user.id).where(jam_track_id: jamtrack4.id).first - - sale_line_item.recurly_total_in_cents.should eq(jam_track_price_in_cents) - sale_line_item.recurly_currency.should eq('USD') - sale_line_item.recurly_discount_in_cents.should eq(0) - sale_line_item.product_type.should eq(JamTrack::PRODUCT_TYPE) - sale_line_item.unit_price.should eq(jamtrack4.price) - sale_line_item.quantity.should eq(1) - sale_line_item.free.should eq(0) - sale_line_item.sales_tax.should be_nil - sale_line_item.shipping_handling.should eq(0) - sale_line_item.recurly_plan_code.should eq(jamtrack4.plan_code) - sale_line_item.product_id.should eq(jamtrack.id) - sale_line_item.recurly_subscription_uuid.should be_nil - sale_line_item.recurly_adjustment_uuid.should_not be_nil - sale_line_item.recurly_adjustment_credit_uuid.should be_nil - sale_line_item.recurly_adjustment_uuid.should eq(paid_right.recurly_adjustment_uuid) - - user.has_redeemable_jamtrack.should be_false - user.gifted_jamtracks.should eq(0) - end it "for a free jam track with an affiliate association" do diff --git a/ruby/spec/jam_ruby/models/shopping_cart_spec.rb b/ruby/spec/jam_ruby/models/shopping_cart_spec.rb index 58a528c7b..8d3b724b1 100644 --- a/ruby/spec/jam_ruby/models/shopping_cart_spec.rb +++ b/ruby/spec/jam_ruby/models/shopping_cart_spec.rb @@ -10,6 +10,8 @@ describe ShoppingCart do let(:jam_track5) { FactoryGirl.create(:jam_track) } let(:jam_track6) { FactoryGirl.create(:jam_track) } let(:jam_track7) { FactoryGirl.create(:jam_track) } + let(:gift_card) {FactoryGirl.create(:gift_card_type)} + let(:gift_card2) {FactoryGirl.create(:gift_card_type)} before(:each) do ShoppingCart.delete_all @@ -29,7 +31,6 @@ describe ShoppingCart do user.shopping_carts[0].quantity.should == 1 end - it "maintains only one free JamTrack in ShoppingCart" do cart1 = ShoppingCart.add_jam_track_to_cart(user, jam_track, clear: true) cart1.should_not be_nil @@ -39,8 +40,12 @@ describe ShoppingCart do cart2.errors.any?.should be_false user.reload user.shopping_carts.length.should eq(1) - cart3 = ShoppingCart.add_jam_track_to_cart(user, jam_track2, clear: true) - cart3.errors.any?.should be_false + cart3 = ShoppingCart.add_item_to_cart(user, gift_card) + cart3.errors.any?.should be_true + user.reload + user.shopping_carts.length.should eq(1) + cart4 = ShoppingCart.add_jam_track_to_cart(user, jam_track2, clear: true) + cart4.errors.any?.should be_false user.reload user.shopping_carts.length.should eq(1) end @@ -56,6 +61,10 @@ describe ShoppingCart do cart2.errors.any?.should be_true end + it "a second giftcard just adds quantity" do + + end + describe "redeemable behavior" do it "removes redeemable item to shopping cart (maintains only one in cart)" do @@ -153,6 +162,25 @@ describe ShoppingCart do end end + describe "gift cards" do + it "can not add multiple of same type" do + cart1 = ShoppingCart.add_item_to_cart(user, gift_card) + cart1.should_not be_nil + cart1.errors.any?.should be_false + + user.reload + user.has_redeemable_jamtrack = true + user.shopping_carts.length.should eq(1) + user.shopping_carts[0].quantity.should eql(1) + + cart2 = ShoppingCart.add_item_to_cart(user, gift_card) + cart2.should_not be_nil + # it's the same type, so it's blocked + cart2.errors.any?.should be_true + cart2.errors[:cart_id].should eq(["has already been taken"]) + end + end + describe "mixed" do it "non-free then free" do # you shouldn't be able to add a free after a non-free diff --git a/ruby/spec/spec_helper.rb b/ruby/spec/spec_helper.rb index 93ec5dda7..7f189e159 100644 --- a/ruby/spec/spec_helper.rb +++ b/ruby/spec/spec_helper.rb @@ -95,13 +95,13 @@ end config.before(:suite) do DatabaseCleaner.strategy = :transaction - DatabaseCleaner.clean_with(:deletion, {pre_count: true, reset_ids:false, :except => %w[instruments genres icecast_server_groups jamcompany jamisp geoipblocks geoipisp geoiplocations cities regions countries generic_state spatial_ref_sys] }) + DatabaseCleaner.clean_with(:deletion, {pre_count: true, reset_ids:false, :except => %w[gift_card_types instruments genres icecast_server_groups jamcompany jamisp geoipblocks geoipisp geoiplocations cities regions countries generic_state spatial_ref_sys] }) end config.around(:each) do |example| # set no_transaction: true as metadata on your test to use deletion strategy instead if example.metadata[:no_transaction] - DatabaseCleaner.strategy = :deletion, {pre_count: true, reset_ids:false, :except => %w[instruments genres icecast_server_groups jamcompany jamisp geoipblocks geoipisp geoiplocations cities regions countries generic_state spatial_ref_sys] } + DatabaseCleaner.strategy = :deletion, {pre_count: true, reset_ids:false, :except => %w[gift_card_types instruments genres icecast_server_groups jamcompany jamisp geoipblocks geoipisp geoiplocations cities regions countries generic_state spatial_ref_sys] } else DatabaseCleaner.strategy = :transaction end diff --git a/web/app/assets/javascripts/checkout_complete.js b/web/app/assets/javascripts/checkout_complete.js index 4f1e96110..aa52214b9 100644 --- a/web/app/assets/javascripts/checkout_complete.js +++ b/web/app/assets/javascripts/checkout_complete.js @@ -15,6 +15,7 @@ var $templatePurchasedJamTrack = null; var $thanksPanel = null; var $jamTrackInBrowser = null; + var $giftCardPurchased = null; var $purchasedJamTrack = null; var $purchasedJamTrackHeader = null; var $purchasedJamTracks = null; @@ -75,9 +76,17 @@ else { $thanksPanel.removeClass('hidden') handleJamTracksPurchased(purchaseResponse.jam_tracks) + handleGiftCardsPurchased(purchaseResponse.gift_cards) } } + + function handleGiftCardsPurchased(gift_cards) { + // were any GiftCards purchased? + if(gift_cards && gift_cards.length > 0) { + $giftCardPurchased.removeClass('hidden') + } + } function handleJamTracksPurchased(jamTracks) { // were any JamTracks purchased? var jamTracksPurchased = jamTracks && jamTracks.length > 0; @@ -194,6 +203,7 @@ $templatePurchasedJamTrack = $('#template-purchased-jam-track'); $thanksPanel = $screen.find(".thanks-panel"); $jamTrackInBrowser = $screen.find(".thanks-detail.jam-tracks-in-browser"); + $giftCardPurchased = $screen.find('.thanks-detail.gift-card') $purchasedJamTrack = $thanksPanel.find(".thanks-detail.purchased-jam-track"); $purchasedJamTrackHeader = $purchasedJamTrack.find(".purchased-jam-track-header"); $purchasedJamTracks = $purchasedJamTrack.find(".purchased-list") diff --git a/web/app/assets/javascripts/checkout_order.js b/web/app/assets/javascripts/checkout_order.js index 168b965d6..a69c0a39c 100644 --- a/web/app/assets/javascripts/checkout_order.js +++ b/web/app/assets/javascripts/checkout_order.js @@ -135,15 +135,7 @@ } } - function displayTax(effectiveQuantity, item_tax, total_with_tax) { - var totalTax = 0; - var totalPrice = 0; - - var unitTax = item_tax * effectiveQuantity; - totalTax += unitTax; - - var totalUnitPrice = total_with_tax * effectiveQuantity; - totalPrice += totalUnitPrice; + function displayTax(totalTax, totalPrice) { $screen.find('.order-right-page .order-items-value.taxes').text('$' + totalTax.toFixed(2)) $screen.find('.order-right-page .order-items-value.grand-total').text('$' + totalPrice.toFixed(2)) @@ -181,8 +173,16 @@ taxRate = 0.0825; } - var unitTax = 1.99 * taxRate; - displayTax(effectiveQuantity, unitTax, 1.99 + unitTax) + var estimatedTax = 0; + var estimatedTotal = 0; + + context._.each(carts, function(cart) { + var cart_quantity = cart.product_info.quantity - cart.product_info.marked_for_redeem + estimatedTax += cart.product_info.price * cart_quantity * taxRate; + estimatedTotal += cart.product_info.price * cart_quantity; + }) + + displayTax(Math.round(estimatedTax*100)/100, Math.round((estimatedTotal + estimatedTax)*100)/100) } else { checkoutUtils.configureRecurly() diff --git a/web/app/assets/javascripts/jam_rest.js b/web/app/assets/javascripts/jam_rest.js index b2d7a604a..10461d496 100644 --- a/web/app/assets/javascripts/jam_rest.js +++ b/web/app/assets/javascripts/jam_rest.js @@ -1805,6 +1805,17 @@ return deferred } + function addGiftCardToShoppingCart(options) { + var deferred = $.ajax({ + type: "POST", + url: '/api/shopping_carts/add_gift_card?' + $.param(options), + dataType: "json", + contentType: 'application/json' + }); + + return deferred + } + function getShoppingCarts() { // the need for the time de-duplicator indicates we are doing something wrong on the server return $.ajax({ @@ -2188,6 +2199,7 @@ this.enqueueJamTrack = enqueueJamTrack; this.getBackingTracks = getBackingTracks; this.addJamtrackToShoppingCart = addJamtrackToShoppingCart; + this.addGiftCardToShoppingCart = addGiftCardToShoppingCart; this.getShoppingCarts = getShoppingCarts; this.removeShoppingCart = removeShoppingCart; this.clearShoppingCart = clearShoppingCart; diff --git a/web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee b/web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee new file mode 100644 index 000000000..e55cceb26 --- /dev/null +++ b/web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee @@ -0,0 +1,93 @@ +context = window +rest = context.JK.Rest() + +@GiftCardLandingPage = React.createClass({ + + render: () -> + + if this.state.done + ctaButtonText10 = 'sending you in...' + ctaButtonText20 = 'sending you in...' + else if this.state.processing + ctaButtonText10 = 'hold on...' + ctaButtonText20 = 'hold on...' + else + ctaButtonText10 = `ADD $10 CARD
    TO CART
    ` + ctaButtonText20 = `ADD $20 CARD
    TO CART
    ` + + + ctaButtons = + `
    + + +
    ` + + + `
    +
    +
    + gift card +

    $10 or $20 JAMTRACKS GIFT CARDS

    +

    A PERFECT GIFT FOR THE HOLIDAYS

    +
    +
    +
    + + +
    + Preview JamTrack +
    +
    +

    Click the play buttons below to preview the master mix and 20-second samples of all the isolated tracks.

    +
    + +
    +

    + Get a $10 gift card (good for 5 songs) or a $20 gift card (good for 10 songs), and your happy + gift card getter can choose their favorites from our catalog of 3,700+ popular songs. +

    + {ctaButtons} + or browse our catalog of 3,700+ songs +
    +
    +
    +
    +

    + JamTracks by JamKazam are the best way to play along with your favorite songs. Far better and different than traditional + backing tracks, our JamTracks are complete multi-track professional recordings, with fully isolated tracks for each part of the music. + And our free app and Internet service are packed with features that give you unmatched creative freedom to learn, practice, record, play with others, and share your performances. +

    +
    +
    ` + + getInitialState: () -> + {processing:false} + + componentDidMount:() -> + $root = $(this.getDOMNode()) + +# add item to cart, create the user if necessary, and then place the order to get the free JamTrack. + ctaClick: (card_type, e) -> + e.preventDefault() + + return if @state.processing + + loggedIn = context.JK.currentUserId? + + rest.addGiftCardToShoppingCart({id: card_type}).done((response) => + + if loggedIn + @setState({done: true}) + context.location = '/client#/shoppingCart' + else + @setState({done: true}) + context.location = '/client#/checkoutPayment' + + ).fail((jqXHR, textStatus, errorMessage) => + if jqXHR.status == 422 + errors = JSON.parse(jqXHR.responseText) + cart_errors = errors?.errors?.cart_id + context.JK.app.ajaxError(jqXHR, textStatus, errorMessage) + @setState({processing:false}) + ) +}) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee b/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee index 6819fbf4d..c92bbe9d7 100644 --- a/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/UserStore.js.coffee @@ -24,8 +24,8 @@ logger = context.JK.logger onModify: (changes) -> @user = $.extend({}, @user, changes) - @changed( - ) + @changed() + changed:() -> @trigger({user: @user}) } diff --git a/web/app/assets/stylesheets/client/checkout_complete.css.scss b/web/app/assets/stylesheets/client/checkout_complete.css.scss index 45c9b3951..154cb17bc 100644 --- a/web/app/assets/stylesheets/client/checkout_complete.css.scss +++ b/web/app/assets/stylesheets/client/checkout_complete.css.scss @@ -73,6 +73,10 @@ } } } + .thanks-detail.gift-card{ + margin-top: 20px; + } + .thanks-detail.purchased-jam-track { margin-top:20px; diff --git a/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss b/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss index c54f8bd2f..b48592f3b 100644 --- a/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss +++ b/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss @@ -162,6 +162,18 @@ body.web.individual_jamtrack { text-align: center; } + img.gift-card-preview { + width:300px; + float: left; + margin-left: -15px; // because image has black on the left, which you can't see on back background + margin-right: 20px; + margin-bottom: 20px; + } + p.gift-getter { + margin-top:20px; + line-height:125%; + } + img.app-preview { width: 340px; float: left; @@ -205,6 +217,9 @@ body.web.individual_jamtrack { .browse-all { color: #ffb800; + text-decoration: underline; + text-align: center; + display: block; } p { @@ -320,6 +335,11 @@ body.web.individual_jamtrack { padding: 10px; border-width: 0 0 $chunkyBorderWidth; + + &.gift-card { + border-width: 0 0 2px; + } + border-style: solid; border-color: $copy-color-on-dark; @@ -338,6 +358,9 @@ body.web.individual_jamtrack { margin-bottom:10px; } + .cta-buttons { + text-align:center; + } .cta-button { font-size: 24px; color: white; @@ -348,6 +371,13 @@ body.web.individual_jamtrack { width: 100%; border: 1px outset buttonface; font-family: Raleway, Arial, Helvetica, sans-serif; + + &.gift-card { + font-size:16px; + width:138px; + margin:15px 5px; + display:inline-block; + } } } @@ -385,12 +415,7 @@ body.web.individual_jamtrack { border: 1px outset buttonface; font-family: Raleway, Arial, Helvetica, sans-serif; } - .browse-all { - text-decoration: underline; - text-align: center; - display: block; - } .privacy-policy { text-decoration: underline; } diff --git a/web/app/controllers/api_recurly_controller.rb b/web/app/controllers/api_recurly_controller.rb index e051e17fc..1da2f62e0 100644 --- a/web/app/controllers/api_recurly_controller.rb +++ b/web/app/controllers/api_recurly_controller.rb @@ -124,7 +124,7 @@ class ApiRecurlyController < ApiController def place_order error=nil - response = {jam_tracks: []} + response = {jam_tracks: [], gift_cards: []} if Sale.is_mixed(current_user.shopping_carts) msg = "has free and non-free items. Try removing non-free items." @@ -136,11 +136,16 @@ class ApiRecurlyController < ApiController sales.each do |sale| - if sale.is_jam_track_sale? - sale.sale_line_items.each do |line_item| + sale.sale_line_items.each do |line_item| + if line_item.is_jam_track? jam_track = line_item.product jam_track_right = jam_track.right_for_user(current_user) response[:jam_tracks] << {name: jam_track.name, id: jam_track.id, jam_track_right_id: jam_track_right.id, version: jam_track.version} + elsif line_item.is_gift_card? + gift_card = line_item.product + response[:gift_cards] << {name: gift_card.name, id: gift_card.id} + else + raise 'unknown sale line item type: ' + line_item.product_type end end end diff --git a/web/app/controllers/api_shopping_carts_controller.rb b/web/app/controllers/api_shopping_carts_controller.rb index 0d1256daf..e45429f86 100644 --- a/web/app/controllers/api_shopping_carts_controller.rb +++ b/web/app/controllers/api_shopping_carts_controller.rb @@ -30,6 +30,34 @@ class ApiShoppingCartsController < ApiController end end + def add_gift_card + gift_card_type = nil + + id = params[:id] + + if id && id.to_i == 5 + gift_card_type = 'jam_tracks_5' + elsif id && id.to_i == 10 + gift_card_type = 'jam_tracks_10' + end + + gift_card = GiftCardType.find_by_id(gift_card_type) + + # verify GiftCard exists + if gift_card.nil? + raise StateError, "Invalid JamTrack." + end + + @cart = ShoppingCart.add_item_to_cart(any_user, gift_card) + + if @cart.errors.any? + response.status = :unprocessable_entity + respond_with @cart + else + # let add_gift_card.rabl take over + end + end + def update_cart @cart = ShoppingCart.find_by_id params[:id] diff --git a/web/app/controllers/landings_controller.rb b/web/app/controllers/landings_controller.rb index 5e6cc538e..e566b6adb 100644 --- a/web/app/controllers/landings_controller.rb +++ b/web/app/controllers/landings_controller.rb @@ -213,5 +213,28 @@ class LandingsController < ApplicationController @landing_tag_play_learn_earn = true render 'redeem_giftcard', layout: 'web' end + + def buy_gift_card + @no_landing_tag = true + @landing_tag_play_learn_earn = true + @show_after_black_bar_border = true + @jam_track = JamTrack.find_by_slug('elton-john-rocket-man') + @jam_track = JamTrack.first unless @jam_track + + instrument_id = nil + instrument_name = nil + instrument_count = 0 + + band_jam_track_count = @jam_track.band_jam_track_count + jam_track_count = JamTrack.count + @title = individual_jamtrack_title(false, params[:generic], @jam_track) + @description = individual_jamtrack_desc(false, params[:generic], @jam_track) + @page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: false, generic: params[:generic], instrument: instrument_name, instrument_id: instrument_id, instrument_count: instrument_count} + gon.jam_track_plan_code = @jam_track.plan_code if @jam_track + gon.generic = params[:generic] + gon.instrument_id = instrument_id + + render 'buy_gift_card', layout: 'web' + end end diff --git a/web/app/views/api_shopping_carts/add_gift_card.rabl b/web/app/views/api_shopping_carts/add_gift_card.rabl new file mode 100644 index 000000000..272eb3c6d --- /dev/null +++ b/web/app/views/api_shopping_carts/add_gift_card.rabl @@ -0,0 +1,5 @@ +extends "api_shopping_carts/show" + +node :show_free_jamtrack do + any_user.show_free_jamtrack? +end \ No newline at end of file diff --git a/web/app/views/clients/_checkout_complete.html.slim b/web/app/views/clients/_checkout_complete.html.slim index d6c09da27..eaf440ff3 100644 --- a/web/app/views/clients/_checkout_complete.html.slim +++ b/web/app/views/clients/_checkout_complete.html.slim @@ -19,6 +19,8 @@ div layout="screen" layout-id="checkoutComplete" id="checkoutCompleteScreen" cla br .thanks-detail We'll send you an email confirming your order shortly. br + .thanks-detail.gift-card.hidden + p Thank you for purchasing a JamTrack Gift Card! It will be mailed to you. .thanks-detail.jam-tracks-in-browser.hidden p To play your purchased JamTrack, launch the JamKazam application and open the JamTrack while in a session. a.download-jamkazam-wrapper.hidden href="/downloads" rel="external" diff --git a/web/app/views/clients/_checkout_order.html.slim b/web/app/views/clients/_checkout_order.html.slim index 1a62e7066..3726e782f 100644 --- a/web/app/views/clients/_checkout_order.html.slim +++ b/web/app/views/clients/_checkout_order.html.slim @@ -90,7 +90,7 @@ script type='text/template' id='template-order-content' = "{% _.each(data.carts, function(cart) { %}" .cart-item cart-id="{{cart.id}}" .cart-item-caption - = "{{cart.cart_type}}: {{cart.product_info.name}}" + = "{{cart.product_info.sale_display}}" = "{% if (cart.product_info.free) { %}" span.first-one-free | (first one free) diff --git a/web/app/views/clients/_checkout_payment.html.slim b/web/app/views/clients/_checkout_payment.html.slim index 1bf5794a4..5f1d1d323 100644 --- a/web/app/views/clients/_checkout_payment.html.slim +++ b/web/app/views/clients/_checkout_payment.html.slim @@ -10,8 +10,7 @@ div layout="screen" layout-id="checkoutPayment" id="checkoutPaymentScreen" class .checkout-navigation-bar .payment-wrapper p.payment-prompt.free-jamtrack.hidden - | Please enter your billing address and payment information below. You will not be billed for your first JamTrack, which is 100% free.  - | But we need this data to prevent fraud/abuse of those who would create multiple accounts to collect multiple free JamTracks.  + | Please enter your billing address and payment information below.  | You will not be billed for any charges of any kind without your explicit authorization.  | There are no "hidden" charges or fees, thank you! p.payment-prompt.no-free-jamtrack.hidden diff --git a/web/app/views/clients/_shopping_cart.html.haml b/web/app/views/clients/_shopping_cart.html.haml index 1db6fe56b..5ab90b902 100644 --- a/web/app/views/clients/_shopping_cart.html.haml +++ b/web/app/views/clients/_shopping_cart.html.haml @@ -40,7 +40,7 @@ = "{% _.each(data.carts, function(cart, index) { %}" %tr.cart-item{"cart-id" => "{{cart.id}}"} %td.cart-item-caption - {{cart.cart_type}}: {{cart.product_info.name}} + {{cart.product_info.sale_display}} %td.cart-item-price $ {{Number(cart.product_info.real_price).toFixed(2)}} = "{% if(index == data.carts.length - 1) { %}" diff --git a/web/app/views/landings/buy_gift_card.html.slim b/web/app/views/landings/buy_gift_card.html.slim new file mode 100644 index 000000000..cc96f704d --- /dev/null +++ b/web/app/views/landings/buy_gift_card.html.slim @@ -0,0 +1,24 @@ +- provide(:page_name, 'landing_page full individual_jamtrack') +- provide(:description, @description) +- provide(:title, @title) + += react_component 'GiftCardLandingPage', @page_data.to_json + +- content_for :after_black_bar do + .row.cta-row + h2 GET YOUR GIFT CARD NOW! + p And join 20,000+ other musicians who love our JamTracks. + p.cta-text Not sure if JamTracks are for you? Scroll down to learn more. + +- content_for :white_bar do + = react_component 'JamTrackLandingBottomPage', @page_data.to_json + +- content_for :red_bar do + .full-row + | Get your free JamTrack and start playing today! + +javascript: + $(document).on('JAMKAZAM_READY', function(e, data) { + var song = new JK.IndividualJamTrack(data.app, true); + song.initialize(); + }) diff --git a/web/config/routes.rb b/web/config/routes.rb index 8ce1181e5..cb96586fe 100644 --- a/web/config/routes.rb +++ b/web/config/routes.rb @@ -41,6 +41,7 @@ SampleApp::Application.routes.draw do match '/landing/jamtracks/:plan_code', to: 'landings#individual_jamtrack', via: :get, as: 'individual_jamtrack' match '/landing/jamtracks/band/:plan_code', to: 'landings#individual_jamtrack_band', via: :get, as: 'individual_jamtrack_band' match '/landing/jamtracks/:instrument/:plan_code', to: 'landings#individual_jamtrack', via: :get, as: 'individual_jamtrack_instrument' + match '/landing/gift-card', to: 'landings#buy_gift_card', via: :get, as: 'buy_gift_card' match '/affiliateProgram', to: 'landings#affiliate_program', via: :get, as: 'affiliate_program' @@ -276,6 +277,7 @@ SampleApp::Application.routes.draw do match '/shopping_carts' => 'api_shopping_carts#index', :via => :get match '/shopping_carts' => 'api_shopping_carts#remove_cart', :via => :delete match '/shopping_carts/clear_all' => 'api_shopping_carts#clear_all', :via => :delete + match '/shopping_carts/add_gift_card' => 'api_shopping_carts#add_gift_card', :via => :post # RSVP requests match '/rsvp_requests' => 'api_rsvp_requests#index', :via => :get diff --git a/web/spec/controllers/api_users_controller_spec.rb b/web/spec/controllers/api_users_controller_spec.rb index 6c7d83fdb..b57746459 100644 --- a/web/spec/controllers/api_users_controller_spec.rb +++ b/web/spec/controllers/api_users_controller_spec.rb @@ -24,7 +24,7 @@ describe ApiUsersController do gift_card.reload user.gift_cards.should eq([gift_card]) - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) gift_card.user.should eq(user) end @@ -42,7 +42,7 @@ describe ApiUsersController do gift_card.reload user.gift_cards.should eq([gift_card]) - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) gift_card.user.should eq(user) end @@ -78,7 +78,7 @@ describe ApiUsersController do gift_card.reload user.gift_cards.should eq([gift_card]) - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) gift_card.user.should eq(user) cart1.reload cart1.marked_for_redeem.should eq(1) @@ -100,7 +100,7 @@ describe ApiUsersController do gift_card.reload user.gift_cards.should eq([gift_card]) - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) gift_card.user.should eq(user) cart1.reload cart1.marked_for_redeem.should eq(1) @@ -125,7 +125,7 @@ describe ApiUsersController do gift_card.reload user.gift_cards.should eq([gift_card]) - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) gift_card.user.should eq(user) user.shopping_carts.each do |cart| cart.marked_for_redeem.should eq(0) diff --git a/web/spec/factories.rb b/web/spec/factories.rb index bc51f447e..99fbb3fbe 100644 --- a/web/spec/factories.rb +++ b/web/spec/factories.rb @@ -842,6 +842,6 @@ FactoryGirl.define do factory :gift_card, class: 'JamRuby::GiftCard' do sequence(:code) {|n| n.to_s} - card_type GiftCard::JAM_TRACKS_10 + card_type GiftCard::JAM_TRACKS_5 end end diff --git a/web/spec/features/checkout_spec.rb b/web/spec/features/checkout_spec.rb index 2ee4d81c7..24a1c23a9 100644 --- a/web/spec/features/checkout_spec.rb +++ b/web/spec/features/checkout_spec.rb @@ -827,8 +827,6 @@ describe "Checkout", :js => true, :type => :feature, :capybara_feature => true d acdc_sale.free.should eq(0) acdc_sale.unit_price.should eq(1.99) acdc_sale.sale.should eq(sale) - - end it "for anonymous user with referral" do diff --git a/web/spec/features/gift_card_landing_spec.rb b/web/spec/features/gift_card_landing_spec.rb new file mode 100644 index 000000000..4e61e1cfc --- /dev/null +++ b/web/spec/features/gift_card_landing_spec.rb @@ -0,0 +1,245 @@ +require 'spec_helper' + +describe "Gift Card Landing", :js => true, :type => :feature, :capybara_feature => true do + + subject { page } + + before(:all) do + ShoppingCart.delete_all + JamTrackRight.delete_all + JamTrack.delete_all + JamTrackTrack.delete_all + JamTrackLicensor.delete_all + GiftCardPurchase.delete_all + GiftCard.delete_all + end + + before(:all) do + @jamtrack_rocketman = FactoryGirl.create(:jam_track, slug: 'elton-john-rocket-man', name: 'Rocket Man', original_artist: 'Elton John', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-acdc-backinblack') + end + + + let(:jamtrack_rocketman) {@jamtrack_rocketman} + let(:user) { FactoryGirl.create(:user, country: 'US') } + + let(:billing_info) { + { + first_name: 'Seth', + last_name: 'Call', + address1: '10704 Buckthorn Drive', + city: 'Austin', + state: 'Texas', + country: 'US', + zip: '78759', + number: '4111111111111111', + month: '08', + year: '2017', + verification_value: '012' + } + } + + it "logged out (5) and affiliate" do + partner = FactoryGirl.create(:affiliate_partner) + affiliate_params = partner.affiliate_query_params + visit "/landing/gift-card?" + affiliate_params + + find('h1.jam-track-name', '$10 or $20 JAMTRACKS GIFT CARDS') + find('h2.original-artist', 'A PERFECT GIFT FOR THE HOLIDAYS') + jamtrack_rocketman.jam_track_tracks.each do |track| + if track.master? + find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]') + find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text: 'Master Mix') + else + find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]') + find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text: track.instrument.description) + end + end + find('a.browse-all')['href'].should eq("/client?search=#/jamtrack/search") + find('button.five-jt', text: 'ADD $10 CARD TO CART').trigger(:click) + + + find('h1', text: 'check out') + + # fill out all billing info and account info + fill_in 'billing-first-name', with: 'Seth' + fill_in 'billing-last-name', with: 'Call' + fill_in 'billing-address1', with: '10704 Buckthorn Drive' + fill_in 'billing-city', with: 'Austin' + fill_in 'billing-state', with: 'Texas' + fill_in 'billing-zip', with: '78759' + fill_in 'card-number', with: '4111111111111111' + fill_in 'card-verify', with: '012' + + # fill in user/email/tos + fill_in 'email', with: 'bogus+gc1@jamkazam.com' + fill_in 'password', with: 'jam123' + find('#divJamKazamTos ins.iCheck-helper').trigger(:click) # accept TOS + + # try to submit, and see order page + find('#payment-info-next').trigger(:click) + + find('.order-items-value.sub-total', text:'10.00') + find('.order-items-value.taxes', text:'0.83') + find('.order-items-value.order-total', text:'$10.00') + find('.order-items-value.grand-total', text:'$10.83') + + # click the ORDER button + find('.place-order-center a.button-orange.place-order').trigger(:click) + + # and now we should see confirmation, and a notice that we are in a normal browser + find('.thanks-detail.gift-card') + + created_user = User.find_by_email('bogus+gc1@jamkazam.com') + + sleep 3 # challenge to all comers! WHY DO I HAVE TO SLEEP FOR THIS ASSERTION TO BE TRUE! GAH . and 1 second won't do it + + created_user.reload + created_user.has_redeemable_jamtrack.should be_true + created_user.gifted_jamtracks.should eq(0) + created_user.gift_card_purchases.length.should eq(1) + + # verify sales data + created_user.sales.length.should eq(1) + sale = created_user.sales.last + sale.sale_line_items.length.should eq(1) + line_item = sale.sale_line_items[0] + line_item.product_type.should eq('GiftCardType') + line_item.product_id.should eq('jam_tracks_5') + line_item.quantity.should eq(1) + line_item.free.should eq(0) + line_item.unit_price.should eq(10.00) + line_item.sale.should eq(sale) + line_item.affiliate_referral.should eq(partner) + line_item.affiliate_refunded.should be_false + line_item.affiliate_refunded_at.should be_nil + line_item.affiliate_referral_fee_in_cents.should eq(10.00 * partner.rate * 100) + end + + it "logged out (10)" do + visit "/landing/gift-card" + + find('h1.jam-track-name', '$10 or $20 JAMTRACKS GIFT CARDS') + find('h2.original-artist', 'A PERFECT GIFT FOR THE HOLIDAYS') + jamtrack_rocketman.jam_track_tracks.each do |track| + if track.master? + find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]') + find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text: 'Master Mix') + else + find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]') + find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text: track.instrument.description) + end + end + find('a.browse-all')['href'].should eq("/client?search=#/jamtrack/search") + find('button.ten-jt', text: 'ADD $20 CARD TO CART').trigger(:click) + + + find('h1', text: 'check out') + + # fill out all billing info and account info + fill_in 'billing-first-name', with: 'Seth' + fill_in 'billing-last-name', with: 'Call' + fill_in 'billing-address1', with: '10704 Buckthorn Drive' + fill_in 'billing-city', with: 'Austin' + fill_in 'billing-state', with: 'Texas' + fill_in 'billing-zip', with: '78759' + fill_in 'card-number', with: '4111111111111111' + fill_in 'card-verify', with: '012' + + # fill in user/email/tos + fill_in 'email', with: 'bogus+gc2@jamkazam.com' + fill_in 'password', with: 'jam123' + find('#divJamKazamTos ins.iCheck-helper').trigger(:click) # accept TOS + + # try to submit, and see order page + find('#payment-info-next').trigger(:click) + + find('.order-items-value.sub-total', text:'20.00') + find('.order-items-value.taxes', text:'1.65') + find('.order-items-value.order-total', text:'$20.00') + find('.order-items-value.grand-total', text:'$21.65') + + # click the ORDER button + find('.place-order-center a.button-orange.place-order').trigger(:click) + + # and now we should see confirmation, and a notice that we are in a normal browser + find('.thanks-detail.gift-card') + + created_user = User.find_by_email('bogus+gc2@jamkazam.com') + + sleep 3 # challenge to all comers! WHY DO I HAVE TO SLEEP FOR THIS ASSERTION TO BE TRUE! GAH . and 1 second won't do it + + created_user.reload + created_user.has_redeemable_jamtrack.should be_true + created_user.gifted_jamtracks.should eq(0) + created_user.gift_card_purchases.length.should eq(1) + + # verify sales data + created_user.sales.length.should eq(1) + sale = created_user.sales.last + sale.sale_line_items.length.should eq(1) + line_item = sale.sale_line_items[0] + line_item.product_type.should eq('GiftCardType') + line_item.product_id.should eq('jam_tracks_10') + line_item.quantity.should eq(1) + line_item.free.should eq(0) + line_item.unit_price.should eq(20.00) + line_item.sale.should eq(sale) + end + + it "logged in (5)" do + fast_signin(user,"/landing/gift-card") + + find('h1.jam-track-name', '$10 or $20 JAMTRACKS GIFT CARDS') + find('h2.original-artist', 'A PERFECT GIFT FOR THE HOLIDAYS') + jamtrack_rocketman.jam_track_tracks.each do |track| + if track.master? + find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]') + find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text: 'Master Mix') + else + find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]') + find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text: track.instrument.description) + end + end + find('a.browse-all')['href'].should eq("/client?search=#/jamtrack/search") + find('button.five-jt', text: 'ADD $10 CARD TO CART').trigger(:click) + + # land in shopping cart because we are a user; log in + find('.proceed-checkout').trigger(:click) + + find('h1', text: 'check out') + + # fill out all billing info and account info + fill_in 'billing-first-name', with: 'Seth' + fill_in 'billing-last-name', with: 'Call' + fill_in 'billing-address1', with: '10704 Buckthorn Drive' + fill_in 'billing-city', with: 'Austin' + fill_in 'billing-state', with: 'Texas' + fill_in 'billing-zip', with: '78759' + fill_in 'card-number', with: '4111111111111111' + fill_in 'card-verify', with: '012' + + # try to submit, and see order page + find('#payment-info-next').trigger(:click) + + find('.order-items-value.sub-total', text:'10.00') + find('.order-items-value.taxes', text:'0.83') + find('.order-items-value.order-total', text:'$10.00') + find('.order-items-value.grand-total', text:'$10.83') + + # click the ORDER button + find('.place-order-center a.button-orange.place-order').trigger(:click) + + # and now we should see confirmation, and a notice that we are in a normal browser + find('.thanks-detail.gift-card') + + user.reload + + sleep 3 # challenge to all comers! WHY DO I HAVE TO SLEEP FOR THIS ASSERTION TO BE TRUE! GAH . and 1 second won't do it + + user.reload + user.has_redeemable_jamtrack.should be_true + user.gifted_jamtracks.should eq(0) + user.gift_card_purchases.length.should eq(1) + end + +end diff --git a/web/spec/features/redeem_giftcard_spec.rb b/web/spec/features/redeem_giftcard_spec.rb index f075e8d88..631fb8e3a 100644 --- a/web/spec/features/redeem_giftcard_spec.rb +++ b/web/spec/features/redeem_giftcard_spec.rb @@ -30,13 +30,13 @@ describe "Redeem Gift Card", :js => true, :type => :feature, :capybara_feature = find('.done-action a.go-browse').trigger(:click) - find('.no-free-jamtrack') + find('.free-jamtrack') user = User.find_by_email("gifter1@jamkazam.com") gift_card.reload gift_card.user.should eq(user) user.reload - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) end it "validates correctly" do @@ -58,13 +58,13 @@ describe "Redeem Gift Card", :js => true, :type => :feature, :capybara_feature = find('.done-action a.go-browse').trigger(:click) - find('.no-free-jamtrack') + find('.free-jamtrack') user = User.find_by_email("gifter2@jamkazam.com") gift_card.reload gift_card.user.should eq(user) user.reload - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) end it "converts shopping cart items to free" do @@ -89,7 +89,7 @@ describe "Redeem Gift Card", :js => true, :type => :feature, :capybara_feature = find('.done-action a.go-browse').trigger(:click) - find('.no-free-jamtrack') + find('.free-jamtrack') cart.reload cart.marked_for_redeem.should eq(1) @@ -108,12 +108,12 @@ describe "Redeem Gift Card", :js => true, :type => :feature, :capybara_feature = find('.done-action a.go-browse').trigger(:click) - find('.no-free-jamtrack') + find('.free-jamtrack') gift_card.reload gift_card.user.should eq(user1) user1.reload - user1.gifted_jamtracks.should eq(10) + user1.gifted_jamtracks.should eq(5) end end @@ -133,12 +133,12 @@ describe "Redeem Gift Card", :js => true, :type => :feature, :capybara_feature = find('.done-action a.go-browse').trigger(:click) - find('.no-free-jamtrack') + find('.free-jamtrack') gift_card.reload gift_card.user.should eq(user1) user1.reload - user1.gifted_jamtracks.should eq(10) + user1.gifted_jamtracks.should eq(5) end it "converts shopping cart items to free" do @@ -156,12 +156,12 @@ describe "Redeem Gift Card", :js => true, :type => :feature, :capybara_feature = fill_in "code", with: gift_card.code find('button.redeem-giftcard').trigger(:click) find('.done-action a.go-browse').trigger(:click) - find('.no-free-jamtrack') + find('.free-jamtrack') gift_card.reload gift_card.user.should eq(user1) user1.reload - user1.gifted_jamtracks.should eq(10) + user1.gifted_jamtracks.should eq(5) cart.reload cart.marked_for_redeem.should eq(1) end diff --git a/web/spec/managers/user_manager_spec.rb b/web/spec/managers/user_manager_spec.rb index 974fbf031..b0747dac4 100644 --- a/web/spec/managers/user_manager_spec.rb +++ b/web/spec/managers/user_manager_spec.rb @@ -730,7 +730,7 @@ describe UserManager do gift_card.user.should eq(user) user = User.find(user.id) user.has_redeemable_jamtrack.should be_true - user.gifted_jamtracks.should eq(10) + user.gifted_jamtracks.should eq(5) user.gift_cards[0].should eq(gift_card) end From 7432b5043813c2eddc23de6effc2109c4cfd08a1 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sun, 29 Nov 2015 14:15:53 -0600 Subject: [PATCH 25/36] * fix some minor display issues --- web/app/assets/stylesheets/client/checkout_complete.css.scss | 2 +- web/app/views/clients/_shopping_cart.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/app/assets/stylesheets/client/checkout_complete.css.scss b/web/app/assets/stylesheets/client/checkout_complete.css.scss index 154cb17bc..c3797f649 100644 --- a/web/app/assets/stylesheets/client/checkout_complete.css.scss +++ b/web/app/assets/stylesheets/client/checkout_complete.css.scss @@ -73,7 +73,7 @@ } } } - .thanks-detail.gift-card{ + .thanks-detail.gift-card, .thanks-detail.jam-tracks-in-browser{ margin-top: 20px; } diff --git a/web/app/views/clients/_shopping_cart.html.haml b/web/app/views/clients/_shopping_cart.html.haml index 5ab90b902..a4107c934 100644 --- a/web/app/views/clients/_shopping_cart.html.haml +++ b/web/app/views/clients/_shopping_cart.html.haml @@ -14,7 +14,7 @@ %div 1 item added to shopping cart %div - {{data.cart_type}}: {{data.product_info.name}} + {{data.product_info.sale_display}} = "{% if (data.any_in_us) { %}" .note Note: You must be in the United States to purchase this {{data.type}} due to licensing constraints. From 6f488d4692b3d232c96d3cadd94b857c24751f75 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sun, 29 Nov 2015 14:30:34 -0600 Subject: [PATCH 26/36] * make nice display for admin --- ruby/lib/jam_ruby/models/gift_card_type.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ruby/lib/jam_ruby/models/gift_card_type.rb b/ruby/lib/jam_ruby/models/gift_card_type.rb index e6336a9b1..8294dbfed 100644 --- a/ruby/lib/jam_ruby/models/gift_card_type.rb +++ b/ruby/lib/jam_ruby/models/gift_card_type.rb @@ -62,5 +62,9 @@ module JamRuby def sales_region 'Worldwide' end + + def to_s + sale_display + end end end From 7f0fd988cedc26e8bd99eb68e34b8d80435aa600 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 30 Nov 2015 05:07:47 -0600 Subject: [PATCH 27/36] * add gift card image --- ruby/lib/jam_ruby/jam_track_importer.rb | 70 +++++++++++++++++++- ruby/lib/jam_ruby/models/jam_track.rb | 5 +- ruby/lib/jam_ruby/models/jam_track_track.rb | 2 +- web/app/assets/images/landing/gift_card.png | Bin 0 -> 840344 bytes web/lib/tasks/jam_tracks.rake | 5 ++ 5 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 web/app/assets/images/landing/gift_card.png diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 5ef86e03d..c8595f616 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -34,6 +34,42 @@ module JamRuby self.detail = detail end + def import_click_track(jam_track) + # we need to download the click track, if it exists. + Dir.mktmpdir do |tmp_dir| + + click_track_file = jam_track.click_track_file + if click_track_file.nil? + @@log.info("no click track for #{jam_track.name}:#{jam_track.name}") + finish('success', 'no_click_track') + return + end + + click_track_file = File.join(tmp_dir, File.basename(click_track_file[:original_filename])) + JamTrackImporter.song_storage_manager.download(click_track_file[:original_filename], click_track_file) + + + JamTrack.transaction do + click_track = jam_track.click_track + + if click_track.nil? + click_track = JamTrackTrack.new + #track.original_filename = wav_file + #track.original_audio_s3_path = wav_file + track.track_type = 'Click' + track.part = 'Click' + track.instrument_id = 'computer' + track.jam_track = jam_track + if !track.save + finish("jam_track_click", "unable to create: #{track.errors}") + end + end + + # with the click track in hand, flesh out the details + + end + end + def generate_jmep(jam_track) if !jam_track.blank? finish('success', 'jmep already exists') @@ -44,7 +80,7 @@ module JamRuby master_track = jam_track.master_track - click_track = jam_track.click_track + click_track = jam_track.click_track_file if master_track.nil? finish('no_master_track', nil) @@ -2036,6 +2072,13 @@ module JamRuby end end + def import_click_track(jam_track) + importer = JamTrackImporter.new + importer.name = jam_track.name + importer.import_click_track(jam_track) + + importer + end def generate_jmep(jam_track) importer = JamTrackImporter.new importer.name = jam_track.name @@ -2044,6 +2087,31 @@ module JamRuby importer end + def import_click_tracks + importers = [] + + JamTrack.all.each do |jam_track| + importers << import_click_track(jam_track) + end + + @@log.info("SUMMARY") + @@log.info("-------") + importers.each do |importer| + if importer + if importer.reason == "success" + @@log.info("#{importer.name} #{importer.reason}") + else + @@log.error("#{importer.name} failed to generate jmep.") + @@log.error("#{importer.name} reason=#{importer.reason}") + @@log.error("#{importer.name} detail=#{importer.detail}") + end + else + @@log.error("NULL IMPORTER") + end + + end + end + def generate_jmeps importers = [] diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 9303af65b..1eece1544 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -435,9 +435,12 @@ module JamRuby end end + def click_track_file + JamTrackFile.where(jam_track_id: self.id).where(file_type: 'ClickWav').first + end def click_track - JamTrackFile.where(jam_track_id: self.id).where(file_type: 'ClickWav').first + JamTrackTrack.where(jam_track_id: self.id).where(track_type: 'Click').first end def master_track diff --git a/ruby/lib/jam_ruby/models/jam_track_track.rb b/ruby/lib/jam_ruby/models/jam_track_track.rb index 78ba8da47..989f62a66 100644 --- a/ruby/lib/jam_ruby/models/jam_track_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track_track.rb @@ -6,7 +6,7 @@ module JamRuby include JamRuby::S3PublicManagerMixin # there should only be one Master per JamTrack, but there can be N Track per JamTrack - TRACK_TYPE = %w{Track Master} + TRACK_TYPE = %w{Track Master Click} @@log = Logging.logger[JamTrackTrack] diff --git a/web/app/assets/images/landing/gift_card.png b/web/app/assets/images/landing/gift_card.png new file mode 100644 index 0000000000000000000000000000000000000000..e652e81dbfd3ec1a211513e03a43acd60a42664c GIT binary patch literal 840344 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

    Yyxb%q|0Mt*fHZRj&g)&V<%y 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�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

    +DaTY`Y90&_})CmocxOv{i5NfHWFGx2 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

    M=_d(&I_#!`{wmIT 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�GILa&WIwuZ7%GJdB4~8@j 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
    s1Etd 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 s{+ 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�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 Date: Mon, 30 Nov 2015 05:28:10 -0600 Subject: [PATCH 28/36] * fix formatting --- ruby/lib/jam_ruby/jam_track_importer.rb | 180 ++++++++++++------------ 1 file changed, 92 insertions(+), 88 deletions(-) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index c8595f616..5d0e43d46 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -66,7 +66,7 @@ module JamRuby end # with the click track in hand, flesh out the details - + end end end @@ -1311,94 +1311,8 @@ module JamRuby generate_mp3_aac_stem(jam_track, tmp_dir, skip_audio_upload) jam_track.jam_track_tracks.each do |track| - basename = File.basename(track.original_audio_s3_path) - s3_dirname = File.dirname(track.original_audio_s3_path) + synchronized_audio_track(jam_track, tmp_dir, skip_audio_upload, track) - # make a 44100 version, and a 48000 version - ogg_44100_filename = File.basename(basename, ".wav") + "-44100.ogg" - ogg_48000_filename = File.basename(basename, ".wav") + "-48000.ogg" - - ogg_44100_s3_path = track.filename(ogg_44100_filename) - ogg_48000_s3_path = track.filename(ogg_48000_filename) - - track.skip_uploader = true - - if skip_audio_upload - track["url_44"] = ogg_44100_s3_path - track["md5_44"] = 'md5' - track["length_44"] = 1 - - track["url_48"] = ogg_48000_s3_path - track["md5_48"] = 'md5' - track["length_48"] = 1 - - # we can't fake the preview as easily because we don't know the MD5 of the current item - #track["preview_md5"] = 'md5' - #track["preview_mp3_md5"] = 'md5' - #track["preview_url"] = track.preview_filename('md5', 'ogg') - #track["preview_length"] = 1 - #track["preview_mp3_url"] = track.preview_filename('md5', 'mp3') - #track["preview_mp3_length"] = 1 - #track["preview_start_time"] = 0 - else - wav_file = File.join(tmp_dir, basename) - - # bring the original wav file down from S3 to local file system - JamTrackImporter::song_storage_manager.download(track.original_audio_s3_path, wav_file) - - sample_rate = `soxi -r "#{wav_file}"`.strip - - ogg_44100 = File.join(tmp_dir, ogg_44100_filename) - ogg_48000 = File.join(tmp_dir, File.basename(basename, ".wav") + "-48000.ogg") - - if sample_rate == "44100" - `oggenc "#{wav_file}" -q 6 -o "#{ogg_44100}"` - else - `oggenc "#{wav_file}" --resample 44100 -q 6 -o "#{ogg_44100}"` - end - - if sample_rate == "48000" - `oggenc "#{wav_file}" -q 6 -o "#{ogg_48000}"` - else - `oggenc "#{wav_file}" --resample 48000 -q 6 -o "#{ogg_48000}"` - end - - # upload the new ogg files to s3 - @@log.debug("uploading 44100 to #{ogg_44100_s3_path}") - - jamkazam_s3_manager.upload(ogg_44100_s3_path, ogg_44100) - - @@log.debug("uploading 48000 to #{ogg_48000_s3_path}") - - jamkazam_s3_manager.upload(ogg_48000_s3_path, ogg_48000) - - ogg_44100_digest = ::Digest::MD5.file(ogg_44100) - # and finally update the JamTrackTrack with the new info - track["url_44"] = ogg_44100_s3_path - track["md5_44"] = ogg_44100_digest.hexdigest - track["length_44"] = File.new(ogg_44100).size - - track["url_48"] = ogg_48000_s3_path - track["md5_48"] = ::Digest::MD5.file(ogg_48000).hexdigest - track["length_48"] = File.new(ogg_48000).size - - synchronize_duration(jam_track, ogg_44100) - jam_track.save! - - # convert entire master ogg file to mp3, and push both to public destination - if track.track_type == 'Master' - preview_succeeded = synchronize_master_preview(track, tmp_dir, ogg_44100, ogg_44100_digest) - - if !preview_succeeded - return false - end - elsif track.track_type == 'Track' - synchronize_track_preview(track, tmp_dir, ogg_44100) - end - - end - - track.save! end end rescue Exception => e @@ -1409,6 +1323,96 @@ module JamRuby return true end + def synchronize_audio_track(jam_track, tmp_dir, skip_audio_upload, track) + basename = File.basename(track.original_audio_s3_path) + + # make a 44100 version, and a 48000 version + ogg_44100_filename = File.basename(basename, ".wav") + "-44100.ogg" + ogg_48000_filename = File.basename(basename, ".wav") + "-48000.ogg" + + ogg_44100_s3_path = track.filename(ogg_44100_filename) + ogg_48000_s3_path = track.filename(ogg_48000_filename) + + track.skip_uploader = true + + if skip_audio_upload + track["url_44"] = ogg_44100_s3_path + track["md5_44"] = 'md5' + track["length_44"] = 1 + + track["url_48"] = ogg_48000_s3_path + track["md5_48"] = 'md5' + track["length_48"] = 1 + + # we can't fake the preview as easily because we don't know the MD5 of the current item + #track["preview_md5"] = 'md5' + #track["preview_mp3_md5"] = 'md5' + #track["preview_url"] = track.preview_filename('md5', 'ogg') + #track["preview_length"] = 1 + #track["preview_mp3_url"] = track.preview_filename('md5', 'mp3') + #track["preview_mp3_length"] = 1 + #track["preview_start_time"] = 0 + else + wav_file = File.join(tmp_dir, basename) + + # bring the original wav file down from S3 to local file system + JamTrackImporter::song_storage_manager.download(track.original_audio_s3_path, wav_file) + + sample_rate = `soxi -r "#{wav_file}"`.strip + + ogg_44100 = File.join(tmp_dir, ogg_44100_filename) + ogg_48000 = File.join(tmp_dir, File.basename(basename, ".wav") + "-48000.ogg") + + if sample_rate == "44100" + `oggenc "#{wav_file}" -q 6 -o "#{ogg_44100}"` + else + `oggenc "#{wav_file}" --resample 44100 -q 6 -o "#{ogg_44100}"` + end + + if sample_rate == "48000" + `oggenc "#{wav_file}" -q 6 -o "#{ogg_48000}"` + else + `oggenc "#{wav_file}" --resample 48000 -q 6 -o "#{ogg_48000}"` + end + + # upload the new ogg files to s3 + @@log.debug("uploading 44100 to #{ogg_44100_s3_path}") + + jamkazam_s3_manager.upload(ogg_44100_s3_path, ogg_44100) + + @@log.debug("uploading 48000 to #{ogg_48000_s3_path}") + + jamkazam_s3_manager.upload(ogg_48000_s3_path, ogg_48000) + + ogg_44100_digest = ::Digest::MD5.file(ogg_44100) + # and finally update the JamTrackTrack with the new info + track["url_44"] = ogg_44100_s3_path + track["md5_44"] = ogg_44100_digest.hexdigest + track["length_44"] = File.new(ogg_44100).size + + track["url_48"] = ogg_48000_s3_path + track["md5_48"] = ::Digest::MD5.file(ogg_48000).hexdigest + track["length_48"] = File.new(ogg_48000).size + + synchronize_duration(jam_track, ogg_44100) + jam_track.save! + + # convert entire master ogg file to mp3, and push both to public destination + if track.track_type == 'Master' + preview_succeeded = synchronize_master_preview(track, tmp_dir, ogg_44100, ogg_44100_digest) + + if !preview_succeeded + return false + end + elsif track.track_type == 'Track' + synchronize_track_preview(track, tmp_dir, ogg_44100) + end + + end + + track.save! + end + def generate_mp3_aac_stem(jam_track, tmp_dir, skip_audio_upload) jam_track.jam_track_tracks.each do |track| From 32d32b3393c73c1d9cda5d0920d9c5df351d3c9c Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 30 Nov 2015 08:03:38 -0600 Subject: [PATCH 29/36] * click track import working --- ruby/lib/jam_ruby/jam_track_importer.rb | 78 ++++++++++++++++++++----- 1 file changed, 63 insertions(+), 15 deletions(-) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 5d0e43d46..429f00cc8 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -45,9 +45,8 @@ module JamRuby return end - click_track_file = File.join(tmp_dir, File.basename(click_track_file[:original_filename])) - JamTrackImporter.song_storage_manager.download(click_track_file[:original_filename], click_track_file) - + #wav_file = File.join(tmp_dir, File.basename(click_track_file[:original_filename])) + #JamTrackImporter.song_storage_manager.download(click_track_file[:original_filename], wav_file) JamTrack.transaction do click_track = jam_track.click_track @@ -55,17 +54,21 @@ module JamRuby if click_track.nil? click_track = JamTrackTrack.new #track.original_filename = wav_file - #track.original_audio_s3_path = wav_file - track.track_type = 'Click' - track.part = 'Click' - track.instrument_id = 'computer' - track.jam_track = jam_track - if !track.save - finish("jam_track_click", "unable to create: #{track.errors}") + click_track.original_audio_s3_path = click_track_file[:original_filename] + click_track.track_type = 'Click' + click_track.part = 'Click' + click_track.instrument_id = 'computer' + click_track.jam_track = jam_track + click_track.position = 10000 + if !click_track.save + @@log.error("unable to create jamtrack click track #{click_track.errors.inspect}") + finish("jam_track_click", "unable to create: #{click_track.errors.inspect}") + return false end end # with the click track in hand, flesh out the details + synchronize_audio_track(jam_track, tmp_dir, false, click_track) end end end @@ -1066,6 +1069,10 @@ module JamRuby if track.track_type == 'Master' instrument_weight = 1000 end + + if track.track_type == 'Click' + instrument_weight = 10000 + end end @@ -1308,11 +1315,8 @@ module JamRuby begin Dir.mktmpdir do |tmp_dir| - generate_mp3_aac_stem(jam_track, tmp_dir, skip_audio_upload) jam_track.jam_track_tracks.each do |track| - - synchronized_audio_track(jam_track, tmp_dir, skip_audio_upload, track) - + synchronize_audio_track(jam_track, tmp_dir, skip_audio_upload, track) end end rescue Exception => e @@ -1330,9 +1334,17 @@ module JamRuby ogg_44100_filename = File.basename(basename, ".wav") + "-44100.ogg" ogg_48000_filename = File.basename(basename, ".wav") + "-48000.ogg" + + # make a 44100 version, and a 48000 version + mp3_48000_filename = File.basename(basename, ".wav") + "-48000.mp3" + aac_48000_filename = File.basename(basename, ".wav") + "-48000.aac" + ogg_44100_s3_path = track.filename(ogg_44100_filename) ogg_48000_s3_path = track.filename(ogg_48000_filename) + mp3_48000_s3_path = track.filename(mp3_48000_filename) + aac_48000_s3_path = track.filename(aac_48000_filename) + track.skip_uploader = true if skip_audio_upload @@ -1344,6 +1356,14 @@ module JamRuby track["md5_48"] = 'md5' track["length_48"] = 1 + track["url_mp3_48"] = mp3_48000_filename + track["md5_mp3_48"] = 'md5' + track["length_mp3_48"] = 1 + + track["url_aac_48"] = aac_48000_filename + track["md5_aac_48"] = 'md5' + track["length_aac_48"] = 1 + # we can't fake the preview as easily because we don't know the MD5 of the current item #track["preview_md5"] = 'md5' #track["preview_mp3_md5"] = 'md5' @@ -1394,6 +1414,33 @@ module JamRuby track["md5_48"] = ::Digest::MD5.file(ogg_48000).hexdigest track["length_48"] = File.new(ogg_48000).size + # now create mp3 and aac files + mp3_48000 = File.join(tmp_dir, File.basename(basename, ".wav") + "-48000.mp3") + aac_48000 = File.join(tmp_dir, File.basename(basename, ".wav") + "-48000.aac") + + `ffmpeg -i "#{wav_file}" -ar 48000 -ab 192k "#{mp3_48000}"` + + `ffmpeg -i "#{wav_file}" -c:a libfdk_aac -b:a 192k "#{aac_48000}"` + + # upload the new ogg files to s3 + @@log.debug("uploading mp3 48000 to #{mp3_48000_s3_path}") + + jamkazam_s3_manager.upload(mp3_48000_s3_path, mp3_48000) + + @@log.debug("uploading aac 48000 to #{aac_48000_s3_path}") + + jamkazam_s3_manager.upload(aac_48000_s3_path, aac_48000) + + mp3_48000_digest = ::Digest::MD5.file(mp3_48000) + # and finally update the JamTrackTrack with the new info + track["url_mp3_48"] = mp3_48000_s3_path + track["md5_mp3_48"] = mp3_48000_digest.hexdigest + track["length_mp3_48"] = File.new(mp3_48000).size + + track["url_aac_48"] = aac_48000_s3_path + track["md5_aac_48"] = ::Digest::MD5.file(aac_48000).hexdigest + track["length_aac_48"] = File.new(aac_48000).size + synchronize_duration(jam_track, ogg_44100) jam_track.save! @@ -1404,7 +1451,7 @@ module JamRuby if !preview_succeeded return false end - elsif track.track_type == 'Track' + elsif track.track_type == 'Track' || track.track_type == 'Click' synchronize_track_preview(track, tmp_dir, ogg_44100) end @@ -2095,6 +2142,7 @@ module JamRuby importers = [] JamTrack.all.each do |jam_track| + #jam_track = JamTrack.find('126') importers << import_click_track(jam_track) end From b7cbb86e3bf81ff93549a3097226a5057d2240f4 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 30 Nov 2015 11:03:32 -0600 Subject: [PATCH 30/36] * tweak gift card landing --- .../landing/GiftCardLandingPage.js.jsx.coffee | 7 ++-- .../landings/individual_jamtrack.css.scss | 11 ++++++ .../views/clients/_checkout_signin.html.slim | 4 +- web/spec/features/gift_card_landing_spec.rb | 38 +++++++++++++++---- 4 files changed, 47 insertions(+), 13 deletions(-) diff --git a/web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee b/web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee index e55cceb26..8b0c5ada5 100644 --- a/web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/landing/GiftCardLandingPage.js.jsx.coffee @@ -34,8 +34,9 @@ rest = context.JK.Rest()

    -
    - Preview JamTrack +
    + Preview A JamTrack +
    "{this.props.jam_track.name}"

    Click the play buttons below to preview the master mix and 20-second samples of all the isolated tracks.

    @@ -81,7 +82,7 @@ rest = context.JK.Rest() context.location = '/client#/shoppingCart' else @setState({done: true}) - context.location = '/client#/checkoutPayment' + context.location = '/client#/shoppingCart' ).fail((jqXHR, textStatus, errorMessage) => if jqXHR.status == 422 diff --git a/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss b/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss index b48592f3b..6ecc65a17 100644 --- a/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss +++ b/web/app/assets/stylesheets/landings/individual_jamtrack.css.scss @@ -200,6 +200,7 @@ body.web.individual_jamtrack { } .cta-button { + cursor:pointer; background-color: $cta-color; &.processing { @@ -328,6 +329,16 @@ body.web.individual_jamtrack { border-width: 0 0 $chunkyBorderWidth; border-style: solid; border-color: $copy-color-on-dark; + + &.gift-card { + padding:20px 0 10px; + .jamtrack-title { + margin-top:10px; + font-size:18px; + font-style:italic; + } + } + } .preview-area { diff --git a/web/app/views/clients/_checkout_signin.html.slim b/web/app/views/clients/_checkout_signin.html.slim index 620bfc00d..2f26d4ae6 100644 --- a/web/app/views/clients/_checkout_signin.html.slim +++ b/web/app/views/clients/_checkout_signin.html.slim @@ -47,10 +47,10 @@ div layout="screen" layout-id="checkoutSignin" id="checkoutSignInScreen" class=" p.facebook-prompt Or sign in using Facebook: = link_to image_tag("content/button_facebook_signin.png", {:width => 249, :height => 46}), '/auth/facebook', class: "signin-facebook" .right-side - h3 NOT A MEMBER YET? + h3 NOT A MEMBER? p.signup-later-prompt - | Thousands of musicians are now registered members of JamKazam. Click the NEXT button below to join us, and welcome! + | Click the NEXT button below to enter the address and payment information for your purchase. .actions a.btnNext.button-orange NEXT diff --git a/web/spec/features/gift_card_landing_spec.rb b/web/spec/features/gift_card_landing_spec.rb index 4e61e1cfc..3f67c0d88 100644 --- a/web/spec/features/gift_card_landing_spec.rb +++ b/web/spec/features/gift_card_landing_spec.rb @@ -57,8 +57,16 @@ describe "Gift Card Landing", :js => true, :type => :feature, :capybara_feature find('a.browse-all')['href'].should eq("/client?search=#/jamtrack/search") find('button.five-jt', text: 'ADD $10 CARD TO CART').trigger(:click) + # land in shopping cart first + find('.proceed-checkout').trigger(:click) - find('h1', text: 'check out') + # checkoutSignin page now + find('h3', text: 'NOT A MEMBER?') + + # hit 'NEXT' to create account and enter payment info + find('.btnNext.button-orange').trigger(:click) + + find('.hint.cvv') # fill out all billing info and account info fill_in 'billing-first-name', with: 'Seth' @@ -70,9 +78,12 @@ describe "Gift Card Landing", :js => true, :type => :feature, :capybara_feature fill_in 'card-number', with: '4111111111111111' fill_in 'card-verify', with: '012' - # fill in user/email/tos - fill_in 'email', with: 'bogus+gc1@jamkazam.com' - fill_in 'password', with: 'jam123' + within('#checkout-payment-info') do + # fill in user/email/tos + fill_in 'email', with: 'bogus+gc1@jamkazam.com' + fill_in 'password', with: 'jam123' + end + find('#divJamKazamTos ins.iCheck-helper').trigger(:click) # accept TOS # try to submit, and see order page @@ -132,8 +143,16 @@ describe "Gift Card Landing", :js => true, :type => :feature, :capybara_feature find('a.browse-all')['href'].should eq("/client?search=#/jamtrack/search") find('button.ten-jt', text: 'ADD $20 CARD TO CART').trigger(:click) + # land in shopping cart first + find('.proceed-checkout').trigger(:click) - find('h1', text: 'check out') + # checkoutSignin page now + find('h3', text: 'NOT A MEMBER?') + + # hit 'NEXT' to create account and enter payment info + find('.btnNext.button-orange').trigger(:click) + + find('.hint.cvv') # fill out all billing info and account info fill_in 'billing-first-name', with: 'Seth' @@ -145,9 +164,12 @@ describe "Gift Card Landing", :js => true, :type => :feature, :capybara_feature fill_in 'card-number', with: '4111111111111111' fill_in 'card-verify', with: '012' - # fill in user/email/tos - fill_in 'email', with: 'bogus+gc2@jamkazam.com' - fill_in 'password', with: 'jam123' + within('#checkout-payment-info') do + # fill in user/email/tos + fill_in 'email', with: 'bogus+gc2@jamkazam.com' + fill_in 'password', with: 'jam123' + end + find('#divJamKazamTos ins.iCheck-helper').trigger(:click) # accept TOS # try to submit, and see order page From e3b4b2324b27f7b823f4e281a9c710ee1e506c3a Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 30 Nov 2015 17:54:17 -0600 Subject: [PATCH 31/36] * clicktrack support --- admin/app/admin/fake_purchaser.rb | 1 + db/manifest | 3 +- db/up/versionable_jamtracks.sql | 1 + ruby/lib/jam_ruby/jam_track_importer.rb | 14 +++++++-- ruby/lib/jam_ruby/jam_tracks_manager.rb | 5 ++-- ruby/lib/jam_ruby/models/jam_track.rb | 6 +++- ruby/lib/jam_ruby/models/jam_track_right.rb | 30 +++++++++++++++++-- ruby/lib/jam_ruby/models/jam_track_search.rb | 2 +- ruby/lib/jam_ruby/models/sale.rb | 2 ++ .../javascripts/download_jamtrack.js.coffee | 4 +-- .../JamTrackFilterScreen.js.jsx.coffee | 26 ++++++++-------- .../JamTrackSearchScreen.js.jsx.coffee | 27 +++++++++-------- .../PopupJamTrackPlayer.js.jsx.coffee | 27 +++++++++++++---- .../PopupMediaControls.js.jsx.coffee | 2 +- .../helpers/MixerHelper.js.coffee | 3 ++ .../helpers/SessionHelper.js.coffee | 2 +- .../stores/JamTrackStore.js.coffee | 2 +- .../javascripts/web/individual_jamtrack.js | 4 +++ .../web/individual_jamtrack_band_v1.js | 4 +++ .../javascripts/web/individual_jamtrack_v1.js | 4 +++ 20 files changed, 125 insertions(+), 44 deletions(-) create mode 100644 db/up/versionable_jamtracks.sql diff --git a/admin/app/admin/fake_purchaser.rb b/admin/app/admin/fake_purchaser.rb index b8c5caa31..87d167330 100644 --- a/admin/app/admin/fake_purchaser.rb +++ b/admin/app/admin/fake_purchaser.rb @@ -32,6 +32,7 @@ ActiveAdmin.register_page "Fake Purchaser" do jam_track_right.user = user jam_track_right.jam_track = jam_track jam_track_right.is_test_purchase = true + jam_track_right.version = jam_track.version jam_track_right.save! count = count + 1 end diff --git a/db/manifest b/db/manifest index 40053da47..c75998c34 100755 --- a/db/manifest +++ b/db/manifest @@ -313,4 +313,5 @@ jam_track_lang_idx.sql giftcard.sql add_description_to_crash_dumps.sql acappella.sql -purchasable_gift_cards.sql \ No newline at end of file +purchasable_gift_cards.sql +versionable_jamtracks.sql \ No newline at end of file diff --git a/db/up/versionable_jamtracks.sql b/db/up/versionable_jamtracks.sql new file mode 100644 index 000000000..9751bb940 --- /dev/null +++ b/db/up/versionable_jamtracks.sql @@ -0,0 +1 @@ +ALTER TABLE jam_track_rights ADD COLUMN version VARCHAR NOT NULL DEFAULT '0'; \ No newline at end of file diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 429f00cc8..d0ed07404 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -56,7 +56,7 @@ module JamRuby #track.original_filename = wav_file click_track.original_audio_s3_path = click_track_file[:original_filename] click_track.track_type = 'Click' - click_track.part = 'Click' + click_track.part = 'Clicktrack' click_track.instrument_id = 'computer' click_track.jam_track = jam_track click_track.position = 10000 @@ -67,8 +67,12 @@ module JamRuby end end + jam_track.increment_version! + # with the click track in hand, flesh out the details synchronize_audio_track(jam_track, tmp_dir, false, click_track) + + finish('success', nil) end end end @@ -1255,7 +1259,6 @@ module JamRuby @@log.debug("#{self.name} track! instrument: #{parsed_wav[:instrument] ? parsed_wav[:instrument] : 'N/A'}, part: #{parsed_wav[:part] ? parsed_wav[:part] : 'N/A'}, filename: #{parsed_wav[:filename]} ") end - track.instrument_id = parsed_wav[:instrument] || 'other' track.track_type = 'Track' track.part = parsed_wav[:part] || "Other #{unknowns}" @@ -1266,6 +1269,13 @@ module JamRuby elsif parsed_wav[:type] == :clickwav file.file_type = 'ClickWav' addt_files << file + + # and also add a JamTrackTrack for this click track + track.track_type = 'Click' + track.part = 'Clicktrack' + track.instrument_id = 'computer' + track.position = 10000 + tracks << track elsif parsed_wav[:type] == :precount file.file_type = 'Precount' file.precount_num = parsed_wav[:precount_num] diff --git a/ruby/lib/jam_ruby/jam_tracks_manager.rb b/ruby/lib/jam_ruby/jam_tracks_manager.rb index d6ae37b1e..96ccf87f8 100644 --- a/ruby/lib/jam_ruby/jam_tracks_manager.rb +++ b/ruby/lib/jam_ruby/jam_tracks_manager.rb @@ -41,7 +41,7 @@ module JamRuby jam_file_opts="" jam_track.jam_track_tracks.each do |jam_track_track| - next if jam_track_track.track_type != "Track" # master mixes do not go into the JKZ + next if jam_track_track.track_type == "Master" # master mixes do not go into the JKZ # use the jam_track_track ID as the filename.ogg/.wav, because it's important metadata nm = jam_track_track.id + File.extname(jam_track_track.url_by_sample_rate(sample_rate)) @@ -52,7 +52,8 @@ module JamRuby step = bump_step(jam_track_right, step) copy_url_to_file(track_url, track_filename) - jam_file_opts << " -i #{Shellwords.escape("#{track_filename}+#{jam_track_track.part}")}" + part = jam_track_track.track_type == 'Click' ? 'ClickTrack' : jam_track_track.part + jam_file_opts << " -i #{Shellwords.escape("#{track_filename}+#{part}")}" end #puts "LS + " + `ls -la '#{tmp_dir}'` diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 1eece1544..d5365c37e 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -86,6 +86,10 @@ module JamRuby after_save :sync_reproduction_royalty after_save :sync_onboarding_exceptions + def increment_version + self.version = version.to_i + 1 + save! + end def sync_reproduction_royalty @@ -341,7 +345,7 @@ module JamRuby query = query.where('genre_id = ? ', options[:genre]) end - query = query.where("jam_track_tracks.instrument_id = '#{options[:instrument]}' and jam_track_tracks.track_type != 'Master'") unless options[:instrument].blank? + query = query.where("jam_track_tracks.instrument_id = '#{options[:instrument]}' and jam_track_tracks.track_type = 'Track'") unless options[:instrument].blank? query = query.where("jam_tracks.sales_region = '#{options[:availability]}'") unless options[:availability].blank? # FIXME: n+1 queries for rights and genres diff --git a/ruby/lib/jam_ruby/models/jam_track_right.rb b/ruby/lib/jam_ruby/models/jam_track_right.rb index 808593322..63558f84a 100644 --- a/ruby/lib/jam_ruby/models/jam_track_right.rb +++ b/ruby/lib/jam_ruby/models/jam_track_right.rb @@ -14,6 +14,7 @@ module JamRuby belongs_to :last_mixdown, class_name: 'JamRuby::JamTrackMixdown', foreign_key: 'last_mixdown_id', inverse_of: :jam_track_right belongs_to :last_stem, class_name: 'JamRuby::JamTrackTrack', foreign_key: 'last_stem_id', inverse_of: :jam_track_right + validates :version, presence: true validates :user, presence: true validates :jam_track, presence: true validates :is_test_purchase, inclusion: {in: [true, false]} @@ -133,8 +134,33 @@ module JamRuby end end + def cleanup_old_package! + if self.jam_track.version != self.version + delete_s3_files + self[:url_48] = nil + self[:url_44] = nil + self.signing_queued_at = nil + self.signing_started_at_48 = nil + self.signing_started_at_44 = nil + self.last_signed_at = nil + self.current_packaging_step = nil + self.packaging_steps = nil + self.should_retry = false + self.signing_44 = false + self.signing_48 = false + self.signed_44 = false + self.signed_48 = false + self.queued = false + self.version = self.jam_track.version + self.save! + end + end # if the job is already signed, just queued up for signing, or currently signing, then don't enqueue... otherwise fire it off def enqueue_if_needed(sample_rate=48) + + # delete any package that's out dated + cleanup_old_package! + state = signing_state(sample_rate) if state == 'SIGNED' || state == 'SIGNING' || state == 'QUEUED' false @@ -148,9 +174,9 @@ module JamRuby # @return true if signed && file exists for the sample_rate specifed: def ready?(sample_rate=48) if sample_rate==48 - self.signed_48 && self.url_48.present? && self.url_48.file.exists? + self.signed_48 && self.url_48.present? && self.url_48.file.exists? && self.version == self.jam_track.version else - self.signed_44 && self.url_44.present? && self.url_44.file.exists? + self.signed_44 && self.url_44.present? && self.url_44.file.exists? && self.version == self.jam_track.version end end diff --git a/ruby/lib/jam_ruby/models/jam_track_search.rb b/ruby/lib/jam_ruby/models/jam_track_search.rb index 7a365ed60..4bbcde75b 100644 --- a/ruby/lib/jam_ruby/models/jam_track_search.rb +++ b/ruby/lib/jam_ruby/models/jam_track_search.rb @@ -75,7 +75,7 @@ module JamRuby sqlstr = "'#{instruments.join("','")}'" rel = rel.joins(:jam_track_tracks) rel = rel.where("jam_track_tracks.instrument_id IN (#{sqlstr})") - rel = rel.where("jam_track_tracks.track_type != 'Master'") + rel = rel.where("jam_track_tracks.track_type = 'Track'") end end diff --git a/ruby/lib/jam_ruby/models/sale.rb b/ruby/lib/jam_ruby/models/sale.rb index 9b0fb2047..cddf6b8d8 100644 --- a/ruby/lib/jam_ruby/models/sale.rb +++ b/ruby/lib/jam_ruby/models/sale.rb @@ -73,6 +73,7 @@ module JamRuby def self.ios_purchase(current_user, jam_track, receipt) jam_track_right = JamRuby::JamTrackRight.find_or_create_by_user_id_and_jam_track_id(current_user.id, jam_track.id) do |jam_track_right| jam_track_right.redeemed = false + jam_track_right.version = jam_track.version end end @@ -328,6 +329,7 @@ module JamRuby # create a JamTrackRight (this needs to be in a transaction too to make sure we don't make these by accident) jam_track_right = JamRuby::JamTrackRight.find_or_create_by_user_id_and_jam_track_id(current_user.id, jam_track.id) do |jam_track_right| jam_track_right.redeemed = shopping_cart.free? + jam_track_right.version = jam_track.version end # also if the purchase was a free one, then: diff --git a/web/app/assets/javascripts/download_jamtrack.js.coffee b/web/app/assets/javascripts/download_jamtrack.js.coffee index c4727631d..eb9846546 100644 --- a/web/app/assets/javascripts/download_jamtrack.js.coffee +++ b/web/app/assets/javascripts/download_jamtrack.js.coffee @@ -369,8 +369,8 @@ context.JK.DownloadJamTrack = class DownloadJamTrack @trackDetail = context.jamClient.JamTrackGetTrackDetail ("#{@jamTrack.id}-#{@sampleRateForFilename}") if @trackDetail.version? - @logger.error("after invalidating package, the version is still wrong!") - throw "after invalidating package, the version is still wrong!" + @logger.error("after invalidating package, the version is still wrong!", @trackDetail) + throw "after invalidating package, the version is still wrong! #{@trackDetail.version}" switch @trackDetail.key_state when 'pending' diff --git a/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee index 88fb5525b..f5d84ebdf 100644 --- a/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/JamTrackFilterScreen.js.jsx.coffee @@ -30,19 +30,21 @@ MIX_MODES = context.JK.MIX_MODES ) for track in jamtrack.tracks - trackRow.tracks.push(track) - if track.track_type=='Master' - track.instrument_desc = "Master" - else - inst = '../assets/content/icon_instrument_default24.png' - if track.instrument? - if track.instrument.id in @instrument_logo_map - inst = @instrument_logo_map[track.instrument.id].asset - track.instrument_desc = track.instrument.description - track.instrument_url = inst - if track.part != '' - track.instrument_desc += ' (' + track.part + ')' + if track.track_type == 'Master' || track.track_type == 'Track' + trackRow.tracks.push(track) + if track.track_type == 'Master' + track.instrument_desc = "Master" + else if track.track_type == 'Track' + inst = '../assets/content/icon_instrument_default24.png' + if track.instrument? + if track.instrument.id in @instrument_logo_map + inst = @instrument_logo_map[track.instrument.id].asset + track.instrument_desc = track.instrument.description + track.instrument_url = inst + + if track.part != '' + track.instrument_desc += ' (' + track.part + ')' trackRow.free_state = if @state.is_free then 'free' else 'non-free' diff --git a/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee index 18cae8578..7ba13df37 100644 --- a/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee @@ -35,19 +35,22 @@ MIX_MODES = context.JK.MIX_MODES ) ### for track in jamtrack.tracks - trackRow.tracks.push(track) - if track.track_type=='Master' - track.instrument_desc = "Master" - else - inst = '../assets/content/icon_instrument_default24.png' - if track.instrument? - if track.instrument.id in @instrument_logo_map - inst = @instrument_logo_map[track.instrument.id].asset - track.instrument_desc = track.instrument.description - track.instrument_url = inst - if track.part != '' - track.instrument_desc += ' (' + track.part + ')' + if track.track_type == 'Master' || track.track_type == 'Track' + trackRow.tracks.push(track) + + if track.track_type == 'Master' + track.instrument_desc = "Master" + else if track.track_type == 'Track' + inst = '../assets/content/icon_instrument_default24.png' + if track.instrument? + if track.instrument.id in @instrument_logo_map + inst = @instrument_logo_map[track.instrument.id].asset + track.instrument_desc = track.instrument.description + track.instrument_url = inst + + if track.part != '' + track.instrument_desc += ' (' + track.part + ')' trackRow.free_state = if @state.is_free then 'free' else 'non-free' diff --git a/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee b/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee index 4857fdb0b..bd4c34779 100644 --- a/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee @@ -32,6 +32,11 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') mixins: mixins + computeWeight: (jam_track_track) -> + weight = switch + when jam_track_track.track_type == 'Master' then 0 + when jam_track_track.track_type == 'Click' then 10000 + else jam_track_track.position onJamTrackPlayerStoreChanged: (changes) -> #logger.debug("PopupMediaControls: jamtrack changed", changes) @@ -222,9 +227,16 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') active = jamTrack.last_stem_id? trackOptions = [] - for track in jamTrack.tracks - if track.track_type == 'Track' + jamTrack.tracks.sort((a, b) => + aWeight = @computeWeight(a) + bWeight = @computeWeight(b) + return aWeight - bWeight + ) + + + for track in jamTrack.tracks + if track.track_type == 'Track' || track.track_type == 'Click' if track.instrument instrumentId = track.instrument.id @@ -239,7 +251,6 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') boundStemPlayClick = this.downloadStem.bind(this) boundStemChange = this.stemChanged.bind(this) - console.log("jamTrack.lastStemId", jamTrack.last_stem_id) myMixdowns.push `
    @@ -267,8 +278,12 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') tracks = [] if jamTrack? for track in jamTrack.tracks - if track.track_type == 'Track' - if track.instrument + if track.track_type == 'Track' || track.track_type == 'Click' + if track.track_type == 'Click' + instrumentId = track.instrument.id + instrumentDescription = 'Clicktrack' + part = '' + else if track.instrument instrumentId = track.instrument.id instrumentDescription = track.instrument.description if track.part? && track.part != instrumentDescription @@ -280,7 +295,7 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') tracks.push(` {instrumentDescription} {part} - + `) stems = `
    diff --git a/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee b/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee index 4c37b8a51..f3d90dcd7 100644 --- a/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee @@ -248,7 +248,7 @@ mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackChanged')) trackOptions = [] for track in jamTrack.tracks - if track.track_type == 'Track' + if track.track_type == 'Track' || track.track_type == 'Click' if track.instrument instrumentId = track.instrument.id diff --git a/web/app/assets/javascripts/react-components/helpers/MixerHelper.js.coffee b/web/app/assets/javascripts/react-components/helpers/MixerHelper.js.coffee index 8fc110780..642b79bea 100644 --- a/web/app/assets/javascripts/react-components/helpers/MixerHelper.js.coffee +++ b/web/app/assets/javascripts/react-components/helpers/MixerHelper.js.coffee @@ -402,6 +402,9 @@ MIX_MODES = context.JK.MIX_MODES; else trackName = instrumentName + if jamTrack.track_type == 'Click' + trackName = 'Clicktrack' + data = name: jamTrackName trackName: trackName diff --git a/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee b/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee index e9d88c04a..460aa98e8 100644 --- a/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee +++ b/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee @@ -70,7 +70,7 @@ context = window jamTracks: () -> if @session && @session.jam_track @session.jam_track.tracks.filter((track)-> - track.track_type == 'Track' + track.track_type == 'Track' || track.track_type == 'Click' ) else null diff --git a/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee b/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee index 86d4ee8e6..fb16873ec 100644 --- a/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee @@ -135,7 +135,7 @@ JamTrackActions = @JamTrackActions @trackDetail = context.jamClient.JamTrackGetTrackDetail (fqId) if @trackDetail.version? - logger.error("after invalidating package, the version is still wrong!") + logger.error("after invalidating package, the version is still wrong!", @trackDetail) throw "after invalidating package, the version is still wrong!" if @jamTrack.activeMixdown.client_state == 'cant_open' diff --git a/web/app/assets/javascripts/web/individual_jamtrack.js b/web/app/assets/javascripts/web/individual_jamtrack.js index 94fba4ebd..c900247e1 100644 --- a/web/app/assets/javascripts/web/individual_jamtrack.js +++ b/web/app/assets/javascripts/web/individual_jamtrack.js @@ -41,6 +41,10 @@ context._.each(jam_track.tracks, function (track) { + if (track.track_type == 'Click') { + return; + } + var $element = $('
    ') $previews.append($element); diff --git a/web/app/assets/javascripts/web/individual_jamtrack_band_v1.js b/web/app/assets/javascripts/web/individual_jamtrack_band_v1.js index 25b5620b1..6a6e2be7e 100644 --- a/web/app/assets/javascripts/web/individual_jamtrack_band_v1.js +++ b/web/app/assets/javascripts/web/individual_jamtrack_band_v1.js @@ -30,6 +30,10 @@ context._.each(jam_track.tracks, function (track) { + if (track.track_type == 'Click') { + return; + } + var $element = $('
    ') $previews.append($element); diff --git a/web/app/assets/javascripts/web/individual_jamtrack_v1.js b/web/app/assets/javascripts/web/individual_jamtrack_v1.js index c6d3e4dff..a4288fa77 100644 --- a/web/app/assets/javascripts/web/individual_jamtrack_v1.js +++ b/web/app/assets/javascripts/web/individual_jamtrack_v1.js @@ -40,6 +40,10 @@ context._.each(jam_track.tracks, function (track) { + if (track.track_type == 'Click') { + return; + } + var $element = $('
    ') $previews.append($element); From 819e87079e1b7f4db745e9eccfbeca883b85d982 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 30 Nov 2015 21:21:27 -0600 Subject: [PATCH 32/36] * click track import working --- ruby/lib/jam_ruby/jam_track_importer.rb | 19 +++++++++++++++++-- ruby/lib/jam_ruby/models/jam_track.rb | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index d0ed07404..c31e9779a 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -53,7 +53,7 @@ module JamRuby if click_track.nil? click_track = JamTrackTrack.new - #track.original_filename = wav_file + click_track.original_filename = click_track_file[:original_filename] click_track.original_audio_s3_path = click_track_file[:original_filename] click_track.track_type = 'Click' click_track.part = 'Clicktrack' @@ -1153,7 +1153,22 @@ module JamRuby end - sorted_tracks[sorted_tracks.length - 1].position = 1000 + # get click/master tracks position re-set correctly + + last_track = sorted_tracks[sorted_tracks.length - 1] + second_to_last = sorted_tracks[sorted_tracks.length - 2] + + if last_track.track_type == 'Master' + last_track.position = 1000 + elsif last_track.track_type == 'Click' + last_track.position = 10000 + end + + if second_to_last.track_type == 'Master' + second_to_last.position = 1000 + elsif second_to_last.track_type == 'Click' + second_to_last.position = 10000 + end sorted_tracks end diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index d5365c37e..26e3fc8b3 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -86,7 +86,7 @@ module JamRuby after_save :sync_reproduction_royalty after_save :sync_onboarding_exceptions - def increment_version + def increment_version! self.version = version.to_i + 1 save! end From c1402e277792ab5a2a5adf13628745570ef3c0d0 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 2 Dec 2015 15:01:18 -0600 Subject: [PATCH 33/36] * VRFS-3757 - Fix jamtrack search bugs --- ruby/lib/jam_ruby/jam_track_importer.rb | 18 ++++++++++++- ruby/lib/jam_ruby/models/jam_track.rb | 5 ++-- .../resque/jam_track_mixdown_packager.rb | 27 +++++++++++++++++++ ruby/spec/jam_ruby/models/jam_track_spec.rb | 11 ++++++++ .../JamTrackSearchScreen.js.jsx.coffee | 5 ++-- .../stores/JamTrackStore.js.coffee | 2 +- 6 files changed, 61 insertions(+), 7 deletions(-) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index c31e9779a..fed33d413 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -38,13 +38,29 @@ module JamRuby # we need to download the click track, if it exists. Dir.mktmpdir do |tmp_dir| + @@log.info("importing clicking track for #{jam_track.original_artist}:#{jam_track.name}") + + if jam_track.click_track + @@log.info("already has click track: #{jam_track.original_artist}:#{jam_track.name}") + finish('success', 'already_has_click_track') + return + end + click_track_file = jam_track.click_track_file if click_track_file.nil? - @@log.info("no click track for #{jam_track.name}:#{jam_track.name}") + @@log.info("no click track for #{jam_track.original_artist}:#{jam_track.name}") finish('success', 'no_click_track') return end + original_filename = click_track_file[:original_filename] + + if original_filename.nil? + @@log.info("no click track s3 path for #{jam_track.original_artist}:#{jam_track.name}") + finish('no_original_source', 'click track is missing s3 path:' + click_track_file.id) + return + end + #wav_file = File.join(tmp_dir, File.basename(click_track_file[:original_filename])) #JamTrackImporter.song_storage_manager.download(click_track_file[:original_filename], wav_file) diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 26e3fc8b3..1121b607f 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -354,9 +354,8 @@ module JamRuby # :jam_track_rights, # :genres]) # { genres_jam_tracks: :genre }, - query = query.includes([{ jam_track_tracks: :instrument }, - { genres_jam_tracks: :genre }, - :jam_track_tap_ins]) + # query = query.includes([{ jam_track_tracks: :instrument }, + # { genres_jam_tracks: :genre }]) count = query.total_entries diff --git a/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb b/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb index c954e62d3..32b5d51ff 100644 --- a/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb +++ b/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb @@ -102,6 +102,33 @@ module JamRuby vol != 1.0 || pan != 0 end + def create_tapin_track + jmep = @mixdown.jam_track.jmep_json + if jmep + jmep = JSON.parse(jmep) + end + + if jmep.nil? + return nil + end + + events = jmep["Events"] + + return nil if events.nil? || events.length == 0 + + metronome = nil + events.each do |event| + if event.has_key?("Metronome") + metronome = event + break + end + end + + return nil if metronome.nil? || metronome.length == 0 + + cmd("sox -n -r 44100 -c 2 silence.wav trim 0.0 0.05", "bpm_silence") + end + # creates a list of tracks to actually mix def track_settings altered_tracks = @settings["tracks"] || [] diff --git a/ruby/spec/jam_ruby/models/jam_track_spec.rb b/ruby/spec/jam_ruby/models/jam_track_spec.rb index 814a4cbb3..4ed8e7b28 100644 --- a/ruby/spec/jam_ruby/models/jam_track_spec.rb +++ b/ruby/spec/jam_ruby/models/jam_track_spec.rb @@ -234,6 +234,17 @@ describe JamTrack do query.size.should == 2 end + + it "deals with aggregration (regression)" do + + query, pager, count = JamTrack.index({sort_by: 'jamtrack', artist: 'K.C. And The Sunshine Band'}, user) + count.should == 0 + + jam_track1 = FactoryGirl.create(:jam_track_with_tracks, name: 'Take a Chance On Me', original_artist: 'K.C. And The Sunshine Band') + + query, pager, count = JamTrack.index({sort_by: 'jamtrack', artist: 'K.C. And The Sunshine Band'}, user) + count.should == 1 + end end describe "validations" do diff --git a/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee index 7ba13df37..25eb00088 100644 --- a/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/JamTrackSearchScreen.js.jsx.coffee @@ -533,6 +533,9 @@ MIX_MODES = context.JK.MIX_MODES if search? performSearch = true @search(search.searchType, search.searchData) + else + if !@state.first_search + @search(@state.type, window.JamTrackSearchInput) if performSearch if window.history.replaceState #ie9 proofing @@ -540,8 +543,6 @@ MIX_MODES = context.JK.MIX_MODES beforeShow: () -> - if !@state.first_search - @search(@state.type, window.JamTrackSearchInput) onAppInit: (@app) -> diff --git a/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee b/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee index fb16873ec..17c088534 100644 --- a/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee @@ -135,7 +135,7 @@ JamTrackActions = @JamTrackActions @trackDetail = context.jamClient.JamTrackGetTrackDetail (fqId) if @trackDetail.version? - logger.error("after invalidating package, the version is still wrong!", @trackDetail) + logger.error("after invalidating package, the version is still wrong!", @trackDetail.version) throw "after invalidating package, the version is still wrong!" if @jamTrack.activeMixdown.client_state == 'cant_open' From 4cb737761a80bf4ec5dcb56d1a0a052c6953de96 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 2 Dec 2015 16:53:09 -0600 Subject: [PATCH 34/36] * add download trakcer page --- admin/app/admin/download_tracker.rb | 32 +++++++++++++++++++ ruby/lib/jam_ruby/models/download_tracker.rb | 1 + ruby/lib/jam_ruby/models/ip_blacklist.rb | 4 +++ .../stores/VideoStore.js.coffee | 1 - 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 admin/app/admin/download_tracker.rb diff --git a/admin/app/admin/download_tracker.rb b/admin/app/admin/download_tracker.rb new file mode 100644 index 000000000..b85f17388 --- /dev/null +++ b/admin/app/admin/download_tracker.rb @@ -0,0 +1,32 @@ +ActiveAdmin.register JamRuby::DownloadTracker, :as => 'DownloadTrackers' do + + menu :label => 'Download Trackers', :parent => 'JamTracks' + + config.batch_actions = false + config.filters = true + config.per_page = 50 + + filter :remote_ip + + index do + column 'User' do |oo| oo.user ? link_to(oo.user.email, oo.user.admin_url, {:title => oo.user.email}) : '' end + column 'Remote IP' do |oo| oo.remote_ip end + column 'Blacklisted?' do |oo| IpBlacklist.listed(oo.remote_ip) ? 'Yes' : 'No' end + column "" do |oo| + link_to 'Blacklist This IP', "download_trackers/#{oo.id}/blacklist_by_ip" + end + end + + member_action :blacklist_by_ip, :method => :get do + tracker = DownloadTracker.find(params[:id]) + + if !IpBlacklist.listed(tracker.remote_ip) + ip = IpBlacklist.new + ip.remote_ip = tracker.remote_ip + ip.save! + end + + redirect_to admin_download_trackers_path, :notice => "IP address #{tracker.remote_ip} blacklisted." + end + +end diff --git a/ruby/lib/jam_ruby/models/download_tracker.rb b/ruby/lib/jam_ruby/models/download_tracker.rb index f31001504..6a2bcf301 100644 --- a/ruby/lib/jam_ruby/models/download_tracker.rb +++ b/ruby/lib/jam_ruby/models/download_tracker.rb @@ -97,6 +97,7 @@ module JamRuby body = "IP Address: #{remote_ip}\n" body << "Download Count: #{violation['count']}\n" body << "Add to blacklist: #{IpBlacklist.admin_url}" + body << "Check Activity: #{IpBlacklist.admin_activity_url(remote_ip)}" AdminMailer.alerts({ subject:"Single IP Access Violation. IP:#{remote_ip}", diff --git a/ruby/lib/jam_ruby/models/ip_blacklist.rb b/ruby/lib/jam_ruby/models/ip_blacklist.rb index e62020e26..a7099cba8 100644 --- a/ruby/lib/jam_ruby/models/ip_blacklist.rb +++ b/ruby/lib/jam_ruby/models/ip_blacklist.rb @@ -15,6 +15,10 @@ module JamRuby APP_CONFIG.admin_root_url + "/admin/ip_blacklists/" end + def self.admin_activity_url(remote_ip) + APP_CONFIG.admin_root_url + "/admin/download_trackers?q[remote_ip_equals]=#{URI.escape(remote_ip)}&commit=Filter&order=id_desc" + end + def admin_url APP_CONFIG.admin_root_url + "/admin/ip_blacklists/" + id end diff --git a/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee b/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee index ef1b19f8d..f067f19ff 100644 --- a/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/VideoStore.js.coffee @@ -16,7 +16,6 @@ BackendToFrontend = { } BackendToFrontendFPS = { - 0: 30, 1: 24, 2: 20, From ebdde28f8540396fdd95ebbffc031e06ee7948d9 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 2 Dec 2015 16:58:56 -0600 Subject: [PATCH 35/36] * add more info to ip blacklist dump --- admin/app/admin/download_tracker.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/admin/app/admin/download_tracker.rb b/admin/app/admin/download_tracker.rb index b85f17388..2577736e5 100644 --- a/admin/app/admin/download_tracker.rb +++ b/admin/app/admin/download_tracker.rb @@ -11,6 +11,8 @@ ActiveAdmin.register JamRuby::DownloadTracker, :as => 'DownloadTrackers' do index do column 'User' do |oo| oo.user ? link_to(oo.user.email, oo.user.admin_url, {:title => oo.user.email}) : '' end column 'Remote IP' do |oo| oo.remote_ip end + column 'JamTrack' do |oo| oo.jam_track end + column 'Paid' do |oo| oo.paid end column 'Blacklisted?' do |oo| IpBlacklist.listed(oo.remote_ip) ? 'Yes' : 'No' end column "" do |oo| link_to 'Blacklist This IP', "download_trackers/#{oo.id}/blacklist_by_ip" From 54a437d6e1e128ff029c7e1663eb4fea053025d8 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Thu, 3 Dec 2015 14:21:07 -0600 Subject: [PATCH 36/36] * VRFS-3725 - frontend support for click tracks and tap-in creation --- ruby/lib/jam_ruby/models/jam_track.rb | 4 +- ruby/lib/jam_ruby/models/jam_track_mixdown.rb | 5 + .../resque/jam_track_mixdown_packager.rb | 327 ++++++++++++++++-- .../PopupJamTrackPlayer.js.jsx.coffee | 16 +- .../SessionMediaTracks.js.jsx.coffee | 3 +- .../stores/JamTrackStore.js.coffee | 14 + web/lib/tasks/jam_tracks.rake | 6 + 7 files changed, 342 insertions(+), 33 deletions(-) diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 1121b607f..d0eea16a8 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -19,7 +19,7 @@ module JamRuby :reproduction_royalty, :public_performance_royalty, :reproduction_royalty_amount, :licensor_royalty_amount, :pro_royalty_amount, :plan_code, :initial_play_silence, :jam_track_tracks_attributes, :jam_track_tap_ins_attributes, :genre_ids, :version, :jmep_json, :jmep_text, :pro_ascap, :pro_bmi, :pro_sesac, :duration, - :server_fixation_date, :hfa_license_status, :hfa_license_desired, :alternative_license_status, :hfa_license_number, :hfa_song_code, :album_title, as: :admin + :server_fixation_date, :hfa_license_status, :hfa_license_desired, :alternative_license_status, :hfa_license_number, :hfa_song_code, :album_title, :year, as: :admin validates :name, presence: true, length: {maximum: 200} validates :plan_code, presence: true, uniqueness: true, length: {maximum: 50 } @@ -451,7 +451,7 @@ module JamRuby end def stem_tracks - JamTrackTrack.where(jam_track_id: self.id).where(track_type: 'Track') + JamTrackTrack.where(jam_track_id: self.id).where("track_type = 'Track' or track_type = 'Click'") end def can_download?(user) diff --git a/ruby/lib/jam_ruby/models/jam_track_mixdown.rb b/ruby/lib/jam_ruby/models/jam_track_mixdown.rb index 3551dcdba..c1a30d073 100644 --- a/ruby/lib/jam_ruby/models/jam_track_mixdown.rb +++ b/ruby/lib/jam_ruby/models/jam_track_mixdown.rb @@ -83,6 +83,11 @@ module JamRuby end end + if parsed["count-in"] + all_quiet = false + tweaked = true + end + if all_quiet errors.add(:settings, 'are all muted') end diff --git a/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb b/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb index 32b5d51ff..191e41d33 100644 --- a/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb +++ b/ruby/lib/jam_ruby/resque/jam_track_mixdown_packager.rb @@ -10,9 +10,11 @@ module JamRuby include JamRuby::S3ManagerMixin + TAP_IN_PADDING = 2 MAX_PAN = 90 MIN_PAN = -90 + KNOCK_SECONDS = 0.035 attr_accessor :mixdown_package_id, :settings, :mixdown_package, :mixdown, :step @queue = :jam_track_mixdown_packager @@ -55,6 +57,8 @@ module JamRuby @mixdown = @mixdown_package.jam_track_mixdown @settings = JSON.parse(@mixdown.settings) + process_jmep + track_settings # compute the step count @@ -102,31 +106,234 @@ module JamRuby vol != 1.0 || pan != 0 end - def create_tapin_track + def process_jmep + @start_points = [] + @initial_padding = 0.0 + + speed = @settings['speed'] || 0 + + @speed_factor = 1.0 + (-speed.to_f / 100.0) + @inverse_speed_factor = 1 - (-speed.to_f / 100) + + log.info("speed factor #{@speed_factor}") + jmep = @mixdown.jam_track.jmep_json if jmep jmep = JSON.parse(jmep) end if jmep.nil? - return nil + log.debug("no jmep") + return end events = jmep["Events"] - return nil if events.nil? || events.length == 0 + return if events.nil? || events.length == 0 metronome = nil events.each do |event| - if event.has_key?("Metronome") - metronome = event + if event.has_key?("metronome") + metronome = event["metronome"] break end end - return nil if metronome.nil? || metronome.length == 0 + if metronome.nil? || metronome.length == 0 + log.debug("no metronome events for jmep", jmep) + return + end - cmd("sox -n -r 44100 -c 2 silence.wav trim 0.0 0.05", "bpm_silence") + @start_points = metronome.select { |x| puts x.inspect; x["action"] == "start" } + + log.debug("found #{@start_points.length} metronome start points") + + start_point = @start_points[0] + + if start_point + start_time = parse_time(start_point["ts"]) + + if start_time < 2.0 + padding = start_time - 2.0 + @initial_padding = padding.abs + @initial_tap_in = start_time + end + end + + if @speed_factor != 1.0 + metronome.length.times do |count| + + # we expect to find metronome start/stop grouped + if count % 2 == 0 + + start = metronome[count] + stop = metronome[count + 1] + + if start["action"] != "start" || stop["action"] != "stop" + # bail out + log.error("found de-coupled metronome events #{start.to_json} | #{stop.to_json}") + next + end + + bpm = start["bpm"].to_f + stop_time = parse_time(stop['ts']) + ticks = stop['ticks'].to_i + + + new_bpm = bpm * @inverse_speed_factor + new_stop_time = stop_time * @speed_factor + new_start_time = new_stop_time - (60.0/new_bpm * ticks) + + log.info("original bpm:#{bpm} start: #{parse_time(start["ts"])} stop: #{stop_time}") + log.info("updated bpm:#{new_bpm} start: #{new_start_time} stop: #{new_stop_time}") + + stop["ts"] = new_stop_time + start["ts"] = new_start_time + start["bpm"] = new_bpm + stop["bpm"] = new_bpm + + @tap_in_initial_silence = (@initial_tap_in + @initial_padding) * @speed_factor + + end + + end + end + + @start_points = metronome.select { |x| puts x.inspect; x["action"] == "start" } + + end + + # format like: "-0:00:02:820" + def parse_time(ts) + + if ts.is_a?(Float) + return ts + end + + time = 0.0 + negative = false + + if ts.start_with?('-') + negative = true + end + + # parse time_format + bits = ts.split(':').reverse + + bit_position = 0 + bits.each do |bit| + if bit_position == 0 + # milliseconds + milliseconds = bit.to_f + time += milliseconds/1000 + elsif bit_position == 1 + # seconds + time += bit.to_f + elsif bit_position == 2 + # minutes + time += 60 * bit.to_f + elsif bit_position == 3 + # hours + # not bothering + end + + bit_position += 1 + end + + if negative + time = 0.0 - time + end + + time + end + + def path_to_resources + File.join(File.dirname(File.expand_path(__FILE__)), '../../../lib/jam_ruby/app/assets/sounds') + end + + def knock_file + if long_sample_rate == 44100 + knock = File.join(path_to_resources, 'knock44.wav') + else + knock = File.join(path_to_resources, 'knock48.wav') + end + + log.debug("knock file path: " + knock) + knock + end + + def create_silence(tmp_dir, segment_count, duration) + file = File.join(tmp_dir, "#{segment_count}.wav") + + # -c 2 means stereo + cmd("sox -n -r #{long_sample_rate} -c 2 #{file} trim 0.0 #{duration}", "silence") + + file + end + + def create_tapin_track(tmp_dir) + + return nil if @start_points.length == 0 + + segment_count = 0 + + + #initial_silence = @initial_tap_in + @initial_padding + + initial_silence = @tap_in_initial_silence + + #log.info("tapin data: initial_tap_in: #{@initial_tap_in}, initial_padding: #{@initial_padding}, initial_silence: #{initial_silence}") + + time_points = [] + files = [] + if initial_silence > 0 + + files << create_silence(tmp_dir, segment_count, initial_silence) + + time_points << {type: :silence, ts: initial_silence} + segment_count += 1 + end + + + time_cursor = nil + @start_points.each do |start_point| + tap_time = parse_time(start_point["ts"]) + if !time_cursor.nil? + between_silence = tap_time - time_cursor + files << create_silence(tmp_dir, segment_count, between_silence) + time_points << {type: :silence, ts: between_silence} + end + time_cursor = tap_time + bpm = start_point["bpm"].to_f + + tick_silence = 60.0/bpm - KNOCK_SECONDS + + ticks = start_point["ticks"].to_i + + ticks.times do |tick| + files << knock_file + files << create_silence(tmp_dir, segment_count, tick_silence) + time_points << {type: :knock, ts: KNOCK_SECONDS} + time_points << {type: :silence, ts: tick_silence} + time_cursor + 60.0/bpm + segment_count += 1 + end + end + + log.info("time points for tap-in: #{time_points.inspect}") + # do we need to pad with time? not sure + + sequence_cmd = "sox " + files.each do |file| + sequence_cmd << "\"#{file}\" " + end + + count_in = File.join(tmp_dir, "count-in.wav") + sequence_cmd << "\"#{count_in}\"" + + cmd(sequence_cmd, "count_in") + @count_in_file = count_in + count_in end # creates a list of tracks to actually mix @@ -140,6 +347,15 @@ module JamRuby stems = @mixdown.jam_track.stem_tracks @track_count = stems.length + @include_count_in = @settings["count-in"] && @start_points.length > 0 && @mixdown_package.encrypt_type.nil? + + # temp + # @include_count_in = true + + if @include_count_in + @track_count += 1 + end + stems.each do |stem| vol = 1.0 @@ -166,10 +382,14 @@ module JamRuby # if we didn't deliberately skip this one, and if there was no 'match' (meaning user did not specify), then we leave this in unchanged if !skipped && !match - @track_settings << {stem:stem, vol:vol, pan:pan} + @track_settings << {stem: stem, vol: vol, pan: pan} end end + if @include_count_in + @track_settings << {count_in: true, vol: 1.0, pan: 0} + end + @track_settings end @@ -180,14 +400,14 @@ module JamRuby # k = f(i) = (i)/(2*MAX_PAN) + 0.5 # so f(MIN_PAN) = -0.5 + 0.5 = 0 - k = ((pan * (1.0))/ (2.0 * MAX_PAN )) + 0.5 + k = ((pan * (1.0))/ (2.0 * MAX_PAN)) + 0.5 l, r = 0 if k == 0 l = 0.0 r = 1.0 else - l = Math.sqrt(k) + l = Math.sqrt(k) r = Math.sqrt(1-k) end @@ -196,24 +416,26 @@ module JamRuby def package - puts @settings.inspect - puts @track_count - puts @track_settings - puts @track_settings.count + log.info("Settings: #{@settings.to_json}") Dir.mktmpdir do |tmp_dir| # download all files @track_settings.each do |track| - jam_track_track = track[:stem] - file = File.join(tmp_dir, jam_track_track.id + '.ogg') + if track[:count_in] + file = create_tapin_track(tmp_dir) + bump_step(@mixdown_package) + else + jam_track_track = track[:stem] - bump_step(@mixdown_package) + file = File.join(tmp_dir, jam_track_track.id + '.ogg') - # download each track needed - s3_manager.download(jam_track_track.url_by_sample_rate(@mixdown_package.sample_rate), file) + bump_step(@mixdown_package) + # download each track needed + s3_manager.download(jam_track_track.url_by_sample_rate(@mixdown_package.sample_rate), file) + end track[:file] = file end @@ -233,6 +455,8 @@ module JamRuby apply_vol_and_pan tmp_dir + create_silence_padding tmp_dir + mix tmp_dir pitch_speed tmp_dir @@ -245,6 +469,7 @@ module JamRuby @track_settings.each do |track| jam_track_track = track[:stem] + count_in = track[:count_in] file = track[:file] unless should_alter_volume? track @@ -262,7 +487,11 @@ module JamRuby # sox claps.wav claps-remixed.wav remix 1v1.0 2v1.0 - volumed_file = File.join(tmp_dir, jam_track_track.id + '-volumed.ogg') + if count_in + volumed_file = File.join(tmp_dir, 'count-in' + '-volumed.ogg') + else + volumed_file = File.join(tmp_dir, jam_track_track.id + '-volumed.ogg') + end cmd("sox \"#{file}\" \"#{volumed_file}\" remix 1v#{channel_r} 2v#{channel_l}", 'vol_pan') @@ -271,6 +500,29 @@ module JamRuby end end + def create_silence_padding(tmp_dir) + if @initial_padding > 0 && @include_count_in + + @padding_file = File.join(tmp_dir, "initial_padding.ogg") + + # -c 2 means stereo + cmd("sox -n -r #{long_sample_rate} -c 2 #{@padding_file} trim 0.0 #{@initial_padding}", "initial_padding") + + @track_settings.each do |track| + + next if track[:count_in] + + input = track[:volumed_file] + output = input[0..-5] + '-padded.ogg' + + padd_cmd = "sox '#{@padding_file}' '#{input}' '#{output}'" + + cmd(padd_cmd, "pad_track_with_silence") + track[:volumed_file] = output + end + end + end + # output is @mix_file def mix(tmp_dir) @@ -278,6 +530,11 @@ module JamRuby @mix_file = File.join(tmp_dir, "mix.ogg") + + pitch = @settings['pitch'] || 0 + speed = @settings['speed'] || 0 + + # if there is only one track to mix, we need to skip mixing (sox will barf if you try to mix one file), but still divide by number of tracks if @track_settings.count == 1 mix_divide = 1.0/@track_count @@ -290,6 +547,11 @@ module JamRuby cmd = "sox -m" mix_divide = 1.0/@track_count @track_settings.each do |track| + + # if pitch/shifted, we lay the tap-in after pitch/speed shift + # next if (pitch != 0 || speed != 0) && track[:count_in] + next if track[:count_in] + volumed_file = track[:volumed_file] cmd << " -v #{mix_divide} \"#{volumed_file}\"" end @@ -302,6 +564,13 @@ module JamRuby end + def long_sample_rate + sample_rate = 48000 + if @mixdown_package.sample_rate != 48 + sample_rate = 44100 + end + sample_rate + end # output is @speed_mix_file def pitch_speed tmp_dir @@ -327,17 +596,21 @@ module JamRuby # usage: sbsms infile<.wav|.aif|.mp3|.ogg> outfile<.ogg> rate[0.01:100] halfsteps[-48:48] outSampleRateInHz - sample_rate = 48000 - if @mixdown_package.sample_rate != 48 - sample_rate = 44100 - end + sample_rate = long_sample_rate # rate comes in as a percent (like 5, -5 for 5%, -5%). We need to change that to 1.05/ sbsms_speed = speed/100.0 sbsms_speed = 1.0 + sbsms_speed sbsms_pitch = pitch - cmd( "sbsms \"#{@mix_file}\" \"#{@speed_mix_file}\" #{sbsms_speed} #{sbsms_pitch} #{sample_rate}", 'speed_pitch_shift') + cmd("sbsms \"#{@mix_file}\" \"#{@speed_mix_file}\" #{sbsms_speed} #{sbsms_pitch} #{sample_rate}", 'speed_pitch_shift') + end + + if @include_count_in + # lay the tap-ins over the recording + layered = File.join(tmp_dir, "layered_speed_mix.ogg") + cmd("sox -m '#{@count_in_file}' '#{@speed_mix_file}' '#{layered}'", "layer_tap_in") + @speed_mix_file = layered end end @@ -364,7 +637,7 @@ module JamRuby length = File.size(output) computed_md5 = Digest::MD5.new - File.open(output, 'rb').each {|line| computed_md5.update(line)} + File.open(output, 'rb').each { |line| computed_md5.update(line) } md5 = computed_md5.to_s @mixdown_package.finish_sign(s3_url, private_key, length, md5.to_s) @@ -426,7 +699,7 @@ module JamRuby end private_key_file = File.join(tmp_dir, 'skey.pem') - File.open(private_key_file, 'w') {|f| f.write(private_key) } + File.open(private_key_file, 'w') { |f| f.write(private_key) } log.debug("PRIVATE KEY") log.debug(private_key) diff --git a/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee b/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee index bd4c34779..9f3fd2975 100644 --- a/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/PopupJamTrackPlayer.js.jsx.coffee @@ -298,6 +298,14 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') `) + if jamTrack?.jmep?.Events? && jamTrack.jmep.Events[0].metronome? + # tap-in detected; show user tap-in option + tracks.push(` + + Count-in + + `) + stems = `
    @@ -647,6 +655,7 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') else pitch = parseInt(pitch) + count_in = false # get mute state of all tracks $mutes = $(@getDOMNode()).find('.stems .stem .stem-mute') @@ -657,10 +666,13 @@ mixins.push(Reflux.listenTo(JamTrackPlayerStore, 'onJamTrackPlayerStoreChanged') stemId = $mute.attr('data-stem-id') muted = $mute.is(':checked') - tracks.push({id: stemId, mute: muted}) + if stemId == 'count-in' + count_in = !muted + else + tracks.push({id: stemId, mute: muted}) ) - mixdown = {jamTrackID: @state.jamTrackState.jamTrack.id, name: name, settings: {speed:speed, pitch: pitch, tracks:tracks}} + mixdown = {jamTrackID: @state.jamTrackState.jamTrack.id, name: name, settings: {speed:speed, pitch: pitch, "count-in": count_in, tracks:tracks}} JamTrackPlayerActions.createMixdown(mixdown, @createMixdownDone, @createMixdownFail) diff --git a/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee b/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee index ca7012871..c214aab20 100644 --- a/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee @@ -276,8 +276,7 @@ ChannelGroupIds = context.JK.ChannelGroupIds # All the JamTracks mediaTracks.push(``) - # show metronome only if it's a full jamtrack - if @state.metronome? && @state.jamTrackMixdown.id == null + if @state.metronome? # && @state.jamTrackMixdown.id == null @state.metronome.mode = MIX_MODES.PERSONAL mediaTracks.push(``) diff --git a/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee b/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee index 17c088534..46a095bb8 100644 --- a/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/JamTrackStore.js.coffee @@ -165,6 +165,20 @@ JamTrackActions = @JamTrackActions # JamTrackPlay means 'load' logger.debug("JamTrackStore: loading mixdown") context.jamClient.JamTrackStopPlay(); + + if @jamTrack.jmep + + if @jamTrack.activeMixdown.settings.speed? + @jamTrack.jmep.speed = @jamTrack.activeMixdown.settings.speed + else + @jamTrack.jmep.speed = 0 + + logger.debug("setting jmep data. speed:" + @jamTrack.jmep.speed) + + context.jamClient.JamTrackLoadJmep(fqId, @jamTrack.jmep) + else + logger.debug("no jmep data for jamtrack") + result = context.jamClient.JamTrackPlay(fqId); if !result @jamTrack.activeMixdown.client_state = 'cant_open' diff --git a/web/lib/tasks/jam_tracks.rake b/web/lib/tasks/jam_tracks.rake index dcc9f623a..c0add4f92 100644 --- a/web/lib/tasks/jam_tracks.rake +++ b/web/lib/tasks/jam_tracks.rake @@ -196,6 +196,12 @@ namespace :jam_tracks do mapper.correlate end + task touch: :environment do |task, arg| + JamTrack.all.each do |jt| + jt.touch # causes jmep re-spin + end + end + task generate_private_key: :environment do |task, arg| JamTrackRight.all.each do |right| if right.private_key_44.nil? || right.private_key_48.nil?