jam-cloud/web/app/assets/javascripts/sessionSettingsDialog.js

127 lines
3.8 KiB
JavaScript

(function(context,$) {
context.JK = context.JK || {};
context.JK.SessionSettingsDialog = function(app, sessionScreen) {
var logger = context.JK.logger;
var $dialog;
var rest = new JK.Rest();
function beforeShow(data) {
context.JK.GenreSelectorHelper.render('#session-settings-genre');
$dialog = $('[layout-id="session-settings"]');
var currentSession = sessionScreen.getCurrentSession();
// id
$('#session-settings-id').val(currentSession.id);
// genre
context.JK.GenreSelectorHelper.setSelectedGenres('#session-settings-genre', currentSession.genres);
// name
$('#session-settings-name').val(currentSession.name);
// description
$('#session-settings-description').val(currentSession.description);
// language
$('#session-settings-description').val(currentSession.language);
// musician access
if (!currentSession.musician_access && !currentSession.approval_required) {
$('#session-settings-musician-access').val('only-rsvp');
}
else if (currentSession.musician_access && currentSession.approval_required) {
$('#session-settings-musician-access').val('musicians-approval');
}
else if (currentSession.musician_access && !currentSession.approval_required) {
$('#session-settings-musician-access').val('musicians');
}
// fan access
if (!currentSession.fan_access && !currentSession.fan_chat) {
$('#session-settings-fan-access').val('no-listen-chat');
}
else if (currentSession.fan_access && !currentSession.fan_chat) {
$('#session-settings-fan-access').val('listen-chat-each');
}
else if (currentSession.fan_access && currentSession.fan_chat) {
$('#session-settings-fan-access').val('listen-chat-band');
}
// notation files
context.JK.dropdown($('#session-settings-language'));
context.JK.dropdown($('#session-settings-musician-access'));
context.JK.dropdown($('#session-settings-fan-access'));
}
function saveSettings(evt) {
var data = {};
data.genre = $('#session-settings-genre').val();
data.name = $('#session-settings-name').val();
data.description = $('#session-settings-description').val();
data.language = $('#session-settings-language').val();
// musician access
var musicianAccess = $('#session-settings-musician-access').val();
if (musicianAccess === 'only-rsvp') {
data.musician_access = false;
data.approval_required = false;
}
else if (musicianAccess === 'musicians-approval') {
data.musician_access = true;
data.approval_required = true;
}
else if (musicianAccess === 'musicians') {
data.musician_access = true;
data.approval_required = false;
}
// fan access
var fanAccess = $('#session-settings-fan-access').val();
if (fanAccess == 'no-listen-chat') {
data.fan_access = false;
data.fan_chat = false;
}
else if (fanAccess == 'listen-chat-each') {
data.fan_access = true;
data.fan_chat = false;
}
else if (fanAccess == 'listen-chat-band') {
data.fan_access = true;
data.fan_chat = true;
}
rest.updateSession($('#session-settings-id').val(), data).done(settingsSaved);
}
function settingsSaved(response) {
// No response returned from this call. 204.
sessionScreen.refreshCurrentSession(true);
app.layout.closeDialog('session-settings');
}
function events() {
$('#session-settings-dialog-submit').on('click', saveSettings);
}
this.initialize = function() {
events();
var dialogBindings = {
'beforeShow': beforeShow
};
app.bindDialog('session-settings', dialogBindings);
};
};
})(window,jQuery);