This commit is contained in:
Norm Rasmussen
2022-08-30 17:15:34 -04:00
parent a48b951b26
commit 486665f48f
71 changed files with 3065 additions and 3244 deletions

Binary file not shown.

View File

@ -156,4 +156,4 @@
margin-left: 110px;
}
}
</style>
</style>

Binary file not shown.

View File

@ -0,0 +1,132 @@
{% assign categories = '' | split: '' %}
{% for cat in course.categories %}
{% if cat.name contains "~" %}
{% assign cat_name = cat.name | remove: "~" %}
{% assign cat_name = cat_name | split: "]" %}
{% assign str_parts_size = cat_name | size %}
{% assign cat_name = cat_name | slice: 1, 2 %}
{% else %}
{% assign cat_name = cat.name | split: '!@#$%^&*()' %}
{% endif %}
{% assign categories = categories | concat: cat_name %}
{% endfor %}
<div class="catalog-card" data-category="{{categories | join: '+'}}" href="{% route course_enrollment, code: course.enrollment_code %}" >
<div class="catalog-card-img-container">
<img
class="np-card-image"
alt="{{ course.name }}"
src="{{ course.image_url }}"
>
</div>
<div class="catalog-card-content np-card-content-vertical">
<div class="catalog-card-title">
{{ course.name }}
</div>
<div class="catalog-card-desc">
{{ course.full_description }}
</div>
{% comment %} {% for course_category in course.categories %}
<div class="catalog-card-category">{{course_category.name}}</div>
{% endfor %} {% endcomment %}
<div class="np-card-content-footer">
<div style="display:flex; align-items:center;">
<div class="np-card-content-progress np-button-color">
{% if course.progress > 0 and course.progress < 100 %}
{% t shared.progress, count: course.progress %}
{% elsif course.progress == 100 %}
Viewed
{% else %}
Not viewed
{% endif %}
</div>
<div class="card-details">
{% unless course.properties.course_length contains 'NULL' %}
<strong>{{course.properties.course_length}}</strong>
{% endunless %}
</div>
</div>
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
<a class="np-button np-button-wide" href="{{ course_path }}">
{% t shared.view %}
</a>
{% if course.has_to_restart? %}
{% include "course_version_outdated_popup", path: course_path %}
{% endif %}
</div>
</div>
</div>
<style>
.catalog-card {
background: #f3f3f3;
margin-bottom: 32px;
display:flex;
}
.catalog-card-img-container {
width:33%;
min-width: 33%;
position:relative;
}
.np-card-image {
border-radius: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
top: 0;
left: 0;
max-width:unset;
}
.catalog-card-content {
padding: 24px 32px;
width:100%;
}
.catalog-card-title {
font-size:24px;
margin-bottom:16px;
}
.catalog-card-desc {
font-size:16px;
line-height:20px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.np-button.np-button-wide {
background-color: #cc0033;
color: white;
display: inline-flex;
width: auto;
height: 40px;
}
.catalog-card-category {
margin-right:8px;
display: inline-block;
background: rgba(0, 153, 153, 0.8);
padding: 3px 6px;
color: #fff;
font-size: 12px;
font-weight:700;
}
.np-card-content-progress {
margin:0 16px 0 0;
}
</style>

View File

@ -1,4 +1,4 @@
{% comment %} <div class="np-card">
<div class="np-card">
<div class="np-card-container">
<div class="np-card-image-content-top">
</div>
@ -8,133 +8,40 @@
src="{{ course.image_url }}"
>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content">
<p class="course-title-vision">
{{ course.name }}
</p>
<div class="np-card-content-footer">
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
{% if course.has_to_restart? %}
{% include "course_version_outdated_popup", path: course_path %}
<div class="np-card-content-progress np-button-color">
{% if course.progress > 0 and course.progress < 100 %}
In progress
{% elsif course.completed? %}
Viewed
{% else %}
Not viewed
{% endif %}
</div>
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
<a
class="np-top-button np-button-font-color np-button np-button-big" href="{% route course_enrollment, code: course.enrollment_code %}"
style='background: linear-gradient(90deg, #006161 0%, #006161 100%); border-radius: 8px;'
class="np-button-font-color np-button" href="{% route course_enrollment, code: course.enrollment_code %}"
>
{% if course.enrolled? == false %}
{% t shared.enroll %}
{% elsif course.started? == false %}
{% t shared.start, key: current_school.course_vocabulary %}
View
{% elsif course.completed? %}
{% t shared.course.view, key: current_school.course_vocabulary %}
{% else %}
{% t shared.continue %}
{% endif %}
</a>
</div>
</div>
</div> {% endcomment %}
{% comment %} - This was Kaitlyn's original code, I'm commenting it out to keep it incase
the client wants to revert back. My categories boxes are below. {% endcomment %}
<a class="np-card" href="{% route course_enrollment, code: course.enrollment_code %}" >
<div class="np-card-container">
<div class="np-card-image-content-top"> </div>
<img
class="np-card-image"
alt="{{ course.name }}"
src="{{ course.image_url }}"
>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="course-title-vision">
{{ course.name }}
</p>
<div class="np-card-content-footer">
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
{% if course.has_to_restart? %}
{% include "course_version_outdated_popup", path: course_path %}
{% endif %}
</div>
</div>
</a>
{% comment%}
<a class="np-card" >
<div class="np-card-container">
<div class="np-card-image-content-top"> </div>
<img
class="np-card-image"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/white_beard_eye_exam.jpg"
>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="course-title-vision">
Challenging Cases Video Series
</p>
</div>
</div>
</a>
<a class="np-card" >
<div class="np-card-container">
<div class="np-card-image-content-top"> </div>
<img
class="np-card-image"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/couple_ipad_podcast.jpg"
>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="course-title-vision">
Fine-Tuned Podcast Series
</p>
</div>
</div>
</a>
<a class="np-card" >
<div class="np-card-container">
<div class="np-card-image-content-top"> </div>
<img
class="np-card-image"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/JNJ4.png"
>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="course-title-vision">
Johnson & Johnson Product Education
</p>
</div>
</div>
</a>
<a class="np-card" >
<div class="np-card-container">
<div class="np-card-image-content-top"> </div>
<img
class="np-card-image"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/conference-audience.jpg"
>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="course-title-vision">
Professional Webinars
</p>
</div>
</div>
</a>
{% endcomment %}
</div>
<style>
.np-card {
text-decoration:none;
}
.fas.fa-star {
line-height: 1.15;
}
.course-card-content {
color: black!important;
@ -153,4 +60,10 @@ the client wants to revert back. My categories boxes are below. {% endcomment %}
font-family: "PlusJakartaSans-Bold", !important;
font-weight: 700;
}
.np-card .np-card-content-footer .np-button {
background-color:#cc0033;
width:auto;
color:#fff!important;
}
</style>

View File

@ -1,69 +0,0 @@
<div class="np-card np-no-horizontal-padding">
<div class="np-card-container">
<div class="np-learning-path np-featured-course">
<div class="np-featured-course-img-container">
<div class="np-card-image-content-top">
</div>
<img
class="np-card-image"
alt="{{ course.name }}"
src="{{ course.image_url }}"
>
</div>
<div class="np-card-text-wrapper">
<div class="np-card-content np-card-padding np-card-content-vertical">
<h3 class="np-card-content-title">
{{ course.name }}
</h3>
<div class="np-card-content-description" style='font-size: 16px !important; line-height: 24px !important; color: black !important; font-family: Lexend !important;'>
{{ course.short_description }}
</div>
<div class="np-card-content-footer" style='display: flex; justify-content: space-between;'>
<div class='np-card-content-footer-left'style='display: flex; justify-content: left;'>
<a
class="np-top-button np-button-font-color np-button" href="{% route course_enrollment, code: course.enrollment_code %}" style='margin-right: 24px;'
>
{% if course.enrolled? == false %}
{% t shared.enroll %}
{% elsif course.started? == false %}
{% t shared.start, key: current_school.course_vocabulary %}
{% elsif course.completed? %}
{% t shared.course.view, key: current_school.course_vocabulary %}
{% else %}
{% t shared.continue %}
{% endif %}
</a>
<div class="np-card-progress np-button-color" style='color: #006161; font-weight: 700; font-size: 12px; align-self: center; text-transform: uppercase;'>
{% t shared.progress, count: course.progress %}
</div>
</div>
<div class= "np-card-course-details" style='float: right; align-text: center; color: #cc0033; font-weight: 700; font-size: 10px;'>
{% include "course_details" %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
.np-card-content-title {
color: #cc0033!important;
}
.np-card-image {
border-radius:0;
}
</style>
<script>
$(".np-card-content-description").css('font-size','16px !important')
$(".np-card-content-description").css('color','black !important')
$(".np-card-content-description").css('font-family', 'Lexend !important')
</script>

View File

@ -18,13 +18,13 @@
</div>
<div class="np-hidden-mobile np-card-content-progress
np-button-color" style='color: #006161;'>
np-button-color">
{% t shared.progress, count: learning_path.progress %}
</div>
<div class="np-hidden-mobile np-card-progress-bar-container" style='border-radius: 40px;'>
<div class="np-hidden-mobile np-card-progress-bar-container">
<div
style="width: {{ learning_path.progress }}%; background: #006161; border-radius: 40px;"
style="width: {{ learning_path.progress }}%;"
class="np-button-background-color np-card-progress-bar">
</div>
</div>
@ -40,13 +40,12 @@
{% endif %}
{% else %}
href="{% route learning_path_enrollment, code: learning_path.enrollment_code %}"
{% endif %}
style='background: linear-gradient(90deg, #006161 0%, #006161 100%); font-weight: 800; border-radius: 8px;'
{% endif %}
>
{% if learning_path.enrolled? == false %}
{% t shared.enroll %}
{% elsif learning_path.started? == false %}
{% t shared.learning_path.start %}
Start Program
{% elsif learning_path.completed? %}
{% t shared.learning_path.view %}
{% else %}
@ -69,20 +68,11 @@
.np-learning-path .np-card-content.np-card-padding.np-card-content-vertical {
border-radius: 0 8px 8px 0;
}
@media screen and (max-width: 768px) {
.np-learning-path .np-card-content.np-card-padding.np-card-content-vertical {
border-radius: 8px;
}
}
.np-learning-path .np-card-image {
border-top-left-radius: 8px;
border-top-right-radius: 0;
border-bottom-left-radius: 8px;
}
@media screen and (max-width: 768px) {
.np-learning-path .np-card-image {
border-top-right-radius: 8px;
border-bottom-left-radius: 0;
}
.np-learning-path .np-card-content-footer .np-button {
width: auto;
background:#cc0033;
color:#fff!important;
}
</style>

View File

@ -1,4 +1,4 @@
<div class="np-card np-event-card">
<div class="np-card">
<div class="np-card-container">
<div class="np-card-content-training-event">
<h3 class="np-card-content-title">
@ -8,35 +8,40 @@
{% t shared.event_types, key: training_event.event_type %}
</div>
<div class="np-card-training-session">
<span class="np-card-content-label" style='border-radius: 4px; opacity: 0.15;'>
{% t .next_session %}
</span>
{% if training_event.sessions.size > 1 %}
<span class="np-card-content-label">
{% t .next_session %}
</span>
{% endif %}
<div class="np-card-training-session-date">
<div class="np-button-background-color np-card-training-session-date-bar"></div>
<div class="np-card-training-session-date-day">
{{ training_event.sessions.first.day }}
</div>
<div>
<div class="np-card-training-session-date-month">
{{ training_event.sessions.first.month }}
</div>
<div class="np-card-training-session-date-year np-opacity-50">
<div class="np-card-training-session-date-year">
{{ training_event.sessions.first.year }}
</div>
</div>
<div class="np-card-training-session-date-day">
{% if training_event.sessions.first.day < 10 %}0{% endif %}{{ training_event.sessions.first.day }}
</div>
<div class="np-button-background-color np-card-training-session-date-bar" style='border-right: 16px solid #006161;'></div>
</div>
</div>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding">
<div class="np-card-training-sessions">
<span class="np-card-training-sessions-label">
{% t .sessions, count: training_event.sessions.size %}
</span>
{% comment %} <i class="np-card-training-sessions-icon far fa-calendar-star"></i> {% endcomment %}
<span class="np-card-training-sessions-label">
{% if training_event.sessions.size > 1 %}
{% t .sessions, count: training_event.sessions.size %}
{% endif %}
</span>
<a
class="np-button"
class="np-button np-button-wide"
href="{% route training_session, id: training_event.sessions.first.id %}"
style='background: linear-gradient(90deg, #006161 0%, #006161 100%); border-radius: 8px;'
>
{% t shared.view %}
</a>
@ -44,3 +49,14 @@
</div>
</div>
</div>
<style>
.np-training-events .np-card-container,
.np-card-training-sessions {
background-color:#f3f3f3;
}
.np-card-training-sessions .np-button:hover {
color:#fff;
}
</style>

View File

@ -1,62 +0,0 @@
{% assign topic_classname = topic | split: " " %}
<div class="courses-carousel np-carousel" data-topic="{{ topic_classname | join: '-' | downcase }}">
{% if items.any? %}
{% assign sorted_items =items | sort: "name" %}
{% for course in sorted_items %}
{% comment %} USED FOR PROGRESS FILTER {% endcomment %}
{% assign course_status = "" %}
{% if course.started? == false %}
{% assign course_status = "not-started" %}
{% elsif course.completed? %}
{% assign course_status = "completed" %}
{% elsif course.started? %}
{% assign course_status = "in-progress" %}
{% endif %}
{% if topic == "Not Categorized" %}
<div class="np-carousel-card {{course_status}}"> {% include "cards_course" with course %}</div>
{% else %}
{% for category in course.categories %}
{% if category.name == topic %}
<div class="np-carousel-card {{course_status}}"> {% include "cards_course" with course %}</div>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endif %}
</div>
<script>
$(document).ready(function(){
$(".courses-carousel").not('.slick-initialized').slick({
slidesToShow: 3,
cssEase: 'linear',
prevArrow: '<i class="fal fa-chevron-left"></i>',
nextArrow: '<i class="fal fa-chevron-right"></i>',
infinite: false,
responsive: [
{
breakpoint: 1170,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
dots: false,
arrows: true,
}
}
]
});
});
</script>

View File

@ -1,37 +0,0 @@
<div class="events-carousel np-carousel np-carousel-bg-blue" id="events-carousel">
{% if items.any? %}
{% for training_event in items %}
<div class="np-carousel-card"> {% include "cards_training_event" with training_event %}</div>
{% endfor %}
{% endif %}
</div>
<script>
$(document).ready(function(){
$(".events-carousel").slick({
slidesToShow: 3,
prevArrow: '<i class="fal fa-chevron-left"></i>',
nextArrow: '<i class="fal fa-chevron-right"></i>',
infinite: false,
dots: false,
arrows: true,
responsive: [
{
breakpoint: 1170,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1,
}
}
]
});
});
</script>

View File

@ -1,124 +0,0 @@
{% assign used_instructor_names = "" %}
<div class="instructors-carousel np-carousel" id="instructors-carousel">
<div class="np-carousel-card">
<div class="instructor-slide">
<div class="instructor-image" style='height:160px; width: 160px;'>
<img style='height: 136px; width: 136px;' src="https://s3.amazonaws.com/static.northpass.com/NorthpassAcademy/headshot_1.jpg" />
</div>
<div class="instructor-info">
<div class="instructor-name">Paula Naba</div>
<a href="mailto:paula@northpass.com" target="_blank" class="instructor-email" style='color: #006161;'>paula@northpass.com</a>
<div class="instructor-joined">Director of Customer Success</div>
</div>
</div>
</div>
<div class="np-carousel-card">
<div class="instructor-slide">
<div class="instructor-image" style='height:160px; width: 160px;'>
<img style='height: 136px; width: 136px;' src="https://s3.amazonaws.com/static.northpass.com/NorthpassAcademy/charlie+1.png" />
</div>
<div class="instructor-info">
<div class="instructor-name">Charlie Bencivenga</div>
<a href="mailto:cbencivenga@northpass.com" target="_blank" class="instructor-email" style='color: #006161;'>cbencivenga@northpass.com</a>
<div class="instructor-joined">Solutions Engineering Manager</div>
</div>
</div>
</div>
<div class="np-carousel-card">
<div class="instructor-slide">
<div class="instructor-image" style='height:160px; width: 160px;'>
<img style='height: 136px; width: 136px;' src="https://s3.amazonaws.com/static.northpass.com/NorthpassAcademy/headshot_4.jpg" />
</div>
<div class="instructor-info">
<div class="instructor-name">Rob Abrams</div>
<a href="mailto:paula@northpass.com" target="_blank" class="instructor-email" style='color: #006161;'>rabrams@northpass.com</a>
<div class="instructor-joined">Senior Implementation Manager</div>
</div>
</div>
</div>
<div class="np-carousel-card">
<div class="instructor-slide">
<div class="instructor-image" style='height:160px; width: 160px;'>
<img style='height: 136px; width: 136px;' src="https://s3.amazonaws.com/static.northpass.com/NorthpassAcademy/headshot_2.jpg" />
</div>
<div class="instructor-info">
<div class="instructor-name">Bridget Cafaro</div>
<a href="mailto:paula@northpass.com" target="_blank" class="instructor-email" style='color: #006161;'>bcafaro@northpass.com</a>
<div class="instructor-joined">Customer Success Manager</div>
</div>
</div>
</div>
<div class="np-carousel-card">
<div class="instructor-slide">
<div class="instructor-image" style='height:160px; width: 160px;'>
<img style='height: 136px; width: 136px;' src="https://s3.amazonaws.com/static.northpass.com/NorthpassAcademy/eric.png" />
</div>
<div class="instructor-info">
<div class="instructor-name">Eric Pavan</div>
<a href="mailto:epavan@northpass.com" target="_blank" class="instructor-email" style='color: #006161;'>epavan@northpass.com</a>
<div class="instructor-joined">Customer Success Manager</div>
</div>
</div>
</div>
<div class="np-carousel-card">
<div class="instructor-slide">
<div class="instructor-image" style='height:160px; width: 160px;'>
<img style='height: 136px; width: 136px;' src="https://s3.amazonaws.com/static.northpass.com/NorthpassAcademy/brian.png" />
</div>
<div class="instructor-info">
<div class="instructor-name">Brian Bastante</div>
<a href="mailto:paula@northpass.com" target="_blank" class="instructor-email" style='color: #006161;'>bbastante@northpass.com</a>
<div class="instructor-joined">Technical Support Specialist</div>
</div>
</div>
</div>
<div class="np-carousel-card">
<div class="instructor-slide">
<div class="instructor-image" style='height:160px; width: 160px;'>
<img style='height: 136px; width: 136px;' src="https://s3.amazonaws.com/static.northpass.com/NorthpassAcademy/headshot_3.png" />
</div>
<div class="instructor-info">
<div class="instructor-name">Kasia Cholewa</div>
<a href="mailto:paula@northpass.com" target="_blank" class="instructor-email" style='color: #006161;'>support@northpass.com</a>
<div class="instructor-joined">Technical Support Specialist</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$(".instructors-carousel").slick({
slidesToShow: 2.5,
prevArrow: '<i class="fal fa-chevron-left"></i>',
nextArrow: '<i class="fal fa-chevron-right"></i>',
infinite: false,
dots: false,
arrows: true,
responsive: [
{
breakpoint: 1170,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1,
}
}
]
});
});
</script>
<style>
.instructors-carousel .fa-chevron-right:before {
right: -7px !important;
}
</style>

View File

@ -1,56 +0,0 @@
<div class="vision-catalog-card" href="{% route course_enrollment, code: course.enrollment_code %}" >
<div class="np-card-container">
<div class="np-card-image-content-top"> </div>
<img
class="np-card-image"
alt="{{ course.name }}"
src="{{ course.image_url }}"
>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding course-card-content" style="background: #fafafa; color: black !important; height: 190px;">
<div class="course-title-vision">
{{ course.name }}
</div>
<div class="np-card-content-footer">
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
<a class="np-button np-button-wide" href="{{ course_path }}">
{% t shared.view %}
</a>
{% if course.has_to_restart? %}
{% include "course_version_outdated_popup", path: course_path %}
{% endif %}
</div>
</div>
</div>
<style>
.col-lg-4 {
width: 25%;
}
.vision-catalog-card {
background: #fafafa;
width: 300px;
height: 300px;
margin-bottom: 120px;
font-family: "PlusJakartaSans";
font-weight: 700;
}
.course-title-vision {
text-decoration: none !important;
}
.np-button.np-button-wide {
background-color: #cc0033;
color: white;
display: inline-flex;
width: auto;
height: 40px;
padding-left: 2rem;
padding-right: 2rem;
border-radius: 4px;
margin-left: 150px;
}
</style>

View File

@ -0,0 +1,126 @@
{% assign top_level_course_categories = '' | split: '' %}
{% assign second_level_course_categories = '' | split: '' %}
{% for course in courses.in_catalog %}
{% for cat in course.categories %}
{% assign cat_name = cat.name | split: '!@#$%^&*()' %}
{% if cat.name contains "~" %}
{% assign second_level_course_categories = second_level_course_categories | concat: cat_name %}
{% else %}
{% assign top_level_course_categories = top_level_course_categories | concat: cat_name %}
{% endif %}
{% endfor %}
{% endfor %}
{% assign unique_top_level_course_categories = top_level_course_categories | uniq | sort %}
{% assign unique_second_level_course_categories = second_level_course_categories | uniq | sort %}
<div class="categories-filter">
<div class='filter-section'>
<div class='filter-title'>
TOPICS
</div>
<div class='filter-element-category category-selected' data-category='all'>
All
</div>
{% for cat in unique_top_level_course_categories %}
{% assign number_of_courses = top_level_course_categories | split: cat %}
{% assign number_of_courses = number_of_courses.size | minus: 1 %}
{% assign has_sub_cat = false %}
{% for sub_cat in unique_second_level_course_categories %}
{% if sub_cat contains cat %}
{% assign has_sub_cat = true %}
{% endif %}
{% endfor %}
{% if has_sub_cat %}
<div class='filter-element-category has-sub-categories' data-category='{{cat}}'>
<div class="top-level-filter">{{ cat }} <i class="fas fa-caret-right"></i></div>
<div class="filter-item-sub-categories">
{% for sub_cat in unique_second_level_course_categories %}
<div class="filter-item-sub-category" data-category='{{sub_cat | remove: "~" | remove: "[" | remove: "]" | remove: cat}}'>{{sub_cat | remove: "~" | remove: "[" | remove: "]" | remove: cat}}</div>
{% endfor %}
</div>
</div>
{% else %}
<div class='filter-element-category' data-category='{{cat}}'>
<div class="top-level-filter">{{ cat }}</div>
</div>
{% endif %}
{% endfor %}
</div>
</div>
<style>
.categories-filter {
border-right: 1px solid #ddd;
padding-right: 16px;
padding-bottom: 32px;
margin-right:16px;
}
.filter-title {
font-weight: 500;
letter-spacing: 3px;
opacity: 0.7;
margin-bottom: 16px;
}
.filter-section {
margin-bottom: 30px;
}
.filter-element-category {
margin-bottom: 16px;
cursor: pointer;
font-weight: 400;
font-size: 18px;
line-height: 24px;
}
.top-level-filter .fa-caret-right {
margin-left:8px;
}
.filter-item-sub-categories {
margin-left:24px;
height: 0;
opacity: 0;
overflow: hidden;
transition:all 0.2s;
}
.filter-element-category.has-sub-categories.filter-open .fa-caret-right {
transform:rotate(90deg)
}
.filter-element-category.has-sub-categories.filter-open .filter-item-sub-categories {
height: auto;
opacity: 1;
overflow: visible;
}
.filter-item-sub-category {
font-size: 16px;
line-height: 20px;
margin-top: 12px;
}
.filter-element-category:not(.has-sub-categories).category-selected,
.filter-item-sub-category.category-selected {
font-weight: 800 !important;
}
</style>
<script>
$('document').ready(function() {
$('.has-sub-categories .top-level-filter').click(function() {
$(this).parent().toggleClass('filter-open')
})
})
</script>

View File

@ -1,13 +1,14 @@
<div class="col-xs-12 np-top-image-spacing np-course-banner">
<img
src="{{ course.image_url }}"
class="np-course-banner-image"
alt="{{ course.name }}"
/>
<div class="np-course-info np-course-banner-info">
<div class="np-course-title">{{ course.name }}</div>
{% include "course_details_review" %}
</div>
<img
src="{{ course.image_url }}"
class="np-course-banner-image"
alt="{{ course.name }}"
/>
</div>
<style>

View File

@ -1,41 +0,0 @@
{% assign activities_count = 0 %}
{% for course_section in course.sections %}
{% for course_activity in course_section.activities %}
{% assign activities_count = activities_count | plus: 1 %}
{% endfor %}
{% endfor %}
<div class="np-course-details">
<div class="np-course-detail">
<strong>{{ activities_count }}</strong>
<span class="np-details-label">
{% if activities_count == 1 %}Activity{% else %}Activities{% endif %}
</span>
</div>
<div class="np-course-detail">
</div>
<div class="np-course-detail">
{% if course.properties.course_length contains 'missing property' %}
missing property: course.properties.course_length
{% else %}
{% if course.properties.course_length %}
{% if course.properties.course_length > 0 %}
{{course.properties.course_length}} mins<span class="np-details-label">Duration</span>
{% else %}
<div>&nbsp;&nbsp;&nbsp;</div>
{% endif %}
{% endif %}
{% endif %}
</div>
</div>
<style>
.np-course-details {
text-shadow: none;
float: right;
align: center;
color: white;
font-weight: 700;
font-size: 10px;'
}
</style>

View File

@ -13,48 +13,17 @@
</span>
</div>
<div class="np-course-detail">
{% if course.properties.course_length contains 'missing property' %}
missing property: course.properties.course_length
{% else %}
{% if course.properties.course_length %}
{% if course.properties.course_length > 0 %}
<strong>{{course.properties.course_length}}</strong> mins<span class="np-details-label">Duration</span>
{% else %}
<div>&nbsp;&nbsp;&nbsp;</div>
{% endif %}
{% endif %}
{% endif %}
{% unless course.properties.course_length contains 'NULL' %}
<strong>{{course.properties.course_length}}</strong>
<span class="np-details-label">
Duration
</span>
{% endunless %}
</div>
{% comment %} <div class="np-course-detail course-detail-rating">
<div class='course-detail-rating-stars' style='display: flex; flex-wrap: nowrap;'>
{% for i in (1..5) %}
{% if course.properties.np_course_rating >= i %}
<svg width="20" height="19" viewBox="0 0 20 19" preserveAspectRatio fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 0L12.5863 6.44033L19.5106 6.90983L14.1846 11.3597L15.8779 18.0902L10 14.4L4.12215 18.0902L5.81535 11.3597L0.489435 6.90983L7.41374 6.44033L10 0Z" fill="#006161"/>
</svg>
{% else %}
<svg width="20" height="19" viewBox="0 0 20 19" preserveAspectRatio fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.25" d="M10 0L12.5863 6.44033L19.5106 6.90983L14.1846 11.3597L15.8779 18.0902L10 14.4L4.12215 18.0902L5.81535 11.3597L0.489435 6.90983L7.41374 6.44033L10 0Z" fill="#006161"/>
</svg>
{% endif %}
{% endfor %}
</div>
<span class="np-details-label" style= 'display: flex;'>
{{course.properties.np_course_rating}} <div style='font-weight: 500; padding-left: 5px;'>({{course.properties.np_course_rating_count}}) </div>
</span>
</div> {% endcomment %}
</div>
<style>
.course-detail-rating {
align-self: flex-end;
}
.course-detail-rating-stars {
margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
.course-detail-rating-stars {
margin-bottom: 0;
}
}
</style>

View File

@ -1,52 +0,0 @@
<h3 class="np-card-heading">
Meet the Instructor
</h3>
<div class='np-flex'>
{% for instructor in course.instructors limit: 2 %}
<div class="np-content-instructors-content-item">
<div class="instructor-image">
<img
src="{{ instructor.avatar_url }}"
class="np-content-instructors-content-image"
alt="{{ instructor.name }}"
style='border-radius: 50%;'
/>
</div>
<div class="np-content-instructors-content-description" style='margin: auto 1rem;'>
<div class="np-content-instructors-content-name">
{{ instructor.name }}
</div>
<div class="np-content-instructors-content-info">
{{ instructor.title }}
</div>
</div>
</div>
{% endfor %}
</div>
<style>
.instructor-image {
background: #555269;
border-radius: 50%;
width: 100px;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
min-width: 100px;
}
.instructor-image img {
border-radius: 50%;
width: 80px;
height: 80px;
}
@media only screen and (min-width: 768px) and ( max-width: 920px) {
.np-flex {
flex-direction: column;
}
}
@media only screen and ( max-width: 630px) {
.np-flex {
flex-direction: column;
}
}
</style>

View File

@ -1,57 +0,0 @@
<style>
.np-ratings-container {
display:flex;
align-items:center;
font-size:0.75rem;
color:#fff;
font-weight:500;
}
.np-ratings-button {
background:transparent;
outline:none;
border: 2px solid transparent;
transition:border-color 0.2s;
border-radius:4px;
cursor:pointer;
padding: 1px 6px;
}
.np-ratings-button:hover { border: 2px solid #E6E9EA; }
.np-course-rating-count {
color:#bec2c6;
margin-left:3px;
}
.rating-group-static {
margin-right:8px;
display: inline-flex;
}
.rating-group-static .fa-star,
.rating-group-static .fa-star-half {
color: #EBECED;
font-size: 1.15rem;
margin: 0 1px 3px;
}
.rating-group-static .fa-star-half {
position:relative;
z-index:10;
}
.rating-group-static .fa-star{
margin-left: -22px;
}
.rating-group-static .star-gold{ color: #F7BB17; }
@media (min-width:768px) {
.np-ratings-button { margin-right:24px; }
}
</style>

View File

@ -1,8 +1,8 @@
{% if courses.in_catalog.any? %}
<div class="np-catalog-courses row row-with-thumbnails">
{% for course in courses.in_catalog %}
<div class="col-xs-12 col-md-6 col-lg-4 col-sm-2 np-stretch-content">
{% include "catalog_courses" %}
<div class="col-xs-12">
{% include "cards_catalog" %}
</div>
{% endfor %}
</div>

View File

@ -0,0 +1,12 @@
<div class="np-zero-state-container">
<div class="np-zero-state-text">
You have not accessed any topics. Click <a href="/app/catalog">here</a> to explore all available topics.
</div>
{% comment %} <img class="np-zero-state-courses" alt="{{ message }}" /> {% endcomment %}
</div>
<style>
.np-zero-state-text a {
color:#009999;
}
</style>

View File

@ -1,112 +0,0 @@
{% assign topic_classname = topic | split: " " %}
<div class="np-progress-filter-wrapper">
{% if label %}
<div class="np-progress-filter-label">{{ label }}</div>
{% endif %}
<div class="progress-filter filter-select-wrapper select-wrapper np-button" data-topic="{{ topic_classname | join: '-' | downcase }}" style="border-radius: 8px;">
<select >
<option selected disabled hidden>{{ default_option}}</option>
<option value="a">All Courses</option>
<option value="n">Not Started</option>
<option value="i">In Progress</option>
<option value="c">Completed</option>
</select>
</div>
</div>
<style>
.np-progress-filter-label {
color: rgba(255, 255, 255, 0.5);
padding-right: 7px;
text-transform: none;
font-weight:500;
font-size:0.812rem;
}
.np-progress-filter-wrapper {
display: flex;
justify-content: flex-end;
align-items: center;
}
.filter-select-wrapper {
position: relative;
padding:0;
border: 2px solid rgba(255, 255, 255, 0.25);
color: #fff;
height:auto;
text-transform: none;
background: transparent;
border-radius:0;
}
.filter-select-wrapper:hover {
background:transparent;
color:#fff;
}
.select-items {
position: absolute;
background-color: #062531;
top: 105%;
left: -2px;
z-index: 99;
width: 102%;
border: 2px solid rgba(255, 255, 255, 0.25);
border-top:none;
}
.select-items div {
color: rgba(255, 255, 255, 0.5);
border-top:none;
cursor: pointer;
width:100%;
padding: 12px 16px;
}
.select-items div:hover { color: rgba(255, 255, 255, 1); }
.select-selected {
width: 100%;
height: 100%;
padding: 9px 66px 9px 20px;
position: relative;
color:#fff;
}
.select-selected::after {
content:"\f078";
font-family: "Font Awesome 5 Pro";
position: absolute;
width:20px;
height:100%;
color:rgba(255, 255, 255, 0.5);
right:10px;
top:0;
display: flex;
justify-content: center;
align-items: center;
font-size:1rem;
}
.select-selected::before {
content:"";
position: absolute;
width:20px;
height:100%;
border-left:2px solid rgba(255, 255, 255, 0.25);
right:20px;
top:0;
}
.select-selected.select-arrow-active::after { transform: rotate(180deg); }
.same-as-selected,
.filter-select-wrapper select,
.select-hide {
display: none;
}
.mo-filter-wrapper {
display: flex;
justify-content: center;
list-style: none;
margin: 0;
padding: 0;
}
.select-items div:hover,
.same-as-selected {
background-color: #062531;
}
</style>

View File

@ -1,3 +1,15 @@
<div class="footer-terms">
<hr />
<p>Please see our <a href="https://jnjinstitute.com/en-us/privacy-policy" target="_blank">Privacy Policy</a> and <a href="https://jnjinstitute.com/en-us/cookie-policy" target="_blank">Cookie Policy</a>. Use of this site constitutes your consent to the application of such laws and regulations and to our Privacy Policy and Cookie Policy. Your use of the information on this site is subject to the terms of our <a href="https://jnjinstitute.com/en-us/terms-of-use" target="_blank">Terms of Use</a>. <a href="mailto:JnJInstitute@its.jnj.com" target="_blank">Contact Us</a> with any questions or search this site for more information.</p>
<p>This website is published by Johnson & Johnson Services, Inc., which is solely responsible for its content. This website is intended for visitors in North America, EMEA, Latin America and Asia Pacific. Third party trademarks used herein are trademarks of their respective owners. Portions of this website are intended for visitors from certain geographical regions only and will be indicated as such.</p>
<p>The materials on this website are intended to provide information about products of the Johnson & Johnson Medical Devices Companies. Each product has its own labeling, which may include specific limitations relevant to the use of the product and which may vary from country to country. Please remember to check the local labeling of each product you plan to use to be aware of these limitations. If you have any questions on the use of these products, please contact your sales consultant.</p>
<p>This is a Healthcare Professional (HCP) educational website published by the Johnson & Johnson Institute, LLC which is solely responsible for its content. It is intended for all HCPs. Third party trademarks used herein are trademarks of their respective owners. You are solely responsible for your interactions on this website and we encourage you to review the Privacy Policy. HCPs are advised to consult their respective regulatory bodies, licensing authorities and program directors for program and product specific information and applicable industry associations and laws related to interactions between suppliers and HCPs. HCPs are responsible for complying with any specific hospital/entity requirements as well as their respective legal and regulatory requirements - which may affect participation in the programs offered. Products and/or procedures referenced in program materials may not be approved for sale in your location or the approval may differ from what is presented. Please check your local product labeling/instructions for use for the approved use. Program materials are not intended to be relied upon for medical or other advice.</p>
<p>093430-180612</p>
</div>
<footer class="np-footer">
<div class="np-footer-top">
{% if website_footer.show_navigation_links? %}
@ -51,12 +63,10 @@
{% if social_media_link.name == 'linkedin' %}
<i class="np-footer-social-links-icon
fab fa-linkedin-in"
style='color: #006161;'
></i>
{% else %}
<i class="np-footer-social-links-icon
fab fa-{{ social_media_link.name }}"
style='color: #006161;'
></i>
{% endif %}
</a>
@ -65,15 +75,16 @@
</ul>
{% endif %}
</nav>
<div class="copyright">All contents © Johnson & Johnson Services, Inc. 2022. All Rights Reserved.</div>
{% if website_footer.show_customer_service_email? and
website_footer.school_customer_service_email
%}
<div class="np-footer-support">
<div class="np-footer-support-item np-footer-support-help np-fc-white np-opacity-50">
<div class="np-footer-support-item np-footer-support-help">
{% t .need_help %}
</div>
<div class="np-footer-support-item np-footer-support-email np-fc-white np-opacity-50">
<div class="np-footer-support-item np-footer-support-email">
{% t .email %}
</div>
<a
@ -90,19 +101,43 @@
<style>
.np-footer {
background: #dadada !important;
background: #63666a !important;
padding: 1rem 0;
}
.np-powered-by {
background: #dadada !important;
background: #63666a !important;
text-transform: uppercase !important;
font-size: 12px !important;
font-weight: bold;
}
.np-footer-logo-image {
height:50px;
opacity:1;
filter:none;
filter: brightness(0) invert(1);
}
.np-footer-social-links-icon,
.copyright {
color:#fff;
}
.footer-terms {
padding: 1rem 1.25rem;
}
.footer-terms hr {
margin-bottom:32px;
}
.footer-terms a {
color: #c03;
text-decoration:none;
}
@media (min-width:768px) {
.np-footer, .footer-terms {
padding: 1rem 4%;
}
}
</style>

View File

@ -5,6 +5,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://s3.amazonaws.com/static.northpass.com/fonts/PlusJakartaSans-Regular.woff" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.css" integrity="sha512-wR4oNhLBHf7smjy0K4oqzdWumd+r5/+6QO/vDda76MW5iug4PT7v86FoEkySIJft3XA0Ae6axhIvHrqwm793Nw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

View File

@ -1,4 +1,15 @@
<header class="np-header np-header-color" >
{% if current_person.signed_in? %}
{% unless current_person.properties.additional_user_info_complete %}
{% unless current_person.email contains "+preview" %}
<script>
console.log('user not completed additional info - redirect to additional signup')
window.location.replace('/app/sign-up-cont')
</script>
{% endunless %}
{% endunless %}
{% 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? %}
@ -40,6 +51,27 @@
<div class="np-hidden-mobile np-header-desktop-nav">
<ul class="np-header-desktop-nav-list">
{% if current_person.signed_in? %}
{% for link in navigations.sub_navigation %}
{% unless link.url == "/app" or link.url == '/app/learning_paths' %}
<li class= "np-header-desktop-nav-item {{ link.active_class }}">
<a
href="{{ link.url }}"
class="np-header-desktop-nav-link np-header-font-color"
>
{% if link.label == 'Dashboard' %}
My Topics
{% elsif link.label == 'Catalog' %}
All Topics
{% else %}
{{ link.label }}
{% endif %}
</a>
</li>
{% endunless %}
{% endfor %}
{% endif %}
{% for website_navigation in navigations.header_navigations_external %}
<li class= "np-header-desktop-nav-item">
<a
@ -51,38 +83,6 @@
</a>
</li>
{% endfor %}
<li class= "np-header-desktop-nav-item">
<a
href="#popular-topics"
class="np-header-desktop-nav-link np-header-font-color"
>
Popular Topics
</a>
</li>
<li class= "np-header-desktop-nav-item">
<a
href="#events"
class="np-header-desktop-nav-link np-header-font-color"
>
Professional Events
</a>
</li>
<li class= "np-header-desktop-nav-item">
<a
href="#faq"
class="np-header-desktop-nav-link np-header-font-color"
>
FAQ
</a>
</li>
<li class= "np-header-desktop-nav-item">
<a
href="#contact"
class="np-header-desktop-nav-link np-header-font-color"
>
Contact Us
</a>
</li>
</ul>
</div>
@ -124,9 +124,6 @@
</div>
</div>
<nav class="np-header-avatar-tooltip-navigation">
<a class="np-header-avatar-tooltip-navigation-link" onclick="buildURL(window.location.pathname)" style="cursor:pointer">
Default
</a>
{% unless current_school.sso_active? %}
<a
class="np-header-avatar-tooltip-navigation-link"
@ -210,33 +207,5 @@
</div>
</div>
</div>
{% comment %}
{% include "messages" %}
{% endcomment %}
<script>
if (window.location.pathname === "/app") {
const headerTag = document.querySelector(".np-header");
headerTag.classList.add("np-header-absolute");
}
$(".np-header-desktop-nav-link[href='https://change_to_mail.com'").attr("href", "mailto:support@northpass.com")
/*
function buildURL(path) {
const url = "https://academy.getpixel.io" + path + "?first_name={{current_person.first_name}}&last_name={{current_person.last_name}}&email={{current_person.email}}"
window.location.href = url
}
*/
</script>
<style>
.np-header {
background: white!important;
}
.np-header-nav-list {
margin: 0 32px;
}
</style>

View File

@ -1,6 +1,6 @@
<div class="row categories-row" id="popular-topics">
<div class="{{ class }}">
<a class="np-card" href="/app/catalog?filter%5Bcategory_uuid%5D%5Bin%5D%5B%5D=e2baf8b8-471a-43de-94f2-c8314395f4a9">
<div class="row homepage-cards">
{% comment %} <div class="{{ class }}">
<a class="np-card" href="/app/training_events">
<div class="category-card-container">
<img
class="np-categories-image"
@ -29,7 +29,7 @@
<div class="arrow-icon"><i class="fal fa-long-arrow-right"></i></div>
</div>
</a>
</div>
</div> {% endcomment %}
<div class="{{ class }}" >
<a class="np-card" href="/app/catalog?filter%5Bcategory_uuid%5D%5Bin%5D%5B%5D=2a228ad1-225d-47ac-af0f-153c2b2fd689">
@ -66,59 +66,5 @@
<style>
.categories-row {
padding-top:64px;
}
.categories-row .np-card {
padding:0;
display: flex;
flex-direction: column;
text-decoration:none;
cursor:pointer;
}
.category-card-container {
position: relative;
overflow: hidden;
height: 200px;
}
.category-card-container img {
position: absolute;
left: 50%;
top: 50%;
width: 100%;
height: 100%;
transform: translate(-50%, -50%);
object-fit: cover;
}
.np-categories-content {
color: #212121;
background: #fafafa;
font-size: 18px;
flex:2;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.np-categories-content p {
margin:0;
}
.np-categories-content .arrow-icon {
text-align:right;
margin-top:12px;
}
.np-categories-content .arrow-icon i {
color: #009999;
font-size: 32px;
}
.course-title-vision {
color: #212121;
}
</style>

View File

@ -1,290 +0,0 @@
<div class='events-wrapper' id="events">
<div class='events'>
<div class='events-header'>
<div class='events-header-title' style='color: black'>
Professional Events
</div>
</div>
<div class='events-event'>
<div class='events-event-left'>
<div class='events-event-left-title'>
Choosing the Right Lens for Managing Patient Expectations and Visual Outcomes
</div>
<div class='events-event-left-subtitle'>
Join our professional surgeons who guide you through patient lens choices.
</div>
<div class='events-event-left-date'>
June 12, 2022 @ 2PM EST
</div>
<a class='events-event-left-button np-button np-top-button' href="https://visionexcellence.northpass.com/app/training_sessions/3e968f0f-c548-4592-931e-cc0bdcc7fe89">
Register</a>
</div>
<div class='events-event-right'>
<div class='events-event-right-title'>
Hosts
</div>
<div class='events-event-right-person'>
<img class='events-event-right-person-image' src='https://media-exp1.licdn.com/dms/image/C4E03AQGmIAB8KzcLyg/profile-displayphoto-shrink_400_400/0/1563204508254?e=1655337600&v=beta&t=1TMzm2rj1PjGWLyg_UlI1cEOHN_wDh1d0FLzGdqh6qY'>
<div class='events-event-right-person-right'>
<div class='events-event-right-person-right-name'>
Giovanna E. Olivares
</div>
<div class='events-event-right-person-right-title'>
Director, Professional Education
</div>
</div>
</div>
<div class='events-event-right-person'>
<img class='events-event-right-person-image' src='https://media-exp1.licdn.com/dms/image/C5603AQEbE5y7nUFrYQ/profile-displayphoto-shrink_400_400/0/1605247907015?e=1655337600&v=beta&t=6A9EDZYNqD2vNoU8EJELK4i9zSauRZsxkf4tSuJ73ko'>
<div class='events-event-right-person-right'>
<div class='events-event-right-person-right-name'>
Dr. Monica Jong, PhD
</div>
<div class='events-event-right-person-right-title'>
Global Director of Professional Education
</div>
</div>
</div>
</div>
</div>
<div class='events-event'>
<div class='events-event-left'>
<div class='events-event-left-title'>
ASCRS:The TECNIS® Story
</div>
<div class='events-event-left-subtitle'>
</div>
<div class='events-event-left-date'>
July 17th, 2022
</div>
<a class='events-event-left-button np-button np-top-button' href="https://visionexcellence.northpass.com/app/training_sessions/85fc3148-2ab1-4c71-b261-79d15dadb573">
Register</a>
</div>
<div class='events-event-right'>
<div class='events-event-right-title'>
Host
</div>
<div class='events-event-right-person'>
<img class='events-event-right-person-image' src='https://media-exp1.licdn.com/dms/image/C4E03AQF-xhRezHFBrw/profile-displayphoto-shrink_400_400/0/1572213065146?e=1655337600&v=beta&t=yDVM3z1qTt97FbPcmoSuRKtCOfrRTKc4NAgEg3OKx2U'>
<div class='events-event-right-person-right'>
<div class='events-event-right-person-right-name'>
Dr. George Crawford Jr.
</div>
<div class='events-event-right-person-right-title'>
General Surgeon Focused on Medical Education
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
.events-wrapper {
background-color:#f4f4f4;
background: url(https://s3.amazonaws.com/static.northpass.com/J%26J/conference-audience.jpg) no-repeat;
background-size: auto;
background-position: center;
}
.events {
margin: auto;
width: 100%;
max-width: 1290px;
padding: 60px 32px;
}
.events-header {
margin: 0 auto 32px;
max-width:850px;
}
.events-header-title {
font-size: 26px;
line-height: 32px;
font-weight: 800;
text-align: center;
color:#fff;
}
.events-header-subtitle {
font-size: 21px;
line-height: 29px;
font-weight: 400;
text-align: center;
margin-top: 24px;
}
.events-event {
margin-bottom: 32px;
padding: 30px;
border-radius: 10px;
background-color: #fff;
box-shadow: 0 2px 20px 10px rgb(0 0 0 / 5%);
}
.events-event-left {
text-align:center;
}
.events-event-left-title {
font-size: 24px;
line-height: 30px;
font-weight: 800;
color: rgb(6, 40, 70);
margin: 10px 0 20px;
color:#cc0033;
}
.events-event-left-subtitle {
font-size: 21px;
font-weight: 400;
color: rgba(0, 0, 0, 0.75);
margin-bottom: 20px;
}
.events-event-left-date {
font-size: 16px;
line-height:22px;
font-weight: 700;
color: rgb(6, 40, 70);
margin: 10px 0;
}
.events-event-left-button {
padding: 16px 45px;
margin-top: 40px;
}
.events-event-right {
display: flex;
flex-direction: column;
padding: 32px 0;
border-top: 1px solid #ccc;
border-top: 1px solid rgba(0,0,0,.15);
margin-top: 35px;
}
.events-event-right-title {
font-size: 16px;
line-height:22px;
font-weight: 800;
color: #9BA9B5;
}
.events-event-right-person {
display: flex;
margin: 30px 0;
}
.events-event-right-person-image {
border-radius: 50%;
height: 52px;
}
.events-event-right-person-right {
margin-left: 20px;
}
.events-event-right-person-right-name {
color: rgb(6, 40, 70);
font-size: 16px;
font-weight: 700;
margin-bottom: 7px;
}
.events-event-right-person-right-title {
color: rgb(38, 49, 61);
font-size: 16px;
font-weight: 400;
}
@media (min-width:768px) and (max-width:1169px) {
.events-event {
padding: 48px;
}
.events-event-left {
width: 65%;
}
.events-event-right {
width: 35%;
margin-left: 45px;
}
.events-event-right-person {
display: block;
margin: 16px 0;
}
.events-event-right-person-image {
margin-bottom: 16px;
}
.events-event-left-subtitle {
font-size: 18px;
}
}
@media (min-width:768px) {
.events {
padding: 120px 32px;
}
.events-header {
margin-bottom:50px;
}
.events-header-title {
font-size: 43px;
line-height:51px;
}
.events-header-subtitle {
font-size: 21px;
width: 75%;
margin: 40px auto 0;
}
.events-event {
padding: 50px 60px;
display: flex;
}
.events-event-left {
width: 55%;
text-align:left;
}
.events-event-left-title {
font-size: 28px;
margin-top:0;
}
.events-event-left-date {
font-size: 18px;
}
.events-event-right {
width:45%;
margin-left: 70px;
margin-top:0;
padding:0;
display: flex;
flex-direction: column;
border:none;
}
.events-event-right-title {
font-size: 21px;
line-height:29px;
}
}
</style>

View File

@ -1,4 +1,4 @@
<div class="homepage-hero-carousel">
<div class="homepage-hero-carousel" style="display:none;">
<div class="np-homepage-hero custom-flex">
<img class="np-homepage-hero-image"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/pexels-andrea-piacquadio-3768131.jpg"
@ -43,9 +43,14 @@
</div>
<script>
function initializeCarousel(slickContainerClass, visibleSlides) {
$(slickContainerClass).slick({
slidesToShow: visibleSlides,
$(document).ready(function() {
$('.homepage-hero-carousel').on('init', function(slick){
console.log(slick)
$('.homepage-hero-carousel').css('display', 'block')
})
$(".homepage-hero-carousel").slick({
slidesToShow: 1,
slidesToScroll: 1,
dots: false,
infinite: true,
@ -53,11 +58,11 @@
prevArrow: '<svg viewBox="0 0 20 20" class="_1ycOA _left"><path d="M12 16a.997.997 0 0 1-.707-.293l-5-5a.999.999 0 0 1 0-1.414l5-5a.999.999 0 1 1 1.414 1.414L8.414 10l4.293 4.293A.999.999 0 0 1 12 16" fill-rule="evenodd"></path></svg>',
nextArrow: '<svg viewBox="0 0 20 20" class="_1ycOA _right"><path d="M8 16a.999.999 0 0 1-.707-1.707L11.586 10 7.293 5.707a.999.999 0 1 1 1.414-1.414l5 5a.999.999 0 0 1 0 1.414l-5 5A.997.997 0 0 1 8 16" fill-rule="evenodd"></path></svg>'
});
}
$(document).ready(function () {
initializeCarousel('.homepage-hero-carousel', 1)
})
});
</script>
<style>

View File

@ -0,0 +1,64 @@
<div class="sidebar-content-block login-register-block">
{% if current_person.signed_in? %}
<div class="welcome-block">
<p class="welcome-block-header">Welcome {{current_person.first_name}}!</p>
</div>
{% else %}
<div class="login-block">
<p class="block-header">Login</p>
<form class="np-form np-box-content homepage-login-form" action="{% route login %}" method="post" novalidate>
{% form_authenticity_token %}
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
{% t shared.email_address %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="email"
name="learner[email]"
id="learner_email"
>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_password">
{% t shared.password %}
</label>
<input
class="np-input"
type="password"
name="learner[password]"
id="learner_password"
>
</div>
<button type="submit" class="np-button np-form-action">
{% t shared.sign_in %}
</button>
<a class="np-form-link np-button-color" href="{% route forgot_password_new %}">
Forgot Password
</a>
</form>
</div>
<hr style="margin-bottom:32px" />
<div class="register-block">
<p class="block-header">Register</p>
<p class="register-block-subhead">If this is your first time visiting, please complete your registration</p>
<a href="{% route sign_up %}" class="np-button register-btn">Register</a>
</div>
{% endif %}
</div>
<style>
.homepage-login-form {
width:auto;
margin-bottom:32px;
display:block;
}
.register-btn {
color:#fff!important;
}
</style>

View File

@ -1,28 +0,0 @@
{% if learning_path.instructors.any? %}
<div class="np-card-content-divider">
<h3 class="np-card-heading">
{% t shared.instructors %}
</h3>
<div class="np-content-instructors-content row">
{% for instructor in learning_path.instructors %}
<div class="np-content-instructors-content-item col-xs-12 col-lg">
<div class='instructor-image'>
<img
src="{{ instructor.avatar_url }}"
class="np-content-instructors-content-image"
alt="{{ instructor.name }}"
>
</div>
<div class="np-content-instructors-content-description">
<div class="np-content-instructors-content-name">
{{ instructor.name }}
</div>
<div class="np-content-instructors-content-info np-text-light">
{{ instructor.title }}
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}

View File

@ -0,0 +1,26 @@
<div class="np-learning-paths-resources">
{% if items.any? %}
{% for learning_path in items %}
{% include "cards_learning_path" with learning_path %}
{% endfor %}
{% else %}
<div class="np-learning-paths-resources-container">
<div class="np-zero-state-text">
You have not yet accessed any programs.
</div>
{% comment %} <img class="np-zero-state-learning-paths" alt="{% t .empty %}" /> {% endcomment %}
</div>
{% endif %}
</div>
<style>
.np-learning-paths-resources-container {
text-align: left;
padding: 0;
}
.np-learning-paths-resources {
border-bottom: 1px solid #ddd;
margin-bottom: 40px;
}
</style>

View File

@ -1,80 +0,0 @@
<div class="np-progress-ring-wrapper">
<svg
class="progress-ring"
width="{{ size }}"
height="{{ size }}">
<circle
class="progress-ring__circle circle-{{name}}"
stroke="#006161"
stroke-width="10"
fill="transparent"
r="52"
cx="60"
cy="60"/>
<circle
class="progress-ring__circle circle-bg"
stroke="{{ stroke_color_bg }}"
stroke-width="10"
fill="transparent"
r="52"
cx="60"
cy="60"/>
<text x="50%" y="50%" text-anchor="middle" stroke="t#fff" stroke-width="1px" fill="#fff" dy=".3em">{{count}}</text>
</svg>
<h3 class="np-card-content-title np-progress-circle-label">
{{name}}
</h3>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
var circle = document.getElementsByClassName("circle-{{name}}")[0];
var radius = circle.r.baseVal.value;
var circumference = radius * 2 * Math.PI;
circle.style.strokeDasharray = `${circumference} ${circumference}`;
circle.style.strokeDashoffset = `${circumference}`;
function setProgress(percent) {
const offset = circumference - percent * circumference;
circle.style.strokeDashoffset = offset;
}
setProgress('{{ count | divided_by: total }}')
})
</script>
<style>
.np-progress-ring-wrapper {
flex: 0;
flex-direction: column;
display: flex;
width: 100%;
padding: 1.5rem 1rem 1rem 1rem;
align-items: center;
}
.progress-ring circle { stroke-linecap: round; }
.progress-ring text { font-size:2rem; }
.progress-ring__circle {
transition: stroke-dashoffset 0.35s;
transform: rotate(-90deg);
transform-origin: center;
}
.np-progress-circle-label {
color:#fff;
text-transform: uppercase;
opacity:0.35;
font-size:0.875rem;
margin-top:1rem;
}
@media (min-width:768px) {
.np-progress-ring-wrapper { padding: 1.5rem 0.4rem 1rem 0.4rem;}
}
@media (min-width:1170px) {
.progress-ring text { font-size:2.5rem; }
.np-progress-ring-wrapper { padding: 1.5rem 1rem 1rem 1rem;}
}
</style>

View File

@ -1,17 +0,0 @@
<div class="homepage-contact-section np-homepage-featured np-max-width" id="contact">
<div class="np-homepage-headline">Contact us to learn more</div>
<a class="np-button np-top-button
" href="#">Contact us</a>
</div>
<style>
.homepage-contact-section {
text-align:center;
margin-bottom:75px;
}
.homepage-contact-section .np-button {
margin-top:32px;
padding: 24px 40px;
}
</style>

View File

@ -1,106 +0,0 @@
<div class="np-homepage-featured np-faq np-max-width" id="faq">
<div class="np-homepage-featured-text">
<div class="np-homepage-headline">
Frequently Asked Questions
</div>
</div>
<div class="row np-faqs" style='margin:0;'>
<div class="col-12 col-lg-6">
<div class="np-accordion">
<div class="accordion-btn">
<i class="fal fa-plus"></i>
<div class="accordion-title"><strong>Q:</strong> How do I get started with J&J Vision Courses?</div>
</div>
<div class="accordion-panel">
<div class="accordion-panel-content">
<p><strong>A:</strong> Easy! Click on any of the above "Start Course" buttons and you'll be asked to register for the Vision Excellence Institute.</p>
</div>
</div>
</div>
<div class="np-accordion">
<div class="accordion-btn">
<i class="fal fa-plus"></i>
<div class="accordion-title"><strong>Q:</strong> Do I need to pay for any courses?</div>
</div>
<div class="accordion-panel">
<div class="accordion-panel-content">
<p><strong>A:</strong> Absoutlely not! These educational resources are J&J Vision's commitment to your professional and personal well-being and are all free of charge. We will never surprise you with hidden costs or a paywalled course. </p>
</div>
</div>
</div>
<div class="np-accordion">
<div class="accordion-btn">
<i class="fal fa-plus"></i>
<div class="accordion-title"><strong>Q:</strong> There are a lot of courses, which one should I start with as a new learner?</div>
</div>
<div class="accordion-panel">
<div class="accordion-panel-content">
<p><strong>A:</strong> We recommend starting with the Getting Started with J&J Vision Course. If you don't see it on your homepage, please contact us using the button below. </p>
</div>
</div>
</div>
</div>
<div class="col-12 col-lg-6">
<div class="np-accordion">
<div class="accordion-btn">
<i class="fal fa-plus"></i>
<div class="accordion-title"><strong>Q:</strong> I cannot find a course on a topic, how should I share this feedback?</div>
</div>
<div class="accordion-panel">
<div class="accordion-panel-content">
<p><strong>A:</strong> Thank you for letting us know that you can't find a course! Please use the contact us button below to submit a note. Our team is happy to assist.</p>
</div>
</div>
</div>
<div class="np-accordion">
<div class="accordion-btn">
<i class="fal fa-plus"></i>
<div class="accordion-title"><strong>Q:</strong> I'm a new surgeon/doctor. Do you have podcasts or webinars that would help me start my career?</div>
</div>
<div class="accordion-panel">
<div class="accordion-panel-content">
<p><strong>A:</strong> Great question and welcome to the world of Ophthamology! Our Vision Podcast Series and Professional Webinars are great places to start for those types of media. Please scroll up to find both of them on this page! </p>
</div>
</div>
</div>
<div class="np-accordion">
<div class="accordion-btn">
<i class="fal fa-plus"></i>
<div class="accordion-title"><strong>Q:</strong> I'm interested in sharing these courses with my co-workers, nurses, and doctors. How can I do that?</div>
</div>
<div class="accordion-panel">
<div class="accordion-panel-content">
<p><strong>A:</strong> Excellent, we always look forward to partnering with more professionals in the space. Please feel free to share a course of interest or the Institute's URL with those who may be interested. They can then make their account and starting their educational journey!</p>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
.clicked {
border-bottom-right-radius: 0;
}
.accordion-panel {
border-radius: 0 0 8px 8px;
}
</style>
<script>
let accordions = document.getElementsByClassName("accordion-btn");
for (let i = 0; i < accordions.length; i++) {
accordions[i].addEventListener("click", function() {
this.querySelector('.fal').classList.toggle("fa-plus");
this.querySelector('.fal').classList.toggle("fa-minus");
this.classList.toggle("clicked");
let panel = this.nextElementSibling;
panel.classList.toggle("panel-open");
if (panel.style.maxHeight) {
panel.style.maxHeight = null;
} else {
panel.style.maxHeight = panel.scrollHeight + "px";
}
});
}
</script>

View File

@ -1,27 +0,0 @@
<div class="np-homepage-featured np-homepage-topics np-max-width">
<div class="np-homepage-featured-text">
<div class="np-homepage-headline">
Popular Topics
</div>
</div>
<div class="np-topics-list row">
<div class="col-xs-12 np-stretch-content">
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/articles/5119428-course-publishing">Course Publishing</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/articles/3725263-northpass-course-marketplace">Course Marketplace</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/articles/5469361-iorad-integration">Interactive Content</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/articles/3310302-what-is-a-learning-path-and-how-do-i-use-it">Learning Paths</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/articles/3310269-overview-of-authentication-options">Authentication</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/articles/3310239-edit-domain-name">Edit Domain Name</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/collections/1919694-analytics">Analytics</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/articles/3310282-instructor-led-training">Instructor Led Training</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/collections/2428172-apps-integrations">Integrations</a>
<a class="np-top-button np-button np-button-secondary topic-button" href="https://support.northpass.com/en/collections/1919697-advanced-options">Advanced Options</a>
</div>
</div>
</div>
<style>
.topic-button {
border-radius: 8px;
}
</style>

View File

@ -1,76 +0,0 @@
{% capture quotes %}
<svg width="52" height="40" viewBox="0 0 52 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.656 39.76C9.072 39.76 6.048 38.3787 3.584 35.616C1.19467 32.7787 0 29.12 0 24.64C0 21.056 0.858667 17.584 2.576 14.224C4.29333 10.864 6.68267 7.91467 9.744 5.376C12.0458 3.46723 14.5797 1.98056 17.3458 0.916004C19.0264 0.269172 20.8915 0.900303 22.0271 2.29798C23.9806 4.70233 22.9585 8.2866 20.493 10.1624C19.6235 10.8239 18.8405 11.5431 18.144 12.32C16.2027 14.4853 15.232 16.3147 15.232 17.808C15.232 18.48 15.3813 19.2267 15.68 20.048C16.0533 20.7947 16.9493 21.5787 18.368 22.4C20.2347 23.5947 21.5413 24.9013 22.288 26.32C23.0347 27.664 23.408 29.232 23.408 31.024C23.408 33.712 22.4 35.84 20.384 37.408C18.368 38.976 15.792 39.76 12.656 39.76ZM40.32 39.76C36.736 39.76 33.712 38.3787 31.248 35.616C28.8587 32.7787 27.664 29.12 27.664 24.64C27.664 21.056 28.5227 17.584 30.24 14.224C31.9573 10.864 34.3467 7.91467 37.408 5.376C39.7098 3.46723 42.2437 1.98056 45.0098 0.916003C46.6904 0.269172 48.5555 0.900303 49.6911 2.29797C51.6446 4.70233 50.6225 8.2866 48.157 10.1624C47.2875 10.8239 46.5045 11.5431 45.808 12.32C43.8667 14.4853 42.896 16.3147 42.896 17.808C42.896 18.48 43.0453 19.2267 43.344 20.048C43.7173 20.7947 44.6133 21.5787 46.032 22.4C47.8987 23.5947 49.2053 24.9013 49.952 26.32C50.6987 27.664 51.072 29.232 51.072 31.024C51.072 33.712 50.064 35.84 48.048 37.408C46.032 38.976 43.456 39.76 40.32 39.76Z" fill="url(#paint0_linear_2_541)"/>
<defs>
<linearGradient id="paint0_linear_2_541" x1="1.24909e-07" y1="19.88" x2="53.648" y2="19.88" gradientUnits="userSpaceOnUse">
<stop stop-color="#006161"/>
<stop offset="1" stop-color="#006161"/>
</linearGradient>
</defs>
</svg>
{% endcapture %}
<div class="np-homepage-featured np-homepage-tips-tricks np-max-width">
<div class="np-homepage-featured-text">
<div class="np-homepage-headline">
Testimonials From Our Customers
</div>
</div>
<div class="tips-tricks-carousel np-carousel" id="tips-tricks-carousel">
<div class="np-carousel-card">
<div class="quote-block np-carousel-bg-blue">
<i class="quotes-left"> {{quotes}} </i>
<div class="quote">
Northpass is an easy-to-manage LMS with the freedom to create and scale learning programs the way we want. Ultra-fast authoring and intelligent administration, along with integrated learning experiences. Plus, responsive support.
</div>
</div>
<div class="quote-author-info">
Administrator in Real Estate<br>
<span>&gt; 1000 employees</span>
</div>
</div>
<div class="np-carousel-card">
<div class="quote-block np-carousel-bg-blue">
<i class="quotes-left"> {{quotes}} </i>
<div class="quote ">
Northpass is an LMS with the learner experience front and center. Their UI principles lead to a clean and focused learner experience that removes the typical distractions of finding and beginning courses in an LMS. They have over the years made significant investments into the admin experience and platform integrations which have helped it grow into areas where other established players would have had a leg up. Their customer success management approach is excellent and one that I routinely use as the bar with other software vendors we utilize.
</div>
</div>
<div class="quote-author-info">
Executive Sponsor in Retail<br>
<span>&gt; 1000 employees</span>
</div>
</div>
<div class="np-carousel-card">
<div class="quote-block np-carousel-bg-blue">
<i class="quotes-left"> {{quotes}} </i>
<div class="quote ">
The ability to build a learning management for both internal employees and external clients is harder to find than I would have thought. Because Northpass is focused solely on the ability to build on-demand training, it's simplicity allows you to use those courses in whatever way you want/need.
</div>
</div>
<div class="quote-author-info">
Client Enablement Manager Mid-Market<br>
<span>51-1000 employees</span>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$("#tips-tricks-carousel").slick({
slidesToShow: 1,
slidesToScroll: 1,
cssEase: 'linear',
prevArrow: '<i class="fal fa-chevron-left"></i>',
nextArrow: '<i class="fal fa-chevron-right"></i>',
infinite: true,
adaptiveHeight: true
});
});
</script>

View File

@ -1,26 +0,0 @@
<nav class="np-sub-navigation">
<div class="np-sub-navigation-content">
{% for link in navigations.sub_navigation %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
{{ link.label }}
</a>
</div>
{% endfor %}
</div>
</nav>
<style>
.np-sub-navigation {
background: white!important;
color: #006161!important;
}
</style>
<script>
$(".np-sub-navigation-content-item-link[href='/app/catalog']").parent().remove()
$(".np-sub-navigation-content-item-link:contains('Home')").attr('href', '/app/homepage')
$(".np-sub-navigation-content-item-link:contains('Courses')").attr('href', '/app/new-dashboard')
$(".np-sub-navigation-content-item-link:contains('Courses')").text('Dashboard')
</script>

View File

@ -0,0 +1,23 @@
<div class="np-dashboard-resources">
{% if training_events.enrolled.any? %}
{% for training_event in training_events.enrolled %}
{% include "cards_training_event" with training_event %}
{% endfor %}
{% else %}
<div class="np-dashboard-resources-container">
<div class="np-zero-state-text">
You don't have any saved events. Click <a href="/app/training_events">here</a> to view all upcoming events.
</div>
<img
class="np-zero-state-training-events"
alt="{% t .empty %}"
/>
</div>
{% endif %}
</div>
<style>
.np-dashboard-resources .np-card-container {
background: #f3f3f3;
}
</style>

View File

@ -0,0 +1,9 @@
<div class="np-dashboard-resources-container">
<div class="np-zero-state-text">
There are currently no upcoming events. Please check back later.
</div>
<img
class="np-zero-state-training-events"
alt="{% t .empty %}"
/>
</div>

View File

@ -0,0 +1,57 @@
{% if training_session.approved? %}
<div class="np-training-session-cta-note">
<i class="far fa-check np-training-session-icon"></i>
{% comment %} {% t .registered %} {% endcomment %}
Event Saved!
</div>
{% elsif training_session.pending? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .pending %}
</div>
{% elsif training_session.denied? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .denied %}
</div>
{% elsif training_session.too_late? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .too_late %}
</div>
{% elsif training_session.no_seats? %}
<div class="np-training-session-cta-note np-training-session-cta-note-error">
{% t .no_seats %}
</div>
{% endif %}
<div class="np-training-session-cta">
<div class="np-training-session-cta-buttons">
<form
action="{% route training_session_registration, id: training_session.id %}"
method="post"
>
{% form_authenticity_token %}
{% if training_session.internal? and training_session.approved? %}
{% if features.training_events_google_calendar? %}
{% include "training_session_calendars" %}
<button type="submit" class="np-top-button np-button np-button-big np-button-secondary">
{% comment %} {% t .unregister %} {% endcomment %}
Remove Event
</button>
{% else %}
<button type="submit" class="np-top-button np-button-font-color np-button np-button-big">
{% comment %} {% t .unregister %} {% endcomment %}
Remove Event
</button>
{% endif %}
<input type="hidden" name="_method" value="delete" />
{% endif %}
{% if training_session.not_registered? %}
<button type="submit" class="np-top-button np-button np-button-big">
{% comment %} {% t .register %} {% endcomment %}
Save Event
</button>
{% endif %}
</form>
</div>
</div>

View File

@ -0,0 +1,40 @@
<div class="np-resource-header np-resource-header-card np-card-padding-large">
{% include "training_session_header" %}
</div>
<div class="row">
<div class="col-xs-12 col-sm-7">
<div class="np-card-container">
<div class="row">
<div class="col-xs-12 col-sm-7">
{% include "training_session_details" %}
</div>
<div class="col-xs-12 col-sm-5">
{% include "training_session_cta" %}
</div>
</div>
<div class="np-card-padding-large">
<div class="np-card-content-divider">
{% include "training_session_description" %}
</div>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-5 np-grid-spacing">
<div class="np-training-session-sessions-title">
{% t shared.more_sessions %}
</div>
{% if training_event.sessions.size > 1 %}
{% include "training_session_more_sessions" %}
{% else %}
<div class="np-training-session-zero-state">
<img
alt="{% t .empty %}"
class="np-zero-state-training-sessions"
/>
<div class="np-training-session-zero-state-text">
{% t .empty %}
</div>
</div>
{% endif %}
</div>
</div>

View File

@ -0,0 +1,32 @@
<div class="np-card-spacing-large">
{% include "training_session_date" %}
<div class="np-training-session-time">
<i class="fal fa-clock np-button-color np-training-session-icon"></i>
{{ training_session.time_period }} {{ training_session.time_zone }}
</div>
{% if training_session.location %}
<div class="np-training-session-location">
<i class="fal fa-map-marker-alt np-button-color np-training-session-icon"></i>
{{ training_session.location }}
</div>
{% endif %}
{% if training_session.session_url %}
<div class="np-training-session-location">
{% comment %} <i class="fal fa-map-marker-alt np-button-color np-training-session-icon"></i> {% endcomment %}
<div class="np-training-session-location-desc">Register here:</div>
<a href="{{ training_session.session_url }}" class="np-button-color" target="_blank" >
{{ training_session.session_url }}
</a>
</div>
{% endif %}
</div>
<style>
.np-training-session-location-desc {
font-weight:700;
}
</style>

View File

@ -0,0 +1,140 @@
<div class="videos-header">Video Spotlight</div>
<div class="main-slider homepage-video-carousel" id="main-slider">
<div class="video-slide"
>
<div class="example-dialog-trigger carousel-slide-trigger"
>
<div class="thumbnail-wrapper">
<video width="320" height="240" controls>
<source src="https://s3.amazonaws.com/static.northpass.com/J%26J/video-embed-test_delete_later.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
<div class="img-caption">
<div class="img-caption-title">Video Title 1</div>
<div class="img-caption-description">Nulla quis lorem ut libero malesuada feugiat. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Pellentesque in ipsum id orci porta dapibus.</div>
</div>
</div>
</div>
<div class="video-slide">
<div class="example-dialog-trigger"
>
<div class="thumbnail-wrapper">
<video width="320" height="240" controls>
<source src="https://s3.amazonaws.com/static.northpass.com/J%26J/video-embed-test_delete_later.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
<div class="img-caption">
<div class="img-caption-title">Here is another video title</div>
<div class="img-caption-description">Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus suscipit tortor eget felis porttitor volutpat. Quisque velit nisi, pretium ut lacinia in, elementum id enim.</div>
</div>
</div>
</div>
</div>
<script>
$('#main-slider').slick({
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 3000,
dots: true,
infinite: true,
arrows: false
});
</script>
<style>
.videos-header {
font-size: 20px;
font-weight: 700;
margin-bottom:24px;
}
.homepage-video-carousel {
margin-bottom:44px;
}
.thumbnail-wrapper {
position:relative;
width: 100%;
/*height: 100%;*/
}
.video-thumbnail {
background-size: cover;
position: absolute;
width: 100%;
left: 0;
height: 100%;
top: 0;
background-position: center;
}
.img-caption {
background: #63666a;
color:#fff;
padding: 16px 32px;
text-align: center;
margin-top: -6px;
}
.img-caption-title {
font-size: 22px;
font-weight: 700;
line-height: 28px;
margin-bottom: 8px;
}
.carousel-slide-trigger {
display: inline-block;
padding: 0;
overflow: hidden;
width: 100%;
height: 100%;
}
.slick-dots {
display: flex;
justify-content: center;
margin: 24px 0 0;
padding: 0;
list-style-type: none;
}
.slick-dots li {
margin: 0 0.25rem;
}
.slick-dots button {
display: block;
width: 12px;
height: 12px;
padding: 0;
border: none;
border-radius: 100%;
background-color: transparent;
border: 1px solid #009999;
text-indent: -9999px;
}
.slick-dots li.slick-active button {
background-color: #009999;
}
video {
width: 100%;
height: auto;
}
</style>

View File

@ -1,88 +0,0 @@
<div class="np-dashboard-resources progress-card" style="padding-bottom: 0;">
<div class="np-card" style="display:inline-flex; margin: auto; padding: 0px !important;">
<div class="np-card-container np-card-content" style="border-radius: 8px; display: inline-block; margin: auto;">
{% if courses.enrolled.any? %}
{% assign countComplete = 0 %}
{% assign countInProgress = 0 %}
{% assign countNotStarted = 0 %}
{% assign countTotal = 0 | times: 1.0 %}
{% for course in courses.enrolled %}
{% assign countTotal = countTotal | plus: 1 %}
{% if course.progress == 100 %}
{% assign countComplete = countComplete | plus: 1 %}
{% endif %}
{% if course.progress > 0 and course.progress < 100 %}
{% assign countInProgress = countInProgress | plus: 1 %}
{% endif %}
{% if course.progress == 0 %}
{% assign countNotStarted = countNotStarted | plus: 1 %}
{% endif %}
{% endfor %}
<ul class="progress-circle-list">
<li>
{%
include "progress_circle",
name:'Completed' ,
count: countComplete ,
total: countTotal,
size: "120",
stroke_color: "rgba(43, 178, 76, 1)",
stroke_color_bg: "rgba(255, 255, 255, 0.15)"
%}
</li>
<li>
{%
include "progress_circle",
name:'In Progress' ,
count: countInProgress ,
total: countTotal,
size: "120",
stroke_color: "rgba(43, 178, 76, 1)",
stroke_color_bg: "rgba(255, 255, 255, 0.15)"
%}
</li>
</ul>
{% else %}
{% capture message %}
{% t shared.zero_state.courses.index,
key: current_school.course_vocabulary
%}
{% endcapture %}
{% include "courses_zero_state", message: message %}
{% endif %}
</div>
</div>
</div>
<style>
.progress-circle-list {
padding: 0;
list-style-type: none !important;
justify-content: space-around;
display: inline-flex;
align-items: center;
max-width: 400px;
margin: auto;
}
.progress-card {
border-radius: 8px;
background: #555269;
height: 260px;
padding: 0;
display: inline-flex;
}
.np-progress-ring-wrapper {
padding: 0 0.5rem;
}
@media screen and (max-width: 1023px) {
.progress-card {
height: 190px;
margin-bottom: 2.187rem;
display: flex;
}
.progress-circle-list {
display: flex;
}
}
</style>

View File

@ -1,22 +1,108 @@
{% include "header" %}
{% include "sub_navigation" %}
<main class="np-main np-catalog np-subpage-container np-max-width">
<div class="np-catalog-header-wrapper">
<div class="np-catalog-header">
<div class="np-resource-title">{{ catalog.headline }}</div>
<div class="np-resource-subtitle">{{ catalog.subheadline }}</div>
</div>
{% capture label %}{% t shared.filters.by_category %}{% endcapture %}
{% if courses.in_catalog.any? %}
{%
include "filter_dropdown",
filters: courses.filters,
key: "category_uuid",
label: label
%}
{% endif %}
<div class="row subpage-intro">
<div class="color-layer"></div>
<div class="col-xs-12 col-sm-9 col-md-6" style="margin:auto;">
<div class="subpage-intro-content-wrapper">
<div class="subpage-intro-title">All Topics</div>
<div class="subpage-intro-divider"></div>
<div class="subpage-intro-subtitle">Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Nulla porttitor accumsan tincidunt.</div>
</div>
</div>
</div>
{% include "courses_catalog" %}
<main class="np-main np-catalog np-subpage-container np-max-width">
<div class="row np-flex-center">
<div class="col-xs-12 col-sm-3">
{% include 'category_filter_sidebar' %}
</div>
<div class="col-xs-12 col-sm-9">
{% comment %} <div class="np-catalog-header-wrapper">
<div class="np-catalog-header">
<div class="np-resource-title">{{ catalog.headline }}</div>
<div class="np-resource-subtitle">{{ catalog.subheadline }}</div>
</div>
</div> {% endcomment %}
{% include "courses_catalog" %}
</div>
</div>
</main>
{% include "footer" %}
{% include "footer" %}
<style>
.subpage-intro {
position:relative;
background: url(https://s3.amazonaws.com/static.northpass.com/J%26J/white_beard_eye_exam.jpg);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
padding: 64px 0;
}
.color-layer {
background-color: rgba(51, 51, 51, 0.7);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.subpage-intro-content-wrapper {
text-align:center;
color: #fff;
position: relative;
font-size: 20px;
}
.subpage-intro-title {
font-size: 50px;
text-transform: uppercase;
font-weight: 900;
}
.subpage-intro-divider {
height: 5px;
margin: 16px auto;
width:100px;
background-color:#cc0033;
}
.category-hidden {
display: none;
}
</style>
<script>
/* convert values to same format */
$('[data-category]').each(function(){
$(this).attr('data-category', $(this).attr('data-category').replaceAll(' ', '').replaceAll('+', ' ').toLowerCase());
});
/* add action to filters on click */
$('.filter-element-category:not(.has-sub-categories)').click(function(){
filterCatalogCourses($(this))
});
$('.filter-item-sub-category').click(function(){
filterCatalogCourses($(this))
});
function filterCatalogCourses(elmnt) {
const selectedCategory = elmnt.data('category')
$('.category-selected').removeClass('category-selected');
elmnt.addClass('category-selected');
if (selectedCategory == 'all') {
$('.catalog-card').removeClass('category-hidden');
} else {
$('.catalog-card').removeClass('category-hidden');
/* hides all cards without selected category if the 'All' wasn't selected */
$('.catalog-card').each(function(index, card) {
$(`.catalog-card:not([data-category*="${selectedCategory}"])`).addClass('category-hidden')
})
}
}
</script>

View File

@ -1,3 +1,87 @@
<script>
window.location.replace('/app/homepage');
</script>
{% include "header" %}
{% include "course_version_outdated_alert", courses: courses.enrolled %}
{% comment %} {% include "sub_navigation" %} {% endcomment %}
<div class="row subpage-intro">
<div class="color-layer"></div>
<div class="col-xs-12 col-sm-9 col-md-6" style="margin:auto;">
<div class="subpage-intro-content-wrapper">
<div class="subpage-intro-title">My Topics</div>
<div class="subpage-intro-divider"></div>
<div class="subpage-intro-subtitle">Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Nulla porttitor accumsan tincidunt.</div>
</div>
</div>
</div>
<main class="np-main np-dashboard np-subpage-container np-max-width">
<div class="row np-flex-center">
<div class="col-xs-12 col-sm-8">
{% if features.learning_paths? %}
<div class="np-dashboard-resources-title">
Programs
</div>
{% include "learning_paths_index", items: learning_paths.enrolled %}
{% endif %}
<div class="np-dashboard-resources-title">
Recommended Topics
</div>
{% include "courses_index", class: "col-xs-12 col-sm-6 np-stretch-content" %}
</div>
{% if features.training_events? %}
<div class="np-grid-spacing col-xs-12 col-sm-4">
<div class="np-dashboard-resources-title">
{% comment %} {% t .upcoming_events %} {% endcomment %}
Saved Events
</div>
{% include "training_events_dashboard" %}
</div>
{% endif %}
</div>
</main>
{% include "footer" %}
<style>
.subpage-intro {
position:relative;
background: url(https://s3.amazonaws.com/static.northpass.com/J%26J/white_beard_eye_exam.jpg);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
padding: 64px 0;
}
.color-layer {
background-color: rgba(51, 51, 51, 0.7);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.subpage-intro-content-wrapper {
text-align:center;
color: #fff;
position: relative;
font-size: 20px;
}
.subpage-intro-title {
font-size: 50px;
text-transform: uppercase;
font-weight: 900;
}
.subpage-intro-divider {
height: 5px;
margin: 16px auto;
width:100px;
background-color:#cc0033;
}
.np-dashboard-resources-title {
font-size:16px;
line-height:18px;
color:#212121;
}
</style>

View File

@ -1,118 +1,241 @@
{% include "header" %}
{% include "course_version_outdated_alert", courses: courses.featured %}
{% comment %} {% include "course_version_outdated_alert", courses: courses.featured %} {% endcomment %}
<main class="np-main np-homepage">
{% include "homepage_hero_carousel" %}
{% comment %} {% include "sub_navigation" %} {% endcomment %}
<div class="np-subpage-container">
<div class="row intro-row" style="margin-top:64px;">
<div class="col-12 col-md-6 col-lg-7">
<div class="homepage-intro">
<div class="np-subpage-container">
<div class="row">
<div class="col-12 col-md-6 col-lg-7">
<div class="homepage-intro">
<div class="homepage-intro-headline np-header-font-color">
{{ homepage.featured_courses_headline }}
</div>
<div class="homepage-intro-subheadline">
{{ homepage.featured_courses_subheadline }}
</div>
</div>
<div class="row">
<div class="col-xs-12">
{% include "video_carousel" %}
</div>
</div>
<div class="row homepage-cards">
{% if current_person.signed_in? %}
<div class="col-xs-12 col-sm-6">
<a class="np-card" href="/app/training_events">
<div class="category-card-container">
<img
class="np-categories-image"
alt="Podcasts"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/conference-audience.jpg"
>
</div>
<div class="np-categories-content np-categories-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="homepage-card-title">Professional Events</p>
<p class="homepage-card-desc">Click here to register for upcoming events.</p>
<div class="arrow-icon"><i class="fal fa-long-arrow-right"></i></div>
</div>
</a>
</div>
{% else %}
<div class="col-xs-12 col-sm-6">
<div class="np-card">
<div class="category-card-container">
<img
class="np-categories-image"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/conference-audience.jpg"
>
</div>
<div class="np-categories-content np-categories-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="homepage-card-title">Professional Events</p>
<p class="homepage-card-desc">Register today and get access to upcoming profressional events.</p>
</div>
</div>
</div>
{% endif %}
<div class="col-xs-12 col-sm-6">
<a class="np-card" href="/app/catalog">
<div class="category-card-container">
<img
class="np-categories-image"
alt="Podcasts"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/JNJ4.png"
>
</div>
<div class="np-categories-content np-categories-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="homepage-card-title">Explore All Content</p>
<p class="homepage-card-desc">Discover all available topics</p>
<div class="arrow-icon"><i class="fal fa-long-arrow-right"></i></div>
</div>
</a>
</div>
<div class="col-xs-12 col-sm-6">
<a class="np-card" href="/app/catalog?category=productinformation">
<div class="category-card-container">
<img
class="np-categories-image"
alt="Podcasts"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/white_beard_eye_exam.jpg"
>
</div>
<div class="np-categories-content np-categories-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="homepage-card-title">Product Information</p>
{% comment %} <p class="homepage-card-desc"></p> {% endcomment %}
<div class="arrow-icon"><i class="fal fa-long-arrow-right"></i></div>
</div>
</a>
</div>
{% if current_person.signed_in? %}
<div class="col-xs-12 col-sm-6">
<a class="np-card" href="/app/dashboard">
<div class="category-card-container">
<img
class="np-categories-image"
alt="Podcasts"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/couple_ipad_podcast.jpg"
>
</div>
<div class="np-categories-content np-categories-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="homepage-card-title">My Topics</p>
<p class="homepage-card-desc">Tailored content based on your area of expertise</p>
<div class="arrow-icon"><i class="fal fa-long-arrow-right"></i></div>
</div>
</a>
</div>
{% else %}
<div class="col-xs-12 col-sm-6">
<div class="np-card">
<div class="category-card-container">
<img
class="np-categories-image"
alt="Podcasts"
src="https://s3.amazonaws.com/static.northpass.com/J%26J/couple_ipad_podcast.jpg"
>
</div>
<div class="np-categories-content np-categories-content-vertical np-card-padding course-card-content" style='padding: 1.5rem;'>
<p class="homepage-card-title">My Topics</p>
<p class="homepage-card-desc">Tailored content based on your area of expertise</p>
</div>
</div>
</div>
{% endif %}
</div>
</div>
<div class="col-0 col-lg-1"></div>
<div class="col-12 col-md-6 col-lg-4">
<a href="{% route catalog %}" class="catalog-card">
<p class="catalog-card-header">Course Library</p>
<p class="catalog-card-subhead">Click here to explore our catalog of courses&nbsp;<i class="fal fa-long-arrow-right"></i></p>
</a>
{% comment %} {% include "homepage_category_cards", class: "col-xs-12 col-sm-6" %} {% endcomment %}
</div>
<div class="col-0 col-lg-1"></div>
<div class="col-12 col-md-6 col-lg-4">
{% include "homepage_login_registration" %}
<a href="https://app.smartsheet.com/b/form/36c0f66e21ff4bf8b833bb4bbbf0b635" class="sidebar-content-block contact-block" target="_blank">
<p class="sidebar-header">Contact Us </p>
<div class="sidebar-desc">Click here to contact us for more information&nbsp;&nbsp;<i class=" arrow-icon fal fa-long-arrow-right"></i></div>
{% comment %} <div class="arrow-icon"><i class="fal fa-long-arrow-right"></i></div> {% endcomment %}
</a>
</div>
</div>
</div>
{% include "cards_categories", class: "col-xs-12 col-sm-6 col-md-4 col-lg-3" %}
</div>
{% include "homepage_events" %}
{% include "section_faqs" %}
{% include "section_contact_us" %}
</main>
{% include "footer" %}
<style>
.homepage-intro {
margin-bottom:64px;
}
.sidebar-content-block,
.sidebar-content-block:hover {
background: #f3f3f3;
padding: 32px;
color: #212121;
display: block;
margin-bottom:32px;
text-decoration: none;
}
.homepage-intro-headline {
font-size: 36px;
font-weight: bold;
margin-bottom:16px;
}
.sidebar-header,
.welcome-block-header,
.block-header {
font-size: 20px;
font-weight: 700;
}
.homepage-intro-subheadline {
font-size: 18px;
line-height: 26px;
}
.sidebar-content-block .arrow-icon {
text-align: right;
margin-top: 12px;
}
.np-homepage .np-subpage-container {
padding: 0 24px 50px;
max-width: 1400px;
margin:auto;
}
.sidebar-content-block .arrow-icon .fa-long-arrow-right,
.sidebar-desc .arrow-icon {
color: #009999;
font-size: 32px;
}
.catalog-card {
background: #fafafa;
padding: 32px;
color: #212121;
text-decoration: none;
.sidebar-desc .arrow-icon {
margin-top: 0!important;
position: relative;
top: 5px;
left: 5px;
}
.homepage-cards .np-card {
padding:0 0 32px;
display: flex;
flex-direction: column;
text-decoration:none;
}
.category-card-container {
position: relative;
overflow: hidden;
height: 200px;
}
.category-card-container img {
position: absolute;
left: 50%;
top: 50%;
width: 100%;
height: 100%;
transform: translate(-50%, -50%);
object-fit: cover;
}
.np-categories-content {
color: #212121;
background: #f3f3f3;
font-size: 18px;
flex:2;
display: flex;
flex-direction: column;
justify-content: space-between;
cursor:pointer;
}
.catalog-card:hover {
color: #212121;
.np-categories-content p {
margin:0;
}
.catalog-card:hover .catalog-card-subhead {
.np-categories-content .arrow-icon {
text-align:right;
margin-top:12px;
}
.np-categories-content .arrow-icon i {
color: #009999;
font-size: 32px;
}
.catalog-card-header {
font-size: 24px;
font-weight: bold;
p.homepage-card-title {
color: #212121;
font-size: 20px;
font-weight: 700;
margin-bottom: 12px!important;
}
.catalog-card-subhead {
font-size:18px;
line-height:22px;
color:#009999;
display:inline-flex;
align-items: center;
p.homepage-card-desc {
line-height:normal;
}
.np-card-content {
background: #f4f4f4!important;
}
.np-card-content-title {
shadow: 0!important;
}
.courses-left-small {
padding-top: 190px;
}
@media (min-width:1170px) {
.np-homepage .np-subpage-container {
padding: 0 22px 120px;
}
}
</style>
</style>

View File

@ -1,41 +0,0 @@
{% include "header" %}
{% include "sub_navigation" %}
<main class="np-main np-learning-paths np-subpage-container np-max-width">
<div class="np-learning-paths-main">
<div class="np-resource-title">
{% t shared.learning_paths %}
</div>
<div class="np-resource-subtitle">
{% t .subtitle %}.
</div>
{% include "learning_paths_index", items: learning_paths.available %}
</div>
</main>
{% include "footer" %}
<style>
@media only screen and (min-width: 768px) {
body {
display: grid;
grid-template-columns: 1fr;
grid-template-areas: "header" "subnav" "main" "footer" "powered";
grid-template-rows: 120px 50px 1fr 160px 60px;
}
header {
grid-area: header;
}
nav {
grid-area: subnav;
margin-top: 0 !important;
}
main {
grid-area: main;
}
footer {
grid-area: footer;
}
.np-powered-by {
grid-area: powered;
}
}
</style>

View File

@ -1,230 +0,0 @@
{% include "header" %}
{% include "course_version_outdated_alert", courses: courses.enrolled %}
{% include "sub_navigation" %}
<main class="np-main np-dashboard np-subpage-container np-max-width" style='background: #00283D;'>
<div class="np-dashboard-header">
<div class="np-resource-title">Hi {{current_person.first_name}}! &#128075;</div>
<div class="np-resource-subtitle">This is what's relevant to you right now in Northpass Academy.</div>
</div>
<div class="row np-flex-center">
<div class="col-xs-12 col-md-8">
{% if features.learning_paths? %}
<div class="np-dashboard-resources-title">
{% t shared.learning_paths %}
</div>
{% include "learning_paths_index", items: learning_paths.enrolled %}
{% endif %}
</div>
<div class="np-grid-spacing col-xs-12 col-md-4 progress-section">
<div class="np-dashboard-resources-title">Course Progress</div>
{% include "widget_course_progress" %}
</div>
</div>
<div class="row dashboard-section-courses">
<div class="col-xs-12">
{% if courses.enrolled.any? %}
{% if categories.enrolled.any? %}
{% assign all_categories = categories.enrolled | map: "name" %}
{% for enrolled_category in all_categories %}
<div class="np-md-flex-wrapper">
<div>
<div class="np-dashboard-resources-title">
Topic
</div>
<div class="np-dashboard-resources-category">
{{ enrolled_category }}
</div>
</div>
{%
include "filter_by_progress",
label: "Filter by Progress:",
default_option: "All Courses",
topic: enrolled_category,
%}
</div>
{%
include "carousel_courses",
items: courses.enrolled,
topic: enrolled_category,
%}
{% endfor %}
{% else %}
{% assign enrolled_category = "Not Categorized" %}
<div class="np-md-flex-wrapper">
<div>
<div class="np-dashboard-resources-title">
Topic
</div>
<div class="np-dashboard-resources-category">
{{ enrolled_category }}
</div>
</div>
{%
include "filter_by_progress",
label: "Filter by Progress:",
default_option: "All Courses",
topic: enrolled_category,
%}
</div>
{%
include "carousel_courses",
items: courses.enrolled,
topic: enrolled_category,
%}
{% endif %}
{% else %}
<div class="np-dashboard-resources-title" style="margin-bottom:19px;">
Courses
</div>
{% capture message %}
{% t shared.zero_state.courses.index,
key: current_school.course_vocabulary
%}
{% endcapture %}
<div style="margin-bottom:3rem;">
{% include "courses_zero_state", message: message %}
</div>
{% endif %}
</div>
</div>
<div class="row dashboard-section-events">
<div class="col-xs-12">
<div class="np-dashboard-resources-title" style="margin-bottom: 5px;">
Training Events
</div>
<div class="np-dashboard-resources-category" style="margin-bottom: 19px;">
Discover online events to maximize your learning
</div>
{% if training_events.enrolled.any? %}
{%
include "carousel_events",
items: training_events.enrolled,
%}
{% else %}
<div style="margin-bottom:3rem;">
{% include "training_events_zero_state" %}
</div>
{% endif %}
</div>
</div>
<div class="row dashboard-section-instructors">
<div class="col-xs-12">
<div class="np-dashboard-resources-title">
Meet the Team
</div>
{%
include "carousel_instructors",
%}
</div>
</div>
</main>
{% include "footer" %}
<style>
@media screen and (max-width: 1024px) {
.progress-section {
padding-left: 0.5rem
}
}
</style>
<script>
// Creates the custom dropdown and dropdown functionality
var x, i, j, l, ll, selElmnt, a, b, c;
/* Look for any elements with the class “select-wrapper”: */
x = document.getElementsByClassName("progress-filter");
l = x.length;
for (i = 0; i < l; i++) {
selElmnt = x[i].getElementsByTagName("select")[0];
ll = selElmnt.length;
a = document.createElement("DIV");
a.setAttribute("class", "select-selected");
a.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML;
x[i].appendChild(a);
b = document.createElement("DIV");
b.setAttribute("class", "select-items select-hide");
for (j = 1; j < ll; j++) {
c = document.createElement("DIV");
c.innerHTML = selElmnt.options[j].innerHTML;
c.addEventListener("click", function(e) {
var y, i, k, s, h, sl, yl;
s = this.parentNode.parentNode.getElementsByTagName("select")[0];
sl = s.length;
h = this.parentNode.previousSibling;
for (i = 0; i < sl; i++) {
if (s.options[i].innerHTML == this.innerHTML) {
s.selectedIndex = i;
h.innerHTML = this.innerHTML;
y = this.parentNode.getElementsByClassName("same-as-selected");
yl = y.length;
for (k = 0; k < yl; k++) {
y[k].removeAttribute("class");
}
this.setAttribute("class", "same-as-selected");
break;
}
}
filterCourses(this);
h.click();
});
b.appendChild(c);
}
x[i].appendChild(b);
a.addEventListener("click", function(e) {
e.stopPropagation();
closeAllSelect(this);
this.nextSibling.classList.toggle("select-hide");
this.classList.toggle("select-arrow-active");
});
}
function closeAllSelect(elmnt) {
var x, y, i, xl, yl, arrNo = [];
x = document.getElementsByClassName("select-items");
y = document.getElementsByClassName("select-selected");
xl = x.length;
yl = y.length;
for (i = 0; i < yl; i++) {
if (elmnt == y[i]) {
arrNo.push(i)
} else {
y[i].classList.remove("select-arrow-active");
}
}
for (i = 0; i < xl; i++) {
if (arrNo.indexOf(i)) {
x[i].classList.add("select-hide");
}
}
}
/* If the user clicks anywhere outside the select box,
then close all select boxes: */
document.addEventListener("click", closeAllSelect);
$(".select-items div").each(function() {
if($( this ).text() == $(".select-selected").text()) {
$(this).addClass("same-as-selected");
}
});
function filterCourses(selectedItem) {
let filterGroup = $(selectedItem).closest(".progress-filter").data("topic");
let selectedFilter = $(selectedItem).text().replace(" ", "-").toLowerCase();
let carouselGroup = $('.courses-carousel[data-topic="' + filterGroup + '"]');
carouselGroup.slick('slickUnfilter');
if (selectedFilter != "all-courses") {
carouselGroup.slick('slickFilter', `.${selectedFilter}`);
}
}
$(".np-sub-navigation-content-item-link:contains('Dashboard')").parent().addClass("np-sub-navigation-content-item-active")
</script>

View File

@ -0,0 +1,266 @@
<main class="np-main np-box-container">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" name="secondaryRegistrationForm" onsubmit(return false)>
<div class="np-form-title"> Tell us more </div>
<div class="form-description">Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus.</div>
<div class="form-disclaimer">All fields are required</div>
<div class="np-form-field">
<label class="np-input-label" for="company">
Company / Practice Name*
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="company"
id="company"
required
>
</div>
<input type="hidden" id="country" name="country" value="us">
<div class="np-form-field">
<label class="np-input-label" for="city">
City*
</label>
<input
class="np-input"
type="text"
name="city"
id="city"
required
>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_state">
State*
</label>
<select id="stateSelect">
<option value="" selected>Select a state</option>
<option value="Alabama">Alabama</option>
<option value="Alaska">Alaska</option>
<option value="Arizona">Arizona</option>
<option value="Arkansas">Arkansas</option>
<option value="California">California</option>
<option value="Colorado">Colorado</option>
<option value="Connecticut">Connecticut</option>
<option value="Delaware">Delaware</option>
<option value="District Of Columbia">District Of Columbia</option>
<option value="Florida">Florida</option>
<option value="Georgia">Georgia</option>
<option value="Hawaii">Hawaii</option>
<option value="Idaho">Idaho</option>
<option value="Illinois">Illinois</option>
<option value="Indiana">Indiana</option>
<option value="Iowa">Iowa</option>
<option value="Kansas">Kansas</option>
<option value="Kentucky">Kentucky</option>
<option value="Louisiana">Louisiana</option>
<option value="Maine">Maine</option>
<option value="Maryland">Maryland</option>
<option value="Massachusetts">Massachusetts</option>
<option value="Michigan">Michigan</option>
<option value="Minnesota">Minnesota</option>
<option value="Mississippi">Mississippi</option>
<option value="Missouri">Missouri</option>
<option value="Montana">Montana</option>
<option value="Nebraska">Nebraska</option>
<option value="Nevada">Nevada</option>
<option value="New Hampshire">New Hampshire</option>
<option value="New Jersey">New Jersey</option>
<option value="New Mexico">New Mexico</option>
<option value="New York">New York</option>
<option value="North Carolina">North Carolina</option>
<option value="North Dakota">North Dakota</option>
<option value="Ohio">Ohio</option>
<option value="Oklahoma">Oklahoma</option>
<option value="Oregon">Oregon</option>
<option value="Pennsylvania">Pennsylvania</option>
<option value="Rhode Island">Rhode Island</option>
<option value="South Carolina">South Carolina</option>
<option value="South Dakota">South Dakota</option>
<option value="Tennessee">Tennessee</option>
<option value="Texas">Texas</option>
<option value="Utah">Utah</option>
<option value="Vermont">Vermont</option>
<option value="Virginia">Virginia</option>
<option value="Washington">Washington</option>
<option value="West Virginia">West Virginia</option>
<option value="Wisconsin">Wisconsin</option>
<option value="Wyoming">Wyoming</option>
</select>
</div>
{% comment %} Country is currently hard coded as United states to start. Eventually will add Canada and Latam (Latin America) {% endcomment %}
<div class="np-form-field" style="display:none">
<label class="np-input-label" for="country">
Country*
</label>
<select id="countrySelect">
{% comment %} <option value="">Select your Country</option> {% endcomment %}
<option value="United States" selected>United States</option>
</select>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_role">
Role*
</label>
<select id="roleSelect">
<option value="" selected>Select your role</option>
<option value="Ophthalmologist">Ophthalmologist</option>
<option value="Optometrist">Optometrist</option>
<option value="Technician">Technician</option>
<option value="Nurse">Nurse</option>
<option value="Staff">Staff</option>
<option value="JNJ Employee">JNJ Employee</option>
</select>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_specialty">
Primary Specialty*
</label>
<select id="specialtySelect">
<option value="" selected>Select your primary specialty</option>
<option value="Cataract">Cataract</option>
<option value="General">General</option>
<option value="Glaucoma">Glaucoma</option>
<option value="Vitreoretinal">Vitreoretinal</option>
<option value="Teaching Institution Faculty">Teaching Institution Faculty</option>
<option value="JNJ Employee">JNJ Employee</option>
</select>
</div>
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action" id="completeRegistrationBtn">
<span>Complete Registration</span> <div class="loader" style="display:none;"></div>
</button>
<span class="err-msg" style="display:none;">Please complete all fields</span>
</form>
</div>
</div>
</main>
<script>
console.log("{{current_person.email}}")
$(document).ready(function() {
$('#completeRegistrationBtn').click(function(e) {
e.preventDefault()
validateForm()
})
})
function validateForm() {
let allDataValidated = false;
let userData = {
learner_uuid: '{{current_person.id}}',
company: '',
country: '',
city: '',
state: '',
country: '',
role: '',
specialty: '',
}
const form = document.forms['secondaryRegistrationForm']
// validate company field
let companyField = form["company"].value;
let cityField = form["city"].value;
let stateField = $('#stateSelect').val();
let countryField = $('#countrySelect').val();
let roleField = $('#roleSelect').val();
let specialtyField = $('#specialtySelect').val();
companyField == "" ? "" : userData.company = companyField
cityField == "" ? "" : userData.city = cityField
stateField == "" ? "" : userData.state = stateField
countryField == "" ? "" : userData.country = countryField
roleField == "" ? "" : userData.role = roleField
specialtyField == "" ? "" : userData.specialty = specialtyField
if (userData.company && userData.city && userData.state && userData.country && userData.role && userData.specialty) {
submitValidatedData(userData)
} else {
$('.err-msg').show()
}
}
function submitValidatedData(data) {
console.log(data)
$.ajax({
url: "https://www.workato.com/webhooks/rest/bd1a1eb7-7e79-4208-a1db-8e9c7440bcc9/additional-learner-info",
data: JSON.stringify(data),
method: 'POST',
success: function(res){
console.log(res)
$('#completeRegistrationBtn').prop("disabled",true);
$('#completeRegistrationBtn').addClass('submitting')
$('.loader').show()
$('#completeRegistrationBtn span').text('Completing Registration')
setTimeout(function() {
window.location.replace("/app")
}, 2000)
},
error: function (xhr, status, error) {
console.error("Error posting to workato!");
}
});
}
</script>
<style>
.form-disclaimer {
font-size:12px;
margin-bottom:12px;
margin-top:32px;
font-weight:700;
}
select {
width: 100%;
font-size: .9375rem;
padding: 1rem;
background: #f2f4f5;
border: 1px solid #ccd4d8;
border-radius: 4px;
color: #1b3e4f;
}
.err-msg {
font-size:14px;
color:#cc0033;
margin-top:16px;
}
.loader {
border: 3px solid #f3f3f3;
border-top: 3px solid #009999;
border-radius: 50%;
width: 20px;
height: 20px;
animation: spin 1.5s linear infinite;
margin-left: 12px;
}
#completeRegistrationBtn.submitting {
background-color:#63666a;
cursor:text;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
@media screen and (min-width: 768px) {
.np-box-header {
height: 70px;
margin-top: 50px;
}
}
</style>

View File

@ -0,0 +1,183 @@
<main class="np-main np-box-container">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{% route sign_up %}" method="post" novalidate>
<div class="np-form-title"> {% t .create_account %} </div>
{% form_authenticity_token %}
<div class="np-form-flex-desktop">
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="learner[first_name]"
id="learner_first_name"
>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_last_name">
{% t shared.last_name %}
</label>
<input
class="np-input"
type="text"
name="learner[last_name]"
id="learner_last_name"
>
</div>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
{% t shared.email_address %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="email"
name="learner[email]"
id="learner_email"
>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_password">
{% t shared.password %}
</label>
<input
class="np-input"
type="password"
name="learner[password]"
id="learner_password"
>
</div>
<div class="np-form-field checkbox-field">
<label class="checkbox-container">I attest that I am a Healthcare Professional or Johnson & Johnson employee.
<input type="checkbox" id="attestationCheckbox">
<span class="checkmark"></span>
</label>
</div>
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
Continue
</button>
{% comment %} <span class="np-form-terms">
{% t .terms %}
<a
class="np-form-link np-button-color"
target="_blank"
href="{{ current_school.terms_of_service_url }}"
>
{% t .terms_link %}
</a>
</span> {% endcomment %}
<div class="err-required" style="display:none;">Please complete all required fields.</div>
<span class="np-form-terms">Use of this site constitutes your consent to the application of such laws and regulations and to our <a class="np-button-color" href="https://jnjinstitute.com/en-us/privacy-policy" target="_blank">Privacy Policy</a> and <a href="https://jnjinstitute.com/en-us/cookie-policy" class="np-button-color" target="_blank">Cookie Policy</a>. Your use of the information on this site is subject to the terms of our <a href="{{ current_school.terms_of_service_url }}" class="np-button-color" target="_blank">Terms of Use</a>.</span>
</form>
</div>
</div>
</main>
<style>
/* Customize the label (the container) */
.checkbox-container {
display: block;
position: relative;
padding-left: 35px;
margin-bottom: 8px;
cursor: pointer;
font-size: 14px;
line-height:24px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
color:#486776;
}
/* Hide the browser's default checkbox */
.checkbox-container input {
position: absolute;
opacity: 0;
cursor: pointer;
height: 0;
width: 0;
}
/* Create a custom checkbox */
.checkmark {
position: absolute;
top: 0;
left: 0;
height: 25px;
width: 25px;
background: #f2f4f5;
border: 1px solid #ccd4d8;
border-radius:3px;
}
.has-err .checkmark {
background: #fcddd3;
border: 1px solid #f05323;
}
/* On mouse-over, add a grey background color */
.checkbox-container:hover input ~ .checkmark {
background-color: #ccd4d8;
}
/* When the checkbox is checked, add a blue background */
.checkbox-container input:checked ~ .checkmark {
background-color: #009999;
}
/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
content: "";
position: absolute;
display: none;
}
/* Show the checkmark when checked */
.checkbox-container input:checked ~ .checkmark:after {
display: block;
}
/* Style the checkmark/indicator */
.checkbox-container .checkmark:after {
left: 8px;
top: 5px;
width: 7px;
height: 11px;
border: solid white;
border-width: 0 3px 3px 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.err-required {
color:#f05323;
font-size:12px;
margin-top:12px;
}
</style>
<script>
//validate the checkbox is selected
$('.np-form-action').click(function(e) {
e.preventDefault()
console.log("clicked")
if($("#attestationCheckbox").is(":checked")) {
$('.np-form').submit()
} else {
console.log("Checkbox is not checked")
$('.checkbox-field').addClass('has-err')
$('.err-required').show();
}
});
</script>

View File

@ -0,0 +1,71 @@
{% include "header" %}
{% comment %} {% include "sub_navigation" %} {% endcomment %}
<div class="row subpage-intro">
<div class="color-layer"></div>
<div class="col-xs-12 col-sm-9 col-md-6" style="margin:auto;">
<div class="subpage-intro-content-wrapper">
<div class="subpage-intro-title">Professional Events</div>
<div class="subpage-intro-divider"></div>
<div class="subpage-intro-subtitle">Nulla porttitor accumsan tincidunt. Donec rutrum congue leo eget malesuada. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Nulla porttitor accumsan tincidunt.</div>
</div>
</div>
</div>
<main class="np-main np-training-events np-subpage-container np-max-width">
<div class="row">
{% comment %} <div class="col-xs-12 col-sm-10">
<div class="np-resource-title">
Professional Events
</div>
<div class="np-resource-subtitle">
Discover in-person and online events
</div>
</div> {% endcomment %}
<div class="col-xs-12 col-sm-2">
{% include "training_events_filter" %}
</div>
</div>
{% include "training_events_index" %}
</main>
{% include "footer" %}
<style>
.subpage-intro {
position:relative;
background: url(https://s3.amazonaws.com/static.northpass.com/J%26J/conference-audience.jpg);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
padding: 64px 0;
}
.color-layer {
background-color: rgba(51, 51, 51, 0.7);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.subpage-intro-content-wrapper {
text-align:center;
color: #fff;
position: relative;
font-size: 20px;
}
.subpage-intro-title {
font-size: 50px;
text-transform: uppercase;
font-weight: 900;
}
.subpage-intro-divider {
height: 5px;
margin: 16px auto;
width:100px;
background-color:#cc0033;
}
</style>

View File

@ -0,0 +1,14 @@
{% include "header" %}
{% include "course_version_outdated_alert", courses: courses.in_catalog %}
{% include "sub_navigation" %}
<main class="np-main np-catalog np-subpage-container np-max-width">
<div class="np-catalog-header-wrapper">
<div class="np-catalog-header">
<div class="np-resource-title">{{ catalog.headline }}</div>
<div class="np-resource-subtitle">{{ catalog.subheadline }}</div>
</div>
{% capture label %}{% t shared.filters.by_category %}{% endcapture %}
</div>
{% include "courses_catalog" %}
</main>
{% include "footer" %}

View File

@ -226,6 +226,8 @@
</div>
</div>
</footer>
<style>
.footer {
background: #1E2423;

View File

@ -41,12 +41,12 @@
href="{% route course_enrollment, code: course.enrollment_code %}"
{% endif %}>
{% if course.started? %}
Continue course
Continue Watching
{% else %}
{% if course.enrolled? %}
Start Course
{% else %}
Enroll in course
Watch Video
{% endif %}
{% endif %}
</a>
@ -386,4 +386,4 @@
window.location.replace('{% route course_viewer, course_id: course.id, learning_path_id: params.learning_path_id %}')
})
}
</script>
</script>

Binary file not shown.

View File

@ -9,6 +9,7 @@
class="np-card-image"
alt="{{ course.name }}"
src="{{ course.image_url }}"
style="width: 100%;"
>
</div>
<div class="np-card-text-wrapper" style="border: none !important;">

View File

@ -113,4 +113,11 @@
<script>
$(".np-footer-navigation-link[href='https://change_to_mail.com'").attr("href", "mailto:support@northpass.com")
</script>
</script>
<script>
if(document.referrer == 'https://academy.scenariocloud.com/auth/auth_url_email/login'){
console.log('Redirecting to Homepage');
window.location.href = '/app';
}
</script>

View File

@ -22,7 +22,7 @@
</button>
{% endif %}
</div>
{% comment %}{% if current_school.logo_url %}
{% if current_school.logo_url %}
<h1 class="np-header-logo">
<a href="{% route home %}">
<img
@ -36,7 +36,7 @@
<a href="{% route home %}" class="np-school-name np-header-font-color">
{{ current_school.name }}
</a>
{% endif %}{% endcomment %}
{% endif %}
<div class="np-hidden-mobile np-header-desktop-nav">
<ul class="np-header-desktop-nav-list">
@ -100,7 +100,6 @@
class="np-header-avatar-tooltip-navigation-link"
href="{% route account %}"
>
{% comment %}{% t .profile_settings %}{% endcomment %}
Profile Settings
</a>
{% endunless %}
@ -108,7 +107,6 @@
class="np-header-avatar-tooltip-navigation-link np-danger"
href="{% route logout %}"
>
{% comment %}{% t .sign_out %}{% endcomment %}
Sign Out
</a>
</nav>
@ -168,14 +166,14 @@
class="np-header-mobile-menu-content-button"
href="{% route account %}"
>
{% t .profile_settings %}
Profile Settings
</a>
{% endunless %}
<a
class="np-header-mobile-menu-content-button np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
Sign Out
</a>
</div>
</div>

View File

@ -0,0 +1,17 @@
<header class="np-box-header">
<a class="np-box-header-link" href="{% route home %}">
{% if current_school.logo_url %}
<img
alt="{{ current_school.name }}"
src="{{ current_school.logo_url }}"
class="np-box-header-logo"
/>
{% else %}
<span class="np-school-name np-header-font-color">
{{ current_school.name }}
</span>
{% endif %}
</a>
</header>
{% include "messages" %}

View File

@ -0,0 +1,208 @@
<header class="np-header np-header-color" style="background: #fafafa; border: none; height: 3.5rem;">
<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">
<a class="np-header-avatar-tooltip-navigation-link" onclick="buildURL(window.location.pathname)" style="cursor:pointer">
Default
</a>
{% unless current_school.sso_active? %}
<a
class="np-header-avatar-tooltip-navigation-link"
href="{% route account %}"
>
Profile Settings
</a>
{% endunless %}
<a
class="np-header-avatar-tooltip-navigation-link np-danger"
href="{% route logout %}"
>
Sign Out
</a>
</nav>
</div>
</div>
{% else %}
<a
class="np-header-sign-in np-header-desktop-nav-link np-header-font-color"
href="{% route login %}"
>
{% t shared.sign_in %}
</div>
{% 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 %}"
>
Profile Settings
</a>
{% endunless %}
<a
class="np-header-mobile-menu-content-button np-danger"
href="{% route logout %}"
>
Sign Out
</a>
</div>
</div>
</div>
<div class="np-homepage-hero" style="background: #34abe2; z-index: -1; margin-top: -8rem; padding-top: 0.5rem;">
<img class="np-homepage-hero-image"
src="#"
alt="{{ homepage.headline }}"
/>
<div class="np-homepage-hero-content">
<div class="np-homepage-headline np-header-font-color">
{{ homepage.headline }}
</div>
<div class="np-homepage-subheadline np-header-font-color">
{{ homepage.subheadline }}
</div>
</div>
</div>
<main class="np-main np-subpage-container np-account">
<div class="np-hidden-desktop">
{% include "account_mobile_view", form: form %}
</div>
<div class="np-hidden-mobile np-flex np-flex-center">
{% include "account_desktop_view", form: form %}
</div>
</main>
{% include "footer" %}

View File

@ -0,0 +1,101 @@
<main class="np-box-container np-open-access">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{{ form.url }}" method="get" novalidate>
{% form_authenticity_token %}
<div class="np-form-headline">
{% t shared.welcome_to_school, school_name: current_school.name %}
</div>
<div class="np-form-subheadline">
{% t .headline, key: current_school.course_vocabulary %}
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="first_name"
id="learner_first_name"
value="{{ form.first_name }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_last_name">
{% t shared.last_name %}
</label>
<input
class="np-input"
type="text"
name="last_name"
id="learner_last_name"
value="{{ form.last_name }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
Company Email
</label>
<input
class="np-input"
type="text"
name="email"
id="learner_email"
value="{{ form.email }}"
/>
</div>
<p style="display: none;" id="bad_email_alert">PLEASE ENTER YOUR COMPANY EMAIL</p>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
id="submit_button"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>
<script>
// document.getElementById("header").scrollIntoView();
function checkIfInputsExist (){
window.setTimeout(function(){
// Regular expression to check if string is email
const regexExp = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
// Grabs Email Address Value
const learnerEmail = $("#learner_email")[0].value;
if ($("#learner_email")[0].value.length > 0){
if(regexExp.test(learnerEmail) == true){
if ($("#learner_email")[0].value.includes('@scenariocloud.com')){
$("#learner_email").css("background", "#f2f4f5");
$("#bad_email_alert").css("display", "none");
$("#submit_button").css("pointer-events", "auto");
}
else {
$("#learner_email").css("background", "salmon");
$("#bad_email_alert").css("color", "#f2f4f5");
$("#bad_email_alert").css("display", "block");
$("#submit_button").css("pointer-events","none");
}
} else {
$("#learner_email").css("background", "#f2f4f5");
$("#bad_email_alert").css("display", "none");
$("#submit_button").css("pointer-events", "auto");
}
}
}, 500)
}
document.addEventListener('keyup', checkIfInputsExist);
console.log(123213213);
</script>
<style>
.np-input-label{
color: #ffffff;
}
</style>

View File

@ -1,4 +1,4 @@
<header class="np-header np-header-color" style="background: transparent; border: none;">
<header class="np-header np-header-color" style="background: #fafafa; border: none; height: 3.5rem;">
<div class="np-header-content">
<div class="np-hidden-desktop np-header-mobile-menu-nav">
{% if current_person.signed_in? %}
@ -22,6 +22,21 @@
</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">
@ -85,14 +100,14 @@
class="np-header-avatar-tooltip-navigation-link"
href="{% route account %}"
>
{% t .profile_settings %}
Profile Settings
</a>
{% endunless %}
<a
class="np-header-avatar-tooltip-navigation-link np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
Sign Out
</a>
</nav>
</div>
@ -151,14 +166,14 @@
class="np-header-mobile-menu-content-button"
href="{% route account %}"
>
{% t .profile_settings %}
Profile Settings
</a>
{% endunless %}
<a
class="np-header-mobile-menu-content-button np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
Sign Out
</a>
</div>
</div>
@ -167,7 +182,7 @@
{% include "messages" %}
{% include "course_version_outdated_alert", courses: courses.enrolled %}
<div class="np-homepage-hero" style="background: #34abe2; z-index: -1; margin-top: -8rem;">
<div class="np-homepage-hero" style="background: #34abe2; z-index: -1; margin-top: -8rem; padding-top: 0.5rem;">
<img class="np-homepage-hero-image"
src="{{ homepage.artwork_url }}"
alt="{{ homepage.headline }}"

View File

@ -2,12 +2,12 @@
{% include "course_version_outdated_alert", courses: courses.featured %}
<main class="np-main np-homepage">
{% comment %}<div class="np-homepage-hero" >{% endcomment %}
<div class="np-homepage-hero" style="background: #34abe2; ">
<div class="np-homepage-hero" style="background: #34abe2; top: -1.95rem; height: 14.8rem;">
<img class="np-homepage-hero-image"
src="{{ homepage.artwork_url }}"
alt="{{ homepage.headline }}"
/>
<div class="np-homepage-hero-content">
<div class="np-homepage-hero-content homepage-only-hero">
<div class="np-homepage-headline np-header-font-color">
{{ homepage.headline }}
</div>
@ -29,9 +29,11 @@
{% if courses.in_catalog.any? %}
<div class="np-homepage-featured-courses row">
{% for course in courses.in_catalog %}
<div class="col-xs-12 coul-sm-8 col-md-12" style="margin:auto;">
{% include "cards_featured_course" with course %}
</div>
{% if course.name == 'Scenario Basics' or course.name == 'Core Concepts' %}
<div class="col-xs-12 coul-sm-8 col-md-12" style="margin:auto;">
{% include "cards_featured_course" with course %}
</div>
{% endif %}
{% endfor %}
</div>
{% else %}
@ -155,3 +157,6 @@
<script>
$(".np-sub-navigation-content-item-link:contains('Home')").parent().addClass("np-sub-navigation-content-item-active")
</script>
<script>
console.log(window.location.href);
</script>

View File

@ -0,0 +1,54 @@
<main class="np-main np-box-container">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{% route login %}" method="post" novalidate>
{% form_authenticity_token %}
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
Company Email
</label>
<input
class="np-input"
autofocus="autofocus"
type="email"
name="learner[email]"
id="learner_email"
>
<p class="enter-label">Please use the email you use for Scenario</p>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_password">
{% t shared.password %}
</label>
<input
class="np-input"
type="password"
name="learner[password]"
id="learner_password"
>
</div>
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
{% t shared.sign_in %}
</button>
<a class="np-form-link np-button-color" href="{% route forgot_password_new %}">
{% t .forgot_password %}
</a>
{% if features.account_creation? %}
<a class="np-form-link np-button-color" href="{% route sign_up %}">
{% t shared.sign_up %}
</a>
{% endif %}
{% if features.request_access? %}
<a
class="np-form-link np-button-color"
target="_blank"
href="{{ current_school.request_access_link }}"
>
{{ current_school.request_access_label }}
</a>
{% endif %}
</form>
</div>
</div>
</main>

View File

@ -0,0 +1,73 @@
<main class="np-main np-box-container">
<div class="np-box">
{% include "header_minimal" %}
<div class="np-box-content-container">
<form class="np-form np-box-content" action="{% route sign_up %}" method="post" novalidate>
<div class="np-form-title"> {% t .create_account %} </div>
{% form_authenticity_token %}
<div class="np-form-flex-desktop">
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="learner[first_name]"
id="learner_first_name"
>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_last_name">
{% t shared.last_name %}
</label>
<input
class="np-input"
type="text"
name="learner[last_name]"
id="learner_last_name"
>
</div>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_email">
Company Email
</label>
<input
class="np-input"
autofocus="autofocus"
type="email"
name="learner[email]"
id="learner_email"
>
<p class="enter-label">Please use the email you use for Scenario</p>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_password">
{% t shared.password %}
</label>
<input
class="np-input"
type="password"
name="learner[password]"
id="learner_password"
>
</div>
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
{% t shared.sign_up %}
</button>
<span class="np-form-terms">
{% t .terms %}
<a
class="np-form-link np-button-color"
target="_blank"
href="{{ current_school.terms_of_service_url }}"
>
{% t .terms_link %}
</a>
</span>
</form>
</div>
</div>
</main>

View File

@ -197,9 +197,15 @@ div {
}
.np-homepage-hero-content {
padding: 2.25rem 2.5rem;
padding: 5rem 2.5rem;
padding-bottom: 3rem;
bottom: 0;
}
.homepage-only-hero{
padding-bottom: 1.5rem !important;
}
.np-homepage-featured-text {
padding: 0 2rem 2rem;
}
@ -433,6 +439,12 @@ div {
text-transform: uppercase;
}
.enter-label{
margin-top: 0;
font-size: 10px;
font-weight: 700;
}
/*
2.7 - LEARNING PATH COVER PAGE
*/
@ -466,8 +478,13 @@ div {
.np-header.np-header-absolute {
position: absolute;
background: transparent;
background: #fafafa;
border-bottom: none;
height: 3.5rem;
}
.np-header-search-icon{
color: #002532;
}
@media (min-width: 768px) {

View File

@ -1,4 +1,4 @@
<header class="np-header np-header-color" style="background: transparent; border: none;">
<header class="np-header np-header-color" style="background: #fafafa; border: none; height: 3.5rem;">
<div class="np-header-content">
<div class="np-hidden-desktop np-header-mobile-menu-nav">
{% if current_person.signed_in? %}
@ -22,6 +22,21 @@
</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">
@ -85,14 +100,14 @@
class="np-header-avatar-tooltip-navigation-link"
href="{% route account %}"
>
{% t .profile_settings %}
Profile Settings
</a>
{% endunless %}
<a
class="np-header-avatar-tooltip-navigation-link np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
Sign Out
</a>
</nav>
</div>
@ -151,14 +166,14 @@
class="np-header-mobile-menu-content-button"
href="{% route account %}"
>
{% t .profile_settings %}
Profile Settings
</a>
{% endunless %}
<a
class="np-header-mobile-menu-content-button np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
Sign Out
</a>
</div>
</div>
@ -167,7 +182,7 @@
{% include "messages" %}
{% include "course_version_outdated_alert", courses: courses.enrolled %}
<div class="np-homepage-hero" style="background: #34abe2; z-index: -1; margin-top: -8rem;">
<div class="np-homepage-hero" style="background: #34abe2; z-index: -1; margin-top: -8rem; padding-top: 0.5rem;">
<img class="np-homepage-hero-image"
src="{{ homepage.artwork_url }}"
alt="{{ homepage.headline }}"