Deleted a bunch of files and cleaned things up. Started the script for finding correct domain names for Anthology. Recast templates. Todolist.
This commit is contained in:
BIN
Custom_Templates/customer_templates/Recast Software/.DS_Store
vendored
Normal file
BIN
Custom_Templates/customer_templates/Recast Software/.DS_Store
vendored
Normal file
Binary file not shown.
@ -0,0 +1,66 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
<div class="np-card np-no-horizontal-padding">
|
||||||
|
<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>
|
||||||
|
|
||||||
|
<div class="np-hidden-mobile np-card-content-description">
|
||||||
|
{{ learning_path.description }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<div class="np-card-stack">
|
||||||
|
<div class="np-card-stack-level-1"></div>
|
||||||
|
<div class="np-card-stack-level-2"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
<div class="col-xs-12 col-md-4 spacing-clear">
|
||||||
|
{% include "certificates_verification" %}
|
||||||
|
{% include "certificates_metadata" %}
|
||||||
|
</div>
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
<h3 class="np-card-heading">
|
||||||
|
{% t .header, key: current_school.course_vocabulary %}
|
||||||
|
</h3>
|
||||||
|
<div class="np-card-text">
|
||||||
|
{{ course.full_description }}
|
||||||
|
</div>
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
<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 }}"
|
||||||
|
/>
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
<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 %}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
<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>
|
||||||
@ -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 %}
|
||||||
|
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
{% if courses.in_catalog.any? %}
|
||||||
|
<div class="np-catalog-courses row row-with-thumbnails">
|
||||||
|
{% for course in courses.in_catalog %}
|
||||||
|
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content">
|
||||||
|
{% include "cards_course" with course %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{% capture message %}
|
||||||
|
{% t shared.zero_state.courses.catalog,
|
||||||
|
key: current_school.course_vocabulary
|
||||||
|
%}
|
||||||
|
{% endcapture %}
|
||||||
|
{% include "courses_zero_state", message: message %}
|
||||||
|
{% endif %}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
{% if courses.enrolled.any? %}
|
||||||
|
<div class="row row-with-thumbnails">
|
||||||
|
{% for course in courses.enrolled %}
|
||||||
|
<div class="{{ class }}">
|
||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
<div class="np-dashboard-resources-container">
|
||||||
|
<div class="np-zero-state-text">
|
||||||
|
{{ message }}
|
||||||
|
</div>
|
||||||
|
<img class="np-zero-state-courses" alt="{{ message }}" />
|
||||||
|
</div>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
<input
|
||||||
|
id={{value}}
|
||||||
|
name={{ name }}
|
||||||
|
value={{ value }}
|
||||||
|
type="checkbox"
|
||||||
|
{% if selected %} checked="checked" {% endif %}
|
||||||
|
/>
|
||||||
|
<label for={{value}}>
|
||||||
|
{{label}}
|
||||||
|
</label>
|
||||||
@ -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>
|
||||||
@ -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>
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
<footer class="np-footer">
|
||||||
|
<div class="np-footer-top">
|
||||||
|
{% if website_footer.show_navigation_links? %}
|
||||||
|
<div class="np-footer-navigation">
|
||||||
|
<ul class="np-footer-navigation-list">
|
||||||
|
{% for website_navigation in navigations.footer_navigations %}
|
||||||
|
<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>
|
||||||
|
{% endif %}
|
||||||
|
{% if current_school.logo_url %}
|
||||||
|
<h2 class="np-footer-logo">
|
||||||
|
<a href="{% route home %}">
|
||||||
|
<img
|
||||||
|
alt="{{ current_school.name }}"
|
||||||
|
class="np-footer-logo-image"
|
||||||
|
src="{{ current_school.logo_url }}"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</h2>
|
||||||
|
{% else %}
|
||||||
|
<div class="np-school-name np-header-font-color">
|
||||||
|
{{ current_school.name }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="np-footer-bottom">
|
||||||
|
<nav class="np-footer-social-links">
|
||||||
|
{% if website_footer.show_social_media_links? %}
|
||||||
|
<ul class="np-footer-social-links-list">
|
||||||
|
{% for social_media_link in website_footer.social_media_links %}
|
||||||
|
<li class="np-footer-social-links-item">
|
||||||
|
<a
|
||||||
|
class="np-footer-social-links-link np-button-color"
|
||||||
|
href="{{ social_media_link.link }}"
|
||||||
|
target="_blank" title="{{ social_media_link.name }}"
|
||||||
|
>
|
||||||
|
<i class="np-footer-social-links-icon
|
||||||
|
np-button-color
|
||||||
|
fab fa-{{ social_media_link.name }}"
|
||||||
|
></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{% if website_footer.show_customer_service_email? and
|
||||||
|
website_footer.school_customer_service_email
|
||||||
|
%}
|
||||||
|
<div class="np-footer-support">
|
||||||
|
<div class="np-footer-support-item np-footer-support-help">
|
||||||
|
{% t .need_help %}
|
||||||
|
</div>
|
||||||
|
<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 }}"
|
||||||
|
>
|
||||||
|
{{ website_footer.school_customer_service_email }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
@ -129,6 +129,14 @@
|
|||||||
{% t .profile_settings %}
|
{% t .profile_settings %}
|
||||||
</a>
|
</a>
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
|
{% if current_person.signed_in? %}
|
||||||
|
<a
|
||||||
|
class="np-header-avatar-tooltip-navigation-link"
|
||||||
|
href="{% route transcript %}"
|
||||||
|
>
|
||||||
|
{% t .transcript %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
<a
|
<a
|
||||||
class="np-header-avatar-tooltip-navigation-link np-danger"
|
class="np-header-avatar-tooltip-navigation-link np-danger"
|
||||||
href="{% route logout %}"
|
href="{% route logout %}"
|
||||||
|
|||||||
@ -0,0 +1,17 @@
|
|||||||
|
<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" %}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
{% if learning_path.new_content_available? %}
|
||||||
|
{% include "learning_path_new_content_banner" %}
|
||||||
|
{% else %}
|
||||||
|
{% include "learning_path_completed_banner" %}
|
||||||
|
{% endif %}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
<h3 class="np-card-heading">
|
||||||
|
{% t .about %}
|
||||||
|
</h3>
|
||||||
|
<div class="np-card-text">
|
||||||
|
{{ learning_path.description }}
|
||||||
|
</div>
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
{% include "learning_path_desktop_header" %}
|
||||||
|
{% include "learning_path_desktop_content" %}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
{% include "learning_path_mobile_header" %}
|
||||||
|
{% include "learning_path_mobile_content" %}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
{% 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" %}
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
{% include "learning_path_desktop_header" %}
|
||||||
|
{% include "learning_path_banners" %}
|
||||||
|
{% include "learning_path_desktop_content" %}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
<div class="np-card-padding">
|
||||||
|
{% include "learning_path_banners" %}
|
||||||
|
</div>
|
||||||
|
{% include "learning_path_mobile_header" %}
|
||||||
|
{% include "learning_path_mobile_content" %}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
<div class="np-dashboard-resources">
|
||||||
|
{% if training_events.enrolled.any? %}
|
||||||
|
{% for training_event in training_events.enrolled %}
|
||||||
|
{% include "cards_training_event" with training_event %}
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
{% include "training_events_zero_state" %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
{% 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? %}
|
||||||
|
<button type="submit" class="np-top-button np-button np-button-big">
|
||||||
|
{% t .register %}
|
||||||
|
</button>
|
||||||
|
{% endif %}
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
<h3 class="np-card-heading">
|
||||||
|
{% t .header %}
|
||||||
|
</h3>
|
||||||
|
<div class="np-card-text">
|
||||||
|
{{ training_event.description }}
|
||||||
|
</div>
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
<div class="np-resource-header np-resource-header-card np-card-padding-large">
|
||||||
|
{% include "training_session_header" %}
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-7">
|
||||||
|
<div class="np-card-container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 col-sm-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>
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
<div class="np-card-spacing-large">
|
||||||
|
{% include "training_session_date" %}
|
||||||
|
|
||||||
|
<div class="np-training-session-time">
|
||||||
|
<i class="fal fa-clock np-button-color np-training-session-icon"></i>
|
||||||
|
{{ training_session.time_period }} {{ training_session.time_zone }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if training_session.location %}
|
||||||
|
<div class="np-training-session-location">
|
||||||
|
<i class="fal fa-map-marker-alt np-button-color np-training-session-icon"></i>
|
||||||
|
{{ training_session.location }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if training_session.session_url %}
|
||||||
|
<div class="np-training-session-location">
|
||||||
|
<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 %}
|
||||||
|
</div>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
<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 %}
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
{% for session in training_event.sessions %}
|
||||||
|
{% include "training_session_tile", current_session: training_session %}
|
||||||
|
{% endfor %}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
{% 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 %}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
{% 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" %}
|
||||||
|
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,74 @@
|
|||||||
|
<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>
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
{% 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" %}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
<main class="np-box-container">
|
||||||
|
<div class="np-box">
|
||||||
|
{% include "header_minimal" %}
|
||||||
|
<div class="np-box-content-container">
|
||||||
|
<form class="np-form np-box-content" action="{% route forgot_password_create %}" method="post" novalidate>
|
||||||
|
{% form_authenticity_token %}
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_email">
|
||||||
|
{% t shared.email_address %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
autofocus="autofocus"
|
||||||
|
class="np-input"
|
||||||
|
id="learner_email"
|
||||||
|
name="learner[email]"
|
||||||
|
type="email"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
|
||||||
|
{% t .button_label %}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
<main class="np-main np-max-width np-page-container">
|
||||||
|
<div class="np-hidden-mobile" id="learning-path-desktop">
|
||||||
|
{% include "learning_path_desktop_view" %}
|
||||||
|
</div>
|
||||||
|
<div class="np-hidden-desktop" id="learning-path-mobile">
|
||||||
|
{% include "learning_path_mobile_view" %}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
{% include "footer" %}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
<main class="np-main np-max-width np-page-container">
|
||||||
|
<div class="np-hidden-mobile" id="learning-path-desktop">
|
||||||
|
{% include "learning_path_summary_desktop_view" %}
|
||||||
|
</div>
|
||||||
|
<div class="np-hidden-desktop" id="learning-path-mobile">
|
||||||
|
{% include "learning_path_summary_mobile_view" %}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
{% include "footer" %}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
<main class="np-main np-box-container">
|
||||||
|
<div class="np-box">
|
||||||
|
{% include "header_minimal" %}
|
||||||
|
<div class="np-box-content-container">
|
||||||
|
<form class="np-form np-box-content" action="{% route login %}" method="post" novalidate>
|
||||||
|
{% form_authenticity_token %}
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_email">
|
||||||
|
{% t shared.email_address %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
autofocus="autofocus"
|
||||||
|
type="email"
|
||||||
|
name="learner[email]"
|
||||||
|
id="learner_email"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_password">
|
||||||
|
{% t shared.password %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
type="password"
|
||||||
|
name="learner[password]"
|
||||||
|
id="learner_password"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
|
||||||
|
{% t shared.sign_in %}
|
||||||
|
</button>
|
||||||
|
<a class="np-form-link np-button-color" href="{% route forgot_password_new %}">
|
||||||
|
{% t .forgot_password %}
|
||||||
|
</a>
|
||||||
|
{% if features.account_creation? %}
|
||||||
|
<a class="np-form-link np-button-color" href="{% route sign_up %}">
|
||||||
|
{% t shared.sign_up %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if features.request_access? %}
|
||||||
|
<a
|
||||||
|
class="np-form-link np-button-color"
|
||||||
|
target="_blank"
|
||||||
|
href="{{ current_school.request_access_link }}"
|
||||||
|
>
|
||||||
|
{{ current_school.request_access_label }}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
{% body %}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
<main class="np-main np-max-width np-subpage-container">
|
||||||
|
<div class="np-homepage-featured-text">
|
||||||
|
<div class="np-homepage-headline">
|
||||||
|
{% t .header %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="np-homepage-featured-empty">
|
||||||
|
<img src="/images/404.svg">
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
{% include "certificates_top_bar" %}
|
||||||
|
<main class="np-main np-certificate np-max-width np-page-container clear-main-spacings">
|
||||||
|
<section class="np-certificate-content-spacing">
|
||||||
|
<div class="row">
|
||||||
|
{% include "certificates_preview" %}
|
||||||
|
{% include "certificates_info_column" %}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
{% include "certificates_top_bar" %}
|
||||||
|
<main class="np-main np-certificate np-max-width np-page-container clear-main-spacings">
|
||||||
|
<section class="np-certificate-content-spacing">
|
||||||
|
<div class="row">
|
||||||
|
{% include "certificates_preview" %}
|
||||||
|
{% include "certificates_info_column" %}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
<main class="np-box-container">
|
||||||
|
<div class="np-box">
|
||||||
|
{% include "header_minimal" %}
|
||||||
|
<div class="np-box-content-container">
|
||||||
|
<form class="np-form np-box-content" method="post" action="{% route forgot_password_create %}">
|
||||||
|
<input type="hidden" name="_method" value="put">
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
value="{{ reset_password_token }}"
|
||||||
|
name="learner[reset_password_token]"
|
||||||
|
id="learner_reset_password_token"
|
||||||
|
>
|
||||||
|
{% form_authenticity_token %}
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_password">
|
||||||
|
{% t .new_password %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
autofocus="autofocus"
|
||||||
|
type="password"
|
||||||
|
name="learner[password]"
|
||||||
|
id="learner_password"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_password_confirmation">
|
||||||
|
{% t .confirm_new_password %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
type="password"
|
||||||
|
name="learner[password_confirmation]"
|
||||||
|
id="learner_password_confirmation"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="np-button np-button-big np-form-action">
|
||||||
|
{% t .change_password %}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
<main class="np-main np-search np-subpage-container np-max-width">
|
||||||
|
<div class="np-resource-title">
|
||||||
|
{% t .title %}
|
||||||
|
</div>
|
||||||
|
<div class="np-search-header">
|
||||||
|
<div class="np-resource-subtitle">
|
||||||
|
{% t .showing %}
|
||||||
|
<span class="np-resource-subtitle-number">{{ results.count }}</span>
|
||||||
|
{% t .results_for %}
|
||||||
|
<span class="np-button-color">"{{ results.term }}"</span>
|
||||||
|
</div>
|
||||||
|
{% capture label %}{% t shared.filters.by_type %}{% endcapture %}
|
||||||
|
{%
|
||||||
|
include "filter_dropdown",
|
||||||
|
filters: results.filters,
|
||||||
|
key: "type",
|
||||||
|
label: label
|
||||||
|
%}
|
||||||
|
</div>
|
||||||
|
{% if results.items.any? %}
|
||||||
|
{% render "search_result" for results.items as result %}
|
||||||
|
{% else %}
|
||||||
|
{% include "search_zero_state" %}
|
||||||
|
{% endif %}
|
||||||
|
</main>
|
||||||
|
{% include "footer" %}
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
<main class="np-main np-box-container">
|
||||||
|
<div class="np-box">
|
||||||
|
{% include "header_minimal" %}
|
||||||
|
<div class="np-box-content-container">
|
||||||
|
<form class="np-form np-box-content" action="{% route sign_up %}" method="post" novalidate>
|
||||||
|
<div class="np-form-title"> {% t .create_account %} </div>
|
||||||
|
{% form_authenticity_token %}
|
||||||
|
<div class="np-form-flex-desktop">
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_first_name">
|
||||||
|
{% t shared.first_name %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
autofocus="autofocus"
|
||||||
|
type="text"
|
||||||
|
name="learner[first_name]"
|
||||||
|
id="learner_first_name"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_last_name">
|
||||||
|
{% t shared.last_name %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
type="text"
|
||||||
|
name="learner[last_name]"
|
||||||
|
id="learner_last_name"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_email">
|
||||||
|
{% t shared.email_address %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
autofocus="autofocus"
|
||||||
|
type="email"
|
||||||
|
name="learner[email]"
|
||||||
|
id="learner_email"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="np-form-field">
|
||||||
|
<label class="np-input-label" for="learner_password">
|
||||||
|
{% t shared.password %}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
class="np-input"
|
||||||
|
type="password"
|
||||||
|
name="learner[password]"
|
||||||
|
id="learner_password"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="np-button np-button-big np-button-large-font np-form-action">
|
||||||
|
{% t shared.sign_up %}
|
||||||
|
</button>
|
||||||
|
<span class="np-form-terms">
|
||||||
|
{% t .terms %}
|
||||||
|
<a
|
||||||
|
class="np-form-link np-button-color"
|
||||||
|
target="_blank"
|
||||||
|
href="{{ current_school.terms_of_service_url }}"
|
||||||
|
>
|
||||||
|
{% t .terms_link %}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
<main class="np-main np-training-session np-max-width np-page-container">
|
||||||
|
<div class="np-hidden-mobile" id="training-session-desktop">
|
||||||
|
{% include "training_session_desktop_view" %}
|
||||||
|
</div>
|
||||||
|
<div class="np-hidden-desktop" id="training-session-mobile">
|
||||||
|
{% include "training_session_mobile_view" %}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
{% include "footer" %}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
<main class="np-main np-cta-page np-max-width np-subpage-container">
|
||||||
|
<div class="np-card-container np-card-padding-xlarge">
|
||||||
|
{% if token %}
|
||||||
|
<i class="np-cta-page-icon fal fa-users-class"></i>
|
||||||
|
<div class="np-form-headline">
|
||||||
|
{{ training_session.title }}
|
||||||
|
</div>
|
||||||
|
<div class="np-form-subheadline">
|
||||||
|
{% t .info,
|
||||||
|
event_name: training_session.title,
|
||||||
|
session_date: training_session.date,
|
||||||
|
session_time: training_session.time
|
||||||
|
%}
|
||||||
|
</div>
|
||||||
|
<div class="np-form-subheadline">
|
||||||
|
{% t .question %}
|
||||||
|
</div>
|
||||||
|
<form action="{% route training_session_attendance %}" method="post" class="np-cta-page-buttons">
|
||||||
|
{% form_authenticity_token %}
|
||||||
|
<input type="hidden" name="token" value="{{ token }}">
|
||||||
|
<input type="submit" name="not_attended" value="{% t .not_attended %}" class="np-button np-button-secondary">
|
||||||
|
<input type="submit" name="commit" value="{% t .attended %}" class="np-button">
|
||||||
|
</form>
|
||||||
|
<div class="np-form-subheadline">
|
||||||
|
{% t .salutation %}
|
||||||
|
</div>
|
||||||
|
<div class="np-form-subheadline">
|
||||||
|
{{ current_school.name }}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<i class="np-cta-page-icon fal fa-check-circle"></i>
|
||||||
|
<div class="np-form-headline">
|
||||||
|
{% t .success.response_text %}
|
||||||
|
</div>
|
||||||
|
<div class="np-cta-page-buttons">
|
||||||
|
<a href="{% route training_events %}" class="np-button">
|
||||||
|
{% t .success.button_text %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
{% include "footer" %}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
{% include "header" %}
|
||||||
|
<main class="np-main np-cta-page np-max-width np-subpage-container">
|
||||||
|
<div class="np-card-container np-card-padding-xlarge">
|
||||||
|
{% if token %}
|
||||||
|
<i class="np-cta-page-icon fal fa-bell-slash"></i>
|
||||||
|
<div class="np-form-subheadline np-margin-top">
|
||||||
|
{% t .unsubscribe_text %}
|
||||||
|
</div>
|
||||||
|
<div class="np-form-subheadline np-margin-top">
|
||||||
|
{% t .resubscribe_text %}
|
||||||
|
</div>
|
||||||
|
<form
|
||||||
|
id="unsubscribe_form"
|
||||||
|
action="{% route email_unsubscribe, unsubscribe_token: token %}"
|
||||||
|
method="post"
|
||||||
|
class="np-cta-page-buttons"
|
||||||
|
>
|
||||||
|
{% form_authenticity_token %}
|
||||||
|
<input type="hidden" name="_method" value="delete">
|
||||||
|
<input type="submit" name="commit" value="{% t .resubscribe_button %}" class="np-button np-button-wide">
|
||||||
|
</form>
|
||||||
|
{% else %}
|
||||||
|
<i class="np-cta-page-icon fal fa-bell-on"></i>
|
||||||
|
<div class="np-form-subheadline np-margin-top">
|
||||||
|
{% t .resubscribed_text %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
{% include "footer" %}
|
||||||
@ -403,7 +403,7 @@ Items to Change for Dashboard:
|
|||||||
* Talisma - needs to be deleted
|
* Talisma - needs to be deleted
|
||||||
* Radius - needs to be deleted
|
* Radius - needs to be deleted
|
||||||
|
|
||||||
## 03-01-2024
|
## 03/01/2024
|
||||||
|
|
||||||
Two items from KC:
|
Two items from KC:
|
||||||
|
|
||||||
@ -417,3 +417,18 @@ Two items from KC:
|
|||||||
* Can Amit handle the new domains and adding the accounts to the CSV.
|
* Can Amit handle the new domains and adding the accounts to the CSV.
|
||||||
* Another analytic that is asked from others, but not to KC and Katie
|
* Another analytic that is asked from others, but not to KC and Katie
|
||||||
* I need to know all of the customers that have had at least 1 person access a course. Or complete a course.
|
* I need to know all of the customers that have had at least 1 person access a course. Or complete a course.
|
||||||
|
|
||||||
|
## 03/08/2024
|
||||||
|
|
||||||
|
* Lots of new C-level people.
|
||||||
|
* Private equity owned, they replaced CEO and other leadership.
|
||||||
|
* Private equity also brought in new people.
|
||||||
|
* ILTs available to managers -->
|
||||||
|
* Their enterprise customers basically get a "subdivision" of the academy.
|
||||||
|
* Manager permissions are key to this.
|
||||||
|
* Only option right now is enterprise customers put in a request for an ILT to be created and shown to their specific groups.
|
||||||
|
* Westmoreland is the Enterprise pilot.
|
||||||
|
* Claremont "hates them", high set of expectations.
|
||||||
|
* Subset of Claremont domains are in the academy
|
||||||
|
|
||||||
|
KC Question: When the categories are established in the filters, can we programatically re-assign categories to all 800 courses? Or does it need to be done manually?
|
||||||
|
|||||||
@ -1025,3 +1025,7 @@ How many are the perfect amount of courses?
|
|||||||
There are too many courses.
|
There are too many courses.
|
||||||
CPO (Contacts (to support) per Order) is always the North star for WMT metrics.
|
CPO (Contacts (to support) per Order) is always the North star for WMT metrics.
|
||||||
Analytics are currently time consuming for her.
|
Analytics are currently time consuming for her.
|
||||||
|
|
||||||
|
Increase to 1.5m before end of FY24. We need to migrate to leveraging the catalog.
|
||||||
|
The big focus is to enhance the way analytics
|
||||||
|
Serious about the move to using the catalog.
|
||||||
|
|||||||
1018
Randomnotes.md
1018
Randomnotes.md
File diff suppressed because it is too large
Load Diff
201
SKO.md
201
SKO.md
@ -1,201 +0,0 @@
|
|||||||
# SKO Homework
|
|
||||||
|
|
||||||
Shark Tank Pitches
|
|
||||||
|
|
||||||
## Why Customer Education?
|
|
||||||
|
|
||||||
### Instructions
|
|
||||||
|
|
||||||
Develop a 3-5 minute “Shark Tank Style” elevator pitch for Northpass. Your pitch should:
|
|
||||||
|
|
||||||
* Detail the investment you’re seeking for Northpass
|
|
||||||
* Identify the problem Northpass is solving
|
|
||||||
* Outline the market opportunity for Northpass
|
|
||||||
* Detail the benefits of Northpass
|
|
||||||
* Share the outcomes that those investing in Northpass achieve
|
|
||||||
* Make the Sharks motivated to invest in Northpass
|
|
||||||
|
|
||||||
### Response
|
|
||||||
|
|
||||||
Sharks, I am offering you a once-in-an-episode opportunity to invest in a customer strategy that will become the
|
|
||||||
cornerstone of your entire brand experience ecosystem.
|
|
||||||
|
|
||||||
If you're anything like me, the word education doesn't bring up visions of the joy of learning or getting a good score
|
|
||||||
on a test. Instead, the word education often bubbles up academic baggage; the fear of failing, nervously scribbling
|
|
||||||
answers, or wondering if you circled the scan-tron answers well enough for it to be counted.
|
|
||||||
|
|
||||||
This is the education of the past. The education of the future is forward-thinking, engaging, and most importantly -
|
|
||||||
revenue generating.
|
|
||||||
|
|
||||||
Here's the thing: you're already doing customer education! When your company sends an email about a product release, or
|
|
||||||
when a new feature gets added and your CSMs tell your customers about it; that's customer education. When you host a
|
|
||||||
webinar or your power-user tells a friend or co-worker about your product; that's customer education. Every blog post,
|
|
||||||
marketing campaign, response to support tickets.. I could go on. These are all forms of education. You're already doing
|
|
||||||
it without knowing or - most important - without giving it a centralizing or north start to guide the practice.
|
|
||||||
|
|
||||||
As business owners, what if your leadership team was decentralized and unguided? How well would your product team
|
|
||||||
develop your product without a clear roadmap or refined set of goals? These are the basics, ladies and gentlemen. You
|
|
||||||
can't run a company without a north star. Why do we continue to leave our customer experience departments in the same
|
|
||||||
pitfalls? You are losing money, burning relationships, and ultimately, doing a disservice to your culture and brand
|
|
||||||
recognition.
|
|
||||||
|
|
||||||
Customer education is not just a simple business practice, it's a transformative force that has the power to change the
|
|
||||||
world. By empowering customers with knowledge, they become equipped to tackle their challenges, achieve their goals, and
|
|
||||||
make a positive impact at all levels of the organization.
|
|
||||||
|
|
||||||
Think about it - when you committed to taking a course or learning something new, how gratifying did it feel to complete
|
|
||||||
what you set out to do? Your product helps the customer feel committed; now bring the education to give your customers
|
|
||||||
some goals. When your customer understands how to use a product or service to its fullest potential, not only can they
|
|
||||||
maximize its benefits; they *will*. They *will* become more efficient, more productive, more effective and more
|
|
||||||
influential with the people around them. With a commitment to customer education, your customers will improve their
|
|
||||||
own well being and the well being of those around them.
|
|
||||||
|
|
||||||
But it's not just about the individual customer. When a company invests in customer education, they show their
|
|
||||||
commitment across the board. They show commitment and passion for their product. Commitment to their internal teams and
|
|
||||||
SMEs who have so much knowledge that often never escapes their heads. Most importantly, when a company is committed to
|
|
||||||
customer education they demonstrate their dedication to their customers' success and their belief in the power of
|
|
||||||
*knowledge* to drive positive change. They lead by example, inspiring others to follow suit and create a ripple effect
|
|
||||||
of positivity, progress, and passion.
|
|
||||||
|
|
||||||
Let's, with gusto and intention, centralize customer education. Folks, I am asking for more than just an investment
|
|
||||||
today. I am asking for a shift in thinking. I know that with this change, this is where you can really make an impact
|
|
||||||
that moves beyond this room.
|
|
||||||
|
|
||||||
So what do you say, Sharks? Are you ready to move your customer's education beyond the confines of emails and webinars?
|
|
||||||
Let's embrace customer education as a transformative force for good. Let's empower customers with the knowledge they
|
|
||||||
need to achieve their dreams and make a positive impact in the world. With Customer Education, we can change the
|
|
||||||
world... one customer at a time!
|
|
||||||
|
|
||||||
## Why Now?
|
|
||||||
|
|
||||||
### Instructions
|
|
||||||
|
|
||||||
Develop a 3-5 minute “Shark Tank Style” elevator pitch for investing in Northpass and digital customer education now.
|
|
||||||
Your pitch should:
|
|
||||||
|
|
||||||
* Detail the investment you’re seeking for Northpass
|
|
||||||
* Identify the problem Northpass is solving
|
|
||||||
* Calculate the ROI that investors could experience
|
|
||||||
* Make the Sharks motivated to invest in Northpass
|
|
||||||
|
|
||||||
### Response
|
|
||||||
|
|
||||||
Sharks, you've learned a lot about Customer Education and the learning management system ecosystem today. There are a
|
|
||||||
ton of competitors in the market with many different niches and specialties. This makes the decision difficult when
|
|
||||||
trying to best understand what your customers need. Well, I'm here to help you invest in the right company: Northpass.
|
|
||||||
|
|
||||||
When you think about Northpass, what comes to mind? A mountain pass... snowy, rocky crags... isolation in a forbidden
|
|
||||||
wilderness? You wouldn't be wrong about that because despite the amount of competition, that is the state of the
|
|
||||||
customer education industry. You are given a backpack with some useless tools and when you ask for direction, your new
|
|
||||||
"partners" point vaguely in a direction where all you see are those jagged peaks and lost trails.
|
|
||||||
|
|
||||||
That's not what you need when embarking on a new journey that, frankly, is too risky for most of the world. That's why
|
|
||||||
we have so many half-baked solutions giving you tools that are really just one-trick-ponies. What we offer to our
|
|
||||||
customers is not that of an outfitter. We are a full-fledged, premium guide service that customizes every way point in
|
|
||||||
your journey to a level of sophistication and satisfaction that would leave most Everest guides gawking in awe. With our
|
|
||||||
customers as the pioneers into this untamed wilderness, Northpass offers the expertise, professional service, and
|
|
||||||
multi-use tool set to enable our customers a successful and memorable journey.
|
|
||||||
|
|
||||||
It's a fact: after customers see the level of detail and personalization that we put into their experience, they stick
|
|
||||||
with us for their future journeys into new mountain ranges.
|
|
||||||
|
|
||||||
If that wasn't enough, here's Northpass in a nutshell: Northpass is an invaluable tool to deepen brand loyalty, increase
|
|
||||||
market share, and strengthen the bonds between your internal and external stakeholders.
|
|
||||||
|
|
||||||
From the most technical of companies, like Recast Software, educating their clients on Microsoft Endpoint Solutions and
|
|
||||||
Server Management, or Skuid, a code-less solution for data connecting workflows, to Big Ideas Learning, a Saas solution
|
|
||||||
for the-always-busy public school teacher, customer education is the current that flows underneath all your other
|
|
||||||
systems.
|
|
||||||
|
|
||||||
The value is simple. Give your customers right-on-time experiences with your brand and product in an asynchronous
|
|
||||||
format so that when they are seeking an answer, they not only know where to find it, but feel accomplished, proud, and
|
|
||||||
emboldened to share their new found knowledge.
|
|
||||||
|
|
||||||
We know the road will have lots of twists and turns, and the weather might turn bad, but with Northpass as your guide
|
|
||||||
through these mountain passes, I know that you will have all the tools, expertise, and confidence to get you to the
|
|
||||||
green pastures of an impactful Customer Education program.
|
|
||||||
|
|
||||||
## AI & LI
|
|
||||||
|
|
||||||
### Instructions
|
|
||||||
|
|
||||||
Use OpenAI’s ChatGPT, develop 20 topics for a customer education Linkedin post. Then, pick a topic and use ChatGPT to
|
|
||||||
craft your first social-selling Linkedin post. Make sure that you use the OpenAI output as a basis, but then they truly
|
|
||||||
make it your own with your words and personality. It needs to be something that, when you read it out loud, you would
|
|
||||||
feel very natural with and happy about.
|
|
||||||
|
|
||||||
### Response
|
|
||||||
|
|
||||||
"Did you know that investing in #CustomerEducation can have a major impact on the success and profitability of a tech
|
|
||||||
company? Here are 20 reasons why:
|
|
||||||
|
|
||||||
1. Enhances understanding of products or services - Imagine finally understanding how to use that app you've been
|
|
||||||
struggling with!
|
|
||||||
2. Increases customer satisfaction and loyalty - Happy customers are more likely to stick around and recommend you to
|
|
||||||
others.
|
|
||||||
3. Reduces support inquiries - When customers have the knowledge they need, they're less likely to need to reach out for
|
|
||||||
help.
|
|
||||||
4. Increases upselling and cross-selling opportunities - Educated customers are more likely to see the value in related
|
|
||||||
5. products or services. Improves customer retention - Investing in education shows customers that you care about their
|
|
||||||
success and satisfaction.
|
|
||||||
6. Builds brand awareness and trust - When customers feel confident in your offerings, they'll remember your brand and
|
|
||||||
choose you again in the future.
|
|
||||||
7. Supports customer success - Helping customers reach their goals with your products or services leads to repeat
|
|
||||||
business.
|
|
||||||
8. Reduces churn - Happy, successful customers are less likely to cancel or switch to a competitor.
|
|
||||||
9. Helps customers achieve desired outcomes - Empowering customers with education helps them get the most out of your
|
|
||||||
offerings.
|
|
||||||
10. Enhances customer advocacy and referrals - When customers love your products and feel confident using them, they'll
|
|
||||||
tell others about you.
|
|
||||||
11. Enables customers to become self-sufficient - Education empowers customers to troubleshoot and find answers on their
|
|
||||||
own.
|
|
||||||
12. Improves customer retention and reduces churn - When customers feel confident and successful, they're less likely to
|
|
||||||
leave.
|
|
||||||
13. Increases customer lifetime value - Investing in customer education can lead to longer, more successful
|
|
||||||
relationships with customers.
|
|
||||||
14. Facilitates customer engagement and feedback - Education provides opportunities for customers to engage with your
|
|
||||||
company and share their thoughts.
|
|
||||||
15. Supports customer journey mapping and improvements - Understanding customer needs and goals through education can
|
|
||||||
inform your product development and customer experience strategies.
|
|
||||||
16. Promotes customer-led innovation and product development - When customers feel empowered and knowledgeable, they may
|
|
||||||
suggest new ideas or improvements.
|
|
||||||
17. Improves customer decision making and purchasing processes - Educated customers are more likely to make informed
|
|
||||||
decisions and be satisfied with their purchases.
|
|
||||||
18. Supports customer onboarding and training - A well-designed education program can make the transition to your
|
|
||||||
product or service smoother for new customers.
|
|
||||||
19. Enhances customer satisfaction and NPS scores - Investing in customer education leads to happier, more satisfied
|
|
||||||
customers who are more likely to recommend you.
|
|
||||||
20. Helps customers maximize the value they receive from your offerings - Education empowers customers to get the most
|
|
||||||
out of your
|
|
||||||
|
|
||||||
## Customer Success Stories
|
|
||||||
|
|
||||||
### Instructions
|
|
||||||
|
|
||||||
Detail a success story from one of your customers, preferably in SaaS. Consider the following framework:
|
|
||||||
|
|
||||||
* Background of the company.
|
|
||||||
* Challenges before Northpass.
|
|
||||||
* Solution Northpass provided them.
|
|
||||||
* Results Northpass has helped them achieve.
|
|
||||||
|
|
||||||
### Response
|
|
||||||
|
|
||||||
Larson Texts/Big Ideas
|
|
||||||
25% decrease in CSM training calls.
|
|
||||||
|
|
||||||
## Take away
|
|
||||||
|
|
||||||
### Instructions & Response
|
|
||||||
|
|
||||||
List your top three takeaways from the GTM Enablement Playbook:
|
|
||||||
|
|
||||||
1.
|
|
||||||
2.
|
|
||||||
3.
|
|
||||||
|
|
||||||
List three pieces of training you’d like to see added to the GTM Enablement Playbook:
|
|
||||||
|
|
||||||
1.
|
|
||||||
2.
|
|
||||||
3.
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
Renaissance Dashboard Changes:
|
|
||||||
[X] email can be removed
|
|
||||||
[X] course name extended
|
|
||||||
[ ] check to see if end user allowed to hide columns
|
|
||||||
[X] remove enroll to the course date
|
|
||||||
[ ] move "last activity completed date" after "attempt start date"
|
|
||||||
[X] remove quiz progress
|
|
||||||
[ ] New metric add - average percent correct for all quizzes in a given course
|
|
||||||
[X] Color Visualizations
|
|
||||||
[X] quiz score: less than 85% red, 85-91% light green, 92-100% dark green
|
|
||||||
[X] Course progress %: gradient of green starting at 50% (light) to 100% (dark)
|
|
||||||
[ ] Default to order by name
|
|
||||||
[ ] Question: Group name... A learner can be in multiple groups.. do we know which one(s) will surface?
|
|
||||||
BIN
Scripts/Anthology/__pycache__/domains_list.cpython-310.pyc
Normal file
BIN
Scripts/Anthology/__pycache__/domains_list.cpython-310.pyc
Normal file
Binary file not shown.
1102
Scripts/Anthology/domains_list.py
Normal file
1102
Scripts/Anthology/domains_list.py
Normal file
File diff suppressed because it is too large
Load Diff
10
Scripts/Anthology/find_domain_names.py
Normal file
10
Scripts/Anthology/find_domain_names.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
from requests_html import HTMLSession
|
||||||
|
from domains_list import DOMAINS
|
||||||
|
|
||||||
|
for domain in DOMAINS:
|
||||||
|
URL = f"https://{domain}"
|
||||||
|
session = HTMLSession()
|
||||||
|
resp = session.get(URL)
|
||||||
|
title = resp.html.find('head > title', first=True)
|
||||||
|
group_name = title.text.split("|")[0]
|
||||||
|
print(group_name)
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user