apply Nathan's insights into multistep form'
This commit is contained in:
1
app.js
1
app.js
@ -281,7 +281,6 @@ app.get('/nonprofits/are-there-people-that-are-already-benefiting-from-your-serv
|
|||||||
app.get('/nonprofits/in-exchange-we-ask', nonprofitController.inExchangeWeAsk);
|
app.get('/nonprofits/in-exchange-we-ask', nonprofitController.inExchangeWeAsk);
|
||||||
app.get('/nonprofits/ok-with-javascript', nonprofitController.okWithJavaScript);
|
app.get('/nonprofits/ok-with-javascript', nonprofitController.okWithJavaScript);
|
||||||
app.get('/nonprofits/how-can-free-code-camp-help-you', nonprofitController.howCanFreeCodeCampHelpYou);
|
app.get('/nonprofits/how-can-free-code-camp-help-you', nonprofitController.howCanFreeCodeCampHelpYou);
|
||||||
app.post('/nonprofits/how-can-free-code-camp-help-you', nonprofitController.howCanFreeCodeCampHelpYouPost);
|
|
||||||
app.get('/nonprofits/what-does-your-nonprofit-do', nonprofitController.whatDoesYourNonprofitDo);
|
app.get('/nonprofits/what-does-your-nonprofit-do', nonprofitController.whatDoesYourNonprofitDo);
|
||||||
app.get('/nonprofits/link-us-to-your-website', nonprofitController.linkUsToYourWebsite);
|
app.get('/nonprofits/link-us-to-your-website', nonprofitController.linkUsToYourWebsite);
|
||||||
app.get('/nonprofits/tell-us-your-name', nonprofitController.tellUsYourName);
|
app.get('/nonprofits/tell-us-your-name', nonprofitController.tellUsYourName);
|
||||||
|
@ -55,30 +55,14 @@ exports.howCanFreeCodeCampHelpYou = function(req, res) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.howCanFreeCodeCampHelpYouPost = function(req, res) {
|
|
||||||
var queryString = '';
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
if (req.body.websites) { queryString += 'websites&'}
|
|
||||||
res.redirect('/nonprofits/tell-us-your-name?' + encodeURIComponent(queryString));
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.whatDoesYourNonprofitDo = function(req, res) {
|
exports.whatDoesYourNonprofitDo = function(req, res) {
|
||||||
res.render('nonprofits/what-does-your-nonprofit-do', {
|
res.render('nonprofits/what-does-your-nonprofit-do', {
|
||||||
|
existingParams: req.params,
|
||||||
title: 'What does your nonprofit do?',
|
title: 'What does your nonprofit do?',
|
||||||
step: 6
|
step: 6
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.whatDoesYourNonprofitDoPost = function(req, res) {
|
|
||||||
res.redirect('nonprofits/link-us-to-your-website?' + req.params);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.linkUsToYourWebsite = function(req, res) {
|
exports.linkUsToYourWebsite = function(req, res) {
|
||||||
res.render('nonprofits/link-us-to-your-website', {
|
res.render('nonprofits/link-us-to-your-website', {
|
||||||
title: 'Link us to your website',
|
title: 'Link us to your website',
|
||||||
@ -86,10 +70,6 @@ exports.linkUsToYourWebsite = function(req, res) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.linkUsToYourWebsitePost = function(req, res) {
|
|
||||||
res.redirect('nonprofits/tell-us-your-email?' + req.params);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.tellUsYourEmail = function(req, res) {
|
exports.tellUsYourEmail = function(req, res) {
|
||||||
res.render('nonprofits/tell-us-your-email', {
|
res.render('nonprofits/tell-us-your-email', {
|
||||||
title: 'Tell us your name',
|
title: 'Tell us your name',
|
||||||
@ -97,10 +77,6 @@ exports.tellUsYourEmail = function(req, res) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.tellUsYourEmailPost = function(req, res) {
|
|
||||||
res.redirect('nonprofits/tell-us-your-name?' + req.params);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.tellUsYourName = function(req, res) {
|
exports.tellUsYourName = function(req, res) {
|
||||||
res.render('nonprofits/tell-us-your-name', {
|
res.render('nonprofits/tell-us-your-name', {
|
||||||
title: 'Tell us your name',
|
title: 'Tell us your name',
|
||||||
@ -108,9 +84,9 @@ exports.tellUsYourName = function(req, res) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.tellUsYourNamePost = function(req, res) {
|
exports.finishApplication = function(req, res) {
|
||||||
};
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
exports.yourNonprofitProjectApplicationHasBeenSubmitted = function(req, res) {
|
exports.yourNonprofitProjectApplicationHasBeenSubmitted = function(req, res) {
|
||||||
res.render('nonprofits/your-nonprofit-project-application-has-been-submitted', {
|
res.render('nonprofits/your-nonprofit-project-application-has-been-submitted', {
|
||||||
|
@ -4,31 +4,30 @@ block content
|
|||||||
h1.hug-top Nonprofit Sign Up
|
h1.hug-top Nonprofit Sign Up
|
||||||
include ../partials/nonprofit-application-progress-bar
|
include ../partials/nonprofit-application-progress-bar
|
||||||
h2 How can Free Code Camp help you?
|
h2 How can Free Code Camp help you?
|
||||||
form.text-left.form-inline(role='form', method='POST', action="/nonprofits/how-can-free-code-camp-help-you/")
|
.text-left.form-inline
|
||||||
input(type='hidden', name='_csrf', value=_csrf)
|
|
||||||
h3.col-xs-12.col-sm-offset-5.checkbox-table
|
h3.col-xs-12.col-sm-offset-5.checkbox-table
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='websites')
|
input.checkbox(type='checkbox', id='websites')
|
||||||
label.ion-android-globe Websites
|
label.ion-android-globe Websites
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='donation-systems')
|
input.checkbox(type='checkbox', id='donationSystems')
|
||||||
label.ion-card Donation Systems
|
label.ion-card Donation Systems
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='volunteer-systems')
|
input.checkbox(type='checkbox', id='volunteerSystems')
|
||||||
label.ion-android-calendar Volunteer Systems
|
label.ion-android-calendar Volunteer Systems
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='inventory-systems')
|
input.checkbox(type='checkbox', id='inventorySystems')
|
||||||
label.ion-ios-box Inventory Systems
|
label.ion-ios-box Inventory Systems
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='e-learning-platforms')
|
input.checkbox(type='checkbox', id='eLearningPlatforms')
|
||||||
label.ion-university E-learning Platforms
|
label.ion-university E-learning Platforms
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='web-forms')
|
input.checkbox(type='checkbox', id='webForms')
|
||||||
label.ion-ios-list Web Forms
|
label.ion-ios-list Web Forms
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='community-tools')
|
input.checkbox(type='checkbox', id='communityTools')
|
||||||
label.ion-ios-people Community Tools
|
label.ion-ios-people Community Tools
|
||||||
.col-xs-12
|
.col-xs-12
|
||||||
input.checkbox(type='checkbox', name='other-tools')
|
input.checkbox(type='checkbox', id='otherTools')
|
||||||
label.ion-settings Other tools
|
label.ion-settings Other tools
|
||||||
button.btn.btn-primary.btn-big.btn-block(type='submit') I've selected all that apply and am ready to move on
|
button#next-step.btn.btn-primary.btn-big.btn-block(type='submit') I've selected all that apply and am ready to move on
|
@ -1,10 +1,14 @@
|
|||||||
.jumbotron.text-center
|
extends ../layout
|
||||||
h1.hug-top Nonprofit Sign Up
|
block content
|
||||||
include ../partials/nonprofit-application-progress-bar
|
.jumbotron.text-center
|
||||||
h2 In 140 characters or less, what does your nonprofit do? For whom?
|
h1.hug-top Nonprofit Sign Up
|
||||||
.spacer
|
include ../partials/nonprofit-application-progress-bar
|
||||||
.formgroup
|
h2 Link us to the website, blog, or social media page that best represents your organization.
|
||||||
.input-group
|
.spacer
|
||||||
input.form-control.big-text-field.field-responsive(type='text', maxlength='140', autofocus='')
|
form(role='form', method='GET', action="/nonprofits/tell-us-your-email/?" + existingParams)
|
||||||
span.input-group-btn
|
input(type='hidden', name='_csrf', value=_csrf)
|
||||||
button.btn.btn-big.btn-primary.btn-responsive(href='/nonprofits/tell-us-your-name') Submit
|
.formgroup
|
||||||
|
.input-group
|
||||||
|
input.form-control.big-text-field.field-responsive(type='text', name='link', autocomplete='off', maxlength='500', autofocus='')
|
||||||
|
span.input-group-btn
|
||||||
|
button.btn.btn-big.btn-primary.btn-responsive Submit
|
@ -5,8 +5,10 @@ block content
|
|||||||
include ../partials/nonprofit-application-progress-bar
|
include ../partials/nonprofit-application-progress-bar
|
||||||
h2 Please tell us your email
|
h2 Please tell us your email
|
||||||
.spacer
|
.spacer
|
||||||
.formgroup
|
form(role='form', method='GET', novalidate='novalidate', name='nonprofitForm', action="/nonprofits/tell-us-your-name/")
|
||||||
.input-group
|
input(type='hidden', name='_csrf', value=_csrf)
|
||||||
input.form-control.big-text-field.field-responsive(type='text', maxlength='140', autofocus='')
|
.formgroup
|
||||||
span.input-group-btn
|
.input-group
|
||||||
button.btn.btn-big.btn-primary.btn-responsive(href='/nonprofits/your-nonprofit-project-application-has-been-submitted') Submit
|
input.form-control.big-text-field.field-responsive(type='text', name='email', autocomplete='off', maxlength='500', autofocus='')
|
||||||
|
span.input-group-btn
|
||||||
|
button.btn.btn-big.btn-primary.btn-responsive Submit
|
@ -5,9 +5,9 @@ block content
|
|||||||
include ../partials/nonprofit-application-progress-bar
|
include ../partials/nonprofit-application-progress-bar
|
||||||
h2 Please tell us your name
|
h2 Please tell us your name
|
||||||
.spacer
|
.spacer
|
||||||
form(role='form', action="/nonprofits/tell-us-your-name-post", method='POST', novalidate='novalidate', name='nonprofitForm')
|
form(role='form', method='POST', novalidate='novalidate', name='nonprofitForm', action="/nonprofits/finish-application/")
|
||||||
.formgroup
|
.formgroup
|
||||||
.input-group
|
.input-group
|
||||||
input.form-control.big-text-field.field-responsive(type='text', maxlength='140', autofocus='')
|
input.form-control.big-text-field.field-responsive(type='text', name='name', autocomplete='off', maxlength='140', autofocus='')
|
||||||
span.input-group-btn
|
span.input-group-btn
|
||||||
button.btn.btn-big.btn-primary.btn-responsive Submit
|
button.btn.btn-big.btn-primary.btn-responsive Submit
|
@ -5,13 +5,15 @@ block content
|
|||||||
include ../partials/nonprofit-application-progress-bar
|
include ../partials/nonprofit-application-progress-bar
|
||||||
h2 In 140 characters or less, what does your nonprofit do? For whom?
|
h2 In 140 characters or less, what does your nonprofit do? For whom?
|
||||||
.spacer
|
.spacer
|
||||||
.formgroup
|
form(role='form', method='GET', action="/nonprofits/link-us-to-your-website/")
|
||||||
.input-group
|
input(type='hidden', name='_csrf', value=_csrf)
|
||||||
input.form-control.big-text-field.field-responsive#what-does-the-nonprofit-do(type='text', maxlength='140', autofocus='')
|
.formgroup
|
||||||
span.input-group-btn
|
.input-group
|
||||||
button.btn.btn-big.btn-primary.btn-responsive(href='/nonprofits/link-us-to-your-website') Submit
|
input.form-control.big-text-field.field-responsive#what-does-the-nonprofit-do(type='text', maxlength='140', autofocus='', autocomplete='off', name='mission')
|
||||||
.text-left
|
span.input-group-btn
|
||||||
span#what-does-the-nonprofit-do-feedback
|
button.btn.btn-big.btn-primary.btn-responsive(href='/nonprofits/link-us-to-your-website') Submit
|
||||||
|
.text-left
|
||||||
|
span#what-does-the-nonprofit-do-feedback
|
||||||
|
|
||||||
script.
|
script.
|
||||||
var text_max = 140;
|
var text_max = 140;
|
||||||
|
@ -4,3 +4,36 @@
|
|||||||
span.sr-only= step * 10
|
span.sr-only= step * 10
|
||||||
| % Complete
|
| % Complete
|
||||||
h3.gray-text.text-center Step #{step} of 9
|
h3.gray-text.text-center Step #{step} of 9
|
||||||
|
|
||||||
|
|
||||||
|
script.
|
||||||
|
$('#story-url').on('keypress', function (e) {
|
||||||
|
if (e.which === 13 || e === 13) {
|
||||||
|
$('#preliminary-story-submit').click();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var preliminaryStorySubmit = function preliminaryStorySubmit() {
|
||||||
|
var storyURL = $('#story-url').val();
|
||||||
|
$('#preliminary-story-submit').attr('disabled', 'disabled');
|
||||||
|
$.post('/stories/preliminary',
|
||||||
|
{
|
||||||
|
data: {
|
||||||
|
url: storyURL
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.fail(function (xhr, textStatus, errorThrown) {
|
||||||
|
$('#preliminary-story-submit').attr('disabled', false);
|
||||||
|
})
|
||||||
|
.done(function (data, textStatus, xhr) {
|
||||||
|
if (data.alreadyPosted) {
|
||||||
|
window.location = data.storyURL;
|
||||||
|
} else {
|
||||||
|
window.location = '/stories/submit/new-story?url=' +
|
||||||
|
encodeURIComponent(data.storyURL) +
|
||||||
|
'&title=' + encodeURIComponent(data.storyTitle) +
|
||||||
|
'&image=' + encodeURIComponent(data.storyImage) +
|
||||||
|
'&description=' + encodeURIComponent(data.storyMetaDescription);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
$('#preliminary-story-submit').on('click', preliminaryStorySubmit);
|
@ -45,3 +45,11 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
$('#preliminary-story-submit').on('click', preliminaryStorySubmit);
|
$('#preliminary-story-submit').on('click', preliminaryStorySubmit);
|
||||||
|
|
||||||
|
|
||||||
|
arr = $( "h3 input:checked" )
|
||||||
|
.map(function() {
|
||||||
|
return this.id;
|
||||||
|
})
|
||||||
|
.get()
|
||||||
|
.join('&');
|
Reference in New Issue
Block a user