aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLurifax <stianalexanderolsen@gmail.com>2013-04-29 14:49:39 +0200
committerLurifax <stianalexanderolsen@gmail.com>2013-04-29 14:49:39 +0200
commite0a8e93d0e691c3939a121f65e87dece50f6d97d (patch)
tree263cd285ca4b06c7c13cc6f92e3cf7739be9bfc1
parentMerge branch 'master' of github.com:dennisse/Divid (diff)
parentbeen working on the project model and posting projects (diff)
downloadDivid-e0a8e93d0e691c3939a121f65e87dece50f6d97d.tar.gz
Merge branch 'master' of github.com:dennisse/Divid
-rw-r--r--app.js11
-rw-r--r--controllers/system.js13
-rw-r--r--models/project.js39
-rw-r--r--public/css/use.less6
-rw-r--r--router.js3
-rw-r--r--views/home.ejs37
-rw-r--r--views/navbar.ejs4
-rw-r--r--views/newproject.ejs2
8 files changed, 75 insertions, 40 deletions
diff --git a/app.js b/app.js
index 414372b..f9aa1b9 100644
--- a/app.js
+++ b/app.js
@@ -3,17 +3,17 @@
* Module dependencies.
*/
var express = require('express')
- , fs = require('fs')
- , passport = require('passport');
+ , fs = require('fs')
+ , passport = require('passport')
+ , mongoose = require('mongoose');
/**
* App configuration
*/
-var port = process.env.PORT || 8001
+var port = process.env.PORT || 8000
, env = process.env.NODE_ENV || 'development'
, config = require('./config/config')[env]
- , auth = require('./config/middlewares/authorization')
- , mongoose = require('mongoose');
+ , auth = require('./config/middlewares/authorization');
// Bootstrap db connection
mongoose.connect(config.db);
@@ -24,6 +24,7 @@ db.once('open', function callback(){
});
// Bootstrap models
+// This gets all model files in ./models
var models_path = __dirname + '/models';
fs.readdirSync(models_path).forEach( function(file) {
require(models_path + '/' + file);
diff --git a/controllers/system.js b/controllers/system.js
index cf205b9..e3a55bd 100644
--- a/controllers/system.js
+++ b/controllers/system.js
@@ -2,7 +2,8 @@
/**
* Module dependencies
*/
-
+var mongoose = require('mongoose')
+ , Project = mongoose.model('Project');
@@ -65,7 +66,15 @@ exports.project = function(req, res) {
res.render('project', { title: 'Harepus', loggedin: true });
}
-exports.newproject = function(req, res) {
+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.save(function(err) {
+ if (err) return res.render('newproject', { title: 'Nytt prosjekt - en feil oppstod', loggedin: true, errors: err.errors, project: project });
+ return res.redirect('/dashboard');
+ });
+}
+
diff --git a/models/project.js b/models/project.js
new file mode 100644
index 0000000..2424694
--- /dev/null
+++ b/models/project.js
@@ -0,0 +1,39 @@
+
+/**
+ * Module dependencies
+ */
+
+var mongoose = require('mongoose')
+ , Schema = mongoose.Schema;
+
+
+
+
+
+var ProjectSchema = new Schema({
+ user: { type: String, ref: 'User' },
+ name: { type: String, default: '', trim: true },
+ description: {type: String, default: '', trim: true },
+ currency: { type: String, default: 'kr', trim: true },
+ public: { type: String, default: 'invite-only' },
+ created: { type: Date, default: Date.now },
+ updated: { type: Date, default: Date.now }
+});
+
+
+// the four validations below only apply if you are signing up traditionally
+
+ProjectSchema.path('name').validate(function(name) {
+ // if you're authenticated by any of the oauth strategies (facebook, twitter), don't validate
+ return name.length;
+}, 'Project name cannot be blank');
+
+ProjectSchema.methods = {
+
+ log: function() {
+ console.log('wat. wat logged this');
+ }
+
+}
+
+mongoose.model('Project', ProjectSchema);
diff --git a/public/css/use.less b/public/css/use.less
index fb2cbf1..44e303c 100644
--- a/public/css/use.less
+++ b/public/css/use.less
@@ -169,7 +169,7 @@ margin:10px;
margin-top:25px;
/*border-top: 2px solid #9fd5df;*/
color: #FFFFFF;
- background-color: #000000;
+ background-color: #ff9a00;
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2);
-webkit-box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2);
@@ -179,8 +179,8 @@ margin:10px;
display: block;
}
-/*#footer {
+#footer {
background-color: #0D56A6;
width:1170px;
height:100px;
-}*/
+}
diff --git a/router.js b/router.js
index 3ffc887..b67f03a 100644
--- a/router.js
+++ b/router.js
@@ -55,6 +55,7 @@ module.exports = function(app, passport, auth) {
app.get('/project', auth.requiresLogin, system.project);
- app.get('/project/new', auth.requiresLogin, system.newproject);
+ app.get('/project/new', auth.requiresLogin, system.newProject);
+ app.post('/project/new', auth.requiresLogin, system.postNewProject)
};
diff --git a/views/home.ejs b/views/home.ejs
index f2f7997..aeb0cda 100644
--- a/views/home.ejs
+++ b/views/home.ejs
@@ -1,6 +1,5 @@
<% include header %>
<link rel="stylesheet" href="/css/devanim.css">
-<link rel="stylesheet" href="/css/use.css">
</head>
<body>
@@ -45,24 +44,24 @@
<div class="row">
<div class="span3 infobox" id="first">
<img class="infoimg" src="/img/laptop.png">
- <h4>Bruk mobil eller nett</h4>
- <p>Uansett hva du benytter er Divid tilgjengelig. Divid er tilgjengelig på alle plattformer og gjør derfor deling av utgifter enklere mellom deg og andre.</p>
+ <h4>Bruk mobil eller nettleser</h4>
+ <p>Divid er en webapplikasjon og kan brukes på pc, nettbrett og mobil. Uansett hva du bruker er Divid tilgjengelig.</p>
</div>
<div class="span3 infobox" id="second">
<img class="infoimg" src="/img/addpeople.png">
<h4>Inviter de du vil</h4>
- <p>Divid gjør deling av utgifter enklere. Alt du trenger for å delta i et prosjekt i er en epost-adresse!</p>
+ <p>Inviter deltakere til prosjekt ved å legge til epost-adressen deres eller send dem en link!</p>
</div>
<div class="span3 infobox" id="third">
<img class="infoimg" src="/img/overwatch.png">
- <h4>Ta kontroll</h4>
- <p>I et prosjekt kan du ha mange deltagere som skal dele på den samme regningen. Send påminnelser til sene betalere og få varsel når deltakere betaler.</p>
+ <h4>Få oversikt</h4>
+ <p>Ikke la delte utgifter gå i glemmeboken. Send påminnelser og få varsel når deltakere betaler.</p>
</div>
</div>
<div id="hvem" class="span12 content">
<div class="container last">
<div class="span6 sectionright">
- <h1>Hvem er denne tjenesten for?</h1>
+ <h1>Hvor kan Divid brukes?</h1>
<h5>Divid er for alle. Å dele er sosialt og derfor holder Divid det sosialt.</h5>
<ul>
<li>Studenter - i kollektiv</li>
@@ -81,13 +80,9 @@
<div id="hvor" class="span12 content">
<div class="container last">
<div class="span7 sectionleft">
- <h1>Når bruke Divid?</h1>
- <p>Hvilke bruksområder kan jeg bruke Divid?</p>
- <ul>
- <li>Bruk appen fra din Iphone, Android eller windows mobile</li>
- <li>Du kan legge til utgifter og utlegg underveis</li>
- <li></li>
- </ul>
+ <div class="span5 sectionleft tutorial">
+ <iframe src="http://player.vimeo.com/video/41974181" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
+ </div>
</div>
<div class="span5 sectionright">
<img src="/img/iph.png" class="infoimg">
@@ -99,7 +94,7 @@
<div id="hvordan" class="span12 content">
<div class="container last">
<div class="span6 sectionright">
- <h1>Hvordan bruke divid</h1> <!-- Vi viser deg hvor enkelt det er å bruke Divid.--!>
+ <h1>Registrering</h1> <!-- Vi viser deg hvor enkelt det er å bruke Divid.--!>
<ul>
<h4><i class="icon-chevron-right icon-white"></i> Vi tar bryet og løser delingen rettferdig</h4>
</br>
@@ -110,19 +105,9 @@
<h4><i class="icon-chevron-right icon-white"></i> Ta bilde av kvitteringene eller en utlånt gjenstand med Divid bildebank for senere gjennomsyn</h4><!--Du slipper kvitteringer - ta bilde av de og kast de i søpla. Bildene lastes opp til Divids servere så har du de senere hvis det er bruk for de.--!>
</ul>
</div>
- <div class="span5 sectionleft tutorial">
- <iframe src="http://player.vimeo.com/video/41974181" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
- </div>
- </div>
- </div>
- <div id="register" class="span12 content">
- <div class="container last">
- <div class="span6 sectionright">
- <h1>Registrering?</h1> <!--Stian mente du ville ha denne nederst? Jeg trodde den skulle være frittflytende over alt.--!>
- </div>
+
</div>
</div>
- <hr>
</div>
</div><!-- /div.row -->
</div><!-- /div#wrapper -->
diff --git a/views/navbar.ejs b/views/navbar.ejs
index 79cb55a..6bc2bbe 100644
--- a/views/navbar.ejs
+++ b/views/navbar.ejs
@@ -56,8 +56,8 @@
<div class="nav-collapse collapse">
<ul class="nav menu">
<li><a href="#faq">FAQ</a></li>
- <li><a href="#kontakt">Kontakt</a></li>
- <li><a href="#dashboard">Dashboard</a></li>
+ <li><a href="/project/new">Nytt prosjekt</a></li>
+ <li><a href="/dashboard">Dashboard</a></li>
</ul>
</div>
</div>
diff --git a/views/newproject.ejs b/views/newproject.ejs
index 3d0ff7c..e83673f 100644
--- a/views/newproject.ejs
+++ b/views/newproject.ejs
@@ -13,7 +13,7 @@
<form class="form-horizontal" action="/project/new" method="post">
<fieldset>
- <legend>Lag nytt prosjekt</legend>
+ <h1><legend><%= title %></legend></h1>
<div class="control-group">
<label class="control-label">Prosjektnavn</label>