const methods = require('./methods') const async = require('async') module.exports = function (app) { // ======== APP ROUTES - PROJECT ==================== var lang = 'DE' app.get('/project', function (req, res) { async.waterfall([ // get all projects from projectdb function(done) { methods.getAllProjects(function(projectsOverview, err) { if (!err) { done(err, projectsOverview) } }) }, // create JSON object for front-end function(projectsOverview, done) { var activeProjects = [] var nonActiveProjects = [] for (var i = 0; i < projectsOverview.length; i++) { var project = { id: projectsOverview[i].id, logo: projectsOverview[i].logo, akronym: projectsOverview[i].pname, title: projectsOverview[i].title, summary: projectsOverview[i].onelinesummary, category: projectsOverview[i].category, cp: projectsOverview[i].contact_email, gitlab: projectsOverview[i].gitlab } if (projectsOverview[i].projectstatus == 0) { nonActiveProjects.push(project) } else if (projectsOverview[i].projectstatus == 1) { activeProjects.push(project) } } // render the page if (req.isAuthenticated()) { res.render(lang+'/project/projects', { isUserAuthenticated: true, nonActive: nonActiveProjects, active: activeProjects }); } else { res.render(lang+'/project/projects', { isUserAuthenticated: false, nonActive: nonActiveProjects, active: activeProjects }); } } ]) }) app.get('/addprojectoverview', function (req, res) { if (req.isAuthenticated()) { res.render(lang+'/project/addProjectOverview') } else { res.redirect('/login') } }) app.post('/addprojectoverview', function (req, res) { if (req.isAuthenticated()) { var wiki = 0 if (req.body.wiki) wiki = 1 var projectOverviewData = { pname: req.body.pname, title: req.body.title, onelinesummary: req.body.summary, category: req.body.category, logo: req.body.logo, gitlab: req.body.gitlabURL, wiki: wiki, overview: req.body.overview, question: req.body.question, approach: req.body.approach, result: req.body.result, keywords: req.body.keywords, announcement: req.body.announcement, term: req.body.term, further_details: req.body.furtherDetails, website: req.body.website, src: req.body.src, caption: req.body.caption, contact_firstname: req.body.contactFirstname, contact_lastname: req.body.contactLastname, contact_email: req.body.contactEmail, leader_firstname: req.body.leaderFirstname, leader_lastname: req.body.leaderLastname, leader_email: req.body.leaderEmail } methods.addProjectOverview(projectOverviewData, function(err){ if (err) { //req.flash('error', "Failed") req.flash('error', "Fehlgeschlagen") res.redirect('/addProjectOverview'); } else { req.flash('success', 'Your project has been created.') res.redirect('/project'); } }) } }) };