diff --git a/app/assets/javascripts/AAB_message_factory.js b/app/assets/javascripts/AAB_message_factory.js index 94a1ccafc..7159e549c 100644 --- a/app/assets/javascripts/AAB_message_factory.js +++ b/app/assets/javascripts/AAB_message_factory.js @@ -76,7 +76,9 @@ }; // create a login message using token (a cookie or similiar) - factory.login_with_token = function(token) { + // reconnect_music_session_id is an optional argument that allows the session to be immediately associated + // with a music session. + factory.login_with_token = function(token, reconnect_music_session_id) { //context.JK.logger.debug("*** login_with_token: client_id = "+$.cookie("client_id")); var login = { token : token, client_id : $.cookie("client_id") diff --git a/app/assets/javascripts/JamServer.js b/app/assets/javascripts/JamServer.js index 6656f4db3..d635bf7fd 100644 --- a/app/assets/javascripts/JamServer.js +++ b/app/assets/javascripts/JamServer.js @@ -55,7 +55,7 @@ server.rememberLogin = function() { var token, loginMessage; token = $.cookie("remember_token"); - loginMessage = msg_factory.login_with_token(token); + loginMessage = msg_factory.login_with_token(token, null); server.send(loginMessage); }; diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a3746d28e..75d60e7cc 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -26,7 +26,7 @@ class UsersController < ApplicationController if !@invited_user.nil? && @invited_user.accepted # short-circuit out if this invitation is already accepted - render "already_signed_up" + render "already_signed_up", :layout => 'landing' return end @signup_postback = load_postback(@invited_user) diff --git a/app/views/spikes/facebook_invite.html.erb b/app/views/spikes/facebook_invite.html.erb index 6d1189b94..9ad848a6a 100644 --- a/app/views/spikes/facebook_invite.html.erb +++ b/app/views/spikes/facebook_invite.html.erb @@ -1,4 +1,5 @@ <% provide(:title, "Facebook Invitations") %> +<%= javascript_include_tag "jquery" %> <%= javascript_include_tag "jqfmfs/jquery.facebook.multifriend.select" %> <%= stylesheet_link_tag "jqfmfs/jquery.facebook.multifriend.select" %>

Facebook Invitations

diff --git a/config/application.rb b/config/application.rb index 9d9b44285..3bba478fc 100644 --- a/config/application.rb +++ b/config/application.rb @@ -100,8 +100,8 @@ if defined?(Bundler) config.websocket_gateway_connect_time_stale = 2 config.websocket_gateway_connect_time_expire = 5 else - config.websocket_gateway_connect_time_stale = 30 - config.websocket_gateway_connect_time_expire = 180 + config.websocket_gateway_connect_time_stale = 6 + config.websocket_gateway_connect_time_expire = 10 end config.websocket_gateway_internal_debug = false config.websocket_gateway_port = 6767 @@ -121,6 +121,9 @@ if defined?(Bundler) config.aws_bucket_public = 'jamkazam-dev-public' config.aws_cache = '315576000' + # facebook keys + config.facebook_key = '468555793186398' + if Rails.env == 'production' config.desk_url = 'https://jamkazam.desk.com' config.multipass_callback_url = "http://jamkazam.desk.com/customer/authentication/multipass/callback" diff --git a/config/routes.rb b/config/routes.rb index 113305062..05b1d7dec 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -42,6 +42,9 @@ SampleApp::Application.routes.draw do match '/test_connection', to: 'sessions#connection_state', :as => :connection_state + # spikes + match '/facebook_invite', to: 'spikes#facebook_invite' + # password reset match '/request_reset_password' => 'users#request_reset_password', :via => :get match '/reset_password' => 'users#reset_password', :via => :post diff --git a/lib/managers/music_session_manager.rb b/lib/managers/music_session_manager.rb index 1a7068940..c6c43b014 100644 --- a/lib/managers/music_session_manager.rb +++ b/lib/managers/music_session_manager.rb @@ -43,7 +43,13 @@ class MusicSessionManager < BaseManager MusicSessionHistory.save(music_session) # auto-join this user into the newly created session - connection = ConnectionManager.new.join_music_session(user, client_id, music_session, true, tracks) + as_musician = true + connection = ConnectionManager.new.join_music_session(user, client_id, music_session, as_musician, tracks) do |db_conn, connection| + if as_musician && music_session.musician_access + Notification.send_musician_session_join(music_session, connection, user) + Notification.send_friend_session_join(db_conn, connection, user) + end + end unless connection.errors.any? return_value = music_session @@ -97,7 +103,12 @@ class MusicSessionManager < BaseManager music_session = MusicSession.find(music_session_id) - connection = ConnectionManager.new.join_music_session(user, client_id, music_session, as_musician, tracks) + connection = ConnectionManager.new.join_music_session(user, client_id, music_session, as_musician, tracks) do |db_conn, connection| + if as_musician && music_session.musician_access + Notification.send_musician_session_join(music_session, connection, user) + Notification.send_friend_session_join(db_conn, connection, user) + end + end if connection.errors.any? # rollback the transaction to make sure nothing is disturbed in the database @@ -117,7 +128,9 @@ class MusicSessionManager < BaseManager raise PermissionError, "you do not own this connection" end - ConnectionManager.new.leave_music_session(user, connection, music_session) + ConnectionManager.new.leave_music_session(user, connection, music_session) do + Notification.send_musician_session_depart(music_session, connection.client_id, user) + end unless music_session.nil? # send out notification to queue to the rest of the session