Commit 5202bdf8 by David Ormsbee

Merge branch 'ormsbee/verify2' into ormsbee/verifyuser3

Conflicts:
	common/templates/course_modes/choose.html
	lms/templates/verify_student/photo_verification.html
parents a8d7b997 81a56a35
......@@ -3,28 +3,38 @@
<%inherit file="../main.html" />
<%block name="bodyclass">register verification-process step-select-track</%block>
<%block name="title"><title>${("Register for [Course Name] | Choose Your Track")}</title></%block>
<%block name="js_extra">
<script type="text/javascript">
$(document).ready(function() {
$( ".more" ).hide();
$( ".expand" ).click(function(e) {
e.preventDefault();
$(this).next().slideToggle();
});
});
<script type="text/javascript">
</script>
$(document).ready(function() {
$('.is-expandable .expandable-more').addClass('is-hidden');
$('.is-expandable .title-expand').click(function(e) {
e.preventDefault();
$(this).parent().find('.expandable-more').toggleClass('is-hidden');
});
});
</script>
</%block>
<%block name="content">
<div class="container">
<section class="wrapper">
<header class="page-header header-white">
<h2 class="title header-white-title">You are registering for ${course_name} (ID Verified)</h2>
<header class="page-header">
<h2 class="title">
<span class="wrapper-sts">
<span class="sts">You are registering for</span>
<span class="sts-course">${course_id} </span>
</span>
<span class="sts-track">
<span class="sts-track-label">Registering as: </span>
<span class="sts-track-value">ID Verified</span>
</span>
</h2>
</header>
%if error:
<div class="error">
${error}
......@@ -34,92 +44,153 @@
<form method="post" name="enrollment_mode_form" id="enrollment_mode_form">
% if "audit" in modes:
<div class="select">
<div class="block block-audit">
<div class="wrap-copy">
<h4 class="title">Audit This Course</h4>
<p>Sign up to audit this course for free and track your own progress.</p>
<div class="wrapper-register-choose wrapper-content-main">
<article class="register-choose content-main">
<h3 class="title">Select your track:</h3>
<form class="form-register-choose" method="post" name="enrollment_mode_form" id="enrollment_mode_form">
% if "audit" in modes:
<div class="register-choice register-choice-audit">
<div class="wrapper-copy">
<h4 class="title">Audit This Course</h4>
<div class="copy">
<p>Sign up to audit this course for free and track your own progress.</p>
</div>
</div>
<ul class="list-actions">
<li class="action action-select">
<input type="submit" name="mode" value="Select Audit" />
</li>
</ul>
</div>
<div class="wrap-action">
<p class="m-btn-primary">
<input type="submit" name="mode" value="Select Audit" />
</p>
</div>
</div>
<div class="divider"><p>or</p></div>
% endif
% if "verified" in modes:
<div class="select">
<div class="block block-cert">
<h4 class="title">Certificate of Achievement</h4>
<span class="ribbon"></span>
<p>Sign up as a verified student and work toward a Certificate of Achievement.</p>
<%include file="_contribution.html" args="suggested_prices=suggested_prices, currency=currency, chosen_price=chosen_price"/>
<p class="tip expand">
<a href="">Why do I have to pay? What if I don't meet all the requirements?</a>
</p>
<div class="more">
<dl class="faq">
<dt>Why do I have to pay?</dt>
<dd>Your payment helps cover the costs of verification. As a non-profit, edX keeps these costs as low as possible, Your payment will also help edX with our mission to provide quality education to anyone.</dd>
<dt>I'd like to pay more than the minimum. Is my contribution tax deductible?</dt>
<dd>Please check with your tax advisor to determine whether your contribution is tax deductible.</dd>
% if "honor" in modes:
<dt>What if I can't afford it?</dt>
<dd>If you cannot afford the minimum payment, you can always work towards a free Honor Code Certificate of Achievement for this course.
<!--
Enter $0 above and explain why you would like the fee waived below. Then click Select Certificate button to move on to the next step.
<dl>
<dt><label class="sr" for="explain">Explain your situation:</label></dt>
<dd><p>Tell us why you need help paying for this course in 180 characters or more.</p>
<textarea name="explain" rows="5" cols="50"></textarea>
</dd>
</dl>
-->
</dd>
% endif
% if "honor" in modes:
<dt>What if I don't meet all of the requirements for financial assistance but I still want to work toward a certificate?</dt>
<dd>If you don't have a webcam, credit or debit card or acceptable ID, you can opt to simply audit this course, or select to work towards a free Honor Code Certificate of Achievement for this course by checking the box below. Then click the Select Certificate button to complete registration. We won't ask you to verify your identity.
<p><input type="checkbox" name="honor-code" id="honor-code"> <label for="honor-code">Select Honor Code Certificate</label></p>
</dd>
% endif
</dl>
<span class="deco-divider">
<span class="copy">or</span>
</span>
% endif
% if "verified" in modes:
<div class="register-choice register-choice-certificate">
<div class="wrapper-copy">
<span class="deco-ribbon"></span>
<h4 class="title">Certificate of Achievement</h4>
<div class="copy">
<p>Sign up as a verified student and work toward a Certificate of Achievement.</p>
</div>
</div>
<div class="field field-certificate-contribution">
<h5 class="label">Select your contribution for this course:</h5>
<%include file="_contribution.html" args="suggested_prices=suggested_prices, currency=currency, chosen_price=chosen_price"/>
<div class="help-tip is-expandable">
<h5 class="title title-expand">Why do I have to pay? What if I don't meet all the requirements?</h5>
<div class="copy expandable-more">
<dl class="list-faq">
<dt class="faq-question">Why do I have to pay?</dt>
<dd class="faq-answer">
<p>Your payment helps cover the costs of verification. As a non-profit, edX keeps these costs as low as possible, Your payment will also help edX with our mission to provide quality education to anyone.</p>
</dd>
<dt class="faq-question">I'd like to pay more than the minimum. Is my contribution tax deductible?</dt>
<dd class="faq-answer">
<p>Please check with your tax advisor to determine whether your contribution is tax deductible.</p>
</dd>
% if "honor" in modes:
<dt class="faq-question">What if I can't afford it?</dt>
<dd class="faq-answer">
<p>If you cannot afford the minimum payment, you can always work towards a free Honor Code Certificate of Achievement for this course.</p>
<p>Enter $0 above and explain why you would like the fee waived below. Then click Select Certificate button to move on to the next step.</p>
<ul class="fields">
<li class="field field-explain">
<label for="explain"><span class="sr">Explain your situation: </span>Tell us why you need help paying for this course in 180 characters or more.</label>
<textarea name="explain"></textarea>
</li>
</ul>
</dd>
<dt class="faq-question">What if I don't meet all of the requirements for financial assistance but I still want to work toward a certificate?</dt>
<dd class="faq-answer">
<p>If you don't have a webcam, credit or debit card or acceptable ID, you can opt to simply audit this course, or select to work towards a free Honor Code Certificate of Achievement for this course by checking the box below. Then click the Select Certificate button to complete registration. We won't ask you to verify your identity.</p>
<ul class="fields">
<li class="field field-explain">
<input type="checkbox" name="honor-code" id="honor-code">
<label for="honor-code">Select Honor Code Certificate</label>
</li>
</ul>
</dd>
% endif
</dl>
</div>
</div>
</div>
<ul class="list-actions">
<li class="action action-intro">
<a href="">What is an ID Verified Certificate?</a>
</li>
<li class="action action-select">
<input type="submit" name="mode" value="Select Certificate" />
</li>
</ul>
</div>
<hr />
<p class="tip">
<a href="${marketing_link('WHAT_IS_VERIFIED_CERT')}">What is an ID Verified Certificate?</a>
</p>
<p class="m-btn-primary green">
<input type="submit" name="mode" value="Select Certificate" />
</p>
</div>
<div class="tips">
<p>
To register for a Verified Certificate of Achievement option, you will need a webcam, a credit or debit card, and an ID. <a href="">View requirements</a>
</p>
</div>
% endif
</div>
<input type="hidden" name="csrfmiddlewaretoken" value="${ csrf_token }">
</form>
<p class="tip"><i class="icon-question-sign"></i> Have questions? <a href="">Check out our FAQs.</a></p>
<p class="tip">Not the course you wanted? <a href="">Return to our course listings</a>.</p>
<div class="help help-register">
<h3 class="title">Verified Registration Requirements</h3>
<div class="copy">
<p>To register for a Verified Certificate of Achievement option, you will need a webcam, a credit or debit card, and an ID. <a href="">View requirements</a></p>
</div>
</div>
% endif
<input type="hidden" name="csrfmiddlewaretoken" value="${ csrf_token }">
</form>
</article>
</div> <!-- /wrapper-content-main -->
<div class="wrapper-content-supplementary">
<aside class="content-supplementary">
<ul class="list-help">
<li class="help-item">
<h3 class="title">What is an ID Verified Certificate?</h3>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.</p>
</div>
</li>
<li class="help-item">
<h3 class="title">Verified Certificate of Achievement Requirememts</h3>
<div class="copy">
<p>To register for a Verified Certificate of Achievement option, you will need a webcam, a credit or debit card, and an ID. <a href="">View requirements</a></p>
</div>
</li>
<li class="help-item">
<h3 class="title">Have questions?</h3>
<div class="copy">
<p>Please read <a href="">our FAQs to view common questions about our certificates</a>.</p>
</div>
</li>
<li class="help-item">
<h3 class="title">Not the course you wanted?</h3>
<div class="copy">
<p><a href="">Return to our course listings to find another course</a></p>
</div>
</li>
</ul>
</aside>
</div> <!-- /wrapper-content-supplementary -->
</section>
</div>
</%block>
......@@ -44,6 +44,7 @@
// base - elements
@import 'elements/typography';
@import 'elements/controls';
// base - specific views
@import 'views/verification';
......
......@@ -41,24 +41,38 @@
@return #{$pxval / $base}em;
}
// Line-height
// line-height
@function lh($amount: 1) {
@return $body-line-height * $amount;
}
// ====================
//-----------------
// Theme Mixin Styles
//-----------------
// theme mixin styles
@mixin login_register_h1_style {}
@mixin footer_references_style {}
// ====================
// extends - UI - visual link
.ui-fake-link {
cursor: pointer;
}
// extends - UI - functional disable
.ui-disabled {
pointer-events: none;
outline: none;
}
// extends - UI - depth levels
.ui-depth0 { z-index: 0; }
.ui-depth1 { z-index: 10; }
.ui-depth2 { z-index: 100; }
.ui-depth3 { z-index: 1000; }
.ui-depth4 { z-index: 10000; }
.ui-depth5 { z-index: 100000; }
// extends -hidden elems - screenreaders
.text-sr {
border: 0;
......@@ -70,3 +84,39 @@
position: absolute;
width: 1px;
}
// extends - UI - removes list styling/spacing when using uls, ols for navigation and less content-centric cases
.ui-no-list {
list-style: none;
margin: 0;
padding: 0;
text-indent: 0;
li, dt, dd {
margin: 0;
padding: 0;
}
}
// extends - text - image-replacement hidden text
.text-hide {
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}
// extends - text - wrapping
.text-wrap {
text-wrap: wrap;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
word-wrap: break-word;
}
// extends - text - text overflow by ellipsis
.text-truncated {
@include box-sizing(border-box);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
......@@ -15,7 +15,7 @@ $fg-min-width: 810px;
// ====================
// FONTS
$sans-serif: 'Open Sans', $verdana;
$sans-serif: 'Open Sans', $verdana, sans-serif;
$monospace: Monaco, 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
$body-font-family: $sans-serif;
$serif: $georgia;
......@@ -35,7 +35,17 @@ $very-light-text: #fff;
// COLORS: misc.
$white: rgb(255,255,255);
$white-t0: rgba($white, 0.125);
$white-t1: rgba($white, 0.25);
$white-t2: rgba($white, 0.5);
$white-t3: rgba($white, 0.75);
$black: rgb(0,0,0);
$black-t0: rgba($black, 0.125);
$black-t1: rgba($black, 0.25);
$black-t2: rgba($black, 0.5);
$black-t3: rgba($black, 0.75);
$blue: rgb(29,157,217);
$pink: rgb(182,37,104);
$yellow: rgb(255, 252, 221);
......@@ -47,6 +57,7 @@ $dark-gray: rgb(51, 51, 51);
$border-color: rgb(200, 200, 200);
$sidebar-color: rgb(246, 246, 246);
$outer-border-color: rgb(170, 170, 170);
$green: rgb(37, 184, 90);
// COLORS: old variables
......@@ -63,11 +74,17 @@ $m-gray-d1: #7D7F83;
$m-gray-d2: #707276;
$m-gray-d3: #646668;
$m-gray-d4: #050505;
$m-gray-t0: rgba($m-gray,0.125);
$m-gray-t1: rgba($m-gray,0.25);
$m-gray-t2: rgba($m-gray,0.50);
$m-gray-t3: rgba($m-gray,0.75);
$m-blue: #1AA1DE;
$m-blue-l1: #2BACE6;
$m-blue-l2: #42B5E9;
$m-blue-l3: #59BEEC;
$m-blue-l4: tint($m-blue,90%);
$m-blue-l5: tint($m-blue,95%);
$m-blue-d1: #1790C7;
$m-blue-d2: #1580B0;
$m-blue-d3: #126F9A;
......@@ -81,6 +98,30 @@ $m-pink-d1: #A0255B;
$m-pink-d2: #8C204F;
$m-pink-d3: #771C44;
$m-green: rgb(0, 136, 1);
$m-green-s1: rgb(96, 188, 97);
$m-green-l1: tint($m-green,20%);
$m-green-l2: tint($m-green,40%);
$m-green-l3: tint($m-green,60%);
$m-green-l4: tint($m-green,90%);
$m-green-l5: tint($m-green,95%);
$m-green-d1: shade($m-green,20%);
$m-green-d2: shade($m-green,40%);
$m-green-d3: shade($m-green,60%);
$m-green-d4: shade($m-green,90%);
$m-green-t0: rgba($m-green,0.125);
$m-green-t1: rgba($m-green,0.25);
$m-green-t2: rgba($m-green,0.50);
$m-green-t3: rgba($m-green,0.75);
// ====================
// shadows
$shadow: rgba(0,0,0,0.2);
$shadow-l1: rgba(0,0,0,0.1);
$shadow-l2: rgba(0,0,0,0.05);
$shadow-d1: rgba(0,0,0,0.4);
// ====================
$m-base-font-size: em(15);
......
// lms - elements - controls
// ====================
.btn {
@include box-sizing(border-box);
@include transition(color 0.25s ease-in-out, background 0.25s ease-in-out, box-shadow 0.25s ease-in-out);
display: inline-block;
cursor: pointer;
text-decoration: none;
&:hover, &:active {
text-decoration: none;
}
&.disabled, &[disabled] {
cursor: default;
pointer-events: none;
}
}
.btn-pill {
border-radius: $baseline/5;
}
.btn-rounded {
border-radius: ($baseline/2);
}
.btn-edged {
border-radius: ($baseline/10);
}
// primary button
.btn-primary {
@extend .t-weight3;
@extend .btn;
@extend .btn-edged;
border: none;
padding: ($baseline*0.75) $baseline;
text-align: center;
&:hover, &:active {
}
&.current, &.active {
&:hover, &:active {
}
}
&.disabled, &.is-disabled, &[disabled] {
background: $m-gray-l2;
color: $white-t3;
}
}
// blue primary gray
.btn-primary-gray {
@extend .btn-primary;
box-shadow: 0 2px 1px 0 $m-gray-d2;
background: $m-gray;
color: $white;
&:hover, &:active {
background: $m-gray-l1;
color: $white;
}
&.current, &.active {
box-shadow: inset 0 2px 1px 1px $m-gray-d2;
background: $m-gray;
color: $m-gray-l1;
&:hover, &:active {
box-shadow: inset 0 2px 1px 1px $m-gray-d3;
color: $m-gray-d3;
}
}
&.disabled, &[disabled] {
box-shadow: none;
}
}
// blue primary button
.btn-primary-blue {
@extend .btn-primary;
box-shadow: 0 2px 1px 0 $m-blue-d4;
background: $m-blue-d3;
color: $white;
&:hover, &:active {
background: $m-blue-d1;
color: $white;
}
&.current, &.active {
box-shadow: inset 0 2px 1px 1px $m-blue-d2;
background: $m-blue;
color: $m-blue-d2;
&:hover, &:active {
box-shadow: inset 0 2px 1px 1px $m-blue-d3;
color: $m-blue-d3;
}
}
&.disabled, &[disabled] {
box-shadow: none;
}
}
// pink primary button
.btn-primary-pink {
@extend .btn-primary;
box-shadow: 0 2px 1px 0 $m-pink-d2;
background: $m-pink;
color: $white;
&:hover, &:active {
background: $m-pink-l3;
color: $white;
}
&.current, &.active {
box-shadow: inset 0 2px 1px 1px $m-pink-d1;
background: $m-pink-l2;
color: $m-pink-d1;
&:hover, &:active {
box-shadow: inset 0 2px 1px 1px $m-pink-d2;
color: $m-pink-d3;
}
}
&.disabled, &[disabled] {
box-shadow: none;
}
}
// green primary button
.btn-primary-green {
@extend .btn-primary;
box-shadow: 0 2px 1px 0 $m-green-d2;
background: $m-green-d1;
color: $white;
&:hover, &:active {
background: $m-green-s1;
color: $white;
}
&.current, &.active {
box-shadow: inset 0 2px 1px 1px $m-green;
background: $m-green-l2;
color: $m-green;
&:hover, &:active {
box-shadow: inset 0 2px 1px 1px $m-green-d1;
color: $m-green-d1;
}
}
&.disabled, &[disabled] {
box-shadow: none;
}
}
// ====================
// application: canned actions
.btn {
font-family: $f-sans-serif;
}
.btn-large {
@extend .t-action1;
@extend .t-weight3;
display: block;
padding:($baseline*0.75) ($baseline*1.5);
}
.btn-avg {
@extend .t-action2;
@extend .t-weight3;
}
.btn-blue {
@extend .btn-primary-blue;
margin-bottom: $baseline;
&:last-child {
margin-bottom: none;
}
}
.btn-pink {
@extend .btn-primary-pink;
margin-bottom: $baseline;
&:last-child {
margin-bottom: none;
}
}
......@@ -171,3 +171,147 @@
.t-icon-solo {
@include line-height(0);
}
// ====================
// typography weights
.t-weight1 {
font-weight: 300;
}
.t-weight2 {
font-weight: 400;
}
.t-weight3 {
font-weight: 500;
}
.t-weight4 {
font-weight: 600;
}
.t-weight5 {
font-weight: 700;
}
// ====================
// application: canned headings
.hd-lv1 {
@extend .t-title1;
@extend .t-weight1;
color: $m-gray-d4;
margin: 0 0 ($baseline*2) 0;
}
.hd-lv1-alt {
@extend .t-title2;
@extend .t-weight1;
color: $m-gray-d4;
margin: 0 0 ($baseline*2) 0;
}
.hd-lv2 {
@extend .t-title4;
@extend .t-weight1;
margin: 0 0 ($baseline*0.75) 0;
border-bottom: 1px solid $m-gray-l3;
padding-bottom: ($baseline/2);
color: $m-gray-d4;
}
.hd-lv2-alt {
@extend .t-title4;
@extend .t-weight1;
margin: 0 0 ($baseline*0.75) 0;
border-bottom: 1px solid $m-gray-t1;
padding-bottom: ($baseline/2);
color: $m-blue-d1;
text-transform: uppercase;
}
.hd-lv3 {
@extend .t-title6;
@extend .t-weight4;
margin: 0 0 ($baseline/4) 0;
color: $m-gray-d4;
}
.hd-lv3-alt {
@extend .t-title6;
@extend .t-weight3;
margin: 0 0 ($baseline/4) 0;
color: $m-gray-d4;
}
.hd-lv4 {
@extend .t-title6;
@extend .t-weight2;
margin: 0 0 $baseline 0;
color: $m-gray-d4;
}
.hd-lv4-alt {
@extend .t-title6;
@extend .t-weight4;
margin: 0 0 ($baseline) 0;
color: $m-gray-d4;
text-transform: uppercase;
}
.hd-lv5 {
@extend .t-title7;
@extend .t-weight4;
margin: 0 0 ($baseline/4) 0;
color: $m-gray-d4;
}
// application: canned copy
.copy-base {
@extend .t-copy-base;
color: $m-gray-d2;
}
.copy-lead1 {
@extend .t-copy-lead2;
color: $m-gray;
}
.copy-detail {
@extend .t-copy-sub1;
@extend .t-weight3;
color: $m-gray-d1;
}
.copy-metadata {
@extend .t-copy-sub2;
color: $m-gray-d1;
.copy-metadata-value {
@extend .t-weight2;
}
.copy-metadata-value {
@extend .t-weight4;
}
}
// application: canned links
.copy-link {
border-bottom: 1px dotted transparent;
&:hover, &:active {
border-color: $m-blue-d2;
}
}
.copy-badge {
@extend .t-title8;
@extend .t-weight5;
border-radius: ($baseline/5);
padding: ($baseline/2) $baseline;
text-transform: uppercase;
}
// lms - views - verification flow
// ====================
// some nasty resets and standard styles
body.register.verification-process {
font-family: 'Open Sans', sans-serif;
// MISC: extends - UI - window
.ui-window {
@include clearfix();
border-radius: ($baseline/10);
box-shadow: 0 1px 2px 1px $shadow-l1;
margin-bottom: $baseline;
border: 1px solid $m-gray-l3;
background: $white;
}
// MISC: extends - UI - well
.ui-well {
box-shadow: inset 0 1px 2px 1px $shadow-l1;
padding: ($baseline*0.75) $baseline;
}
// MISC: custom link
.custom-link {
@extend .ui-fake-link;
}
// MISC: expandable UI
.is-expandable {
.title-expand {
}
.expandable-more {
display: block;
&.is-hidden {
display: none;
}
}
}
.register.verification-process {
// reset: box-sizing (making things so right its scary)
* {
@include box-sizing(border-box);
}
// reset: typography
font-family: $sans-serif;
// reset: typography - heading
h1, h2, h3, h4, h5 ,h6 {
@extend .t-title;
color: $m-gray-d4;
}
// reset: typography - copy
p, ol, ul, dl, input, select, textarea {
font-family: $f-sans-serif;
@extend .t-copy-base;
color: $m-gray-d1;
}
// reset: copy/text
p {
margin-bottom: ($baseline*0.75);
}
.copy {
dt {
margin: 0 0 .5em 0;
font-weight: bold;
}
p, ul, li, dl, blockquote, input, select {
margin-bottom: ($baseline*0.75);
dd {
margin: 0 0 1em 0;
&:last-child {
margin-bottom: 0;
}
}
}
dl dl {
margin: ($baseline/4) 0 0 ($baseline/2);
}
// reset: copy/text
// reset: forms
input {
......@@ -42,580 +83,1128 @@ body.register.verification-process {
}
label {
@extend .t-weight4;
font-family: $sans-serif;
font-style: normal;
font-family: 'Open Sans', sans-serif;
font-weight: 400;
color: $m-gray-d4;
}
.faq {
@extend .t-copy-sub2;
label {
font-size: 12px;
font-weight: bold;
}
// HACK: nasty override due to our bad input/button styling
button, input[type="submit"], input[type="button"] {
@include font-size(16);
@extend .t-weight3;
text-transform: none;
text-shadow: none;
letter-spacing: 0;
}
// reset: lists
.list-actions, .list-steps, .progress-steps, .list-controls, .list-fields, .list-help, .list-faq, .nav-wizard, .list-reqs, .list-faq, .review-tasks, .list-tips, .wrapper-photos, .field-group {
@extend .ui-no-list;
}
// ====================
// elements: layout
.content-wrapper {
background: none repeat scroll 0 0 #F7F7F7;
background: $m-gray-l4;
padding-bottom: 0;
}
.container {
background-color: #fff;
background-color: $white;
padding: ($baseline*1.5) ($baseline*1.5) ($baseline*2) ($baseline*1.5);
}
// elements: common UI
// ====================
// elements: common copy
.title {
@extend .t-title5;
margin-bottom: ($baseline/2);
font-weight: 300;
@extend .t-weight1;
}
.tip {
@extend .t-copy-sub2;
@include transition(color 0.15s ease-in-out 0s);
display: block;
margin-top: ($baseline/4);
color: $lighter-base-font-color;
.copy {
@extend .t-weight1;
}
// ====================
// elements - controls
.action-primary {
@extend .btn-primary-blue;
border: none;
}
.action-confirm {
@extend .btn-primary-green;
border: none;
}
// ====================
// elements: page depth
// elements: header
.page-header {
// ====================
// elements : help
.help {
}
.help-item {
.title {
@include font-size(28);
@include line-height(28);
margin-bottom: $baseline;
border-bottom: 1px solid #ccc;
padding-bottom: 20px;
color: #2F73BC;
font-weight: 300;
text-transform: uppercase;
@extend .hd-lv4;
margin-bottom: ($baseline/4);
}
.copy {
@extend .copy-detail;
}
}
// elements: page options
.pay-options {
list-style-type: none;
margin: 0;
padding: 0;
.list-help {
li {
display: inline-block;
background-color: $light-gray;
padding: ($baseline/2) ($baseline*.75);
margin-right: ($baseline/4);
vertical-align: middle;
}
&.other1 {
margin-right: -($baseline/4);
padding-right: ($baseline/4);
min-height: 25px;
}
&.other2 {
padding: ($baseline/4) ($baseline*.75) ($baseline/4) 0;
}
// ====================
// UI: page header
.page-header {
width: flex-grid(12,12);
margin: 0 0 $baseline 0;
border-bottom: ($baseline/4) solid $m-gray-l4;
.title {
@include clearfix();
width: flex-grid(12,12);
label {
.wrapper-sts, .sts-track {
display: inline-block;
vertical-align: middle;
}
input {
vertical-align: middle;
.wrapper-sts {
width: flex-grid(9,12);
}
}
}
.sts-track {
width: flex-grid(3,12);
text-align: right;
// elements - controls
.m-btn-primary {
margin-bottom: 0;
padding: 0;
a, input {
background: none;
border: none;
box-shadow: none;
color: $very-light-text;
display: block;
padding: ($baseline*.75) $baseline;
text-transform: none;
text-shadow: none;
letter-spacing: 0;
.sts-track-label {
@extend .text-sr;
}
&:hover {
text-decoration: none;
border: none;
.sts-track-value {
@extend .copy-badge;
color: $white;
background: $m-green-l2;
}
}
}
&.disabled, &[disabled], &.is-disabled {
background-color: #ccc;
box-shadow: none;
pointer-events: none;
&:hover {
background: $action-primary-disabled-bg !important; // needed for IE currently
.sts {
@extend .t-title7;
display: block;
color: $m-gray;
}
}
// NOTE: need to change this to a semantic class
&.green {
box-shadow: 0 2px 1px rgba(2,100,2,1);
background-color: rgba(0,136,1,1);
.sts-course {
@extend .t-title;
@include font-size(28);
@include line-height(28);
@extend .t-weight4;
display: block;
&:hover {
box-shadow: 0 2px 1px rgba(2,100,2,1);
background-color: #029D03;
}
}
}
// ====================
// UI : progress
.wrapper-progress {
position: relative;
margin-bottom: ($baseline*1.5);
}
.progress-sts {
@include size(($baseline/4));
@extend .ui-depth1;
position: absolute;
top: 43px;
left: 70px;
display: block;
width: 77%;
margin: 0 auto;
background: $m-gray-l4;
.progress-sts-value {
width: 0%;
height: 100%;
display: block;
background: $m-green-l3;
}
}
// nav/status: progress
.progress {
@include clearfix;
position: relative;
margin-bottom: $baseline;
border-bottom: 1px solid #ccc;
padding-bottom: $baseline;
width: flex-grid(12,12);
margin: 0 auto;
border-bottom: ($baseline/4) solid $m-gray-l4;
.progress-steps {
margin: 0;
padding: 0;
@include clearfix();
position: relative;
top: ($baseline/4);
}
.progress-step {
@extend .t-copy-sub1;
@extend .ui-depth2;
position: relative;
z-index: 200;
display: inline-block;
width: 15%;
padding: ($baseline/2) 0;
width: flex-grid(2,12);
float: left;
padding: $baseline $baseline ($baseline*1.5) $baseline;
text-align: center;
color: #ccc;
&.current {
color: #008801;
.wrapper-step-number, .step-number, .step-name {
display: block;
}
.wrapper-step-number {
@include size(($baseline*2) ($baseline*2));
margin: 0 auto ($baseline/2) auto;
border-radius: ($baseline*10);
border: ($baseline/5) solid $m-gray-l4;
background: $white;
.step-number {
@extend .t-title7;
@extend .t-weight4;
@include line-height(0);
margin: 16px auto 0 auto;
color: $m-gray-l1;
}
}
.step-name {
@extend .t-title7;
@extend .t-weight4;
color: $m-gray-l1;
}
// confirmation step w/ icon
&#progress-step5 {
.number {
border: 4px solid #008801;
color: #008801;
.step-number {
margin-top: ($baseline/2);
}
}
&.done {
color: #777;
// STATE: is completed
&.is-completed {
border-bottom: ($baseline/5) solid $m-green-l2;
.wrapper-step-number {
border-color: $m-green-l2;
}
.step-number, .step-name {
color: $m-gray-l3;
}
}
// STATE: is current
&.is-current {
border-bottom: ($baseline/5) solid $m-blue-d1;
opacity: 1.0;
.wrapper-step-number {
border-color: $m-blue-d1;
}
.number {
border: 4px solid #777;
color: #777;
.step-number, .step-name {
color: $m-gray-d3;
}
}
}
}
.number {
height: 2em;
width: 2em;
display: block;
margin: 0 auto ($baseline/2);
border: 4px solid #ddd;
border-radius: 20px;
background-color: #fff;
line-height: 2em;
text-align: center;
color: #ccc;
// ====================
// UI: slides
.carousel {
// carousel item
.carousel-item {
opacity: 0.0;
}
.mini {
height: .5em;
width: .5em;
margin-bottom: 1.5em;
// STATE: active
.carousel-active {
opacity: 1.0;
}
.progress-line,
.progress-line-done {
position: absolute;
top: 26%;
left: 8%;
height: 2px;
width: 100%;
display: inline-block;
background-color: #ddd;
// indiv slides
.wrapper-view {
padding: 0 $baseline !important;
}
.progress-line-done {
width: 20%;
background-color: #008801;
.view {
width: flex-grid(12,12);
> .title {
@extend .hd-lv2;
color: $m-blue-d1;
}
.instruction {
@extend .t-copy-lead1;
margin-bottom: $baseline;
}
}
}
.support {
margin-top: ($baseline*2);
}
.wrapper-task {
@include clearfix();
width: flex-grid(12,12);
margin: ($baseline*2) 0 $baseline 0;
.wrapper-help {
float: right;
width: flex-grid(6,12);
padding: ($baseline*0.75) $baseline;
// ====================
.help {
margin-bottom: ($baseline*1.5);
&:last-child {
margin-bottom: 0;
}
// VIEW: select a track
&.step-select-track {
.title {
@extend .hd-lv3;
}
.select {
@include clearfix();
.copy {
@extend .copy-detail;
}
.divider {
display: block;
clear: both;
width: 60%;
margin: $baseline $baseline 0 $baseline;
border-top: 2px solid #ddd;
// help - general list
.list-help {
p {
@extend .t-copy-base;
position: relative;
top: -$baseline;
width: 40px;
margin: 0 auto;
padding: 0 $baseline;
background-color: #fff;
color: #aaa;
text-align: center;
.help-item {
margin-bottom: ($baseline/4);
border-bottom: 1px solid $m-gray-l4;
padding-bottom: ($baseline/4);
&:last-child {
margin-bottom: 0;
border-bottom: none;
padding-bottom: 0;
}
}
}
// help - faq
.list-faq {
margin-bottom: $baseline;
.faq-question {
@extend .hd-lv3;
border-bottom: 1px solid $m-gray-l4;
padding-bottom: ($baseline/4);
}
.faq-answer {
margin-bottom: ($baseline*1.25);
}
}
}
}
.block {
position: relative;
.task {
@extend .ui-window;
float: left;
margin: 0 $baseline ($baseline*1.5) 0;
border-top: 5px solid #32A5D9;
background-color: #eee;
padding: $baseline ($baseline*1.5) ($baseline*2) ($baseline*1.5);
width: 60%;
width: flex-grid(6,12);
margin-right: flex-gutter();
}
.controls {
padding: ($baseline*0.75) $baseline;
background: $m-gray-l4;
&.block-cert {
border-top: 5px solid #008801;
.list-controls {
position: relative;
}
.ribbon {
background: transparent url('../images/vcert-ribbon-s.png') no-repeat 0 0;
position: absolute;
top: -($baseline*1.5);
right: $baseline;
display: block;
width: ($baseline*3);
height: ($baseline*4);
.control {
position: absolute;
.action {
@extend .btn-primary-blue;
padding: ($baseline/2) ($baseline*0.75);
*[class^="icon-"] {
@extend .t-icon4;
padding: ($baseline*.25) ($baseline*.5);
display: block;
}
}
// STATE: hidden
&.is-hidden {
visibility: hidden;
}
// STATE: shown
&.is-shown {
visibility: visible;
}
}
// STATE: approved
&.approved {
p, li, dl {
color: $lighter-base-font-color;
.action {
@extend .btn-primary-green;
}
}
}
.wrap-copy {
width: 60%;
display: inline-block;
vertical-align: middle;
// control - redo
.control-redo {
position: absolute;
left: ($baseline/2);
}
.title {
@extend .t-title4;
font-weight: bold;
// control - take/do
.control-do {
left: 45%;
}
.m-btn-primary {
// control - approve
.control-approve {
position: absolute;
bottom: ($baseline*1.5);
right: ($baseline*1.5);
right: ($baseline/2);
}
}
.msg {
@include clearfix();
margin-top: ($baseline*2);
.copy {
float: left;
width: flex-grid(8,12);
margin-right: flex-gutter();
}
.list-actions {
position: relative;
top: -($baseline/2);
float: left;
width: flex-grid(4,12);
text-align: right;
.action-retakephotos a {
@extend .btn-primary-gray;
}
}
}
.msg-followup {
border-top: ($baseline/10) solid $m-gray-t0;
padding-top: $baseline;
}
}
// indiv slides - photo
#wrapper-facephoto {
}
// indiv slides - ID
#wrapper-idphoto {
}
// indiv slides - review
#wrapper-review {
.review-task {
margin-bottom: ($baseline*1.5);
padding: ($baseline*0.75) $baseline;
border-radius: ($baseline/10);
background: $m-gray-l4;
&:last-child {
margin-bottom: 0;
}
> .title {
@extend .hd-lv3;
}
.copy {
@extend .copy-base;
strong {
@extend .t-weight5;
color: $m-gray-d4;
}
}
}
hr {
margin: 1em 0 2em 0;
// individual task - photos
.review-task-photos {
.wrapper-photos {
@include clearfix();
width: flex-grid(12,12);
margin: $baseline 0;
.wrapper-photo {
float: left;
width: flex-grid(6,12);
margin-right: flex-gutter();
&:last-child {
margin-right: 0;
}
.placeholder-photo {
@extend .ui-window;
padding: ($baseline*0.75) $baseline;
img {
display: block;
width: 100%;
margin: 0 auto;
}
}
}
.help-tips {
.title {
@extend .hd-lv5;
}
.copy {
@extend .copy-detail;
}
// help - general list
.list-tips {
.tip {
margin-bottom: ($baseline/4);
border-bottom: 1px solid $m-gray-t0;
padding-bottom: ($baseline/4);
&:last-child {
margin-bottom: 0;
border-bottom: none;
padding-bottom: 0;
}
}
}
}
}
}
.more {
margin-top: ($baseline/2);
border-top: 1px solid #ccc;
// individual task - name
.review-task-name {
@include clearfix();
.copy {
float: left;
width: flex-grid(8,12);
margin-right: flex-gutter();
}
.list-actions {
position: relative;
top: -($baseline);
float: left;
width: flex-grid(4,12);
text-align: right;
.action-editname a {
@extend .btn-primary-gray;
}
}
}
.tips {
float: right;
width: 32%;
// individual task - contribution
.review-task-contribution {
p {
@extend .t-copy-sub1;
.list-fields {
@include clearfix();
margin: $baseline 0;
.field {
float: left;
margin-right: ($baseline/2);
padding: ($baseline/2) ($baseline*0.75);
background: $m-gray-t0;
&:last-child {
margin-right: 0;
}
}
.field-group-other {
.contribution-option {
display: inline-block;
vertical-align: middle;
margin-right: ($baseline/4);
&:last-child {
margin-right: 0;
}
}
.contribution-option-other1 label, .contribution-option-other2 label {
@extend .text-sr;
}
}
}
}
}
}
// UI: camera states
.cam {
.placeholder-cam {
@include size(500px 375px);
margin: $baseline auto;
background: $m-blue-d1;
}
.controls {
height: ($baseline*4);
}
}
// ====================
// UI: deco - divider
.deco-divider {
position: relative;
display: block;
margin: $baseline 0 ($baseline*2) 0;
border-top: ($baseline/5) solid $m-gray-l4;
// VIEW: requirements
&.step-requirements {
.copy {
@extend .t-copy-lead1;
@extend .t-weight4;
position: absolute;
top: -($baseline*1.25);
left: 45%;
padding: ($baseline/2) ($baseline*1.5);
background: white;
text-align: center;
color: $m-gray-l2;
}
}
// ====================
// UI: nav - wizard
.nav-wizard {
@extend .ui-well;
@include clearfix;
width: flex-grid(12,12);
margin: $baseline 0;
border-radius: ($baseline/10);
background: $m-gray-l4;
.help-inline, .wizard-steps {
.section-head .title {
@extend .t-title4;
display: inline-block;
margin: ($baseline/4) 0;
}
.reqs {
margin: $baseline $baseline ($baseline*1.5) $baseline;
.help-inline {
@extend .t-copy-sub1;
float: left;
width: flex-grid(6,12);
margin: ($baseline*0.75) flex-gutter() 0 0;
}
.req {
height: 13em;
width: 27%;
display: inline-block;
margin-right: 1%;
border: 1px solid #ddd;
padding: $baseline 2%;
text-align: center;
vertical-align: top;
.wizard-steps {
float: right;
width: flex-grid(6,12);
text-align: right;
}
[class^="icon-"] {
display: block;
width: 150px;
margin: $baseline auto;
font-size: 75px;
// STATE: is ready
&.is-ready {
background: $m-blue-l4;
}
&.icon-id {
background: transparent url('../images/icon-id.png') no-repeat center center;
height: 70px;
}
&.is-not-ready {
background: $m-gray-l4;
}
}
// ====================
// UI: forms - payment
.contribution-options {
.contribution-option {
border-radius: ($baseline/5);
.label, label, input {
display: inline-block;
vertical-align: middle;
}
}
.label, label {
margin-bottom: 0;
}
.next-step {
float: right;
input {
margin-right: ($baseline/4);
}
.tip {
margin-top: $baseline;
.deco-denomination, .label-value, .denomination-name {
display: inline-block;
vertical-align: middle;
}
.deco-denomination {
}
.label-value {
@extend .t-weight4;
}
.denomination-name {
@include font-size(14);
color: $m-gray-l1;
}
// specific fields
#contribution-other-amt {
position: relative;
top: -($baseline/4);
width: ($baseline*3);
padding: ($baseline/4) ($baseline/2);
}
}
}
// ====================
// UI: main content
.wrapper-content-main {
}
.content-main {
width: flex-grid(12,12);
> .title {
@extend .hd-lv2;
color: $m-blue-d1;
}
hr {
margin: ($baseline*2);
.instruction {
@extend .t-copy-lead1;
margin-bottom: $baseline;
}
}
.steps-section {
// ====================
.section-head {
margin-bottom: ($baseline);
}
// UI: supplemental content
.wrapper-content-supplementary {
margin: ($baseline*1.5) 0;
border-top: ($baseline/4) solid $m-gray-l4;
}
.step {
width: 60%;
margin-left: 3%;
padding: ($baseline) ($baseline*1.5);
.content-supplementary {
width: flex-grid(12,12);
.step-title {
@extend .t-title5;
font-weight: bold;
}
.list-help {
@include clearfix();
.number {
@extend .t-title6;
height: 2em;
width: 2em;
display: inline-block;
margin: 0 ($baseline/2) 0 0;
border: 3px solid #000;
border-radius: 30px;
font-weight: bold;
line-height: 2em;
text-align: center;
color: #000;
}
.help-item {
width: flex-grid(4,12);
float: left;
margin-right: flex-gutter();
.copy {
@extend .t-copy-base;
margin-left: 65px;
&:last-child {
margin-right: 0
}
}
}
}
// ====================
// VIEW: select a track
&.step-select-track {
.form-register-choose {
@include clearfix();
width: flex-grid(12,12);
margin: $baseline 0;
// VIEW: take and review photos
&.step-photos {
.deco-divider {
width: flex-grid(8,12);
float: left;
}
}
.register-choice, .help-register {
float: left;
}
.register-choice {
width: flex-grid(8,12);
margin: 0 flex-gutter() $baseline 0;
border-top: ($baseline/4) solid $m-gray-d4;
padding: $baseline ($baseline*1.5);
background: $m-gray-l4;
&:last-child {
margin-bottom: none;
}
.wrapper-copy, .list-actions {
display: inline-block;
vertical-align: middle;
}
.wrapper-copy {
width: flex-grid(8,8);
}
.list-actions {
width: flex-grid(8,8);
text-align: right;
}
.title {
@extend .t-title5;
@extend .t-weight5;
margin-bottom: ($baseline/2);
}
.copy {
@extend .t-copy-base;
}
.action-select input {
@extend .t-weight4;
}
}
.register-choice-audit {
border-color: $m-blue-d1;
// TEMP: for dev placement only
.wrapper-cam,
.wrapper-photo {
height: 375px;
width: 500px;
background-color: #eee;
.wrapper-copy {
width: flex-grid(5,8);
}
.list-actions {
width: flex-grid(3,8);
}
.action-select input {
@extend .btn-primary-blue;
}
}
.register-choice-certificate {
border-color: $m-green-l1;
position: relative;
p {
.deco-ribbon {
position: absolute;
top: 40%;
left: 40%;
color: #ccc;
top: -($baseline*1.5);
right: $baseline;
display: block;
width: ($baseline*3);
height: ($baseline*4);
background: transparent url('../images/vcert-ribbon-s.png') no-repeat 0 0;
}
.list-actions {
margin-top: $baseline;
border-top: ($baseline/10) solid $m-gray-t1;
padding-top: $baseline;
}
.action-intro, .action-select {
display: inline-block;
vertical-align: middle;
}
.action-intro {
@extend .copy-detail;
width: flex-grid(3,8);
text-align: left;
}
.action-select {
width: flex-grid(5,8);
}
.action-select input {
@extend .btn-primary-green;
}
.action-intro {
}
}
.block-photo {
@include clearfix();
background-color: $white;
.help-register {
width: flex-grid(4,12);
.title {
@extend .t-title4;
@extend .hd-lv4;
@extend .t-weight4;
margin-bottom: ($baseline/2);
}
.wrapper-up,
.wrapper-down {
@include clearfix();
.copy {
@extend .copy-detail;
}
}
// progress indicator
.progress-sts-value {
width: 0%;
}
.wrapper-content-supplementary .content-supplementary .help-item {
width: flex-grid(3,12);
}
// contribution selection
.field-certificate-contribution {
margin: $baseline 0;
.label {
@extend .hd-lv4;
@extend .t-weight4;
margin-bottom: ($baseline/2);
}
}
.cam {
width: 500px;
.contribution-options {
@include clearfix();
margin: $baseline 0;
.field {
float: left;
padding-right: $baseline;
margin-right: ($baseline/2);
padding: ($baseline/2) ($baseline*0.75);
background: $m-gray-t0;
input {
width: auto;
}
&:last-child {
margin-right: 0;
}
}
.photo-controls {
background-color: #ddd;
#contribution-other-amt {
width: ($baseline*3);
padding: ($baseline/4) ($baseline/2);
}
.controls-list {
@include clearfix();
position: relative;
margin: 0;
padding: ($baseline*.25) ($baseline*.75);
list-style-type: none;
height: 60px;
.field-group-other {
.control {
display: inline-block;
.contribution-option {
display: inline-block;
vertical-align: middle;
margin-right: ($baseline/4);
.action {
@extend .button-primary;
display: block;
background-color: $blue;
color: $white;
border: 3px solid #1A74A0;
border-radius: 40px;
padding: 10px 5px;
text-align: center;
i {
padding: ($baseline*.25) ($baseline*.5);
display: block;
}
&:last-child {
margin-right: 0;
}
}
&:hover {
.contribution-option-other1 label, .contribution-option-other2 label {
@extend .text-sr;
}
}
}
}
}
// VIEW: requirements
&.step-requirements {
}
// progress indicator
.progress-sts-value {
width: 0%;
}
.list-reqs {
@include clearfix();
width: flex-grid(12,12);
&.is-hidden {
visibility: hidden;
}
.req {
@extend .ui-window;
width: flex-grid(4,12);
min-height: ($baseline*15);
float: left;
margin-right: flex-gutter();
text-align: center;
&.is-shown {
visibility: visible;
}
&:last-child {
margin-right: 0;
}
.title {
@extend .t-title5;
@extend .t-weight4;
padding: $baseline;
border-bottom: 1px solid $m-green-l2;
background: $m-green-l4;
&.control-do {
position: relative;
left: 45%;
}
}
&.control-redo {
position: absolute;
left: ($baseline/2);
}
.placeholder-art {
position: relative;
display: inline-block;
margin: $baseline 0 ($baseline/2) 0;
padding: $baseline;
background: $m-green-l2;
border-radius: ($baseline*10);
*[class^="icon"] {
@extend .t-icon1;
color: $white;
}
&.control-approve {
position: absolute;
right: ($baseline/2);
}
.icon-over, .icon-under {
position: relative;
}
&.approved a {
background-color: $green;
}
.icon-under {
@extend .ui-depth1;
}
.icon-over {
@extend .ui-depth2;
@extend .t-icon5;
position: absolute;
left: 24px;
top: 34px;
background: $m-green-l2;
padding: 3px 5px;
}
}
}
.faq {
width: 45%;
float: left;
padding-right: $baseline;
.copy {
padding: ($baseline/2) $baseline;
}
.copy-super, .copy-sub {
display: block;
}
.copy-super {
@extend .t-copy-base;
margin-bottom: ($baseline/2);
color: $m-green;
}
.copy-sub {
@extend .t-copy-sub2;
}
.actions {
padding: ($baseline/2) $baseline;
}
}
}
}
.photo-tips {
@extend .t-copy-sub1;
width: 45%;
float: left;
// VIEW: take and review photos
&.step-photos {
.title {
@extend .t-title5;
border-bottom: 1px solid #ddd;
padding-bottom: ($baseline/4);
font-weight: bold;
}
}
// VIEW: take cam photo
&.step-photos-cam {
// progress indicator
.progress-sts-value {
width: 20%;
}
}
.next-step {
margin-top: $baseline;
// VIEW: take id photo
&.step-photos-id {
.tip {
margin-top: $baseline;
}
// progress indicator
.progress-sts-value {
width: 40%;
}
}
.support {
margin-top: ($baseline*2);
}
// VIEW: review photos
&.step-review {
.review-photo {
width: 500px;
float: left;
.nav-wizard {
.title {
@extend .t-title5;
margin-top: $baseline;
.help-inline {
width: flex-grid(4,12);
margin-top: 0
}
.wizard-steps {
float: right;
width: flex-grid(8,12);
.wizard-step {
width: flex-grid(4,8);
margin-right: flex-gutter();
display: inline-block;
vertical-align: middle;
&:last-child {
margin-right: 0;
}
}
}
.step-match {
label {
@extend .t-copy-sub1;
}
}
.step-proceed {
}
}
// progress indicator
.progress-sts-value {
width: 60%;
}
}
#review-facephoto {
margin-right: $baseline;
// VIEW: take and review photos
&.step-confirmation {
// progress indicator
.progress-sts-value {
width: 100%;
}
}
}
......@@ -4,6 +4,7 @@
<%namespace name='static' file='/static_content.html'/>
<%block name="bodyclass">register verification-process step-photos</%block>
<%block name="title"><title>${("Register for [Course Name] | Verification")}</title></%block>
<%block name="js_extra">
<script src="${static.url('js/vendor/responsive-carousel/responsive-carousel.js')}"></script>
......@@ -150,238 +151,367 @@
initSnapshotHandler(["photo_id", "face"]);
});
</script>
</%block>
<%block name="content">
<div class="container">
<header class="page-header">
<h2 class="title">You are registering for ${course_name} (ID Verified)</h2>
</header>
<section class="progress">
<header class="section-head">
<h3 class="sr title">Your Progress</h3>
<section class="wrapper">
<header class="page-header">
<h2 class="title">
<span class="wrapper-sts">
<span class="sts">You are registering for</span>
<span class="sts-course">${course_id} </span>
</span>
<span class="sts-track">
<span class="sts-track-label">Registering as: </span>
<span class="sts-track-value">ID Verified</span>
</span>
</h2>
</header>
<!--<span class="progress-status"></span><span class="progress-status-value"></span>-->
<ol class="progress-steps">
<li class="progress-step done" id="progress-step0"><span class="mini number"></span> Intro</li>
<li class="progress-step current" id="progress-step1"><span class="sr">Current Step: </span> <span class="number">1</span> Take Photo</li>
<li class="progress-step" id="progress-step2"> <span class="number">2</span> Take ID Photo</li>
<li class="progress-step" id="progress-step3"> <span class="number">3</span> Confirm Submission</li>
<li class="progress-step" id="progress-step4"> <span class="number">4</span> Make Payment</li>
<li class="progress-step" id="progress-step5"><span class="number"><i class="icon-ok"></i></span> Confirmation</li>
</ol>
</section>
<section class="wrapper carousel" data-transition="slide">
<div id="wrapper-facephoto" class="block-photo">
<h3 class="title">Take Your Photo</h3>
<p>Use your webcam to take a picture of your face so we can match it with the picture on your ID.</p>
<div class="wrapper-up">
<div id="facecam" class="cam">
<div class="wrapper-cam">
<video id="face_video" width="500" height="375" autoplay></video><br/>
<canvas id="face_canvas" style="display:none;" width="640" height="480"></canvas>
</div>
<div class="controls photo-controls">
<ul class="controls-list">
<li class="control control-redo" id="face_reset_button">
<a class="action action-redo" href=""><i class="icon-undo"></i> <span class="sr">Retake</span></a>
</li>
<li class="control control-do" id="face_capture_button">
<a class="action action-do" href=""><i class="icon-camera"></i> <span class="sr">Take photo</span></a>
</li>
<li class="control control-approve" id="face_approve_button">
<a class="action action-approve" href=""><i class="icon-ok"></i> <span class="sr">Looks good</span></a>
</li>
</ul>
</div>
</div>
<div class="help photo-tips facetips">
<h4 class="title">Tips on taking a successful photo</h4>
<ul>
<li>Make sure your face is well-lit</li>
<li>Be sure your entire face is inside the frame</li>
<li>Can we match the photo you took with the one on your ID?</li>
<li>Click the checkmark once you are happy with the photo</li>
</ul>
<h4 class="title">Common Questions</h4>
<dl>
<dt>Why do you need my photo?</dt>
<dd>We need your photo to confirm that you are you.</dd>
<dt>What do you do with this picture?</dt>
<dd>We only use it to verify your identity. It is not displayed anywhere.</dd>
</dl>
</div>
</div>
<div class="wrapper-down">
<div class="next-step">
<p class="m-btn-primary" id="face_next_button">
<a class="next" href="#next" aria-hidden="true" title="Next">Go to Step 2: Take ID Photo</a>
</p>
<p class="tip">Once you verify your photo looks good, you can move on to step 2.</p>
</div>
</div>
</div>
<div id="wrapper-idphoto" class="block block-photo">
<h3 class="title">Take Your Photo</h3>
<p>Use your webcam to take a picture of your face so we can match it with the picture on your ID.</p>
<div class="wrapper-up">
<div id="idcam" class="cam">
<div class="wrapper-cam">
<video id="photo_id_video" width="500" height="375" autoplay></video><br/>
<canvas id="photo_id_canvas" style="display:none;" width="640" height="480"></canvas>
</div>
<div class="controls photo-controls">
<ul class="controls-list">
<li class="control control-redo" id="photo_id_reset_button">
<a class="action action-redo" href=""><i class="icon-undo"></i> <span class="sr">Retake</span></a>
</li>
<li class="control control-do" id="photo_id_capture_button">
<a class="action action-do" href=""><i class="icon-camera"></i> <span class="sr">Take photo</span></a>
</li>
<li class="control control-approve" id="photo_id_approve_button">
<a class="action action-approve" href=""><i class="icon-ok"></i> <span class="sr">Looks good</span></a>
</li>
</ul>
</div>
</div>
<div class="photo-tips idtips">
<h4 class="title">Tips on taking a successful photo</h4>
<ul>
<li>Make sure your ID is well-lit</li>
<li>Check that there isn't any glare</li>
<li>Ensure that you can see your photo and read your name</li>
<li>Try to keep your fingers at the edge to avoid covering important information</li>
</ul>
<h4 class="title">Common Questions</h4>
<dl>
<dt>Why do you need a photo of my ID?</dt>
<dd>We need to match your ID with your photo and name to confirm that you are you.</dd>
<dt>What do you do with this picture?</dt>
<dd>We encrypt it and send it to our secure authorization service for review. We use the highest levels of security and do not save the photo or information anywhere once the match has been completed.</dd>
</dl>
</div>
</div>
<div class="wrapper-down">
<div class="next-step">
<p class="m-btn-primary" id="photo_id_next_button">
<a class="next" href="#next" aria-hidden="true" title="Next">Go to Step 3: Review Your Info</a>
</p>
<p class="tip">Once you verify your ID photo looks good, you can move on to step 3.</p>
</div>
</div>
</div>
<div id="wrapper-review" class="block block-photo">
<h3 class="title">Verify Your Submission</h3>
<p>Make sure we can verify your identity with the photos and information below.</p>
<div class="review-name">
<h3>Check Your Name</h3>
<p>Make sure your full name on your edX account, <b>${user_full_name}</b>, matches your ID. We will also use this as the name on your certificate.</p>
<p><a href="#">Edit my name</a></p>
</div>
<div class="wrapper-up">
<div id="review-facephoto" class="review-photo">
<div class="wrapper-photo">
<img id="face_image" width="500" height="375" src=""/>
</div>
<h4 class="title">The photo above needs to meet the following requirements:</h4>
<ul>
<li>Be well lit</li>
<li>Show your whole face</li>
<li>Match your ID</li>
</ul>
</div>
<div id="review-idphoto" class="review-photo">
<div class="wrapper-photo">
<img id="photo_id_image" width="500" height="375" src=""/>
</div>
<h4 class="title">The photo above needs to meet the following requirements:</h4>
<ul>
<li>Be readable (not too far away, no glare)</li>
<li>Show your name</li>
<li>Match the photo of your face and your name above</li>
</ul>
</div>
</div>
<p>Photos don't meet the requirements? <a href="">Retake the photos</a>.</p>
<hr />
<div class="wrapper-down">
<h3>Check Your Contribution</h3>
<%include file="/course_modes/_contribution.html" args="suggested_prices=suggested_prices, currency=currency, chosen_price=chosen_price"/>
</div>
<hr />
<div class="next-step">
<form id="pay_form" method="post" action="${purchase_endpoint}">
<!-- <input type="hidden" name="csrfmiddlewaretoken" value="${ csrf_token }"> -->
<input type="checkbox" name="match" id="confirm_pics_good" /> <label for="match">Yes! My details all match.</label>
<input type="hidden" name="course_id" value="${course_id | h}" />
<p class="m-btn-primary" id="pay_button_frame">
<input type="button" id="pay_button" value="Go to Step 4: Secure Payment" name="payment">
</p>
</form>
<p class="tip">Once you verify your details match the requirements, <br />you can move on to step 4, payment on our secure server.</p>
</div>
<div class="wrapper-progress">
<section class="progress">
<h3 class="sr title">Your Progress</h3>
<ol class="progress-steps">
<li class="progress-step is-completed" id="progress-step0">
<span class="wrapper-step-number"><span class="step-number">0</span></span>
<span class="step-name">Intro</span>
</li>
<li class="progress-step is-current" id="progress-step1">
<span class="wrapper-step-number"><span class="step-number">1</span></span>
<span class="step-name"><span class="sr">Current Step: </span>Take Photo</span>
</li>
<li class="progress-step" id="progress-step2">
<span class="wrapper-step-number"><span class="step-number">2</span></span>
<span class="step-name">Take ID Photo</span>
</li>
<li class="progress-step" id="progress-step3">
<span class="wrapper-step-number"><span class="step-number">3</span></span>
<span class="step-name">Review</span>
</li>
<li class="progress-step" id="progress-step4">
<span class="wrapper-step-number"><span class="step-number">4</span></span>
<span class="step-name">Make Payment</span>
</li>
<li class="progress-step" id="progress-step5">
<span class="wrapper-step-number"><span class="step-number">
<i class="icon-ok"></i>
</span></span>
<span class="step-name">Confirmation</span>
</li>
</ol>
<span class="progress-sts">
<span class="progress-sts-value"></span>
</span>
</section>
</div>
</section>
<section class="support">
<p class="tip">More questions? <a rel="external" href="#">Check out our FAQs. (not active yet)</a></p>
<p class="tip">Change your mind? <a href="${reverse('course_modes_choose') + '?course_id=' + course_id }">You can always Audit the course for free without verifying.</a></p>
<div class="wrapper-content-main">
<article class="content-main">
<section class="wrapper carousel" data-transition="slide">
<div id="wrapper-facephoto" class="wrapper-view block-photo">
<div class="facephoto view">
<h3 class="title">Take Your Photo</h3>
<div class="instruction">
<p>Use your webcam to take a picture of your face so we can match it with the picture on your ID.</p>
</div>
<div class="wrapper-task">
<div id="facecam" class="task cam">
<div class="placeholder-cam">
<video id="face_video" width="500" height="375" autoplay></video><br/>
<canvas id="face_canvas" style="display:none;" width="640" height="480"></canvas>
</div>
<div class="controls photo-controls">
<ul class="list-controls">
<li class="control control-redo" id="face_reset_button">
<a class="action action-redo" href="">
<i class="icon-undo"></i> <span class="sr">Retake</span>
</a>
</li>
<li class="control control-do" id="face_capture_button">
<a class="action action-do" href="">
<i class="icon-camera"></i><span class="sr">Take photo</span>
</a>
</li>
<li class="control control-approve" id="face_approve_button">
<a class="action action-approve" href="">
<i class="icon-ok"></i> <span class="sr">Looks good</span>
</a>
</li>
</ul>
</div>
</div>
<div class="wrapper-help">
<div class="help help-task photo-tips facetips">
<h4 class="title">Tips on taking a successful photo</h4>
<div class="copy">
<ul class="list-help">
<li class="help-item">Make sure your face is well-lit</li>
<li class="help-item">Be sure your entire face is inside the frame</li>
<li class="help-item">Can we match the photo you took with the one on your ID?</li>
<li class="help-item">Click the checkmark once you are happy with the photo</li>
</ul>
</div>
</div>
<div class="help help-faq facefaq">
<h4 class="sr title">Common Questions</h4>
<div class="copy">
<dl class="list-faq">
<dt class="faq-question">Why do you need my photo?</dt>
<dd class="faq-answer">We need your photo to confirm that you are you.</dd>
<dt class="faq-question">What do you do with this picture?</dt>
<dd class="faq-answer">We only use it to verify your identity. It is not displayed anywhere.</dd>
</dl>
</div>
</div>
</div>
</div>
<nav class="nav-wizard">
<span class="help help-inline">Once you verify your photo looks good, you can move on to step 2.</span>
<ol class="wizard-steps">
<li class="wizard-step">
<a class="next action-primary" id="face_next_button" href="#next" aria-hidden="true" title="Next">Go to Step 2: Take ID Photo</a>
</li>
</ol>
</nav>
</div> <!-- /view -->
</div> <!-- /wrapper-view -->
<div id="wrapper-idphoto" class="wrapper-view block-photo">
<div class="idphoto view">
<h3 class="title">Show Us Your ID</h3>
<div class="instruction">
<p>Use your webcam to take a picture of your face so we can match it with the picture on your ID.</p>
</div>
<div class="wrapper-task">
<div id="idcam" class="task cam">
<div class="placeholder-cam">
<video id="photo_id_video" width="500" height="375" autoplay></video><br/>
<canvas id="photo_id_canvas" style="display:none;" width="640" height="480"></canvas>
</div>
<div class="controls photo-controls">
<ul class="list-controls">
<li class="control control-redo" id="photo_id_reset_button">
<a class="action action-redo" href="">
<i class="icon-undo"></i> <span class="sr">Retake</span>
</a>
</li>
<li class="control control-do" id="photo_id_capture_button">
<a class="action action-do" href="">
<i class="icon-camera"></i> <span class="sr">Take photo</span>
</a>
</li>
<li class="control control-approve" id="photo_id_approve_button">
<a class="action action-approve" href="">
<i class="icon-ok"></i> <span class="sr">Looks good</span>
</a>
</li>
</ul>
</div>
</div>
<div class="wrapper-help">
<div class="help help-task photo-tips facetips">
<h4 class="title">Tips on taking a successful photo</h4>
<div class="copy">
<ul>
<li>Make sure your ID is well-lit</li>
<li>Check that there isn't any glare</li>
<li>Ensure that you can see your photo and read your name</li>
<li>Try to keep your fingers at the edge to avoid covering important information</li>
</ul>
</div>
</div>
<div class="help help-faq facefaq">
<h4 class="sr title">Common Questions</h4>
<div class="copy">
<dl class="list-faq">
<dt class="faq-question">Why do you need a photo of my ID?</dt>
<dd class="faq-answer">We need to match your ID with your photo and name to confirm that you are you.</dd>
<dt class="faq-question">What do you do with this picture?</dt>
<dd class="faq-answer">We encrypt it and send it to our secure authorization service for review. We use the highest levels of security and do not save the photo or information anywhere once the match has been completed.</dd>
</dl>
</div>
</div>
</div>
</div>
<nav class="nav-wizard">
<span class="help help-inline">Once you verify your ID photo looks good, you can move on to step 3.</span>
<ol class="wizard-steps">
<li class="wizard-step">
<a class="next action-primary" id="photo_id_next_button" href="#next" aria-hidden="true" title="Next">Go to Step 3: Review Your Info</a>
</li>
</ol>
</nav>
</div> <!-- /view -->
</div> <!-- /wrapper-view -->
<div id="wrapper-review" class="wrapper-view">
<div class="review view">
<h3 class="title">Verify Your Submission</h3>
<div class="instruction">
<p>Make sure we can verify your identity with the photos and information below.</p>
</div>
<div class="wrapper-task">
<ol class="review-tasks">
<li class="review-task review-task-name">
<h4 class="title">Check Your Name</h4>
<div class="copy">
<p>Make sure your full name on your edX account, ${user_full_name}, matches your ID. We will also use this as the name on your certificate.</p>
</div>
<ul class="list-actions">
<li class="action action-editname">
<a rel="modal" class="edit-name" href="#">Edit my name</a>
</li>
</ul>
</li>
<li class="review-task review-task-photos">
<h4 class="title">Review the Photos You've Taken</h4>
<div class="copy">
<p>Make sure your full name on your edX account, <strong>${user_full_name}</strong>, matches your ID. We will also use this as the name on your certificate.</p>
</div>
<ol class="wrapper-photos">
<li class="wrapper-photo">
<div class="placeholder-photo">
<img id="face_image" src=""/>
</div>
<div class="help-tips">
<h5 class="title">The photo above needs to meet the following requirements:</h5>
<ul class="list-help list-tips copy">
<li class="tip">Be well lit</li>
<li class="tip">Show your whole face</li>
<li class="tip">Match your ID</li>
</ul>
</div>
</li>
<li class="wrapper-photo">
<div class="placeholder-photo">
<img id="photo_id_image" src=""/>
</div>
<div class="help-tips">
<h5 class="title">The photo above needs to meet the following requirements:</h5>
<ul class="list-help list-tips copy">
<li class="tip">Be readable (not too far away, no glare)</li>
<li class="tip">Show your name</li>
<li class="tip">Match the photo of your face and your name above</li>
</ul>
</div>
</li>
</ol>
<div class="msg msg-retake msg-followup">
<div class="copy">
<p>Photos don't meet the requirements?</p>
</div>
<ul class="list-actions">
<li class="action action-retakephotos">
<a class="retake-photos" href="#">Retake Your Photos</a>
</li>
</ul>
</div>
</li>
<li class="review-task review-task-contribution">
<h4 class="title">Check Your Contribution Level</h4>
<div class="copy">
<p>Please confirm your contribution for this course:</p>
</div>
<%include file="/course_modes/_contribution.html" args="suggested_prices=suggested_prices, currency=currency, chosen_price=chosen_price"/>
</li>
</ol>
</div>
<nav class="nav-wizard">
<span class="help help-inline">Once you verify your details match the requirements, you can move on to step 4, payment on our secure server.</span>
<ol class="wizard-steps">
<li class="wizard-step step-match">
<input type="checkbox" name="match" id="confirm_pics_good" />
<label for="confirm_pics_good">Yes! My details all match.</label>
</li>
<li class="wizard-step step-proceed">
<form id="pay_form" method="post" action="${purchase_endpoint}">
<input type="hidden" name="csrfmiddlewaretoken" value="${ csrf_token }">
<input type="hidden" name="course_id" value="${course_id | h}" />
<button type="submit" class="action-primary" id="pay_button">Go to Step 4: Secure Payment</button>
<!-- <input class="action-primary" type="button" id="pay_button" value="Go to Step 4: Secure Payment" name="payment"> -->
</form>
</li>
</ol>
</nav>
</div> <!-- /view -->
</div> <!-- /wrapper-view -->
</section>
</article>
</div> <!-- /wrapper-content-main -->
<div class="wrapper-content-supplementary">
<aside class="content-supplementary">
<ul class="list-help">
<li class="help-item">
<h3 class="title">Have questions?</h3>
<div class="copy">
<p>Please read <a rel="external" href="">our FAQs to view common questions about our certificates</a>.</p>
</div>
</li>
<li class="help-item">
<h3 class="title">Change your mind?</h3>
<div class="copy">
<p>You can always <a href="">Audit the course for free</a> without verifying.</p>
</div>
</li>
</ul>
</aside>
</div> <!-- /wrapper-content-supplementary -->
</section>
</div>
<section id="edit-name" class="modal">
<header>
<h4>${_("Edit Your Full Name")}</h4>
......@@ -407,6 +537,4 @@
<span class="label">close</span>
</a>
</section>
</%block>
......@@ -2,70 +2,154 @@
<%! from django.core.urlresolvers import reverse %>
<%inherit file="../main.html" />
<%block name="bodyclass">register verification-process step-requirements</%block>
<%block name="title"><title>${("Register for [Course Name]")}</title></%block>
<%block name="content">
<div class="container">
<section class="wrapper">
<header class="page-header header-white">
<h2 class="title header-white-title">You are registering for ${course_id} (ID Verified)</h2>
<header class="page-header">
<h2 class="title">
<span class="wrapper-sts">
<span class="sts">You are registering for</span>
<span class="sts-course">${course_id}</span>
</span>
<span class="sts-track">
<span class="sts-track-label">Registering as: </span>
<span class="sts-track-value">ID Verified</span>
</span>
</h2>
</header>
<div class="wrapper-progress">
<section class="progress">
<h3 class="sr title">Your Progress</h3>
<section class="progress">
<header class="section-head">
<h3 class="sr">Your Progress</h3>
</header>
<!--<span class="progress-line"></span><span class="progress-line-done"></span>-->
<ol>
<li class="progress-step current" id="progress-step0"><span class="sr">Current Step: </span> <span class="mini number"></span> Intro</li>
<li class="progress-step" id="progress-step1"><span class="number">1</span> Take Photo</li>
<li class="progress-step" id="progress-step2"> <span class="number">2</span> Take ID Photo</li>
<li class="progress-step" id="progress-step3"> <span class="number">3</span> Confirm Submission</li>
<li class="progress-step" id="progress-step4"> <span class="number">4</span> Make Payment</li>
<li class="progress-step" id="progress-step5"><span class="number"><i class="icon-ok"></i></span> Confirmation</li>
</ol>
</section>
<section class="reqs-section">
<header class="section-head">
<ol class="progress-steps">
<li class="progress-step is-current" id="progress-step0">
<span class="wrapper-step-number"><span class="step-number">0</span></span>
<span class="step-name">Intro</span>
</li>
<li class="progress-step" id="progress-step1">
<span class="wrapper-step-number"><span class="step-number">1</span></span>
<span class="step-name"><span class="sr">Current Step: </span>Take Photo</span>
</li>
<li class="progress-step" id="progress-step2">
<span class="wrapper-step-number"><span class="step-number">2</span></span>
<span class="step-name">Take ID Photo</span>
</li>
<li class="progress-step" id="progress-step3">
<span class="wrapper-step-number"><span class="step-number">3</span></span>
<span class="step-name">Review</span>
</li>
<li class="progress-step" id="progress-step4">
<span class="wrapper-step-number"><span class="step-number">4</span></span>
<span class="step-name">Make Payment</span>
</li>
<li class="progress-step" id="progress-step5">
<span class="wrapper-step-number"><span class="step-number">
<i class="icon-ok"></i>
</span></span>
<span class="step-name">Confirmation</span>
</li>
</ol>
<span class="progress-sts">
<span class="progress-sts-value"></span>
</span>
</section>
</div>
<div class="wrapper-content-main">
<article class="content-main">
<h3 class="title">What You Will Need to Register</h3>
</header>
<p>There are a few things you will need to register as an ID verified student:</p>
<div class="reqs">
<div class="req1 req">
<h4>Identification</h4>
<div class="art"><i class="icon-id"></i></div>
<p>A photo identification document <span class="tip">a drivers license, passport, student ID, or other ID with your name and picture on it</span></p>
</div>
<div class="req2 req">
<h4>Webcam</h4>
<i class="icon-facetime-video"></i>
<p>A webcam and a modern browser <span class="tip">Firefox, Chrome, or Opera</span></p>
<div class="instruction">
<p>There are a few things you will need to register as an ID verified student:</p>
</div>
<div class="req3 req">
<h4>Credit or Debit Card</h4>
<i class="icon-credit-card"></i>
<p>A major credit or debit card <span class="tip">Visa, Master Card, Maestro, Amex, Discover, JCB with Discover logo, Diners Club</span></p>
</div>
</div>
<ul class="list-reqs">
<li class="req req-1 req-id">
<h4 class="title">Identification</h4>
<div class="placeholder-art">
<i class="icon-list-alt icon-under"></i>
<i class="icon-user icon-over"></i>
</div>
<div class="next-step">
<p class="m-btn-primary"><a href="${reverse('verify_student_verify') + '?course_id=' + course_id}">Go to Step 1: Take my Photo</a></p>
<p class="tip">Change your mind? <a href="">You can always Audit.</a></p>
</div>
</section>
<div class="copy">
<p>
<span class="copy-super">A photo identification document</span>
<span class="copy-sub">a drivers license, passport, student ID, or other ID with your name and picture on it</span>
</p>
</div>
</li>
<li class="req req-2 req-webcam">
<h4 class="title">Webcam</h4>
<div class="placeholder-art">
<i class="icon-facetime-video"></i>
</div>
<section class="support">
<p class="tip">Missing something? <a href="">You can always Audit the course</a>.</p>
<p class="tip">More questions? <a rel="external" href="">Check out our FAQs.</a></p>
</section>
<div class="copy">
<p>
<span class="copy-super">A webcam and a modern browser</span>
<span class="copy-sub">Firefox, Chrome, or Opera</span>
</p>
</div>
</li>
</section>
<li class="req req-3 req-payment">
<h4 class="title">Credit or Debit Card</h4>
<div class="placeholder-art">
<i class="icon-credit-card"></i>
</div>
<div class="copy">
<p>
<span class="copy-super">A major credit or debit card</span>
<span class="copy-sub">Visa, Master Card, Maestro, Amex, Discover, JCB with Discover logo, Diners Club</span>
</p>
</div>
</li>
</ul>
<nav class="nav-wizard">
<span class="help help-inline">Missing something? You can always <a href="">audit this course instead</a></span>
<ol class="wizard-steps">
<li class="wizard-step">
<a class="next action-primary" id="face_next_button" href="${reverse('verify_student_verify') + '?course_id=' + course_id}">Go to Step 1: Take my Photo</a>
</li>
</ol>
</nav>
</article>
</div> <!-- /wrapper-content-main -->
<div class="wrapper-content-supplementary">
<aside class="content-supplementary">
<ul class="list-help">
<li class="help-item">
<h3 class="title">Have questions?</h3>
<div class="copy">
<p>Please read <a rel="external" href="">our FAQs to view common questions about our certificates</a>.</p>
</div>
</li>
<li class="help-item">
<h3 class="title">Change your mind?</h3>
<div class="copy">
<p>You can always <a href="">Audit the course for free</a> without verifying.</p>
</div>
</li>
</ul>
</aside>
</div> <!-- /wrapper-content-supplementary -->
</section>
</div>
</%block>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment