aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--routes/admin.js72
-rw-r--r--routes/user.js121
-rw-r--r--views/admin.hbs12
-rw-r--r--views/user_solutions.hbs15
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 @@
<div class="row">
<!-- Admin control Panel --->
<div class="col-xs-12 col-sm-12 col-md-8 col-md-offset-2 col-xs-offset-0 col-sm-offset-0 toppad cpnl-details">
+ {{# if messages.success }}
+ <section class="alert alert-success custom-Alert">
+ <!-- Change those to banners later -->
+ <h4>{{ messages.success }}</h4>
+ </section>
+ {{ else }}
+ {{# if messages.error }}
+ <section class="alert alert-danger custom-Alert">
+ <h4>{{ messages.error }}</h4>
+ </section>
+ {{/if}}
+ {{/if}}
<!-- Admin Control Panel Menu -->
<nav class="navbar navbar-custom">
diff --git a/views/user_solutions.hbs b/views/user_solutions.hbs
index db17aa6..fac0301 100644
--- a/views/user_solutions.hbs
+++ b/views/user_solutions.hbs
@@ -1,13 +1,20 @@
<main id="solutions-main">
<div class='search solutions-container container'>
<div>
-
- {{# if messages.error }}
- <section class="alert alert-danger custom-Alert">
- <h5>{{ messages.error }}</h5>
+ {{# if messages.success }}
+ <section class="alert alert-success custom-Alert">
+ <!-- Change those to banners later -->
+ <h4>{{ messages.success }}</h4>
</section>
+ {{ else }}
+ {{# if messages.error }}
+ <section class="alert alert-danger custom-Alert">
+ <h4>{{ messages.error }}</h4>
+ </section>
+ {{/if}}
{{/if}}
+
<!-- Add Solution button and path -->
<div class="row top-sol">
<a href="/user/add_solution/{{examID}}/{{qID}}">