diff options
| author | HumairAK <humair88@hotmail.com> | 2016-07-25 03:16:38 +0000 |
|---|---|---|
| committer | HumairAK <humair88@hotmail.com> | 2016-07-25 03:16:38 +0000 |
| commit | fc3cc6aee7ce7a28539d332902c0f9923d298c71 (patch) | |
| tree | d7ed316afc867a33c93e7f6d8063df4c3fd17109 | |
| parent | 482401fa5777b910b099f96b0abdadf1d4cfa54c (diff) | |
added all admin panel functionality
| -rw-r--r-- | node_simple.js | 6 | ||||
| -rw-r--r-- | routes/admin.js | 32 | ||||
| -rw-r--r-- | routes/index.js | 15 | ||||
| -rw-r--r-- | routes/user.js | 6 | ||||
| -rw-r--r-- | views/admin.hbs | 24 |
5 files changed, 59 insertions, 24 deletions
diff --git a/node_simple.js b/node_simple.js index 3c3abd7..b86542b 100644 --- a/node_simple.js +++ b/node_simple.js @@ -730,9 +730,9 @@ exports.add_comment = function (sol_id, fields, serverCallback) { } else { users.updateOne( { user_name: fields[1] }, { $inc: { comments: 1} }, function (err) { - if (err) callback(false, "Error: Some error occured while updating user info"); + if (err) serverCallback(false, "Error: Some error occured while updating user info"); else { - callback(true, "Success: comment added successfully"); + serverCallback(true, "Success: comment added successfully"); } }); @@ -1316,14 +1316,12 @@ exports.sendMail = function (mail_data, callback) { }); } - /* * * callback(success, error, data, message) * Returns the user's inbox (array of message objects) * */ - exports.checkMailbox = function (username, callback) { mongoFactory.getConnection(uri).then(function(db) { diff --git a/routes/admin.js b/routes/admin.js index 7e5c7fe..027722d 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -86,6 +86,7 @@ router.post('/add/admin', function(req,res){ res.redirect('/admin'); }); +/* Remove an exam route, redirect to admin panel */ router.post('/remove/exam', function(req,res){ var course_code = req.body.course_code, year = req.body.year, @@ -108,6 +109,37 @@ router.post('/remove/exam', function(req,res){ 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){ + if(courseRemoved){ + console.log("Success."); + } else { + console.log("Failed."); + } + console.log(statusMessage); + }); + + 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){ + if(userRemoved){ + console.log("Success."); + } else { + console.log("Failed."); + } + console.log(statusMessage); + }); + + res.redirect('/admin'); +}); + + /* Takes an input string delimited by commas, will split by comma and trim white * spaces. Consider callback. */ diff --git a/routes/index.js b/routes/index.js index 23cd7c3..698305b 100644 --- a/routes/index.js +++ b/routes/index.js @@ -29,12 +29,6 @@ router.get('/user_solutions', function(req, res, next) { res.render('user_solutions'); }); -/* Render/GET questions page -router.get('/questions', function(req, res, next) { - res.render('questions'); -}); -*/ - //EXAMPLE EXPECTED DATA GIVEN BELOW: /*[ {courseCode: 'CSC240', year: 2016, @@ -137,13 +131,6 @@ router.get('/questions/:exam_id', function (req,res) { res.render('questions', {query: qList, examInfo: examInfo}); }); }); - - /*dbFile.get_exam_info_by_ID(examID, function (questions) { - console.log(questions); - res.render('questions', {query: questions}); - - });*/ - }); /*GET the solutions for a given exam given the question number and the exam_id @@ -182,11 +169,9 @@ router.get('/questions/:exam_id', function (req,res) { */ router.get('/solutions/:exam_id/:q_num', function (req, res) { - console.log("index.js::Getting solutions"); var examID = req.params.exam_id; var qID = req.params.q_num; dbFile.get_all_solutions(examID, qID, function (solutions) { - console.log("index.js::GOT solutions"); solutions.forEach(function(soln){ soln.commentCount = soln.comments.length; }); diff --git a/routes/user.js b/routes/user.js index f5dab0c..03dc286 100644 --- a/routes/user.js +++ b/routes/user.js @@ -207,7 +207,7 @@ router.post('/signin', loggedOut, function(req, res, next) { }); -router.post('/user_profile/send_message', loggedIn, 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 mail_data = { @@ -232,6 +232,7 @@ router.post('/user_profile/send_message', loggedIn, function(req, res, next) { res.redirect('/user/user_profile'); }); +// Authentication check in code router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){ var examID = req.params.examID; var qID = req.params.qID; @@ -239,7 +240,6 @@ router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){ var username = req.user.user_name; var solutionID = req.params.solID; // Must be a logged in user to access - console.log(examID + "," + qID + "," + comment + "," + username + "," + solutionID); var fields = [comment, username]; if(req.isAuthenticated()){ dbFile.add_comment(solutionID, fields, function(commentAdded, statusMessage){ @@ -257,7 +257,7 @@ router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){ } }); -router.post('/solution/vote/:examID/:qID/:solID', function(req, res, next){ +router.post('/solution/vote/:examID/:qID/:solID', loggedIn, function(req, res, next){ var vote = req.body.vote; var examID = req.params.examID; var qID = req.params.qID; diff --git a/views/admin.hbs b/views/admin.hbs index a260559..b821dc3 100644 --- a/views/admin.hbs +++ b/views/admin.hbs @@ -213,13 +213,33 @@ <!--- Remove Course ---> <div class="row cpnl-container" id="cpnl-removeCourse"> <h4>Remove Course</h4> - Pending. Need required database functionality. + <form action="/admin/remove/course" method="post"> + <div class="form-group"> + Course Code: <input type="text" + class="form-control" + placeholder="e.g. CSC240" + name="course_code"> + </div> + + <input type="hidden" name="_csrf" value="{{ csrfToken }}"> + <button type="submit" class="btn btn-primary">Submit</button> + </form> </div> <!--- Remove User ---> <div class="row cpnl-container" id="cpnl-removeUser"> <h4>Remove User</h4> - Pending. Need required database functionality. + <form action="/admin/remove/user" method="post"> + <div class="form-group"> + Username: <input type="text" + class="form-control" + placeholder="Jsmith85" + name="username"> + </div> + + <input type="hidden" name="_csrf" value="{{ csrfToken }}"> + <button type="submit" class="btn btn-primary">Submit</button> + </form> </div> |
