Skip to content

Commit

Permalink
new messages and reply messages are up and working
Browse files Browse the repository at this point in the history
  • Loading branch information
SarahMPearson committed Sep 6, 2014
1 parent 0881c23 commit 2f19aea
Show file tree
Hide file tree
Showing 14 changed files with 113 additions and 62 deletions.
21 changes: 14 additions & 7 deletions app/controllers/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

var User = require('../models/user'),
Message = require('../models/message'),
moment = require('moment'),
mp = require('multiparty');

exports.new = function(req, res){
Expand Down Expand Up @@ -62,14 +63,12 @@ exports.details = function(req, res){
});
};

// NEED TO TOUCH BASE
/*
exports.contact = function(req, res){
req.user.updateContact(req.body, function(){
res.redirect('/profile');
});
};
*/


exports.verify = function(req, res){
if(!req.user.alias){
Expand All @@ -93,23 +92,31 @@ exports.initUpdate = function(req, res){
exports.send = function(req, res){
User.findById(req.params.userId, function(err, receiver){
res.locals.user.send(receiver, req.body, function(){
res.redirect('/users/' + receiver.email);
res.redirect('/users/' + receiver.alias);
});
});
};

exports.messages = function(req, res){
res.locals.user.messages(function(err, msgs){
res.render('users/messages', {msgs:msgs});
res.render('users/messages', {msgs:msgs, moment:moment});
});
};

exports.message = function(req, res){
Message.read(req.params.msgId, function(err, msg){
res.render('users/message', {msg:msg});
res.render('users/message', {msg:msg, moment:moment});
});
};

exports.alias = function(req, res){
res.render('users/alias');
User.findOne({alias:req.params.alias}, function(err, client){
if(client){
res.render('users/alias', {client:client});
}else{
res.redirect('/profile');
}
});
};


7 changes: 4 additions & 3 deletions app/models/message.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
var async = require('async'),
Mongo = require('mongodb');

function Message(senderId, receiverId, message){
function Message(senderId, receiverId, subject, message){
this.senderId = senderId;
this.receiverId = receiverId;
this.subject = subject;
this.message = message;
this.date = new Date();
this.isRead = false;
Expand All @@ -22,8 +23,8 @@ Message.read = function(id, cb){
});
};

Message.send = function(senderId, receiverId, message, cb){
var m = new Message(senderId, receiverId, message);
Message.send = function(senderId, receiverId, subject, message, cb){
var m = new Message(senderId, receiverId, subject, message);
Message.collection.save(m, cb);
};

Expand Down
6 changes: 5 additions & 1 deletion app/models/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,11 @@ User.prototype.messages = function(cb){
};

User.prototype.send = function(receiver, obj, cb){
Message.send(this._id, receiver._id, obj.message, cb);
Message.send(this._id, receiver._id, obj. subject, obj.message, cb);
};

User.findOne = function(filter, cb){
User.collection.findOne(filter, cb);
};

module.exports = User;
Expand Down
21 changes: 9 additions & 12 deletions app/routes/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ module.exports = function(app, express){
app.use(express.static(__dirname + '/../static'));
app.use(bodyParser.urlencoded({extended:true}));
app.use(methodOverride());
app.use(session({store:new RedisStore(), secret:'WickedUnbreakableHash', resave:true, saveUninitialized:true, cookie:{maxAge:null}}));
app.use(session({store:new RedisStore(), secret:'HashLikeABoss', resave:true, saveUninitialized:true, cookie:{maxAge:null}}));
app.use(flash());
passportConfig(passport, app);

Expand All @@ -32,28 +32,25 @@ module.exports = function(app, express){
app.get('/register', users.new);
app.post('/register', users.create);
app.get('/login', users.login);
app.post('/login', passport.authenticate('local', {successRedirect:'/verify', failureRedirect:'/login', failureFlash:'Login failed'}));
app.post('/login', passport.authenticate('local', {successRedirect:'/profile', failureRedirect:'/login', failureFlash:'Login failed'}));
app.get('/auth/google', passport.authenticate('google', {scope: ['https://www.googleapis.com/auth/plus.login', 'https://www.googleapis.com/auth/plus.profile.emails.read']}));
app.get('/auth/google/callback', passport.authenticate('google', {successRedirect:'/verify', failureRedirect:'/login', failureFlash:'Google Login failed'}));
app.get('/auth/google/callback', passport.authenticate('google', {successRedirect:'/profile', failureRedirect:'/login', failureFlash:'Google Login failed'}));
app.get('/auth/facebook', passport.authenticate('facebook'));
app.get('/auth/facebook/callback', passport.authenticate('facebook', {successRedirect:'/verify', failureRedirect:'/login', failureFlash:'Facebook Login failed'}));
app.get('/auth/facebook/callback', passport.authenticate('facebook', {successRedirect:'/profile', failureRedirect:'/login', failureFlash:'Facebook Login failed'}));

app.use(security.bounce);
app.delete('/logout', users.logout);
app.get('/verify', users.verify);
app.get('/profile', users.profile);
app.put('/profile/init', users.initUpdate);
app.post('/profile/photos', users.addPhotos);
app.put('/profile/photos/primary', users.setProfilePhoto);
app.put('/profile/about', users.about);
app.put('/profile/details', users.details);
// app.put('/profile/contact', users.contact);
app.put('/profile/about', users.details);
app.post('/message/:userId', users.send);
app.get('/messages', users.messages);
app.get('/messages/:msgId', users.message);
app.get('/users/alias', users.alias);
app.put('/profile/about', users.contact);
app.get('/users/:alias', users.alias);
app.get('/gifts', gifts.index);
app.post('/messages/:userId', users.send);
app.get('/messages/:msgId', users.message);
app.get('/messages', users.messages);

console.log('Express: Routes Loaded');
};
Expand Down
2 changes: 1 addition & 1 deletion app/static/css/style.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions app/static/css/style.less
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,7 @@ div.c-wrapper{
background-repeat: no-repeat;
margin: 0;
}

textarea.modal-body {
width: 100%;
}
2 changes: 1 addition & 1 deletion app/views/shared/nav.jade
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
.collapse.navbar-collapse#navbar-collapse
ul.nav.navbar-nav.navbar-right
if user
li: a(href='/Profile') Profile
li: a(href='/Profile'): span.fa.fa-user &nbsp Profile
li: a(href='/messages')
span.fa.fa-envelope &nbsp Inbox  
span.badge= 0
Expand Down
13 changes: 7 additions & 6 deletions app/views/users/alias.jade
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ block content
.panel-body
.row
.col-xs-4
h2 user.alias
h2= client.alias
.col-xs-4
ul.list-inline
li
h5 user.age
h5= client.age
li
h5 user.gender
h5= client.gender
li
h5 user.location
h5= client.location
.col-xs-2
a.thumbnail#alias(href='#')
img(src='/img/node.png')
img(src='#{user.photo}')
.col-xs-2.col-xs-offset-1
span.glyphicon.glyphicon-heart
.col-xs-4
Expand All @@ -27,12 +27,13 @@ block content
//include checkout
button.btn.btn-default.btn-(data-toggle='modal', data-target='wink') Wink
span.glyphicon.glyphicon-eye-open
a.btn.btn-default(href='/propsal/#{client._Id}') Send Propsal

.row
.col-xs-12
.panel.panel-default
.panel-heading
h3.panel-title About # {client.alias}
h3.panel-title About #{client.alias}
.panel-body
h6 This is the About Me Section of the Profile Page
.row
Expand Down
17 changes: 17 additions & 0 deletions app/views/users/index.jade
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
extends ../shared/template
block content
.row
.col-xs-12
table.table-condensed.table-hover.users
thead
th Photo
th Name
th Location
tbody
each user in users
tr
td
td
td

block scripts
7 changes: 4 additions & 3 deletions app/views/users/message.jade
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ extends ../shared/template
block content
.row
.col-xs-12
h3 Message from sender.name
h3 Message from #{msg.sender.alias}
.panel.panel-success
.panel-body
p Date
h4 msg.message
p= moment(msg.date).format('MM/DD/YYYY')
h4= msg.message
.col-xs-12
.row
.col-xs-4
button.btn.btn-default.btn-(data-toggle='modal', data-target='#replyMessage') Reply
include replymessage



Expand Down
12 changes: 7 additions & 5 deletions app/views/users/messages.jade
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@ block content
thead
th From
th Date
th Message
th Time
th Subject
tbody
each msg in msgs
tr(style='background-color:#{msg.isRead ? "#ECECEC" : "#8C8A8D"}')
td: a(href='/users/#{msg.sender.email}')= msg.sender.name
td= msg.date.toDateString()
td: a(href='/messages/#{msg._id}')= (msg.message.slice(0, 20) + ' .....')
tr(style='background-color:#{msg.isRead ? "lightblue" : "#8C8A8D"}')
td: a(href='/users/#{msg.sender.alias}')= msg.sender.alias
td= moment(msg.date).format('MM/DD/YYYY')
td= moment(msg.date).fromNow()
td: a(href='/messages/#{msg._id}')= msg.subject
.col-xs-12
.row
.col-xs-9
Expand Down
27 changes: 18 additions & 9 deletions app/views/users/newMessage.jade
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
#newMessage.modal.fade(tabindex='-1', role='dialog', aria-labelledby='messageLabel', aria-hidden='true')
.modal-dialog
.modal-content
.modal-header
button.close(type='button', data-dismiss='modal', aria-hidden='true') ×
h4.modal-title Send a Message
textarea.modal-body
.modal-footer
button.btn.btn-default(type='button', data-dismiss='modal') Close
button.btn.btn-primary(type='button') Send
form.form(role='form', method='post', action='/messages/#{client._id}')
input(type='hidden', name='senderId', value=user._id)
input(type='hidden', name='receiverId', value=client._id)
.modal-dialog
.modal-content
.modal-header
button.close(type='button', data-dismiss='modal', aria-hidden='true') ×
h4.modal-title Send a Message
.form-group
label(for='subject') Subject
input.form-control#subject(name='subject', type='text')
.form-group
label(for='message') Message
textarea.form-control#message(name='message', type='text')
.modal-footer
button.btn.btn-default(type='button', data-dismiss='modal') Close
input(type='hidden' name='mtype' value='internal')
button.btn.btn-primary(type='submit') Send
9 changes: 4 additions & 5 deletions app/views/users/profile.jade
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,14 @@ block content
a.thumbnail#profile(href='/profile/photos')
img(src='/img/node.png')
.col-xs-6
a(href='/profile/about')
h2 user.alias
h2= user.alias
ul.list-inline
li
h5 user.age
h5= user.age
li
h5 user.gender
h5= user.gender
li
h5 user.location
h5= user.location
.col-xs-2

.panel.panel-info
Expand Down
27 changes: 18 additions & 9 deletions app/views/users/replymessage.jade
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
#replyMessage.modal.fade(tabindex='-1', role='dialog', aria-labelledby='messageLabel', aria-hidden='true')
.modal-dialog
.modal-content
.modal-header
button.close(type='button', data-dismiss='modal', aria-hidden='true') ×
h4.modal-title Reply
textarea.modal-body
.modal-footer
button.btn.btn-default(type='button', data-dismiss='modal') Close
button.btn.btn-primary(type='button') Send
form.form(role='form', method='post', action='/messages/#{msg.senderId}')
input(type='hidden', name='senderId', value=user._id)
input(type='hidden', name='receiverId', value=msg.senderId)
.modal-dialog
.modal-content
.modal-header
button.close(type='button', data-dismiss='modal', aria-hidden='true') ×
h4.modal-title Reply
.form-group
label(for='subject') Subject
input.form-control#subject(name='subject', type='text')
.form-group
label(for='message') Message
textarea.form-control#message(name='message', type='text')
.modal-footer
button.btn.btn-default(type='button', data-dismiss='modal') Close
input(type='hidden' name='mtype' value='internal')
button.btn.btn-primary(type='submit') Send

0 comments on commit 2f19aea

Please sign in to comment.