customer notes
This commit is contained in:
BIN
NP_Custom_Templates/customer_templates/.DS_Store
vendored
BIN
NP_Custom_Templates/customer_templates/.DS_Store
vendored
Binary file not shown.
@ -0,0 +1,76 @@
|
||||
<div class="np-dashboard-resources" style="padding-bottom: 1rem;">
|
||||
<div class="np-card">
|
||||
<div class="np-card-container">
|
||||
<div class="np-card-content-training-event">
|
||||
<h3 class="np-card-content-title recent-achievements">
|
||||
Recent Achievements
|
||||
</h3>
|
||||
<div style=" float: left;">
|
||||
<button class="view-achievements-button" onclick="#" type="button">Total Points:{{ current_person.properties.learner_points }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<br>
|
||||
<div class="achivements-carousel">
|
||||
{% for course in courses.enrolled %}
|
||||
{% if course.progress == 100 %}
|
||||
<div>
|
||||
<br>
|
||||
<img src="{{course.properties.course_badge}}">
|
||||
<div class="np-card-content-title recent-achievements col-12" style="text-align: center;">
|
||||
<p>{{ course.name }}</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.view-achievements-button {
|
||||
background-color: #DC3713;
|
||||
border: none;
|
||||
color: white;
|
||||
padding: 5px 8px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
border-radius: 30px;
|
||||
margin-top:12px;
|
||||
|
||||
}
|
||||
|
||||
.recent-achievements {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.achievement-icon {
|
||||
text-align: center;
|
||||
color: #bec2c6;;
|
||||
}
|
||||
|
||||
.horizontal-separator {
|
||||
border-bottom: 1px solid grey;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1200px) {
|
||||
.recent-achievements {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
.view-achievements-button {
|
||||
font-size: 9px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
@ -0,0 +1,44 @@
|
||||
<div id="{{ course.progress }}" class="{{ class }}">
|
||||
<div class="np-card course-card">
|
||||
<div class="np-card-container">
|
||||
{% if course.ribbon %}
|
||||
<div class="np-card-ribbon">
|
||||
{{ course.ribbon }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<img class="np-card-image" alt="{{ course.name }}" src="{{ course.image_url }}">
|
||||
<div class="np-card-content np-card-content-vertical np-card-padding">
|
||||
<h3 class="np-card-content-title course-card-title" style="min-height: 48px;">
|
||||
{{ course.name }}
|
||||
</h3>
|
||||
<div class="np-card-content-subtitle">
|
||||
{{ course.instructor_names }}
|
||||
</div>
|
||||
<div class="np-card-content-footer">
|
||||
<div style="display: flex; flex-direction: column-reverse;" class="np-card-content-progress np-button-color">
|
||||
<span>{% t shared.progress, count: course.progress %}</span>
|
||||
<span style="color: gray; text-transform: none;">{{course.properties.course_time}} Mins</span>
|
||||
</div>
|
||||
{% capture course_path %}{% route course, id: course.id %}{% endcapture %}
|
||||
{% if course.has_to_restart? %}
|
||||
{% include "course_version_outdated_popup", path: course_path %}
|
||||
{% endif %}
|
||||
<a class="np-button np-button-wide" href="{{ course_path }}">
|
||||
{% t shared.view %}
|
||||
</a>
|
||||
{% if current_person.signed_in? %}
|
||||
{% if course.completed? %}
|
||||
<span class="progress-info" style="display: none;">Completed</span>
|
||||
{% else %}
|
||||
{% if course.progress == 0%}
|
||||
<span class="progress-info" style="display: none;">Not started</span>
|
||||
{% else %}
|
||||
<span class="progress-info" style="display: none;">Started</span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,88 @@
|
||||
{% assign total_progress = 0 %}
|
||||
{% assign completed_progress = 0 %}
|
||||
|
||||
{% for item in learning_path.items %}
|
||||
{% if item.course? %}
|
||||
{% assign total_progress = total_progress | plus: 100 %}
|
||||
|
||||
{% assign completed_progress = completed_progress | plus: item.progress %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% assign total_progress = total_progress | times: 0.01 %}
|
||||
{% assign calculated_progress = completed_progress | divided_by: total_progress %}
|
||||
|
||||
<div class="np-card-container">
|
||||
<div class="np-learning-path">
|
||||
<img
|
||||
alt="{{ learning_path.name }}"
|
||||
class="np-card-image np-learning-path-image"
|
||||
src="{{ learning_path.image_url }}"
|
||||
/>
|
||||
<div class="np-card-text-wrapper">
|
||||
<div class="np-hidden-desktop np-card-header">
|
||||
<i class="np-card-header-icon far fa-road"></i>
|
||||
<div class="np-card-header-type">{% t shared.learning_path.title %}</div>
|
||||
<div class="np-hidden-desktop np-card-header-items-count">
|
||||
{{ learning_path.items.count }} {% t .items %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="np-hidden-mobile np-card-header">
|
||||
<div class="np-card-header-type">{% t shared.learning_path.title %}</div>
|
||||
<i class="np-card-header-icon far fa-road"></i>
|
||||
</div>
|
||||
|
||||
<div class="np-card-content np-card-padding np-card-content-vertical">
|
||||
<div>
|
||||
<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>
|
||||
<div>
|
||||
<div class="np-hidden-mobile np-card-content-progress
|
||||
np-button-color">
|
||||
{% comment %}{% t shared.progress, count: learning_path.progress %}{% endcomment %}
|
||||
{% if calculated_progress < 1 %}
|
||||
Not Started
|
||||
{% else %}
|
||||
{{calculated_progress | ceil }}% Completed
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="np-hidden-mobile np-card-progress-bar-container">
|
||||
<div style="width: {{ calculated_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>
|
||||
<div class="np-card-stack">
|
||||
<div class="np-card-stack-level-1"></div>
|
||||
<div class="np-card-stack-level-2"></div>
|
||||
</div>
|
||||
@ -0,0 +1,25 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
if ($('.achivements-carousel').length > 0) {
|
||||
$('.achivements-carousel').slick({
|
||||
slidesToShow: 1,
|
||||
slidesToScroll: 1,
|
||||
dots: true,
|
||||
infinite: true,
|
||||
autoplay: false,
|
||||
autoplaySpeed: 5000,
|
||||
cssEase: 'linear',
|
||||
prevArrow: '<svg viewBox="0 0 20 20" class="_1ycOA _left"><path d="M12 16a.997.997 0 0 1-.707-.293l-5-5a.999.999 0 0 1 0-1.414l5-5a.999.999 0 1 1 1.414 1.414L8.414 10l4.293 4.293A.999.999 0 0 1 12 16" fill-rule="evenodd"></path></svg>',
|
||||
nextArrow: '<svg viewBox="0 0 20 20" class="_1ycOA _right"><path d="M8 16a.999.999 0 0 1-.707-1.707L11.586 10 7.293 5.707a.999.999 0 1 1 1.414-1.414l5 5a.999.999 0 0 1 0 1.414l-5 5A.997.997 0 0 1 8 16" fill-rule="evenodd"></path></svg>',
|
||||
responsive: [{
|
||||
breakpoint: 991,
|
||||
settings: {
|
||||
|
||||
dots: false
|
||||
}
|
||||
}]
|
||||
})
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@ -0,0 +1,60 @@
|
||||
<div class="np-dashboard-resources">
|
||||
{% if courses.enrolled.any? %}
|
||||
<div class="np-card">
|
||||
<div class="np-card-container">
|
||||
<div class="np-card-content-training-event">
|
||||
{% assign countComplete = 0 %}
|
||||
{% assign countInProgress = 0 %}
|
||||
{% assign countNotStarted = 0 %}
|
||||
{% assign countTotal = 0 | times: 1.0 %}
|
||||
{% for course in courses.enrolled %}
|
||||
{% assign countTotal = countTotal | plus: 1 %}
|
||||
{% if course.progress == 100 %}
|
||||
{% assign countComplete = countComplete | plus: 1 %}
|
||||
{% endif %}
|
||||
{% if course.progress > 0 and course.progress < 100 %}
|
||||
{% assign countInProgress = countInProgress | plus: 1 %}
|
||||
{% endif %}
|
||||
{% if course.progress == 0 %}
|
||||
{% assign countNotStarted = countNotStarted | plus: 1 %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<ul class="circle-list">
|
||||
<li>
|
||||
{% include "progress_circle", name:'Completed' , count: countComplete , total: countTotal %}
|
||||
</li>
|
||||
<li>
|
||||
{% include "progress_circle", name:'In Progress' , count: countInProgress , total: countTotal %}
|
||||
</li>
|
||||
<li>
|
||||
{% include "progress_circle", name:'Not Started' , count: countNotStarted , total: countTotal %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{% capture message %}
|
||||
{% t shared.zero_state.courses.index,
|
||||
key: current_school.course_vocabulary
|
||||
%}
|
||||
{% endcapture %}
|
||||
{% include "courses_zero_state", message: message %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
.circle-list {
|
||||
list-style-type: none !important;
|
||||
}
|
||||
.align-center {
|
||||
align-items: center !important;
|
||||
}
|
||||
.progress-ring__circle {
|
||||
transition: stroke-dashoffset 0.35s;
|
||||
}
|
||||
.progress-ring__circle {
|
||||
transition: stroke-dashoffset 0.35s;
|
||||
transform: rotate(-90deg);
|
||||
transform-origin: center;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,17 @@
|
||||
{% 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 %}
|
||||
<div
|
||||
class="{{ class }}"
|
||||
>
|
||||
{{ activity.title }}
|
||||
</div>
|
||||
{% endif %}
|
||||
@ -0,0 +1,11 @@
|
||||
<div class="np-hidden-mobile">
|
||||
<div class="row">
|
||||
<div class="carousel">
|
||||
{% for course in courses.enrolled %}
|
||||
<div>
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,11 @@
|
||||
<div class="np-hidden-mobile">
|
||||
<div class="row">
|
||||
<div class="carousel">
|
||||
{% for course in courses.in_catalog %}
|
||||
<div>
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,26 @@
|
||||
<h3 class="np-card-heading">
|
||||
{% t .header %}
|
||||
</h3>
|
||||
<div class="np-flex instructors-container">
|
||||
{% for instructor in course.instructors %}
|
||||
<div class="np-content-instructors-content-item">
|
||||
<img src="{{ instructor.avatar_url }}" class="np-content-instructors-content-image" alt="{{ instructor.name }}" />
|
||||
<div class="np-content-instructors-content-description">
|
||||
<div class="np-content-instructors-content-name">
|
||||
{{ instructor.name }}
|
||||
</div>
|
||||
<div class="np-content-instructors-content-info np-text-light">
|
||||
{{ instructor.title }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@media (min-width: 768px) and (max-width: 1500px) {
|
||||
.instructors-container {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,87 @@
|
||||
<div class="np-card-container np-card-padding-large in-course-sections in-course-condenser">
|
||||
{% 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 in-course-sections in-course-condenser">
|
||||
{% include "course_description" %}
|
||||
</div>
|
||||
<div class="np-card-container np-card-padding np-card-spacing in-course-sections in-course-condenser">
|
||||
{% include "course_outline" %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="np-card-container np-card-padding np-card-spacing in-course-sections in-course-condenser">
|
||||
{% include "course_outline" %}
|
||||
</div>
|
||||
<div class="np-card-container np-card-padding np-card-spacing in-course-sections in-course-condenser">
|
||||
{% include "course_description" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if course.categories.any? %}
|
||||
<div class="np-card-container np-card-padding np-card-spacing in-course-sections in-course-condenser">
|
||||
{% include "course_categories" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if course.instructors.any? %}
|
||||
<div class="np-card-container np-card-padding np-card-spacing in-course-sections in-course-condenser">
|
||||
{% include "course_instructors" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if course.events.any? %}
|
||||
<div class="np-card-container np-card-padding np-card-spacing in-course-sections in-course-condenser">
|
||||
{% include "course_events" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="course-start-button in-course-start-button">
|
||||
{% 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 %}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.in-course-sections{
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.in-course-start-button{
|
||||
width: 50%;
|
||||
padding-top: 1.25rem;
|
||||
margin: 0 auto;
|
||||
float: none;
|
||||
}
|
||||
|
||||
.in-course-condenser{
|
||||
padding-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,47 @@
|
||||
<div class="np-top-cta-progress-content">
|
||||
{%comment%}<div class="np-top-cta-progress-title np-text-title">
|
||||
{% t .header %}
|
||||
</div>{%endcomment%}
|
||||
<div class="np-top-cta-progress-text
|
||||
{% if course.completed? %} np-color-success {% else %} np-button-color {% endif %}
|
||||
">
|
||||
{% t shared.progress, count: course.progress %}
|
||||
</div>
|
||||
|
||||
<div class="np-progress-bar-container">
|
||||
<div
|
||||
style="width: {{ course.progress }}%"
|
||||
class="np-button-background-color np-card-progress-bar">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="course-start-button">
|
||||
{% 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 %}
|
||||
</div>
|
||||
@ -0,0 +1,28 @@
|
||||
{% assign view_more_counter = 0 %}
|
||||
{% if courses.in_catalog.any? %}
|
||||
<div class="np-catalog-courses row row-with-thumbnails">
|
||||
{% for course in courses.in_catalog %}
|
||||
{% if view_more_counter < 3%}
|
||||
{% assign view_more_counter = view_more_counter | plus: 1%}
|
||||
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content">
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content view-more-hidden">
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% endif%}
|
||||
{% endfor %}
|
||||
|
||||
{% if view_more_counter >= 3%}
|
||||
<button class="np-top-button np-button-font-color np-button np-button-big view-more-button" onclick="viewMore()">View More</button>
|
||||
{% endif %}
|
||||
</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,14 @@
|
||||
{% if courses.enrolled.any? %}
|
||||
<div id="dash-sort" class="row row-with-thumbnails">
|
||||
{% for course in courses.enrolled %}
|
||||
{% include "cards_course" with course, class: "col-xs-12 col-sm-6 np-stretch-content" %}
|
||||
{% 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,168 @@
|
||||
<div class="mo-search-wrapper">
|
||||
<select class="dashboard-filter-select filter-wrapper uk-text-bold mo-active-filter-prog"
|
||||
id='course-by-status-select'>
|
||||
<option class="mo-filter-item" value="none" style="padding-bottom:10px" selected disabled>Filter by progress
|
||||
</option>
|
||||
<option class="mo-filter-item" value="all">All</option>
|
||||
<option class="mo-filter-item" value="not-started">Not Started</option>
|
||||
<option class="mo-filter-item" value="in-progress">In Progress</option>
|
||||
<option class="mo-filter-item" value="completed">Completed</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
let selectByStatusOfCourse = document.getElementById('course-by-status-select')
|
||||
|
||||
selectByStatusOfCourse.addEventListener('click', filterCoursesByStatus())
|
||||
|
||||
function filterCoursesByStatus() {
|
||||
setTimeout(() => {
|
||||
if ($('.carousel').parent().parent().is(":visible"))
|
||||
filterCourseCardsInCarousel()
|
||||
else
|
||||
filterCourseCardsInCatalog()
|
||||
}, 100);
|
||||
}
|
||||
|
||||
function filterCourseCardsInCatalog() {
|
||||
$(".dashboard-filter-select").change(function () {
|
||||
let numberOfCoursesInGrid = 0
|
||||
hideNoCourseMessage()
|
||||
showAllCardsInCatalog()
|
||||
let statusOfFilter = this.value
|
||||
$('.np-catalog-courses').children().each(function () {
|
||||
let courseCard = $(this)
|
||||
let courseProgress = courseCard.find('.progress-info').text()
|
||||
courseCard.addClass('col-lg-4')
|
||||
if (statusOfFilter === "in-progress") {
|
||||
if (courseProgress !== "Started")
|
||||
hideCardInCatalog(courseCard)
|
||||
else
|
||||
numberOfCoursesInGrid++
|
||||
}
|
||||
else if (statusOfFilter === "not-started") {
|
||||
if (courseProgress !== "Not started")
|
||||
hideCardInCatalog(courseCard)
|
||||
else
|
||||
numberOfCoursesInGrid++
|
||||
}
|
||||
else if (statusOfFilter === "completed") {
|
||||
if (courseProgress !== "Completed")
|
||||
hideCardInCatalog(courseCard)
|
||||
else
|
||||
numberOfCoursesInGrid++
|
||||
}
|
||||
})
|
||||
if (numberOfCoursesInGrid === 1) {
|
||||
$('.np-catalog-courses').children().each(function () {
|
||||
$(this).removeClass('col-lg-4')
|
||||
})
|
||||
}
|
||||
else if (numberOfCoursesInGrid === 0) {
|
||||
if (statusOfFilter === "all") {
|
||||
hideNoCourseMessage()
|
||||
}
|
||||
else {
|
||||
showNoCourseMessage()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function showNoCourseMessage() {
|
||||
$('.no-course-message').css('display', 'block')
|
||||
}
|
||||
|
||||
function hideNoCourseMessage() {
|
||||
$('.no-course-message').css('display', 'none')
|
||||
}
|
||||
|
||||
|
||||
function filterCourseCardsInCarousel() {
|
||||
setTimeout(() => {
|
||||
addCourseSlideClass();
|
||||
}, 100);
|
||||
$("#course-by-status-select").change(function () {
|
||||
let numberOfCoursesInCarousel = 0
|
||||
hideNoCourseMessage()
|
||||
showAllCardsInCarousel()
|
||||
let status = this.value
|
||||
$('.carousel').slick('unslick')
|
||||
$(".progress-info").each(function () {
|
||||
let progress = $(this).text()
|
||||
if (status === "in-progress") {
|
||||
if (progress !== "Started")
|
||||
hideCardInCarousel($(this))
|
||||
else
|
||||
numberOfCoursesInCarousel++
|
||||
}
|
||||
else if (status === "not-started") {
|
||||
if (progress !== "Not started")
|
||||
hideCardInCarousel($(this))
|
||||
else
|
||||
numberOfCoursesInCarousel++
|
||||
}
|
||||
else if (status === "completed") {
|
||||
if (progress !== "Completed")
|
||||
hideCardInCarousel($(this))
|
||||
else
|
||||
numberOfCoursesInCarousel++
|
||||
}
|
||||
})
|
||||
if (numberOfCoursesInCarousel === 0) {
|
||||
if (status === "all") {
|
||||
hideNoCourseMessage()
|
||||
initializeCarousel('.carousel', 3);
|
||||
}
|
||||
else {
|
||||
showNoCourseMessage()
|
||||
}
|
||||
}
|
||||
else
|
||||
initializeCarousel('.carousel', 3);
|
||||
});
|
||||
}
|
||||
|
||||
function addCourseSlideClass() {
|
||||
$(".slick-track").children().each(function () {
|
||||
$(this).addClass("course-slide")
|
||||
})
|
||||
}
|
||||
|
||||
function hideCardInCarousel(progressInfo) {
|
||||
progressInfo.parents().each(function () {
|
||||
var courseCard = $(this)
|
||||
if (courseCard.hasClass("course-slide")) {
|
||||
courseCard.css("display", "none")
|
||||
courseCard.appendTo(courseCard.parent().parent());
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function showAllCardsInCarousel() {
|
||||
$(".carousel").each(function () {
|
||||
var carousel = $(this)
|
||||
carousel.siblings().each(function () {
|
||||
var sibling = $(this)
|
||||
if (sibling.hasClass("course-slide")) {
|
||||
sibling.css('display', 'block')
|
||||
sibling.appendTo(carousel)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function hideCardInCatalog(courseCard) {
|
||||
courseCard.css('display', 'none')
|
||||
}
|
||||
|
||||
function showAllCardsInCatalog() {
|
||||
$('.np-catalog-courses').children().each(function () {
|
||||
$(this).css('display', 'block')
|
||||
})
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
hideNoCourseMessage()
|
||||
});
|
||||
</script>
|
||||
227
NP_Custom_Templates/customer_templates/Skuid/_footer.html.liquid
Normal file
227
NP_Custom_Templates/customer_templates/Skuid/_footer.html.liquid
Normal file
@ -0,0 +1,227 @@
|
||||
<footer class="np-footer">
|
||||
<div class="np-footer-top custom-footer-divider mobile-footer">
|
||||
<div>
|
||||
<span>© {{"now" | date: "%Y"}} Skuid, Inc.</span>
|
||||
<span class="np-hidden-mobile inline-text" style="margin-left: 15px;">
|
||||
<a class="policy-links" href="{{ current_school.terms_of_service_url }}">Terms of Use</a> | <a class="policy-links" href="https://www.skuid.com/legal/privacy-policy">Privacy Policy</a></span>
|
||||
</div>
|
||||
<div>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{% include "carousels" %}
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
fixCorauselCrash('carousel')
|
||||
fixCorauselCrash('lp-carousel')
|
||||
})
|
||||
|
||||
function fixCorauselCrash(htmlClass) {
|
||||
if ($('.' + htmlClass).width() < 150) {
|
||||
setTimeout(function () {
|
||||
$('.' + htmlClass).slick('setPosition');
|
||||
}, 600);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@media (max-width: 2499px) {
|
||||
.np-footer {
|
||||
padding-left: 21%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2500px) {
|
||||
.np-footer {
|
||||
padding-left: 16%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
{% endif %}
|
||||
|
||||
<style>
|
||||
.policy-links {
|
||||
font-family: Inter;
|
||||
text-decoration: none;
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
}
|
||||
|
||||
.np-footer {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.custom-footer-divider {
|
||||
border-top: 1px solid #D7D8DA;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
#ReadMoreButon {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.np-footer {
|
||||
padding-left: 0;
|
||||
width: 90%;
|
||||
margin: 0 5%;
|
||||
}
|
||||
|
||||
.custom-footer-divider {
|
||||
font-size: 0.9rem !important;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.np-footer-social-links-list {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.mobile-footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
.popup-button-container {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.popup-button {
|
||||
width: 160px;
|
||||
height: 50px;
|
||||
}
|
||||
@media (max-width:768px) {
|
||||
.popup-button {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.popup-button-container {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.overlay {
|
||||
z-index: 1000;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: -100%;
|
||||
left: -2%;
|
||||
right: -2%;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
transition: opacity 500ms;
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
}
|
||||
.overlay:target {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
.popup {
|
||||
margin: 70px auto;
|
||||
padding: 20px;
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
width: 30%;
|
||||
position: relative;
|
||||
transition: all 5s ease-in-out;
|
||||
}
|
||||
.popup h2 {
|
||||
margin-top: 0;
|
||||
color: #333;
|
||||
font-family: F37 Moon !important;;
|
||||
}
|
||||
.popup .close {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 30px;
|
||||
transition: all 200ms;
|
||||
font-size: 30px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
color: #333;
|
||||
}
|
||||
.popup .close:hover {
|
||||
color: #06D85F;
|
||||
}
|
||||
.popup .content {
|
||||
max-height: 30%;
|
||||
overflow: auto;
|
||||
font-family: F37 Moon !important;
|
||||
}
|
||||
@media screen and (max-width: 700px) {
|
||||
.box {
|
||||
width: 70%;
|
||||
}
|
||||
.popup {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
{%comment%} View More Styles/Scripts {%endcomment%}
|
||||
<style>
|
||||
.view-more-hidden{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.view-more-button{
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 767px){
|
||||
.view-more-hidden{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.view-more-button{
|
||||
display: block;
|
||||
width: 50%;
|
||||
margin: 0 auto;
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<script>
|
||||
let viewMore = () => {
|
||||
let additionalCourses = document.querySelectorAll('.view-more-hidden');
|
||||
let viewMoreButton = document.querySelector('.view-more-button');
|
||||
|
||||
viewMoreButton.style.display = 'none';
|
||||
|
||||
additionalCourses.forEach((courseNode) => {
|
||||
courseNode.style.display = 'block';
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
window.Appcues.identify(
|
||||
'{{current_person.id}}',
|
||||
{
|
||||
accountId: '{{current_person.id}}',
|
||||
firstName: '{{current_person.first_name}}',
|
||||
lastName: '{{current_person.last_name}}',
|
||||
email: '{{current_person.email}}'
|
||||
}
|
||||
);
|
||||
</script>
|
||||
@ -0,0 +1,23 @@
|
||||
{% styles default %}
|
||||
{% styles colors %}
|
||||
{% styles custom %}
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
|
||||
<script
|
||||
src="https://code.jquery.com/jquery-3.5.1.min.js"
|
||||
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
|
||||
crossorigin="anonymous"></script>
|
||||
|
||||
<!-- Add the slick-theme.css if you want default styling -->
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.1/slick/slick.css"/>
|
||||
<!-- Add the slick-theme.css if you want default styling -->
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.1/slick/slick-theme.css"/>
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.4/tiny-slider.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.2/min/tiny-slider.js"></script>
|
||||
<!-- Appcues code snippet -->
|
||||
<script type="text/javascript">
|
||||
window.AppcuesSettings = {enableURLDetection: true}
|
||||
</script>
|
||||
<script src="//fast.appcues.com/69414.js"></script>
|
||||
574
NP_Custom_Templates/customer_templates/Skuid/_header.html.liquid
Normal file
574
NP_Custom_Templates/customer_templates/Skuid/_header.html.liquid
Normal file
@ -0,0 +1,574 @@
|
||||
{% assign redirect = true %}
|
||||
{% if current_person.signed_in? %}
|
||||
{% for group in current_person.groups %}
|
||||
{% if group.id == "29ae12e6-f740-4190-a5c2-a7e12e87926f" or group.id == "aa36069f-e354-4dbe-9972-9ce70ad146d7" or group.id == "8cd6ec9c-101e-4b1a-82c7-77dac583a1f5" %}
|
||||
{% assign redirect = false %}
|
||||
{% break %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if current_person.signed_in? and redirect %}
|
||||
{% unless current_person.email contains '+preview-' %}
|
||||
<script>
|
||||
if (window.location.pathname != '/app/sign-up-follow-up' && window.location.pathname != '/terms_agreement/new'){
|
||||
new_url = '/app/sign-up-follow-up'.concat('?redirect_uri=', encodeURIComponent(window.location.toString().split(window.location.hostname)[1]));
|
||||
window.location.replace(new_url);
|
||||
}
|
||||
</script>
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
|
||||
<header id="header" class="np-header np-header-color">
|
||||
<div class="np-header-content">
|
||||
<div class="np-hidden-desktop np-header-mobile-menu-nav">
|
||||
{% if current_person.signed_in? %}
|
||||
<button data-toggle-class="np-hidden"
|
||||
class="np-header-mobile-menu-nav-button fal fa-times np-hidden np-header-font-color" data-toggle-target=".np-header-mobile-avatar-menu,
|
||||
.np-header-mobile-menu-content, .np-main, .np-footer"></button>
|
||||
<button data-test="open-mobile-menu" data-toggle-class="np-hidden"
|
||||
class="np-header-mobile-menu-nav-button np-header-mobile-avatar-menu"
|
||||
data-toggle-target=".np-button-mobile-content, .fa-times, .np-header-mobile-menu-content, .np-main, .np-footer">
|
||||
<i style="color: #005CB9;" class="far fa-bars"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if current_person.signed_in? %}
|
||||
{% if current_school.logo_url %}
|
||||
<div class="logo-container">
|
||||
<h1 class="np-header-logo" style="flex-grow: 0.1 !important">
|
||||
<a href="{% route home %}">
|
||||
<img alt="{{ current_school.name }}" class="np-header-logo-image np-hidden-mobile" src="{{ current_school.logo_url }}" />
|
||||
<img alt="{{ current_school.name }}" class="np-header-logo-image np-hidden-desktop" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/Skuid+Logomark_Primary+1.svg" />
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
{% else %}
|
||||
<a href="{% route home %}" class="np-school-name np-header-font-color">
|
||||
{{ current_school.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<div class="np-hidden-mobile form-group has-search" style="margin-left: 3%;">
|
||||
<form action="{% route search %}" method="get" data-test="desktop-search">
|
||||
<span class="fa fa-search form-control-feedback"></span>
|
||||
<input aria-label="{% t .search %}" class="form-control" type="text" name="q" placeholder="search courses" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="np-hidden-mobile np-header-desktop-nav">
|
||||
<ul class="np-header-desktop-nav-list">
|
||||
{% for website_navigation in navigations.header_navigations_external %}
|
||||
<li class="np-header-desktop-nav-item">
|
||||
<a href="{{ website_navigation.path }}" class="np-header-desktop-nav-link np-header-font-color"
|
||||
target="_blank">
|
||||
{{ website_navigation.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<div class="np-hidden-mobile np-header-avatar" style="align-items: center;">
|
||||
<div class="points-badges-avatar">
|
||||
{% if current_person.properties.learner_points contains "missing property" %}
|
||||
<p class="points-display"> 0 Points </p>
|
||||
{% else %}
|
||||
<p class="points-display"> {{ current_person.properties.learner_points }} Points </p>
|
||||
{% endif %}
|
||||
{% if current_person.properties.learner_badges contains "missing property" %}
|
||||
<p class="badges-display"> 0 Badges </p>
|
||||
{% else %}
|
||||
<p class="badges-display"> {{ current_person.properties.learner_badges }} Badges </p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="points-badges-avatar">
|
||||
<button class="np-header-avatar-button avatar-container" data-test="open-desktop-menu"
|
||||
data-toggle-class-on-target="np-hidden" data-toggle-target=".np-header-avatar-tooltip" data-toggle-outside>
|
||||
<i class="fal fa-angle-down" style="font-size: 20px;"></i>
|
||||
<p style="margin-top: revert;"> {{current_person.display_name }} </p>
|
||||
<img alt="{{ current_person.name }}" class="np-header-avatar-image avatar-image"
|
||||
src="{{ current_person.avatar_url }}">
|
||||
</button>
|
||||
</div>
|
||||
<div class="np-header-avatar-tooltip np-hidden" role="tooltip">
|
||||
<span class="np-header-avatar-tooltip-arrow-up"></span>
|
||||
<div class="np-header-avatar-tooltip-learner">
|
||||
<div class="np-header-avatar-tooltip-learner-name">
|
||||
{{ current_person.display_name }}
|
||||
</div>
|
||||
<div class="np-header-avatar-tooltip-learner-email">
|
||||
{{ current_person.email }}
|
||||
</div>
|
||||
</div>
|
||||
<nav class="np-header-avatar-tooltip-navigation">
|
||||
{% unless current_school.sso_active? %}
|
||||
<a class="np-header-avatar-tooltip-navigation-link" href="{% route account %}">
|
||||
{% t .profile_settings %}
|
||||
</a>
|
||||
{% endunless %}
|
||||
<a class="np-header-avatar-tooltip-navigation-link" href="mailto:{{ website_footer.school_customer_service_email }}">
|
||||
Need help?
|
||||
</a>
|
||||
<a class="np-header-avatar-tooltip-navigation-link np-danger" href="{% route logout %}">
|
||||
{% t .sign_out %}
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div class="logo-container">
|
||||
<h1 class="np-header-logo" style="flex-grow: 0.1 !important">
|
||||
<a href="{% route home %}">
|
||||
<img alt="{{ current_school.name }}" class="np-header-logo-image np-hidden-mobile" src="{{ current_school.logo_url }}" />
|
||||
<img alt="{{ current_school.name }}" class="np-header-logo-image np-hidden-desktop" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/Skuid+Logomark_Primary+1.svg" />
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="np-hidden-mobile form-group has-search" style="margin-left: 3%;">
|
||||
<form action="{% route search %}" method="get" data-test="desktop-search">
|
||||
<span class="fa fa-search form-control-feedback"></span>
|
||||
<input aria-label="{% t .search %}" class="form-control" type="text" name="q" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<a class="np-header-sign-in np-header-desktop-nav-link np-header-font-color" style="font-size: 16px;" aria-label="{% t shared.sign_in %}"
|
||||
href="{% route login %}">
|
||||
Login
|
||||
</a>
|
||||
<a class="np-header-sign-in np-header-desktop-nav-link np-header-font-color np-button" style="margin-left: 18%; color: white; border-radius: 32px; font-size: 16px;" aria-label="{% t shared.sign_up %}"
|
||||
href="{% route sign_up %}">
|
||||
Register
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="np-hidden-desktop">
|
||||
<div class="np-header-mobile-menu-content np-hidden">
|
||||
<div class="mobile-header-dropdown">
|
||||
{% if current_school.logo_url %}
|
||||
<div>
|
||||
<h1 class="np-header-logo" style="flex-grow: 0.1 !important">
|
||||
<a href="{% route home %}">
|
||||
<img alt="{{ current_school.name }}" class="np-header-logo-image" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/Skuid+Logomark_Primary+1.svg" />
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
{% endif%}
|
||||
<div>
|
||||
<button class="np-hidden np-button-mobile-content" id='closing-button' data-test="close-mobile-menu" data-toggle-class="np-hidden" data-toggle-target=".np-header-mobile-avatar-menu, .fa-times, .np-header-mobile-menu-content, .np-main, .np-footer">
|
||||
<input type="image" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/OpenNavIcon.svg" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{% if current_person.signed_in? %}
|
||||
<div class="user-container-mobile">
|
||||
|
||||
<a href="{% route account %}" class="np-header-mobile-menu-content-button mobile-header-link" style="border-bottom: none;">
|
||||
<img alt="{{ current_person.name }}" class="np-header-mobile-menu-content-avatar"
|
||||
src="{{ current_person.avatar_url }}" />
|
||||
<div class="np-header-mobile-menu-content-name">
|
||||
{{ current_person.name }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="np-header-mobile-menu-content-nav">
|
||||
<form class="np-header-search" data-test="mobile-search" method="get" action="{% route search %}">
|
||||
<i class="np-header-search-icon far fa-search"></i>
|
||||
<input aria-label="{% t .search %}" class="np-header-search-input" type="text" name="q"
|
||||
placeholder="{% t .search %}" />
|
||||
</form>
|
||||
{% for link in navigations.sub_navigation %}
|
||||
{% if link.label == "Events" or link.label == "Dashboard" %}
|
||||
{% elsif link.label == "Catalog" %}
|
||||
<a href="{{ link.url }}" class="np-header-mobile-menu-content-button mobile-header-link">
|
||||
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon custom-navigation-content-item-icon"></i>
|
||||
Courses
|
||||
</a>
|
||||
{% elsif link.label == "Home" %}
|
||||
<a href="{{ link.url }}" class="np-header-mobile-menu-content-button mobile-header-link">
|
||||
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon custom-navigation-content-item-icon"></i>
|
||||
Home
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ link.url }}" class="np-header-mobile-menu-content-button mobile-header-link">
|
||||
<i class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon custom-navigation-content-item-icon"></i>
|
||||
{{ link.label }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{%comment%}
|
||||
<div class="np-header-mobile-menu-content-line"></div>
|
||||
{% unless current_school.sso_active? %}
|
||||
<a class="np-header-mobile-menu-content-button" href="{% route account %}">
|
||||
{% t .profile_settings %}
|
||||
</a>
|
||||
{% endunless %}
|
||||
<a class="np-header-mobile-menu-content-button np-danger" href="{% route logout %}">
|
||||
{% t .sign_out %}
|
||||
</a>
|
||||
{%endcomment%}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include "messages" %}
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<style>
|
||||
|
||||
@media (min-width: 769px) and (max-width: 1024px) {
|
||||
body {
|
||||
transform: scaleX(0.962014);
|
||||
background: linear-gradient(90deg, #ebf5ff 230px, #fff 230px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1025px) and (max-width: 2500px) {
|
||||
body {
|
||||
transform: scaleX(0.962014);
|
||||
background: linear-gradient(90deg, #ebf5ff 293px, #fff 293px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2501px) {
|
||||
body {
|
||||
transform: scaleX(0.962014);
|
||||
background: linear-gradient(90deg, #ebf5ff 350px, #fff 350px);
|
||||
}
|
||||
}
|
||||
|
||||
.np-main {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
body {
|
||||
background: #fff;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.np-header-content {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-nav {
|
||||
position: relative !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 769px) and (max-width: 1440px) {
|
||||
.np-main {
|
||||
margin-left: 9% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1440px) and (max-width: 2500px) {
|
||||
.np-main {
|
||||
margin-left: 8% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 769px) and (max-width: 1900px) {
|
||||
.np-card.np-no-horizontal-padding {
|
||||
padding-left: 25px;
|
||||
padding-right: 25px;
|
||||
}
|
||||
|
||||
.np-learning-paths-main > .np-resource-title,
|
||||
.np-learning-paths-main > .np-resource-subtitle,
|
||||
.np-catalog-header {
|
||||
padding-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.np-footer {
|
||||
padding-left: 24%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
{% endif %}
|
||||
|
||||
{% unless current_person.signed_in? %}
|
||||
<style>
|
||||
@media screen and (min-width: 769px) {
|
||||
.np-header {
|
||||
background: transparent;
|
||||
padding-left: 3%;
|
||||
padding-right: 3%;
|
||||
height: 85px;
|
||||
}
|
||||
|
||||
.np-card.np-no-horizontal-padding {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
.np-header-content {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.logo-container {
|
||||
padding: 0px 50px 0px 5px;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: 1px solid #005CB9 !important;
|
||||
}
|
||||
|
||||
.np-homepage-hero-image {
|
||||
max-height: fit-content;
|
||||
}
|
||||
|
||||
.np-header-logo {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.np-header-content {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.np-header-sign-in {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
{% endunless %}
|
||||
|
||||
<style>
|
||||
@media (min-width: 769px) and (max-width: 1024px) {
|
||||
.np-header-logo-image {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.np-header-search-input:focus {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#closing-button {
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content-nav {
|
||||
padding: 0 1.25rem;
|
||||
}
|
||||
|
||||
.mobile-header-link {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 25px;
|
||||
margin-top: 1rem;
|
||||
border-bottom: 1.08108px solid #BFD6ED;
|
||||
padding-left: 6px;
|
||||
padding-right: 10px;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
color: black;
|
||||
font-family: "F37 Moon";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 19.4595px;
|
||||
}
|
||||
|
||||
.np-header {
|
||||
background-color: #EBF5FF;
|
||||
}
|
||||
|
||||
.np-header-content {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content {
|
||||
background-color: #EBF5FF;
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content-avatar {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content-name {
|
||||
font-family: "F37 Moon";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 19.4595px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.np-header-search-input {
|
||||
font-family: "F37 Moon";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 19.4595px;
|
||||
color: black;
|
||||
border: none;
|
||||
padding: 0 0 0 50px;
|
||||
background-color: #EBF5FF;
|
||||
}
|
||||
|
||||
.np-header-search-input::placeholder {
|
||||
color: black;
|
||||
font-family: "F37 Moon";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 19.4595px;
|
||||
}
|
||||
|
||||
@media (max-width:425px) {
|
||||
.np-header-mobile-menu-content {
|
||||
background-color: #EBF5FF;
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
.mobile-header-dropdown {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 88%;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.user-container-mobile {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 88%;
|
||||
justify-content: space-between;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1.08108px solid #BFD6ED;
|
||||
}
|
||||
|
||||
.np-header-search {
|
||||
background-color: #EBF5FF;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1.08108px solid #BFD6ED;
|
||||
}
|
||||
|
||||
.np-header-search-icon {
|
||||
color: black;
|
||||
left: 2%;
|
||||
top: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 426px) and (max-width: 768px) {
|
||||
.np-header-search-input {
|
||||
float: none;
|
||||
width: 100%;
|
||||
opacity: unset;
|
||||
|
||||
}
|
||||
|
||||
.np-header-search-input:focus {
|
||||
padding: 0;
|
||||
margin-left: 50px;
|
||||
width: 92%;
|
||||
}
|
||||
|
||||
.np-header-search-input:focus {
|
||||
padding: 0;
|
||||
margin-left: 50px;
|
||||
width: 92%;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content {
|
||||
background-color: #EBF5FF;
|
||||
padding-top: 0;
|
||||
margin-top: -55px;
|
||||
}
|
||||
|
||||
.mobile-header-dropdown {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 95%;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.user-container-mobile {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 95%;
|
||||
justify-content: space-between;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1.08108px solid #BFD6ED;
|
||||
}
|
||||
|
||||
.np-header-search {
|
||||
background-color: #EBF5FF;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1.08108px solid #BFD6ED;
|
||||
}
|
||||
|
||||
.np-header-search-icon {
|
||||
color: black;
|
||||
left: 1%;
|
||||
top: 2rem;
|
||||
}
|
||||
|
||||
.np-header-search-input::placeholder {
|
||||
padding-left: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 320px) {
|
||||
.np-header-search-input::placeholder {
|
||||
padding-left: 72%;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content {
|
||||
padding-top: 0;
|
||||
margin-top: -55px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 321px) and (max-width: 375px) {
|
||||
.np-header-search-input::placeholder {
|
||||
padding-left: 75%;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content {
|
||||
padding-top: 0;
|
||||
margin-top: -55px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 376px) and (max-width: 425px) {
|
||||
.np-header-search-input::placeholder {
|
||||
padding-left: 78%;
|
||||
}
|
||||
|
||||
.np-header-mobile-menu-content {
|
||||
padding-top: 0;
|
||||
margin-top: -55px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,62 @@
|
||||
{% comment %}This section of code will iterate over all courses in a learning path and average out the completion per course compared to the total of the LP {% endcomment %}
|
||||
{% assign total_progress = 0 %}
|
||||
{% assign completed_progress = 0 %}
|
||||
|
||||
{% for item in learning_path.items %}
|
||||
{% if item.course? %}
|
||||
{% assign total_progress = total_progress | plus: 100 %}
|
||||
|
||||
{% unless item.progress == 0 %}
|
||||
{% assign completed_progress = completed_progress | plus: item.progress %}
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% assign total_progress = total_progress | times: 0.01 %}
|
||||
{% assign calculated_progress = completed_progress | divided_by: total_progress %}
|
||||
|
||||
{% 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: {{ calculated_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 %}
|
||||
">
|
||||
{% if calculated_progress == 0 %}
|
||||
{% t shared.progress, count: learning_path.progress %}
|
||||
{% else %}
|
||||
{{calculated_progress | ceil }}% Completed
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<a
|
||||
class="np-top-button np-button-font-color np-button np-button-big"
|
||||
{% if learning_path.enrolled? %}
|
||||
{% if learning_path.current_item.course? %}
|
||||
href="{% route learning_path_course, id: learning_path.current_item.id, learning_path_id: learning_path.id %}"
|
||||
{% elsif learning_path.current_item.training_event? %}
|
||||
href="{% route training_session, id: learning_path.current_item.id %}"
|
||||
{% endif %}
|
||||
{% else %}
|
||||
href="{% route learning_path_enrollment, code: learning_path.enrollment_code %}"
|
||||
{% endif %}
|
||||
>
|
||||
{% if learning_path.enrolled? == false %}
|
||||
{% t shared.enroll %}
|
||||
{% elsif calculated_progress == 0 %}
|
||||
{% t shared.learning_path.start %}
|
||||
{% elsif calculated_progress == 100 %}
|
||||
{% t shared.learning_path.view %}
|
||||
{% else %}
|
||||
{% t shared.continue %}
|
||||
{% endif %}
|
||||
</a>
|
||||
@ -0,0 +1,11 @@
|
||||
<div class="np-hidden-mobile">
|
||||
<div class="row">
|
||||
<div class="lp-carousel">
|
||||
{% for learning_path in learning_paths.available %}
|
||||
<div>
|
||||
{% include "cards_learning_path" with learning_path %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,27 @@
|
||||
<div class="np-learning-paths-resources">
|
||||
{% if items.any? %}
|
||||
{% assign view_more_counter = 0 %}
|
||||
{% for learning_path in items %}
|
||||
{% if view_more_counter < 1%}
|
||||
{% assign view_more_counter = view_more_counter | plus: 1%}
|
||||
<div class="np-card np-no-horizontal-padding">
|
||||
{% include "cards_learning_path" with learning_path %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="np-card np-no-horizontal-padding view-more-hidden">
|
||||
{% include "cards_learning_path" with learning_path %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if view_more_counter >= 1%}
|
||||
<button class="np-top-button np-button-font-color np-button np-button-big view-more-button" onclick="viewMore()">View More</button>
|
||||
{% endif %}
|
||||
{% 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,16 @@
|
||||
<div class="np-learning-paths-resources lp-carousel">
|
||||
{% if items.any? %}
|
||||
{% for learning_path in items %}
|
||||
<div>
|
||||
{% include "cards_learning_path" with learning_path %}
|
||||
</div>
|
||||
{% 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,39 @@
|
||||
<script src="https://fast.wistia.net/embed/iframe/0m6tky9ic0?videoFoam=true" async></script>
|
||||
<script src="https://fast.wistia.com/assets/external/E-v1.js" async></script>
|
||||
|
||||
<div class="overview-video">
|
||||
<div
|
||||
class="thumbnail video wistia_embed wistia_async_0m6tky9ic0 popover=true popoverAnimateThumbnail=true popoverContent=link videoFoam=true"
|
||||
style="background-image:url(/wp-content/themes/altair/dist/img/ford_winner_2015.png)">
|
||||
<p style="padding-top:4px;"> Not sure where to start? Watch this quick training overview video.
|
||||
<a class="overview-video-link" href="javascript:void(0)">
|
||||
<span class="caption">
|
||||
Watch
|
||||
<i class="fas fa-caret-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.overview-video-link {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.overview-video-link:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.overview-video {
|
||||
text-align: center;
|
||||
font-family: F37 Moon !important;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
padding-top: 5px;
|
||||
border-radius: 5px;
|
||||
margin: 15px;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,37 @@
|
||||
<div class="np-card-content np-card-content-vertical np-card-padding align-center">
|
||||
<h3 class="np-card-content-title">
|
||||
{{name}}
|
||||
</h3>
|
||||
<svg
|
||||
class="progress-ring"
|
||||
width="120"
|
||||
height="120">
|
||||
<circle
|
||||
class="progress-ring__circle circle-{{name}}"
|
||||
stroke="#2e1e6b"
|
||||
stroke-width="4"
|
||||
fill="transparent"
|
||||
r="52"
|
||||
cx="60"
|
||||
cy="60"/>
|
||||
<text x="50%" y="50%" text-anchor="middle" stroke="#2e1e6b" stroke-width="2px" dy=".3em">{{count}}</text>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
var circle = document.getElementsByClassName("circle-{{name}}")[0];
|
||||
var radius = circle.r.baseVal.value;
|
||||
var circumference = radius * 2 * Math.PI;
|
||||
|
||||
circle.style.strokeDasharray = `${circumference} ${circumference}`;
|
||||
circle.style.strokeDashoffset = `${circumference}`;
|
||||
|
||||
function setProgress(percent) {
|
||||
const offset = circumference - percent * circumference;
|
||||
console.log(offset)
|
||||
circle.style.strokeDashoffset = offset;
|
||||
}
|
||||
setProgress('{{ count | divided_by: total }}')
|
||||
})
|
||||
</script>
|
||||
@ -0,0 +1,52 @@
|
||||
{% if courses.enrolled.any? %}
|
||||
<div class="recent-container">
|
||||
{% for course in courses.enrolled %}
|
||||
{% if course.id == current_person.properties.last_viewed_course %}
|
||||
<p class="recent-view-header">RECENTLY VIEWED</p>
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<style>
|
||||
.recent-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.recent-container>div>div {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
.recent-container>div>div>div {
|
||||
box-shadow: 4px 4px 0px rgba(128, 173, 220, 0.32);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.recent-view-header {
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.recent-view-header {
|
||||
margin-bottom: 0;
|
||||
background-color: #ebf5ff;
|
||||
padding: 5px 114px 0px;
|
||||
box-shadow: 4px 1px 0px rgb(128 173 220 / 32%);
|
||||
border-radius: 14px 14px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1025px) {
|
||||
.recent-view-header {
|
||||
margin-bottom: 0;
|
||||
background-color: #ebf5ff;
|
||||
box-shadow: 4px 1px 0px rgb(128 173 220 / 32%);
|
||||
border-radius: 14px 14px 0 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,34 @@
|
||||
<div class="statistics-container">
|
||||
<div class="badges">
|
||||
<p class="quantity">{{ countInProgress }}</p>
|
||||
<p class="name-flag">{% if countInProgress == 1 %}Course{% else %}Courses{% endif %} in Progress</p>
|
||||
</div>
|
||||
<div class="badges">
|
||||
<p class="quantity">{{ countComplete }}</p>
|
||||
<p class="name-flag">Completed Courses</p>
|
||||
</div>
|
||||
<div class="badges">
|
||||
{% if current_person.properties.learner_badges contains "missing property" %}
|
||||
<p class="quantity">0</p>
|
||||
{% else %}
|
||||
<p class="quantity">{{ current_person.properties.learner_badges }}</p>
|
||||
{% endif %}
|
||||
<p class="name-flag">Badges</p>
|
||||
</div>
|
||||
<div class="badges">
|
||||
{% if current_person.properties.learner_points contains "missing property" %}
|
||||
<p class="quantity">0</p>
|
||||
{% else %}
|
||||
<p class="quantity">{{ current_person.properties.learner_points }}</p>
|
||||
{% endif %}
|
||||
<p class="name-flag">Points</p>
|
||||
</div>
|
||||
<div class="badges">
|
||||
{% if current_person.properties.learner_hours contains "missing property" %}
|
||||
<p class="quantity">0</p>
|
||||
{% else %}
|
||||
<p class="quantity">{{ current_person.properties.learner_hours }} mins</p>
|
||||
{% endif %}
|
||||
<p class="name-flag">Course Time</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,32 @@
|
||||
<nav style="background: transparent;" class="np-sub-navigation custom-navigation">
|
||||
<div class="np-sub-navigation-content custom-navigation-content">
|
||||
{% for link in navigations.sub_navigation %}
|
||||
{% if link.label == "Events" or link.label == "Dashboard" %}
|
||||
{% elsif link.label == "Catalog" %}
|
||||
<div class="np-sub-navigation-content-item {{ link.active_class }} custom-navigation-content-item">
|
||||
<a class="np-sub-navigation-content-item-link custom-navigation-item-link" href="{{ link.url }}">
|
||||
<i
|
||||
class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon custom-navigation-content-item-icon"></i>
|
||||
<span style="margin-left: 10px; color: #000000;">Courses</span>
|
||||
</a>
|
||||
</div>
|
||||
{% elsif link.label == "Home" %}
|
||||
<div class="np-sub-navigation-content-item {{ link.active_class }} custom-navigation-content-item">
|
||||
<a class="np-sub-navigation-content-item-link custom-navigation-item-link" href="{{ link.url }}">
|
||||
<i
|
||||
class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon custom-navigation-content-item-icon"></i>
|
||||
<span style="margin-left: 10px; color: #000000;">Dashboard</span>
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="np-sub-navigation-content-item {{ link.active_class }} custom-navigation-content-item">
|
||||
<a class="np-sub-navigation-content-item-link custom-navigation-item-link" href="{{ link.url }}">
|
||||
<i
|
||||
class="{{ link.icon }} np-button-color np-sub-navigation-content-item-icon custom-navigation-content-item-icon"></i>
|
||||
<span style="margin-left: 10px; color: #000000;">{{ link.label }}</span>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</nav>
|
||||
@ -0,0 +1,4 @@
|
||||
<div class="welcome-message">
|
||||
<img class="np-homepage-hero-image np-hidden-mobile" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/SkuidSkool-Hero3.png"/>
|
||||
<img class="np-homepage-hero-image np-hidden-desktop" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/skuid+skool+V3+mobile.svg">
|
||||
</div>
|
||||
@ -0,0 +1,84 @@
|
||||
{% include "header" %}
|
||||
|
||||
<div class="page-container account-profile">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
|
||||
<main class="np-main np-subpage-container np-account account-margin">
|
||||
<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>
|
||||
</div>
|
||||
|
||||
{% include "footer" %}
|
||||
|
||||
<style>
|
||||
.np-card-container {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.account-profile {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.account-margin {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.np-card.np-account-form {
|
||||
min-width: 100% !important;
|
||||
}
|
||||
|
||||
.np-account-form {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.np-account-avatar {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 769px) and (max-width: 2499px) {
|
||||
.account-profile {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.account-margin {
|
||||
margin-right: 12%;
|
||||
}
|
||||
|
||||
|
||||
.np-account-form {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2500px) {
|
||||
.np-card-container.np-card-padding > div {
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.account-profile {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.account-margin {
|
||||
margin-right: 23%;
|
||||
}
|
||||
|
||||
.np-account-form {
|
||||
margin-right: 9%;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -0,0 +1,54 @@
|
||||
{% include "header" %}
|
||||
{% include "course_version_outdated_alert", courses: courses.in_catalog %}
|
||||
<div class="page-container">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
<main class="np-main np-catalog np-subpage-container np-max-width">
|
||||
<div class="np-catalog-header-wrapper">
|
||||
<div class="np-catalog-header">
|
||||
<div class="np-resource-title np-hidden-mobile">{{ catalog.headline }}</div>
|
||||
<div class="np-resource-subtitle np-hidden-mobile">{{ catalog.subheadline }}</div>
|
||||
<div class="catalog-title np-hidden-desktop">Courses</div>
|
||||
<div class="catalog-subtitle np-hidden-desktop">Explore currated sets of courses for a tailored learning experience.</div>
|
||||
{% include 'dashboard_course_filter' %}
|
||||
</div>
|
||||
</div>
|
||||
{% include "courses_catalog" %}
|
||||
</main>
|
||||
</div>
|
||||
{% include "footer" %}
|
||||
|
||||
<style>
|
||||
@media (max-width: 768px) {
|
||||
.mo-search-wrapper {
|
||||
margin-top: 30px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.np-catalog-header {
|
||||
align-items: flex-start;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.catalog-title {
|
||||
font-family: "F37 Moon";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.catalog-subtitle {
|
||||
font-family: "F37 Moon";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.np-catalog {
|
||||
padding: 25px 5% 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,47 @@
|
||||
{% include "header" %}
|
||||
<div class="page-container">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
<main class="np-main np-subpage-container np-max-width custom-course-page">
|
||||
<div class="np-hidden-mobile" id="course-desktop">
|
||||
{% include "course_desktop_view" %}
|
||||
</div>
|
||||
<div class="np-hidden-desktop" id="course-mobile">
|
||||
{% include "course_mobile_view" %}
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
{% include "footer" %}
|
||||
<script>
|
||||
|
||||
$(document).ready(function () {
|
||||
setLastViewedCourse();
|
||||
});
|
||||
|
||||
function setLastViewedCourse() {
|
||||
var data = {
|
||||
uuid: '{{current_person.id}}',
|
||||
courseName: '{{course.id}}' // course id not name
|
||||
};
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: 'https://www.workato.com/webhooks/rest/bd1a1eb7-7e79-4208-a1db-8e9c7440bcc9/course-viewed', //workato link
|
||||
data: JSON.stringify(data),
|
||||
success: function (data) {
|
||||
console.log(data);
|
||||
//setTimeout(location.reload.bind(location), 700);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.log(error)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.custom-course-page {
|
||||
max-width: 1600px !important;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,15 @@
|
||||
{% include "header" %}
|
||||
<!-- {% include "course_version_outdated_alert", courses: courses.enrolled %} -->
|
||||
<div class="page-container">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
{% include "footer" %}
|
||||
@ -0,0 +1,3 @@
|
||||
<script>
|
||||
window.location.replace('/app')
|
||||
</script>
|
||||
773
NP_Custom_Templates/customer_templates/Skuid/eula.html.liquid
Normal file
773
NP_Custom_Templates/customer_templates/Skuid/eula.html.liquid
Normal file
@ -0,0 +1,773 @@
|
||||
{% comment %} skip-auth {% endcomment %}
|
||||
<main style="display: flex; flex-direction: column; width: 80%; font-family: Inter;">
|
||||
<h1 style="font-weight: 500; font-size: 24px; margin: 30px auto; height: 30px !important; font-family: 'F37 Moon';">
|
||||
TERMS OF USE FOR SKUID SKOOL<br><br><br>
|
||||
</h1>
|
||||
<content style="width: 80%; margin: 20px auto;">
|
||||
<p
|
||||
style="box-sizing: border-box; margin-top: 0px; margin-bottom: 1rem; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
This agreement governs the use of the Skuid service. By executing an order form and/or by using the Skuid
|
||||
service, you agree that you are authorized to bind the applicable customer to this agreement and are agreeing to be
|
||||
bound by the terms contained in this agreement. You should not use this service if you cannot comply with this
|
||||
agreement. This agreement is between you and Skuid, Inc. and/or its affiliates or subsidiaries as applicable.</p>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
1. Definitions</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Affiliate”</strong> means any entity which directly
|
||||
or indirectly controls, is controlled by, or is under common control with the subject entity. For purposes of this
|
||||
definition, “control” means direct or indirect ownership or control of more than fifty percent (50%) of
|
||||
the voting interests of such entity.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Agreement”</strong> means these terms and
|
||||
conditions, including any Order Forms, whether written or submitted online, and materials available on the Skuid
|
||||
website (<a href="https://www.skuid.com/"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">www.skuid.com</strong></a>) specifically incorporated by
|
||||
reference herein, including the <a href="https://www.skuid.com/legal/privacy-policy"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;">Skuid
|
||||
Privacy Statement</a>, Skuid documentation (<a href="https://docs.skuid.com/"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">docs.skuid.com</strong></a>), Skuid Support terms (<a
|
||||
href="https://www.skuid.com/support"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">www.skuid.com/support</strong></a>) as such materials may be
|
||||
updated by Skuid from time to time in its sole discretion.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Content”</strong> means the audio and visual
|
||||
information, documents, software, products, and services contained or made available to You in the course of using
|
||||
the Skuid Services.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Data”</strong> means electronic data and
|
||||
information submitted by You and stored in the Data Platform, and available to be processed by the Skuid Services,
|
||||
not including Metadata.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Data Platform”</strong> means the cloud or
|
||||
on-premises platform upon which Your Data resides, and certain application services with which the Skuid Services
|
||||
interoperate. Examples of Data Platform include Customer-maintained data platforms as well as Salesforce.com, Amazon
|
||||
Web Services (“AWS”), Microsoft Azure, Oracle (on-premises or cloud), and SAP Hana (on-premises or
|
||||
cloud) data platforms.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Data Processing Addendum”</strong> or <strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“DPA”</strong> means the addendum drafted in
|
||||
compliance with the EU General Data Protection Regulation 2016/679 (“GDPR”), available upon request
|
||||
at <a href="mailto:legal@skuid.com"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">legal@skuid.com</strong></a>, and incorporated herein by this
|
||||
reference. By signing this Agreement, or by an Affiliate signing an Order Form, Customer is agreeing to the terms of
|
||||
the DPA and each of its appendices. For the purposes of the Standard Contractual Clauses attached to the DPA, as
|
||||
applicable, Customer and its authorized Affiliates are each the data exporter, and Skuid is the data importer.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Direct Competition”</strong> by You is strictly
|
||||
prohibited and means accessing the Skuid Services to (a) use Skuid Services for service bureau purposes or to build
|
||||
Your own commercial service or commercial business; build a competitive product or service, (b) build a product
|
||||
using similar ideas, features, functions or graphics of the Skuid Services, (c) copy any ideas, features, functions
|
||||
or graphics of the Skuid Services; (d) modify or make derivative works based upon the Skuid Services or the Content;
|
||||
(e) reverse engineer the Skuid Services or any component thereof; or (f) copy, frame, or mirror any part or Content
|
||||
of the Skuid Services other than for Your own internal business purposes.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Effective Date”</strong> means the earlier of: (1)
|
||||
the date You sign an applicable Order Form; or (2) the date You click to accept the terms of this Agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Intellectual Property Rights”</strong> means
|
||||
unpatented inventions, patent applications, patents, design rights, copyrights, trademarks, service marks, trade
|
||||
names, domain name rights, mask work rights, know-how and other trade secret rights, licenses and all other
|
||||
intellectual property rights, derivatives thereof, and forms of protection of a similar nature anywhere in the
|
||||
world.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Malicious Code”</strong> means computer viruses,
|
||||
worms, time bombs, Trojan horse software and other harmful or malicious code, files, scripts, agents, or programs.
|
||||
</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Metadata”</strong> means configuration data that
|
||||
describes how a Skuid application functions and how it is presented in the user experience for You.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Order Form”</strong> means the form evidencing the
|
||||
initial subscription for the Skuid Services and any subsequent Order Forms submitted online or in written form,
|
||||
specifying, among other things, the number of subscriptions and other services contracted for, the applicable fees,
|
||||
the billing period, and other charges as agreed to between the parties, each such Order Form to be incorporated into
|
||||
and to become a part of this Agreement. In the event of any conflict between the terms of this Agreement and the
|
||||
terms of any such Order Form, the terms of the Order Form shall prevail.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Purchased Skuid Services”</strong> means Skuid
|
||||
Services that You or Your affiliates purchase under an Order Form.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Service Administrator”</strong> means those Users
|
||||
designated by You who are authorized to purchase Skuid Services subscriptions and to create User accounts and
|
||||
otherwise administer Your use of the Skuid Services.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Skuid Credentials”</strong> means the username and
|
||||
password that uniquely identifies a User and allows that User to access and use the Skuid Services. Skuid
|
||||
Credentials are stored where the Skuid Services are installed.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Skuid Data”</strong> means data and/or Metadata You
|
||||
create with the Skuid Services to define and display Your user interfaces, such as new Skuid Pages, Skuid Page
|
||||
Assignments or Skuid apps, and any customizations made to or with the Skuid Services. Skuid Data is stored where the
|
||||
Skuid Services are installed.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Skuid Professional Services”</strong> or “Pro
|
||||
Services” means the professional services, if any, performed by Skuid for You to develop a custom application
|
||||
or other solution as set forth in an applicable Statement of Work.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Skuid Services”</strong> means the online,
|
||||
Web-based applications provided by Skuid that are ordered by You as part of Purchased Skuid Services, or under an
|
||||
Order Form, including any associated online or offline components, but excluding Third-Party Applications. Skuid
|
||||
Services include software, Content, processes, algorithms, user interfaces, know-how, techniques, designs, and other
|
||||
tangible or intangible technical material or information made available to You by Skuid in providing the Skuid
|
||||
Services. Skuid Services are installed on either <a href="https://salesforce.com/"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"
|
||||
target="_blank"><strong style="box-sizing: border-box; font-weight: 600;">Salesforce.com</strong></a> as a
|
||||
Salesforce managed application, on AWS as a Platform as a Service (PaaS) offering, or other third-party or
|
||||
proprietary platform as published by Skuid.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Term”</strong> means the contract term, beginning
|
||||
on the Effective Date and ending on the Contract End Date, specified on the applicable Order Form and any extension
|
||||
or continuation thereof.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Third-Party Applications”</strong> means online,
|
||||
Web-based applications and offline software products that are provided by third parties, interoperate with the Skuid
|
||||
Services, and are identified as third-party applications.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“User”</strong> or <strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Users”</strong> means an individual or individuals
|
||||
who are authorized by You to use the Skuid Services, for whom subscriptions to the Skuid Services have been
|
||||
purchased, and who have been supplied User identifications and passwords by You (or by Skuid at Your request). Users
|
||||
may include, but are not limited to, Your employees, consultants, contractors, and agents; or third parties with
|
||||
which You transact business.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“User Guide”</strong> means the online documentation
|
||||
for the Skuid Services, accessible through <a href="https://docs.skuid.com/"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">docs.skuid.com</strong></a>, as updated from time to time.
|
||||
</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“We”</strong> or <strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Us”</strong> means Skuid.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“You”</strong> or <strong
|
||||
style="box-sizing: border-box; font-weight: 600;">“Your”</strong> means the company or other legal
|
||||
entity for which You are accepting this Agreement, and the Affiliates of that company or entity and/or the
|
||||
individual entering this Agreement on behalf of such entity, as indicated by context.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
2. General Terms</h3>
|
||||
<ol start=""
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">You agree to the terms of this Agreement by signing this
|
||||
Agreement or an Order Form that references this Agreement. You acknowledge that an active subscription to a Data
|
||||
Platform service is required for use of the Skuid Services. The person signing this Agreement represents that s/he
|
||||
is entering into this Agreement on behalf of a company or legal entity, and that s/he has the authority to bind such
|
||||
entity to this Agreement. If You do not have such authority, or if You do not agree with these Terms and Conditions,
|
||||
You must not accept this Agreement and may not use the Skuid Services.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
3. Free Plan</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">If You register on the Service or an Affiliate’s
|
||||
website for a free plan of the Service, Skuid will make the applicable Service(s) available to Customer on a limited
|
||||
basis free of charge until the end of the free usage period for which You registered to use the applicable
|
||||
Service(s) or termination by Skuid in its sole discretion. Notwithstanding the foregoing, and for the avoidance of
|
||||
doubt, Skuid may modify or alter the terms of such free usage, including the duration of the term, number of
|
||||
permitted users or approved functionality, for which Skuid will provide notice. Additional trial terms and
|
||||
conditions may appear on Order Form, and such additional terms and conditions are incorporated into this Agreement
|
||||
by reference and are legally binding. Any free plan of the Service shall be provided AS-IS, with no representations
|
||||
or warranties of any kind. All such free usage is subject to the restrictions set forth in this Agreement,
|
||||
including, but not limited to, the restriction against using an API or in any other tool or method designed to mask
|
||||
multiple users or permit non-authenticated users in contravention of the user restrictions.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
4. Purchased Skuid Services</h3>
|
||||
<ul
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Provision of Purchased Skuid Services.</strong> We shall make
|
||||
the Purchased Skuid Services available to You pursuant to this Agreement and the relevant Order Form(s) during the
|
||||
Term. You agree that Your purchases hereunder are neither contingent on the delivery of any future functionality or
|
||||
features nor dependent on any oral or written public comments made by Us regarding future functionality or features.
|
||||
</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Updates to Skuid Services.</strong> Skuid may update the Skuid
|
||||
Services in its sole discretion, with each update to be provided to You as is made available by Skuid to any of its
|
||||
customers. Updates that are required to bring You into compliance with any applicable laws will be provided at least
|
||||
thirty (30) days before compliance is required by such laws, or as soon as is practicable. Updates to the Skuid
|
||||
Services will be deemed part of the Skuid Services.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">User Subscriptions. Unless otherwise specified in the
|
||||
applicable Order Form:</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Skuid Services are purchased as user subscriptions and may
|
||||
be accessed by no more than the specified number of Users of the subscription type(s) defined in the applicable
|
||||
Order Form(s);</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Additional user subscriptions may be added during the
|
||||
subscription term, the cost of which will be prorated for the remainder of the Term in effect at the time the
|
||||
additional user subscriptions are added. Pricing for additional subscriptions will be the same as the preexisting
|
||||
subscriptions, unless otherwise specified in the Order Form for the preexisting subscriptions;</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">The added user subscriptions shall terminate on the same
|
||||
date as the preexisting subscriptions;</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">User subscriptions are for designated Users and
|
||||
subscription user types and User subscriptions cannot be shared or used by more than one User;</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">User subscriptions of one type may not be assigned to user
|
||||
subscriptions of another type as defined on the applicable Order Form(s); and,</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Subscriptions of the same user subscription type may be
|
||||
reassigned to new Users of the same user subscription type, replacing former Users who shall have no further use of
|
||||
the Skuid Services during the Term.</li>
|
||||
</ul>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
5. Use of the Skuid Services</h3>
|
||||
<h5
|
||||
style="box-sizing: border-box; margin-top: 1.75rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.125rem; line-height: 1.28em; font-weight: 600; letter-spacing: normal; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
Skuid’s Responsibilities</h5>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Skuid shall provide the Purchased Skuid Services only
|
||||
according to applicable laws and government regulations.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">For Purchased Skuid Services, unless otherwise indicated on
|
||||
an Order Form, Skuid shall provide at no additional charge during the Term (i) online access to updates of the Skuid
|
||||
Services; and (ii) basic online support services, including community support webpages at <a
|
||||
href="http://community.skuid.com/"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">community.skuid.com</strong></a>, online help webpages and
|
||||
user documentation for the Skuid Services at <a href="https://docs.skuid.com/"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">docs.skuid.com</strong></a>.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">To the extent applicable, Skuid will provide the relevant
|
||||
Support that Customer has purchased as defined and described at <a href="https://www.skuid.com/support"
|
||||
style="box-sizing: border-box; background-color: transparent; transition: color 0.3s ease 0s, background-color 0.3s ease 0s, border-color 0.3s ease 0s; text-decoration: none; color: rgb(0, 92, 185); font-weight: 600;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">skuid.com/support</strong></a>, which may be updated from time
|
||||
to time upon notice.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Skuid will maintain administrative and technical safeguards
|
||||
for protection, security, confidentiality, and integrity of Skuid Data and Skuid Credentials only when deployed on a
|
||||
cloud platform managed by Skuid. When Skuid is deployed on a platform managed by You or a third party, these
|
||||
safeguards are provided and managed by You or such third party, as applicable. Such safeguards include measures for
|
||||
preventing access, use, modification, or disclosure of Skuid Data and Skuid Credentials by anyone other than
|
||||
Customer’s personnel and Skuid’s personnel, except (a) to provide the Skuid Services and prevent or
|
||||
address service or technical problems, (b) as expressly permitted in writing by Customer, or (c) as compelled by
|
||||
law. To the extent that Skuid processes any Personal Data (as defined in the DPA) on Customer’s behalf in the
|
||||
provision of Skuid Services, the terms and conditions of the DPA shall apply.</li>
|
||||
</ol>
|
||||
<h5
|
||||
style="box-sizing: border-box; margin-top: 1.75rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.125rem; line-height: 1.28em; font-weight: 600; letter-spacing: normal; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
Your Responsibilities</h5>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">The Skuid Services are provided solely for Your benefit,
|
||||
and for the benefit of any parent, subsidiary or affiliate of Yours specified on an applicable Order Form(s).</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">You acknowledge that the Skuid Services may experience
|
||||
interruptions arising out of limitations, delays, and other problems commonly occurring in the use of the Internet,
|
||||
use of Your Data Platform, use of other cloud platforms, and use of computer communications. You acknowledge that
|
||||
Skuid is not responsible for damages, including, but not limited to, incidental or consequential damages arising
|
||||
from such interruptions.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">You shall be responsible for maintaining security of Your
|
||||
Data on the Data Platform(s) that You access with the Skuid Services.</li>
|
||||
</ol>
|
||||
<h5
|
||||
style="box-sizing: border-box; margin-top: 1.75rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.125rem; line-height: 1.28em; font-weight: 600; letter-spacing: normal; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<strong style="box-sizing: border-box; font-weight: 600;">Prohibited Uses.</strong> You may not:</h5>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Make the Skuid Services available to any third party,
|
||||
except as expressly permitted herein or in an Order Form;</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Access the Skuid Services in Direct Competition with Skuid,
|
||||
or permit access to the Skuid Services to a person or entity that You know or should reasonably know is in Direct
|
||||
Competition with Skuid;</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Sell, resell, rent, or lease the Skuid Services;</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Access the Skuid Services for purposes of monitoring their
|
||||
availability, performance or functionality, or for any other benchmarking, competitive or anti-competitive purposes;
|
||||
</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Use the Skuid Services to store, transmit, or publish
|
||||
infringing, libelous, or otherwise unlawful or tortious material, material in violation of third-party privacy
|
||||
rights, personal information in violation of any applicable law, financial information of Your members or
|
||||
constituents, or material containing Malicious Code;</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Provide access to the Skuid Services to any user, parent,
|
||||
affiliate or subsidiary organized or existing under the laws of a country or territory embargoed by the United
|
||||
States.</li>
|
||||
</ol>
|
||||
<h5
|
||||
style="box-sizing: border-box; margin-top: 1.75rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.125rem; line-height: 1.28em; font-weight: 600; letter-spacing: normal; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<strong style="box-sizing: border-box; font-weight: 600;">Usage Limitations.</strong>‍</h5>
|
||||
<ol start=""
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;">Skuid Services may be subject to other limitations as
|
||||
described in the applicable agreement between You and Your Data Platform provider(s) and/or specified in Your Data
|
||||
Platform provider(s) user guide, such as limits on disk storage space, or limits on the number of calls You are
|
||||
permitted to make against the application programming interface. Some Data Platform providers give real-time
|
||||
information to enable You to monitor Your compliance with such limitations.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
6. Third-Party Providers and Skuid Services</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Data Platform.</strong> To access the Skuid Services, You
|
||||
acknowledge that You have agreed to the terms provided by Your Data Platform provider as detailed in the
|
||||
provider’s applicable license or subscription agreement (the “Data Platform Agreement”). You shall
|
||||
be solely responsible for compliance with the terms and conditions of any such Data Platform Agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Data Source.</strong> In order to use Skuid Services, You must
|
||||
configure access to data source(s) (eg. Salesforce, AWS, Oracle, Microsoft Dynamics, or other) as desired. You
|
||||
and/or Your data source provider(s) are responsible for ensuring proper data protection and security practices are
|
||||
implemented and maintained. Skuid shall not be responsible for any damages resulting from a data breach caused by
|
||||
Your data source provider or by Your failure to adhere to the terms and conditions of any applicable Data Platform
|
||||
Agreement. When Skuid is deployed on cloud platform managed by Skuid, in order to connect to and authenticate Your
|
||||
desired data source(s), and depending upon the authentication method used, You may be asked to provide credentials,
|
||||
tokens, and/or keys to access the data sources, which, depending on Your elected admin configuration, will be stored
|
||||
in Skuid’s managed platform in a strongly encrypted form.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Third Party Applications.</strong> If You install or enable
|
||||
Third-Party Applications for use with the Skuid Services, Skuid shall not be responsible for any disclosure,
|
||||
modification, or deletion of Data resulting from any such access by Third-Party Application providers. Most Data
|
||||
Platform services allow You to restrict such access by restricting Users from installing or enabling such
|
||||
Third-Party Applications for use with the Skuid Services.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
7. Skuid Professional Services</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Engagement.</strong> When You request, Pro Services will be
|
||||
implemented through one or more Statements of Work entered into from time to time by You and Skuid. If You request
|
||||
additional services or modifications to the Pro Services that are outside the scope of the original SOW, Skuid will
|
||||
advise You of any additional cost and/or modifications to the Delivery Schedule. Each SOW will be numbered
|
||||
sequentially, will reference this Agreement, and will specify the Pro Services to be performed by Skuid.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Project Team.</strong> Each SOW shall detail the
|
||||
responsibilities and obligations of both You and Skuid and, unless the parties agree otherwise, shall identify the
|
||||
names and roles of each member of Your and Skuid’s project teams.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Limited License.</strong> If You provide any of Your materials
|
||||
to Skuid, then You grant Skuid a non-transferable, non-exclusive, royalty-free license for the term of this
|
||||
Agreement to use Your material solely for the purpose of Skuid meeting its obligations to provide the Pro Services
|
||||
to You under this Agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Skuid IP.</strong> You shall not receive any ownership interest
|
||||
in: (i) any ideas, concepts, designs, techniques, inventions, methods, or utilities (collectively “Background
|
||||
IP”) used by Skuid in rendering Pro Services; or (ii) any discoveries or improvements to the Background IP,
|
||||
whether patentable or not, that are conceived of or reduced to practice by Skuid or by one or more Skuid employees
|
||||
or agents in the performance of services for You under this Agreement (“Inventions”). The Background IP
|
||||
and the Inventions shall be the exclusive property of Skuid to use, copy, adapt, expand, develop, publish, change,
|
||||
or sublicense.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Expenses.</strong> Customer shall reimburse Skuid for all
|
||||
reasonable travel expenses as approved in advance by Customer, or as noted in the applicable SOW.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
8. Fees and Payment for Purchased Services</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">User Fees.</strong> You shall pay annually in advance all fees
|
||||
specified in all Order Forms hereunder. The initial charges will be equal to the current number of total user
|
||||
subscriptions requested times the user subscription fee currently in effect. Except as otherwise specified herein or
|
||||
in an Order Form, (i) fees are quoted and payable in United States dollars (ii) fees are based on the Skuid Services
|
||||
purchased and not actual usage, (iii) payment obligations are non-cancelable and fees paid are non-refundable, and
|
||||
(iv) the number of user subscriptions purchased cannot be decreased during the relevant term. User subscription fees
|
||||
are based on periods that begin on the subscription start date and every year anniversary or as otherwise mutually
|
||||
agreed upon and described on an Order Form.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Fees for Pro Services.</strong> Skuid shall be compensated for
|
||||
Pro Services performed under an SOW in accordance with the fee schedule set forth in the applicable SOW. Your
|
||||
payment, sign-off on project work or use of such Pro Services deliverables shall reflect Your approval that Pro
|
||||
Services were satisfactorily performed. Skuid shall be paid within thirty (30) days from date of invoice evidencing
|
||||
work completed by Skuid.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Invoicing and Payment.</strong> You will provide Skuid with
|
||||
valid and updated credit card information; or a valid purchase order or alternative documents reasonably acceptable
|
||||
to Skuid. If You provide credit card information to Skuid, You authorize Skuid to charge such credit for all Skuid
|
||||
Services listed in the Order Form. Such charges shall be made annually in advance annually or as otherwise stated in
|
||||
the applicable Order Form. If the Order Form specifies that payment will be by a method other than a credit card,
|
||||
Skuid will invoice You in advance and otherwise according to the relevant Order Form. Unless otherwise stated in the
|
||||
Order Form, invoiced charges are due on receipt.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Billing Information.</strong> You agree to provide Us with
|
||||
complete and accurate billing and contact information. This information includes Your legal company name, street
|
||||
address, e-mail address, and name and telephone number of an authorized billing contact and Service Administrator.
|
||||
You agree to update this information within thirty (30) days of any change to it. If the contact information You
|
||||
have provided is fraudulent, Skuid reserves the right to terminate Your access to the Skuid Services without notice,
|
||||
in addition to any other legal remedies.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Suspension of Skuid Services and Acceleration.</strong> If any
|
||||
amount that You or Your authorized reseller owes under this or any other agreement for Skuid Services is thirty (30)
|
||||
or more days overdue or ten (10) or more days overdue in the case of amounts authorized to be charged to Your credit
|
||||
card, Skuid may, without limiting other rights and remedies, accelerate Your unpaid fee obligations so that all such
|
||||
obligations become immediately due and payable, and suspend Skuid Services until such amounts are paid in full.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Payment Disputes.</strong> To receive an adjustment or credit
|
||||
for any billing errors, You must contact Skuid in writing within thirty (30) days of the invoice date of the invoice
|
||||
containing the amount in question. Skuid shall not exercise its rights under Section 8.5 (Suspension of Skuid
|
||||
Services) if the applicable charges are under reasonable and good-faith dispute and You are cooperating diligently
|
||||
to resolve the dispute.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Taxes.</strong> Unless otherwise stated, Skuid’s fees do
|
||||
not include any taxes, levies, duties, or similar governmental assessments of any nature, including, but not limited
|
||||
to, value-added, sales, use, or withholding taxes, assessable by any local, state, provincial, federal, or foreign
|
||||
jurisdiction (collectively, “taxes”). You are responsible for paying all taxes that may be associated
|
||||
with Your purchases hereunder. If Skuid pays or collects taxes for which You are responsible, any amount paid, plus
|
||||
all costs and expenses incurred by Skuid, relative to such taxes shall be invoiced to and paid by You. If anything
|
||||
supplied under or in connection with Pro Services constitutes a taxable supply for the purposes of the applicable
|
||||
goods and services tax law (“GST”), then Skuid may recover from You an amount on account of GST. The
|
||||
amount on account of GST is: (a) equal to the value of the supply calculated in accordance with the GST Law
|
||||
multiplied by the prevailing GST rate; and is payable: (b) at the same time and in the same manner as the recipient
|
||||
is required to pay or provide monetary consideration for the supply to which the additional amount relates but not
|
||||
before the supplying party issues the tax invoice; or (c) where the recipient is not required to pay or provide
|
||||
monetary consideration for the supply, upon issue of a tax invoice by the supplying party. The supplier of a taxable
|
||||
supply made in connection with this Agreement must issue a tax invoice for the supply in accordance with GST Law to
|
||||
the recipient of the supply.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Reconnection Fee.</strong> We reserve the right to impose a
|
||||
reconnection fee in the event (i) Your access to the Skuid Services is suspended because of nonpayment; or (ii) Your
|
||||
access to Your Data Platform(s) has been suspended, and thereafter You request access using the Skuid Services.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
9. Proprietary Rights</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Reservation of Rights.</strong> Subject to the limited rights
|
||||
expressly granted hereunder, Skuid reserve all rights, title, and interest in and to the Skuid Services and the
|
||||
Intellectual Property Rights, including all related Intellectual Property Rights. No rights are granted to You
|
||||
hereunder other than as expressly set forth herein. Skuid alone (and its licensors, where applicable) shall own all
|
||||
right, title, and interest, including all related Intellectual Property Rights, in and to Skuid’s technology,
|
||||
content and the Skuid Services, and any ideas, suggestions, enhancement requests, feedback, recommendations, or
|
||||
other information (collectively, the “Ideas”) provided by You or any other party relating to the Skuid
|
||||
Services. Skuid may, in its sole discretion, incorporate any Ideas into the Skuid Services. This Agreement is not a
|
||||
sale and does not convey to You any rights of ownership in or related to the Skuid Services, technology, or the
|
||||
Intellectual Property Rights owned by Skuid.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Ownership of Your Data.</strong> You will retain all rights,
|
||||
title, and interest in and to any Data, information, or materials provided by You, including Skuid Data.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Federal Government End Use Provisions.</strong> Skuid provides
|
||||
the Skuid Services, including related software and technology, for ultimate federal government end use solely
|
||||
according to the following: Government technical data and software rights related to the Skuid Services include only
|
||||
those rights customarily provided to the public as defined in this Agreement. This customary commercial license is
|
||||
provided according to FAR 12.211 (Technical Data) and FAR 12.212 (Software) and, for Department of Defense
|
||||
transactions, DFAR 252.227-7015 (Technical Data — Commercial Items) and DFAR 227.7202-3 (Rights in Commercial
|
||||
Computer Software or Computer Software Documentation). If a government agency has a need for rights not conveyed
|
||||
under these terms, it must negotiate with Skuid to determine if there are acceptable terms for transferring such
|
||||
rights, and a mutually acceptable written addendum specifically conveying such rights must be included in any
|
||||
applicable contract or agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Infringement.</strong> You will promptly notify Skuid if You
|
||||
learn of a violation of any of Skuid’s Intellectual Property Rights. Skuid may, but will not be obligated to,
|
||||
prosecute such violation at Skuid’s expense and to retain the full amount of any sums recovered as damages.
|
||||
You will provide Skuid with reasonable cooperation in any such action at Skuid’s expense. Provided, however,
|
||||
if any violation relates to Your or any of Your User’s actions or failure to act, You shall be responsible for
|
||||
all expenses, including attorney fees, associated therewith as determined by a court of competent jurisdiction or
|
||||
other trier of fact, to the extent that such action is finally determined to have resulted from Your negligence or
|
||||
willful misconduct.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
10. Confidentiality</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Definition of Confidential Information.</strong> As used herein,
|
||||
“Confidential Information” means all confidential information disclosed by a party (“Disclosing
|
||||
Party”) to the other party (“Receiving Party”), whether orally or in writing, that is designated
|
||||
as confidential or that reasonably should be understood to be confidential given the nature of the information and
|
||||
the circumstances of disclosure. Without limiting the foregoing, Confidential Information of each party shall
|
||||
include the terms and conditions of this Agreement and all Order Forms, as well as business and marketing plans,
|
||||
technology and technical information, formulas, concepts, product plans and designs, and business processes
|
||||
disclosed by such party. Your Confidential Information shall include Your Data; Skuid’s Confidential
|
||||
Information shall include the Skuid Services and all pricing terms. However, Confidential Information shall not
|
||||
include any information that (i) is or becomes generally known to the public without breach of any obligation owed
|
||||
to the Disclosing Party, (ii) was known to the Receiving Party prior to its disclosure by the Disclosing Party
|
||||
without breach of any obligation owed to the Disclosing Party, (iii) is received from a third party without breach
|
||||
of any obligation owed to the Disclosing Party, or (iv) was independently developed by the Receiving Party without
|
||||
the breach of any obligation owed to the Disclosing Party.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Protection of Confidential Information.</strong> Except as
|
||||
otherwise permitted in writing by the Disclosing Party, Confidential Information shall be received and maintained by
|
||||
the Receiving Party in the strictest confidence in accordance with applicable law, and shall not be disclosed to any
|
||||
third party. The Receiving Party shall use the same degree of care that it uses to protect the confidentiality of
|
||||
its own Confidential Information of like kind (but in no event less than reasonable care) and shall limit access to
|
||||
Confidential Information of the Disclosing Party to those of its employees, contractors, and agents who need such
|
||||
access for purposes consistent with this Agreement and who have signed confidentiality agreements with the Receiving
|
||||
Party containing protections no less stringent than those herein. Furthermore, neither party shall use such
|
||||
Confidential Information for any purpose other than those purposes specified in this Agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Compelled Disclosure.</strong> The Receiving Party may disclose
|
||||
Confidential Information of the Disclosing Party if it is compelled by law to do so, provided the Receiving Party
|
||||
gives the Disclosing Party prompt prior notice of such compelled disclosure to allow the Disclosing Party a
|
||||
reasonable opportunity to contest the disclosure (to the extent legally permitted) and reasonable assistance, at the
|
||||
Disclosing Party's cost, if the Disclosing Party wishes to contest the disclosure. If the Receiving Party is
|
||||
compelled by law to disclose the Disclosing Party's Confidential Information as part of a civil or criminal
|
||||
proceeding to which the Disclosing Party is a party, and the Disclosing Party is not contesting the disclosure, the
|
||||
Disclosing Party will reimburse the Receiving Party for its reasonable cost of compiling and providing secure access
|
||||
to such Confidential Information.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Privacy and Disclosure.</strong> Skuid will not access Your
|
||||
networks or access or use any personal data or Your-sensitive business information under this Agreement, except when
|
||||
necessary in the course of providing Skuid Services or Pro Services, and Skuid will not review, use, process,
|
||||
disclose, or otherwise handle such information. To the extent applicable for the activities contemplated under this
|
||||
Agreement, Skuid will comply with all applicable privacy and security laws to which it is subject, and will not, by
|
||||
act or omission, place You in violation of any applicable privacy or security law.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Communications from Skuid.</strong> Users may be asked whether
|
||||
or not they wish to receive marketing and other noncritical Skuid Services-related communications from Skuid from
|
||||
time to time. Users may opt out of receiving such communications at that time or at any subsequent time by changing
|
||||
their preference under Personal Setup. Note that because the Skuid Services is a hosted, online application, Skuid
|
||||
occasionally may need to notify all Users (whether or not they have opted out as described above) of important
|
||||
announcements regarding the operation of the Skuid Services.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Customer Reference; Trademark License.</strong> Each party may
|
||||
display on its website and in sales presentation collateral the company logo of the other party, and may identify
|
||||
Customer as a customer of Skuid in the ordinary course of business. Any other use of a party’s logo shall be
|
||||
upon prior written approval only; however, Skuid and Customer agree to discuss Customer’s participation in the
|
||||
Skuid Customer Reference Program which may include: (i) Skuid Customer Advisory board, (ii) Skuid Beta Release
|
||||
program, (iii) reference calls with other companies that are evaluating Skuid, and iv) print or video testimonials.
|
||||
Customer’s approval to participate in the Skuid Customer Reference Program activities will not be unreasonably
|
||||
withheld.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
11. Warranties and Disclosures</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Limited Warranty</strong>. Skuid does not guarantee or warrant
|
||||
that the Skuid Services will properly function with the software of any third party unless specifically so stated
|
||||
herein. Skuid warrants that the Skuid Services will perform substantially in accordance with the User Guide, so long
|
||||
as You follow the instructions provided. The foregoing warranty is void if the failure of the Skuid Services is due
|
||||
to Your act or failure to act (including, but not limited to, using the latest version or updates made available to
|
||||
You at no cost by Skuid), the acts of others, or events beyond Skuid’s reasonable control.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Limitation of Warranty.</strong> You understand and agree that
|
||||
the Skuid Services are provided “as is” and, other than as expressly stated in Section 11.1, Skuid
|
||||
disclaims all warranties of any kind, express or implied, including, without limitation, any warranty of
|
||||
merchantability, fitness for a particular purpose or non-infringement. Skuid makes no warranty or representation
|
||||
regarding the results that may be obtained from the use of the Skuid Services, regarding the accuracy or reliability
|
||||
of any information obtained through the Skuid Services, or that the Skuid Service will meet Your requirements, or be
|
||||
uninterrupted, timely, secure, or error free. Use of the Skuid Services is at Your sole discretion and risk. Except
|
||||
with respect to breach of Section 10 (Confidentiality) and Section 12 (Indemnification by Skuid), You will be solely
|
||||
responsible for any damage resulting from Your use of the Skuid Services. Except with respect to breach of Section
|
||||
10 (Confidentiality), Section 11.1 (Limited Warranty) and Section 12 (Indemnification by Skuid), the entire risk
|
||||
arising out of use or performance of the Skuid Services remains with You.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Warranty on Pro Services.</strong> Skuid warrants and represents
|
||||
that it and its employees and agents have all training, skills, tools, and equipment necessary to competently
|
||||
perform the Pro Services described herein and that such Pro Services shall be performed in a timely, professional,
|
||||
and high-quality manner. To the extent permitted by law, Skuid makes no other warranties on Pro Services, whether
|
||||
written, oral, or implied including without limitation the implied warranties of merchantability and fitness for a
|
||||
particular purpose.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Mutual Warranties.</strong> Each party represents and warrants
|
||||
that (i) it has the legal power to enter into this Agreement, and (ii) it will not transmit to the other party any
|
||||
Malicious Code.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
12. Indemnification by Skuid</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Indemnification.</strong> Skuid will indemnify, defend, and hold
|
||||
You harmless against any claim, demand, suit, or proceeding (“Claim”) made or brought against You
|
||||
alleging that the use of the Skuid Services as permitted hereunder infringes or misappropriates the intellectual
|
||||
property rights of a third party. Skuid’s obligations in this Section 12 are void if You fail to (a) give
|
||||
prompt written notice of the Claim; (b) give Skuid sole control of the defense and settlement of the Claim (provided
|
||||
that Skuid may not, without Your prior approval, settle any Claim unless the settlement unconditionally releases You
|
||||
of all liability); and (c) provided to Skuid all reasonable assistance, at Skuid’s expense.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Injunction.</strong> If an injunction is issued against Your use
|
||||
of the Skuid Services due to a covered infringement, or if in Skuid’s judgment any Skuid Services are likely
|
||||
to become the subject of a successful claim of infringement, Skuid may at its option and expense: (i) procure for
|
||||
You the right to use such services, or (ii) replace or modify such services so they become non-infringing, or if
|
||||
options (i) and (ii) are not available despite Skuid’s commercially reasonable efforts, (iii) terminate the
|
||||
subscriptions granted under this Agreement, disable Your access to the Skuid Services, and refund to You an amount
|
||||
equal to the amortized Subscription Fee paid by You for the remainder of the term.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Limitation.</strong> This Section 12 states Skuid’s sole
|
||||
liability to You, and Your exclusive remedy against Skuid for any type of Claim described in this Section. Skuid
|
||||
shall have no obligation to You to the extent a Claim arises from (i) any modification of the Skuid Services not
|
||||
performed by Skuid or (ii) any failure to use corrections or enhancements made available to You that would have
|
||||
rendered the Skuid Services non-infringing, or (iii) any use of the Skuid Services in combination with any product
|
||||
or information not supplied or recommended by Skuid except where combination is required to utilize the Skuid
|
||||
Services.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
13. Indemnification by You</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Indemnification.</strong> You will indemnify, defend, and hold
|
||||
harmless Skuid against any Claim made or brought against Skuid relating to (i) the content or use of Your Data, or
|
||||
(ii) Your use of the Skuid Services in violation of any term of this Agreement, provided that Skuid (a) promptly
|
||||
gives You written notice of the Claim; (b) gives You sole control of the defense and settlement of the Claim
|
||||
(provided that You may not, without Skuid’s prior approval, settle any Claim unless the settlement
|
||||
unconditionally release Skuid of all liability); and (c) provide to You all reasonable assistance, at Your expense.
|
||||
</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
14. Limitation of Liability</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Limitation of Liability.</strong> Except with respect to a
|
||||
breach of Skuid’s obligation of confidentiality or its indemnity obligations, in no event shall Skuid be
|
||||
liable for: (i) any special, indirect, incidental, exemplary, punitive, consequential damages, loss of revenues or
|
||||
loss or inaccuracy of Data or cost of procurement of substitute goods, services or technology, even if Skuid has
|
||||
been notified of the possibility of such damages; or (ii) damages in excess of the amount of fees paid by You under
|
||||
this Agreement during the 12 months prior to the event giving rise to the claim. The foregoing limitation of
|
||||
liability shall apply to any claim arising under or relating to this Agreement, the Skuid Services, Pro Services or
|
||||
any other services provided by Skuid under any theory of liability including contract, strict liability, indemnity,
|
||||
tort (including negligence), or otherwise. Limitation of liability for transfer, protection, storage, security, or
|
||||
confidentiality of Your Data is governed by Your applicable third-party Data Platform provider agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Exclusion of Consequential and Related Damages.</strong> Except
|
||||
with respect to breaches of Section 10 (Confidentiality), Section 12 (Indemnification by Skuid), or Section 13
|
||||
(Indemnification by You) in no event shall either party have any liability to the other party for any lost profits
|
||||
or revenues or for any indirect, special, incidental, consequential, cover or punitive damages however caused,
|
||||
whether in contract, tort or under any other theory of liability, and whether or not the party has been advised of
|
||||
the possibility of such damages. The foregoing disclaimer shall not apply to the extent prohibited by applicable
|
||||
law.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
15. Terms and Termination</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Term of Agreement.</strong> This Agreement commences on the
|
||||
Effective Date and continues, unless earlier terminated, until the later of expiration or termination of all user
|
||||
subscriptions granted under an Order Form.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Renewals.</strong> Skuid charges and collects in advance for use
|
||||
of the Skuid Services. Unless otherwise set forth in an applicable Order Form, subscriptions will automatically
|
||||
renew for additional periods equal to the shorter of the expiring subscription term or one year, unless either party
|
||||
gives notice of nonrenewal at least thirty (30) days prior to the end of the Term, as it may have been previously
|
||||
extended. The renewal charge will be equal to the then-current number of total user subscriptions times the
|
||||
then-current, generally applicable subscription fee unless specified otherwise on an applicable Order Form.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Termination for Cause.</strong> A party may terminate this
|
||||
Agreement for cause: (i) upon thirty (30) days written notice to the other party of a material breach, if the breach
|
||||
remains uncured at the expiration of such period, or (ii) if the other party becomes the subject of a petition in
|
||||
bankruptcy or any other proceeding relating to insolvency, receivership, liquidation, or assignment for the benefit
|
||||
of creditors.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Refund or Payment upon Termination.</strong> Upon any
|
||||
termination for cause by You, Skuid will refund any prepaid fees covering the remainder of the Term of all
|
||||
subscriptions after the effective date of termination. Upon any termination for cause by Skuid, You will not be
|
||||
entitled to a refund of any prepaid fees. You will pay any unpaid subscription fees otherwise due as of the
|
||||
termination date, and You will pay any other outstanding balances owed to Skuid.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Return of Your Metadata.</strong> Skuid will provide Your
|
||||
Metadata to You upon request.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Surviving Provisions.</strong> All obligations relating to
|
||||
non-use and non-disclosure of Confidential Information, indemnity, limitation of liability, and such other terms
|
||||
which by their nature survive termination, will survive termination of this Agreement.</li>
|
||||
</ol>
|
||||
<h3
|
||||
style="box-sizing: border-box; margin-top: 3rem; margin-bottom: 1rem; font-family: Moon, Arial, sans-serif; font-size: 1.75rem; line-height: 1.28em; font-weight: 600; letter-spacing: -0.03em; color: rgb(27, 28, 29); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
16. Miscellaneous Provisions</h3>
|
||||
<ol
|
||||
style="box-sizing: border-box; margin-top: 1rem; margin-bottom: 1rem; padding-left: 40px; overflow: hidden; color: rgb(27, 28, 29); font-family: Inter, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Export Compliance.</strong> Each party shall comply with the
|
||||
export laws and regulations of the United States and other applicable jurisdictions in providing and using the Skuid
|
||||
Services. Without limiting the foregoing, (i) each party represents that it is not named on any U.S. government list
|
||||
of persons or entities prohibited from receiving exports, (ii) You shall not permit Users to access or use the Skuid
|
||||
Services in violation of any U.S. export embargo, prohibition, or restriction, and (iv) You will not export,
|
||||
re-export, divert, transfer, or disclose any portion of the Skuid Services or any related technical information or
|
||||
materials, directly or indirectly, in violation of any applicable export law or regulation.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Relationship of the Parties.</strong> The parties are
|
||||
independent contractors. This Agreement does not create a partnership, franchise, joint venture, agency, fiduciary,
|
||||
or employment relationship between the parties. There are no third-party beneficiaries to this Agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Non-solicitation.</strong> Neither party shall during the term
|
||||
of this Agreement and for a period of 1 year immediately following the termination of this Agreement, or any
|
||||
extension of it, for any reason, either directly or indirectly, knowingly recruit or solicit for employment any of
|
||||
the other party’s employees.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Waiver and Cumulative Remedies.</strong> No waiver of any
|
||||
provision of this Agreement will be effective unless in writing and signed by the party against whom such waiver is
|
||||
sought to be enforced. A waiver of any provision of this Agreement by either party will not be construed as a waiver
|
||||
of any other provision of this Agreement, nor will such waiver operate as or be construed as a waiver of such
|
||||
provision respecting any future event or circumstance. Other than as expressly stated herein, the remedies provided
|
||||
herein are in addition to, and not exclusive of, any other remedies of a party at law or in equity.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Severability.</strong> If any provision of this Agreement is
|
||||
held by a court of competent jurisdiction to be contrary to law, the provision shall be modified by the court and
|
||||
interpreted so as best to accomplish the objectives of the original provision to the fullest extent permitted by
|
||||
law, and the remaining provisions of this Agreement shall remain in effect.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Notices.</strong> If notice or demand is required or permitted
|
||||
to be given or served by either party to this Agreement to or on the other, the notice or demand must be given or
|
||||
served in writing and served personally or forwarded by certified or registered mail, return receipt requested, or
|
||||
by guaranteed overnight courier service, addressed to Skuid at 605 Chestnut Street, Suite 700, Chattanooga, TN 37450
|
||||
or dept.legal@skuid.com, or to You at the email address You have provided. The date of service of a notice served by
|
||||
mail or overnight courier service will be the date of receipt or refusal of receipt. Either party may change its
|
||||
address by written notice to the other.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Governing Law and Jurisdiction.</strong> This Agreement and the
|
||||
respective rights and obligations of the parties hereto shall be governed by and construed in accordance with the
|
||||
laws of the State of Tennessee and controlling United States law, without giving effect to choice of law principles.
|
||||
The parties hereto consent to the jurisdiction of the courts in Chattanooga, Tennessee.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Waiver of Jury Trial.</strong> Each party hereby waives any
|
||||
right to jury trial in connection with any action or litigation in any way arising out of or related to this
|
||||
Agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Attorney Fees.</strong> Should either party bring an action to
|
||||
enforce the terms of this Agreement, the prevailing party shall be entitled to recover its reasonable
|
||||
attorneys’ fees and costs from the other party.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Language and Headings.</strong> This Agreement has been prepared
|
||||
in the English language and such version shall be controlling in all respects and any non-English version of this
|
||||
Agreement is solely for accommodation purposes. The captions and headings appearing in this Agreement are for
|
||||
reference only and will not be considered in construing this Agreement.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Assignment.</strong> Neither party may assign any of its rights
|
||||
or obligations hereunder, whether by operation of law or otherwise, without the prior written consent of the other
|
||||
party (not to be unreasonably withheld). Notwithstanding the foregoing, Skuid may assign this Agreement in its
|
||||
entirety, without Your consent, to its Affiliate or in connection with a merger, acquisition, corporate
|
||||
reorganization, or sale of all or substantially all of its assets not involving a direct competitor of the other
|
||||
party. A party’s sole remedy for any purported assignment by the other party in breach of this paragraph shall
|
||||
be, at the non-assigning party’s election, termination of this Agreement upon written notice to the assigning
|
||||
party. Subject to the foregoing, this Agreement shall bind and inure to the benefit of the parties, their respective
|
||||
successors and permitted assigns.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Entire Agreement.</strong> This Agreement, including any Order
|
||||
Forms, constitutes the entire agreement between the parties and supersedes all prior and contemporaneous agreements,
|
||||
proposals, or representations, written or oral, concerning its subject matter. No modification, amendment, or waiver
|
||||
of any provision of this Agreement or any Order Form, shall be effective unless in writing and either signed or
|
||||
accepted electronically by the party against whom the modification, amendment or waiver is to be asserted. To the
|
||||
extent of any conflict or inconsistency between the provisions in the body of this Agreement and any Order Form,
|
||||
such Order Form shall prevail. Notwithstanding any language to the contrary therein, no terms or conditions stated
|
||||
in forms (such as purchase orders or invoices) provided by either party with preprinted or “boilerplate”
|
||||
language shall be incorporated into or form any part of this Agreement, and all such terms or conditions shall be
|
||||
null and void.</li>
|
||||
<li style="box-sizing: border-box; margin-bottom: 1.5rem;"><strong
|
||||
style="box-sizing: border-box; font-weight: 600;">Force Majeure.</strong> Except for Your payment obligations,
|
||||
neither party shall be liable to the other for any loss or damage due to delay or failure to perform due to flood,
|
||||
riot, insurrection, fire, earthquake, strike, communication line failure and power failure, explosion, act of God,
|
||||
death or incapacitating illness or injury to key personnel, or any other force or cause beyond the reasonable
|
||||
control of the party.</li>
|
||||
</ol>
|
||||
</content>
|
||||
<button class="np-button" id='eula-button' style="width: 160px; height: 50px; margin-bottom: 30px; margin-left: 15%;">
|
||||
Return to registration
|
||||
</button>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
$('#eula-button').click(function() {
|
||||
if (!history.back()) {
|
||||
close();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@ -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" style="border-radius: 7%/55%;">
|
||||
{% t .button_label %}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
@ -0,0 +1,364 @@
|
||||
{% comment %} skip-auth {% endcomment %}
|
||||
{% if current_person.signed_in? %}
|
||||
{% assign countComplete = 0 %}
|
||||
{% assign countInProgress = 0 %}
|
||||
{% assign countNotStarted = 0 %}
|
||||
{% assign countTotal = 0 | times: 1.0 %}
|
||||
{% for course in courses.enrolled %}
|
||||
{% assign countTotal = countTotal | plus: 1 %}
|
||||
{% if course.progress == 100 %}
|
||||
{% assign countComplete = countComplete | plus: 1 %}
|
||||
{% endif %}
|
||||
{% if course.progress > 0 and course.progress < 100 %}
|
||||
{% assign countInProgress=countInProgress | plus: 1 %}
|
||||
{% endif %}
|
||||
{% if course.progress==0 %}
|
||||
{% assign countNotStarted=countNotStarted | plus: 1 %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% assign view_more_counter = 0 %}
|
||||
|
||||
{% include "header" %}
|
||||
{% unless current_person.signed_in? %}
|
||||
{% include 'welcome_hero' %}
|
||||
{% endunless %}
|
||||
<div class="page-container">
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<div class="np-hidden-mobile custom-sub-navigation">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
<main class="np-main np-dashboard np-subpage-container np-max-width custom-main">
|
||||
{% if current_person.signed_in? %}
|
||||
{% include 'welcome_hero' %}
|
||||
{% include 'statistics' %}
|
||||
|
||||
<div class="np-hidden-mobile">
|
||||
{% include 'overview_video' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% unless current_person.signed_in? %}
|
||||
<div class="learning-path-not-logged">
|
||||
{% include 'learning_paths_collection' %}
|
||||
</div>
|
||||
|
||||
<h2 class="no-course-message" style="display: none;">No courses for this filter!</h2>
|
||||
{% include "course_collection_unlogged" %}
|
||||
<div class="np-hidden-desktop">
|
||||
<div class="np-catalog-courses row row-with-thumbnails homepage-courses">
|
||||
{% for course in courses.in_catalog %}
|
||||
{% if view_more_counter < 4%}
|
||||
{% assign view_more_counter = view_more_counter | plus: 1%}
|
||||
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content">
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content view-more-hidden">
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% endif%}
|
||||
{% endfor %}
|
||||
|
||||
{% if view_more_counter >= 4%}
|
||||
<button class="np-top-button np-button-font-color np-button np-button-big view-more-button" onclick="viewMore()">View More</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endunless %}
|
||||
|
||||
{% if current_person.signed_in? %}
|
||||
<div class="row np-flex-center homepage-courses-lp-container">
|
||||
<div class="col-xs-12 col-sm-8 main-dashboard">
|
||||
{% if features.learning_paths? %}
|
||||
<div>
|
||||
<div class="lp-and-recently-completed-course-container np-hidden-mobile">
|
||||
<div style="width: 64%">
|
||||
{% if learning_paths.enrolled.any? %}
|
||||
{% include "learning_paths_index_homepage", items: learning_paths.enrolled %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div style="width: 31%">
|
||||
{% include 'recent_course' %}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
{% include 'dashboard_course_filter' %}
|
||||
<h2 class="no-course-message" style="display: none;">No courses for this filter!</h2>
|
||||
{% include "course_collection" %}
|
||||
<div class="np-hidden-desktop">
|
||||
<div class="np-catalog-courses row row-with-thumbnails homepage-courses">
|
||||
{% for course in courses.enrolled %}
|
||||
{% if view_more_counter < 4 %}
|
||||
{% assign view_more_counter = view_more_counter | plus: 1%}
|
||||
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content">
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-xs-12 col-md-6 col-lg-4 np-stretch-content view-more-hidden">
|
||||
{% include "cards_course" with course, class: "" %}
|
||||
</div>
|
||||
{% endif%}
|
||||
{% endfor %}
|
||||
|
||||
{% if view_more_counter >= 4%}
|
||||
<button class="np-top-button np-button-font-color np-button np-button-big view-more-button" onclick="viewMore()">View More</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script crossorigin="anonymous" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js" type="text/javascript"></script>
|
||||
{% include "footer" %}
|
||||
|
||||
<script>
|
||||
function initializeCarousel(slickContainerClass, visibleSlides) {
|
||||
$(slickContainerClass).slick({
|
||||
slidesToShow: visibleSlides,
|
||||
slidesToScroll: 1,
|
||||
dots: false,
|
||||
infinite: true,
|
||||
cssEase: 'linear',
|
||||
prevArrow: '<svg viewBox="0 0 20 20" class="_1ycOA _left"><path d="M12 16a.997.997 0 0 1-.707-.293l-5-5a.999.999 0 0 1 0-1.414l5-5a.999.999 0 1 1 1.414 1.414L8.414 10l4.293 4.293A.999.999 0 0 1 12 16" fill-rule="evenodd"></path></svg>',
|
||||
nextArrow: '<svg viewBox="0 0 20 20" class="_1ycOA _right"><path d="M8 16a.999.999 0 0 1-.707-1.707L11.586 10 7.293 5.707a.999.999 0 1 1 1.414-1.414l5 5a.999.999 0 0 1 0 1.414l-5 5A.997.997 0 0 1 8 16" fill-rule="evenodd"></path></svg>'
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
initializeCarousel('.carousel', 3)
|
||||
|
||||
var slider = tns({
|
||||
container: `.lp-carousel`,
|
||||
items: 1,
|
||||
nav: false,
|
||||
mouseDrag: true,
|
||||
autoHeight: true,
|
||||
autoplay: false,
|
||||
controls: true,
|
||||
autoplayButtonOutput: false,
|
||||
navPosition: 'bottom',
|
||||
controlsText: ['<i class="fas fa-chevron-left"></i>', '<i class="fas fa-chevron-right"></i>']
|
||||
});
|
||||
})
|
||||
|
||||
function textDisplayCount() {
|
||||
let courseCount = $('#dash-sort').children().length;
|
||||
return courseCount
|
||||
}
|
||||
function selectAll() {
|
||||
$(".select-selected").html("All").change();
|
||||
filterCourse()
|
||||
$(".select-items div").each(function () {
|
||||
if ($(this).text() == $(".select-selected").text()) {
|
||||
$(this).addClass("same-as-selected");
|
||||
} else {
|
||||
$(this).removeClass("same-as-selected");
|
||||
}
|
||||
});
|
||||
$(".missing").hide();
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.tns-item img {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
[data-controls="prev"] {
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
[data-controls="next"] {
|
||||
margin-right: -3%;
|
||||
}
|
||||
|
||||
.tns-outer {
|
||||
position: relative;
|
||||
box-shadow: 5px 5px 0px rgb(128 173 220 / 32%);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.tns-controls {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
top: 50%;
|
||||
transform: translate(0,-50%);
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.tns-controls > * {
|
||||
border: none;
|
||||
letter-spacing: 0.01em !important;
|
||||
line-height: 0;
|
||||
touch-action: manipulation;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
text-size-adjust: 100%;
|
||||
--polaris-version-number: "4.27.0";
|
||||
--polaris-animation-skeleton-shimmer: polaris-SkeletonShimmerAnimation;
|
||||
--toast-translate-y-out: 15rem;
|
||||
--toast-translate-y-in: 0;
|
||||
--global-ribbon-height: 0px;
|
||||
--p-text-subdued: #6d7175;
|
||||
--p-card-shadow: 0 0.2rem 0.4rem #dfe3e8;
|
||||
--top-bar-background: #00848e;
|
||||
--top-bar-background-lighter: #1d9ba4;
|
||||
--top-bar-color: #f9fafb;
|
||||
--p-frame-offset: 0px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI,
|
||||
Roboto, Helvetica Neue, sans-serif;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
fill: #292824;
|
||||
vertical-align: middle;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
box-shadow: 0 0 1px rgba(66, 71, 76, 0.45), 0 2px 1px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
@media (min-width: 769px) and (max-width: 1024px) {
|
||||
.custom-sub-navigation {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.custom-main {
|
||||
width: 70%;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.np-homepage-hero-image {
|
||||
min-height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1025px) and (max-width: 2500px) {
|
||||
.custom-sub-navigation {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.custom-main {
|
||||
width: 75%;
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* @media (min-width: 1025px) {
|
||||
.badges {
|
||||
width: 19%;
|
||||
}
|
||||
} */
|
||||
.recent-view-header {
|
||||
text-align:center;
|
||||
}
|
||||
@media (min-width: 1025px) and (max-width: 2500px) {
|
||||
.recent-view-header {
|
||||
padding-top: 1%;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2501px) {
|
||||
.recent-view-header {
|
||||
padding: 5px 110px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.learning-path-not-logged {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 130px;
|
||||
width: 94%;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.homepage-courses-lp-container {
|
||||
--bs-gutter-x: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.homepage-courses {
|
||||
max-width: 90%;
|
||||
width: 90%;
|
||||
margin-right: auto !important;
|
||||
margin-left: auto !important;
|
||||
}
|
||||
|
||||
.lp-carousel > .slick-list > .slick-track{
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@media (min-width: 1500px) {
|
||||
.lp-carousel > .slick-list > .slick-track > .course-slide > .np-card-container{
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.lp-carousel > .slick-list {
|
||||
box-shadow: 5px 5px 0px rgb(128 173 220 / 32%);
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.lp-and-recently-completed-course-container {
|
||||
margin-bottom: 30px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.branding-message {
|
||||
padding: 55px 0;
|
||||
text-align: center;
|
||||
font-family: F37 Moon !important;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.main-dashboard {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.np-learning-paths-resources {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.np-learning-paths-resources > .np-card {
|
||||
padding: 0;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
@media(min-width: 769px) {
|
||||
.np-learning-paths-resources > .np-card > .np-card-container {
|
||||
height: 138%;
|
||||
}
|
||||
|
||||
.np-learning-path {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.np-learning-path-image {
|
||||
width: 40%;
|
||||
}
|
||||
}
|
||||
|
||||
.np-card-text-wrapper {
|
||||
display: flex;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,15 @@
|
||||
{% include "header" %}
|
||||
<div class="page-container">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
{% include "footer" %}
|
||||
@ -0,0 +1,49 @@
|
||||
{% include "header" %}
|
||||
<div class="page-container">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
<main class="np-main np-learning-paths np-subpage-container np-max-width">
|
||||
<div class="np-learning-paths-main">
|
||||
<div class="np-resource-title np-hidden-mobile">
|
||||
{% t shared.learning_paths %}
|
||||
</div>
|
||||
<div class="np-hidden-desktop lp-title">Learning Paths</div>
|
||||
<div class="np-resource-subtitle np-hidden-mobile">
|
||||
{% t .subtitle %}
|
||||
</div>
|
||||
<div class="np-hidden-desktop lp-subtitle">Explore curated sets of courses for a tailored learning experience.</div>
|
||||
{% include "learning_paths_index", items: learning_paths.available %}
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
{% include "footer" %}
|
||||
|
||||
<style>
|
||||
@media (max-width: 768px) {
|
||||
.np-learning-paths {
|
||||
padding: 25px 5% 0;
|
||||
}
|
||||
|
||||
.lp-title {
|
||||
font-family: F37 Moon;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.lp-subtitle {
|
||||
font-family: F37 Moon;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 769px) {
|
||||
.np-card-content-description {
|
||||
display: block;
|
||||
min-height: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
171
NP_Custom_Templates/customer_templates/Skuid/login.html.liquid
Normal file
171
NP_Custom_Templates/customer_templates/Skuid/login.html.liquid
Normal file
@ -0,0 +1,171 @@
|
||||
<body>
|
||||
{% include "header" %}
|
||||
<main class="np-main np-box-container">
|
||||
<div class="np-box">
|
||||
<img class="hero-image-left-desktop" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/SkuidSkool-RegisterHero.svg">
|
||||
<img class="hero-image-left-mobile" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/skuid+skool+V3.svg">
|
||||
<div class="np-box-content-container">
|
||||
<form class="np-form np-box-content" action="{% route login %}" method="post" novalidate>
|
||||
<div class="np-form-title"> Welcome to Skuid Skool </div>
|
||||
<div class="np-form-subtitle"> Login below </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="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" style="border-radius: 56px;">
|
||||
{% 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>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
{% include "footer" %}
|
||||
</body>
|
||||
|
||||
<style>
|
||||
.np-main {
|
||||
margin: 25px 0;
|
||||
}
|
||||
.np-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: unset !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
.np-box-container {
|
||||
height: unset !important;
|
||||
}
|
||||
.hero-image-left-desktop {
|
||||
width: 60%;
|
||||
}
|
||||
.hero-image-left-mobile {
|
||||
width: 100%;
|
||||
display: none;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 2rem 0 2rem 2.25rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.np-form-title {
|
||||
font-weight: 600;
|
||||
color: #1B1C1D;
|
||||
font-size: 28px;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.np-form-subtitle {
|
||||
color: #1B1C1D;
|
||||
font-size: 16px;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
.np-input {
|
||||
background-color: #FFF6F0;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.np-input::placeholder {
|
||||
color: #6F7277;
|
||||
font-size: 16px;
|
||||
}
|
||||
#default-option {
|
||||
color: #6F7277;
|
||||
font-size: 16px;
|
||||
}
|
||||
.selection-option {
|
||||
font-family: Inter;
|
||||
}
|
||||
.body {
|
||||
height: 100%;
|
||||
}
|
||||
#learner_role {
|
||||
color: #1B1C1D;
|
||||
text-align: left;
|
||||
text-align-last: left;
|
||||
}
|
||||
@media only screen and (min-width: 1190px) {
|
||||
.hero-image-left-desktop {
|
||||
min-width: 60%;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-right: 40px;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 768px) {
|
||||
.np-box-content-container {
|
||||
padding: 2rem 2rem 2.25rem;
|
||||
}
|
||||
.hero-image-left-desktop {
|
||||
display: none;
|
||||
}
|
||||
.hero-image-left-mobile {
|
||||
display: block;
|
||||
}
|
||||
.np-box {
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
}
|
||||
.np-main {
|
||||
margin: 0;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
#send_button {
|
||||
pointer-events: none;
|
||||
background-color: #6F7277;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
document.getElementById("header").scrollIntoView();
|
||||
|
||||
if ($('.np-alert-wrapper>div>p>strong').text() === 'Ooops! Please try again.') {
|
||||
$('.np-alert-wrapper>div>p>strong').text('Oops! Please try again.')
|
||||
}
|
||||
</script>
|
||||
@ -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" style="border-radius: 7%/55%;">
|
||||
{% t .change_password %}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
@ -0,0 +1,45 @@
|
||||
{% include "header" %}
|
||||
<div class="page-container">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
{% include "footer" %}
|
||||
|
||||
<style>
|
||||
@media (max-width: 768px) {
|
||||
.np-search {
|
||||
padding: 25px 5% 0;
|
||||
}
|
||||
}
|
||||
|
||||
.np-filter {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -0,0 +1,302 @@
|
||||
{% for group in current_person.groups %}
|
||||
{% if group.id == "29ae12e6-f740-4190-a5c2-a7e12e87926f" or group.id == "aa36069f-e354-4dbe-9972-9ce70ad146d7" or group.id == "8cd6ec9c-101e-4b1a-82c7-77dac583a1f5" %}
|
||||
<script>
|
||||
window.location.replace('/app');
|
||||
</script>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<body>
|
||||
{% include "header" %}
|
||||
<main class="np-main np-box-container">
|
||||
<div class="np-box">
|
||||
<img class="hero-image-left-desktop" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/SkuidSkool-RegisterHero.svg">
|
||||
<img class="hero-image-left-mobile" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/skuid+skool+V3.svg">
|
||||
<div class="np-box-content-container">
|
||||
<form id="register-form" class="np-form np-box-content" novalidate>
|
||||
<div class="np-form-title"> Welcome to Skuid Skool </div>
|
||||
<div class="np-form-subtitle"> We need a little more information to tailor the best courses to your role </div>
|
||||
{% form_authenticity_token %}
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_company">
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="text"
|
||||
name="learner[company]"
|
||||
id="learner_company"
|
||||
placeholder="Company"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_title">
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="text"
|
||||
name="learner[title]"
|
||||
id="learner_title"
|
||||
placeholder="Job Title"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_role">
|
||||
</label>
|
||||
<select
|
||||
class="np-input"
|
||||
name="learner[role]"
|
||||
id="learner_role"
|
||||
required
|
||||
>
|
||||
<option class="default-option" disabled selected id="default-option">Your Skuid Builder Role</option>
|
||||
<option class="selection-option" value="developer">Developer</option>
|
||||
<option class="selection-option" value="salesforce-administrator">Salesforce Administrator</option>
|
||||
<option class="selection-option" value="other">Other</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
<button id="send_button" onclick="SendInfos()" class="np-button np-button-big np-button-large-font np-form-action" style="border-radius: 56px;">
|
||||
Update Information
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
{% include "footer" %}
|
||||
</body>
|
||||
|
||||
<style>
|
||||
@media (min-width: 1440px) {
|
||||
#password-too-short-alert {
|
||||
position: absolute;
|
||||
right: 25.5%;
|
||||
bottom: 23%;
|
||||
color: salmon;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#passwords-dont-match-alert {
|
||||
position: absolute;
|
||||
right: 23%;
|
||||
bottom: 14.5%;
|
||||
color: salmon;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 769px) and (max-width: 1024px) {
|
||||
#password-too-short-alert {
|
||||
position: absolute;
|
||||
right: 24%;
|
||||
bottom: 23%;
|
||||
color: salmon;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#passwords-dont-match-alert {
|
||||
position: absolute;
|
||||
right: 21.5%;
|
||||
bottom: 14.5%;
|
||||
color: salmon;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 426px) and (max-width: 768px) {
|
||||
.np-box-content-container {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 376px) and (max-width: 425px) {
|
||||
.np-input {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 326px) and (max-width: 375px) {
|
||||
.np-input {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 325px) {
|
||||
.np-input {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.np-main {
|
||||
margin: 25px 0;
|
||||
}
|
||||
.np-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: unset !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
.np-box-container {
|
||||
height: unset !important;
|
||||
background: none;
|
||||
}
|
||||
.hero-image-left-desktop {
|
||||
width: 60%;
|
||||
}
|
||||
.hero-image-left-mobile {
|
||||
width: 100%;
|
||||
display: none;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 2rem 0 2rem 2.25rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.np-form-title {
|
||||
font-weight: 600;
|
||||
color: #1B1C1D;
|
||||
font-size: 28px;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.np-form-subtitle {
|
||||
color: #1B1C1D;
|
||||
font-size: 16px;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
.np-input {
|
||||
background-color: #FFF6F0;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.np-input::placeholder {
|
||||
color: #6F7277;
|
||||
font-size: 16px;
|
||||
}
|
||||
#default-option {
|
||||
color: #6F7277;
|
||||
font-size: 16px;
|
||||
}
|
||||
.selection-option {
|
||||
font-family: Inter;
|
||||
}
|
||||
.body {
|
||||
height: 100%;
|
||||
}
|
||||
#learner_role {
|
||||
color: #1B1C1D;
|
||||
text-align: left;
|
||||
text-align-last: left;
|
||||
}
|
||||
@media only screen and (min-width: 1190px) {
|
||||
.hero-image-left-desktop {
|
||||
min-width: 60%;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-right: 40px;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 768px) {
|
||||
.np-box-content-container {
|
||||
padding: 2rem 2rem 2.25rem;
|
||||
}
|
||||
.hero-image-left-desktop {
|
||||
display: none;
|
||||
}
|
||||
.hero-image-left-mobile {
|
||||
display: block;
|
||||
}
|
||||
.np-box {
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
}
|
||||
.np-main {
|
||||
margin: 0;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
#send_button {
|
||||
pointer-events: none;
|
||||
background-color: #6F7277;
|
||||
}
|
||||
|
||||
.loader {
|
||||
border: 16px solid #f3f3f3;
|
||||
border-radius: 50%;
|
||||
border-top: 16px solid #00bf8f;
|
||||
border-bottom: 16px solid #00bf8f;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
|
||||
|
||||
position: absolute;
|
||||
top:0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0% { -webkit-transform: rotate(0deg); }
|
||||
100% { -webkit-transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(360deg); }
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
document.getElementById("header").scrollIntoView();
|
||||
|
||||
function checkIfInputsExist (){
|
||||
window.setTimeout(function(){
|
||||
if ($("#learner_company")[0].value.length * $("#learner_title")[0].value.length && $("#learner_role")[0].value != "Your Skuid Builder Role") {
|
||||
$("#send_button").css("background-color","#005cb9");
|
||||
$("#send_button").css("pointer-events","auto");
|
||||
}
|
||||
else {
|
||||
$("#send_button").css("background-color","#6F7277");
|
||||
$("#send_button").css("pointer-events","none");
|
||||
}
|
||||
}, 500)
|
||||
}
|
||||
document.addEventListener('keydown', checkIfInputsExist);
|
||||
document.getElementById("learner_role").addEventListener('change', checkIfInputsExist);
|
||||
|
||||
function SendInfos() {
|
||||
var xhr = new XMLHttpRequest();
|
||||
url = "https://www.workato.com/webhooks/rest/bd1a1eb7-7e79-4208-a1db-8e9c7440bcc9/user_registration"
|
||||
xhr.addEventListener("load", e => {
|
||||
var a = new URLSearchParams(window.location.search);
|
||||
var b = a.get('redirect_uri');
|
||||
new_url = '/app/waiting-room'.concat('?redirect_uri=', b);
|
||||
window.location.replace(new_url);
|
||||
});
|
||||
xhr.open("POST", url, true);
|
||||
xhr.send(JSON.stringify({
|
||||
user_id: '{{ current_person.id }}',
|
||||
company: $("#learner_company")[0].value,
|
||||
title: $("#learner_title")[0].value,
|
||||
role: $("#learner_role")[0].value
|
||||
}));
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.np-box-container {
|
||||
background: none;
|
||||
}
|
||||
</style>
|
||||
362
NP_Custom_Templates/customer_templates/Skuid/sign_up.html.liquid
Normal file
362
NP_Custom_Templates/customer_templates/Skuid/sign_up.html.liquid
Normal file
@ -0,0 +1,362 @@
|
||||
{% if current_person.signed_in? %}
|
||||
<script>
|
||||
window.location.replace('/app')
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<body>
|
||||
{% include "header" %}
|
||||
{% include "messages" %}
|
||||
<main class="np-main np-box-container">
|
||||
<div class="np-box">
|
||||
<img class="hero-image-left-desktop" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/SkuidSkool-RegisterHero.svg">
|
||||
<img class="hero-image-left-mobile" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/skuid+skool+V3.svg">
|
||||
<div class="np-box-content-container">
|
||||
<form id="register-form" class="np-form np-box-content" action="{% route sign_up %}" method="post" novalidate>
|
||||
<div class="np-form-title"> Welcome to Skuid Skool </div>
|
||||
<div class="np-form-subtitle"> Complete your profile below </div>
|
||||
{% form_authenticity_token %}
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_first_name">
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="text"
|
||||
name="learner[first_name]"
|
||||
id="learner_first_name"
|
||||
placeholder="First Name"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_last_name">
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="text"
|
||||
name="learner[last_name]"
|
||||
id="learner_last_name"
|
||||
placeholder="Last Name"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_email">
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="email"
|
||||
name="learner[email]"
|
||||
id="learner_email"
|
||||
placeholder="Email"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_password">
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="password"
|
||||
name="learner[password]"
|
||||
id="learner_password"
|
||||
placeholder="Password"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
<p style="display: none;" id="password-too-short-alert">Password must be minimum 8 characters and contain at least 1 uppercase letter, 1 number, and 1 special character</p>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="learner_second_password">
|
||||
</label>
|
||||
<input
|
||||
class="np-input"
|
||||
type="password"
|
||||
name="learner[second-password]"
|
||||
id="learner_second_password"
|
||||
placeholder="Verify Password"
|
||||
required
|
||||
>
|
||||
</div>
|
||||
<div class="np-form-field">
|
||||
<label class="np-input-label" for="hear_about">
|
||||
</label>
|
||||
<select
|
||||
class="np-input"
|
||||
type="text"
|
||||
name="how_did_you_hear"
|
||||
id="how_did_you_hear"
|
||||
required
|
||||
>
|
||||
<option value="" selected>How did you Hear about Skuid Skool?</option>
|
||||
<option value="Colleague or Team Member">Colleague or Team Member</option>
|
||||
<option value="Skuid Team Member/Employee">Skuid Team Member/Employee</option>
|
||||
<option value="Skuid newsletter, email, social media or other form of Skuid communication">Skuid newsletter, email, social media or other form of Skuid communication</option>
|
||||
<option value="Internet Search">Internet Search</option
|
||||
<option value="Other">Other</option>
|
||||
</div>
|
||||
<p style="display: none;" id="passwords-dont-match-alert">Passwords don't match</p>
|
||||
<button type="submit" id="send_button" class="np-button np-button-big np-button-large-font np-form-action" style="border-radius: 56px;" onclick="googleReport(event)">
|
||||
Register
|
||||
</button>
|
||||
</form>
|
||||
{% comment %} <span class="np-form-terms">
|
||||
By submitting this form you agree to the
|
||||
|
||||
<a
|
||||
class="np-form-link np-button-color"
|
||||
target="_blank"
|
||||
href="{{ current_school.terms_of_service_url }}"
|
||||
>
|
||||
Northpass
|
||||
</a>
|
||||
and
|
||||
|
||||
<a
|
||||
class="np-form-link np-button-color"
|
||||
target="_blank"
|
||||
href="/app/eula"
|
||||
>
|
||||
Skuid
|
||||
</a>
|
||||
Terms of Use
|
||||
</span> {% endcomment %}
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
{% include "footer" %}
|
||||
</body>
|
||||
|
||||
<style>
|
||||
#password-too-short-alert {
|
||||
color: salmon;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#passwords-dont-match-alert {
|
||||
color: salmon;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@media (min-width: 426px) and (max-width: 768px) {
|
||||
.np-box-content-container {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 376px) and (max-width: 425px) {
|
||||
.np-input {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 326px) and (max-width: 375px) {
|
||||
.np-input {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 325px) {
|
||||
.np-input {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
.np-main {
|
||||
margin: 25px 0;
|
||||
}
|
||||
.np-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
width: unset !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
.np-box-container {
|
||||
height: unset !important;
|
||||
}
|
||||
.hero-image-left-desktop {
|
||||
width: 60%;
|
||||
}
|
||||
.hero-image-left-mobile {
|
||||
width: 100%;
|
||||
display: none;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding: 2rem 0 2rem 2.25rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.np-form-title {
|
||||
font-weight: 600;
|
||||
color: #1B1C1D;
|
||||
font-size: 28px;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.np-form-subtitle {
|
||||
color: #1B1C1D;
|
||||
font-size: 16px;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
.np-input {
|
||||
background-color: #FFF6F0;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.np-input::placeholder {
|
||||
color: #6F7277;
|
||||
font-size: 16px;
|
||||
}
|
||||
#default-option {
|
||||
color: #6F7277;
|
||||
font-size: 16px;
|
||||
}
|
||||
.selection-option {
|
||||
font-family: Inter;
|
||||
}
|
||||
.body {
|
||||
height: 100%;
|
||||
}
|
||||
#learner_role {
|
||||
color: #1B1C1D;
|
||||
text-align: left;
|
||||
text-align-last: left;
|
||||
}
|
||||
@media only screen and (min-width: 1190px) {
|
||||
.hero-image-left-desktop {
|
||||
min-width: 60%;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-right: 40px;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 768px) {
|
||||
.np-box-content-container {
|
||||
padding: 2rem 2rem 2.25rem;
|
||||
}
|
||||
.hero-image-left-desktop {
|
||||
display: none;
|
||||
}
|
||||
.hero-image-left-mobile {
|
||||
display: block;
|
||||
}
|
||||
.np-box {
|
||||
flex-direction: column;
|
||||
margin: 0;
|
||||
}
|
||||
.np-main {
|
||||
margin: 0;
|
||||
}
|
||||
.np-box-content-container {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
#send_button {
|
||||
pointer-events: none;
|
||||
background-color: #6F7277;
|
||||
}
|
||||
|
||||
.loader {
|
||||
border: 16px solid #f3f3f3;
|
||||
border-radius: 50%;
|
||||
border-top: 16px solid #00bf8f;
|
||||
border-bottom: 16px solid #00bf8f;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
|
||||
|
||||
position: absolute;
|
||||
top:0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0% { -webkit-transform: rotate(0deg); }
|
||||
100% { -webkit-transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% { transform: rotate(0deg); }
|
||||
100% { transform: rotate(360deg); }
|
||||
}
|
||||
.eula-info-box {
|
||||
display: none;
|
||||
position: absolute;
|
||||
padding: 30px;
|
||||
background-color: white;
|
||||
opacity: 0.7;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#eula-info:hover .eula-info-box {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
document.getElementById("header").scrollIntoView();
|
||||
|
||||
function checkIfInputsExist (){
|
||||
window.setTimeout(function(){
|
||||
if ($("#learner_email")[0].value.length >0){
|
||||
if ($("#learner_email")[0].value.match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/)){
|
||||
$("#learner_email").css("background-color", "#FFF6F0")
|
||||
if ($("#learner_password")[0].value.length > 0){
|
||||
if (!$("#learner_password")[0].value.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&.#^+-/()=<>~`:;'",])[A-Za-z\d@$!%*?&.#^+-/()=<>~`:;'",]{8,}$/)) {
|
||||
$("#password-too-short-alert").css("display", "block");
|
||||
$("#learner_password").css("background-color", "salmon");
|
||||
$("#send_button").css("background-color","#6F7277");
|
||||
$("#send_button").css("pointer-events","none");
|
||||
}
|
||||
else {
|
||||
$("#password-too-short-alert").css("display", "none");
|
||||
$("#learner_password").css("background-color", "#FFF6F0");
|
||||
if ($("#learner_password")[0].value == $("#learner_second_password")[0].value){
|
||||
$("#passwords-dont-match-alert").css("display", "none");
|
||||
$("#learner_second_password").css("background-color", "#FFF6F0")
|
||||
if ($("#learner_first_name")[0].value.length * $("#learner_last_name")[0].value.length * $("#learner_email")[0].value.length * $("#learner_password")[0].value.length * $("#learner_second_password")[0].value.length != 0) {
|
||||
$("#send_button").css("background-color","#005cb9");
|
||||
$("#send_button").css("pointer-events","auto");
|
||||
}
|
||||
else {
|
||||
$("#send_button").css("background-color","#6F7277");
|
||||
$("#send_button").css("pointer-events","none");
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("#passwords-dont-match-alert").css("display", "block");
|
||||
$("#learner_second_password").css("background-color", "salmon")
|
||||
$("#send_button").css("background-color","#6F7277");
|
||||
$("#send_button").css("pointer-events","none");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("#send_button").css("background-color","#6F7277");
|
||||
$("#send_button").css("pointer-events","none");
|
||||
}
|
||||
}
|
||||
else {
|
||||
$("#learner_email").css("background-color", "salmon")
|
||||
$("#send_button").css("background-color","#6F7277");
|
||||
$("#send_button").css("pointer-events","none");
|
||||
}
|
||||
}
|
||||
}, 500)
|
||||
}
|
||||
document.addEventListener('keydown', checkIfInputsExist);
|
||||
</script>
|
||||
<script>
|
||||
let googleReport = (event) => {
|
||||
let userData = $('#how_did_you_hear')[0].value;
|
||||
console.log(userData);
|
||||
}
|
||||
</script>
|
||||
@ -0,0 +1,34 @@
|
||||
<script>
|
||||
let enrolledCourses = {
|
||||
{% for course in courses.enrolled %}
|
||||
"{{ course.id }}": "{{ course.name }}",
|
||||
{% endfor %}
|
||||
};
|
||||
if (document.referrer.length == 0) {
|
||||
console.log('no referrer')
|
||||
alert("Error, please contact with your's school admin");
|
||||
setTimeout(history.back(), 4000)
|
||||
}
|
||||
else {
|
||||
let previousLink = document.referrer.split('/');
|
||||
previousLink.pop();
|
||||
let courseUUID = previousLink.pop();
|
||||
let courseName = enrolledCourses[courseUUID];
|
||||
let text = `I just finished ${courseName} Course and loved it. #SkuidSkool`;
|
||||
let link = 'https://skuidskool.com/app';
|
||||
let urls = {
|
||||
"facebook": `https://www.facebook.com/sharer/sharer.php?u=${link}`,
|
||||
"twitter": `https://twitter.com/intent/tweet?url=https://www.skuidskool.com/app&text=${encodeURIComponent(text)}%0A%0A${encodeURIComponent(link)}`,
|
||||
"linkedin": `https://www.linkedin.com/shareArticle?mini=true&url=${link}`
|
||||
}
|
||||
let platform = new URLSearchParams(window.location.search).get('platform')
|
||||
if (urls[platform]) {
|
||||
window.location.replace(urls[platform])
|
||||
}
|
||||
else {
|
||||
console.log('no platform')
|
||||
alert("Error, please contact with your's school admin");
|
||||
setTimeout(history.back(), 4000)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
1025
NP_Custom_Templates/customer_templates/Skuid/styles.css.liquid
Normal file
1025
NP_Custom_Templates/customer_templates/Skuid/styles.css.liquid
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,23 @@
|
||||
{% include "header" %}
|
||||
<div class="page-container">
|
||||
<div class="np-hidden-mobile">
|
||||
{% include "sub_navigation" %}
|
||||
</div>
|
||||
<main class="np-main np-training-events np-subpage-container np-max-width">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-10">
|
||||
<div class="np-resource-title">
|
||||
{% t .title %}
|
||||
</div>
|
||||
<div class="np-resource-subtitle">
|
||||
{% t .subtitle %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-2">
|
||||
{% include "training_events_filter" %}
|
||||
</div>
|
||||
</div>
|
||||
{% include "training_events_index" %}
|
||||
</main>
|
||||
</div>
|
||||
{% include "footer" %}
|
||||
@ -0,0 +1,46 @@
|
||||
{% assign ready = false %}
|
||||
{% if current_person.signed_in? %}
|
||||
{% for group in current_person.groups %}
|
||||
{% if group.id == "29ae12e6-f740-4190-a5c2-a7e12e87926f" or group.id == "aa36069f-e354-4dbe-9972-9ce70ad146d7" or group.id == "8cd6ec9c-101e-4b1a-82c7-77dac583a1f5" %}
|
||||
{% assign ready = true %}
|
||||
{% break %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if ready %}
|
||||
<script>
|
||||
var a = new URLSearchParams(window.location.search);
|
||||
window.location.replace(a.get('redirect_uri'));
|
||||
</script>
|
||||
{% else %}
|
||||
<script>
|
||||
window.setTimeout(function() {
|
||||
window.location.reload(true);
|
||||
}, 3000);
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<main>
|
||||
<img class="image" src="https://s3.amazonaws.com/static.northpass.com/Skuid/images/SkuidSkool-Hero3.png">
|
||||
<div class="text" style="background-color: #CEE8BE;">
|
||||
Please wait while we're configuring the school for you.
|
||||
You’ll be automatically redirected when it's ready
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<style>
|
||||
main {
|
||||
height: 90vh;
|
||||
margin: auto;
|
||||
}
|
||||
.image {
|
||||
width: 90%;
|
||||
margin: 30px auto;
|
||||
display: flex;
|
||||
}
|
||||
.text {
|
||||
margin: 50px auto;
|
||||
font-size: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user