Merge branch 'develop' into VRFS-2282
This commit is contained in:
commit
6f27455b02
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -375,7 +375,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 scheduled session notification since it's still "future")
|
||||
# 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|
|
||||
|
|
|
|||
|
|
@ -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."
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ module JamRuby
|
|||
|
||||
@error_reason = @error_out[:reason]
|
||||
@error_reason = "unspecified-reason" unless @error_reason
|
||||
@error_detail = @error_detail[:detail]
|
||||
@error_detail = @error_out[:detail]
|
||||
end
|
||||
|
||||
def postback
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ describe BatchMailer do
|
|||
|
||||
# it { BatchMailer.deliveries.length.should == 1 }
|
||||
|
||||
it { mail['from'].to_s.should == "JamKazam <support@jamkazam.com>" }
|
||||
it { mail['from'].to_s.should == "JamKazam <noreply@jamkazam.com>" }
|
||||
it { mail.subject.should == batch.subject }
|
||||
|
||||
it { mail.multipart?.should == true } # because we send plain + html
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@
|
|||
return currentQuery;
|
||||
}
|
||||
|
||||
|
||||
function clearResults() {
|
||||
didLoadAllFeeds = false;
|
||||
currentFeedPage = 0;
|
||||
$content.empty(); // TODO: do we need to delete audio elements?
|
||||
$noMoreFeeds.hide();
|
||||
|
|
|
|||
|
|
@ -82,7 +82,6 @@
|
|||
}
|
||||
})
|
||||
.always(function() {
|
||||
context.JK.bindHoverEvents();
|
||||
$ssSpinner.hide();
|
||||
});
|
||||
|
||||
|
|
@ -162,6 +161,8 @@
|
|||
$.each(sessions.sessions, function(i, session) {
|
||||
sessionList.renderInactiveSession(session, $(CATEGORY.SCHEDULED.id), undefined, sessions.my_audio_latency);
|
||||
});
|
||||
|
||||
context.JK.bindHoverEvents();
|
||||
afterLoadScheduledSessions(sessions.sessions);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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: <br/><br/>";
|
||||
participantHtml += "<table><tbody>";
|
||||
|
||||
$.each(participants, function(index, val) {
|
||||
if (index < 4) {
|
||||
participantHtml += "<tr><td><img class='avatar-small' src='" + context.JK.resolveAvatarUrl(val.photo_url) + "' /></td><td>" + val.name + "</td></tr>";
|
||||
}
|
||||
});
|
||||
|
||||
participantHtml += "</tbody></table>";
|
||||
|
||||
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: <br/><br/>";
|
||||
// participantHtml += "<table><tbody>";
|
||||
|
||||
// $.each(participants, function(index, val) {
|
||||
// if (index < 4) {
|
||||
// participantHtml += "<tr><td><img class='avatar-small' src='" + context.JK.resolveAvatarUrl(val.photo_url) + "' /></td><td>" + val.name + "</td></tr>";
|
||||
// }
|
||||
// });
|
||||
|
||||
// participantHtml += "</tbody></table>";
|
||||
|
||||
// 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);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
<span>You have no bio to describe yourself as a musician. <a href="#" class="enter-bio">Enter one now!</a></span>
|
||||
</div>
|
||||
<div class="have-bio">
|
||||
<p id="profile-biography"></p><a id="profile-edit-biography" class="button-orange right" href="#">Edit Bio</a>
|
||||
<p id="profile-biography"></p><a id="profile-edit-biography" class="button-orange right" href="#">EDIT BIO</a>
|
||||
</div>
|
||||
<div class="update-biography">
|
||||
<div class="field">
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ describe "Profile History", :js => true, :type => :feature, :capybara_feature =>
|
|||
# the same feedHelper instance is used to show any user's feed. so we need to make sure bouncing back and forth
|
||||
# between feeds is safe
|
||||
it "between users" do
|
||||
pending
|
||||
create_session(creator: user)
|
||||
formal_leave_by(user)
|
||||
user2 = FactoryGirl.create(:user)
|
||||
|
|
|
|||
Loading…
Reference in New Issue