Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Issue 3234 | Add landmarks #303

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ html(ng-app='accounts', xmlns='http://www.w3.org/1999/xhtml', lang='en', xml:lan
.img
ui-view.view-container

div(ui-view="footer", ng-controller="FooterController as vm", ng-hide="hideCommonFooter", role="region" aria-label="Footer")
div(ui-view="footer", ng-controller="FooterController as vm", ng-hide="hideCommonFooter", role="contentinfo" aria-label="Footer")
.account-footer
a.privacy-policy(ng-href="https://www.topcoder.com/community/how-it-works/privacy-policy/", target="_blank")
| Privacy Policy
Expand Down
1 change: 1 addition & 0 deletions app/styles/tc/account.scss
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
width: 380px;
font-size: 20px;
line-height: 30px;
margin: 0 auto;
margin-bottom: 40px;
margin-top: 39px;
text-transform: uppercase;
Expand Down
99 changes: 50 additions & 49 deletions app/views/tc/login.jade
Original file line number Diff line number Diff line change
Expand Up @@ -6,55 +6,56 @@
- var logoSso = require("../../images/tc/sso.svg")

.login-container
header
header(role="banner")
a.logo-link(href="/", title="Back to the home page")
img(src=logoMobile, alt="Topcoder Logo")

h1 LOG IN TO TOPCODER

form(name="vm.loginForm", role="form", ng-submit="vm.loginForm.$valid && vm.login()", novalidate)
.form-errors(ng-messages="vm.loginErrors")
p.form-error(ng-message="USERNAME_NONEXISTANT" role="alert") We couldn't find a member with that {{vm.emailOrUsername || "username"}}. Please check that you entered it correctly.

p.form-error(ng-message="WRONG_PASSWORD" role="alert") That password is incorrect. Please check that you entered the right one.

p.form-error(ng-message="SOCIAL_LOGIN_ERROR" role="alert") User with that profile is not registered.

div.validation-bar(ng-class="{'error-bar': vm.loginErrors.USERNAME_NONEXISTANT}")
input(ng-model="vm.username", placeholder="Username or Email", type="text", required, aria-invalid="false")

toggle-password

p.problem-signin
a.forgot-password(href="{{vm.forgotPasswordUrl}}", aria-label="forgot password") Forgot your password?

button.tc-btn.tc-btn-wide(type="submit", ng-disabled="vm.loginForm.$invalid || vm.loading") Log In

section.login-options
p.tc-separator
span Or Log in With

ul.networks
li.network.github()
a.ico(ng-click="vm.socialLogin('github')", tabIndex="0", href="#", title="Login with GitHub")
img(src=logoGithub, alt="Github Logo")
span Github
li.network.google-plus()
a.ico(ng-click="vm.socialLogin('google-oauth2')", tabIndex="0", href="#", title="Login with Google")
img(src=logoGooglePlus, alt="Google Logo")
span Google
li.network.facebook()
a.ico(ng-click="vm.socialLogin('facebook')", tabIndex="0", href="#", title="Login with Facebook")
img(src=logoFacebook, alt="Facebook Logo")
span Facebook
li.network.twitter()
a.ico(ng-click="vm.socialLogin('twitter')", tabIndex="0", href="#", title="Login with Twitter")
img(src=logoTwitter, alt="Twitter Logo")
span Twitter
li.network.sso()
a.ico(ui-sref="SSO_LOGIN({app:'member',retUrl:vm.$stateParams.retUrl})", tabIndex="0", href="#", title="Login with Single Sign On")
img(src=logoSso, alt="Single Sign On Logo")
span Single Sign On

p.join-topcoder Not a member yet?  

main
h1 LOG IN TO TOPCODER

form(name="vm.loginForm", role="form", ng-submit="vm.loginForm.$valid && vm.login()", novalidate)
.form-errors(ng-messages="vm.loginErrors")
p.form-error(ng-message="USERNAME_NONEXISTANT" role="alert") We couldn't find a member with that {{vm.emailOrUsername || "username"}}. Please check that you entered it correctly.

p.form-error(ng-message="WRONG_PASSWORD" role="alert") That password is incorrect. Please check that you entered the right one.

p.form-error(ng-message="SOCIAL_LOGIN_ERROR" role="alert") User with that profile is not registered.

div.validation-bar(ng-class="{'error-bar': vm.loginErrors.USERNAME_NONEXISTANT}")
input(ng-model="vm.username", placeholder="Username or Email", type="text", required, aria-invalid="false")

toggle-password

p.problem-signin
a.forgot-password(href="{{vm.forgotPasswordUrl}}", aria-label="forgot password") Forgot your password?

button.tc-btn.tc-btn-wide(type="submit", ng-disabled="vm.loginForm.$invalid || vm.loading") Log In

section.login-options
p.tc-separator
span Or Log in With

ul.networks
li.network.github()
a.ico(ng-click="vm.socialLogin('github')", tabIndex="0", href="#", title="Login with GitHub")
img(src=logoGithub, alt="Github Logo")
span Github
li.network.google-plus()
a.ico(ng-click="vm.socialLogin('google-oauth2')", tabIndex="0", href="#", title="Login with Google")
img(src=logoGooglePlus, alt="Google Logo")
span Google
li.network.facebook()
a.ico(ng-click="vm.socialLogin('facebook')", tabIndex="0", href="#", title="Login with Facebook")
img(src=logoFacebook, alt="Facebook Logo")
span Facebook
li.network.twitter()
a.ico(ng-click="vm.socialLogin('twitter')", tabIndex="0", href="#", title="Login with Twitter")
img(src=logoTwitter, alt="Twitter Logo")
span Twitter
li.network.sso()
a.ico(ui-sref="SSO_LOGIN({app:'member',retUrl:vm.$stateParams.retUrl})", tabIndex="0", href="#", title="Login with Single Sign On")
img(src=logoSso, alt="Single Sign On Logo")
span Single Sign On

p.join-topcoder(role="region") Not a member yet?  
a(href="{{vm.registrationUrl}}") Join Now
147 changes: 74 additions & 73 deletions app/views/tc/register.jade
Original file line number Diff line number Diff line change
Expand Up @@ -4,116 +4,117 @@
- var logoFacebook = require("../../images/tc/facebook.svg")

.register-container
header
header(role="banner")
a.logo-link(href="/")
img(src=logoMobile, alt="Topcoder Logo")
.arrow
//- h1 Join the Topcoder technology community to earn, learn, and connect
h1 Join Topcoder
main
h1 Join Topcoder

form(name="vm.registerForm", role="form", ng-submit="vm.registerForm.$valid && vm.register()", novalidate, autocomplete="off" aria-label="Registration")
label(for="registration") Registration form
// Stops Chrome from autofilling and autocompleting (along with autocomplete="off" on the form)
input(autocomplete="false", name="hidden", type="text", style="display:none;")
form(name="vm.registerForm", role="form", ng-submit="vm.registerForm.$valid && vm.register()", novalidate, autocomplete="off" aria-label="Registration")
label(for="registration") Registration form
// Stops Chrome from autofilling and autocompleting (along with autocomplete="off" on the form)
input(autocomplete="false", name="hidden", type="text", style="display:none;")

p.form-error(ng-show="vm.errMsg" role="alert") {{vm.errMsg}}
p.form-error(ng-show="vm.errMsg" role="alert") {{vm.errMsg}}

.first-last-names
input-sticky-placeholder(sticky-placeholder="First", ng-model="vm.firstname")
input(ng-model="vm.firstname", maxlength="64", name="firstname", placeholder="First Name", type="text", required)
.first-last-names
input-sticky-placeholder(sticky-placeholder="First", ng-model="vm.firstname")
input(ng-model="vm.firstname", maxlength="64", name="firstname", placeholder="First Name", type="text", required)

input-sticky-placeholder(sticky-placeholder="Last", ng-model="vm.lastname")
input(ng-model="vm.lastname", maxlength="64", name="lastname", placeholder="Last Name", type="text", required)
input-sticky-placeholder(sticky-placeholder="Last", ng-model="vm.lastname")
input(ng-model="vm.lastname", maxlength="64", name="lastname", placeholder="Last Name", type="text", required)

.country-dropdown
angucomplete-alt(
input-name="country",
placeholder="Country",
pause="100",
selected-object="vm.updateCountry",
local-data="vm.countries",
initial-value="vm.countryObj",
search-fields="name",
title-field="name",
match-class="angucomplete-highlight",
field-tabindex="0"
minlength="1"
)
.country-dropdown
angucomplete-alt(
input-name="country",
placeholder="Country",
pause="100",
selected-object="vm.updateCountry",
local-data="vm.countries",
initial-value="vm.countryObj",
search-fields="name",
title-field="name",
match-class="angucomplete-highlight",
field-tabindex="0"
minlength="1"
)

.form-input-error(ng-show="vm.registerForm.country.$dirty && !vm.isValidCountry")
p.form-error(ng-show="!vm.isValidCountry" role="alert") Please choose a country from the list
.form-input-error(ng-show="vm.registerForm.country.$dirty && !vm.isValidCountry")
p.form-error(ng-show="!vm.isValidCountry" role="alert") Please choose a country from the list

.section-break
hr
.section-break
hr

.validation-bar(ng-class="{ 'error-bar': (vm.registerForm.username.$error.usernameIsFree || vm.registerForm.username.$error.minlength || vm.registerForm.username.$error.maxlength) }")
input-sticky-placeholder(sticky-placeholder="Username", ng-model="vm.username")
input(aria-describedby="tp-help-username", ng-model="vm.username", ng-model-options="{ debounce: {'default': 500} }", ng-focus="vm.usernameTips = true", ng-blur="usernameFocusLoss()", ng-minlength="2", ng-maxlength="15", name="username", placeholder="Username", type="text", username-is-free, required)
.validation-bar(ng-class="{ 'error-bar': (vm.registerForm.username.$error.usernameIsFree || vm.registerForm.username.$error.minlength || vm.registerForm.username.$error.maxlength) }")
input-sticky-placeholder(sticky-placeholder="Username", ng-model="vm.username")
input(aria-describedby="tp-help-username", ng-model="vm.username", ng-model-options="{ debounce: {'default': 500} }", ng-focus="vm.usernameTips = true", ng-blur="usernameFocusLoss()", ng-minlength="2", ng-maxlength="15", name="username", placeholder="Username", type="text", username-is-free, required)

.tips.username-tips(id="tp-help-username", role="tooltip", ng-show="vm.usernameTips")
.arrow
h2 Username Tips:
.tips.username-tips(id="tp-help-username", role="tooltip", ng-show="vm.usernameTips")
.arrow
h2 Username Tips:

p Your username will be public
p Your username will be public

p Please choose one that is between 2 and 15 characters
p Please choose one that is between 2 and 15 characters

p It can contain letters, numbers, and these characters: -_.{}[]
p It can contain letters, numbers, and these characters: -_.{}[]

.form-input-error(ng-if="vm.registerForm.username.$dirty && vm.registerForm.username.$invalid", ng-messages="vm.registerForm.username.$error")
p.form-error(ng-message="required" role="alert") Please enter a username.
p.form-error(ng-message="usernameIsFree" role="alert") {{vm.usernameErrorMessage}}
.form-input-error(ng-if="vm.registerForm.username.$dirty && vm.registerForm.username.$invalid", ng-messages="vm.registerForm.username.$error")
p.form-error(ng-message="required" role="alert") Please enter a username.
p.form-error(ng-message="usernameIsFree" role="alert") {{vm.usernameErrorMessage}}

p.form-error(ng-message="minlength" role="alert") That username is not the correct length or format.
p.form-error(ng-message="minlength" role="alert") That username is not the correct length or format.

p.form-error(ng-message="maxlength" role="alert") That username is not the correct length or format.
p.form-error(ng-message="maxlength" role="alert") That username is not the correct length or format.

.validation-bar(ng-class="{ 'error-bar': (vm.registerForm.email.$dirty && vm.registerForm.email.$invalid) }")
input-sticky-placeholder.email(sticky-placeholder="Email", ng-model="vm.email")
input(aria-describedby="tp-help-email", ng-model="vm.email", ng-model-options="{ debounce: {'default': 500} }", ng-focus="vm.emailTips = true", ng-blur="emailFocusLoss()", name="email", placeholder="Enter Your Email", type="email", valid-email, email-is-available, required, ng-disabled="!!vm.ssoUser")
.validation-bar(ng-class="{ 'error-bar': (vm.registerForm.email.$dirty && vm.registerForm.email.$invalid) }")
input-sticky-placeholder.email(sticky-placeholder="Email", ng-model="vm.email")
input(aria-describedby="tp-help-email", ng-model="vm.email", ng-model-options="{ debounce: {'default': 500} }", ng-focus="vm.emailTips = true", ng-blur="emailFocusLoss()", name="email", placeholder="Enter Your Email", type="email", valid-email, email-is-available, required, ng-disabled="!!vm.ssoUser")

.tips.email-tips(id="tp-help-email", role="tooltip", ng-show="vm.emailTips")
.arrow
h2 Email Tips:
.tips.email-tips(id="tp-help-email", role="tooltip", ng-show="vm.emailTips")
.arrow
h2 Email Tips:

p Your email address will be private and not shared with anyone.
p Your email address will be private and not shared with anyone.

p We'll occasionally send you emails related to your activities or interests.
p We'll occasionally send you emails related to your activities or interests.

.tips.email-tips(ng-show="vm.ssoForced")
.arrow
h2 Note:
.tips.email-tips(ng-show="vm.ssoForced")
.arrow
h2 Note:

p Your email address will be linked with your Organization account.
p Your email address will be linked with your Organization account.

p Please use Single Sign On when you log in to Topcoder.
p Please use Single Sign On when you log in to Topcoder.

.form-input-error(ng-show="vm.registerForm.email.$dirty && vm.registerForm.email.$invalid", ng-messages="vm.registerForm.email.$error")
p.form-error(ng-message="emailIsAvailable" role="alert") {{vm.emailErrorMessage}}
.form-input-error(ng-show="vm.registerForm.email.$dirty && vm.registerForm.email.$invalid", ng-messages="vm.registerForm.email.$error")
p.form-error(ng-message="emailIsAvailable" role="alert") {{vm.emailErrorMessage}}

p.form-error(ng-message="validEmail" role="alert") {{vm.emailErrorMessage}}
p.form-error(ng-message="validEmail" role="alert") {{vm.emailErrorMessage}}

p.form-error(ng-message="required" role="alert") Please enter an email address.
p.form-error(ng-message="required" role="alert") Please enter an email address.

.validation-bar
toggle-password-with-tips(ng-if="!vm.isSocialRegistration && !vm.ssoForced && !vm.ssoUser", placeholder="Create Password")
.validation-bar
toggle-password-with-tips(ng-if="!vm.isSocialRegistration && !vm.ssoForced && !vm.ssoUser", placeholder="Create Password")

.tips.password-tips(id="tp-help-password", role="tooltip", ng-show="vm.passwordFocus && !vm.ssoForced")
.arrow
//- h3 Password Tips:
.tips.password-tips(id="tp-help-password", role="tooltip", ng-show="vm.passwordFocus && !vm.ssoForced")
.arrow
//- h3 Password Tips:

H2 Your password must have:
H2 Your password must have:

p(ng-class="{ 'has-length-between-range': (vm.registerForm.password.$dirty && !vm.registerForm.password.$error.minlength && !vm.registerForm.password.$error.maxlength && !vm.registerForm.password.$error.required) }") At least 8 characters
p(ng-class="{ 'has-length-between-range': (vm.registerForm.password.$dirty && !vm.registerForm.password.$error.minlength && !vm.registerForm.password.$error.maxlength && !vm.registerForm.password.$error.required) }") At least 8 characters

p(ng-class="{ 'has-letter': (vm.registerForm.password.$dirty && !vm.registerForm.password.$error.hasLetter) }") At least one letter
p(ng-class="{ 'has-letter': (vm.registerForm.password.$dirty && !vm.registerForm.password.$error.hasLetter) }") At least one letter

p(ng-class="{ 'has-symbol-or-number': (vm.registerForm.password.$dirty && !vm.registerForm.password.$error.hasSymbolOrNumber) }") At least one number or symbol
p(ng-class="{ 'has-symbol-or-number': (vm.registerForm.password.$dirty && !vm.registerForm.password.$error.hasSymbolOrNumber) }") At least one number or symbol

section.terms
p By clicking "Join" you agree to Topcoder's #[a(href="http://www.topcoder.com/community/how-it-works/terms/", target="_blank") Terms] and #[a(href="http://www.topcoder.com/community/how-it-works/privacy-policy/", target="_blank") Privacy Policy]
section.terms
p By clicking "Join" you agree to Topcoder's #[a(href="http://www.topcoder.com/community/how-it-works/terms/", target="_blank") Terms] and #[a(href="http://www.topcoder.com/community/how-it-works/privacy-policy/", target="_blank") Privacy Policy]

button.tc-btn.tc-btn-large(type="submit", tc-busy-button, tc-busy-when="vm.registering", ng-disabled="vm.registerForm.$invalid || vm.registerForm.$pending", tabIndex="0") Join
button.tc-btn.tc-btn-large(type="submit", tc-busy-button, tc-busy-when="vm.registering", ng-disabled="vm.registerForm.$invalid || vm.registerForm.$pending", tabIndex="0") Join

div(role="region" aria-label="Register With")
section.login-options(ng-if="!vm.ssoUser")
Expand Down