Merge branch 'view-improvements' of https://github.com/sixFingers/hackathon-starter into sixFingers-view-improvements

* 'view-improvements' of https://github.com/sixFingers/hackathon-starter:
  Split the view into partials
  Make flash messages available to every view
  Replace connect-flash with express-flash
This commit is contained in:
Sahat Yalkabov
2014-01-28 17:18:24 -05:00
6 changed files with 73 additions and 53 deletions

6
app.js
View File

@ -3,7 +3,7 @@
*/
var express = require('express');
var flash = require('connect-flash');
var flash = require('express-flash');
var less = require('less-middleware');
var path = require('path');
var mongoose = require('mongoose');
@ -64,6 +64,10 @@ app.use(function(req, res, next) {
next();
});
app.use(flash());
app.use(function(req, res, next) {
res.locals.flash = req.flash.bind(req);
next();
});
app.use(less({ src: __dirname + '/public', compress: true }));
app.use(app.router);
app.use(express.static( path.join(__dirname, 'public'), { maxAge: 864000000 } ));

View File

@ -5,8 +5,8 @@
"async": "~0.2.10",
"bcrypt": "~0.7.7",
"cheerio": "~0.13.1",
"connect-flash": "~0.1.1",
"express": "~3.4.8",
"express-flash": "~0.0.2",
"express-validator": "~1.0.1",
"fbgraph": "~0.2.8",
"github-api": "~0.7.0",

View File

@ -19,56 +19,8 @@ html
script(src='/js/main.js?v=#{cacheBuster}')
body
#wrap
.navbar.navbar-default.navbar-fixed-top
.container
.navbar-header
button.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse')
span.sr-only Toggle navigation
span.icon-bar
span.icon-bar
span.icon-bar
a.navbar-brand(href='/') Project name
.collapse.navbar-collapse
ul.nav.navbar-nav
li(class=title=='Home'?'active':undefined)
a(href='/') Home
li(class=title=='API Browser'?'active':undefined)
a(href='/api') API Browser
li(class=title=='Contact'?'active':undefined)
a(href='/contact') Contact
ul.nav.navbar-nav.navbar-right
if !user
li(class=title=='Login'?'active':undefined)
a(href='/login') Login
li(class=title=='Create Account'?'active':undefined)
a(href='/signup') Create Account
else
li.dropdown(class=title=='Account Management'?'active':undefined)
a.dropdown-toggle(href='#', data-toggle='dropdown')
if user.profile.picture
img(src='#{user.profile.picture}')
| #{user.profile.name || user.id} 
i.caret
ul.dropdown-menu
li: a(href='/account') My Account
li.divider
li: a(href='/logout') Logout
include partials/navigation
.container
include partials/flash
block content
#footer
.container.text-center
div
| © 2014 Company, Inc.
div
strong Hackathon Starter
| Project
| ·
| Created by
a(href='http://sahatyalkabov.com') Sahat Yalkabov
div
| Code licensed under
a(href='http://opensource.org/licenses/mit-license.html') MIT License
div
a(href='https://github.com/sahat/hackathon-starter') GitHub Project
| ·
a(href='https://github.com/sahat/hackathon-starter/issues') Issues
include partials/footer

13
views/partials/flash.jade Normal file
View File

@ -0,0 +1,13 @@
#flash
if messages.errors
.alert.alert-danger.animated.fadeIn
for error in messages.errors
div= error.msg
if messages.info
.alert.alert-info.animated.fadeIn
for info in messages.info
div= info.msg
if messages.success
.alert.alert-success.animated.fadeIn
for success in messages.success
div= success.msg

View File

@ -0,0 +1,17 @@
#footer
.container.text-center
div
| © 2014 Company, Inc.
div
strong Hackathon Starter
| Project
| ·
| Created by
a(href='http://sahatyalkabov.com') Sahat Yalkabov
div
| Code licensed under
a(href='http://opensource.org/licenses/mit-license.html') MIT License
div
a(href='https://github.com/sahat/hackathon-starter') GitHub Project
| ·
a(href='https://github.com/sahat/hackathon-starter/issues') Issues

View File

@ -0,0 +1,34 @@
.navbar.navbar-default.navbar-fixed-top
.container
.navbar-header
button.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse')
span.sr-only Toggle navigation
span.icon-bar
span.icon-bar
span.icon-bar
a.navbar-brand(href='/') Project name
.collapse.navbar-collapse
ul.nav.navbar-nav
li(class=title=='Home'?'active':undefined)
a(href='/') Home
li(class=title=='API Browser'?'active':undefined)
a(href='/api') API Browser
li(class=title=='Contact'?'active':undefined)
a(href='/contact') Contact
ul.nav.navbar-nav.navbar-right
if !user
li(class=title=='Login'?'active':undefined)
a(href='/login') Login
li(class=title=='Create Account'?'active':undefined)
a(href='/signup') Create Account
else
li.dropdown(class=title=='Account Management'?'active':undefined)
a.dropdown-toggle(href='#', data-toggle='dropdown')
if user.profile.picture
img(src='#{user.profile.picture}')
| #{user.profile.name || user.id} 
i.caret
ul.dropdown-menu
li: a(href='/account') My Account
li.divider
li: a(href='/logout') Logout