From 33c64c28811125fdf24d4c276d483be0f905a756 Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Mon, 13 Jan 2014 22:33:32 -0600 Subject: [PATCH] vrfs1008: fixing integration bugs --- web/app/assets/javascripts/createSession.js | 4 +-- web/app/assets/javascripts/inviteMusicians.js | 36 ++++++++++++++----- web/app/assets/javascripts/session.js | 2 +- .../controllers/api_invitations_controller.rb | 7 ++-- 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/web/app/assets/javascripts/createSession.js b/web/app/assets/javascripts/createSession.js index 8acf248c0..b5c7808bf 100644 --- a/web/app/assets/javascripts/createSession.js +++ b/web/app/assets/javascripts/createSession.js @@ -13,13 +13,13 @@ var sessionSettings = {}; function beforeShow(data) { - inviteMusiciansDialog.afterShow(data); + inviteMusiciansDialog.clearSelections(); context.JK.GenreSelectorHelper.render('#create-session-genre'); resetForm(); } function afterShow(data) { - inviteMusiciansDialog.afterShow(data); + inviteMusiciansDialog.loadFriends(); } function resetForm() { diff --git a/web/app/assets/javascripts/inviteMusicians.js b/web/app/assets/javascripts/inviteMusicians.js index 17c08459d..74e767f73 100644 --- a/web/app/assets/javascripts/inviteMusicians.js +++ b/web/app/assets/javascripts/inviteMusicians.js @@ -17,13 +17,17 @@ var newSelections = {}; var mySaveCallback; - this. beforeShow = function(data) { + this.clearSelections = function() { userNames = []; userIds = []; userPhotoUrls = []; - } + selectedIds = {}; + selectedFriendIds = {}; + newSelections = {}; + $('.selected-friends').empty(); + }; - this.afterShow = function(data) { + this.loadFriends = function() { friendSelectorDialog.setCallback(friendSelectorCallback); var friends = rest.getFriends({ id: context.JK.currentUserId }) @@ -144,16 +148,32 @@ } function events() { - $('.selected-friends').on("click", ".invitation a", removeInvitation); - $('.btn-choose-friends').click(function(){ - friendSelectorDialog.showDialog(selectedFriendIds); - }); + if ($('.btn-choose-friends').data('events') === undefined) { + $('.selected-friends').on("click", ".invitation a", removeInvitation); + $('.btn-choose-friends').click(function(){ + friendSelectorDialog.showDialog(selectedFriendIds); + }); + } } - function showDialog(ids) { + function showDialog(sessionId) { if (0 == $('#join-session-invite-musicians .friendbox').length) { this.appendFriendSelector($('#join-session-invite-musicians')); } + selectedFriendIds = {}; + $.ajax({ + ajax: false, + url: "/api/invitations", + data: { + session_id: sessionId, + sender: context.JK.currentUserId + } + }).done(function(response) { + response.map(function(item) { + selectedFriendIds[item['receiver']['id']] = true; + }); + logger.debug(selectedFriendIds); + }).fail(app.ajaxError); } this.friendSelectorHTML = function() { diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index d6bd28b2e..ba21b7340 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -1305,7 +1305,7 @@ } function inviteMusicians() { - inviteMusiciansDialog.showDialog(); + inviteMusiciansDialog.showDialog(sessionId); } function events() { diff --git a/web/app/controllers/api_invitations_controller.rb b/web/app/controllers/api_invitations_controller.rb index 266f97d6d..1de124bec 100644 --- a/web/app/controllers/api_invitations_controller.rb +++ b/web/app/controllers/api_invitations_controller.rb @@ -14,8 +14,11 @@ class ApiInvitationsController < ApiController if current_user.id != sender_id raise PermissionError, "You can only ask for your own sent invitations" end - - @invitations = Invitation.where(:sender_id => current_user.id) + if session_id = params[:session_id] + @invitations = Invitation.where(:sender_id => sender_id, :music_session_id => session_id) + else + @invitations = Invitation.where(:sender_id => current_user.id) + end elsif !receiver_id.nil? if current_user.id != receiver_id raise PermissionError, "You can only ask for your own received invitations"