From c7bec051d61d66925d68be8661aaf52b011dedac Mon Sep 17 00:00:00 2001 From: HumairAK Date: Mon, 25 Jul 2016 05:32:34 -0400 Subject: added admin confirmation and alert messages for submissions --- routes/admin.js | 72 ++++++++++++++-------------- routes/user.js | 121 +++++++++++++++++++++++------------------------ views/admin.hbs | 12 +++++ views/user_solutions.hbs | 15 ++++-- 4 files changed, 119 insertions(+), 101 deletions(-) diff --git a/routes/admin.js b/routes/admin.js index 027722d..24c5910 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -9,7 +9,9 @@ var csrfProtection = csrf(); router.use(csrfProtection); // router is protected router.get('/', isAdmin, function(req,res){ + console.log(req.session.messages); res.render('admin', {csrfToken: req.csrfToken()}); + req.session.messages = null; }); /* Adds exam from front-end */ @@ -36,15 +38,16 @@ router.post('/add/exam', function(req,res){ upload_date, // String uploaded_by]; // String - dbFile.add_exam(fields, questions_list, function(examAdded, statusMessage){ + dbFile.add_exam(fields, questions_list, function(examAdded, statusMsg){ if(examAdded){ - console.log("Success!"); + req.session.messages = {success : statusMsg}; }else{ - console.log("Failed!"); + req.session.messages = {error : statusMsg}; } - console.log(statusMessage); + console.log(statusMsg); + res.redirect('/admin'); }); - res.redirect('/admin'); + }); /* Adds course from front-end */ @@ -52,15 +55,16 @@ router.post('/add/course', function(req,res){ var course_code = req.body.course_code, title = req.body.title; - dbFile.add_course(course_code, title, function(courseAdded, statusMessage){ + dbFile.add_course(course_code, title, function(courseAdded, statusMsg){ if(courseAdded){ - console.log("Success!"); + req.session.messages = {success : statusMsg}; }else{ - console.log("Failure!"); + req.session.messages = {error : statusMsg}; } - console.log("Status message: " + statusMessage) + console.log(statusMsg); + res.redirect('/admin'); }); - res.redirect('/admin'); + }); /* Add a new admin, redirect to admin panel */ @@ -72,18 +76,16 @@ router.post('/add/admin', function(req,res){ password: passport_file.encryptPassword(req.body.password) }; - dbFile.addAdmin(admin_data, function(success, error, message){ + dbFile.addAdmin(admin_data, function(success, error, statusMsg){ if(success){ - console.log("Success!"); - }else if(error){ - console.log("Error!"); + req.session.messages = {success : statusMsg}; }else{ - console.log("Admin already exists."); + req.session.messages = {error : statusMsg}; } - console.log(message); + console.log(statusMsg); + res.redirect('/admin'); }); - res.redirect('/admin'); }); /* Remove an exam route, redirect to admin panel */ @@ -95,48 +97,46 @@ router.post('/remove/exam', function(req,res){ campus = req.body.campus; var fields = [course_code, year, term, type]; - console.log(fields); - dbFile.remove_exam(fields, - function(examRemoved, statusMessage){ + + dbFile.remove_exam(fields, function(examRemoved, statusMsg){ if(examRemoved){ - console.log("Success."); + req.session.messages = {success : statusMsg}; } else { - console.log("Failed."); + req.session.messages = {error : statusMsg}; } - console.log(statusMessage); + console.log(statusMsg); + res.redirect('/admin'); }); - - res.redirect('/admin'); }); /* Remove a course route, redirect to admin panel */ router.post('/remove/course', function(req,res){ var course_code = req.body.course_code; - dbFile.remove_course(course_code, function(courseRemoved, statusMessage){ + dbFile.remove_course(course_code, function(courseRemoved, statusMsg){ if(courseRemoved){ - console.log("Success."); + req.session.messages = {success : statusMsg}; } else { - console.log("Failed."); + req.session.messages = {error : statusMsg}; } - console.log(statusMessage); + console.log(statusMsg); + res.redirect('/admin'); }); - - res.redirect('/admin'); }); /* Remove a user route, redirect to admin panel */ router.post('/remove/user', function(req,res){ var username = req.body.username; - dbFile.remove_user(username, function(userRemoved, statusMessage){ + dbFile.remove_user(username, function(userRemoved, statusMsg){ if(userRemoved){ - console.log("Success."); + req.session.messages = {success : statusMsg}; } else { - console.log("Failed."); + req.session.messages = {error : statusMsg}; } - console.log(statusMessage); + console.log(statusMsg); + res.redirect('/admin'); }); - res.redirect('/admin'); + }); diff --git a/routes/user.js b/routes/user.js index 68fee21..dcf4c19 100644 --- a/routes/user.js +++ b/routes/user.js @@ -86,62 +86,6 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) { //res.render('user_profile_alt', {comments : comments, inbox: inbox, csrfToken: req.csrfToken()}); }); -/* Adds a solution into the database, redirect to exam/question/solution page */ -router.post('/submit_solution/:examID/:qID', function(req,res){ - // Get required fields from body - // Populate this data - /* var Data = { - exam_id: fields[0], - q_id: fields[1], - text: fields[2], - votes: 0, - comments: [], - author: fields[3] - };*/ - - var examID = req.params.examID; - var qID = req.params.qID; - - var text = req.body.solution, - votes = 0, - comments = [], - author = req.user.user_name; - - var fields = [examID, qID, text, author]; - console.log(fields); - // Add to database - dbFile.add_solution(fields, function(addedSolution, statusMsg){ - if(addedSolution){ - console.log("Success!"); - }else{ - console.log("Failed to add solution!"); - } - console.log(statusMsg); - - //Redirect to solutions page again - res.redirect('/solutions/' + examID + '/' + qID); - - }); - -}); - -/* Routed here from Solutions page (add solution button) -* Renders add_solution page for response.*/ -router.get('/add_solution/:examID/:qID', function (req, res, next) { - var examID = req.params.examID; - var qID = req.params.qID; - - // Must be a logged in user to access - if(req.isAuthenticated()){ - res.render('add_solutions', {csrfToken: req.csrfToken(), examID: examID, qID: qID}); - } else { - var message = "Must be logged in to add a solution!"; - req.session.messages = {error : message}; - res.redirect('/solutions/' + examID + '/' + qID); - } - -}); - router.get('/signup', loggedOut, function(req, res, next) { res.render('signup', {csrfToken: req.csrfToken(), success: req.session.success, errors: req.session.errors}); req.session.errors = null; @@ -245,6 +189,60 @@ router.post('/user_profile/send_message', loggedIn, function(req, res, next) { }); +/* Adds a solution into the database, redirect to exam/question/solution page */ +router.post('/submit_solution/:examID/:qID', function(req,res){ + // Get required fields from body + // Populate this data + /* var Data = { + exam_id: fields[0], + q_id: fields[1], + text: fields[2], + votes: 0, + comments: [], + author: fields[3] + };*/ + + var examID = req.params.examID; + var qID = req.params.qID; + + var text = req.body.solution, + votes = 0, + comments = [], + author = req.user.user_name; + + var fields = [examID, qID, text, author]; + console.log(fields); + // Add to database + dbFile.add_solution(fields, function(addedSolution, statusMsg){ + if(addedSolution){ + req.session.messages = {success : statusMsg}; + }else{ + req.session.messages = {error : statusMsg}; + } + //Redirect to solutions page again + res.redirect('/solutions/' + examID + '/' + qID); + + }); + +}); + +/* Routed here from Solutions page (add solution button) + * Renders add_solution page for response.*/ +router.get('/add_solution/:examID/:qID', function (req, res, next) { + var examID = req.params.examID; + var qID = req.params.qID; + + // Must be a logged in user to access + if(req.isAuthenticated()){ + res.render('add_solutions', {csrfToken: req.csrfToken(), examID: examID, qID: qID}); + } else { + var message = "Must be logged in to add a solution!"; + req.session.messages = {error : message}; + res.redirect('/solutions/' + examID + '/' + qID); + } + +}); + // Authentication check in code router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){ var examID = req.params.examID; @@ -255,18 +253,19 @@ router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){ // Must be a logged in user to access var fields = [comment, username]; if(req.isAuthenticated()){ - dbFile.add_comment(solutionID, fields, function(commentAdded, statusMessage){ + dbFile.add_comment(solutionID, fields, function(commentAdded, statusMsg){ if(commentAdded){ - console.log("Success!"); + req.session.messages = {success : statusMsg}; } else{ - console.log("Failed to add comment!"); + req.session.messages = {error : statusMsg}; } - console.log(statusMessage); res.redirect('/solutions/' + examID + '/' + qID); }); } else { //User not logged in - res.redirect('/'); // Change this to go back to the solutions page with "need to be logged in msg" + var message = "Must be logged in to comment!"; + req.session.messages = {error : message}; + res.redirect('/solutions/' + examID + '/' + qID); } }); diff --git a/views/admin.hbs b/views/admin.hbs index b821dc3..12c2ba9 100644 --- a/views/admin.hbs +++ b/views/admin.hbs @@ -3,6 +3,18 @@
+ {{# if messages.success }} +
+ +

{{ messages.success }}

+
+ {{ else }} + {{# if messages.error }} +
+

{{ messages.error }}

+
+ {{/if}} + {{/if}}