aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHumairAK <humair88@hotmail.com>2016-07-23 23:37:39 +0000
committerHumairAK <humair88@hotmail.com>2016-07-23 23:37:39 +0000
commit17d743822746b047b94cd24e5407f1342ba01a7e (patch)
treeb0369afe69942421e6493728be3d0e001fac090b
parent077430ac66259bde495fb98080ce3a3d0a6e4783 (diff)
Added add admin functionality for front end
-rw-r--r--assets/js/script.js7
-rw-r--r--routes/admin.js26
-rw-r--r--views/admin.hbs34
3 files changed, 64 insertions, 3 deletions
diff --git a/assets/js/script.js b/assets/js/script.js
index 59fb358..f08ca7a 100644
--- a/assets/js/script.js
+++ b/assets/js/script.js
@@ -53,9 +53,11 @@ function main(){
var adminOptions = [
$("#cpnl-addExam"),
$("#cpnl-addCourse"),
+ $("#cpnl-addAdmin"),
$("#cpnl-removeExam"),
$("#cpnl-removeCourse"),
- $("#cpnl-removeUser")];
+ $("#cpnl-removeUser")
+ ];
function hideCpnlPages(){
adminOptions.forEach(function(item){
@@ -81,6 +83,9 @@ function main(){
case "Add Course":
$("#cpnl-addCourse").show();
break;
+ case "Add Admin":
+ $("#cpnl-addAdmin").show();
+ break;
case "Remove Exam":
$("#cpnl-removeExam").show();
break;
diff --git a/routes/admin.js b/routes/admin.js
index bdd4f9b..e038fa3 100644
--- a/routes/admin.js
+++ b/routes/admin.js
@@ -3,6 +3,7 @@ var express = require('express');
var router = express.Router();
var csrf = require('csurf'); // Cross-Site Request Forgery prevention
var passport = require('passport');
+var passport_file = require('../config/passport.js');
var csrfProtection = csrf();
router.use(csrfProtection); // router is protected
@@ -64,6 +65,29 @@ router.post('/add/course', function(req,res){
res.redirect('/admin');
});
+// Add a new admin, redirect to admin panel
+router.post('/add/admin', function(req,res){
+ var admin_data = {
+ fname: req.body.fname,
+ lname: req.body.lname,
+ username: req.body.username,
+ password: passport_file.encryptPassword(req.body.password)
+ };
+
+ dbFile.addAdmin(admin_data, function(success, error, message){
+ if(success){
+ console.log("Success!");
+ }else if(error){
+ console.log("Error!");
+ }else{
+ console.log("Admin already exists.");
+ }
+ console.log(message);
+ });
+
+ res.redirect('/admin');
+});
+
router.post('/remove/exam', function(req,res){
var course_code = req.body.course_code,
year = req.body.year,
@@ -86,8 +110,6 @@ router.post('/remove/exam', function(req,res){
res.redirect('/admin');
});
-
-
/* Takes an input string delimited by commas, will split by comma and trim white
* spaces. Consider callback.
*/
diff --git a/views/admin.hbs b/views/admin.hbs
index 36a3210..a260559 100644
--- a/views/admin.hbs
+++ b/views/admin.hbs
@@ -19,6 +19,7 @@
<ul class="nav navbar-nav " >
<li><a href="#" class="cpnl-page">Add Exam</a></li>
<li><a href="#" class="cpnl-page">Add Course</a></li>
+ <li><a href="#" class="cpnl-page">Add Admin</a></li>
<li><a href="#" class="cpnl-page">Remove Exam</a></li>
<li><a href="#" class="cpnl-page">Remove Course</a></li>
<li><a href="#" class="cpnl-page">Remove User</a></li>
@@ -133,6 +134,39 @@
</form>
</div>
+ <!--- Add Course --->
+ <div class="row cpnl-container" id="cpnl-addAdmin">
+ <h4>Add Admin</h4>
+ <form action="/admin/add/admin" method="post">
+ <div class="form-group">
+ First Name: <input type="text"
+ class="form-control"
+ placeholder="e.g. Robert"
+ name="fname">
+ </div>
+ <div class="form-group">
+ Last Name: <input type="text"
+ class="form-control"
+ placeholder="e.g. Godfried"
+ name="lname">
+ </div>
+ <div class="form-group">
+ Username: <input type="text"
+ class="form-control"
+ placeholder="e.g. robTheFried86"
+ name="username">
+ </div>
+ <div class="form-group">
+ Password: <input type="password"
+ class="form-control"
+ placeholder="e.g. a3e6kk31"
+ name="password">
+ </div>
+ <input type="hidden" name="_csrf" value="{{ csrfToken }}">
+ <button type="submit" class="btn btn-primary">Submit</button>
+ </form>
+ </div>
+
<!--- Remove Exam --->
<div class="row cpnl-container" id="cpnl-removeExam">
<h4>Remove Exam</h4>