VRFS-1442 sessions band selection

This commit is contained in:
Jonathan Kolyer 2014-12-03 07:08:26 +00:00
parent 9bdddc22ff
commit 868ca0b476
5 changed files with 57 additions and 4 deletions

View File

@ -319,7 +319,7 @@ module JamRuby
end
def self.create user, options
band = Band.find(options[:band]) unless options[:band].nil?
band = Band.where(id: options[:band]).first if options[:band].present?
ms = MusicSession.new
ms.name = options[:name]

View File

@ -138,6 +138,8 @@
}
}
this.addInvitationIfAbsent = addInvitation;
function getInvitedFriends() {
return invitedFriends;
}

View File

@ -21,6 +21,7 @@
timezone: {},
recurring_mode: {},
language: {},
band: {},
musician_access: {},
fans_access: {},
open_rsvps: false
@ -40,6 +41,7 @@
var $timezoneList = null;
var $recurringModeList = null;
var $languageList = null;
var $bandList = null;
var $sessionPlusMusiciansLabel = null;
var $editScheduledSessions = null;
var $inputFiles = $screen.find('#session-select-files');
@ -256,6 +258,7 @@
}
$('#session-language-disp').html(createSessionSettings.language.label);
$('#session-band-disp').html(createSessionSettings.band.label);
var plusMusicians = $('#session-plus-musicians')[0].checked;
@ -538,6 +541,12 @@
createSessionSettings.language.value = $languageList.val();
createSessionSettings.language.label = $languageList.get(0).options[$languageList.get(0).selectedIndex].text;
createSessionSettings.band.value = $bandList.val();
if (createSessionSettings.band.value === '0')
createSessionSettings.band.label = '';
else
createSessionSettings.band.label = $bandList.get(0).options[$bandList.get(0).selectedIndex].text;
createSessionSettings.open_rsvps = $('#session-plus-musicians')[0].checked;
return true;
}
@ -637,6 +646,7 @@
data.legal_policy = createSessionSettings.session_policy;
data.legal_terms = true;
data.language = createSessionSettings.language.value;
data.band = createSessionSettings.band.value;
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>' || createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_IMMEDIATE %>') {
data.start = new Date().toDateString() + ' ' + context.JK.formatUtcTime(new Date(), false);
data.duration = "60";
@ -1026,6 +1036,7 @@
context.JK.dropdown($timezoneList);
context.JK.dropdown($recurringModeList);
context.JK.dropdown($languageList);
context.JK.dropdown($bandList);
context.JK.helpBubble($sessionPlusMusiciansLabel, 'session-plus-musicians', {}, {offsetParent: $sessionPlusMusiciansLabel.closest('.content-wrapper')});
@ -1132,6 +1143,7 @@
createSessionSettings.recurring_mode = {};
createSessionSettings.timezone = {};
createSessionSettings.language = {};
createSessionSettings.band = {};
createSessionSettings.musician_access = {};
createSessionSettings.fans_access = {};
}
@ -1171,6 +1183,27 @@
$('#session-fans-access-info .info-box[fans-access-type="' + $(event.target).val() + '"]').removeClass('hidden');
}
function selectBand() {
var bandId = $bandList.get(0).options[$bandList.get(0).selectedIndex].value;
if (bandId != '') {
var url = "/api/bands/" + bandId + "/musicians";
return $.ajax({
type: "GET",
dataType: "json",
url: url,
processData:false,
error: app.ajaxError
})
.done(function(response) {
$.each(response, function(index, val) {
if (val.id !== context.JK.currentUserId) {
inviteMusiciansUtil.addInvitationIfAbsent(val.name, val.id);
}
});
})
}
}
// asks the instrument selector for the creator's specified instruments, and defaults to Other/Beginner if none were selected
function getCreatorInstruments() {
var instruments = instrumentSelector.getSelectedInstruments();
@ -1202,7 +1235,8 @@
invitationDialog.showFacebookDialog(e);
});
$(friendInput).focus(function() { $(this).val(''); })
$(friendInput).focus(function() { $(this).val(''); });
$bandList.on('change', function() { selectBand() } );
$inputFiles.on('change', changeSelectedFiles);
$btnSelectFiles.on('click', toggleSelectFiles);
@ -1235,6 +1269,7 @@
$createTypeHelpers = $screen.find('.session-when-info div');
$scheduledSessions = $screenStep1.find("#scheduled-session-list");
$languageList = $screen.find('#session-language-list');
$bandList = $screen.find('#session-band-list');
$sessionPlusMusiciansLabel = $screen.find('label[for="session-plus-musicians"]');
$editScheduledSessions = $screen.find('#edit_scheduled_sessions');
$btnSelectFiles = $screen.find('#session-notation-file-selection');

View File

@ -321,8 +321,13 @@
}
.session-language-list-header {
margin-top:25px;
margin-bottom:20px;
margin-top:20px;
margin-bottom:10px;
}
.session-band-list-header {
margin-top:20px;
margin-bottom:10px;
}

View File

@ -239,6 +239,14 @@
just start typing your friends' names and select them from the popup menu. If you choose to let
other interested musicians join you, you will have the opportunity to approve them when they RSVP.
</div>
<h3 class="session-band-list-header">Is this a band session?</h3>
<select id="session-band-list">
<option value="">No</option>
<% current_user.bands.each do |band| %>
<option value="<%= band.id %>"><%= band.name[0..64] %></option>
<% end %>
</select>
<div class="clearall"></div>
<h3 class="session-language-list-header">What language will be spoken?</h3>
<select id="session-language-list">
<% music_session_languages.each do |language| %>
@ -385,6 +393,9 @@
<div id="session-description-disp" class="mt5"></div>
<div id="session-notations-disp" class="mt5"></div>
<h3 class="mt20">Which band is playing?</h3>
<div id="session-band-disp" class="mt5"></div>
<h3 class="mt20">What language will be spoken?</h3>
<div id="session-language-disp" class="mt5"></div>
</div>