From af2159fe7297faef54d6cc468f71e3efad777265 Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Tue, 21 Oct 2014 07:27:26 +0000 Subject: [PATCH] VRFS-1945 added create_type to music_sessions; filtering session search based on create_type --- db/manifest | 3 +- db/up/add_session_create_type.sql | 1 + ruby/lib/jam_ruby.rb | 2 + ruby/lib/jam_ruby/models/music_session.rb | 11 +++- ...ed_session.js => scheduled_session.js.erb} | 57 ++++++++++--------- .../views/clients/_scheduledSession.html.erb | 10 ++-- 6 files changed, 49 insertions(+), 35 deletions(-) create mode 100644 db/up/add_session_create_type.sql rename web/app/assets/javascripts/{scheduled_session.js => scheduled_session.js.erb} (93%) diff --git a/db/manifest b/db/manifest index dbc4afe31..85518bffb 100755 --- a/db/manifest +++ b/db/manifest @@ -221,4 +221,5 @@ connection_network_testing.sql video_sources.sql recorded_videos.sql emails_from_update2.sql -add_youtube_flag_to_claimed_recordings.sql \ No newline at end of file +add_youtube_flag_to_claimed_recordings.sql +add_session_create_type.sql diff --git a/db/up/add_session_create_type.sql b/db/up/add_session_create_type.sql new file mode 100644 index 000000000..00fd5c728 --- /dev/null +++ b/db/up/add_session_create_type.sql @@ -0,0 +1 @@ +ALTER TABLE music_sessions ADD COLUMN create_type VARCHAR(64); diff --git a/ruby/lib/jam_ruby.rb b/ruby/lib/jam_ruby.rb index 394975a34..1e30f1088 100755 --- a/ruby/lib/jam_ruby.rb +++ b/ruby/lib/jam_ruby.rb @@ -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" diff --git a/ruby/lib/jam_ruby/models/music_session.rb b/ruby/lib/jam_ruby/models/music_session.rb index 35b021d8d..376a104e9 100644 --- a/ruby/lib/jam_ruby/models/music_session.rb +++ b/ruby/lib/jam_ruby/models/music_session.rb @@ -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,8 +299,9 @@ 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 end @@ -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? diff --git a/web/app/assets/javascripts/scheduled_session.js b/web/app/assets/javascripts/scheduled_session.js.erb similarity index 93% rename from web/app/assets/javascripts/scheduled_session.js rename to web/app/assets/javascripts/scheduled_session.js.erb index c401eb4ed..e45059c72 100644 --- a/web/app/assets/javascripts/scheduled_session.js +++ b/web/app/assets/javascripts/scheduled_session.js.erb @@ -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 { diff --git a/web/app/views/clients/_scheduledSession.html.erb b/web/app/views/clients/_scheduledSession.html.erb index 00b3ac295..349ecc77f 100644 --- a/web/app/views/clients/_scheduledSession.html.erb +++ b/web/app/views/clients/_scheduledSession.html.erb @@ -27,35 +27,35 @@