William Sonoma notes, blacklane templates are almost done.

This commit is contained in:
Norm Rasmussen
2023-11-21 17:30:05 -05:00
parent 16d09ae658
commit be3cb15494
5 changed files with 374 additions and 165 deletions

View File

@ -0,0 +1,213 @@
{% if current_person.signed_in? == false %}
<script>
if (localStorage.getItem('learnerCompletedAdditionalInfo') == null) {
if(localStorage.getItem('registered') == null){
window.location.href = '/learners/sign_in'
} else {
if(localStorage.getItem('learnerCompletedAdditionalInfo') == true){
window.location.href = '/app/dashboard'
} else {
window.location.href = '/app/sign-up-follow-up'
}
}
//setTimeout(() => {
//}, 500)
}
</script>
{% else %}
{% if current_person.properties.learner_completed_additional_info == false %}
{% unless current_person.email contains '+preview-' %}
<script>
if (localStorage.getItem('learnerCompletedAdditionalInfo') == null || localStorage.getItem('learnerCompletedAdditionalInfo') == false) {
window.location.href = '/app/sign-up-follow-up'
}
</script>
{% endunless %}
{% else %}
<script>
localStorage.removeItem('registered');
localStorage.removeItem('learnerCompletedAdditionalInfo')
</script>
{% endif %}
{% endif %}
<header class="np-header np-header-color">
<div class="np-header-content">
<div class="np-hidden-desktop np-header-mobile-menu-nav">
{% if current_person.signed_in? %}
<button
data-toggle-class="np-hidden"
class="np-header-mobile-menu-nav-button fal fa-times np-hidden np-header-font-color"
data-toggle-target=".np-header-mobile-avatar-menu,
.np-header-mobile-menu-content, .np-main, .np-footer"
></button>
<button
data-test="open-mobile-menu"
data-toggle-class="np-hidden"
class="np-header-mobile-menu-nav-button np-header-mobile-avatar-menu"
data-toggle-target=".fa-times, .np-header-mobile-menu-content, .np-main, .np-footer"
>
<img
alt="{{ current_person.name }}"
class="np-header-avatar-image"
src="{{ current_person.avatar_url }}"
/>
</button>
{% endif %}
</div>
{% if current_school.logo_url %}
<h1 class="np-header-logo">
<a href="{% route home %}">
<img
alt="{{ current_school.name }}"
class="np-header-logo-image"
src="{{ current_school.logo_url }}"
/>
</a>
</h1>
{% else %}
<a href="{% route home %}" class="np-school-name np-header-font-color">
{{ current_school.name }}
</a>
{% endif %}
<div class="np-hidden-mobile np-header-desktop-nav">
<ul class="np-header-desktop-nav-list">
{% for website_navigation in navigations.header_navigations_external %}
<li class= "np-header-desktop-nav-item">
<a
href="{{ website_navigation.path }}"
class="np-header-desktop-nav-link np-header-font-color"
target="_blank"
>
{{ website_navigation.name }}
</a>
</li>
{% endfor %}
</ul>
</div>
{% if current_person.signed_in? %}
<div class="np-hidden-mobile np-header-search np-header-search-expanded">
<form action="{% route search %}" method="get" data-test="desktop-search">
<input
aria-label="{% t .search %}"
class="np-header-search-input np-header-font-background-color"
type="text"
name="q"
placeholder="{% t .search %}"
/>
<i class="np-header-search-icon far fa-search"></i>
</form>
</div>
<div class="np-hidden-mobile np-header-avatar">
<button
class="np-header-avatar-button"
data-test="open-desktop-menu"
data-toggle-class-on-target="np-hidden"
data-toggle-target=".np-header-avatar-tooltip"
data-toggle-outside
>
<img
alt="{{ current_person.name }}"
class="np-header-avatar-image"
src="{{ current_person.avatar_url }}"
>
</button>
<div class="np-header-avatar-tooltip np-hidden" role="tooltip">
<span class="np-header-avatar-tooltip-arrow-up"></span>
<div class="np-header-avatar-tooltip-learner">
<div class="np-header-avatar-tooltip-learner-name">
{{ current_person.name }}
</div>
<div class="np-header-avatar-tooltip-learner-email">
{{ current_person.email }}
</div>
</div>
<nav class="np-header-avatar-tooltip-navigation">
{% unless current_school.sso_active? %}
<a
class="np-header-avatar-tooltip-navigation-link"
href="{% route account %}"
>
{% t .profile_settings %}
</a>
{% endunless %}
<a
class="np-header-avatar-tooltip-navigation-link np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
</a>
</nav>
</div>
</div>
{% else %}
<a
class="np-header-sign-in np-header-desktop-nav-link np-header-font-color"
aria-label="{% t shared.sign_in %}"
href="{% route login %}"
>
{% t shared.sign_in %}
</a>
{% endif %}
</div>
</header>
<div class="np-hidden-desktop">
<div class="np-header-mobile-menu-content np-hidden">
{% if current_person.signed_in? %}
<img
alt="{{ current_person.name }}"
class="np-header-mobile-menu-content-avatar"
src="{{ current_person.avatar_url }}"
/>
<div class="np-header-mobile-menu-content-name">
{{ current_person.name }}
</div>
{% endif %}
<div class="np-header-mobile-menu-content-nav">
<form
class="np-header-search"
data-test="mobile-search"
method="get"
action="{% route search %}"
>
<input
aria-label="{% t .search %}"
class="np-header-search-input"
type="text"
name="q"
placeholder="{% t .search %}"
/>
<i class="np-header-search-icon far fa-search"></i>
</form>
{% for website_navigation in navigations.header_navigations %}
<a
href="{{ website_navigation.path }}"
class="np-header-mobile-menu-content-button"
{% if website_navigation.external? %} target="_blank" {% endif %}
>
{{ website_navigation.name }}
</a>
{% endfor %}
<div class="np-header-mobile-menu-content-line"></div>
{% unless current_school.sso_active? %}
<a
class="np-header-mobile-menu-content-button"
href="{% route account %}"
>
{% t .profile_settings %}
</a>
{% endunless %}
<a
class="np-header-mobile-menu-content-button np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
</a>
</div>
</div>
</div>
{% include "messages" %}

View File

@ -0,0 +1,32 @@
<nav class="np-sub-navigation">
<div class="np-sub-navigation-content">
{% for link in navigations.sub_navigation %}
{% if link.label == 'Dashboard' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
Courses
</a>
</div>
{% elsif link.label == 'Catalog' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}" style="display: none">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
</a>
</div>
{% elsif link.label == 'Home' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}" style="display: none">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
</a>
</div>
{% else %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endif %}
{% endfor %}
</div>
</nav>

View File

@ -0,0 +1,118 @@
<div class="sign-up-follow-up-container" onload="">
<div class="sign-up-follow-up-content">
<h1 class="sign-up-follow-up-prompt">Please select your region: </h1>
<div class="region-container">
<a class="info-group-option" href="https://blacklane-chauffeur.northpass.com/g/d3e0178633f329a3efb0e5344c7fc979d37fa7f8">
Europe, Middle East, Africa, & Asia-Pacific
</a>
<a class="info-group-option" href="https://blacklane-chauffeur.northpass.com/g/4a3da78266888b8523905f23cef9f2736d2d5178">
North & South America
</a>
</div>
</div>
</div>
<div class="logo-container">
<div class="logo-itself">
<img class="logo-img" src="https://s3.amazonaws.com/static.northpass.com/Blacklane/Logo+no+claim+black.png" >
</div>
</div>
<style>
.logo-img {
width: 500px;
}
.logo-container {
position: fixed;
bottom: 0;
right: 0;
}
.logo-itself {
position: absolute;
bottom: 0;
right: 0;
padding: 35px;
}
.region-container {
border: none;
padding: 20px;
width: 100%;
display: flex;
justify-content: space-evenly;
}
.info-group-option {
text-transform: none;
font-size: 20px;
border-radius: 10px;
background-color: black;
color: white;
max-width: 350px;
width: 300px;
height: 100px;
line-height: normal;
text-align: center;
flex-wrap: nowrap;
align-items: center;
display: flex;
justify-content: center;
text-decoration: none;
}
.sign-up-follow-up-container{
align-items: center;;
background: #F7F7F7;
display: flex;
flex-direction: row;
min-height: 100%;
min-width: 100%;
}
.sign-up-follow-up-content{
align-items: center;
display: flex;
flex-direction: column;
margin: 1rem 0;
text-align: center;
width: 100%;
}
</style>
<script>
let submitData = async () => {
//if(
// ($(".sign-up-region")[0].value.length > 0)
// ){
function webhookCaller(){
return new Promise(function(res, rej) {
let xhr = new XMLHttpRequest();
url = "https://webhooks.workato.com/webhooks/rest/a36b1f7c-07c7-48ff-bc0f-cb3777d02c81/blacklane-new-driver-region-seg";
xhr.addEventListener("load", e => {
window.location.replace('/app/');
//window.location.replace('/app');
});
xhr.open("POST", url, true);
xhr.send(JSON.stringify({
email: '{{ current_person.email }}',
name: "{{ current_person.first_name }} {{ current_person.last_name }}",
user_id: '{{ current_person.id }}',
user_region: $(".sign-up-region")[0].value,
}))
})
}
try {
await webhookCaller()
.then((res) => {
window.location.replace('/app/dashboard')
})
} catch(err) {
console.log(err)
}
}
}
</script>

View File

@ -1,154 +0,0 @@
<div class="sign-up-follow-up-container" onload="">
<div class="sign-up-follow-up-content">
<img
alt="{{ current_school.name }}"
class="sign-up-follow-up-image sign-up-school-logo"
src="{{ current_school.logo_url }}"
/>
<h1 class="sign-up-follow-up-prompt">Please select your region from the dropdown below: </h1>
<div class="np-form-field">
<label class="np-input-label">
Region
</label>
<select
class="sign-up-follow-up-input sign-up-follow-up-region np-input"
type="text"
name="group-dropdown"
id="sign-up-group-dropdown"
required >
<option class="info-group-option" value="APAC/EMEA">
APAC/EMEA
</option>
<option class="info-group-option" value="AMERICAS">
Americas
</option>
</select>
</div>
<button class="sign-up-follow-up-button" onclick="submitData()">Submit</button>
</div>
</div>
<style>
.sign-up-follow-up-container{
align-items: center;;
background: #F7F7F7;
display: flex;
flex-direction: row;
min-height: 100%;
min-width: 100%;
}
.sign-up-follow-up-content{
align-items: center;
display: flex;
flex-direction: column;
margin: 1rem 0;
text-align: center;
width: 100%;
}
.sign-up-follow-up-image{
max-width: 50%;
}
.sign-up-follow-up-prompt{
color: #001588;
font-size: 1.5rem;
margin: 1.5rem;
}
.sign-up-dropdown,
.sign-up-follow-up-input{
margin-top: 1.1rem;
text-align: center;
width: 50%;
}
.sign-up-dropdown{
height: 55px;
padding-left: 28px;
}
.sign-up-follow-up-input{
height: 30px;
}
.sign-up-follow-up-button{
border: 1px solid black;
border-radius: 5px;
height: 30px;
margin-top: 10px;
width: 90px;
}
@media screen and (min-width: 768px){
.sign-up-school-logo{
width: 400px;
}
.sign-up-follow-up-image{
max-width: 575px;
}
.sign-up-follow-up-prompt{
font-size: 1.75rem;
margin: 2rem;
margin-bottom: 1rem;
max-width: 60%;
}
.sign-up-dropdown,
.sign-up-follow-up-input{
width: 40%;
}
}
@media screen and (min-width: 1440px){
.sign-up-follow-up-prompt{
font-size: 2.25rem;
margin: 3.5rem 10rem;
margin-bottom: 1.5rem;
}
}
</style>
<script>
let submitData = async () => {
//if(
// ($(".sign-up-region")[0].value.length > 0)
// ){
function webhookCaller(){
return new Promise(function(res, rej) {
let xhr = new XMLHttpRequest();
url = "https://webhooks.workato.com/webhooks/rest/a36b1f7c-07c7-48ff-bc0f-cb3777d02c81/blacklane-new-driver-region-seg";
xhr.addEventListener("load", e => {
window.location.replace('/app/');
//window.location.replace('/app');
});
xhr.open("POST", url, true);
xhr.send(JSON.stringify({
email: '{{ current_person.email }}',
name: "{{ current_person.first_name }} {{ current_person.last_name }}",
user_id: '{{ current_person.id }}',
user_region: $(".sign-up-region")[0].value,
}))
})
}
try {
await webhookCaller()
.then((res) => {
window.location.replace('/app/dashboard')
})
} catch(err) {
console.log(err)
}
}
}
</script>

View File

@ -59,26 +59,26 @@
Landing Page Buttons for New Hires after they complete steps 1 and 2:
* Two Zoom Buttons - Trainers Classroom & Troubleshooting Room (Standard to everyone)
* Learning Plan - should be in order.
- Two Zoom Buttons - Trainers Classroom & Troubleshooting Room (Standard to everyone)
- Learning Plan - should be in order.
Standard Associate Page:
* My Courses/Dashboard page
* Resources recommended by Supervisor
* Contact button for Supervisor (Email)
- My Courses/Dashboard page
- Resources recommended by Supervisor
- Contact button for Supervisor (Email)
Featured Courses Page:
* Teams updates
* Things for Download page - resources page
* Branded Channels
- Teams updates
- Things for Download page - resources page
- Branded Channels
Once we get past day 1 and the new hire training, most pages are "standard". Most of the time its just going to be:
* Here are your courses, here are your LPs.
* Some special pages.
- Here are your courses, here are your LPs.
- Some special pages.
TODO: Add buttons to learning path page that looks like Northpass Academy.
DONE: Add buttons to learning path page that looks like Northpass Academy.
Retail has never had an LMS before. They will have a more basic type of experience.
This is unique because of New Hire stuff.