VRFS-1668 more notification work

This commit is contained in:
Brian Smith 2014-05-18 00:09:21 -04:00
parent 091998c200
commit 8fc30baf42
28 changed files with 549 additions and 69 deletions

View File

@ -124,6 +124,8 @@ message ClientMessage {
optional SessionDepart session_depart = 171;
optional MusicianSessionJoin musician_session_join = 172;
optional TracksChanged tracks_changed = 173;
// scheduled sessions
optional ScheduledSessionInvitation scheduled_session_invitation = 174;
optional ScheduledSessionRsvp scheduled_session_rsvp = 175;
optional ScheduledSessionRsvpApproved scheduled_session_rsvp_approved = 176;
@ -356,7 +358,7 @@ message ScheduledSessionRsvp {
optional string session_id = 1;
optional string photo_url = 2;
optional string msg = 3;
optional string slot_id = 4;
optional string user_id = 4;
optional string instruments = 5;
optional string session_name = 6;
optional string session_date = 7;
@ -365,31 +367,67 @@ message ScheduledSessionRsvp {
}
message ScheduledSessionRsvpApproved {
optional string session_id = 1;
optional string msg = 2;
optional string session_name = 3;
optional string session_date = 4;
optional string notification_id = 5;
optional string created_at = 6;
}
message ScheduledSessionRsvpCancelled {
optional string session_id = 1;
optional string msg = 2;
optional string session_name = 3;
optional string session_date = 4;
optional string notification_id = 5;
optional string created_at = 6;
}
message ScheduledSessionRsvpCancelledOrg {
optional string session_id = 1;
optional string msg = 2;
optional string session_name = 3;
optional string session_date = 4;
optional string notification_id = 5;
optional string created_at = 6;
}
message ScheduledSessionCancelled {
optional string session_id = 1;
optional string msg = 2;
optional string session_name = 3;
optional string session_date = 4;
optional string notification_id = 5;
optional string created_at = 6;
}
message ScheduledSessionRescheduled {
optional string session_id = 1;
optional string msg = 2;
optional string session_name = 3;
optional string session_date = 4;
optional string notification_id = 5;
optional string created_at = 6;
}
message ScheduledSessionReminder {
optional string session_id = 1;
optional string msg = 2;
optional string session_name = 3;
optional string session_date = 4;
optional string notification_id = 5;
optional string created_at = 6;
}
message ScheduledSessionComment {
optional string session_id = 1;
optional string photo_url = 2;
optional string msg = 3;
optional string session_name = 4;
optional string session_date = 5;
optional string notification_id = 6;
optional string created_at = 7;
}
message MusicianRecordingSaved {

View File

@ -452,20 +452,13 @@ module JamRuby
)
end
# SCHEDULED_SESSION_RSVP = 175;
# SCHEDULED_SESSION_RSVP_APPROVED = 176;
# SCHEDULED_SESSION_RSVP_CANCELLED = 177;
# SCHEDULED_SESSION_RSVP_CANCELLED_ORG = 178;
# SCHEDULED_SESSION_CANCELLED = 179;
# SCHEDULED_SESSION_RESCHEDULED = 180;
# SCHEDULED_SESSION_REMINDER = 181;
# SCHEDULED_SESSION_COMMENT = 182;
def scheduled_session_rsvp(receiver_id, session_id, photo_url, msg, slots, instruments, session_name, session_date, notification_id, created_at)
def scheduled_session_rsvp(receiver_id, session_id, photo_url, msg, user_id, instruments, session_name, session_date, notification_id, created_at)
scheduled_session_rsvp = Jampb::ScheduledSessionRsvp.new(
:session_id => session_id,
:photo_url => photo_url,
:msg => msg,
:user_id => user_id,
:instruments => instruments,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
@ -479,6 +472,134 @@ module JamRuby
)
end
def scheduled_session_rsvp_approved(receiver_id, session_id, msg, session_name, session_date, notification_id, created_at)
scheduled_session_rsvp_approved = Jampb::ScheduledSessionRsvpApproved.new(
:session_id => session_id,
:msg => msg,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
:created_at => created_at
)
Jampb::ClientMessage.new(
:type => ClientMessage::Type::SCHEDULED_SESSION_RSVP_APPROVED,
:route_to => USER_TARGET_PREFIX + receiver_id,
:scheduled_session_rsvp_approved => scheduled_session_rsvp_approved
)
end
def scheduled_session_rsvp_cancelled(receiver_id, session_id, msg, session_name, session_date, notification_id, created_at)
scheduled_session_rsvp_cancelled = Jampb::ScheduledSessionRsvpCancelled.new(
:session_id => session_id,
:msg => msg,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
:created_at => created_at
)
Jampb::ClientMessage.new(
:type => ClientMessage::Type::SCHEDULED_SESSION_RSVP_CANCELLED,
:route_to => USER_TARGET_PREFIX + receiver_id,
:scheduled_session_rsvp_cancelled => scheduled_session_rsvp_cancelled
)
end
def scheduled_session_rsvp_cancelled_org(receiver_id, session_id, msg, session_name, session_date, notification_id, created_at)
scheduled_session_rsvp_cancelled_org = Jampb::ScheduledSessionRsvpCancelledOrg.new(
:session_id => session_id,
:msg => msg,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
:created_at => created_at
)
Jampb::ClientMessage.new(
:type => ClientMessage::Type::SCHEDULED_SESSION_RSVP_CANCELLED_ORG,
:route_to => USER_TARGET_PREFIX + receiver_id,
:scheduled_session_rsvp_cancelled_org => scheduled_session_rsvp_cancelled_org
)
end
def scheduled_session_cancelled(receiver_id, session_id, msg, session_name, session_date, notification_id, created_at)
scheduled_session_cancelled = Jampb::ScheduledSessionCancelled.new(
:session_id => session_id,
:msg => msg,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
:created_at => created_at
)
Jampb::ClientMessage.new(
:type => ClientMessage::Type::SCHEDULED_SESSION_CANCELLED,
:route_to => USER_TARGET_PREFIX + receiver_id,
:scheduled_session_cancelled => scheduled_session_cancelled
)
end
def scheduled_session_rescheduled(receiver_id, session_id, msg, session_name, session_date, notification_id, created_at)
scheduled_session_rescheduled = Jampb::ScheduledSessionRescheduled.new(
:session_id => session_id,
:msg => msg,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
:created_at => created_at
)
Jampb::ClientMessage.new(
:type => ClientMessage::Type::SCHEDULED_SESSION_RESCHEDULED,
:route_to => USER_TARGET_PREFIX + receiver_id,
:scheduled_session_rescheduled => scheduled_session_rescheduled
)
end
def scheduled_session_reminder(receiver_id, session_id, msg, session_name, session_date, notification_id, created_at)
scheduled_session_reminder = Jampb::ScheduledSessionReminder.new(
:session_id => session_id,
:msg => msg,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
:created_at => created_at
)
Jampb::ClientMessage.new(
:type => ClientMessage::Type::SCHEDULED_SESSION_REMINDER,
:route_to => USER_TARGET_PREFIX + receiver_id,
:scheduled_session_reminder => scheduled_session_reminder
)
end
def scheduled_session_comment(receiver_id, session_id, photo_url, msg, comment, session_name, session_date, notification_id, created_at)
scheduled_session_comment = Jampb::ScheduledSessionComment.new(
:session_id => session_id,
:photo_url => photo_url,
:msg => msg,
:comment => comment,
:session_name => session_name,
:session_date => session_date,
:notification_id => notification_id,
:created_at => created_at
)
Jampb::ClientMessage.new(
:type => ClientMessage::Type::SCHEDULED_SESSION_COMMENT,
:route_to => USER_TARGET_PREFIX + receiver_id,
:scheduled_session_comment => scheduled_session_comment
)
end
def band_session_join(receiver_id, session_id, photo_url, fan_access, musician_access, approval_required, msg, notification_id, created_at)
band_session_join = Jampb::BandSessionJoin.new(
:session_id => session_id,

View File

@ -39,7 +39,7 @@ module JamRuby
validates :musician_access, :inclusion => {:in => [true, false]}
validates :legal_terms, :inclusion => {:in => [true]}, :on => :create
validates :creator, :presence => true
validates :recurring_mode, :inclusion => {:in => RECURRING_MODES}, :on => :create
# validates :recurring_mode, :inclusion => {:in => RECURRING_MODES}, :on => :create
validate :creator_is_musician
before_create :generate_share_token

View File

@ -50,7 +50,11 @@ module JamRuby
band = Band.find(self.band_id)
end
self.class.format_msg(self.description, {:user => source_user, :band => band})
unless self.session_id.nil?
session = MusicSession.find(self.session_id)
end
self.class.format_msg(self.description, {:user => source_user, :band => band, :session => session})
end
# TODO: MAKE ALL METHODS BELOW ASYNC SO THE CLIENT DOESN'T BLOCK ON NOTIFICATION LOGIC
@ -184,7 +188,7 @@ module JamRuby
return "A musician has cancelled an RSVP to your session."
when NotificationTypes::SCHEDULED_SESSION_RSVP_CANCELLED_ORG
return "The session organizer has cancelled this session."
return "The session organizer has cancelled this session:"
when NotificationTypes::SCHEDULED_SESSION_CANCELLED
return "The session organizer has cancelled this session:"
@ -573,19 +577,22 @@ module JamRuby
end
def send_scheduled_session_invitation(music_session, user)
target_user = user
source_user = music_session.creator
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_INVITATION
notification.source_user_id = music_session.creator.id
notification.target_user_id = user.id
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:user => music_session.creator, :session => music_session})
notification_msg = format_msg(notification.description, {:user => source_user, :session => music_session})
msg = @@message_factory.scheduled_session_invitation(
user.id,
target_user.id,
music_session.id,
music_session.creator.photo_url,
source_user.photo_url,
notification_msg,
music_session.description,
music_session.scheduled_start,
@ -593,31 +600,235 @@ module JamRuby
notification.created_date
)
@@mq_router.publish_to_user(user.id, msg)
@@mq_router.publish_to_user(target_user.id, msg)
end
def send_scheduled_session_rsvp(music_session, user, rsvp_requests)
def send_scheduled_session_rsvp(music_session, user, instruments)
target_user = music_session.creator
source_user = user
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_RSVP
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:user => source_user, :session => music_session})
msg = @@message_factory.scheduled_session_rsvp(
target_user.id,
music_session.id,
source_user.photo_url,
notification_msg,
source_user.id,
instruments,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
def send_scheduled_session_approved(email, msg)
def send_scheduled_session_rsvp_approved(music_session, user)
target_user = user
source_user = music_session.creator
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_RSVP_APPROVED
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:session => music_session})
msg = @@message_factory.scheduled_session_rsvp_approved(
target_user.id,
music_session.id,
notification_msg,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
def send_scheduled_session_rsvp_cancelled(email, msg)
def send_scheduled_session_rsvp_cancelled(music_session, user)
target_user = music_session.creator
source_user = user
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_RSVP_CANCELLED
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:session => music_session})
msg = @@message_factory.scheduled_session_rsvp_cancelled(
target_user.id,
music_session.id,
notification_msg,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
def send_scheduled_session_rsvp_cancelled_org(email, msg)
def send_scheduled_session_rsvp_cancelled_org(music_session, user)
target_user = user
source_user = music_session.creator
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_RSVP_CANCELLED_ORG
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:session => music_session})
msg = @@message_factory.scheduled_session_rsvp_cancelled_org(
target_user.id,
music_session.id,
notification_msg,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
def send_scheduled_session_cancelled(email, msg)
def send_scheduled_session_cancelled(music_session)
rsvp_requests = RsvpRequest.requests_by_session(music_session)
rsvp_requests.each do |rsvp|
target_user = rsvp.user
source_user = music_session.creator
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_CANCELLED
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:session => music_session})
msg = @@message_factory.scheduled_session_cancelled(
target_user.id,
music_session.id,
notification_msg,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
end
def send_scheduled_session_rescheduled(email, msg)
def send_scheduled_session_rescheduled(music_session)
rsvp_requests = RsvpRequest.requests_by_session(music_session)
rsvp_requests.each do |rsvp|
target_user = rsvp.user
source_user = music_session.creator
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_RESCHEDULED
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:session => music_session})
msg = @@message_factory.scheduled_session_rescheduled(
target_user.id,
music_session.id,
notification_msg,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
end
def send_scheduled_session_reminder(email, msg)
def send_scheduled_session_reminder(music_session)
rsvp_requests = RsvpRequest.requests_by_session(music_session)
rsvp_requests.each do |rsvp|
target_user = rsvp.user
source_user = music_session.creator
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_REMINDER
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:session => music_session})
msg = @@message_factory.scheduled_session_reminder(
target_user.id,
music_session.id,
notification_msg,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
end
def send_scheduled_session_comment(email, msg)
def send_scheduled_session_comment(music_session, comment)
rsvp_requests = RsvpRequest.requests_by_session(music_session)
rsvp_requests.each do |rsvp|
target_user = rsvp.user
source_user = music_session.creator
notification = Notification.new
notification.description = NotificationTypes::SCHEDULED_SESSION_CANCELLED
notification.source_user_id = source_user.id
notification.target_user_id = target_user.id
notification.session_id = music_session.id
notification.save
notification_msg = format_msg(notification.description, {:session => music_session})
msg = @@message_factory.scheduled_session_comment(
target_user.id,
music_session.id,
notification_msg,
comment,
music_session.description,
music_session.scheduled_start,
notification.id,
notification.created_date
)
@@mq_router.publish_to_user(target_user.id, msg)
end
end
def send_band_session_join(music_session, band)

View File

@ -9,6 +9,26 @@ module JamRuby
validates :canceled, :inclusion => {:in => [nil, true, false]}
validates :rsvp_slot, presence: true
def self.requests_by_session(session, user = nil)
query = RsvpRequest
.includes(:user)
.joins(
%Q{
INNER join
rsvp_slots rs
ON
rsvp_requests.rsvp_slot_id = rs.id
}
)
.where(
%Q{
rsvp_slots.music_session_id = '#{session.id}''
}
)
query = query.where("rsvp_requests.user_id = '#{user.id}'") unless user.nil?
return query
end
# XXX we need to validate that only one RsvpRequest.chosen = true for a given RsvpSlot
# in other words, you can have many requests to a slot, but only 0 or 1 rsvp_request.chosen = true)

View File

@ -41,7 +41,8 @@
contentType: 'application/json',
url: "/api/sessions/legacy",
processData:false,
data: JSON.stringify(options)});
data: JSON.stringify(options)
});
}
function legacyJoinSession(options) {

View File

@ -768,7 +768,7 @@
text: "OKAY",
"layout-action": "close",
href: "#",
css: "button-orange"
"class": "button-orange"
};
var cancelButton = {
@ -776,7 +776,7 @@
text: "CANCEL",
"layout-action": "close",
href: "#",
css: "button-grey"
"class": "button-grey"
};
var defaultButtons = [
@ -861,14 +861,27 @@
$buttonDiv.empty();
$.each(buttons, function(index, val) {
$buttonDiv.append('<a id="' + val.id + '" href="#" class="' + val.css + '" layout-action="close">' + val.text + '</a>&nbsp;&nbsp;')
// build button HTML based on KV pairs
var keys = Object.keys(val);
var buttonHtml = '<a';
for (var i=0; i < keys.length; i++) {
console.log("keys[i]=%o, val[keys[i]]=%o", keys[i], val[keys[i]]);
// ignore button text and callback info
if (keys[i] !== 'text' && keys[i] !== 'callback' && keys[i] !== 'callback_args') {
buttonHtml += ' ' + keys[i] + '="' + val[keys[i]] + '"';
}
}
buttonHtml += '>' + val['text'] + '</a>&nbsp;&nbsp;';
$buttonDiv.append(buttonHtml);
// ensure it doesn't fire twice
$('#' + val.id, $notify).unbind('click');
$('#' + val.id, $notify).click(function() {
console.log($(this).attr('class'));
console.log("handling click");
if (val.callback !== undefined) {
if (val.callback_args) {
val.callback(val.callback_args);

View File

@ -428,7 +428,7 @@
text: "JOIN SESSION",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: openTerms,
callback_args: {
"session_id": payload.session_id,
@ -469,7 +469,7 @@
text: "APPROVE",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: approveJoinRequest,
callback_args: {
"join_request_id": payload.join_request_id,
@ -481,7 +481,7 @@
text: "REJECT",
"layout-action": "close",
href: "#",
css: "button-grey",
"class": "button-grey",
callback: rejectJoinRequest,
callback_args: {
"join_request_id": payload.join_request_id,
@ -556,7 +556,7 @@
text: "ACCEPT",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: acceptFriendRequest,
callback_args: {
"friend_request_id": payload.friend_request_id,
@ -623,7 +623,7 @@
text: "JOIN SESSION",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: openTerms,
callback_args: {
"session_id": payload.session_id,
@ -679,7 +679,7 @@
text: okText,
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: callback,
callback_args: {
"session_id": payload.session_id,
@ -737,7 +737,7 @@
text: okText,
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: callback,
callback_args: {
"session_id": payload.session_id,
@ -763,7 +763,15 @@
"title": "Session Invitation",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-more-info",
text: "More Info",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -775,10 +783,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session RSVP",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-view-profile",
text: "View Profile",
"layout-action": "close",
href: JK.root_url + "/client#/profile/" + payload.user_id,
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -789,10 +805,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session RSVP Approved!",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-session-details",
text: "Session Details",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -803,10 +827,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session RSVP Cancelled",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-session-details",
text: "Session Details",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -817,10 +849,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session RSVP Cancelled",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-session-details",
text: "Session Details",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -831,10 +871,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session Cancelled",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-session-details",
text: "Session Details",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -845,10 +893,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session Rescheduled",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-session-details",
text: "Session Details",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -859,10 +915,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session Reminder",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-session-details",
text: "Session Details",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -874,10 +938,18 @@
handleNotification(payload, header.type);
app.notify({
"title": "Session Invitation",
"title": "Session Comment",
"text": payload.msg,
"icon_url": context.JK.resolveAvatarUrl(payload.photo_url)
});
}, [{
id: "btn-session-details",
text: "Session Details",
"layout-action": "close",
href: JK.root_url + "/sessions/" + payload.session_id + "/details",
rel: "external",
"class": "button-orange"
}]
);
});
}
@ -897,7 +969,7 @@
text: "LISTEN",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: listenToRecording,
callback_args: {
"recording_id": payload.recording_id,
@ -923,7 +995,7 @@
text: "LISTEN",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: listenToRecording,
callback_args: {
"recording_id": payload.recording_id,
@ -950,7 +1022,7 @@
text: "SHARE",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: shareRecording,
callback_args: {
"recording_id": payload.recording_id
@ -979,7 +1051,7 @@
text: "ACCEPT",
"layout-action": "close",
href: "#",
css: "button-orange",
"class": "button-orange",
callback: acceptBandInvitation,
callback_args: {
"band_invitation_id": payload.band_invitation_id,

View File

@ -7,4 +7,7 @@ class MusicSessionsController < ApplicationController
render :layout => "web"
end
def show_scheduled_session_info
end
end

View File

@ -26,6 +26,7 @@ SampleApp::Application.routes.draw do
match '/auth/failure', :to => 'sessions#failure'
# session / recording landing pages
match '/sessions/:id/details' => 'music_sessions#show_scheduled_session_info', :via => :get, :as => 'music_scheduled_session_detail'
match '/sessions/:id' => 'music_sessions#show', :via => :get, :as => 'music_session_detail'
match '/recordings/:id' => 'recordings#show', :via => :get, :as => 'recording_detail'