diff --git a/web/app/assets/javascripts/createSession.js b/web/app/assets/javascripts/createSession.js index b5c7808bf..4f8026dc0 100644 --- a/web/app/assets/javascripts/createSession.js +++ b/web/app/assets/javascripts/createSession.js @@ -277,7 +277,7 @@ function initialize(invitationDialogInstance, inviteMusiciansDialogInstance) { invitationDialog = invitationDialogInstance; inviteMusiciansDialog = inviteMusiciansDialogInstance; - inviteMusiciansDialog.appendFriendSelector($('#create-session-invite-musicians')); + inviteMusiciansDialog.inviteSessionCreate('#create-session-invite-musicians'); events(); loadBands(); loadSessionSettings(); diff --git a/web/app/assets/javascripts/inviteMusicians.js b/web/app/assets/javascripts/inviteMusicians.js index 10226ff6b..fa26c0429 100644 --- a/web/app/assets/javascripts/inviteMusicians.js +++ b/web/app/assets/javascripts/inviteMusicians.js @@ -13,6 +13,31 @@ var autoComplete = null; var rest = context.JK.Rest(); var mySaveCallback; + var inviteAction = 'create'; // create/update + + this.inviteSessionCreate = function(elemSelector) { + inviteAction = 'create'; + _appendFriendSelector($(elemSelector)); + }; + + this.inviteSessionUpdate = function(elemSelector, sessionId) { + inviteAction = 'update'; + if (0 == $(elemSelector + ' .friendbox').length) { + _appendFriendSelector($(elemSelector)); + } + this.clearSelections(); + $.ajax({ + ajax: false, + url: "/api/invitations", + data: { session_id: sessionId, sender: context.JK.currentUserId } + }).done(function(response) { + response.map(function(item) { + var dd = item['receiver'] + selectedFriendIds[dd['id']] = true; + addInvitation(dd['name'], dd['id']); + }); + }).fail(app.ajaxError); + } this.clearSelections = function() { userNames = []; @@ -65,7 +90,11 @@ function addInvitation(value, data) { if ($('.selected-friends div[user-id=' + data + ']').length === 0) { var template = $('#template-added-invitation').html(); - var invitationHtml = context.JK.fillTemplate(template, {userId: data, userName: value}); + var image_style = inviteAction == 'update' ? 'display:none' : ''; + var invitationHtml = context.JK.fillTemplate(template, + {userId: data, + userName: value, + image_style: image_style}); $('.selected-friends').append(invitationHtml); $('#friend-input').select(); selectedFriendIds[data] = true; @@ -142,43 +171,22 @@ }); } - function events() { - //if ($('.btn-choose-friends').data('events') === undefined) { - $('.selected-friends').on("click", ".invitation a", removeInvitation); - $('.btn-choose-friends').click(function(){ - friendSelectorDialog.showDialog(selectedFriendIds); - }); - //} + function _events() { + $('#selected-friends-'+inviteAction).on("click", ".invitation a", removeInvitation); + $('#btn-choose-friends-'+inviteAction).click(function(){ + friendSelectorDialog.showDialog(selectedFriendIds); + }); } - this.inviteJoinSession = function(sessionId) { - if (0 == $('#join-session-invite-musicians .friendbox').length) { - this.appendFriendSelector($('#join-session-invite-musicians')); - } - this.clearSelections(); - $.ajax({ - ajax: false, - url: "/api/invitations", - data: { - session_id: sessionId, - sender: context.JK.currentUserId - } - }).done(function(response) { - response.map(function(item) { - var dd = item['receiver'] - selectedFriendIds[dd['id']] = true; - addInvitation(dd['name'], dd['id']); - }); - }).fail(app.ajaxError); + function _friendSelectorHTML() { + return context.JK.fillTemplate($('#template-session-invite-musicians').html(), + {choose_friends_id: 'btn-choose-friends-'+inviteAction, + selected_friends_id: 'selected-friends-'+inviteAction}); } - function friendSelectorHTML() { - return context.JK.fillTemplate($('#template-session-invite-musicians').html(),{}); - } - - this.appendFriendSelector = function(elem) { - elem.append(friendSelectorHTML()); - events(); + function _appendFriendSelector(elemSelector) { + elemSelector.append(_friendSelectorHTML()); + _events(); }; this.initialize = function(friendSelectorDialogInstance) { diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index 0b253d8bd..569b011f9 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -1305,7 +1305,7 @@ } function inviteMusicians() { - inviteMusiciansDialog.inviteJoinSession(sessionId); + inviteMusiciansDialog.inviteSessionUpdate('#update-session-invite-musicians', sessionId); } function events() { diff --git a/web/app/views/clients/_createSession.html.erb b/web/app/views/clients/_createSession.html.erb index 56e5304a4..7a0b3f565 100644 --- a/web/app/views/clients/_createSession.html.erb +++ b/web/app/views/clients/_createSession.html.erb @@ -156,13 +156,6 @@ - - - + + + diff --git a/web/app/views/clients/index.html.erb b/web/app/views/clients/index.html.erb index 42586fd45..d19151888 100644 --- a/web/app/views/clients/index.html.erb +++ b/web/app/views/clients/index.html.erb @@ -35,7 +35,7 @@ <%= render "account_profile_avatar" %> <%= render "account_audio_profile" %> <%= render "invitationDialog" %> -<%= render "inviteSessionMusicians" %> +<%= render "inviteMusicians" %> <%= render "whatsNextDialog" %> <%= render "recordingFinishedDialog" %> <%= render "localRecordingsDialog" %>