diff --git a/ruby/lib/jam_ruby/models/active_music_session.rb b/ruby/lib/jam_ruby/models/active_music_session.rb
index 1df6bfb66..dd244ab68 100644
--- a/ruby/lib/jam_ruby/models/active_music_session.rb
+++ b/ruby/lib/jam_ruby/models/active_music_session.rb
@@ -455,6 +455,7 @@ module JamRuby
def self.participant_create(user, music_session_id, client_id, as_musician, tracks, audio_latency, video_sources=nil)
music_session = MusicSession.find(music_session_id)
+ # USERS ARE ALREADY IN SESSION
if music_session.active_music_session
connection = nil
active_music_session = music_session.active_music_session
@@ -488,6 +489,8 @@ module JamRuby
end
connection
+
+ # FIRST USER TO JOIN SESSION
else
return_value = nil
diff --git a/ruby/lib/jam_ruby/models/music_session.rb b/ruby/lib/jam_ruby/models/music_session.rb
index 2746e4e08..6168f8b84 100644
--- a/ruby/lib/jam_ruby/models/music_session.rb
+++ b/ruby/lib/jam_ruby/models/music_session.rb
@@ -371,7 +371,16 @@ module JamRuby
ms.invitations << invitation
- Notification.send_scheduled_session_invitation(ms, receiver)
+ # if the session start time is not within the next 1 minute (user could create a "scheduled session"
+ # for 8:30 at 8:29. In this case send the regular
+ # send SCHEDULED SESSION INVITATION
+ if ms.scheduled_start && (ms.scheduled_start - Time.now.utc) / 60 > 1
+ Notification.send_scheduled_session_invitation(ms, receiver)
+
+ # otherwise send the notification that allows the user to join the session directly
+ else
+ Notification.send_session_invitation(receiver, user, ms.id)
+ end
end if options[:invitations]
options[:music_notations].each do |notation|
diff --git a/ruby/lib/jam_ruby/models/notification.rb b/ruby/lib/jam_ruby/models/notification.rb
index f0d544730..77b2c2394 100644
--- a/ruby/lib/jam_ruby/models/notification.rb
+++ b/ruby/lib/jam_ruby/models/notification.rb
@@ -177,7 +177,7 @@ module JamRuby
return "#{band_name} is now in a session."
when NotificationTypes::SCHEDULED_SESSION_INVITATION
- return "You have been invited to join a session by #{name}."
+ return "You have been invited to a future session by #{name}."
when NotificationTypes::SCHEDULED_SESSION_RSVP
return "#{name} would like to play in a session you have scheduled."
diff --git a/web/app/assets/javascripts/notificationPanel.js b/web/app/assets/javascripts/notificationPanel.js
index fd9081752..08121983a 100644
--- a/web/app/assets/javascripts/notificationPanel.js
+++ b/web/app/assets/javascripts/notificationPanel.js
@@ -651,26 +651,9 @@
handleNotification(payload, header.type);
- var participants = [];
- rest.getSession(payload.session_id).done(function(response) {
- $.each(response.participants, function(index, val) {
- participants.push({"photo_url": context.JK.resolveAvatarUrl(val.user.photo_url), "name": val.user.name});
- });
-
- var participantHtml = "You have been invited to join a session with:
";
- participantHtml += "
";
-
- $.each(participants, function(index, val) {
- if (index < 4) {
- participantHtml += " + ") | " + val.name + " |
";
- }
- });
-
- participantHtml += "
";
-
- app.notify({
+ app.notify({
"title": "Session Invitation",
- "text": participantHtml
+ "text": payload.msg
}, [{
id: "btn-join",
text: "JOIN SESSION",
@@ -684,8 +667,48 @@
}
}]
);
- }).error(app.ajaxError);
+ // THERE IS A RACE CONDITION THAT CAUSES AN ERROR WHEN INVOKING THE CODE BELOW
+ // THE ACTIVEMUSICSESSION HAS NOT YET BEEN FULLY CREATED B/C THE CREATOR'S CLIENT IS
+ // STILL SETTING UP THE SESSION WHEN THE NOTIFICATION IS SENT
+
+ // SEE ActiveMusicSession#participant_create
+
+ // var participants = [];
+ // rest.getSession(payload.session_id)
+ // .done(function(response) {
+ // $.each(response.participants, function(index, val) {
+ // participants.push({"photo_url": context.JK.resolveAvatarUrl(val.user.photo_url), "name": val.user.name});
+ // });
+
+ // var participantHtml = "You have been invited to join a session with:
";
+ // participantHtml += "";
+
+ // $.each(participants, function(index, val) {
+ // if (index < 4) {
+ // participantHtml += " + ") | " + val.name + " |
";
+ // }
+ // });
+
+ // participantHtml += "
";
+
+ // app.notify({
+ // "title": "Session Invitation",
+ // "text": participantHtml
+ // }, [{
+ // id: "btn-join",
+ // text: "JOIN SESSION",
+ // "layout-action": "close",
+ // href: "#",
+ // "class": "button-orange",
+ // callback: openTerms,
+ // callback_args: {
+ // "session_id": payload.session_id,
+ // "notification_id": payload.notification_id
+ // }
+ // }]
+ // );
+ // }).error(app.ajaxError);
});
}