From 4d87f0276bfe0eed7e9d3cca5d552c948e48e1c5 Mon Sep 17 00:00:00 2001
From: HSam
Date: Thu, 3 Mar 2016 21:09:44 -0600
Subject: [PATCH 1/4] In the process of adding the delete button to the
invitation panel. Apparently, the delete method doesn't work with the
invitation items, so I might need to add some extra logic.
---
public/src/admin/manage/registration.js | 18 ++++++++++++++++++
src/socket.io/admin/user.js | 6 +++++-
src/user/invite.js | 1 +
src/views/admin/manage/registration.tpl | 13 +++++++++----
4 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js
index 0592fc02a9..981f1e812c 100644
--- a/public/src/admin/manage/registration.js
+++ b/public/src/admin/manage/registration.js
@@ -22,6 +22,24 @@ define('admin/manage/registration', function() {
});
return false;
});
+
+ $('.invites-list').on('click', '[data-action]', function(ev) {
+ var $this = this;
+ var parent = $(this).parents('[data-invitation-mail]');
+ var email = parent.attr('data-invitation-mail');
+ var action = $(this).attr('data-action');
+ var method = 'admin.user.deleteInvitation';
+
+ if (action === 'delete') {
+ socket.emit(method, {email: email}, function(err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+ parent.remove();
+ });
+ }
+ return false;
+ });
};
return Registration;
diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js
index a241affb90..4597314ee1 100644
--- a/src/socket.io/admin/user.js
+++ b/src/socket.io/admin/user.js
@@ -212,6 +212,10 @@ User.search = function(socket, data, callback) {
});
};
+User.deleteInvitation = function(socket, data, callback) {
+ user.deleteInvitation(data.email, callback);
+};
+
User.acceptRegistration = function(socket, data, callback) {
user.acceptRegistration(data.username, callback);
};
@@ -221,4 +225,4 @@ User.rejectRegistration = function(socket, data, callback) {
};
-module.exports = User;
\ No newline at end of file
+module.exports = User;
diff --git a/src/user/invite.js b/src/user/invite.js
index 638432e810..99194100e3 100644
--- a/src/user/invite.js
+++ b/src/user/invite.js
@@ -122,6 +122,7 @@ module.exports = function(User) {
User.deleteInvitation = function(email, callback) {
callback = callback || function() {};
+ console.log('invitation:email:' + email);
db.delete('invitation:email:' + email, callback);
};
diff --git a/src/views/admin/manage/registration.tpl b/src/views/admin/manage/registration.tpl
index 278ba279b1..a3a8e2f905 100644
--- a/src/views/admin/manage/registration.tpl
+++ b/src/views/admin/manage/registration.tpl
@@ -66,18 +66,23 @@
The username will be displayed to the right of the emails for users who have redeemed their invitations.
-
+
Inviter Username |
Invitee Email |
Invitee Username (if registered) |
-
-
+
+
+
{invites.username} |
{invites.invitations.email} |
- {invites.invitations.username} |
+ {invites.invitations.username}
+
+
+
+ |
From 48db16fba75cdb999177df0b316c6644c10b0aaa Mon Sep 17 00:00:00 2001
From: HSam
Date: Sun, 6 Mar 2016 11:59:31 -0600
Subject: [PATCH 2/4] Finished adding a new delete to also remove the reference
from the invites list on the APM.
---
public/src/admin/manage/registration.js | 5 +++--
src/controllers/authentication.js | 2 +-
src/socket.io/admin/user.js | 2 +-
src/user.js | 2 --
src/user/invite.js | 27 +++++++++++++++++++++++--
src/views/admin/manage/registration.tpl | 4 ++--
6 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js
index 981f1e812c..6de647b467 100644
--- a/public/src/admin/manage/registration.js
+++ b/public/src/admin/manage/registration.js
@@ -25,13 +25,14 @@ define('admin/manage/registration', function() {
$('.invites-list').on('click', '[data-action]', function(ev) {
var $this = this;
- var parent = $(this).parents('[data-invitation-mail]');
+ var parent = $(this).parents('[data-invitation-mail][data-invited-by]');
var email = parent.attr('data-invitation-mail');
+ var invitedBy = parent.attr('data-invited-by');
var action = $(this).attr('data-action');
var method = 'admin.user.deleteInvitation';
if (action === 'delete') {
- socket.emit(method, {email: email}, function(err) {
+ socket.emit(method, {email: email, invitedBy: invitedBy}, function(err) {
if (err) {
return app.alertError(err.message);
}
diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js
index fa6cc6fd8c..efa30d36ba 100644
--- a/src/controllers/authentication.js
+++ b/src/controllers/authentication.js
@@ -93,7 +93,7 @@ function registerAndLoginUser(req, res, userData, callback) {
}
},
function(next) {
- user.deleteInvitation(userData.email);
+ user.deleteInvitationKey(userData.email);
plugins.fireHook('filter:register.complete', {uid: uid, referrer: req.body.referrer || nconf.get('relative_path') + '/'}, next);
}
], callback);
diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js
index 4597314ee1..c46e01a99c 100644
--- a/src/socket.io/admin/user.js
+++ b/src/socket.io/admin/user.js
@@ -213,7 +213,7 @@ User.search = function(socket, data, callback) {
};
User.deleteInvitation = function(socket, data, callback) {
- user.deleteInvitation(data.email, callback);
+ user.deleteInvitation(data.invitedBy, data.email, callback);
};
User.acceptRegistration = function(socket, data, callback) {
diff --git a/src/user.js b/src/user.js
index e9546b8c6e..582686f774 100644
--- a/src/user.js
+++ b/src/user.js
@@ -39,7 +39,6 @@ var async = require('async'),
if (err || userData.status === 'offline' || now - parseInt(userData.lastonline, 10) < 300000) {
return callback(err);
}
-
User.setUserField(uid, 'lastonline', now, callback);
});
};
@@ -257,4 +256,3 @@ var async = require('async'),
}(exports));
-
diff --git a/src/user/invite.js b/src/user/invite.js
index 99194100e3..34521550a5 100644
--- a/src/user/invite.js
+++ b/src/user/invite.js
@@ -120,9 +120,32 @@ module.exports = function(User) {
], callback);
};
- User.deleteInvitation = function(email, callback) {
+ User.deleteInvitation = function(invitedBy, email, callback) {
+ callback = callback || function() {};
+ async.waterfall([
+ function getInvitedByUid(next) {
+ User.getUidByUsername(invitedBy, next);
+ },
+ function deleteRegistries(invitedByUid, next) {
+ if (!invitedByUid) {
+ return next(new Error('[[error:invalid-username]]'));
+ }
+ async.parallel([
+ function deleteFromReferenceList(next) {
+ db.setRemove('invitation:uid:' + invitedByUid, email, next);
+ },
+ function deleteInviteKey(next) {
+ db.delete('invitation:email:' + email, callback);
+ }
+ ], function(err) {
+ next(err)
+ });
+ }
+ ], callback);
+ };
+
+ User.deleteInvitationKey = function(email, callback) {
callback = callback || function() {};
- console.log('invitation:email:' + email);
db.delete('invitation:email:' + email, callback);
};
diff --git a/src/views/admin/manage/registration.tpl b/src/views/admin/manage/registration.tpl
index a3a8e2f905..7abc4f34b9 100644
--- a/src/views/admin/manage/registration.tpl
+++ b/src/views/admin/manage/registration.tpl
@@ -74,8 +74,8 @@
-
-
+
{invites.username} |
{invites.invitations.email} |
{invites.invitations.username}
From a62e31dc7058d85bf343ca71d661f7956de2409f Mon Sep 17 00:00:00 2001
From: HSam
Date: Sun, 6 Mar 2016 14:12:24 -0600
Subject: [PATCH 3/4] Finished the invite removal button changes.
---
public/src/admin/manage/registration.js | 21 +++++++++++++++++----
src/views/admin/manage/registration.tpl | 2 +-
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js
index 6de647b467..451c01f716 100644
--- a/public/src/admin/manage/registration.js
+++ b/public/src/admin/manage/registration.js
@@ -31,12 +31,25 @@ define('admin/manage/registration', function() {
var action = $(this).attr('data-action');
var method = 'admin.user.deleteInvitation';
+ var removeRow = function () {
+ var nextRow = parent.next(),
+ thisRowinvitedBy = parent.find('.invited-by'),
+ nextRowInvitedBy = nextRow.find('.invited-by');
+ if (nextRowInvitedBy.html() !== undefined && nextRowInvitedBy.html().length < 2) {
+ nextRowInvitedBy.html(thisRowinvitedBy.html());
+ }
+ parent.remove();
+ };
if (action === 'delete') {
- socket.emit(method, {email: email, invitedBy: invitedBy}, function(err) {
- if (err) {
- return app.alertError(err.message);
+ bootbox.confirm('Are you sure you wish to delete this invitation?', function(confirm) {
+ if (confirm) {
+ socket.emit(method, {email: email, invitedBy: invitedBy}, function(err) {
+ if (err) {
+ return app.alertError(err.message);
+ }
+ removeRow();
+ });
}
- parent.remove();
});
}
return false;
diff --git a/src/views/admin/manage/registration.tpl b/src/views/admin/manage/registration.tpl
index 7abc4f34b9..c3fd4400c2 100644
--- a/src/views/admin/manage/registration.tpl
+++ b/src/views/admin/manage/registration.tpl
@@ -76,7 +76,7 @@
- {invites.username} |
+ {invites.username} |
{invites.invitations.email} |
{invites.invitations.username}
From 37d53db6930fe8b32e282888073d7361f1515027 Mon Sep 17 00:00:00 2001
From: samhax
Date: Tue, 8 Mar 2016 10:34:43 -0600
Subject: [PATCH 4/4] Removed unused variable from click events.
---
public/src/admin/manage/registration.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js
index 451c01f716..55578901e8 100644
--- a/public/src/admin/manage/registration.js
+++ b/public/src/admin/manage/registration.js
@@ -8,7 +8,6 @@ define('admin/manage/registration', function() {
Registration.init = function() {
$('.users-list').on('click', '[data-action]', function(ev) {
- var $this = this;
var parent = $(this).parents('[data-username]');
var action = $(this).attr('data-action');
var username = parent.attr('data-username');
@@ -24,7 +23,6 @@ define('admin/manage/registration', function() {
});
$('.invites-list').on('click', '[data-action]', function(ev) {
- var $this = this;
var parent = $(this).parents('[data-invitation-mail][data-invited-by]');
var email = parent.attr('data-invitation-mail');
var invitedBy = parent.attr('data-invited-by');
| |