VRFS-1668 more notification work
This commit is contained in:
parent
091998c200
commit
8fc30baf42
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -41,7 +41,8 @@
|
|||
contentType: 'application/json',
|
||||
url: "/api/sessions/legacy",
|
||||
processData:false,
|
||||
data: JSON.stringify(options)});
|
||||
data: JSON.stringify(options)
|
||||
});
|
||||
}
|
||||
|
||||
function legacyJoinSession(options) {
|
||||
|
|
|
|||
|
|
@ -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> ')
|
||||
|
||||
// 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> ';
|
||||
$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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -7,4 +7,7 @@ class MusicSessionsController < ApplicationController
|
|||
render :layout => "web"
|
||||
end
|
||||
|
||||
def show_scheduled_session_info
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue