diff --git a/ruby/lib/jam_ruby/models/music_session.rb b/ruby/lib/jam_ruby/models/music_session.rb index c0588840c..2a4097cc9 100644 --- a/ruby/lib/jam_ruby/models/music_session.rb +++ b/ruby/lib/jam_ruby/models/music_session.rb @@ -266,6 +266,7 @@ module JamRuby ms.recurring_mode = options[:recurring_mode] if options[:recurring_mode] ms.timezone = options[:timezone] if options[:timezone] ms.legal_terms = true + ms.open_rsvps = options[:open_rsvps] if options[:open_rsvps] ms.creator = user ms.save @@ -478,7 +479,7 @@ module JamRuby # retrieve users that have approved RSVPs def approved_rsvps - users = User.find_by_sql(%Q{select u.id, u.photo_url, u.first_name, u.last_name, rs.instrument_id, ii.description, rs.proficiency_level + users = User.find_by_sql(%Q{select u.id, u.photo_url, u.first_name, u.last_name, rs.instrument_id, ii.description, rs.proficiency_level, rr.id as rsvp_request_id from rsvp_slots rs inner join rsvp_requests_rsvp_slots rrrs on rrrs.rsvp_slot_id = rs.id inner join rsvp_requests rr on rrrs.rsvp_request_id = rr.id diff --git a/web/app/assets/javascripts/scheduled_session.js b/web/app/assets/javascripts/scheduled_session.js index 7a1d1b557..f1a56f475 100644 --- a/web/app/assets/javascripts/scheduled_session.js +++ b/web/app/assets/javascripts/scheduled_session.js @@ -19,7 +19,8 @@ recurring_mode: {}, language: {}, musician_access: {}, - fans_access: {} + fans_access: {}, + open_rsvps: false }; var friendInput = null; @@ -225,20 +226,32 @@ $('#session-notations-disp').html(''); } - $('#session-language-disp').html(createSessionSettings.language.label); + var plusMusicians = $('#session-plus-musicians')[0].checked; + var sessionInvited = []; var invitedFriends = inviteMusiciansUtil.getInvitedFriendNames(); $.each(invitedFriends, function(index, friend) { sessionInvited.push(friend); }); + var sessionInvitedString = sessionInvited.join(', '); if (createSessionSettings.musician_access.value == 'musicians-approval') { - if (invitedFriends.length == 0) - sessionInvitedString = "Any interested JamKazam musicians that I approve"; - else - sessionInvitedString += ", plus any interested JamKazam musicians that I approve"; + if (plusMusicians) { + if (invitedFriends.length == 0) + sessionInvitedString = "Any interested JamKazam musicians that I approve"; + else + sessionInvitedString += ", plus any interested JamKazam musicians that I approve"; + } + else { + if (invitedFriends.length == 0) { + sessionInvitedString = "No open RSVPs"; + } + else { + sessionInvitedString += " (No open RSVPs)"; + } + } } else if (createSessionSettings.musician_access.value == 'musicians') { if (invitedFriends.length == 0) @@ -326,6 +339,7 @@ createSessionSettings.musician_access.label = session.musician_access_description; createSessionSettings.fans_access.label = session.fan_access_description; createSessionSettings.recurring_mode.value = session.recurring_mode; + createSessionSettings.open_rsvps = session.open_rsvps; step = STEP_SELECT_CONFIRM; moveToStep(); @@ -374,6 +388,8 @@ createSessionSettings.timezone.label = $timezoneList.get(0).options[$timezoneList.get(0).selectedIndex].text; createSessionSettings.recurring_mode.label = $recurringModeList.get(0).options[$recurringModeList.get(0).selectedIndex].text; createSessionSettings.recurring_mode.value = $recurringModeList.val(); + createSessionSettings.open_rsvps = $('#session-plus-musicians')[0].checked; + console.log("createSessionSettings.open_rsvps=%o", createSessionSettings.open_rsvps); } return true; @@ -461,6 +477,9 @@ function beforeMoveStep3() { createSessionSettings.language.value = $languageList.val(); createSessionSettings.language.label = $languageList.get(0).options[$languageList.get(0).selectedIndex].text; + + createSessionSettings.open_rsvps = $('#session-plus-musicians')[0].checked; + console.log("createSessionSettings.open_rsvps=%o", createSessionSettings.open_rsvps); return true; } @@ -566,6 +585,7 @@ data.recurring_mode = createSessionSettings.recurring_mode.value; data.music_notations = createSessionSettings.music_notations; data.timezone = createSessionSettings.timezone.value; + data.open_rsvps = createSessionSettings.open_rsvps; data.rsvp_slots = []; $.each(getCreatorInstruments(), function(index, instrument) { diff --git a/web/app/assets/javascripts/sessionList.js b/web/app/assets/javascripts/sessionList.js index 116d30200..d5a191bd2 100644 --- a/web/app/assets/javascripts/sessionList.js +++ b/web/app/assets/javascripts/sessionList.js @@ -194,8 +194,9 @@ var row = context.JK.fillTemplate($inactiveSessionTemplate.html(), sessionVals); $(tbGroup).append(row); - + var $parentRow = $('tr[id=' + session.id + ']', tbGroup); if (showRsvpLink) { + $('.rsvp-msg', $parentRow).hide(); var $parentRow = $('tr[id=' + session.id + ']', tbGroup); $('.rsvp-link', $parentRow).click(function(evt) { ui.launchRsvpSubmitDialog(session.id); diff --git a/web/app/controllers/api_music_sessions_controller.rb b/web/app/controllers/api_music_sessions_controller.rb index 1b827d59e..ea8968daf 100644 --- a/web/app/controllers/api_music_sessions_controller.rb +++ b/web/app/controllers/api_music_sessions_controller.rb @@ -209,6 +209,7 @@ class ApiMusicSessionsController < ApiController @music_session.scheduled_duration = params[:duration] + ' minutes' if params[:duration] @music_session.timezone = params[:timezone] unless params[:timezone].nil? @music_session.recurring_mode = params[:reoccurrence] unless params[:reoccurrence].nil? + @music_session.open_rsvps = params[:open_rsvps] ? true : false @music_session.band = band unless band.nil? @music_session.save diff --git a/web/app/views/clients/_findSession.html.erb b/web/app/views/clients/_findSession.html.erb index 170562148..eeffbac79 100644 --- a/web/app/views/clients/_findSession.html.erb +++ b/web/app/views/clients/_findSession.html.erb @@ -201,7 +201,7 @@