aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/controllers/system.js
blob: c0525954fd21f41a6cfc9a55429a2868b232e467 (plain) (tree)
1
2
3
4
5
6
7
8
9



                      
                                  

                                       

                                    






                                                                  
                                           




                                   




                        


                                   












                                  

 





                                      









                                                                  



                                                                 
                                                                                                                           


                                                                 
                                                                                                                                       






                                                           
                                                                                                                           








                                                                                                   
 

           
       

  
                                          
                                                                                                                           




                                 
         
 



                                      





                                                                                                                           

 









                                                                                      
                                          









                                                                                                                           
 



                                              







                                                    



                                                                       
 
         
 
 
                                         
                                                                         

 

                                             
                                
                                



                                                                                                                                                
       












                                                                                                          

 

/**
 * Module dependencies
 */
var mongoose = require('mongoose')
  , Project = mongoose.model('Project')
  , Access = mongoose.model('Access')
  , User = mongoose.model('User')
  , pPost = mongoose.model('pPost');

/**
 * Before the user log in
 * ===============================================================
*/

exports.index = function(req, res) {
    res.render('index', { title: 'DERS' });
    };



exports.test = function(req, res) {
    res.render('test', {
        title: 'test',
        loggedin: false
    });
};


exports.home = function(req, res) {
    res.render('home', {
        title: 'home',
        loggedin: false
    });
};


exports.faq = function(req, res) {
    res.render('faq', {
        title: 'faq',
        loggedin: false
    });
}


exports.contact = function(req, res) {
    res.render('contact', {
        title: 'contact',
        loggedin: false
    });
}


/**
 * After the user has logged in
 * ===============================================================
*/



exports.dashboard = function(req, res) {
    console.log('/dashboard - ' + req.user._id);

/*
    Access.find({ user: req.user._id }, function(err, accesses) {
        if (err) return res.status(500).render('error', { title: '500', text: 'En serverfeil oppstod', error: err.stack });
        console.log('accesses ' + accesses);
        accesses.forEach(function(access) {
            Project.load(access.project, function(err, project) {
                    if (err) return res.status(500).render('error', { title: '500', text: 'En serverfeil oppstod', error: err.stack });
                    projectList.push(project);
                    console.log(project.user.username);
                });
        });
    });
*/
    Access.loadUser(req.user._id, function(err, projects) {
        if (err) return res.status(500).render('error', { title: '500', text: 'En serverfeil oppstod', error: err.stack });
        Project.populate(projects, { path: 'project.user', model: User }, function(err, projects) {

            console.log('accesses: ' + projects);

            res.render('dashboard', {
                title: 'Dashboard',
                loggedin: true,
                projects: projects
            });

        });

    });

/*
    Project.find(function(err, projects) {
        if (err) return res.status(500).render('error', { title: '500', text: 'En serverfeil oppstod', error: err.stack });
        res.render('dashboard', {
            title: 'Dashboad',
            loggedin: true,
            projects: projects
        });
    });*/
}



exports.project = function(req, res) {
    Project.loadShort(req.params.short, function(err, project) {
        if (err) return res.status(500).render('error', { title: '500', text: 'En serverfeil oppstod', error: err.stack });

        res.render('project', { title: 'Harepus', loggedin: true, req: req, project: project });

    });
}

exports.projectParticipants = function(req, res) {

    res.render('projectParticipants', { title: 'Prosjektdeltakere', loggedin: true });

}

exports.postProjectParticipants = function(req, res) {

}

exports.projectPost = function(req, res) {

   /** ###################################
    * Need to check if user has access to this project!!
    */
    console.log(req.loggedin);
    Project.loadShort(req.params.short, function(err, project) {
        if (err) return res.status(500).render('error', { title: '500', text: 'En serverfeil oppstod', error: err.stack });
        res.render('projectPost', { title: 'Legg til utgift', loggedin: true, req: req, project: project });
    });



}

exports.postProjectPost = function(req, res) {
/*//    var ppost = new pPost(req.body);
    ppost.user = req.user._id;
    ppost.project = ;
/*/
    var ppost = new pPost(req.body);
    console.log('ppost.user = ' + req.user._id);
    console.log('ppost.project = ' + ppost.project);
    console.log('ppost.what = ' + ppost.what);
    console.log('ppost.participants = ' + ppost.participants);
    console.log('req.body = ' + Object.keys(req.body));
    ppost.when = new Date(req.body.date + ' ' + req.body.time + ':00');
    console.log('ppost.when = ' + ppost.when);

    //*//
}

exports.newProject = function(req, res) {
    res.render('newProject', { title: 'Nytt prosjekt', loggedin: true });
}

exports.postNewProject = function(req, res) {
    var project = new Project(req.body);
    project.user = req.user._id;
    project.save(function(err) {
        if (err) {
            console.log(err.errors);
            return res.render('newproject', { title: 'Nytt prosjekt - en feil oppstod', loggedin: true, errors: err.errors, project: project });
        }
    });

    var access = new Access();
    access.user = req.user._id;
    access.creator = req.user._id;
    access.project = project._id;
    access.permissions = 1;
    access.save(function(err) {
        if (err) {
            console.log(err.errors);
            return res.render('newproject', { title: 'Nytt prosjekt - en feil oppstod', loggedin: true });
        }
        return res.redirect('/dashboard');
    })
}