From 69d4a01298a5010cf047363498aa121b1f117b9d Mon Sep 17 00:00:00 2001 From: Nuwan Date: Wed, 17 Mar 2021 14:44:58 +0530 Subject: [PATCH] Update landing page to match spec --- web/app/assets/javascripts/jk2021/jk2021.js | 97 ++++- web/app/assets/javascripts/web/downloads.js | 6 + .../assets/javascripts/web/downloads2021.js | 195 +++++++++ web/app/assets/stylesheets/jk2021/jk2021.css | 1 + web/app/assets/stylesheets/jk2021/landing.css | 6 + web/app/controllers/users_controller.rb | 32 +- web/app/views/layouts/jk2021.html.erb | 15 +- .../users/_download_templates2021.html.slim | 74 +++- web/app/views/users/_downloads2021.html.slim | 2 + web/app/views/users/downloads2021.html.erb | 6 +- web/app/views/users/new2021.html.erb | 31 +- web/config/routes.rb | 4 +- web/spec/features/download_spec.rb | 21 +- web/spec/features/signup_spec.rb | 377 +++++++++--------- 14 files changed, 620 insertions(+), 247 deletions(-) create mode 100644 web/app/assets/javascripts/web/downloads2021.js diff --git a/web/app/assets/javascripts/jk2021/jk2021.js b/web/app/assets/javascripts/jk2021/jk2021.js index bb294de36..215372817 100644 --- a/web/app/assets/javascripts/jk2021/jk2021.js +++ b/web/app/assets/javascripts/jk2021/jk2021.js @@ -1,13 +1,100 @@ -//= require ./jquery-3.5.1.min +//= require bluebird +//= require babel/polyfill +//= require bugsnag +//= require bind-polyfill +//= require jquery +//= require jquery.monkeypatch //= require jquery_ujs + //= require ./bootstrap.min //= require ./bootstrap.bundle.min -//= require AAC_underscore -//= require utils -//= require jam_rest +//= require jquery.ui.draggable +//= require jquery.queryparams +//= require jquery.hoverIntent +//= require jquery.cookie +//= require clipboard +//= require jquery.easydropdown +//= require jquery.carousel-1.1 +//= require jquery.mousewheel-3.1.9 +//= require jquery.timeago +//= require jquery.dotdotdot +//= require jquery.listenbroadcast +//= require jquery.listenRecording +//= require jquery.browser +//= require jquery.custom-protocol +//= require jquery.ba-bbq +//= require jquery.icheck +//= require jquery.bt +//= require jquery.exists +//= require jquery.visible +//= require jquery.lessonSessionActions +//= require jquery.jamblasterOptions +//= require jquery.manageVsts +//= require jquery.scrollTo +//= require jquery.pulse +//= require howler.core.js +//= require jstz +//= require ResizeSensor +//= require AAA_Log +//= require AAC_underscore +//= require alert +//= require globals +//= require AAB_message_factory +//= require facebook_helper +//= require twitter_helper +//= require google_helper +//= require ../web/signup_helper +//= require ../web/signin_helper +//= require extras +//= require tickDuration +//= require feed_item_recording +//= require feed_item_session +//= require hoverMusician +//= require hoverFan +//= require hoverBand +//= require hoverSession +//= require hoverRecording +//= require layout +//= require user_dropdown //= require jamkazam +//= require utils +//= require subscription_utils +//= require ui_helper +//= require custom_controls +//= require jam_rest //= require ga +//= require session_utils +//= require recording_utils +//= require helpBubbleHelper +//= require facebook_rest +//= require jam_track_preview +//= require ../landing/init +//= require ../landing/signup +//= require ../recordingModel +//= require ../web/downloads2021 +//= require ../web/congratulations +//= require ../web/sessions +//= require ../web/session_info +//= require ../web/recordings +//= require ../web/home +//= require ../web/tracking +//= require ../web/individual_jamtrack +//= require ../web/individual_jamtrack_v1 +//= require ../web/individual_jamtrack_band_v1 +//= require ../web/affiliate_program +//= require ../web/affiliate_links +//= require fakeJamClient +//= require fakeJamClientMessages +//= require fakeJamClientRecordings +//= require JamServer +//= require_directory ../dialog +//= require everywhere/everywhere +//= require classnames +//= require reflux +//= require react +//= require react_ujs +//= require react-init +//= require react-components //= require ../landing/signup -//= require ../web/downloads diff --git a/web/app/assets/javascripts/web/downloads.js b/web/app/assets/javascripts/web/downloads.js index c7e1ea191..598c8edde 100644 --- a/web/app/assets/javascripts/web/downloads.js +++ b/web/app/assets/javascripts/web/downloads.js @@ -10,6 +10,7 @@ var rest = context.JK.Rest(); function selectPlatform(selectedPlatform) { + //console.log("selectedPlatform", selectedPlatform); var platformName; // mac, windows, linux var platformDisplay; // Mac, Windows, Linux var platform = selectedPlatform; //MacOSX, Win32, Unix @@ -83,6 +84,7 @@ }); $('a', blurb).click(function() { + //console.log("download clicked"); var clicked = $(this); var href = clicked.attr('href'); if(href != "#") { @@ -127,6 +129,7 @@ } } + function listClients(congratulations, friend) { isCongratulations = congratulations; @@ -143,6 +146,7 @@ rest.getClientDownloads() .done(function(data) { + //console.log('getClientDownloads', data); removeSpinner(); $.each(data, function(key, item) { @@ -158,6 +162,8 @@ .always(function() { selectPlatform(currentOS == null ? 'Win32' : currentOS); }); + + //console.log('downloadUris', downloadUris); } downloads.listClients = listClients; diff --git a/web/app/assets/javascripts/web/downloads2021.js b/web/app/assets/javascripts/web/downloads2021.js new file mode 100644 index 000000000..9711e73ea --- /dev/null +++ b/web/app/assets/javascripts/web/downloads2021.js @@ -0,0 +1,195 @@ +(function(context,$) { + + "use strict"; + + context.JK = context.JK || {}; + + var downloads = {}; + var isCongratulations; + var downloadUris = {}; // map of platform > uri + var rest = context.JK.Rest(); + + function selectPlatform(selectedPlatform) { + //console.log("selectedPlatform", selectedPlatform); + var platformName; // mac, windows, linux + var platformDisplay; // Mac, Windows, Linux + var platform = selectedPlatform; //MacOSX, Win32, Unix + var platformName1, platformName2, platform1, platform2, platformDisplay1, platformDisplay2; + var uri = downloadUris[selectedPlatform]; + + // prepare template varaibles + if (selectedPlatform == "Unix") { + platformName = "linux"; + platformDisplay = "Linux" + platformName1 = "mac"; + platformDisplay1 = "Mac"; + platformName2 = "windows"; + platformDisplay2 = "Windows"; + platform1 = "MacOSX"; + platform2 = "Win32" + } else if(selectedPlatform == "Win32") { + platformName = "windows"; + platformDisplay = "Windows"; + platformName1 = "mac"; + platformDisplay1 = "Mac"; + platformName2 = "linux" + platformDisplay2 = "Linux"; + platform1 = "MacOSX"; + platform2 = "Unix"; + } else if(selectedPlatform == "MacOSX") { + platformName = "mac"; + platformDisplay = "Mac"; + platformName1 = "windows"; + platformDisplay1 = "Windows"; + platformName2 = "linux"; + platformDisplay2 = "Linux"; + platform1 = "Win32"; + platform2 = "Unix"; + } + else { + alert("unknown platform: " + selectedPlatform); + } + + var options = { + platform : platform, + platformName : platformName, + platformDisplay : platformDisplay, + platformName1 : platformName1, + platformDisplay1 : platformDisplay1, + platformName2 : platformName2, + platformDisplay2 : platformDisplay2, + platform1: platform1, + platform2: platform2, + uri : uri ? uri : '#', + isCongratulations : isCongratulations + }; + + var blurb = $(context._.template($('#client-download-blurb-contents').html(), options, { variable: 'data' })); + + // isolate active image for blurb + $('div.hidden-images img[data-purpose=' + platformName + ']', blurb).remove().appendTo($('a.current-os-download', blurb)); + + var selectOthers = $(context._.template($('#client-download-select-others').html(), options, { variable: 'data' })); + + // isolate active images for selectOthers + $('div.hidden-images img[data-purpose=' + platformName1 + ']', selectOthers).remove().appendTo($('a[data-order=1]', selectOthers)); + $('div.hidden-images img[data-purpose=' + platformName2 + ']', selectOthers).remove().appendTo($('a[data-order=2]', selectOthers)); + + + // install click handler for change selection + $('a', selectOthers).click(function() { + var platform = $(this).attr('data-platform'); + selectPlatform(platform); + return false; + }); + + $('a', blurb).click(function() { + //console.log("download clicked"); + var clicked = $(this); + var href = clicked.attr('href'); + // if(platform == "MacOSX" || platform == "Win32"){ + // openModal(); + // } + if(href != "#") { + context.JK.GA.trackDownload(clicked.attr('data-platform')); + rest.userDownloadedClient().always(function() { + $('body').append('