From 6aaddbbe50a752d1f387332008e9a3d57de6f457 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Tue, 29 Jul 2014 20:29:41 -0400 Subject: [PATCH] VRFS-1478 allow multiple session invites to same user --- db/manifest | 3 +- db/up/drop_session_invite_constraint.sql | 1 + web/app/assets/javascripts/inviteMusicians.js | 39 +++++++++---------- .../views/clients/_inviteMusicians.html.erb | 2 +- 4 files changed, 23 insertions(+), 22 deletions(-) create mode 100644 db/up/drop_session_invite_constraint.sql diff --git a/db/manifest b/db/manifest index e23c3243d..0d099803a 100755 --- a/db/manifest +++ b/db/manifest @@ -197,4 +197,5 @@ update_sms_index.sql connection_allow_null_locidispid.sql track_user_in_scores.sql median_aggregate.sql -current_scores_use_median.sql \ No newline at end of file +current_scores_use_median.sql +drop_session_invite_constraint.sql \ No newline at end of file diff --git a/db/up/drop_session_invite_constraint.sql b/db/up/drop_session_invite_constraint.sql new file mode 100644 index 000000000..a49ea7878 --- /dev/null +++ b/db/up/drop_session_invite_constraint.sql @@ -0,0 +1 @@ +ALTER TABLE invitations DROP CONSTRAINT invitations_uniqkey; \ No newline at end of file diff --git a/web/app/assets/javascripts/inviteMusicians.js b/web/app/assets/javascripts/inviteMusicians.js index 60d60b067..09950376c 100644 --- a/web/app/assets/javascripts/inviteMusicians.js +++ b/web/app/assets/javascripts/inviteMusicians.js @@ -45,10 +45,12 @@ if (0 == $(elemSelector + ' .friendbox').length) { _appendFriendSelector($(elemSelector)); - $('#btn-save-invites').click(function() { - createInvitations(updateSessionID); - }); } + + $('#btn-save-invites').click(function() { + createInvitations(updateSessionID); + }); + $.ajax({ url: "/api/invitations", data: { session_id: sessionId, sender: context.JK.currentUserId } @@ -126,8 +128,7 @@ var imgStyle = _inviteExists(data) ? 'display:none' : ''; var invitationHtml = context.JK.fillTemplate(template, {userId: data, - userName: value, - imageStyle: imgStyle}); + userName: value}); $('.selected-friends').append(invitationHtml); $(friendInput).select(); invitedFriends.push(data); @@ -162,22 +163,20 @@ function createInvitations(sessionId, onComplete) { var callCount = 0; - var totalInvitations = invitedFriends.length - existingInvites.length; + var totalInvitations = invitedFriends.length; invitedFriends.map(function(invite_id) { - if (!_inviteExists(invite_id)) { - callCount++; - var invite = { - music_session: sessionId, - receiver: invite_id - }; - $.ajax({ - type: "POST", - url: "/api/invitations", - data: invite - }).done(function(response) { - callCount--; - }).fail(app.ajaxError); - } + callCount++; + var invite = { + music_session: sessionId, + receiver: invite_id + }; + $.ajax({ + type: "POST", + url: "/api/invitations", + data: invite + }).done(function(response) { + callCount--; + }).fail(app.ajaxError); }); // TODO - this is the second time I've used this pattern. // refactor to make a common utility for this. diff --git a/web/app/views/clients/_inviteMusicians.html.erb b/web/app/views/clients/_inviteMusicians.html.erb index a5b7df44a..24bdba3bf 100644 --- a/web/app/views/clients/_inviteMusicians.html.erb +++ b/web/app/views/clients/_inviteMusicians.html.erb @@ -31,6 +31,6 @@