VRFS-1945 added create_type to music_sessions; filtering session search based on create_type
This commit is contained in:
parent
d17d4ede99
commit
af2159fe72
|
|
@ -222,3 +222,4 @@ video_sources.sql
|
|||
recorded_videos.sql
|
||||
emails_from_update2.sql
|
||||
add_youtube_flag_to_claimed_recordings.sql
|
||||
add_session_create_type.sql
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE music_sessions ADD COLUMN create_type VARCHAR(64);
|
||||
|
|
@ -21,6 +21,8 @@ require 'rest-client'
|
|||
require 'zip'
|
||||
require 'csv'
|
||||
|
||||
require 'byebug'
|
||||
|
||||
require "jam_ruby/constants/limits"
|
||||
require "jam_ruby/constants/notification_types"
|
||||
require "jam_ruby/constants/validation_messages"
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@ module JamRuby
|
|||
UNSTARTED_INTERVAL_DAYS_PURGE = '28' # days past scheduled start to purge session
|
||||
UNSTARTED_INTERVAL_DAYS_PURGE_RECUR = '28' # days past scheduled start to purge recurddingsession
|
||||
|
||||
CREATE_TYPE_START_SCHEDULED = 'start-scheduled'
|
||||
CREATE_TYPE_SCHEDULE_FUTURE = 'schedule-future'
|
||||
CREATE_TYPE_RSVP = 'rsvp'
|
||||
CREATE_TYPE_IMMEDIATE = 'immediately'
|
||||
CREATE_TYPE_QUICK_START = 'quick-start'
|
||||
|
||||
attr_accessor :legal_terms, :language_description, :access_description, :scheduling_info_changed
|
||||
|
||||
attr_accessor :approved_rsvps, :open_slots, :pending_invitations
|
||||
|
|
@ -293,6 +299,7 @@ module JamRuby
|
|||
query = MusicSession.where("music_sessions.canceled = FALSE")
|
||||
query = query.where("music_sessions.user_id = '#{user.id}'")
|
||||
query = query.where("music_sessions.scheduled_start IS NULL OR #{session_not_started} OR #{session_finished}")
|
||||
query = query.where("music_sessions.create_type IS NULL OR music_sessions.create_type != '#{CREATE_TYPE_QUICK_START}'")
|
||||
query = query.order("music_sessions.scheduled_start ASC")
|
||||
|
||||
query
|
||||
|
|
@ -338,6 +345,7 @@ module JamRuby
|
|||
ms.legal_terms = true
|
||||
ms.open_rsvps = options[:open_rsvps] if options[:open_rsvps]
|
||||
ms.creator = user
|
||||
ms.create_type = options[:create_type]
|
||||
ms.is_unstructured_rsvp = options[:isUnstructuredRsvp] if options[:isUnstructuredRsvp]
|
||||
ms.scheduled_start = parse_scheduled_start(options[:start], options[:timezone]) if options[:start] && options[:timezone]
|
||||
|
||||
|
|
@ -716,6 +724,7 @@ module JamRuby
|
|||
|
||||
query = query.offset(offset)
|
||||
query = query.limit(limit)
|
||||
query = query.where("music_sessions.create_type IS NULL OR music_sessions.create_type != ?", MusicSession::CREATE_TYPE_QUICK_START)
|
||||
query = query.where("music_sessions.genre_id = ?", genre) unless genre.blank?
|
||||
query = query.where('music_sessions.language = ?', lang) unless lang.blank?
|
||||
query = query.where("(description_tsv @@ to_tsquery('jamenglish', ?))", ActiveRecord::Base.connection.quote(keyword) + ':*') unless keyword.blank?
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
var MAX_GENRES = 1;
|
||||
var createSessionSettings = {
|
||||
createType: 'start-scheduled',
|
||||
createType: '<%= MusicSession::CREATE_TYPE_START_SCHEDULED %>',
|
||||
timezone: {},
|
||||
recurring_mode: {},
|
||||
language: {},
|
||||
|
|
@ -139,14 +139,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
if (createSessionSettings.createType == 'start-scheduled' && createSessionSettings.session_count == 0)
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.session_count == 0)
|
||||
$editScheduledSessions.hide();
|
||||
else if (createSessionSettings.createType == 'start-scheduled' && createSessionSettings.session_count > 0)
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.session_count > 0)
|
||||
$editScheduledSessions.show();
|
||||
|
||||
var $btnNext = $screen.find('.btn-next');
|
||||
|
||||
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == 'start-scheduled' && createSessionSettings.selectedSessionId == null) {
|
||||
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.selectedSessionId == null) {
|
||||
$btnNext.addClass('disabled');
|
||||
}
|
||||
else {
|
||||
|
|
@ -223,11 +223,11 @@
|
|||
startType = 'Now!';
|
||||
createSessionSettings.startType = "START SESSION";
|
||||
}
|
||||
else if (createSessionSettings.createType == 'rsvp') {
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_RSVP %>') {
|
||||
startType = 'To be determined after RSVPs received';
|
||||
createSessionSettings.startType = "PUBLISH SESSION";
|
||||
}
|
||||
else if (createSessionSettings.createType == 'schedule-future') {
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_SCHEDULE_FUTURE %>') {
|
||||
startType = createSessionSettings.startDate + ',' +
|
||||
createSessionSettings.startTime + ', ' +
|
||||
createSessionSettings.timezone.label;
|
||||
|
|
@ -289,7 +289,7 @@
|
|||
}
|
||||
$('#session-invited-disp').html(sessionInvitedString);
|
||||
|
||||
if (createSessionSettings.createType == 'start-scheduled') {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
|
||||
var session = scheduledSessions[createSessionSettings.selectedSessionId];
|
||||
if (session.approved_rsvps.length > 0) {
|
||||
var instruments_me = [];
|
||||
|
|
@ -348,7 +348,7 @@
|
|||
}
|
||||
|
||||
function beforeMoveStep1() {
|
||||
if (createSessionSettings.createType == 'start-scheduled') {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
|
||||
createSessionSettings.selectedSessionId = $scheduledSessions.find('.iradio_minimal.checked input[name="scheduled-session-info"]').attr('data-session-id');
|
||||
var session = scheduledSessions[createSessionSettings.selectedSessionId];
|
||||
|
||||
|
|
@ -394,7 +394,7 @@
|
|||
}
|
||||
return false;
|
||||
}
|
||||
else if (createSessionSettings.createType == 'quick-start') {
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>') {
|
||||
createSessionSettings.genresValues = ['Pop'];
|
||||
createSessionSettings.genres = ['pop'];
|
||||
createSessionSettings.timezone.label = "(GMT-06:00) Central Time (US & Canada)";
|
||||
|
|
@ -604,7 +604,7 @@
|
|||
|
||||
var data = {};
|
||||
|
||||
if (createSessionSettings.createType == 'start-scheduled') {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
|
||||
data = scheduledSessions[createSessionSettings.selectedSessionId];
|
||||
}
|
||||
else {
|
||||
|
|
@ -636,11 +636,11 @@
|
|||
data.legal_policy = createSessionSettings.session_policy;
|
||||
data.legal_terms = true;
|
||||
data.language = createSessionSettings.language.value;
|
||||
if (createSessionSettings.createType == 'quick-start' || createSessionSettings.createType == 'immediately') {
|
||||
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";
|
||||
}
|
||||
else if (createSessionSettings.createType == 'rsvp') {
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_RSVP %>') {
|
||||
data.start = ""; data.duration = "0";
|
||||
}
|
||||
else {
|
||||
|
|
@ -666,6 +666,7 @@
|
|||
data.music_notations = createSessionSettings.notations;
|
||||
data.timezone = createSessionSettings.timezone.value;
|
||||
data.open_rsvps = createSessionSettings.open_rsvps;
|
||||
data.create_type = createSessionSettings.createType;
|
||||
|
||||
data.rsvp_slots = [];
|
||||
$.each(getCreatorInstruments(), function(index, instrument) {
|
||||
|
|
@ -698,7 +699,7 @@
|
|||
context.location = '/client#/session/' + sessionId;
|
||||
};
|
||||
|
||||
if (createSessionSettings.createType == 'start-scheduled') {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
|
||||
joinSession(createSessionSettings.selectedSessionId);
|
||||
$('#create-session-buttons .btn-next').off('click');
|
||||
}
|
||||
|
|
@ -709,7 +710,7 @@
|
|||
$('#create-session-buttons .btn-next').off('click');
|
||||
var newSessionId = response.id;
|
||||
|
||||
if (createSessionSettings.createType == 'quick-start' || createSessionSettings.createType == "immediately") {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>' || createSessionSettings.createType == "immediately") {
|
||||
joinSession(newSessionId);
|
||||
}
|
||||
else {
|
||||
|
|
@ -765,7 +766,7 @@
|
|||
for (var i = 0; i < TOTAL_STEPS; i++) {
|
||||
var $eachStep = $sessionSteps.find('.session-stepnumber[data-step-number="' + i + '"]');
|
||||
|
||||
if (createSessionSettings.createType == 'start-scheduled') {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
|
||||
if (step == STEP_SELECT_TYPE) {
|
||||
if (createSessionSettings.session_count > 0 && i == STEP_SELECT_CONFIRM) {
|
||||
$eachStep.on('click', next);
|
||||
|
|
@ -777,7 +778,7 @@
|
|||
$eachStep.addClass('session-stephover');
|
||||
}
|
||||
}
|
||||
else if (createSessionSettings.createType == 'quick-start') {
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>') {
|
||||
if (step == STEP_SELECT_CONFIRM && i == STEP_SELECT_TYPE) {
|
||||
$eachStep.on('click', back);
|
||||
$eachStep.addClass('session-stephover');
|
||||
|
|
@ -825,7 +826,7 @@
|
|||
$btnBack.hide();
|
||||
}
|
||||
|
||||
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == 'start-scheduled' && createSessionSettings.selectedSessionId == null) {
|
||||
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.selectedSessionId == null) {
|
||||
$btnNext.addClass('disabled');
|
||||
}
|
||||
else {
|
||||
|
|
@ -851,7 +852,7 @@
|
|||
}
|
||||
|
||||
if ($(this).is('.disabled')) return false;
|
||||
if ($.inArray(createSessionSettings.createType, ['start-scheduled', 'quick-start']) > -1)
|
||||
if ($.inArray(createSessionSettings.createType, ['<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>', '<%= MusicSession::CREATE_TYPE_QUICK_START %>']) > -1)
|
||||
step = STEP_SELECT_TYPE;
|
||||
else
|
||||
step--;
|
||||
|
|
@ -866,9 +867,9 @@
|
|||
|
||||
// will this option result in a session being started?
|
||||
function willOptionStartSession() {
|
||||
return createSessionSettings.createType == 'start-scheduled' ||
|
||||
createSessionSettings.createType == 'immediately' ||
|
||||
createSessionSettings.createType == 'quick-start';
|
||||
return createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' ||
|
||||
createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_IMMEDIATE %>' ||
|
||||
createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>';
|
||||
}
|
||||
|
||||
function next(event) {
|
||||
|
|
@ -888,7 +889,7 @@
|
|||
}
|
||||
if ($(this).is('.disabled')) return false;
|
||||
|
||||
if ($.inArray(createSessionSettings.createType, ['start-scheduled', 'quick-start']) > -1)
|
||||
if ($.inArray(createSessionSettings.createType, ['<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>', '<%= MusicSession::CREATE_TYPE_QUICK_START %>']) > -1)
|
||||
step = STEP_SELECT_CONFIRM;
|
||||
else
|
||||
step++;
|
||||
|
|
@ -1077,7 +1078,7 @@
|
|||
$screen.find('#create-session-steps .session-stepnumber').off('click');
|
||||
$screen.find('#create-session-steps .session-stepnumber').removeClass('session-stephover');
|
||||
|
||||
if ($.inArray(createSessionSettings.createType, ['start-scheduled', 'quick-start']) > -1) {
|
||||
if ($.inArray(createSessionSettings.createType, ['<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>', '<%= MusicSession::CREATE_TYPE_QUICK_START %>']) > -1) {
|
||||
if (step == STEP_SELECT_CONFIRM) {
|
||||
for (var i = 1; i < 4; i++) {
|
||||
$screen.find('#create-session-steps .session-stepnumber[data-step-number="' + i + '"]').hide();
|
||||
|
|
@ -1092,11 +1093,11 @@
|
|||
}
|
||||
$screen.find('#create-session-steps .session-stepnumber[data-step-number="4"]').html("5");
|
||||
var $nextStep = $screen.find('#create-session-steps .session-stepnumber[data-step-number="1"]');
|
||||
if (createSessionSettings.createType == 'quick-start') {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>') {
|
||||
$nextStep.on('click', next);
|
||||
$nextStep.addClass('session-stephover')
|
||||
}
|
||||
else if (createSessionSettings.createType == 'start-scheduled' && createSessionSettings.session_count > 0) {
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.session_count > 0) {
|
||||
$nextStep.on('click', next);
|
||||
$nextStep.addClass('session-stephover')
|
||||
}
|
||||
|
|
@ -1124,7 +1125,7 @@
|
|||
|
||||
createSessionSettings.createType = checkedType;
|
||||
|
||||
if (createSessionSettings.createType == 'start-scheduled') {
|
||||
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
|
||||
$('#start-scheduled-wrapper').show();
|
||||
$('#schedule-future-wrapper').hide();
|
||||
createSessionSettings.timezone = {};
|
||||
|
|
@ -1134,7 +1135,7 @@
|
|||
createSessionSettings.musician_access = {};
|
||||
createSessionSettings.fans_access = {};
|
||||
}
|
||||
else if (createSessionSettings.createType == 'schedule-future') {
|
||||
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_SCHEDULE_FUTURE %>') {
|
||||
$('#start-scheduled-wrapper').hide();
|
||||
$('#schedule-future-wrapper').show();
|
||||
}
|
||||
|
|
@ -1145,7 +1146,7 @@
|
|||
}
|
||||
|
||||
var $btnNext = $('#create-session-buttons .btn-next');
|
||||
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == 'start-scheduled' && createSessionSettings.selectedSessionId == null) {
|
||||
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.selectedSessionId == null) {
|
||||
$btnNext.addClass('disabled')
|
||||
}
|
||||
else {
|
||||
|
|
@ -27,35 +27,35 @@
|
|||
|
||||
<div class="icheckbuttons">
|
||||
<ul id="create-session-type">
|
||||
<li create-type="start-scheduled">
|
||||
<li create-type="<%= MusicSession::CREATE_TYPE_START_SCHEDULED %>">
|
||||
<input type="radio" name="session-when" id="session-when-start-scheduled" checked="checked" info-value="start-scheduled" />
|
||||
<label for="session-when-start-scheduled" class="radio-text">
|
||||
I have already scheduled a session, and I want to start it now
|
||||
</label>
|
||||
<div class="clearall"></div>
|
||||
</li>
|
||||
<li create-type="schedule-future">
|
||||
<li create-type="<%= MusicSession::CREATE_TYPE_SCHEDULE_FUTURE %>">
|
||||
<input type="radio" name="session-when" id="session-when-schedule-future" info-value="schedule-future" />
|
||||
<label for="session-when-schedule-future" class="radio-text">
|
||||
I want to schedule a session for a specific future time
|
||||
</label>
|
||||
<div class="clearall"></div>
|
||||
</li>
|
||||
<li create-type="rsvp">
|
||||
<li create-type="<%= MusicSession::CREATE_TYPE_RSVP %>">
|
||||
<input type="radio" name="session-when" id="session-when-rsvp" info-value="rsvp" />
|
||||
<label for="session-when-rsvp" class="radio-text">
|
||||
I want to choose the time after others RSVP to my session
|
||||
</label>
|
||||
<div class="clearall"></div>
|
||||
</li>
|
||||
<li create-type="immediately">
|
||||
<li create-type="<%= MusicSession::CREATE_TYPE_IMMEDIATE %>">
|
||||
<input type="radio" name="session-when" id="session-when-immediately" info-value="immediately" />
|
||||
<label for="session-when-immediately" class="radio-text">
|
||||
I want to start a new session right now for others to join
|
||||
</label>
|
||||
<div class="clearall"></div>
|
||||
</li>
|
||||
<li create-type="quick-start">
|
||||
<li create-type="<%= MusicSession::CREATE_TYPE_QUICK_START %>">
|
||||
<input type="radio" name="session-when" id="session-when-quick-start" info-value="quick-start" />
|
||||
<label for="session-when-quick-start" class="radio-text">
|
||||
I want to quick start a test session just for me
|
||||
|
|
|
|||
Loading…
Reference in New Issue