init
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
extends ../layout
|
||||
|
||||
block content
|
||||
.col-sm-8.col-sm-offset-2
|
||||
form(method='POST')
|
||||
legend Forgot Password
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
p Enter your email address below and we will send you password reset instructions.
|
||||
label.control-label(for='email') Email
|
||||
input.form-control(type='email', name='email', id='email', placeholder='Email', autofocus, required)
|
||||
.form-group
|
||||
button.btn.btn-primary(type='submit')
|
||||
i.fa.fa-key
|
||||
| Reset Password
|
||||
@@ -0,0 +1,29 @@
|
||||
extends ../layout
|
||||
|
||||
block content
|
||||
.page-header
|
||||
h3 Sign in
|
||||
form.form-horizontal(method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='email') Email
|
||||
.col-sm-7
|
||||
input.form-control(type='email', name='email', id='email', placeholder='Email', autofocus, required)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='password') Password
|
||||
.col-sm-7
|
||||
input.form-control(type='password', name='password', id='password', placeholder='Password', required)
|
||||
.form-group
|
||||
.col-sm-offset-3.col-sm-7
|
||||
button.col-sm-3.btn.btn-primary(type='submit')
|
||||
i.fa.fa-user
|
||||
| Login
|
||||
a.btn.btn-link(href='/forgot') Forgot your password?
|
||||
.form-group
|
||||
.col-sm-offset-3.col-sm-7
|
||||
hr
|
||||
.form-group
|
||||
.col-sm-offset-3.col-sm-7
|
||||
a.btn.btn-block.btn-facebook.btn-social(href='/auth/facebook')
|
||||
i.fa.fa-facebook
|
||||
| Sign in with Facebook
|
||||
@@ -0,0 +1,87 @@
|
||||
extends ../layout
|
||||
|
||||
block content
|
||||
.page-header
|
||||
h3 Profile Information
|
||||
|
||||
form.form-horizontal(action='/account/profile', method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='email') Email
|
||||
.col-sm-7
|
||||
input.form-control(type='email', name='email', id='email', value=user.email)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='name') Name
|
||||
.col-sm-7
|
||||
input.form-control(type='text', name='name', id='name', value=user.profile.name)
|
||||
.form-group
|
||||
label.col-sm-3.control-label Gender
|
||||
.col-sm-6
|
||||
label.radio.col-sm-3
|
||||
input(type='radio', checked=user.profile.gender=='male', name='gender', value='male', data-toggle='radio')
|
||||
span Male
|
||||
label.radio.col-sm-3
|
||||
input(type='radio', checked=user.profile.gender=='female', name='gender', value='female', data-toggle='radio')
|
||||
span Female
|
||||
label.radio.col-sm-3
|
||||
input(type='radio', checked=user.profile.gender=='other', name='gender', value='other', data-toggle='radio')
|
||||
span Other
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='location') Location
|
||||
.col-sm-7
|
||||
input.form-control(type='text', name='location', id='location', value=user.profile.location)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='website') Website
|
||||
.col-sm-7
|
||||
input.form-control(type='text', name='website', id='website', value=user.profile.website)
|
||||
.form-group
|
||||
label.col-sm-3.control-label Gravatar
|
||||
.col-sm-4
|
||||
img(src=user.gravatar(), class='profile', width='100', height='100')
|
||||
.form-group
|
||||
.col-sm-offset-3.col-sm-4
|
||||
button.btn.btn.btn-primary(type='submit')
|
||||
i.fa.fa-pencil
|
||||
| Update Profile
|
||||
|
||||
.page-header
|
||||
h3 Change Password
|
||||
|
||||
form.form-horizontal(action='/account/password', method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='password') New Password
|
||||
.col-sm-7
|
||||
input.form-control(type='password', name='password', id='password')
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='confirmPassword') Confirm Password
|
||||
.col-sm-7
|
||||
input.form-control(type='password', name='confirmPassword', id='confirmPassword')
|
||||
.form-group
|
||||
.col-sm-offset-3.col-sm-4
|
||||
button.btn.btn-primary(type='submit')
|
||||
i.fa.fa-lock
|
||||
| Change Password
|
||||
|
||||
.page-header
|
||||
h3 Delete Account
|
||||
|
||||
form.form-horizontal(action='/account/delete', method='POST')
|
||||
.form-group
|
||||
p.col-sm-offset-3.col-sm-4 You can delete your account, but keep in mind this action is irreversible.
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.col-sm-offset-3.col-sm-4
|
||||
button.btn.btn-danger(type='submit')
|
||||
i.fa.fa-trash
|
||||
| Delete my account
|
||||
|
||||
.page-header
|
||||
h3 Linked Accounts
|
||||
.form-horizontal
|
||||
.form-group
|
||||
.col-sm-offset-3.col-sm-4
|
||||
if user.facebook
|
||||
p: a.text-danger(href='/account/unlink/facebook') Unlink your Facebook account
|
||||
else
|
||||
p: a(href='/auth/facebook') Link your Facebook account
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
extends ../layout
|
||||
|
||||
block content
|
||||
.col-sm-8.col-sm-offset-2
|
||||
form(method='POST')
|
||||
legend Reset Password
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
label(for='password') New Password
|
||||
input.form-control(type='password', name='password', id='password', placeholder='New password', autofocus, required)
|
||||
.form-group
|
||||
label(for='confirm') Confirm Password
|
||||
input.form-control(type='password', name='confirm', id='confirm', placeholder='Confirm password', required)
|
||||
.form-group
|
||||
button.btn.btn-primary.btn-reset(type='submit')
|
||||
i.fa.fa-keyboard-o
|
||||
| Change Password
|
||||
@@ -0,0 +1,24 @@
|
||||
extends ../layout
|
||||
|
||||
block content
|
||||
.page-header
|
||||
h3 Sign up
|
||||
form.form-horizontal(id='signup-form', method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='email') Email
|
||||
.col-sm-7
|
||||
input.form-control(type='email', name='email', id='email', placeholder='Email', autofocus, required)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='password') Password
|
||||
.col-sm-7
|
||||
input.form-control(type='password', name='password', id='password', placeholder='Password', required)
|
||||
.form-group
|
||||
label.col-sm-3.control-label(for='confirmPassword') Confirm Password
|
||||
.col-sm-7
|
||||
input.form-control(type='password', name='confirmPassword', id='confirmPassword', placeholder='Confirm Password', required)
|
||||
.form-group
|
||||
.col-sm-offset-3.col-sm-7
|
||||
button.btn.btn-success(type='submit')
|
||||
i.fa.fa-user-plus
|
||||
| Signup
|
||||
@@ -0,0 +1,31 @@
|
||||
extends ../layout
|
||||
|
||||
block content
|
||||
.page-header
|
||||
h2
|
||||
i.fa.fa-facebook-square(style='color: #335397')
|
||||
| Facebook API
|
||||
.btn-group.btn-group-justified
|
||||
a.btn.btn-primary(href='https://developers.facebook.com/docs/graph-api/quickstart/', target='_blank')
|
||||
i.fa.fa-check-square-o
|
||||
| Quickstart
|
||||
a.btn.btn-primary(href='https://developers.facebook.com/tools/explorer', target='_blank')
|
||||
i.fa.fa-facebook
|
||||
| Graph API Explorer
|
||||
a.btn.btn-primary(href='https://developers.facebook.com/docs/graph-api/reference/', target='_blank')
|
||||
i.fa.fa-code-fork
|
||||
| API Reference
|
||||
|
||||
h3
|
||||
i.fa.fa-user
|
||||
| My Profile
|
||||
img.thumbnail(src=`https://graph.facebook.com/${profile.id}/picture?type=large`, width='90', height='90')
|
||||
h4= profile.name
|
||||
h6 First Name: #{profile.first_name}
|
||||
h6 Last Name: #{profile.last_name}
|
||||
h6 Gender: #{profile.gender}
|
||||
h6 Username: #{profile.username}
|
||||
h6 Link: #{profile.link}
|
||||
h6 Email: #{profile.email}
|
||||
h6 Locale: #{profile.locale}
|
||||
h6 Timezone: #{profile.timezone}
|
||||
@@ -0,0 +1,13 @@
|
||||
extends ../layout
|
||||
|
||||
block content
|
||||
h2 API Examples
|
||||
hr
|
||||
|
||||
.row
|
||||
.col-sm-4
|
||||
a(href='/api/facebook', style='color: #fff')
|
||||
.panel.panel-default(style='background-color: #3b5998')
|
||||
.panel-body
|
||||
img(src='http://i.imgur.com/jiztYCH.png', height=40)
|
||||
| Facebook
|
||||
@@ -0,0 +1,25 @@
|
||||
extends layout
|
||||
|
||||
block content
|
||||
.page-header
|
||||
h3 Contact Form
|
||||
|
||||
form.form-horizontal(method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
.form-group
|
||||
label(class='col-sm-2 control-label', for='name') Name
|
||||
.col-sm-8
|
||||
input.form-control(type='text', name='name', id='name', autofocus=true)
|
||||
.form-group
|
||||
label(class='col-sm-2 control-label', for='email') Email
|
||||
.col-sm-8
|
||||
input.form-control(type='text', name='email', id='email')
|
||||
.form-group
|
||||
label(class='col-sm-2 control-label', for='message') Body
|
||||
.col-sm-8
|
||||
textarea.form-control(name='message', id='message', rows='7')
|
||||
.form-group
|
||||
.col-sm-offset-2.col-sm-8
|
||||
button.btn.btn-primary(type='submit')
|
||||
i.fa.fa-envelope
|
||||
| Send
|
||||
@@ -0,0 +1,27 @@
|
||||
extends layout
|
||||
|
||||
block content
|
||||
h1 Hackathon Starter
|
||||
p.lead A boilerplate for Node.js web applications.
|
||||
hr
|
||||
.row
|
||||
.col-sm-6
|
||||
h2 Heading
|
||||
p Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.
|
||||
p
|
||||
a.btn.btn-default(href='#', role='button') View details »
|
||||
.col-sm-6
|
||||
h2 Heading
|
||||
p Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.
|
||||
p
|
||||
a.btn.btn-default(href='#', role='button') View details »
|
||||
.col-sm-6
|
||||
h2 Heading
|
||||
p Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.
|
||||
p
|
||||
a.btn.btn-default(href='#', role='button') View details »
|
||||
.col-sm-6
|
||||
h2 Heading
|
||||
p Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.
|
||||
p
|
||||
a.btn.btn-default(href='#', role='button') View details »
|
||||
@@ -0,0 +1,33 @@
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
meta(charset='utf-8')
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||
meta(name='theme-color' content='#4DA5F4')
|
||||
meta(name='csrf-token', content=_csrf)
|
||||
title #{title} - Hackathon Starter
|
||||
link(rel='shortcut icon', href='/images/favicon.png')
|
||||
link(rel='stylesheet', href='/css/main.css')
|
||||
|
||||
body
|
||||
include partials/header
|
||||
|
||||
.container
|
||||
include partials/flash
|
||||
block content
|
||||
|
||||
include partials/footer
|
||||
|
||||
script(src='/js/lib/jquery-3.1.1.min.js')
|
||||
script(src='/js/lib/bootstrap.min.js')
|
||||
script(src='/js/main.js')
|
||||
|
||||
// Google Analytics: change UA-XXXXX-X to be your site's ID
|
||||
script.
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
ga('create', 'UA-XXXXX-X', 'auto');
|
||||
ga('send', 'pageview');
|
||||
@@ -0,0 +1,18 @@
|
||||
if messages.errors
|
||||
.alert.alert-danger.fade.in
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fa.fa-times-circle-o
|
||||
for error in messages.errors
|
||||
div= error.msg
|
||||
if messages.info
|
||||
.alert.alert-info.fade.in
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fa.fa-times-circle-o
|
||||
for info in messages.info
|
||||
div= info.msg
|
||||
if messages.success
|
||||
.alert.alert-success.fade.in
|
||||
button.close(type='button', data-dismiss='alert')
|
||||
i.fa.fa-times-circle-o
|
||||
for success in messages.success
|
||||
div= success.msg
|
||||
@@ -0,0 +1,5 @@
|
||||
footer
|
||||
.container.text-center
|
||||
p.pull-left © 2016 Company, Inc. All Rights Reserved
|
||||
iframe.pull-right(src="https://ghbtns.com/github-btn.html?user=Microsoft&repo=TypeScript-Node-Starter&type=star&count=true" frameborder="0" scrolling="0" width="90px" height="20px" style="margin-top:15px")
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
.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='/')
|
||||
i.fa.fa-cube
|
||||
| Project name
|
||||
.collapse.navbar-collapse
|
||||
ul.nav.navbar-nav
|
||||
li(class=(title == 'Home') ? 'active' : undefined)
|
||||
a(href='/') Home
|
||||
li(class=(title == 'API Examples') ? 'active' : undefined)
|
||||
a(href='/api') API Examples
|
||||
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)
|
||||
else
|
||||
img(src=user.gravatar(60))
|
||||
span= user.profile.name || user.email || user.id
|
||||
i.caret
|
||||
ul.dropdown-menu
|
||||
li
|
||||
a(href='/account') My Account
|
||||
li.divider
|
||||
li
|
||||
a(href='/logout') Logout
|
||||
Reference in New Issue
Block a user