From 91638c435076736ea1d6ac7f532a35523bd79f89 Mon Sep 17 00:00:00 2001 From: nanalelfe Date: Mon, 25 Jul 2016 04:55:59 -0400 Subject: Added popup window to view messages in profile page --- routes/user.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'routes/user.js') diff --git a/routes/user.js b/routes/user.js index f9487ea..9f200eb 100644 --- a/routes/user.js +++ b/routes/user.js @@ -61,6 +61,12 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { dbFile.checkMailbox(req.user.user_name, function(success, error, data, message){ if (success) { inbox = data; + // needed to display in layout + var i = 0; + inbox.forEach(function(element) { + element.class = i; + i ++; + }); resolve(1); } else if (error) { // For testing purposes, remove later: @@ -82,7 +88,7 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { }); } getComments().then(getMail).then(function (data) { - console.log('got here'); + console.log('got here fere'); res.render('user_profile_alt', {comments : comments, inbox: inbox, csrfToken: req.csrfToken()}); }); -- cgit v1.2.3 From bca90452150c6a128f88765d04481a0235059af3 Mon Sep 17 00:00:00 2001 From: nanalelfe Date: Mon, 25 Jul 2016 07:02:14 -0400 Subject: need pull" --- routes/user.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'routes/user.js') diff --git a/routes/user.js b/routes/user.js index 9f200eb..b0b2d47 100644 --- a/routes/user.js +++ b/routes/user.js @@ -6,6 +6,8 @@ var passport = require('passport'); var dbFile = require("../node_simple.js"); var Promise = require('promise'); +var $ = require('jquery')(require("jsdom").jsdom().parentWindow); + var csrfProtection = csrf(); router.use(csrfProtection); // router is protected @@ -18,6 +20,7 @@ router.get('/logout', loggedIn, function (req, res, next) { /* Render/GET user_profile page */ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { + req.session.messages = null; var comments = []; @@ -242,16 +245,21 @@ router.post('/user_profile/send_message', loggedIn, function(req, res, next) { dbFile.sendMail(mail_data, function(success, error, message) { if ((!success && !error) || (error)) { req.session.messages = {error : message}; - res.redirect('/user/user_profile'); + res.redirect('/user/user_profile/'); + } else { req.session.messages = {success: message}; - res.redirect('/user/user_profile'); + res.redirect('/user/user_profile/'); + $('#profile-send-message').show(); + + } }); }); + // Authentication check in code router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){ var examID = req.params.examID; -- cgit v1.2.3 From 203071f005057ebb186ddd3e0ada8629420ed409 Mon Sep 17 00:00:00 2001 From: nanalelfe Date: Mon, 25 Jul 2016 21:49:05 -0400 Subject: Added add_user: extra check if username is taken by an admin (and nice versa). Fixed Answered, Inbox and comments fields in user_profile --- routes/user.js | 81 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 25 deletions(-) (limited to 'routes/user.js') diff --git a/routes/user.js b/routes/user.js index e3340e0..47988df 100644 --- a/routes/user.js +++ b/routes/user.js @@ -25,6 +25,7 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { var comments = []; var inbox = []; + var error = null; function getComments() { return new Promise(function(resolve, reject) { dbFile.retrieve_userComments_history(req.user.user_name, function (success, object) { @@ -47,9 +48,11 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { resolve(1); } else if (object.length){ + req.user.comments = object.length; comments = object; resolve(1); } else { + req.user.comments = object.length; resolve(1); } @@ -62,6 +65,7 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { dbFile.checkMailbox(req.user.user_name, function(success, error, data, message){ if (success) { inbox = data; + req.user.messages = inbox.length; // needed to display in layout var i = 0; inbox.forEach(function(element) { @@ -88,9 +92,28 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { }); }); } - getComments().then(getMail).then(function (data) { + + function solutionsCount() { + return new Promise(function (resolve, reject) { + dbFile.retrieve_userSolutions_history(req.user.username, function (bool, results) { + if (!bool) { + error = 'Error: could not retrieve Answered count'; + req.user.answered = 0; + resolve(1); + } + else { + req.user.answered = results.length; + console.log("RESULTS: "); + console.log(results); + resolve(1); + } + }); + }); + } + + getComments().then(getMail).then(solutionsCount).then(function (data) { console.log('got here fere'); - res.render('user_profile_alt', {comments : comments, inbox: inbox, csrfToken: req.csrfToken()}); + res.render('user_profile_alt', {comments : comments, inbox: inbox, error: error, csrfToken: req.csrfToken()}); }); //res.render('user_profile_alt', {comments : comments, inbox: inbox, csrfToken: req.csrfToken()}); @@ -171,35 +194,43 @@ router.post('/signin', loggedOut, function(req, res, next) { }); router.post('/user_profile/send_message', loggedIn, function(req, res, next) { - var date = new Date(); - var current_date = date.toString().slice(0, 24); - var subject = req.body.subject; - if (!subject) { - subject = '(none)'; + if (req.user.user_name === req.body.receiver_username) { + req.session.messages = {error : 'You cannot send a message to yourself.'}; + res.redirect('/user/user_profile/'); } - var mail_data = { - sender: req.user.user_name, - receiver: req.body.receiver_username, - subject: subject, - message: req.body.message, - date: current_date - }; - //console.log(mail_data); - dbFile.sendMail(mail_data, function(success, error, message) { - if ((!success && !error) || (error)) { - req.session.messages = {error : message}; - res.redirect('/user/user_profile/'); + else { + var date = new Date(); + var current_date = date.toString().slice(0, 24); + var subject = req.body.subject; + if (!subject) { + subject = '(none)'; + } + var mail_data = { + sender: req.user.user_name, + receiver: req.body.receiver_username, + subject: subject, + message: req.body.message, + date: current_date + }; + //console.log(mail_data); + dbFile.sendMail(mail_data, function(success, error, message) { + if ((!success && !error) || (error)) { + req.session.messages = {error : message}; + res.redirect('/user/user_profile/'); - } else { - req.session.messages = {success: message}; - res.redirect('/user/user_profile/'); - $('#profile-send-message').show(); + } else { + req.session.messages = {success: message}; + res.redirect('/user/user_profile/'); + //$('#profile-send-message').show(); - } - }); + + } + }); + + } }); -- cgit v1.2.3 From 5e73fe37c32faf821d3d16f0251007e366cb090b Mon Sep 17 00:00:00 2001 From: nanalelfe Date: Mon, 25 Jul 2016 22:04:30 -0400 Subject: Removed jsdom - causing issues on windows --- routes/user.js | 2 -- 1 file changed, 2 deletions(-) (limited to 'routes/user.js') diff --git a/routes/user.js b/routes/user.js index 47988df..39ffbf1 100644 --- a/routes/user.js +++ b/routes/user.js @@ -6,8 +6,6 @@ var passport = require('passport'); var dbFile = require("../node_simple.js"); var Promise = require('promise'); -var $ = require('jquery')(require("jsdom").jsdom().parentWindow); - var csrfProtection = csrf(); router.use(csrfProtection); // router is protected -- cgit v1.2.3