* VRFS-2879 - adding 3 product pages (jamblaster, platform, jamtracks)
This commit is contained in:
parent
84ac9f049c
commit
80a48c60c6
|
|
@ -2740,6 +2740,12 @@
|
|||
logger.debug("Unstable clocks: ", names, unstable)
|
||||
context.JK.Banner.showAlert("Couldn't open metronome", context._.template($('#template-help-metronome-unstable').html(), {names: names}, { variable: 'data' }));
|
||||
} else {
|
||||
var data = {
|
||||
value: 1,
|
||||
session_size: sessionModel.participants().length,
|
||||
user_id: context.JK.currentUserId,
|
||||
user_name: context.JK.currentUserName }
|
||||
context.stats.write('web.metronome.open', {})
|
||||
var bpm = 120;
|
||||
logger.debug("opening the metronome with bpm: " + bpm + ", sound:" + metroSound)
|
||||
rest.openMetronome({id: sessionModel.id()})
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
(function (context, $) {
|
||||
|
||||
"use strict";
|
||||
|
||||
context.JK = context.JK || {};
|
||||
context.JK.IndividualJamTrack = function (app) {
|
||||
|
||||
var rest = context.JK.Rest();
|
||||
var logger = context.JK.logger;
|
||||
var $page = null;
|
||||
var $jamtrack_name = null;
|
||||
var $previews = null;
|
||||
var $jamTracksButton = null;
|
||||
var $genericHeader = null;
|
||||
var $individualizedHeader = null;
|
||||
|
||||
function fetchJamTrack() {
|
||||
rest.getJamTrack({plan_code: gon.jam_track_plan_code})
|
||||
.done(function (jam_track) {
|
||||
logger.debug("jam_track", jam_track)
|
||||
|
||||
if(!gon.just_previews) {
|
||||
if (gon.generic) {
|
||||
$genericHeader.removeClass('hidden');
|
||||
}
|
||||
else {
|
||||
$individualizedHeader.removeClass('hidden')
|
||||
$jamtrack_name.text(jam_track.name);
|
||||
$jamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrack')
|
||||
}
|
||||
}
|
||||
|
||||
context._.each(jam_track.tracks, function (track) {
|
||||
|
||||
var $element = $('<div class="jam-track-preview-holder"></div>')
|
||||
|
||||
$previews.append($element);
|
||||
|
||||
new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false})
|
||||
})
|
||||
|
||||
$previews.append('<br clear = "all" />')
|
||||
})
|
||||
.fail(function () {
|
||||
app.notify({title: 'Unable to fetch JamTrack', text: "Please refresh the page or try again later."})
|
||||
})
|
||||
|
||||
}
|
||||
function initialize() {
|
||||
|
||||
$page = $('body')
|
||||
$jamtrack_name = $page.find('.jamtrack_name')
|
||||
$previews = $page.find('.previews')
|
||||
$jamTracksButton = $page.find('.browse-jamtracks-wrapper .white-bordered-button')
|
||||
$genericHeader = $page.find('h1.generic')
|
||||
$individualizedHeader = $page.find('h1.individualized')
|
||||
fetchJamTrack();
|
||||
}
|
||||
|
||||
this.initialize = initialize;
|
||||
}
|
||||
})(window, jQuery);
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
|
||||
(function (context, $) {
|
||||
|
||||
"use strict";
|
||||
|
||||
context.JK = context.JK || {};
|
||||
context.JK.IndividualJamTrackBand = function (app) {
|
||||
|
||||
var rest = context.JK.Rest();
|
||||
var logger = context.JK.logger;
|
||||
var $page = null;
|
||||
var $jamTrackBandInfo = null;
|
||||
var $jamTrackNoun = null;
|
||||
var $previews = null;
|
||||
var $jamTracksButton = null;
|
||||
var $checkItOut = null;
|
||||
|
||||
function fetchJamTrack() {
|
||||
rest.getJamTrackWithArtistInfo({plan_code: gon.jam_track_plan_code})
|
||||
.done(function (jam_track) {
|
||||
logger.debug("jam_track", jam_track)
|
||||
|
||||
$jamTrackBandInfo.text(jam_track.band_jam_track_count + ' ' + jam_track.original_artist);
|
||||
$jamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrack')
|
||||
|
||||
if(jam_track.band_jam_track_count == 1) {
|
||||
$jamTrackNoun.text('JamTrack')
|
||||
$checkItOut.text(', Check It Out!')
|
||||
}
|
||||
context._.each(jam_track.tracks, function (track) {
|
||||
|
||||
var $element = $('<div class="jam-track-preview-holder"></div>')
|
||||
|
||||
$previews.append($element);
|
||||
|
||||
new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false})
|
||||
})
|
||||
|
||||
$previews.append('<br clear = "all" />')
|
||||
})
|
||||
.fail(function () {
|
||||
app.notify({title: 'Unable to fetch JamTrack', text: "Please refresh the page or try again later."})
|
||||
})
|
||||
|
||||
}
|
||||
function initialize() {
|
||||
|
||||
$page = $('body')
|
||||
$jamTrackBandInfo = $page.find('.jamtrack_band_info')
|
||||
$previews = $page.find('.previews')
|
||||
$jamTracksButton = $page.find('.browse-jamtracks-wrapper .white-bordered-button')
|
||||
$jamTrackNoun = $page.find('.jamtrack_noun')
|
||||
$checkItOut = $page.find('.check-it-out')
|
||||
|
||||
fetchJamTrack();
|
||||
}
|
||||
|
||||
this.initialize = initialize;
|
||||
}
|
||||
})(window, jQuery);
|
||||
|
|
@ -62,6 +62,8 @@
|
|||
//= require web/session_info
|
||||
//= require web/recordings
|
||||
//= require web/welcome
|
||||
//= require web/individual_jamtrack
|
||||
//= require web/individual_jamtrack_band
|
||||
//= require fakeJamClient
|
||||
//= require fakeJamClientMessages
|
||||
//= require fakeJamClientRecordings
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ input[type="button"] {
|
|||
}
|
||||
|
||||
.hidden {
|
||||
display:none;
|
||||
display:none !important;
|
||||
}
|
||||
|
||||
.small {
|
||||
|
|
|
|||
|
|
@ -5,11 +5,17 @@ body.web.landing_page {
|
|||
.two_by_two {
|
||||
|
||||
h1 {
|
||||
margin:0 0 10px;
|
||||
margin:0 0 5px;
|
||||
padding:7px 0;
|
||||
display:inline-block;
|
||||
}
|
||||
.row {
|
||||
@include border_box_sizing;
|
||||
|
||||
&:nth-of-type(1) {
|
||||
padding:20px 0 0 0;
|
||||
}
|
||||
|
||||
|
||||
.column {
|
||||
width:50%;
|
||||
|
|
@ -19,7 +25,7 @@ body.web.landing_page {
|
|||
}
|
||||
}
|
||||
|
||||
&.landing_jamtrack {
|
||||
&.landing_jamtrack, &.landing_product {
|
||||
|
||||
.landing-tag {
|
||||
left:50%;
|
||||
|
|
@ -34,7 +40,10 @@ body.web.landing_page {
|
|||
|
||||
}
|
||||
ul {
|
||||
|
||||
list-style-type: disc;
|
||||
}
|
||||
li {
|
||||
margin-left:20px;
|
||||
}
|
||||
.video-container {
|
||||
margin-top:0;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
@import "client/common.css.scss";
|
||||
|
||||
body.web.landing_product {
|
||||
|
||||
h1.product-headline {
|
||||
color:white;
|
||||
background-color:$ColorScreenPrimary;
|
||||
margin-bottom:20px;
|
||||
padding:7px;
|
||||
border-radius:4px;
|
||||
}
|
||||
|
||||
.product-description {
|
||||
margin-bottom:20px;
|
||||
}
|
||||
|
||||
.white-bordered-button {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.cta-big-button {
|
||||
text-align:center;
|
||||
width:90%;
|
||||
}
|
||||
|
||||
.linked-video-holder {
|
||||
text-align:center;
|
||||
width:90%;
|
||||
margin-top:20px;
|
||||
}
|
||||
|
||||
.previews {
|
||||
margin-top:10px;
|
||||
}
|
||||
|
||||
.jamtrack-reasons {
|
||||
margin-top:20px;
|
||||
}
|
||||
|
||||
.jam-track-preview-holder {
|
||||
|
||||
margin-bottom: 7px;
|
||||
float: left;
|
||||
|
||||
&[data-track-type="Master"] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&[data-track-type="Track"] {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -77,5 +77,25 @@ class LandingsController < ApplicationController
|
|||
|
||||
render 'individual_jamtrack_band', layout: 'web'
|
||||
end
|
||||
|
||||
def product_jamblaster
|
||||
render 'product_jamblaster', layout: 'web'
|
||||
end
|
||||
|
||||
def product_platform
|
||||
render 'product_platform', layout: 'web'
|
||||
end
|
||||
|
||||
def product_jamtracks
|
||||
gon.generic = true
|
||||
gon.just_previews = true
|
||||
jam_track = JamTrack.select('plan_code').where(plan_code: Rails.application.config.nominated_jam_track).first
|
||||
unless jam_track
|
||||
jam_track = JamTrack.first
|
||||
end
|
||||
|
||||
gon.jam_track_plan_code = jam_track.plan_code
|
||||
render 'product_jamtracks', layout: 'web'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -31,75 +31,16 @@
|
|||
| Unlike traditional backing tracks, JamTracks are complete multitrack recordings,
|
||||
| with fully isolated tracks for each part. Used with the free JamKazam app/service, you can:
|
||||
ul.jamtrack-reasons
|
||||
li - Solo just the individual track you want to play to hear and learn it
|
||||
li - Mute just the track you want to play, and play along with the rest
|
||||
li - Make audio recordings and share them via Facebook or URL
|
||||
li - Make video recordings and share them via YouTube or URL
|
||||
li - And even go online to play JamTracks with others in real time!
|
||||
li Solo just the individual track you want to play to hear and learn it
|
||||
li Mute just the track you want to play, and play along with the rest
|
||||
li Make audio recordings and share them via Facebook or URL
|
||||
li Make video recordings and share them via YouTube or URL
|
||||
li And even go online to play JamTracks with others in real time!
|
||||
br clear="all"
|
||||
br clear="all"
|
||||
|
||||
javascript:
|
||||
(function (context, $) {
|
||||
|
||||
"use strict";
|
||||
|
||||
context.JK = context.JK || {};
|
||||
context.JK.IndividualJamTrack = function (app) {
|
||||
|
||||
var rest = context.JK.Rest();
|
||||
var logger = context.JK.logger;
|
||||
var $page = null;
|
||||
var $jamtrack_name = null;
|
||||
var $previews = null;
|
||||
var $jamTracksButton = null;
|
||||
var $genericHeader = null;
|
||||
var $individualizedHeader = null;
|
||||
|
||||
function fetchJamTrack() {
|
||||
rest.getJamTrack({plan_code: gon.jam_track_plan_code})
|
||||
.done(function (jam_track) {
|
||||
logger.debug("jam_track", jam_track)
|
||||
|
||||
if(gon.generic) {
|
||||
$genericHeader.removeClass('hidden');
|
||||
}
|
||||
else {
|
||||
$individualizedHeader.removeClass('hidden')
|
||||
$jamtrack_name.text(jam_track.name);
|
||||
$jamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrack')
|
||||
}
|
||||
|
||||
context._.each(jam_track.tracks, function (track) {
|
||||
|
||||
var $element = $('<div class="jam-track-preview-holder"></div>')
|
||||
|
||||
$previews.append($element);
|
||||
|
||||
new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false})
|
||||
})
|
||||
|
||||
$previews.append('<br clear = "all" />')
|
||||
})
|
||||
.fail(function () {
|
||||
app.notify({title: 'Unable to fetch JamTrack', text: "Please refresh the page or try again later."})
|
||||
})
|
||||
|
||||
}
|
||||
function initialize() {
|
||||
|
||||
$page = $('body')
|
||||
$jamtrack_name = $page.find('.jamtrack_name')
|
||||
$previews = $page.find('.previews')
|
||||
$jamTracksButton = $page.find('.browse-jamtracks-wrapper .white-bordered-button')
|
||||
$genericHeader = $page.find('h1.generic')
|
||||
$individualizedHeader = $page.find('h1.individualized')
|
||||
fetchJamTrack();
|
||||
}
|
||||
|
||||
this.initialize = initialize;
|
||||
}
|
||||
})(window, jQuery);
|
||||
|
||||
$(document).on('JAMKAZAM_READY', function(e, data) {
|
||||
var song = new JK.IndividualJamTrack(data.app);
|
||||
|
|
|
|||
|
|
@ -31,75 +31,15 @@
|
|||
| Unlike traditional backing tracks, JamTracks are complete multitrack recordings,
|
||||
| with fully isolated tracks for each part. Used with the free JamKazam app/service, you can:
|
||||
ul.jamtrack-reasons
|
||||
li - Solo just the individual track you want to play to hear and learn it
|
||||
li - Mute just the track you want to play, and play along with the rest
|
||||
li - Make audio recordings and share them via Facebook or URL
|
||||
li - Make video recordings and share them via YouTube or URL
|
||||
li - And even go online to play JamTracks with others in real time!
|
||||
li Solo just the individual track you want to play to hear and learn it
|
||||
li Mute just the track you want to play, and play along with the rest
|
||||
li Make audio recordings and share them via Facebook or URL
|
||||
li Make video recordings and share them via YouTube or URL
|
||||
li And even go online to play JamTracks with others in real time!
|
||||
br clear="all"
|
||||
br clear="all"
|
||||
|
||||
javascript:
|
||||
(function (context, $) {
|
||||
|
||||
"use strict";
|
||||
|
||||
context.JK = context.JK || {};
|
||||
context.JK.IndividualJamTrackBand = function (app) {
|
||||
|
||||
var rest = context.JK.Rest();
|
||||
var logger = context.JK.logger;
|
||||
var $page = null;
|
||||
var $jamTrackBandInfo = null;
|
||||
var $jamTrackNoun = null;
|
||||
var $previews = null;
|
||||
var $jamTracksButton = null;
|
||||
var $checkItOut = null;
|
||||
|
||||
function fetchJamTrack() {
|
||||
rest.getJamTrackWithArtistInfo({plan_code: gon.jam_track_plan_code})
|
||||
.done(function (jam_track) {
|
||||
logger.debug("jam_track", jam_track)
|
||||
|
||||
$jamTrackBandInfo.text(jam_track.band_jam_track_count + ' ' + jam_track.original_artist);
|
||||
$jamTracksButton.attr('href', '/client?artist=' + jam_track.original_artist + '#/jamtrack')
|
||||
|
||||
if(jam_track.band_jam_track_count == 1) {
|
||||
$jamTrackNoun.text('JamTrack')
|
||||
$checkItOut.text(', Check It Out!')
|
||||
}
|
||||
context._.each(jam_track.tracks, function (track) {
|
||||
|
||||
var $element = $('<div class="jam-track-preview-holder"></div>')
|
||||
|
||||
$previews.append($element);
|
||||
|
||||
new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: false})
|
||||
})
|
||||
|
||||
$previews.append('<br clear = "all" />')
|
||||
})
|
||||
.fail(function () {
|
||||
app.notify({title: 'Unable to fetch JamTrack', text: "Please refresh the page or try again later."})
|
||||
})
|
||||
|
||||
}
|
||||
function initialize() {
|
||||
|
||||
$page = $('body')
|
||||
$jamTrackBandInfo = $page.find('.jamtrack_band_info')
|
||||
$previews = $page.find('.previews')
|
||||
$jamTracksButton = $page.find('.browse-jamtracks-wrapper .white-bordered-button')
|
||||
$jamTrackNoun = $page.find('.jamtrack_noun')
|
||||
$checkItOut = $page.find('.check-it-out')
|
||||
|
||||
fetchJamTrack();
|
||||
}
|
||||
|
||||
this.initialize = initialize;
|
||||
}
|
||||
})(window, jQuery);
|
||||
|
||||
$(document).on('JAMKAZAM_READY', function(e, data) {
|
||||
var song = new JK.IndividualJamTrackBand(data.app);
|
||||
song.initialize();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
- provide(:page_name, 'landing_page full landing_product product_jamblaster')
|
||||
|
||||
.two_by_two
|
||||
.row
|
||||
.column
|
||||
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.
|
||||
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.
|
||||
.column
|
||||
h1 See What You Can Do With The JamBlaster
|
||||
.video-wrapper
|
||||
.video-container
|
||||
iframe src="//www.youtube.com/embed/2Zk7-04IAx4" frameborder="0" 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
|
||||
.column
|
||||
h1 Want To Know More About Latency?
|
||||
p
|
||||
| How is it possible that someone hundreds of miles away could feel like they are 20 feet away from you? Check out this video on latency to understand more:
|
||||
.linked-video-holder
|
||||
a href="https://www.youtube.com/watch?v=mB3_KMse-J4" rel="external" Watch Video About Latency - It's Pretty Fascinating
|
||||
br clear="all"
|
||||
br clear="all"
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
- provide(:page_name, 'landing_page full landing_product product_jamtracks')
|
||||
|
||||
.two_by_two
|
||||
.row
|
||||
.column
|
||||
h1.product-headline
|
||||
| JamTracks by JamKazam
|
||||
p.product-description
|
||||
| We have 100+ amazing JamTracks. Click the play buttons to hear the master mix and fully isolated track. All are included in each JamTrack.
|
||||
.previews
|
||||
.column
|
||||
h1 See What You Can With JamTracks
|
||||
.video-wrapper
|
||||
.video-container
|
||||
iframe src="//www.youtube.com/embed/2Zk7-04IAx4" frameborder="0" allowfullscreen
|
||||
br clear="all"
|
||||
.row
|
||||
.column
|
||||
h1
|
||||
| Get Your First JamTrack Free Now!
|
||||
p Click the GET A JAMTRACK FREE button below. Browse to find the one you want, click the Add to cart, and we'll apply a credit during checkout to make the first one free! We're confident you'll be back for more.
|
||||
|
||||
.cta-big-button
|
||||
a.white-bordered-button href="/client#/jamtrack" GET A JAMTRACK FREE!
|
||||
.column
|
||||
h1 Why are JamTracks Better than Backing Tracks?
|
||||
p
|
||||
| JamTracks are the best way to play with your favorite music. Unlike traditional backing tracks, JamTracks are complete multitrack recordings, with fully isolated tracks for each part. Used with the free JamKazam app/service, you can:
|
||||
ul.jamtrack-reasons
|
||||
li Solo just the individual track you want to play to hear and learn it
|
||||
li Mute just the track you want to play, and play along with the rest
|
||||
li Make audio recordings and share them via Facebook or URL
|
||||
li Make video recordings and share them via YouTube or URL
|
||||
li And even go online to play JamTracks with others in real time!
|
||||
br clear="all"
|
||||
br clear="all"
|
||||
|
||||
javascript:
|
||||
$(document).on('JAMKAZAM_READY', function (e, data) {
|
||||
var song = new JK.IndividualJamTrack(data.app);
|
||||
song.initialize();
|
||||
})
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
- provide(:page_name, 'landing_page full landing_product product_platform')
|
||||
|
||||
.two_by_two
|
||||
.row
|
||||
.column
|
||||
h1.product-headline
|
||||
| The JamKazam Platform
|
||||
p.product-description
|
||||
| JamKazam is an innovative live music platform and social network, enabling musicians to play music together in real time from different locations over the internet as if they are sitting in the same room. The core platform is free to use and delivers immense value:
|
||||
ul
|
||||
li Play music from home with your friends and bandmates without packing and transporting gear, and without needing a rehearsal space
|
||||
li Connect with new musician friends from our community of thousands of musicians to play more often, explore new styles, learn from others
|
||||
li Find musicians to join your band, or find a band to join, either virtual on JamKazam, or real world to meet and play in person
|
||||
li Schedule sessions or jump into ad hoc jams
|
||||
li Make and share recordings or session performances via Facebook or URL
|
||||
li Live broadcast sessions to family, friends, and fans
|
||||
li List your band for hire to play gigs at clubs and events
|
||||
li List yourself for hire to play studio sessions or lay down recorded tracks remotely
|
||||
.column
|
||||
h1 See What You Can Do With JamKazam
|
||||
.video-wrapper
|
||||
.video-container
|
||||
iframe src="//www.youtube.com/embed/ylYcvTY9CVo" frameborder="0" allowfullscreen
|
||||
br clear="all"
|
||||
.row
|
||||
.column
|
||||
h1
|
||||
| Sign Up for JamKazam Now, It's Free!
|
||||
p Yep, seriously. Sign up and start playing music online in real time with your friends - or make new ones from our community of thousands of musicians. It's free to play with others as much as you want.
|
||||
|
||||
.cta-big-button
|
||||
a.white-bordered-button href="/signup" SIGN UP NOW FOR YOUR FREE ACCOUNT
|
||||
.column
|
||||
h1 Does This Really Work?
|
||||
p
|
||||
| Feeling skeptical about whether this can actually work? That's natural. We'd encourage you to watch a video of endorsements and kudos from just a few of the musicians who use JamKazam.
|
||||
.linked-video-holder
|
||||
a href="https://www.youtube.com/watch?v=_7qj5RXyHCo" rel="external" Check Out Endorsements Of Real Users
|
||||
br clear="all"
|
||||
br clear="all"
|
||||
|
|
@ -318,5 +318,7 @@ if defined?(Bundler)
|
|||
config.metronome_available = true
|
||||
config.backing_tracks_available = true
|
||||
config.one_free_jamtrack_per_user = true
|
||||
|
||||
config.nominated_jam_track = 'jamtrack-pearljam-alive'
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -33,6 +33,11 @@ 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'
|
||||
|
||||
# product pages
|
||||
match '/products/jamblaster', to: 'landings#product_jamblaster', via: :get, as: 'product_jamblaster'
|
||||
match '/products/platform', to: 'landings#product_platform', via: :get, as: 'product_platform'
|
||||
match '/products/jamtracks', to: 'landings#product_jamtracks', via: :get, as: 'product_jamtracks'
|
||||
|
||||
# oauth
|
||||
match '/auth/:provider/callback', :to => 'sessions#oauth_callback'
|
||||
match '/auth/failure', :to => 'sessions#failure'
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ describe "Individual JamTrack Band", :js => true, :type => :feature, :capybara_f
|
|||
|
||||
let(:user) { FactoryGirl.create(:user) }
|
||||
let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack }
|
||||
let(:jamtrack_pearljam_evenflow) { @jamtrack_pearljam_evenflow }
|
||||
|
||||
let(:billing_info) {
|
||||
{
|
||||
|
|
@ -44,11 +43,9 @@ describe "Individual JamTrack Band", :js => true, :type => :feature, :capybara_f
|
|||
@created_accounts = []
|
||||
|
||||
@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')
|
||||
|
||||
# make sure plans are there
|
||||
@recurlyClient.create_jam_track_plan(@jamtrack_acdc_backinblack) unless @recurlyClient.find_jam_track_plan(@jamtrack_acdc_backinblack)
|
||||
@recurlyClient.create_jam_track_plan(@jamtrack_pearljam_evenflow) unless @recurlyClient.find_jam_track_plan(@jamtrack_pearljam_evenflow)
|
||||
end
|
||||
|
||||
|
||||
|
|
@ -82,6 +79,9 @@ describe "Individual JamTrack Band", :js => true, :type => :feature, :capybara_f
|
|||
end
|
||||
end
|
||||
find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrack")
|
||||
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
find('h1', text: 'jamtracks')
|
||||
end
|
||||
|
||||
it "logged in" do
|
||||
|
|
@ -98,6 +98,9 @@ describe "Individual JamTrack Band", :js => true, :type => :feature, :capybara_f
|
|||
end
|
||||
end
|
||||
find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrack")
|
||||
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
find('h1', text: 'jamtracks')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
|
|||
|
||||
let(:user) { FactoryGirl.create(:user) }
|
||||
let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack }
|
||||
let(:jamtrack_pearljam_evenflow) { @jamtrack_pearljam_evenflow }
|
||||
|
||||
let(:billing_info) {
|
||||
{
|
||||
|
|
@ -44,11 +43,9 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
|
|||
@created_accounts = []
|
||||
|
||||
@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')
|
||||
|
||||
# make sure plans are there
|
||||
@recurlyClient.create_jam_track_plan(@jamtrack_acdc_backinblack) unless @recurlyClient.find_jam_track_plan(@jamtrack_acdc_backinblack)
|
||||
@recurlyClient.create_jam_track_plan(@jamtrack_pearljam_evenflow) unless @recurlyClient.find_jam_track_plan(@jamtrack_pearljam_evenflow)
|
||||
end
|
||||
|
||||
|
||||
|
|
@ -82,6 +79,9 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
|
|||
end
|
||||
end
|
||||
find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrack")
|
||||
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
find('h1', text: 'jamtracks')
|
||||
end
|
||||
|
||||
it "logged in" do
|
||||
|
|
@ -98,6 +98,9 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
|
|||
end
|
||||
end
|
||||
find('a.white-bordered-button')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrack")
|
||||
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
find('h1', text: 'jamtracks')
|
||||
end
|
||||
|
||||
it "generic version" do
|
||||
|
|
@ -114,6 +117,9 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
|
|||
end
|
||||
end
|
||||
find('a.white-bordered-button')['href'].should eq("/client#/jamtrack")
|
||||
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
find('h1', text: 'jamtracks')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,122 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Product Pages", :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
|
||||
end
|
||||
|
||||
let(:user) { FactoryGirl.create(:user) }
|
||||
let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack }
|
||||
|
||||
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'
|
||||
}
|
||||
}
|
||||
|
||||
def create_account(user, billing_info)
|
||||
@recurlyClient.create_account(user, billing_info)
|
||||
@created_accounts << user
|
||||
end
|
||||
|
||||
|
||||
before(:all) do
|
||||
|
||||
@recurlyClient = RecurlyClient.new
|
||||
@created_accounts = []
|
||||
|
||||
@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')
|
||||
|
||||
# make sure plans are there
|
||||
@recurlyClient.create_jam_track_plan(@jamtrack_acdc_backinblack) unless @recurlyClient.find_jam_track_plan(@jamtrack_acdc_backinblack)
|
||||
end
|
||||
|
||||
|
||||
after(:each) do
|
||||
@created_accounts.each do |user|
|
||||
if user.recurly_code
|
||||
begin
|
||||
@account = Recurly::Account.find(user.recurly_code)
|
||||
if @account.present?
|
||||
@account.destroy
|
||||
end
|
||||
rescue
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "JamBlaster" do
|
||||
it "logged out" do
|
||||
visit "/products/jamblaster"
|
||||
|
||||
find('h1', text: 'The JamBlaster by JamKazam')
|
||||
find('a.white-bordered-button')['href'].should eq("#") # nowhere to go yet
|
||||
end
|
||||
|
||||
it "logged in" do
|
||||
fast_signin(user, "/products/jamblaster")
|
||||
|
||||
find('h1', text: 'The JamBlaster by JamKazam')
|
||||
find('a.white-bordered-button')['href'].should eq("#") # nowhere to go yet
|
||||
end
|
||||
end
|
||||
|
||||
describe "Platform" do
|
||||
it "logged out" do
|
||||
visit "/products/platform"
|
||||
|
||||
find('h1', text: 'The JamKazam Platform')
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
|
||||
find('h2', text: 'Create your free JamKazam account')
|
||||
end
|
||||
|
||||
it "logged in" do
|
||||
fast_signin(user, "/products/platform")
|
||||
|
||||
find('h1', text: 'The JamKazam Platform')
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
|
||||
# clicking /signup just redirects you to the client
|
||||
find('h2', text: 'create session')
|
||||
end
|
||||
end
|
||||
|
||||
describe "JamTracks" do
|
||||
it "logged out" do
|
||||
visit "/products/jamtracks"
|
||||
|
||||
find('h1', text: 'JamTracks by JamKazam')
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
|
||||
find('h1', text: 'jamtracks')
|
||||
end
|
||||
|
||||
it "logged in" do
|
||||
fast_signin(user, "/products/jamtracks")
|
||||
|
||||
find('h1', text: 'JamTracks by JamKazam')
|
||||
find('a.white-bordered-button').trigger(:click)
|
||||
|
||||
find('h1', text: 'jamtracks')
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue