diff --git a/web/app/assets/javascripts/accounts_profile_interests.js b/web/app/assets/javascripts/accounts_profile_interests.js index 41000beb7..4d44c835c 100644 --- a/web/app/assets/javascripts/accounts_profile_interests.js +++ b/web/app/assets/javascripts/accounts_profile_interests.js @@ -1,81 +1,81 @@ (function(context,$) { - "use strict"; + "use strict" - context.JK = context.JK || {}; + context.JK = context.JK || {} context.JK.AccountProfileInterests = function(app) { - var $document = $(document); - var logger = context.JK.logger; - var EVENTS = context.JK.EVENTS; - var api = context.JK.Rest(); - var ui = new context.JK.UIHelper(JK.app); - var user = {}; - var profileUtils = context.JK.ProfileUtils; - var masterGenreList = []; + var $document = $(document) + var logger = context.JK.logger + var EVENTS = context.JK.EVENTS + var api = context.JK.Rest() + var ui = new context.JK.UIHelper(JK.app) + var user = {} + var profileUtils = context.JK.ProfileUtils + var masterGenreList = [] - var NONE_SPECIFIED = 'None specified'; - var GENRE_LIST_DELIMITER = ', '; + var NONE_SPECIFIED = 'None specified' + var GENRE_LIST_DELIMITER = ', ' - var $screen = $('#account-profile-interests'); + var $screen = $('#account-profile-interests') - var SELECT_GENRE_SELECTOR = '.select-genre'; - var GENRE_LIST_SELECTOR = '.genre-list'; + var SELECT_GENRE_SELECTOR = '.select-genre' + var GENRE_LIST_SELECTOR = '.genre-list' // virtual bands - var $virtualBandYes = $screen.find('#virtual-band-yes'); - var $virtualBandNo = $screen.find('#virtual-band-no'); - var $virtualBandGenres = $screen.find('#virtual-band-genres'); - var $btnVirtualBandGenreSelect = $virtualBandGenres.find(SELECT_GENRE_SELECTOR); - var $virtualBandGenreList = $virtualBandGenres.find(GENRE_LIST_SELECTOR); - var $virtualBandCommitment = $screen.find('#virtual-band-commitment'); + var $virtualBandYes = $screen.find('#virtual-band-yes') + var $virtualBandNo = $screen.find('#virtual-band-no') + var $virtualBandGenres = $screen.find('#virtual-band-genres') + var $btnVirtualBandGenreSelect = $virtualBandGenres.find(SELECT_GENRE_SELECTOR) + var $virtualBandGenreList = $virtualBandGenres.find(GENRE_LIST_SELECTOR) + var $virtualBandCommitment = $screen.find('#virtual-band-commitment') // traditional bands - var $traditionalBandYes = $screen.find('#traditional-band-yes'); - var $traditionalBandNo = $screen.find('#traditional-band-no'); - var $traditionalBandGenres = $screen.find('#traditional-band-genres'); - var $btnTraditionalBandGenreSelect = $traditionalBandGenres.find(SELECT_GENRE_SELECTOR); - var $traditionalBandGenreList = $traditionalBandGenres.find(GENRE_LIST_SELECTOR); - var $traditionalBandCommitment = $screen.find('#traditional-band-commitment'); - var $traditionalTouringOption = $screen.find('#traditional-band-touring'); + var $traditionalBandYes = $screen.find('#traditional-band-yes') + var $traditionalBandNo = $screen.find('#traditional-band-no') + var $traditionalBandGenres = $screen.find('#traditional-band-genres') + var $btnTraditionalBandGenreSelect = $traditionalBandGenres.find(SELECT_GENRE_SELECTOR) + var $traditionalBandGenreList = $traditionalBandGenres.find(GENRE_LIST_SELECTOR) + var $traditionalBandCommitment = $screen.find('#traditional-band-commitment') + var $traditionalTouringOption = $screen.find('#traditional-band-touring') // paid sessions - var $paidSessionsYes = $screen.find('#paid-sessions-yes'); - var $paidSessionsNo = $screen.find('#paid-sessions-no'); - var $paidSessionsGenres = $screen.find('#paid-sessions-genres'); - var $btnPaidSessionsGenreSelect = $paidSessionsGenres.find(SELECT_GENRE_SELECTOR); - var $paidSessionsGenreList = $paidSessionsGenres.find(GENRE_LIST_SELECTOR); - var $hourlyRate = $screen.find('#hourly-rate'); - var $dailyRate = $screen.find('#daily-rate'); + var $paidSessionsYes = $screen.find('#paid-sessions-yes') + var $paidSessionsNo = $screen.find('#paid-sessions-no') + var $paidSessionsGenres = $screen.find('#paid-sessions-genres') + var $btnPaidSessionsGenreSelect = $paidSessionsGenres.find(SELECT_GENRE_SELECTOR) + var $paidSessionsGenreList = $paidSessionsGenres.find(GENRE_LIST_SELECTOR) + var $hourlyRate = $screen.find('#hourly-rate') + var $dailyRate = $screen.find('#daily-rate') // free sessions - var $freeSessionsYes = $screen.find('#free-sessions-yes'); - var $freeSessionsNo = $screen.find('#free-sessions-no'); - var $freeSessionsGenres = $screen.find('#free-sessions-genres'); - var $btnFreeSessionsGenreSelect = $freeSessionsGenres.find(SELECT_GENRE_SELECTOR); - var $freeSessionsGenreList = $freeSessionsGenres.find(GENRE_LIST_SELECTOR); + var $freeSessionsYes = $screen.find('#free-sessions-yes') + var $freeSessionsNo = $screen.find('#free-sessions-no') + var $freeSessionsGenres = $screen.find('#free-sessions-genres') + var $btnFreeSessionsGenreSelect = $freeSessionsGenres.find(SELECT_GENRE_SELECTOR) + var $freeSessionsGenreList = $freeSessionsGenres.find(GENRE_LIST_SELECTOR) // cowriting - var $cowritingYes = $screen.find('#cowriting-yes'); - var $cowritingNo = $screen.find('#cowriting-no'); - var $cowritingGenres = $screen.find('#cowriting-genres'); - var $btnCowritingGenreSelect = $cowritingGenres.find(SELECT_GENRE_SELECTOR); - var $cowritingGenreList = $cowritingGenres.find(GENRE_LIST_SELECTOR); - var $cowritingPurpose = $screen.find('#cowriting-purpose'); + var $cowritingYes = $screen.find('#cowriting-yes') + var $cowritingNo = $screen.find('#cowriting-no') + var $cowritingGenres = $screen.find('#cowriting-genres') + var $btnCowritingGenreSelect = $cowritingGenres.find(SELECT_GENRE_SELECTOR) + var $cowritingGenreList = $cowritingGenres.find(GENRE_LIST_SELECTOR) + var $cowritingPurpose = $screen.find('#cowriting-purpose') - var $btnCancel = $screen.find('#account-edit-profile-cancel'); - var $btnBack = $screen.find('#account-edit-profile-back'); - var $btnSubmit = $screen.find('#account-edit-profile-submit'); + var $btnCancel = $screen.find('#account-edit-profile-cancel') + var $btnBack = $screen.find('#account-edit-profile-back') + var $btnSubmit = $screen.find('#account-edit-profile-submit') function beforeShow(data) { } function afterShow(data) { - renderInterests(); + renderInterests() } function resetForm() { - $screen.find('form .error-text').remove(); - $screen.find('form .error').removeClass("error"); + $screen.find('form .error-text').remove() + $screen.find('form .error').removeClass("error") } function populateAccountProfile(userDetail) { @@ -84,124 +84,124 @@ if (userDetail) { if (userDetail.virtual_band) { - $virtualBandYes.iCheck('check').attr('checked', 'checked'); + $virtualBandYes.iCheck('check').attr('checked', 'checked') } else { - $virtualBandNo.iCheck('check').attr('checked', 'checked'); + $virtualBandNo.iCheck('check').attr('checked', 'checked') } if (userDetail.traditional_band) { - $traditionalBandYes.iCheck('check').attr('checked', 'checked'); + $traditionalBandYes.iCheck('check').attr('checked', 'checked') } else { - $traditionalBandNo.iCheck('check').attr('checked', 'checked'); + $traditionalBandNo.iCheck('check').attr('checked', 'checked') } if (userDetail.paid_sessions) { - $paidSessionsYes.iCheck('check').attr('checked', 'checked'); + $paidSessionsYes.iCheck('check').attr('checked', 'checked') } else { - $paidSessionsNo.iCheck('check').attr('checked', 'checked'); + $paidSessionsNo.iCheck('check').attr('checked', 'checked') } if (userDetail.free_sessions) { - $freeSessionsYes.iCheck('check').attr('checked', 'checked'); + $freeSessionsYes.iCheck('check').attr('checked', 'checked') } else { - $freeSessionsNo.iCheck('check').attr('checked', 'checked'); + $freeSessionsNo.iCheck('check').attr('checked', 'checked') } if (userDetail.cowriting) { - $cowritingYes.iCheck('check').attr('checked', 'checked'); + $cowritingYes.iCheck('check').attr('checked', 'checked') } else { - $cowritingNo.iCheck('check').attr('checked', 'checked'); + $cowritingNo.iCheck('check').attr('checked', 'checked') } } // Column 2 - genres - var genres = profileUtils.virtualBandGenreList(userDetail.genres); - $virtualBandGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED); + var genres = profileUtils.virtualBandGenreList(userDetail.genres) + $virtualBandGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED) - genres = profileUtils.traditionalBandGenreList(userDetail.genres); - $traditionalBandGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED); + genres = profileUtils.traditionalBandGenreList(userDetail.genres) + $traditionalBandGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED) - genres = profileUtils.paidSessionGenreList(userDetail.genres); - $paidSessionsGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED); + genres = profileUtils.paidSessionGenreList(userDetail.genres) + $paidSessionsGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED) - genres = profileUtils.freeSessionGenreList(userDetail.genres); - $freeSessionsGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED); + genres = profileUtils.freeSessionGenreList(userDetail.genres) + $freeSessionsGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED) - genres = profileUtils.cowritingGenreList(userDetail.genres); - $cowritingGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED); + genres = profileUtils.cowritingGenreList(userDetail.genres) + $cowritingGenreList.html(genres && genres.length > 0 ? genres : NONE_SPECIFIED) // Column 3 - misc (play commitment, rates, cowriting purpose) - $virtualBandCommitment.val(userDetail.virtual_band_commitment); - context.JK.dropdown($virtualBandCommitment); + $virtualBandCommitment.val(userDetail.virtual_band_commitment) + context.JK.dropdown($virtualBandCommitment) - $traditionalBandCommitment.val(userDetail.traditional_band_commitment); - context.JK.dropdown($traditionalBandCommitment); + $traditionalBandCommitment.val(userDetail.traditional_band_commitment) + context.JK.dropdown($traditionalBandCommitment) - $traditionalTouringOption.val(userDetail.traditional_band_touring ? '1' : '0'); - context.JK.dropdown($traditionalTouringOption); + $traditionalTouringOption.val(userDetail.traditional_band_touring ? '1' : '0') + context.JK.dropdown($traditionalTouringOption) - $hourlyRate.val(userDetail.paid_sessions_hourly_rate); - $dailyRate.val(userDetail.paid_sessions_daily_rate); + $hourlyRate.val(userDetail.paid_sessions_hourly_rate) + $dailyRate.val(userDetail.paid_sessions_daily_rate) - $cowritingPurpose.val(userDetail.cowriting_purpose); - context.JK.dropdown($cowritingPurpose); + $cowritingPurpose.val(userDetail.cowriting_purpose) + context.JK.dropdown($cowritingPurpose) } function bindGenreSelector(type, $btnSelect, $genreList) { - $btnSelect.unbind('click').bind('click', function(evt) { - evt.preventDefault(); - var genreText = $genreList.html(); - var genres = []; + $btnSelect.unbind('click').bind('click', function(e) { + e.preventDefault() + var genreText = $genreList.html() + var genres = [] if (genres !== NONE_SPECIFIED) { - genres = genreText.split(GENRE_LIST_DELIMITER); + genres = genreText.split(GENRE_LIST_DELIMITER) } ui.launchGenreSelectorDialog(type, genres, function(selectedGenres) { - $genreList.html(selectedGenres && selectedGenres.length > 0 ? selectedGenres.join(GENRE_LIST_DELIMITER) : NONE_SPECIFIED); - }); + $genreList.html(selectedGenres && selectedGenres.length > 0 ? selectedGenres.join(GENRE_LIST_DELIMITER) : NONE_SPECIFIED) + }) - return false; - }); + return false + }) } function events() { - bindGenreSelector('virtual bands', $btnVirtualBandGenreSelect, $virtualBandGenreList); - bindGenreSelector('traditional bands', $btnTraditionalBandGenreSelect, $traditionalBandGenreList); - bindGenreSelector('paid sessions', $btnPaidSessionsGenreSelect, $paidSessionsGenreList); - bindGenreSelector('free sessions', $btnFreeSessionsGenreSelect, $freeSessionsGenreList); - bindGenreSelector('co-writing', $btnCowritingGenreSelect, $cowritingGenreList); + bindGenreSelector('virtual bands', $btnVirtualBandGenreSelect, $virtualBandGenreList) + bindGenreSelector('traditional bands', $btnTraditionalBandGenreSelect, $traditionalBandGenreList) + bindGenreSelector('paid sessions', $btnPaidSessionsGenreSelect, $paidSessionsGenreList) + bindGenreSelector('free sessions', $btnFreeSessionsGenreSelect, $freeSessionsGenreList) + bindGenreSelector('co-writing', $btnCowritingGenreSelect, $cowritingGenreList) - $btnCancel.click(function(evt) { - evt.stopPropagation(); - navigateTo('/client#/profile/' + context.JK.currentUserId); - return false; - }); + $btnCancel.click(function(e) { + e.stopPropagation() + navigateTo('/client#/profile/' + context.JK.currentUserId) + return false + }) - $btnBack.click(function(evt) { - evt.stopPropagation(); - navigateTo('/client#/account/profile/experience'); - return false; - }); + $btnBack.click(function(e) { + e.stopPropagation() + navigateTo('/client#/account/profile/experience') + return false + }) - enableSubmits(); + enableSubmits() - context.JK.dropdown($virtualBandCommitment); - context.JK.dropdown($traditionalBandCommitment); - context.JK.dropdown($cowritingPurpose); + context.JK.dropdown($virtualBandCommitment) + context.JK.dropdown($traditionalBandCommitment) + context.JK.dropdown($cowritingPurpose) } function enableSubmits() { - $btnSubmit.on("click", function(evt) { - evt.stopPropagation(); - handleUpdateProfile(); - return false; - }); + $btnSubmit.on("click", function(e) { + e.stopPropagation() + handleUpdateProfile() + return false + }) $btnSubmit.removeClass("disabled") } @@ -214,17 +214,17 @@ function renderInterests() { $.when(api.getUserProfile()) .done(function(userDetail) { - populateAccountProfile(userDetail); - }); + populateAccountProfile(userDetail) + }) } function navigateTo(targetLocation) { - context.location = targetLocation; + context.location = targetLocation } function handleUpdateProfile() { disableSubmits() - resetForm(); + resetForm() api.updateUser({ virtual_band: $screen.find('input[name=virtual_band]:checked').val(), @@ -250,12 +250,12 @@ }) .done(postUpdateProfileSuccess) .fail(postUpdateProfileFailure) - .always(enableSubmits); + .always(enableSubmits) } function postUpdateProfileSuccess(response) { - $document.triggerHandler(EVENTS.USER_UPDATED, response); - context.location = "/client#/account/profile/samples"; + $document.triggerHandler(EVENTS.USER_UPDATED, response) + context.location = "/client#/account/profile/samples" } function postUpdateProfileFailure(xhr, textStatus, errorMessage) { @@ -274,23 +274,33 @@ var screenBindings = { 'beforeShow': beforeShow, 'afterShow': afterShow - }; + } - app.bindScreen('account/profile/interests', screenBindings); + app.bindScreen('account/profile/interests', screenBindings) - events(); + events() $screen.find('.interest-options').iCheck({ checkboxClass: 'icheckbox_minimal', radioClass: 'iradio_minimal', inheritClass: true - }); + }) + + initializeHelpBubbles() } - this.initialize = initialize; - this.beforeShow = beforeShow; - this.afterShow = afterShow; - return this; - }; + function initializeHelpBubbles() { + // Help bubbles (topics stored as attributes on element): + $(".help").each(function( index ) { + context.JK.helpBubble($(this), $(this).attr("help-topic"), {}, {}) + }) + } -})(window,jQuery); \ No newline at end of file + + this.initialize = initialize + this.beforeShow = beforeShow + this.afterShow = afterShow + return this + } + +})(window,jQuery) \ No newline at end of file diff --git a/web/app/views/clients/_account_profile_interests.html.erb b/web/app/views/clients/_account_profile_interests.html.erb index e8bc49b08..d5b0aaf0f 100644 --- a/web/app/views/clients/_account_profile_interests.html.erb +++ b/web/app/views/clients/_account_profile_interests.html.erb @@ -17,7 +17,7 @@
- +
@@ -56,7 +56,7 @@
- +
@@ -103,7 +103,7 @@
- +
@@ -142,7 +142,7 @@
- +
@@ -171,7 +171,7 @@
- +
diff --git a/web/app/views/clients/_help.html.slim b/web/app/views/clients/_help.html.slim index f0eeaca3e..6f1eb64e8 100644 --- a/web/app/views/clients/_help.html.slim +++ b/web/app/views/clients/_help.html.slim @@ -261,4 +261,20 @@ script type="text/template" id="template-help-jamtrack-guide-private" script type="text/template" id="template-help-jamtrack-guide-session" .jamtrack-guide-open.big-help - p To try out your JamTrack, click here to open it. \ No newline at end of file + p To try out your JamTrack, click here to open it. + +script type="text/template" id="template-help-profile-interests-virtual-band" + | For musicians who want to join a band that plays only online on JamKazam and does not travel and meet in person at a physical space to play. + +script type="text/template" id="template-help-profile-interests-traditional-band" + | For musicians who want to join a more traditional band that meets in person at a physical space to play. It may also play online on JamKazam. + +script type="text/template" id="template-help-profile-interests-paid-sessions" + | For professional session musicians who are qualified and interested in playing paid recording session gigs for bands, composers, and producers. + +script type="text/template" id="template-help-profile-interests-free-sessions" + | For skilled musicians who are interested in playing free recording session gigs for bands, composers, and producers, either for fun or to build experience and resume. + +script type="text/template" id="template-help-profile-interests-cowrite-partners" + | For composers and songwriters who want to collaborate with others in composing and creating new music. + \ No newline at end of file