BirchStreet download. Fixed Cin7 and backed up all the templates. Sandbox templates.

This commit is contained in:
Norm Rasmussen
2024-12-16 16:29:06 -05:00
parent 9a045e60dc
commit b8d085e12c
603 changed files with 13679 additions and 5939 deletions

Binary file not shown.

View File

@ -0,0 +1,71 @@
<div class="np-hidden-mobile">
<p>{% t .description %}</p>
<p>{% t .requirements %}</p>
</div>
<img
alt=""
class="np-account-avatar-image"
src="{{ form.gravatar_url }}?s=200"
id="{{version}}_gravatar_img"
{% unless form.use_gravatar? %}style="display: none"{% endunless %}
/>
<img
alt=""
class="np-account-avatar-image"
src="{{ form.secure_custom_avatar_url }}"
id="{{version}}_custom_avatar_img"
{% if form.use_gravatar? %}style="display: none"{% endif %}
/>
<div class="np-account-avatar-choice">
<div class="np-form-field">
<label class="radio radio-before np-input-label" for="{{version}}_learner_use_gravatar_true">
<span class="radio__input">
<input
id="{{version}}_learner_use_gravatar_true"
name="learner[use_gravatar]"
type="radio"
value="true"
{% if form.use_gravatar? %}checked{% endif %}
/>
<span class="np-button-color radio__control"></span>
</span>
<span class="radio__label">
{% t .use_gravatar %}
</span>
</label>
</div>
<div class="np-form-field">
<label class="radio radio-before np-input-label" for="{{version}}_learner_use_gravatar_false">
<span class="radio__input">
<input
id="{{version}}_learner_use_gravatar_false"
name="learner[use_gravatar]"
type="radio"
value="false"
{% unless form.use_gravatar? %}checked{% endunless %}
/>
<span class="np-button-color radio__control"></span>
</span>
<span class="radio__label">
{% t .upload_custom_photo %}
</span>
</label>
</div>
<div>
<button
id="{{version}}_upload_avatar"
type="button"
class="np-button np-button-secondary" {% if form.use_gravatar? %}style="visibility: hidden"{% endif %}
>
{% t .upload %}
</button>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,24 @@
<form class="np-form" action="{{ form.options.action }}" method="post" id="desktop_edit_learner" novalidate>
<input type="hidden" name="_method" value="{{ form.options.http_method }}">
{% form_authenticity_token %}
<div class="np-card">
<div class="np-card-container np-card-padding">
<div class="row">
<div class="col-sm-7 np-account-form">
{% render "account_form", form: form, version: "desktop" %}
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
{% t shared.account.save %}
</button>
</div>
<div class="col-sm-5 np-account-avatar">
{% include "account_avatar", version: "desktop" %}
</div>
</div>
</div>
</div>
</form>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,144 @@
<div class="np-resource-title">
{% t .header %}
</div>
<div class="np-form-field {% if form.errors contains 'email' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_email">{% t shared.email %} *</label>
<input
{% if form.options.invite? %} disabled {% endif %}
autofocus="autofocus"
class="np-input"
id="{{version}}_learner_email"
name="learner[email]"
type="email"
value="{{ form.email }}"
/>
</div>
<div class="np-form-field {% if form.errors contains 'first_name' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_first_name">
{% t shared.first_name %} *
</label>
<input
class="np-input"
id="{{version}}_learner_first_name"
name="learner[first_name]"
value="{{ form.first_name }}"
/>
</div>
<div class="np-form-field {% if form.errors contains 'last_name' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_last_name">
{% t shared.last_name %} *
</label>
<input
class="np-input"
id="{{version}}_learner_last_name"
name="learner[last_name]"
value="{{ form.last_name }}"
/>
</div>
<div class="np-form-field {% if form.errors contains 'display_name' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_display_name">
{% t .display_name %}
</label>
<input
class="np-input"
id="{{version}}_learner_display_name"
name="learner[display_name]"
value="{{ form.display_name }}"
/>
</div>
{% unless form.options.invite? %}
<div class="np-form-field {% if form.errors contains 'current_password' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_current_password">
{% t .current_password %} *
</label>
<input
class="np-input"
id="{{version}}_learner_current_password"
name="learner[current_password]"
type="password"
/>
</div>
<div class="np-form-field {% if form.errors contains 'password' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_password">
{% t .new_password %} *
</label>
<input
class="np-input"
id="{{version}}_learner_password"
name="learner[password]"
type="password"
/>
</div>
<div class="np-form-field {% if form.errors contains 'password_confirmation' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_password_confirmation">
{% t .confirm_new_password %} *
</label>
<input
class="np-input"
id="{{version}}_learner_password_confirmation"
name="learner[password_confirmation]"
type="password"
/>
</div>
{% endunless %}
{% if form.options.invite? %}
<div class="np-form-field {% if form.errors contains 'password' %}np-account-form-field-error{% endif %}">
<label class="np-input-label" for="{{version}}_learner_password">
{% t shared.password %} *
</label>
<input
class="np-input"
id="{{version}}_learner_password"
name="learner[password]"
type="password"
/>
</div>
{% if form.terms_of_service_required? %}
<div class="np-form-field terms-of-service {% if form.errors contains 'terms_of_service_accepted' %}np-account-form-field-error{% endif %}">
<input
id="{{version}}_learner_terms_of_service"
name="learner[terms_of_service_accepted]"
type="checkbox"
/>
<div class="label">
{% t .terms_of_service %}
<a
target="_blank"
href={{ form.terms_of_service_url }}
>
{% t .terms_link %}
</a>
</div>
</div>
{% else %}
<div class="np-margin-top">
<span class="np-form-terms ">
{% t .terms %}
<a
class="np-form-link np-button-color"
target="_blank"
href={{ form.terms_of_service_url }}
>
{% t .terms_link %}
</a>
</span>
</div>
{% endif %}
<input
id="{{version}}_invite_token"
name="learner[token]"
value="{{ form.invite_token }}"
type="hidden"
/>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,22 @@
<form class="np-form" action="{{ form.options.action }}" method="post" id="mobile_edit_learner" novalidate>
<input type="hidden" name="_method" value="{{ form.options.http_method }}">
{% form_authenticity_token %}
<div class="np-card np-account-form">
<div class="np-card-container np-card-padding">
{% render "account_form", form: form, version: "mobile" %}
</div>
</div>
<div class="np-card np-account-avatar">
<div class="np-card-container np-card-padding">
{% include "account_avatar", version: "mobile" %}
</div>
</div>
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
{% t shared.account.save %}
</button>
</form>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,180 @@
<div class="activity-overview">
<div class="activity-overview-headline">
Activity Overview
</div>
<div class="overview-body">
<div class="overview-blurb col-xs-12 col-md-5">
<img
alt="{{ current_person.name }}"
class="np-header-avatar-image overview-blurb-image np-hidden-mobile"
src="{{ current_person.avatar_url }}"
>
<div class="np-dashboard-header">
<div class="np-resource-title">Hi {{current_person.first_name}},</div>
<div class="np-resource-subtitle">This is what's relevant to you right now in Birchstreet Academy</div>
</div>
</div>
<div class="overview-data col-xs-12 col-md-5">
{% 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 %}
{% assign calculated_IP = countInProgress | plus : countComplete %}
{% include "progress_circle",
countIP: calculated_IP,
countCM: countComplete,
total: countTotal,
size: "330",
r: "150",
cx: "165",
cy: "165",
stroke_color_NS: "#7EBBF8",
stroke_color_IP: "#FFC000",
stroke_color_CM: "#78A240",
stroke_width: 25
%}
<div class="overview-stats">
<span class="overview-stats-header">Courses</span>
<span class="overview-stats-complete">
<div class="overview-stats-complete-marker"></div>
{{countComplete}} Completed
</span>
<span class="overview-stats-in-progress">
<div class="overview-stats-in-progress-marker"></div>
{{countInProgress}} In Progress
</span>
<span class="overview-stats-not-started">
<div class="overview-stats-not-started-marker"></div>
{{countNotStarted}} Not Started
</span>
</div>
</div>
</div>
</div>
<style>
.activity-overview{
margin-bottom: 50px;
}
.activity-overview-headline{
font-size: 3rem;
font-weight: 900;
margin-bottom: 30px;
text-align: center;
}
.overview-body{
display: flex;
flex-direction: column;
justify-content: center;
}
.overview-blurb{
display: flex;
flex-direction: column;
}
.overview-blurb-image{
height: 75px;
width: 75px;
}
.overview-data{
align-items: center;
display: flex;
flex-direction: row;
justify-content: center;
}
.overview-stats{
align-items: flex-start;
display: flex;
flex-direction: column;
margin-left: 10px;
min-width: 140px;
position: absolute;
}
.overview-stats-header{
color: #1b3e4f;
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 30px;
}
.overview-stats-complete,
.overview-stats-in-progress,
.overview-stats-not-started{
align-items: center;
color: #1b3e4f;
display: flex;
flex-direction: row;
font-size: 1.1rem;
font-weight: 500;
justify-content: flex-start;
margin-bottom: 5px;
width: 100%;
}
.overview-stats-complete-marker,
.overview-stats-in-progress-marker,
.overview-stats-not-started-marker{
border-radius: 50%;
display: flex;
margin-right: 10px;
min-height: 10px;
min-width: 10px;
opacity: 0.75;
padding: 0;
}
.overview-stats-complete-marker{
background: #9ACAA1;
}
.overview-stats-in-progress-marker{
background: #FFC45D
}
.overview-stats-not-started-marker{
background: #7EBBF8;
}
.bqUfwS{
display:none !important;
}
@media screen and (min-width: 768px){
.overview-body{
flex-direction: row;
align-items: center;
}
.overview-blurb{
height: 250px;
justify-content: space-evenly;
}
.overview-stats{
position: initial;
}
}
</style>

View File

@ -0,0 +1,51 @@
<div class="np-card">
<div class="np-card-container">
{% if course.ribbon %}
<div class="np-card-ribbon">
{{ course.ribbon }}
</div>
{% endif %}
<img
class="np-card-image"
alt="{{ course.name }}"
src="{{ course.image_url }}"
>
<div class="np-card-content np-card-content-vertical np-card-padding">
<h3 class="np-card-content-title">
{{ course.name }}
</h3>
{%- comment -%} <div class="np-card-content-subtitle">
{{ course.instructor_names }}
</div> {%- endcomment -%}
<div class="np-progress-bar-container">
<div
style="width: {{ course.progress }}%"
class="np-button-background-color np-card-progress-bar">
</div>
</div>
<div class="np-top-cta-progress-text
{% if course.completed? %} np-color-success {% else %} np-button-color {% endif %}
">
{% t shared.progress, count: course.progress %}
</div>
<div class="np-card-content-footer">
{%- comment -%} <div class="np-card-content-progress np-button-color">
{% t shared.progress, count: course.progress %}
</div> {%- endcomment -%}
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
{% if course.has_to_restart? %}
{% include "course_version_outdated_popup", path: course_path %}
{% endif %}
<a class="np-button np-button-wide" href="{{ course_path }}">
{% t shared.view %}
</a>
</div>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,79 @@
<div class="np-card carousel-card featured-course-card">
<div class="np-card-container featured-card-container">
<div class="np-card-content featured-card-content np-card-content-vertical np-card-padding">
<div>
<h3 class="np-card-content-title featured-card-title">
{{ course.name }}
</h3>
<span>{{ course.short_description }}</span>
</div>
<div class="np-card-content-footer">
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
{% if course.enrolled? %}
<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 %}
{% else %}
<a class="np-button np-button-wide" href="{% route course_enrollment, code: course.enrollment_code %}">
{% t shared.enroll %}
</a>
{% endif %}
</div>
</div>
<img
class="np-card-image featured-course-image"
alt="{{ course.name }}"
src="{{ course.image_url }}"
>
</div>
</div>
<style>
.featured-card-container{
align-items: center;
display: flex;
flex-direction: row;
}
.featured-course-image{
max-height: 100%;
max-width: 40%;
object-fit: contain;
padding: 0;
}
.bqUfwS{
display:none !important;
}
@media screen and (min-width: 768px){
.featured-course-card{
margin-bottom: 15px;
width: 100%;
}
.featured-card-container{
height: 350px;
padding: 0;
}
.featured-card-content{
height: 100%;
justify-content: space-evenly;
padding-left: 55px;
}
.featured-card-title{
font-size: 48px;
}
.featured-course-image{
max-width: fit-content;
}
}
</style>

View File

@ -0,0 +1,148 @@
<div class="np-card np-no-horizontal-padding learning-path-card" data-progress="{{learning_path.progress}}">
<div class="np-card-container">
<div class="np-learning-path">
<img
alt="{{ learning_path.name }}"
class="np-card-image np-learning-path-image"
src="{{ learning_path.image_url }}"
/>
<div class="np-card-text-wrapper">
<div class="np-hidden-desktop np-card-header">
<i class="np-card-header-icon far fa-road"></i>
<div class="np-card-header-type">{% t shared.learning_path.title %}</div>
<div class="np-hidden-desktop np-card-header-items-count">
{{ learning_path.items.count }} {% t .items %}
</div>
</div>
<div class="np-hidden-mobile np-card-header">
<div class="np-card-header-type">{% t shared.learning_path.title %}</div>
<i class="np-card-header-icon far fa-road"></i>
</div>
<div class="np-card-content np-card-padding np-card-content-vertical">
<h3 class="np-card-content-title">
{{ learning_path.name }}
</h3>
<div class="np-card-content-subtitle">
{{ learning_path.instructor_names }}
</div>
{%- comment -%} <div class="np-hidden-mobile np-card-content-description">
{{ learning_path.description }}
</div> {%- endcomment -%}
<div class="np-hidden-mobile np-card-content-progress
np-button-color">
{% t shared.progress, count: learning_path.progress %}
</div>
<div class="np-hidden-mobile np-card-progress-bar-container">
<div
style="width: {{ learning_path.progress }}%"
class="np-button-background-color np-card-progress-bar">
</div>
</div>
<div class="np-card-content-footer">
<div class="np-hidden-desktop np-card-content-progress
np-button-color">
{% t shared.progress, count: learning_path.progress %}
</div>
<a class="np-button" href="{% route learning_path, id: learning_path.id %}">
{% t shared.view %}
</a>
<span class="np-hidden-mobile np-learning-path-items">
<i class="np-button-color np-learning-path-items-icon far fa-graduation-cap"></i>
<span class="np-learning-path-items-count">
{{ learning_path.items.count }} {% t .items %}
</span>
</span>
</div>
</div>
</div>
</div>
{% assign countCompleteCard = 0 %}
{% assign countInProgressCard = 0 %}
{% assign countNotStartedCardd = 0 %}
{% assign countTotalCard = 0 | times: 1.0 %}
{% for course in learning_path.items %}
{% assign countTotalCard = countTotalCard | plus: 1 %}
{% if course.progress == 100 %}
{% assign countCompleteCard = countCompleteCard | plus: 1 %}
{% endif %}
{% if course.progress > 0 and course.progress < 100 %}
{% assign countInProgressCard = countInProgressCard | plus: 1 %}
{% endif %}
{% if course.progress == 0 %}
{% assign countNotStartedCard = countNotStartedCardd | plus: 1 %}
{% endif %}
{% endfor %}
{% assign calculated_IP_card = countInProgressCard | plus : countCompleteCard %}
<div class="learning-path-card-stats">
{% assign offsetIP = countInProgressCard | divided_by: countTotalCard %}
{% assign offsetComplete = countCompleteCard | divided_by: countTotalCard%}
{%- comment -%} {% include "progress_circle_card",
status: 'InProgress',
lp_id: learning_path.id,
count: countInProgressCard,
total: countTotalCard,
size: "120",
r: "52",
cx: "60",
cy: "60",
stroke_color: "#FFC000"
%} {%- endcomment -%}
{% include "progress_circle_card",
status: 'Completed',
lp_id: learning_path.id,
count: countCompleteCard,
total: countTotalCard,
size: "120",
r: "52",
cx: "60",
cy: "60",
stroke_color: "#78A240"
%}
</div>
</div>
<div class="np-card-stack">
<div class="np-card-stack-level-1"></div>
<div class="np-card-stack-level-2"></div>
</div>
</div>
<style>
.learning-path-card-stats{
align-items: center;
display: flex;
flex-direction: row;
justify-content: space-evenly;
}
.bqUfwS{
display:none !important;
}
@media screen and (min-width: 768px){
.learning-path-card .np-card-container{
flex-direction: row;
}
}
/* @media screen and (min-width: 1175px){
.overview-stats{
text-align: center;
position: absolute;
top: 40%;
right: 113px;
}
} */
</style>

View File

@ -0,0 +1,50 @@
<div class="np-card">
<div class="np-card-container">
<div class="np-card-content-training-event">
<h3 class="np-card-content-title">
{{ training_event.title }}
</h3>
<div class="np-card-content-subtitle">
{% t shared.event_types, key: training_event.event_type %}
</div>
<div class="np-card-training-session">
<span class="np-card-content-label">
{% t .next_session %}
</span>
<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">
{{ training_event.sessions.first.year }}
</div>
</div>
</div>
</div>
</div>
<div class="np-card-content np-card-content-vertical np-card-padding">
<div class="np-card-training-sessions">
<i class="np-card-training-sessions-icon far fa-calendar-star"></i>
<span class="np-card-training-sessions-label">
{% t .sessions, count: training_event.sessions.size %}
</span>
<a
class="np-button np-button-wide"
href="{% route training_session, id: training_event.sessions.first.id %}"
>
{% t shared.view %}
</a>
</div>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,9 @@
<div class="col-xs-12 col-md-4 spacing-clear certificate-card-wrapper">
{% include "certificates_verification" %}
{% include "certificates_metadata" %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,64 @@
<div class="np-card spacing-clear">
<div class="np-card-container padding-spacing-8">
<div class="row np-certificate-metadata-row">
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-title" >
{% t .learner %}
</p>
</div>
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-value">
{{certificate.learner_name}}
</p>
</div>
</div>
<div class="line"></div>
{% if certificate.issuer_name_enabled? %}
<div class="row np-certificate-metadata-row">
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-title">
{% t .issued_by %}
</p>
</div>
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-value">
{{ certificate.issuer_name }}
</p>
</div>
</div>
<div class="line"></div>
{% endif %}
<div class="row np-certificate-metadata-row">
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-title" >
{% t .issued_on %}
</p>
</div>
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-value">
{{ certificate.issue_date }}
</p>
</div>
</div>
<div class="line"></div>
<div class="row np-certificate-metadata-row">
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-title" >
{% t .expires_on %}
</p>
</div>
<div class="col-xs-6 col-md-6">
<p class="np-certificate-metadata-value">
{{ certificate.expiration_date_translation }}
</p>
</div>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,40 @@
<script type="text/javascript">
const resizeIframe = () => {
const combinedPadding = 16;
const previewIframe = document.getElementById("previewIframe");
const previewIFrameCard = document.getElementById("previewIFrameCard");
const templateInPreviewContainer = previewIframe.contentWindow.document.querySelector('.np-certificate-container');
const previewIframeContentHeight = templateInPreviewContainer.offsetHeight;
const previewIframeContentWidth = templateInPreviewContainer.offsetWidth;
const certificateRatio = previewIframeContentHeight / previewIframeContentWidth;
templateInPreviewContainer.style.margin = 0;
previewIFrameCard.style.height = `${previewIFrameCard.offsetWidth * certificateRatio}px`;
const scaledIframeWidth = previewIFrameCard.offsetWidth - combinedPadding;
const scaledIframeHeight = scaledIframeWidth * certificateRatio;
const scale = scaledIframeHeight / previewIframeContentHeight;
previewIframe.style.transform = `scale(${scale})`;
}
window.onresize = resizeIframe;
</script>
<div class="col-xs-12 col-md-8 np-certificate-iframe-container">
<div class="np-card spacing-clear">
<div id="previewIFrameCard" class="np-card-container np-certificate-card">
<iframe
id="previewIframe"
onload="resizeIframe()"
class="np-certificate-iframe-preview"
srcdoc="{{ certificate.certificate_template_html }}"
></iframe>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,49 @@
<div class="top-bar np-certificate-top-bar-spacing">
<div class="top-bar__container uk-container uk-container-center uk-padding-horizontal np-max-width">
<div class="top-bar__col">
<h2 class="np-certificate-title" >
{{certificate.certificate_name}}
</h2>
</div>
<div class="button-container np-certificate-button-container">
{% if certificate.linkedin_sharing_enabled and current_person.signed_in? and certificate.learner_uuid == current_person.id %}
<a
class="np-button np-certificate-button np-certificate-button-secondary"
href="{{certificate.linkedin_share_url}}"
target="_blank"
>
<i class="fab fa-linkedin np-certificate-share-icon"></i>
{% t .share %}
</a>
{% endif %}
<button
id="print"
type="button"
class="np-button np-certificate-button np-certificate-button-secondary np-certificate-button-print"
>
{% t .print %}
</button>
{% if certificate.generating_pdf %}
<div class="np-button np-certificate-button np-certificate-button-primary np-certificate-spinner-container">
<i class="loader fad fa-spinner-third fa-spin np-certificate-spinner-icon np-button-font-color"></i>
</div>
{% else %}
<a
href="{{ certificate.download_url }}"
aria-label="{% t .download %}"
target="_blank"
rel="noopener noreferrer"
download
class="np-button np-certificate-button np-certificate-button-primary np-button-font-color"
>
{% t .download %}
</a>
{% endif %}
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,20 @@
<div class="np-card spacing-clear np-certificate-verification-card">
<div class="np-card-container np-certificate-verification-container">
<div class="np-certificate-verification-icon-container np-certificate-verification-icon-container-{{certificate.verification_status}}">
<i class="far fa-{{certificate.verification_icon}} np-certificate-verification-icon"></i>
</div>
<div class="np-certificate-verification-info-container">
<h2 class="np-certificate-verification-info-status spacing-clear">
{{certificate.verification_title}}
</h2>
<p class="np-certificate-verification-info-description spacing-clear">
{{certificate.verification_description}}
</p>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,9 @@
<i class="far fa-lock-alt np-course-outline-content-activity-icon-locked"></i>
<span class="np-course-outline-content-activity-title">
{{ activity.title }}
</span>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,20 @@
{% if course.enrolled? %}
<a
href="{% route activity_viewer,
id: activity.id,
course_id: params.course_id,
learning_path_id: params.learning_path_id
%}" class="{{ class }}"
>
{{ activity.title }}
</a>
{% else%}
<span class="{{ class }}">
{{ activity.title }}
</span>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,15 @@
<h3 class="np-card-heading">
{% t .header %}
</h3>
<div class="np-flex">
{% for category in course.categories %}
<div class="np-content-categories-content-item">
{{ category.name }}
</div>
{% endfor %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,23 @@
<div class="np-course-content-info">
<div class="info-line">
<div>Total Sections</div>
<div>{{info | size }} </div>
</div>
<div class="info-line">
<div>Total Activities</div>
{% assign activityCount = 0 %}
{% for sections in info %}
{% for activities in sections.activities %}
{% assign activityCount = activityCount | plus: 1 %}
{% endfor %}
{% endfor %}
<div>{{ activityCount }} </div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,11 @@
<h3 class="np-card-heading">
{% t .header, key: current_school.course_vocabulary %}
</h3>
<div class="np-card-text">
{{ course.full_description }}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,45 @@
<div class="np-card-container">
<div class="np-resource-header np-course-header np-card-padding-large">
{% include "course_header" %}
</div>
<div class="np-divider"></div>
<div class="row np-course-content np-card-padding-dynamic">
<div class="col-xs-12 col-sm-6">
<img
src="{{ course.image_url }}"
class="np-top-image np-top-image-spacing"
alt="{{ course.name }}"
/>
{% include "course_description" %}
{% if course.categories.any? %}
<div class="np-card-content-divider">
{% include "course_categories" %}
</div>
{% endif %}
{% if course.instructors.any? %}
<div class="np-card-content-divider">
{% include "course_instructors" %}
</div>
{% endif %}
{% if course.events.any? %}
<div class="np-card-content-divider">
{% include "course_events" %}
</div>
{% endif %}
</div>
<div class="np-grid-spacing col-xs-12 col-sm-6">
<div class="np-top-cta">
{% include "course_progress_and_cta" %}
</div>
{% include "course_outline" %}
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,33 @@
<h3 class="np-card-heading">
{% t .header %}
</h3>
<div class="np-flex-column">
{% for event in course.events %}
<div class="np-course-events-content-item">
<div class="np-course-events-content-date np-button-background-color">
<div class="np-course-events-content-month">
{{ event.sessions.first.abbreviated_month }}
</div>
<div class="np-course-events-content-day">
{{ event.sessions.first.day }}
</div>
</div>
<div class="np-course-events-content-details">
<div class="np-course-events-content-name">
{{ event.title }}
</div>
<div class="np-course-events-content-type np-text-light">
{% t shared.event_types, key: event.event_type %}
</div>
<div class="np-course-events-content-time np-button-color">
{{ event.sessions.first.time_period }} {{ event.sessions.first.time_zone }}
</div>
</div>
</div>
{% endfor %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,21 @@
<div class="np-top-vocabulary np-text-title np-text-muted">
{{ current_school.course_vocabulary }}
<i class="far fa-graduation-cap np-button-color np-learning-path-icon np-hidden-mobile">
</i>
</div>
<div class="np-top-title">
<a href="{% route home %}" class="np-back-button" aria-label="{% t shared.go_back %}">
<i class="far fa-arrow-left np-hidden-mobile np-icon-back"></i>
</a>
{{ course.name }}
</div>
<img
src="{{ course.image_url }}"
class="np-top-image np-hidden-desktop"
alt="{{ course.name }}"
/>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,27 @@
<h3 class="np-card-heading">
{% t .header %}
</h3>
<div class="np-flex">
{% for instructor in course.instructors %}
<div class="np-content-instructors-content-item">
<img
src="{{ instructor.avatar_url }}"
class="np-content-instructors-content-image"
alt="{{ instructor.name }}"
/>
<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>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,45 @@
<div class="np-card-container np-card-padding-large">
{% include "course_header" %}
<div class="np-top-cta">
{% include "course_progress_and_cta" %}
</div>
</div>
{% if course.progress == 0 %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "course_description" %}
</div>
<div class="np-card-container np-card-padding np-card-spacing">
{% include "course_outline" %}
</div>
{% else %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "course_outline" %}
</div>
<div class="np-card-container np-card-padding np-card-spacing">
{% include "course_description" %}
</div>
{% endif %}
{% if course.categories.any? %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "course_categories" %}
</div>
{% endif %}
{% if course.instructors.any? %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "course_instructors" %}
</div>
{% endif %}
{% if course.events.any? %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "course_events" %}
</div>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,45 @@
<div class="np-course-outline">
<div class="np-text-title np-course-outline-title">
{% t .header, key: current_school.course_vocabulary %}
</div>
<div class="np-course-outline-content">
<ol class="np-course-outline-content-section">
{% for section in course.sections %}
<li class="np-course-outline-content-section-list">
<div class="np-course-outline-content-section-name np-text-title-bold np-text-title-bold">
{{ section.name }}
</div>
<ol class="np-course-outline-content-activity">
{% for activity in section.activities %}
<li class="np-course-outline-content-activity-list">
{% if activity.completed? %}
<i class="fas fa-circle np-course-outline-content-activity-icon np-button-color"></i>
{% if activity.locked? %}
{% include "course_activity_locked" %}
{% else %}
{% include "course_activity_unlocked", class: "np-course-outline-content-activity-link-completed" %}
{% endif %}
<div class="np-button-background-color np-course-outline-content-activity-list-bar"></div>
{% else %}
<i class="far fa-circle np-course-outline-content-activity-icon"></i>
{% if activity.locked? %}
{% include "course_activity_locked" %}
{% else %}
{% include "course_activity_unlocked", class: "np-course-outline-content-activity-link" %}
{% endif %}
<div class="np-course-outline-content-activity-list-bar"></div>
{% endif %}
</li>
{% endfor %}
</ol>
</li>
{% endfor %}
</ol>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,46 @@
<div class="np-top-cta-progress-content">
<div class="np-top-cta-progress-title np-text-title">
{% t .header %}
</div>
<div class="np-progress-bar-container">
<div
style="width: {{ course.progress }}%"
class="np-button-background-color np-card-progress-bar">
</div>
</div>
<div class="np-top-cta-progress-text
{% if course.completed? %} np-color-success {% else %} np-button-color {% endif %}
">
{% t shared.progress, count: course.progress %}
</div>
</div>
{% if course.learner_can_retake? %}
<form action="{% route course_retake, id: course.id %}" method="POST">
{% form_authenticity_token %}
<button type="submit" class="np-top-button np-button-font-color np-button np-button-big">
{% t .retake, key: current_school.course_vocabulary %}
</button>
</form>
{% else %}
<a
class="np-top-button np-button-font-color np-button np-button-big"
{% if course.enrolled? %}
href="{% route course_viewer, course_id: course.id, learning_path_id: params.learning_path_id %}"
{% else %}
href="{% route course_enrollment, code: course.enrollment_code %}"
{% endif %}
>
{% if course.enrolled? == false %}
{% t shared.enroll %}
{% elsif course.started? == false %}
{% t shared.course.start, key: current_school.course_vocabulary %}
{% elsif course.completed? %}
{% t shared.course.view, key: current_school.course_vocabulary %}
{% else %}
{% t shared.continue %}
{% endif %}
</a>
{% endif %}

View File

@ -0,0 +1,12 @@
{% if courses.include_courses_to_restart? %}
<div role="alert" class="np-alert np-alert-global np-alert-info">
<div class="np-alert-container uk-container uk-container-center">
{% t .content %}
</div>
</div>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,38 @@
<div class="np-course-version-outdated-popup np-popup">
<div class="np-popup-positioner">
<i
class="np-course-version-outdated-popup-trigger fas fa-exclamation-circle"
data-toggle-class-on-target="np-popup-tooltip--visible"
data-toggle-target-parent=".np-popup-tooltip"
data-toggle-outside
></i>
<div
class="np-popup-tooltip"
role="tooltip"
aria-hidden="true"
>
<header class="np-popup-header">
<i class="np-popup-header-icon fas fa-exclamation-circle"></i>
<h3 class="np-popup-header-title">
{% t .title %}
</h3>
</header>
<div class="np-popup-body">
<h4>{% t .body.header %}</h4>
<p>{% t .body.content %}</p>
<a
class="np-popup-body-button"
href="{{ path }}"
>
{% t .body.button %}
</a>
</div>
<div class="np-popup-tail"></div>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,18 @@
{% assign category_name_split = category | split: " " %}
{% assign category_name_joined = category_name_split | join: "-" | downcase %}
<div class="category-carousel" data-slider-size="{{num_of_slides}}">
{% for course in courses.in_catalog %}
{% for course_categories in course.categories %}
{% if category == course_categories.name %}
<div>{% include "cards_course" with course %}</div>
{% endif %}
{% endfor %}
{% endfor %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,30 @@
{% if courses.in_catalog.any? %}
<div class="np-catalog-courses row row-with-thumbnails">
{% for course in courses.in_catalog %}
{% assign render_card = true %}
{% for course_category in course.categories %}
{% if course_category.name == "FAQ's" or course_category.name == "Quick Guides" or course_category.name == "User Manuals" or course_category.name == "Glossary" %}
{% assign render_card = false %}
{% endif %}
{% endfor %}
{% if render_card == true %}
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content">
{% include "cards_course" with course %}
</div>
{% endif %}
{% endfor %}
</div>
{% else %}
{% capture message %}
{% t shared.zero_state.courses.catalog,
key: current_school.course_vocabulary
%}
{% endcapture %}
{% include "courses_zero_state", message: message %}
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,22 @@
{% if courses.enrolled.any? %}
<div class="row row-with-thumbnails" style="margin: 0;">
{% for course in courses.enrolled %}
<div class="col-xs-12 col-sm-4 np-stretch-content course-card" data-progress="{{course.progress}}">
{% include "cards_course" with course %}
</div>
{% endfor %}
</div>
{% else %}
{% capture message %}
{% t shared.zero_state.courses.index,
key: current_school.course_vocabulary
%}
{% endcapture %}
{% include "courses_zero_state", message: message %}
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,11 @@
<div class="np-dashboard-resources-container">
<div class="np-zero-state-text">
{{ message }}
</div>
<img class="np-zero-state-courses" alt="{{ message }}" />
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,57 @@
<a
class="np-header-desktop-nav-item"
data-test="open-desktop-menu"
data-toggle-event="mouseover"
data-toggle-class-on-target="np-hidden"
data-toggle-target=".np-courses-tooltip"
data-toggle-outside
>
{{title}}
</a>
<div class="np-dropdown-tooltip np-courses-tooltip np-hidden" role="tooltip">
<nav class="np-tooltip-navigation">
{% assign categories_by_name = categories | sort: "name" %}
{% for category in categories_by_name %}
{% assign category_name_split = category.name | split: " " %}
{% assign category_name_joined = category_name_split | join: "-" | downcase %}
{% assign category_name = "" %}
{% assign courses_per_carousel = 0 %}
{% assign catalog_courses = courses %}
{% if courses.any? %}
{% for course in courses %}
{% for course_category in course.categories %}
{% if category.name == course_category.name %}
{% assign courses_per_carousel = courses_per_carousel | plus: 1 %}
{% if courses_per_carousel > 0 %}
{% assign category_name = category.name %}
{% endif %}
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
{% if category_name != "" %}
<a class="np-dropdown-tooltip-link" href="#{{category_name_joined}}">
{{category_name}}
</a>
{% endif %}
{% endfor %}
</nav>
</div>
<script>
$(document).ready(function() {
if (!$('.np-homepage').length) {
console.log("not the homepage")
$(".np-dropdown-tooltip-link").each(function() {
let homeLink = "/app/" + $(this).attr("href");
$(this).attr("href", homeLink);
})
}
})
</script>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,60 @@
<li class="np-header-desktop-nav-item header-resources-dropdown"
>
<span
>
{{title}}
</span>
<div class="np-dropdown-tooltip np-resources-tooltip np-hidden resources-tooltip" role="tooltip">
<nav class="np-tooltip-navigation">
{%- comment -%} {% assign categories_by_name = categories | sort: "name" %}
{% for category in categories_by_name %}
{% assign category_name_split = category.name | split: " " %}
{% assign category_name_joined = category_name_split | join: "-" | downcase %}
{% assign category_name = "" %}
{% assign courses_per_carousel = 0 %}
{% assign catalog_courses = courses %}
{% if courses.any? %}
{% for course in courses %}
{% for course_category in course.categories %}
{% if category.name == course_category.name %}
{% assign courses_per_carousel = courses_per_carousel | plus: 1 %}
{% if courses_per_carousel > 0 %}
{% assign category_name = category.name %}
{% endif %}
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
{% if category_name != "" %}
<a class="np-dropdown-tooltip-link" href="#{{category_name_joined}}">
{{category_name}}
</a>
{% endif %}
{% endfor %} {%- endcomment -%}
<a class="np-dropdown-tooltip-link" href="/app/documentation">
Documentation
</a>
{% comment %} <a class="np-dropdown-tooltip-link" href="#">
Webinars
</a>
<a class="np-dropdown-tooltip-link" href="#">
Quick Videos
</a> {% endcomment %}
</nav>
</div>
</li>
<style>
.resources-tooltip{
display: none !important;
left: 0;
}
.header-resources-dropdown:hover .resources-tooltip{
display: block !important;
}
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,125 @@
<div class="np-homepage-featured-courses">
<div id="previous-featured-course-button" onclick="featuredSlider.goTo('prev')">
<i class="fal fa-chevron-left"></i>
</div>
<div class="featured-courses-carousel np-carousel">
{% 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 %}
<div class="np-carousel-featured-card {{course_status}}">
{% include "cards_featured_course" with course %}
</div>
{% endfor %}
{% endif %}
{%- comment -%} <div class="next-button" style="width: 100px; height: 50px; background: pink, position: absolute" onclick="nextSlide()"></div> {%- endcomment -%}
</div>
<div id="next-featured-course-button" onclick="featuredSlider.goTo('next')">
<i class="fal fa-chevron-right"></i>
</div>
</div>
<script>
var featuredSlider = tns({
container: '.featured-courses-carousel',
controls: false,
items: 1,
navPosition: 'bottom',
responsive: {
}
});
</script>
<style>
.np-homepage-featured-courses{
align-items: center;
display: flex;
flex-direction: row;
/* margin: 0 0.5% 1%; */
margin: 0;
margin-bottom: 1%;
}
.featured-courses-carousel{
width: 100%;
}
#next-featured-course-button,
#previous-featured-course-button{
height: 20px;
position: absolute;
width: 20px;
z-index: 50;
}
#next-featured-course-button{
right: 25px;
}
#previous-featured-course-button{
left: 15px;
}
.fal{
align-items: center;
background: #92d050;
border-radius: 50%;
display: flex;
font-size: 24px;
font-weight: 500;
justify-content: center;
height: 30px;
width: 30px;
}
.fa-chevron-left{
padding-right: 3px;
}
.fa-chevron-right{
padding-left: 3px;
}
.tns-outer{
max-width: 100%;
}
.tns-nav{
text-align: center;
}
.tns-nav button{
height: 16px;
border-radius: 50%;
margin: 0 3px;
}
.tns-nav .tns-nav-active{
background: #004688;
}
@media screen and (min-width: 768px){
/* .tns-outer{
width: 95%;
} */
.featured-course-card{
padding: 0 !important;
}
}
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,132 @@
<select class="progress-filter filter-select-wrapper select-wrapper np-button" style="border-radius: 8px;" onChange="filterLPs()">
<option selected disabled hidden>All Learning Paths</option>
<option value="a">All Learning Paths</option>
<option value="n">Not Started</option>
<option value="i">In Progress</option>
<option value="c">Completed</option>
</select>
<script>
let filterLPs = () => {
console.log(event.target.value) //i
let filterValue = event.target.value;
let allLPs = document.querySelectorAll('.learning-path-card');
console.log(allLPs);
allLPs.forEach((lp) => {
let lpProg = lp.dataset.progress;
let hide = false;
if(filterValue == 'n'){
if(lpProg > 0){
hide = true;
}
} else if (filterValue == 'i'){
if(!(lpProg > 0 && lpProg < 100)){
hide = true;
}
} else if (filterValue == 'c'){
if(!lpProg != 100){
hide = true;
}
}
if(hide){
lp.style.display = 'none';
} else {
lp.style.display = 'block';
}
})
}
</script>
<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;
}
.filter-select-wrapper {
position: relative;
padding:0;
border: 2px solid rgba(255, 255, 255, 0.25);
color: #fff;
height:auto;
text-transform: none;
border-radius:0;
}
.filter-select-wrapper:hover {
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;
}
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,10 @@
<input
id={{value}}
name={{ name }}
value={{ value }}
type="checkbox"
{% if selected %} checked="checked" {% endif %}
/>
<label for={{value}}>
{{label}}
</label>

View File

@ -0,0 +1,40 @@
<select class="progress-filter filter-select-wrapper select-wrapper np-button" style="border-radius: 8px;" onChange="filterCourses()">
<option selected disabled hidden>All Courses</option>
<option selected value="a">All Courses</option>
<option value="n">Not Started</option>
<option value="i">In Progress</option>
<option value="c">Completed</option>
</select>
<script>
let filterCourses = () => {
console.log(event.target.value) //i
let filterValue = event.target.value;
let allCourses = document.querySelectorAll('.course-card');
allCourses.forEach((course) => {
let courseProg = course.dataset.progress;
let hide = false;
if(filterValue == 'n'){
if(courseProg > 0){
hide = true;
}
} else if (filterValue == 'i'){
if(!(courseProg > 0 && courseProg < 100)){
hide = true;
}
} else if (filterValue == 'c'){
if(!courseProg != 100){
hide = true;
}
}
if(hide){
course.style.display = 'none';
} else {
course.style.display = 'flex';
}
})
}
</script>

View File

@ -0,0 +1,33 @@
<div class="np-filter">
<div class="dropdown">
<button
class="np-button dropdown-button"
data-toggle-class="is-open"
data-toggle-escape
data-toggle-outside
data-toggle-target-next
type="button"
>
{% t shared.filters.filter %}
</button>
<div class="dropdown-menu" data-test="modal">
<form method="get">
{%
include "filter_select",
filters: filters,
key: key,
label: label
%}
<button
class="np-button dropdown-button-apply"
data-toggle-trigger-off
type="submit"
>
{% t shared.filters.apply %}
</button>
</form>
</div>
</div>
</div>

View File

@ -0,0 +1,41 @@
<select class="progress-filter filter-select-wrapper select-wrapper np-button" style="border-radius: 8px;" onChange="filterLPs()">
<option selected disabled hidden>All Learning Paths</option>
<option value="a">All Learning Paths</option>
<option value="n">Not Started</option>
<option value="i">In Progress</option>
<option value="c">Completed</option>
</select>
<script>
let filterLPs = () => {
console.log(event.target.value) //i
let filterValue = event.target.value;
let allLPs = document.querySelectorAll('.learning-path-card');
console.log(allLPs);
allLPs.forEach((lp) => {
let lpProg = lp.dataset.progress;
let hide = false;
if(filterValue == 'n'){
if(lpProg > 0){
hide = true;
}
} else if (filterValue == 'i'){
if(!(lpProg > 0 && lpProg < 100)){
hide = true;
}
} else if (filterValue == 'c'){
if(!lpProg != 100){
hide = true;
}
}
if(hide){
lp.style.display = 'none';
} else {
lp.style.display = 'block';
}
})
}
</script>

View File

@ -0,0 +1,22 @@
{% if params.q %}
<input type="hidden" name="q" value="{{ params.q }}">
{% endif %}
<label class="dropdown-label" for="filter[category_uuid][in][]">
{{ label }}
</label>
<select
class="np-filter-select"
multiple
name="filter[{{ key }}][in][]"
>
{% for filter in filters %}
<option
value="{{ filter.value }}"
{% if filter.selected? %} selected="selected" {% endif %}
>
{{ filter.name }}
</option>
{% endfor %}
</select>

View File

@ -4,17 +4,15 @@
<div class="np-footer-navigation">
<ul class="np-footer-navigation-list">
{% for website_navigation in navigations.footer_navigations %}
{% if website_navigation.external? %}
<li class="np-footer-navigation-item">
<a
class="np-footer-navigation-link np-button-color"
href="{{ website_navigation.path }}"
{% if website_navigation.external? %} target="_blank" {% endif %}
>
{{ website_navigation.name }}
</a>
</li>
{% endif %}
<li class="np-footer-navigation-item">
<a
class="np-footer-navigation-link np-button-color"
href="{{ website_navigation.path }}"
{% if website_navigation.external? %} target="_blank" {% endif %}
>
{{ website_navigation.name }}
</a>
</li>
{% endfor %}
</ul>
</div>
@ -62,19 +60,65 @@
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
class="np-footer-support-item np-footer-support-link np-button-color"
href="mailto:{{ website_footer.school_customer_service_email }}"
>
support@menlosecurity.com
{{ website_footer.school_customer_service_email }}
</a>
</div>
{% endif %}
</div>
</footer>
<script>
window.onload = function() {
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function() {
if (this.getAttribute('href') != "#") {
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
}
});
});
if (window.location.hash) {
setTimeout(() => {
let categorySection = document.querySelector(window.location.hash)
categorySection.scrollIntoView({
behavior: 'smooth'
});
}, 500)
};
}
// Create a <style> tag
const style = document.createElement('style');
style.textContent = `
.bqUfwS {
background-color: blue !important; /* Use !important to enforce the rule */
color: white !important;
}
`;
// Append the <style> tag to the document head
document.head.appendChild(style);
const elements = document.querySelectorAll('[data-test="empty-circle-icon"]');
elements.forEach((element) => {
element.remove(); // Remove each matching element
console.log('Element removed');
});
</script>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,216 @@
{% styles default %}
{% styles colors %}
{% styles custom %}
<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 rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.4/tiny-slider.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.2/min/tiny-slider.js"></script>
{% if current_person.signed_in? %}
<script>
let learnerEmail = '{{ current_person.email }}';
let learnerUUID = '{{ current_person.id }}';
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,}))$/;
const domainList = [
'126.com',
'163.com',
'21cn.com',
'alice.it',
'aliyun.com',
'aol.com',
'aol.it',
'arnet.com.ar',
'att.net',
'bell.net',
'bellsouth.net',
'bk.ru',
'blueyonder.co.uk',
'bol.com.br',
'bt.com',
'btinternet.com',
'charter.net',
'comcast.net',
'cox.net',
'daum.net',
'earthlink.net',
'email.com',
'email.it',
'facebook.com',
'fastmail.fm',
'fibertel.com.ar',
'foxmail.com',
'free.fr',
'games.com',
'globo.com',
'globomail.com',
'gmail.com',
'gmx.com',
'gmx.de',
'gmx.fr',
'gmx.net',
'googlemail.com',
'hanmail.net',
'hotmail.be',
'hotmail.ca',
'hotmail.co.uk',
'hotmail.com',
'hotmail.com.ar',
'hotmail.com.br',
'hotmail.com.mx',
'hotmail.de',
'hotmail.es',
'hotmail.fr',
'hotmail.it',
'hush.com',
'hushmail.com',
'icloud.com',
'ig.com.br',
'iname.com',
'inbox.com',
'inbox.ru',
'juno.com',
'keemail.me',
'laposte.net',
'lavabit.com',
'libero.it',
'list.ru',
'live.be',
'live.co.uk',
'live.com',
'live.com.ar',
'live.com.mx',
'live.de',
'live.fr',
'live.it',
'love.com',
'mac.com',
'mail.com',
'mail.ru',
'me.com',
'msn.com',
'nate.com',
'naver.com',
'neuf.fr',
'ntlworld.com',
'oi.com.br',
'online.de',
'orange.fr',
'orange.net',
'outlook.com',
'outlook.com.br',
'pobox.com',
'poste.it',
'prodigy.net.mx',
'protonmail.ch',
'protonmail.com',
'qq.com',
'r7.com',
'rambler.ru',
'rocketmail.com',
'rogers.com',
'safe-mail.net',
'sbcglobal.net',
'sfr.fr',
'shaw.ca',
'sina.cn',
'sina.com',
'sky.com',
'skynet.be',
'speedy.com.ar',
'sympatico.ca',
't-online.de',
'talktalk.co.uk',
'telenet.be',
'teletu.it',
'terra.com.br',
'tin.it',
'tiscali.co.uk',
'tiscali.it',
'tuta.io',
'tutamail.com',
'tutanota.com',
'tutanota.de',
'tvcablenet.be',
'uol.com.br',
'verizon.net',
'virgilio.it',
'virgin.net',
'virginmedia.com',
'voo.be',
'wanadoo.fr',
'web.de',
'wow.com',
'ya.ru',
'yahoo.ca',
'yahoo.co.id',
'yahoo.co.in',
'yahoo.co.jp',
'yahoo.co.kr',
'yahoo.co.uk',
'yahoo.com',
'yahoo.com.ar',
'yahoo.com.br',
'yahoo.com.mx',
'yahoo.com.ph',
'yahoo.com.sg',
'yahoo.de',
'yahoo.fr',
'yahoo.it',
'yandex.by',
'yandex.com',
'yandex.com',
'yandex.kz',
'yandex.ru',
'yandex.ua',
'yeah.net',
'ygm.com',
'ymail.com',
'zipmail.com.br',
'zoho.com',
'gainsight.com'
]
if(regexExp.test(learnerEmail) == true){
let domain = learnerEmail.split('@')[1];
domain = domain.toLowerCase();
if(domainList.indexOf(domain) > -1){
$.ajax({
url: `https://webhooks.workato.com/webhooks/rest/8ed9a51c-87ef-4a08-9ab5-0e9710cad639/bad-learner-sign-in`,
data: JSON.stringify({
learnerUUID
}),
method: 'POST',
success: function(res){
//console.log(res)
window.location.href = 'https://www.birchstreetsystems.com/';
},
error: function (xhr, status, error) {
//console.error("Error posting to workato!");
//setTimeout(function() {
// document.querySelector(".info-form-trigger").click()
//}, 1000)
window.location.href = 'https://www.birchstreetsystems.com/';
}
});
}
}
const elements = document.querySelectorAll('[data-test="empty-circle-icon"]');
elements.forEach((element) => {
element.remove(); // Remove each matching element
console.log('Element removed');
});
</script>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -1,4 +1,4 @@
<header class="np-header np-header-color" >
<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 +40,16 @@
<div class="np-hidden-mobile np-header-desktop-nav">
<ul class="np-header-desktop-nav-list">
{%- comment -%} {% if current_school.filterable_categories.any? %}
<li class="np-header-desktop-nav-item courses-dropdown">
{%
include "dropdown_courses",
title: "Courses",
categories: current_school.filterable_categories,
courses: courses.in_catalog
%}
</li>
{% endif %} {%- endcomment -%}
{% for website_navigation in navigations.header_navigations_external %}
<li class= "np-header-desktop-nav-item">
<a
@ -51,6 +61,14 @@
</a>
</li>
{% endfor %}
<li class= "np-header-desktop-nav-item">
<a
href="/app/documentation"
class="np-header-desktop-nav-link np-header-font-color"
>
Documentation
</a>
</li>
</ul>
</div>
@ -92,9 +110,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"
@ -181,3 +196,23 @@
{% include "messages" %}
<style>
.hmpYKM {
font-size: 12px !important;
}
.eWFPxo {
color: #5cad06 !important;
font-size: 13px !important;
margin-left: 5px !important;
}
.bqUfwS{
display:none !important;
}
.qRYRr {
display: none !important;
}
.eWFPxo span, .eWFPxo strong {
font-size: 13px !important;
}
</style>

View File

@ -0,0 +1,22 @@
<header class="np-box-header np-header-color">
<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" %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,10 @@
{% if learning_path.new_content_available? %}
{% include "learning_path_new_content_banner" %}
{% else %}
{% include "learning_path_completed_banner" %}
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,22 @@
{% if learning_path.has_certificate? %}
{% if learning_path.certificate_completed? %}
<div class="np-learning-path-outline-bar np-hidden-mobile"></div>
<a
class="np-learning-path-certificate-link"
href="{{ learning_path.certificate_link }}"
>
<div class="np-learning-path-certificate">
{% include "learning_path_certificate_content" %}
</div>
</a>
{% else %}
<div class="np-learning-path-certificate np-learning-path-certificate--inactive">
{% include "learning_path_certificate_content" %}
</div>
{% endif %}
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,24 @@
<div class="np-learning-path-certificate-content">
<div class="np-learning-path-certificate-avatar" role="img">
<i class="np-learning-path-certificate-avatar-icon fal fa-award"></i>
<h5 class="np-learning-path-certificate-avatar-title">
{% t .avatar_title %}
</h5>
</div>
<h4 class="np-learning-path-certificate-name">
{{ learning_path.certificate_name }}
</h4>
{% if learning_path.certificate_completed? %}
<time
class="np-learning-path-certificate-issue-date"
datetime="{{ learning_path.certificate_issue_date }}"
>
{{ learning_path.certificate_issue_date | date: "%B %d, %Y" }}
</time>
{% endif %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,18 @@
<div class="np-learning-path-completed-banner np-learning-path-banner">
<img class="np-learning-path-banner-image" src="https://s3.amazonaws.com/static.northpass.com/images/stars-completed.svg"/>
<div class="np-learning-path-banner-content">
<h3 class="np-learning-path-banner-headline">{% t .headline %}</h3>
<p class="np-learning-path-banner-description">{% t .description %}</p>
<div class="np-learning-path-banner-actions">
{% if learning_path.certificate_link %}
<a href="{{ learning_path.certificate_link }}" class="np-learning-path-banner-action np-learning-path-banner-action--primary">{% t .actions.certificate %}</a>
{% endif %}
<a href="/app/courses" class="np-learning-path-banner-action np-learning-path-banner-action--secondary">{% t .actions.more_courses %}</a>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,61 @@
{% if learning_path.enrolled? and course.unlocked? %}
<div class="np-learning-path-outline-bar np-hidden-mobile"></div>
<a
class="np-learning-path-outline-item np-card-container"
href="{% route learning_path_course, learning_path_id: learning_path.id, id: course.id %}"
>
<div class="np-card-content np-card-padding">
<img
src="{{ item.image }}"
alt="{{ course.name }}"
class="np-learning-path-outline-course-image"
>
<div class="np-learning-path-outline-content">
<div class="np-learning-path-outline-name np-top-title">
{{ course.name }}
</div>
{% if course.instructors %}
<div class="np-learning-path-outline-caption">
{{ course.instructors }}
</div>
{% endif %}
<div class="np-learning-path-outline-progress
{% if course.completed? %} np-color-success {% else %} np-button-color {% endif %}
">
{% t shared.progress, count: course.progress %}
</div>
</div>
<i class="fas fa-chevron-right np-learning-path-outline-icon"></i>
{% if course.optional? %}
<div class="np-optional-ribbon">
{% t shared.optional %}
</div>
{% endif %}
</div>
</a>
{% else %}
<div class="np-learning-path-outline-item np-learning-path-outline-inactive-item np-card-container">
<div class="np-card-content np-card-padding">
<img
src="{{ item.image }}"
alt="{{ course.name }}"
class="np-learning-path-outline-course-image"
>
<div class="np-learning-path-outline-content">
<div class="np-learning-path-outline-name np-top-title">
{{ course.name }}
</div>
</div>
{% if course.optional? %}
<div class="np-optional-ribbon">
{% t shared.optional %}
</div>
{% endif %}
</div>
</div>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,11 @@
<h3 class="np-card-heading">
{% t .about %}
</h3>
<div class="np-card-text">
{{ learning_path.description }}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,26 @@
<div class="row">
<div class="col-xs-12 col-sm-6">
<div class="np-card-container">
<img
src="{{ learning_path.image_url }}"
class="np-top-image"
alt="{{ learning_path.name }}"
/>
<div class="np-card-padding-dynamic">
{% include "learning_path_description" %}
{% include "learning_path_instructors" %}
</div>
</div>
</div>
<div class="col-xs-12 col-sm-6 np-grid-spacing">
<div class="np-top-cta">
{% include "learning_path_progress_and_cta" %}
</div>
{% include "learning_path_outline" %}
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,17 @@
<div class="np-resource-header np-resource-header-card np-card-padding-large">
<div class="np-top-vocabulary np-text-title">
{% t shared.learning_path.title %}
<i class="far fa-road np-button-color np-learning-path-icon"></i>
</div>
<div class="np-top-title">
<a href="{% route home %}" class="np-back-button" aria-label="{% t shared.go_back %}">
<i class="far fa-arrow-left np-icon-back"></i>
</a>
{{ learning_path.name }}
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,7 @@
{% include "learning_path_desktop_header" %}
{% include "learning_path_desktop_content" %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,31 @@
{% 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">
<img
src="{{ instructor.avatar_url }}"
class="np-content-instructors-content-image"
alt="{{ instructor.name }}"
>
<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 %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,24 @@
{% if learning_path.in_progress? %}
{% include "learning_path_outline" %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "learning_path_description" %}
</div>
{% else %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "learning_path_description" %}
</div>
<div class="np-card-spacing">
{% include "learning_path_outline" %}
</div>
{% endif %}
{% if learning_path.instructors.any? %}
<div class="np-card-container np-card-padding np-card-spacing">
{% include "learning_path_instructors" %}
</div>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,22 @@
<div class="np-resource-header np-card-padding-vertical">
<div class="np-top-vocabulary np-text-title">
{% t shared.learning_path.title %}
<i class="far fa-road np-button-color np-learning-path-icon"></i>
</div>
<div class="np-top-title">
{{ learning_path.name }}
</div>
<img
src="{{ learning_path.image_url }}"
class="np-top-image"
alt="{{ learning_path.name }}"
/>
<div class="np-top-cta">
{% include "learning_path_progress_and_cta" %}
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,7 @@
{% include "learning_path_mobile_header" %}
{% include "learning_path_mobile_content" %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,17 @@
<div class="np-learning-path-new-content-banner np-learning-path-banner">
<div class="np-learning-path-banner-content">
<h3 class="np-learning-path-banner-headline">{% t .headline %}</h3>
<p class="np-learning-path-banner-description">{% t .description %}</p>
<div class="np-learning-path-banner-actions">
{% learning_path_next_step_button learning_path, class: "np-learning-path-banner-action np-learning-path-banner-action--primary" %}
{% if learning_path.certificate_link %}
<a href="{{ learning_path.certificate_link }}" class="np-learning-path-banner-action np-learning-path-banner-action--secondary">{% t .actions.view_certificate %}</a>
{% endif %}
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,15 @@
<div class="np-learning-path-outline">
{% for item in learning_path.items %}
{% if item.course? %}
{% include "learning_path_course", course: item %}
{% elsif item.training_event? %}
{% include "learning_path_training_session", training_session: item %}
{% endif %}
{% endfor %}
{% include "learning_path_certificate" %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,25 @@
{% if learning_path.enrolled? %}
<div class="np-top-cta-progress-content">
<div class="np-top-cta-progress-title np-text-title">
{% t .progress %}
</div>
<div class="np-progress-bar-container">
<div
style="width: {{ learning_path.progress }}%"
class="np-button-background-color np-card-progress-bar">
</div>
</div>
<div class="np-top-cta-progress-text
{% if learning_path.completed? %} np-color-success {% else %} np-button-color {% endif %}
">
{% t shared.progress, count: learning_path.progress %}
</div>
</div>
{% endif %}
{% learning_path_next_step_button learning_path, class: "np-top-button np-button-font-color np-button np-button-big" %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,8 @@
{% include "learning_path_desktop_header" %}
{% include "learning_path_banners" %}
{% include "learning_path_desktop_content" %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,10 @@
<div class="np-card-padding">
{% include "learning_path_banners" %}
</div>
{% include "learning_path_mobile_header" %}
{% include "learning_path_mobile_content" %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,58 @@
{% if learning_path.enrolled? and training_session.unlocked? %}
<div class="np-learning-path-outline-bar np-hidden-mobile"></div>
<a
class="np-learning-path-outline-item np-card-container"
href="{% route training_session, id: training_session.id %}"
>
<div class="np-card-content np-card-padding">
<div class="np-events-content-date np-button-background-color">
<div class="np-events-content-month">
{{ training_session.month }}
</div>
<div class="np-events-content-day">
{{ training_session.day }}
</div>
</div>
<div class="np-learning-path-outline-content">
<div class="np-learning-path-outline-name np-top-title">{{ training_session.name }}</div>
<div class="np-learning-path-outline-caption">{{ training_session.instructors }}</div>
<div class="np-events-content-time np-learning-path-outline-time np-button-color">
{{ training_session.time }} {{ training_session.time_zone }}
</div>
</div>
<i class="fas fa-chevron-right np-learning-path-outline-icon"></i>
{% if training_session.optional? %}
<div class="np-optional-ribbon">
{% t shared.optional %}
</div>
{% endif %}
</div>
</a>
{% else %}
<div class="np-learning-path-outline-item np-card-container np-learning-path-outline-inactive-item">
<div class="np-card-content np-card-padding">
<div class="np-events-content-date np-button-background-color">
<div class="np-events-content-month">
{{ training_session.month }}
</div>
<div class="np-events-content-day">
{{ training_session.day }}
</div>
</div>
<div class="np-learning-path-outline-content">
<div class="np-learning-path-outline-name np-top-title">{{ training_session.name }}</div>
<div class="np-learning-path-outline-caption">{{ training_session.caption }}</div>
</div>
{% if training_session.optional? %}
<div class="np-optional-ribbon">
{% t shared.optional %}
</div>
{% endif %}
</div>
</div>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,19 @@
<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">
{% t .empty %}
</div>
<img class="np-zero-state-learning-paths" alt="{% t .empty %}" />
</div>
{% endif %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,51 @@
<div class="np-learning-paths-resources">
{% if items.any? %}
{% if current_school.filterable_categories.any? %}
{% assign categories_by_name = current_school.filterable_categories | sort: "name" %}
{% for category in categories_by_name %}
{% for learning_path in items %}
{% for lp_category in learning_path.categories %}
{% if lp_category.name == category.name %}
<div class="np-dashboard-resources-title">
{{ category.name }}
</div>
{% break %}
{% endif %}
{% endfor %}
{% endfor %}
{% for learning_path in items %}
{% for lp_category in learning_path.categories %}
{% if lp_category.name == category.name %}
{% include "cards_learning_path" with learning_path %}
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endif %}
<div class="np-dashboard-resources-title">
Topic
</div>
{% for learning_path in items %}
{% if learning_path.categories.any? == false %}
{% include "cards_learning_path" with learning_path %}
{% endif %}
{% endfor %}
{% else %}
<div class="np-learning-paths-resources-container">
<div class="np-zero-state-text">
{% t .empty %}
</div>
<img class="np-zero-state-learning-paths" alt="{% t .empty %}" />
</div>
{% endif %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,24 @@
{% if messages.alert.size > 0 %}
<div class="np-alert np-alert-error">
<div class="np-alert-wrapper">
{% for message in messages.alert %}
<div>{{ message }}</div>
{% endfor %}
</div>
</div>
{% endif %}
{% if messages.notice.size > 0 %}
<div class="np-alert np-alert-success">
<div class="np-alert-wrapper">
{% for message in messages.notice %}
<div>{{ message }}</div>
{% endfor %}
</div>
</div>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,104 @@
<div class="np-progress-ring-wrapper">
<svg
class="progress-ring"
width="{{ size }}"
height="{{ size }}">
<circle
class="progress-ring__circle circle-bg "
stroke="{{ stroke_color_NS }}"
stroke-width="{{ stroke_width }}"
fill="transparent"
r="{{ r }}"
cx="{{ cx }}"
cy="{{ cy }}"/>
<circle
class="progress-ring__circle circle-IP"
stroke="{{ stroke_color_IP }}"
stroke-width="{{ stroke_width }}"
fill="transparent"
r="{{ r }}"
cx="{{ cx }}"
cy="{{ cy }}"/>
<circle
class="progress-ring__circle circle-CM"
stroke="{{ stroke_color_CM }}"
stroke-width="{{ stroke_width }}"
fill="transparent"
r="{{ r }}"
cx="{{ cx }}"
cy="{{ cy }}"/>
</svg>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
var circleIP = document.getElementsByClassName("circle-IP")[0];
var circleCM = document.getElementsByClassName("circle-CM")[0];
var radius = circleIP.r.baseVal.value;
var circumference = radius * 2 * Math.PI;
circleIP.style.strokeDasharray = `${circumference} ${circumference}`;
circleIP.style.strokeDashoffset = `${circumference}`;
circleCM.style.strokeDasharray = `${circumference} ${circumference}`;
circleCM.style.strokeDashoffset = `${circumference}`;
function setProgress(circleNodeName, percent) {
let offset = circumference - percent * circumference;
if(circleNodeName == 'circleIP'){
circleIP.style.strokeDashoffset = offset;
} else {
circleCM.style.strokeDashoffset = offset;
}
}
setProgress('circleIP', '{{ countIP | divided_by: total }}')
setProgress('circleCM', '{{ countCM | divided_by: total }}')
})
</script>
<style>
.circle-IP{
transform: scale(-1, 1);
}
.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 {
transition: stroke-dashoffset 0.35s;
transform: rotate(-90deg);
transform-origin: center;
}
.np-progress-circle-label {
color:#fff;
text-transform: uppercase;
font-size:0.875rem;
margin-top:1rem;
}
.bqUfwS{
display:none !important;
}
@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

@ -0,0 +1,93 @@
<div class="np-progress-ring-wrapper progress-{{lp_id}}-{{status}}">
<svg
class="progress-ring"
width="{{ size }}"
height="{{ size }}">
<circle
class="progress-ring__circle circle-bg"
{%- comment -%} stroke="rgb(126, 187, 248)" {%- endcomment -%}
stroke="#FFC000"
stroke-width="10"
fill="transparent"
r="{{ r }}"
cx="{{ cx }}"
cy="{{ cy }}"/>
<circle
class="progress-ring__circle progress-ring-card card-circle-{{status}}"
stroke="{{ stroke_color }}"
stroke-width="10"
fill="transparent"
r="{{ r }}"
cx="{{ cx }}"
cy="{{ cy }}"/>
<text x="50%" y="50%" text-anchor="middle" stroke="{{ stroke_color }}" stroke-width="1px" fill="{{ stroke_color }}" dy=".3em">{{count}}</text>
</svg>
<h3 class="np-card-content-title np-progress-circle-label" style="color: {{ stroke_color }};">
{{status}}
</h3>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
let circle = document.querySelector('.progress-{{lp_id}}-{{status}}').querySelector('.card-circle-{{status}}');
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 - Number(percent) * circumference;
circle.style.strokeDashoffset = offset;
}
setProgress('{{ count | divided_by: total }}')
})
</script>
<style>
.np-progress-ring-wrapper {
flex: 0;
flex-direction: column;
display: flex;
justify-content: center;
width: 100%;
padding: 1.5rem 1rem 1rem 1rem;
align-items: center;
}
.progress-ring text {
font-size:2rem;
}
.np-progress-circle-label {
text-transform: uppercase;
font-size:0.875rem;
margin-top:1rem;
}
.bqUfwS{
display:none !important;
}
@media (min-width:768px) {
.learning-path-card .np-card-container{
justify-content: space-between;
}
.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; } */
.np-progress-ring-wrapper {
padding: 1.5rem 3rem 1rem 1rem;
}
}
</style>

View File

@ -0,0 +1,24 @@
<div class="np-card np-search-result">
<div class="np-card-container">
<div class="np-card-content">
<img
class="np-search-result-image"
alt="{{ result.name }}"
src="{{ result.image_url }}"
/>
<div class="np-search-result-content">
<div>
<a class="np-search-result-title" href="{{ result.path }}">
{{ result.name }}
</a>
</div>
<div class="np-search-result-snippet">{{ result.description }}</div>
</div>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,18 @@
<div class="np-card np-search-zero-state">
<div class="np-card-container">
<div class="np-card-content np-card-content-vertical np-search-zero-state-card">
<h3 class="np-search-zero-state-title">
{% t .nothing_found %}
</h3>
<div class="np-search-zero-state-subtitle">
{% t .empty %}
</div>
<div class="np-search-zero-state-image"></div>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,26 @@
{% if current_school.filterable_categories.any? %}
<div class="np-homepage-featured np-homepage-topics np-max-width">
<div class="np-homepage-featured-text">
<div class="np-homepage-headline homepage-heading">
Get started based on your persona!
</div>
</div>
<div class="np-topics-list col-xs-12 col-sm-6 col-md-2 np-stretch-content ">
{% for category in current_school.filterable_categories %}
<a class="np-top-button np-button topic-button col-md-2" href="/app/catalog?filter[category_uuid][in][]={{category.id}}">{{ category.name }}</a>
{% endfor %}
</div>
</div>
{% endif %}
<style>
.np-topics-list{
/* margin: 30px 10%; */
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
}
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,217 @@
{% if current_school.filterable_categories.any? %}
<div class="homepage-section np-homepage-featured np-homepage-topics">
<div class="np-homepage-featured-text">
<div class="np-homepage-headline homepage-heading">
Course Modules
</div>
</div>
<div class="homepage-personas">
<div id="previous-persona-button" onclick="personasSlider.goTo('prev')">
<i class="fal fa-chevron-left"></i>
</div>
<div class="np-personas-list personas-carousel np-stretch-content">
<div class="persona-panel">
<div class="persona-image-container">
<img src="https://s3.amazonaws.com/static.northpass.com/birchstreet/accounts_payable__only_img.png" style="width: 100%;"/>
</div>
<h2>Accounts Payable</h2>
{% comment %} <div class="persona-text-container">
<ul>
<li>Access all courses within the Curriculum</li>
<br>
<li>Includes guided Learning Paths</li>
<br>
<li>Includes a Certificate after completion</li>
<br>
<li>Performance Evaluations and Assessments</li>
<br>
</ul>
</div> {% endcomment %}
<div class="persona-button-container">
<a class="np-top-button np-button" href="/app/catalog?filter[category_uuid][in][]=f502fc55-4571-4f0b-97f3-9e85845b4f8a" style="margin-top: 15px;">
Explore More
</a>
</div>
</div>
<div class="persona-panel">
<div class="persona-image-container">
<img src="https://s3.amazonaws.com/static.northpass.com/birchstreet/eProcurement_only_img.png" style="width: 100%;"/>
</div>
<h2>eProcurement</h2>
{% comment %} <div class="persona-text-container">
<ul>
<li>Access all courses within the Curriculum</li>
<br>
<li>Includes guided Learning Paths</li>
<br>
<li>Includes a Certificate after completion</li>
<br>
<li>Performance Evaluations and Assessments</li>
<br>
</ul>
</div> {% endcomment %}
<div class="persona-button-container">
<a class="np-top-button np-button"
href="/app/catalog?filter[category_uuid][in][]=fd5f3825-29c4-415b-aa28-a6ee6ce53640&filter[category_uuid][in][]=00e540a8-4dfe-4068-9460-1f72150c5ced&filter[category_uuid][in][]=655d9406-ca94-431d-9692-f0716b135478&filter[category_uuid][in][]=7c5f3189-b9d1-4b7e-87b7-6d3999dd9ff6&filter[category_uuid][in][]=694238e7-f928-4841-a2e5-39b83499e109" style="margin-top: 15px;">
Explore More
</a>
</div>
</div>
<div class="persona-panel">
<div class="persona-image-container">
<img src="https://s3.amazonaws.com/static.northpass.com/birchstreet/inventory_w_accubar_only_img.png" style="width: 100%;"/>
</div>
<h2>Inventory</h2>
{% comment %} <div class="persona-text-container">
<ul>
<li>Access all courses within the Curriculum</li>
<br>
<li>Includes guided Learning Paths</li>
<br>
<li>Includes a Certificate after completion</li>
<br>
<li>Performance Evaluations and Assessments</li>
<br>
</ul>
</div> {% endcomment %}
<div class="persona-button-container">
<a class="np-top-button np-button" href="/app/catalog?filter[category_uuid][in][]=aca03871-77e3-4863-9272-dfe0dba1c85d" style="margin-top: 15px;">
Explore More
</a>
</div>
</div>
</div>
<div id="next-persona-button" onclick="personasSlider.goTo('next')">
<i class="fal fa-chevron-right"></i>
</div>
</div>
</div>
{% endif %}
<script>
var personasSlider = tns({
container: '.personas-carousel',
controls: false,
items: 1,
navPosition: 'bottom',
responsive: {
550: {
items: 2
},
768: {
items: 3
}
}
});
</script>
<style>
.homepage-personas{
align-items: center;
display: flex;
flex-direction: row;
margin: 0;
margin-bottom: 1%;
}
.np-personas-list{
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-evenly;
margin: 30px 0;
padding: 0;
}
.homepage-personas .tns-item{
width: 7% !important;
}
.persona-panel{
/* background: #004688;
background: url("{{ current_school.logo_url }}");
background-repeat: no-repeat;
background-size: contain !important; */
background: #002060;
border-radius: 18px;
color: #fff;
display: flex;
flex-direction: column;
/* height: 175px; */
margin-bottom: 10px;
/* max-width: 27%; */
padding: 0;
position: relative;
}
.persona-panel:hover{
transform: scale(1.1);
}
.persona-image-container{
background: #78a240;
border-top-right-radius: 18px;
border-top-left-radius: 18px;
width: 100%;
}
.persona-image-container img{
border-top-right-radius: 18px;
border-top-left-radius: 18px;
width: 100%
}
.persona-panel h2{
border-bottom: 1px solid #fff;
border-top: 1px solid #fff;
margin: 0 auto;
margin-top: 20px;
padding: 5px 0;
text-align: center;
width: 90%;
}
.persona-text-container{
background: #002060;
color: #fff;
margin: 0 auto;
width: 90%;
}
.persona-button-container{
display: flex;
justify-content: center;
margin-bottom: 15px;
}
.bqUfwS{
display:none !important;
}
@media screen and (min-width: 575px){
.persona-panel{
max-width: 45%;
}
}
@media screen and (min-width: 768px){
.persona-panel{
/* min-height: 425px;
max-width: 27%; */
}
}
</style>

View File

@ -0,0 +1,32 @@
{% if current_school.filterable_categories.any? %}
<div class="homepage-section np-homepage-featured np-homepage-topics np-max-width">
<div class="np-homepage-featured-text">
<div class="np-homepage-headline homepage-heading">
Popular Topics
</div>
</div>
<div class="np-topics-list col-xs-12 np-stretch-content ">
{% for category in current_school.filterable_categories %}
{% unless category.name == "FAQ's" or category.name == "Quick Guides" or category.name == "User Manuals" or category.name == "Glossary" %}
<a class="np-top-button np-button topic-button col-md-2" href="/app/catalog?filter[category_uuid][in][]={{category.id}}">{{ category.name }}</a>
{% endunless %}
{% endfor %}
</div>
</div>
{% endif %}
<style>
.np-topics-list{
margin: 30px 10%;
justify-content: space-evenly;
flex-wrap: wrap;
display: flex;
}
.topic-button{
margin: 15px;
}
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,48 @@
<nav class="np-sub-navigation">
<div class="np-sub-navigation-content">
{% for link in navigations.sub_navigation %}
{% unless link.label == 'Catalog' or link.label == 'Learning Paths' or link.label == 'Events' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endunless %}
{% endfor %}
{% for link in navigations.sub_navigation %}
{% if link.label == 'Learning Paths' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endif %}
{% endfor %}
{% for link in navigations.sub_navigation %}
{% if link.label == 'Catalog' %}
{% assign render = true %}
{% for group in current_person.groups %}
{% if group.id == '4919c56f-cda3-4f31-911c-f092536a7e68' %}
{% assign render = false %}
{% endif %}
{% endfor %}
{% if render %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endif %}
{% endif %}
{% endfor %}
</div>
</nav>

View File

@ -0,0 +1,53 @@
<nav class="np-sub-navigation">
<div class="np-sub-navigation-content">
{% for link in navigations.sub_navigation %}
{% unless link.label == 'Catalog' or link.label == 'Learning Paths' or link.label == 'Events' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endunless %}
{% endfor %}
{% for link in navigations.sub_navigation %}
{% if link.label == 'Learning Paths' %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endif %}
{% endfor %}
{% for link in navigations.sub_navigation %}
{% if link.label == 'Catalog' %}
{% assign render = true %}
{% for group in current_person.groups %}
{% if group.id == '4919c56f-cda3-4f31-911c-f092536a7e68' %}
{% assign render = false %}
{% endif %}
{% endfor %}
{% if render %}
<div class="np-sub-navigation-content-item {{ link.active_class }}">
<a class="np-sub-navigation-content-item-link" href="{{ link.url }}">
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon"></i>
{{ link.label }}
</a>
<div class="np-sub-navigation-content-item-bar np-button-background-color"></div>
</div>
{% endif %}
{% endif %}
{% endfor %}
</div>
</nav>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,25 @@
<div class="homepage-section np-homepage-featured np-max-width">
<div class="np-homepage-featured-text">
<div class="np-homepage-headline homepage-heading">
Upcoming Events
</div>
</div>
{% if training_events.available.any? %}
<div class="row row-with-thumbnails" style="padding: 1% 3%;">
{% for training_event in training_events.available %}
<div class="col-xs-12 col-sm-6 col-lg-4 np-stretch-content" style="margin-bottom: 10px;">
{% include "cards_training_event" with training_event %}
</div>
{% endfor %}
</div>
{% else %}
<div style="margin: 15px;">
{% include "training_events_zero_state" %}
</div>
{% endif %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,58 @@
<div class="np-filter">
<div class="dropdown">
<button
class="np-button dropdown-button"
data-toggle-class="is-open"
data-toggle-escape
data-toggle-outside
data-toggle-target-next
type="button"
>
{% t shared.filters.filter %}
</button>
<div class="dropdown-menu" data-test="modal">
<form method="get">
<span class="dropdown-label">
{% t shared.filters.by_event_type %}
</span>
<ul class="dropdown-checkboxes">
{% for event_type in training_events.filters.event_types %}
{% capture label %}
{% t shared.event_types, key: event_type.value %}
{% endcapture %}
<li>
{% include "filter_checkbox",
label: label,
name: event_type.name,
value: event_type.value
selected: event_type.selected?
%}
</li>
{% endfor %}
</ul>
{% capture label %}{% t shared.filters.by_course %}{% endcapture %}
{%
include "filter_select",
filters: training_events.filters.courses,
key: "courses_uuid",
label: label
%}
<button
class="np-button dropdown-button-apply"
data-toggle-trigger-off
type="submit"
>
{% t shared.filters.apply %}
</button>
</form>
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,18 @@
<div class="np-dashboard-resources">
{% if training_events.available.any? %}
<div class="row row-with-thumbnails">
{% for training_event in training_events.available %}
<div class="col-xs-12 col-sm-6 col-lg-4 np-stretch-content">
{% include "cards_training_event" with training_event %}
</div>
{% endfor %}
</div>
{% else %}
{% include "training_events_zero_state" %}
{% endif %}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,14 @@
<div class="np-dashboard-resources-container">
<div class="np-zero-state-text">
{% t .empty %}
</div>
<img
class="np-zero-state-training-events"
alt="{% t .empty %}"
/>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,57 @@
<div class="dropdown dropdown-calendar">
<button
class="np-top-button np-button-font-color np-button np-button-big dropdown-calendar-button"
data-toggle-class="is-open"
data-toggle-escape
data-toggle-outside
data-toggle-target-next
type="button"
>
{% t .add_to_calendar %}
<i class="fas fa-chevron-down dropdown-calendar-button-chevron"></i>
</button>
<ul class="dropdown-calendar-menu">
<li class="dropdown-calendar-item">
<a
class="dropdown-calendar-item-element np-button-background-color-on-hover np-button-font-color-on-hover"
href="{{ training_session.google_calendar_url }}"
target="_blank"
>
{% t .google_calendar %}
</a>
</li>
<li class="dropdown-calendar-item">
<a
class="dropdown-calendar-item-element np-button-background-color-on-hover np-button-font-color-on-hover"
href="{{ training_session.outlook_calendar_url }}"
target="_blank"
>
{% t .outlook_calendar %}
</a>
</li>
<li class="dropdown-calendar-item">
<a
class="dropdown-calendar-item-element np-button-background-color-on-hover np-button-font-color-on-hover"
href="{{ training_session.outlook_office_calendar_url }}"
target="_blank"
>
{% t .office_calendar %}
</a>
</li>
<li class="dropdown-calendar-item">
<a
class="dropdown-calendar-item-element np-button-background-color-on-hover np-button-font-color-on-hover"
href="{{ training_session.ical_calendar_url }}"
target="_blank"
>
{% t .ical_calendar %}
</a>
</li>
</ul>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,61 @@
{% if training_session.approved? %}
<div class="np-training-session-cta-note">
<i class="far fa-check np-training-session-icon"></i>
{% t .registered %}
</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">
{% t .unregister %}
</button>
{% else %}
<button type="submit" class="np-top-button np-button-font-color np-button np-button-big">
{% t .unregister %}
</button>
{% endif %}
<input type="hidden" name="_method" value="delete" />
{% endif %}
{% if training_session.not_registered? %}
{%- comment -%} <button type="submit" class="np-top-button np-button np-button-big">
{% t .register %}
</button> {%- endcomment -%}
<a href="{{ training_session.session_url }}" target="_blank" class="np-top-button np-button np-button-big">
{% t .register %}
</a>
{% endif %}
</form>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,20 @@
<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_session.day }}
</div>
<div>
<div class="np-card-training-session-date-month">
{{ training_session.month }}
</div>
<div class="np-card-training-session-date-year">
{{ training_session.year }}
</div>
</div>
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,11 @@
<h3 class="np-card-heading">
{% t .header %}
</h3>
<div class="np-card-text">
{{ training_event.description }}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,45 @@
<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-5">
{% include "training_session_details" %}
</div>
<div class="col-xs-12 col-sm-7">
{% 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>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,29 @@
<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" style='color: #089FB7;'></i>
{{ training_session.time_period }} {{ training_session.time_zone }}
</div>
{%- comment -%} {% 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 %} {%- endcomment -%}
{%- comment -%} {% if training_session.session_url %}
<div class="np-training-session-location">
<i class="fal fa-map-marker-alt np-button-color np-training-session-icon"></i>
<a href="{{ training_session.session_url }}" class="np-button-color" target="_blank" >
{{ training_session.session_url }}
</a>
</div>
{% endif %} {%- endcomment -%}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,15 @@
<div class="np-top-vocabulary np-text-title">
{% t shared.event_types, key: training_event.event_type %}
<i class="fal fa-users-class np-button-color np-training-session-icon"></i>
</div>
<div class="np-top-title">
<a href="{% route home %}" class="np-back-button" aria-label="{% t shared.go_back %}">
<i class="far fa-arrow-left np-hidden-mobile np-icon-back"></i>
</a>
{{ training_event.title }}
</div>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,27 @@
<div class="np-card-container-training-session">
<div class="np-card-spacing-large">
{% include "training_session_header" %}
</div>
{% include "training_session_details" %}
<div class="np-card-padding-large">
{% include "training_session_cta" %}
</div>
</div>
<div class="np-card-container np-card-padding np-card-spacing">
{% include "training_session_description" %}
</div>
{% if training_event.sessions.size > 1 %}
<div class="np-card-spacing">
<div class="np-training-session-sessions-title">
{% t shared.more_sessions %}
</div>
{% include "training_session_more_sessions" %}
</div>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,8 @@
{% for session in training_event.sessions %}
{% include "training_session_tile", current_session: training_session %}
{% endfor %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,22 @@
{% if current_session.id != session.id %}
<a
class="np-training-session-tile"
href="{% route training_session, id: session.id %}"
>
<i class="far fa-calendar-star np-training-session-tile-icon"></i>
<div>
<div class="np-training-session-tile-date">
{{ session.month }} {{ session.day }}, {{ session.year }}
</div>
<div class="np-training-session-tile-time">
{{ session.time_period }} {{ session.time_zone }}
</div>
</div>
<i class="fas fa-chevron-right np-training-session-tile-chevron"></i>
</a>
{% endif %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,19 @@
{% include "header" %}
<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" %}
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,62 @@
{% include "header" %}
<div class="np-homepage-hero" style="width: 100vw;">
<img class="np-homepage-hero-image"
src="{{ homepage.artwork_url }}"
alt="{{ homepage.headline }}"
/>
</div>
{% include "sub_navigation" %}
<main class="np-main faqs np-subpage-container np-max-width">
<div class="faqs-header">
Accounts Payable
</div>
{% if courses.in_catalog.any? %}
{% for course in courses.in_catalog %}
{% for course_category in course.categories %}
{% if course_category.name == "Accounts Payable" %}
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
<div class="col-xs-12 resource-entry-container">
<div class="resource-entry">
<span class="resource-name">{{ course.name }}</span>
{%- comment -%} <a class="resource-button" href="{{ course_path }}">View</a> {%- endcomment -%}
<a class="resource-button"
{% if course.enrolled? %}
href="{% route course_viewer, course_id: course.id, learning_path_id: params.learning_path_id %}"
{% else %}
href="{% route course_enrollment, code: course.enrollment_code %}"
{% endif %}
>
View
</a>
</div>
</div>
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
</main>
<style>
.np-sub-navigation{
width: 100vw;
}
.faqs-header{
display: flex;
font-size: 32px;
font-weight: 500;
margin-bottom: 25px;
width: 100%;
}
.bqUfwS{
display:none !important;
}
@media screen and (min-width: 768px){
.faqs-header{
margin-left: 64px;
}
}
</style>

View File

@ -0,0 +1,64 @@
<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">
{% t shared.email_address %}
</label>
<input
class="np-input"
type="text"
name="email"
id="learner_email"
value="{{ form.email }}"
/>
</div>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,64 @@
<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_employee_id">
{% t shared.employee_id %}
</label>
<input
class="np-input"
autofocus="autofocus"
type="text"
name="employee_id"
id="learner_employee_id"
value="{{ form.employee_id }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
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>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,44 @@
<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>
<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>
{% form_authenticity_token %}
<div class="np-form-field">
<label class="np-input-label" for="learner_last_name">
{% t shared.last_name %}
</label>
<input
class="np-input"
autofocus="autofocus"
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_phone_number">
{% t shared.phone_number %}
</label>
<input
class="np-input"
type="text"
name="phone_number"
id="learner_phone_number"
value="{{ form.phone_number }}"
/>
</div>
<button type="submit" class="np-button np-button-big np-form-action">
{% t shared.enter %}
</button>
</form>
</div>
</div>
</main>
<style>
.bqUfwS{
display:none !important;
}</style>

View File

@ -0,0 +1,79 @@
<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>
<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>
{% 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="email"
id="learner_email"
value="{{ form.email }}"
/>
</div>
<div class="np-form-field">
<label class="np-input-label" for="learner_first_name">
{% t shared.first_name %}
</label>
<input
class="np-input"
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_phone_number">
{% t shared.phone_number_optional %}
</label>
<input
class="np-input"
type="text"
name="phone_number"
id="learner_phone_number"
value="{{ form.phone_number }}"
/>
</div>
<div class="np-form-field np-open-access-terms">
<input type="hidden" name="terms" value="0" />
<input id="terms" type="checkbox" name="terms" value="1" />
<label for="terms" class="np-open-access-terms-checkbox">
{{ current_school.custom_terms }}
</label>
</div>
<input
type="submit"
name="commit"
value="{% t shared.enter %}"
class="np-button np-button-big np-form-action"
/>
</form>
</div>
</div>
</main>
<style>
.bqUfwS{
display:none !important;
}
</style>

View File

@ -0,0 +1,41 @@
{% assign redirect = false %}
{% for group in current_person.groups %}
{% if group.id == '4919c56f-cda3-4f31-911c-f092536a7e68' %}
{% assign redirect = true%}
{% endif %}
{% endfor %}
{% if redirect %}
<script>
window.location.href = '/app'
</script>
{% else %}
{% 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 %}
{% if courses.in_catalog.any? %}
{%
include "filter_dropdown",
filters: courses.filters,
key: "category_uuid",
label: label
%}
{% endif %}
</div>
{% include "courses_catalog" %}
</main>
{% include "footer" %}
{% endif %}
<style>
.bqUfwS{
display:none !important;
}</style>

View File

@ -0,0 +1,28 @@
{% include "header" %}
<main class="np-main np-max-width np-page-container">
<div class="np-hidden-mobile" id="course-desktop">
{% include "course_desktop_view" %}
</div>
<div class="np-hidden-desktop" id="course-mobile">
{% include "course_mobile_view" %}
</div>
</main>
{% include "footer" %}
<script>
if(window.location.href.includes('/learning_paths')){
if(window.location.href.slice(window.location.href.indexOf('learning_paths')).split('/').length >= 4){
let baseURL = window.location.href.slice(0, window.location.href.indexOf('/learning_paths'));
let redirectURL = `${baseURL}/learning_paths/${window.location.href.slice(window.location.href.indexOf('learning_paths')).split('/')[1]}`
document.querySelector('.np-back-button').setAttribute('href', redirectURL)
}
}
{% for category in course.categories %}
console.log('{{category.name}} >>> {{category.id}}')
{% endfor %}
</script>
<style>
.bqUfwS{
display:none !important;
}</style>

View File

@ -0,0 +1,20 @@
{% include "header" %}
{% include "course_version_outdated_alert", courses: courses.enrolled %}
{% include "sub_navigation" %}
<main class="np-main np-courses np-subpage-container np-max-width">
<div class="np-resource-title">
{% t shared.course_vocabulary.plural, key: current_school.course_vocabulary %}
</div>
<div class="np-resource-subtitle">{% t .headline, key: current_school.course_vocabulary %}</div>
{% include "courses_index", class: "col-xs-12 col-sm-6 col-lg-4 np-stretch-content" %}
</main>
{% include "footer" %}
<script>
const elements = document.querySelectorAll('[data-test="empty-circle-icon"]');
elements.forEach((element) => {
element.remove(); // Remove each matching element
console.log('Element removed');
});
</script>

Some files were not shown because too many files have changed in this diff Show More