diff --git a/Custom_Templates/customer_templates/.DS_Store b/Custom_Templates/customer_templates/.DS_Store index 15e028b1..465828fc 100644 Binary files a/Custom_Templates/customer_templates/.DS_Store and b/Custom_Templates/customer_templates/.DS_Store differ diff --git a/Custom_Templates/customer_templates/Artera_sandbox/homepage.html.liquid b/Custom_Templates/customer_templates/Artera_sandbox/homepage.html.liquid index dfaced88..cab34bf9 100644 --- a/Custom_Templates/customer_templates/Artera_sandbox/homepage.html.liquid +++ b/Custom_Templates/customer_templates/Artera_sandbox/homepage.html.liquid @@ -146,7 +146,7 @@ } .np-homepage-hero .np-homepage-subheadline { - font-weight: 400; + font-weight: 800; font-size: 18px; line-height: 2em; letter-spacing: .72px; diff --git a/Custom_Templates/customer_templates/SPS_Commerce/_fullfilment_events_index.html.liquid b/Custom_Templates/customer_templates/SPS_Commerce/_fullfilment_events_index.html.liquid new file mode 100644 index 00000000..dcd8e0cc --- /dev/null +++ b/Custom_Templates/customer_templates/SPS_Commerce/_fullfilment_events_index.html.liquid @@ -0,0 +1,8 @@ +
+
+
+ {% include "cards_other_event" title: "Getting Started with Fulfillment Webinars", link: + "https://www.spscommerce.com" %} +
+
+
diff --git a/Custom_Templates/customer_templates/SPS_Commerce/_other_events_index.html.liquid b/Custom_Templates/customer_templates/SPS_Commerce/_other_events_index.html.liquid index b239a150..629b2b84 100644 --- a/Custom_Templates/customer_templates/SPS_Commerce/_other_events_index.html.liquid +++ b/Custom_Templates/customer_templates/SPS_Commerce/_other_events_index.html.liquid @@ -1,13 +1,13 @@
- {% include "cards_other_event" title: "Test Webinar 1", link: "https://google.com" %} + {% include "cards_other_event" title: "SPS Commerce presents MAPADOC Training for Sage 100", link: "https://www.spscommerce.com/lp/mapadoc-training-sage-100/" %}
- {% include "cards_other_event" title: "Test Webinar 2", link: "https://google.com" %} + {% include "cards_other_event" title: "SPS Commerce presents MAPADOC Training for Sage X3", link: "https://www.spscommerce.com/lp/mapadoc-training-sage-x3/" %}
- {% include "cards_other_event" title: "Test Webinar 3", link: "https://google.com" %} + {% include "cards_other_event" title: "SPS Commerce presents MAPADOC Training for Sage 500", link: "https://www.spscommerce.com/lp/mapadoc-training-sage-500/" %}
diff --git a/Custom_Templates/customer_templates/SPS_Commerce/training_events.html.liquid b/Custom_Templates/customer_templates/SPS_Commerce/training_events.html.liquid index dc14dac6..cd4bd0c0 100644 --- a/Custom_Templates/customer_templates/SPS_Commerce/training_events.html.liquid +++ b/Custom_Templates/customer_templates/SPS_Commerce/training_events.html.liquid @@ -24,6 +24,14 @@ {% include "other_events_index" %} +
+
+
+ Fulfillment Webinars +
+
+
+ {% include "fullfilment_events_index" %} {% include "footer" %} diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_account_desktop_view.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_account_desktop_view.html.liquid new file mode 100644 index 00000000..860799a5 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_account_desktop_view.html.liquid @@ -0,0 +1,19 @@ +
+ + {% form_authenticity_token %} +
+
+
+ + +
+
+
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_account_form.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_account_form.html.liquid new file mode 100644 index 00000000..5e194dfa --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_account_form.html.liquid @@ -0,0 +1,131 @@ +
+ {% t .header %} +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +{% unless form.options.invite? %} +
+ + +
+ +
+ + +
+ +
+ + +
+ + {%- comment -%}
+ + +
{%- endcomment -%} +{% endunless %} + +{% if form.options.invite? %} +
+ + +
+
+ +
+ {% t .terms_of_service %} +
+
+ + +{% endif %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_account_mobile_view.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_account_mobile_view.html.liquid new file mode 100644 index 00000000..e536ea39 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_account_mobile_view.html.liquid @@ -0,0 +1,17 @@ +
+ + {% form_authenticity_token %} +
+
+ {% render "account_form", form: form, version: "mobile" %} +
+
+
+
+ {% include "account_avatar", version: "mobile" %} +
+
+ +
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_achievements.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_achievements.html.liquid new file mode 100644 index 00000000..be0eefa0 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_achievements.html.liquid @@ -0,0 +1,76 @@ +
+
+
+
+

+ Recent Achievements +

+
+ +
+
+ +
+ +
+ +
+
+
+ + diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_course.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_course.html.liquid new file mode 100644 index 00000000..11bda6d0 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_course.html.liquid @@ -0,0 +1,44 @@ +
+
+
+ {% if course.ribbon %} +
+ {{ course.ribbon }} +
+ {% endif %} + {{ course.name }} +
+

+ {{ course.name }} +

+
+ {{ course.instructor_names }} +
+ +
+
+
+
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_featured_course.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_featured_course.html.liquid new file mode 100644 index 00000000..4c1a613d --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_featured_course.html.liquid @@ -0,0 +1,102 @@ +
+
+ +
+
+ + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_learning_path.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_learning_path.html.liquid new file mode 100644 index 00000000..b9cb1a2c --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_learning_path.html.liquid @@ -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 %} + +
+
+ {{ learning_path.name }} +
+
+ +
{% t shared.learning_path.title %}
+
+ {{ learning_path.items.count }} {% t .items %} +
+
+
+
{% t shared.learning_path.title %}
+ +
+ +
+
+

+ {{ learning_path.name }} +

+ +
+ {{ learning_path.instructor_names }} +
+ +
+ {{ learning_path.description }} +
+
+
+
+ {% comment %}{% t shared.progress, count: learning_path.progress %}{% endcomment %} + {% if calculated_progress < 1 %} + Not Started + {% else %} + {{calculated_progress | ceil }}% Completed + {% endif %} +
+ +
+
+
+
+ + +
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_training_event.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_training_event.html.liquid new file mode 100644 index 00000000..02a10967 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_cards_training_event.html.liquid @@ -0,0 +1,51 @@ +{% comment %}
{% endcomment %} +
+
+
+

+ {{ training_event.title }} +

+
+ {% t shared.event_types, key: training_event.event_type %} +
+
+ +
+
+
+ {{ training_event.sessions.first.month }} +
+
+ {{ training_event.sessions.first.year }} +
+
+
+ {% if training_event.sessions.first.day < 10 %}0{% endif %}{{ training_event.sessions.first.day }} +
+
+
+
+
+
+
+ + {% t .sessions, count: training_event.sessions.size %} + + {% comment %}{% endcomment %} + + {% t shared.view %} + +
+
+
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_courses.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_courses.html.liquid new file mode 100644 index 00000000..31cde206 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_courses.html.liquid @@ -0,0 +1,62 @@ +{% assign topic_classname = topic | split: " " %} + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_events.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_events.html.liquid new file mode 100644 index 00000000..ab5b3388 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_events.html.liquid @@ -0,0 +1,37 @@ + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_instructors.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_instructors.html.liquid new file mode 100644 index 00000000..8baf680f --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousel_instructors.html.liquid @@ -0,0 +1,136 @@ +{% assign used_instructor_names = "" %} + + + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_carousels.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousels.html.liquid new file mode 100644 index 00000000..5faa054b --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_carousels.html.liquid @@ -0,0 +1,25 @@ + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_completion_dashboard.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_completion_dashboard.html.liquid new file mode 100644 index 00000000..f163b2fa --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_completion_dashboard.html.liquid @@ -0,0 +1,60 @@ +
+ {% if courses.enrolled.any? %} +
+
+
+ {% assign countComplete = 0 %} + {% assign countInProgress = 0 %} + {% assign countNotStarted = 0 %} + {% assign countTotal = 0 | times: 1.0 %} + {% for course in courses.enrolled %} + {% assign countTotal = countTotal | plus: 1 %} + {% if course.progress == 100 %} + {% assign countComplete = countComplete | plus: 1 %} + {% endif %} + {% if course.progress > 0 and course.progress < 100 %} + {% assign countInProgress = countInProgress | plus: 1 %} + {% endif %} + {% if course.progress == 0 %} + {% assign countNotStarted = countNotStarted | plus: 1 %} + {% endif %} + {% endfor %} +
    +
  • + {% include "progress_circle", name:'Completed' , count: countComplete , total: countTotal %} +
  • +
  • + {% include "progress_circle", name:'In Progress' , count: countInProgress , total: countTotal %} +
  • +
  • + {% include "progress_circle", name:'Not Started' , count: countNotStarted , total: countTotal %} +
  • +
+
+{% else %} + {% capture message %} + {% t shared.zero_state.courses.index, + key: current_school.course_vocabulary + %} + {% endcapture %} + {% include "courses_zero_state", message: message %} +{% endif %} +
+
+
+ \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_activity_locked.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_activity_locked.html.liquid new file mode 100644 index 00000000..0e21bb94 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_activity_locked.html.liquid @@ -0,0 +1,4 @@ +{% comment %} {% endcomment %} + + {{ activity.title }} + diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_activity_unlocked.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_activity_unlocked.html.liquid new file mode 100644 index 00000000..981ea34a --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_activity_unlocked.html.liquid @@ -0,0 +1,17 @@ +{% if course.enrolled? %} + + {{ activity.title }} + +{% else %} +
+ {{ activity.title }} +
+{% endif %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_banner.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_banner.html.liquid new file mode 100644 index 00000000..c0176227 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_banner.html.liquid @@ -0,0 +1,21 @@ +
+
+ {{ course.name }} +
+
{{ course.name }}
+ {%- comment -%} {% include "course_details_review" %} {%- endcomment -%} +
+
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_collection.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_collection.html.liquid new file mode 100644 index 00000000..22483f75 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_collection.html.liquid @@ -0,0 +1,11 @@ +
+
+ +
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_collection_unlogged.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_collection_unlogged.html.liquid new file mode 100644 index 00000000..9224cf0a --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_collection_unlogged.html.liquid @@ -0,0 +1,11 @@ +
+
+ +
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_desktop_view.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_desktop_view.html.liquid new file mode 100644 index 00000000..c17058d7 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_desktop_view.html.liquid @@ -0,0 +1,60 @@ +
+
+ {% include "course_banner" %} +
+ {% include "course_description" %} + + {% comment %} {% if course.categories.any? %} +
+ {% include "course_categories" %} +
+ {% endif %} {% endcomment %} + + {% if course.instructors.any? %} +
+ {% include "course_instructors" %} +
+ {% endif %} + + {% if course.events.any? %} +
+ {% include "course_events" %} +
+ {% endif %} +
+
+
+ {% include "course_progress_and_cta" %} +
+ {% include "course_outline" %} +
+
+
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_details.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_details.html.liquid new file mode 100644 index 00000000..3d353e17 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_details.html.liquid @@ -0,0 +1,34 @@ +{% assign activities_count = 0 %} +{% for course_section in course.sections %} + {% for course_activity in course_section.activities %} + {% assign activities_count = activities_count | plus: 1 %} + {% endfor %} +{% endfor %} + +
+
+ {{ activities_count }} + + {% if activities_count == 1 %}Activity{% else %}Activities{% endif %} + +
+
+ {% if course.properties.course_time contains 'missing property' %} + missing property: course.properties.course_time + {% else %} + {% if course.properties.course_time %} + {% if course.properties.course_time > 0 %} + {{course.properties.course_time}} minsDuration + {% else %} +
   
+ {% endif %} + {% endif %} + {% endif %} +
+
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_details_review.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_details_review.html.liquid new file mode 100644 index 00000000..cbfbea2b --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_details_review.html.liquid @@ -0,0 +1,60 @@ +{% assign activities_count = 0 %} +{% for course_section in course.sections %} + {% for course_activity in course_section.activities %} + {% assign activities_count = activities_count | plus: 1 %} + {% endfor %} +{% endfor %} + +
+
+ {{ activities_count }} + + {% if activities_count == 1 %}Activity{% else %}Activities{% endif %} + +
+
+ {% if course.properties.course_time contains 'missing property' %} + missing property: course.properties.course_time + {% else %} + {% if course.properties.course_time %} + {% if course.properties.course_time > 0 %} + {{course.properties.course_time}} minsDuration + {% else %} +
   
+ {% endif %} + {% endif %} + {% endif %} +
+ {% comment %}
+
+ {% for i in (1..5) %} + {% if course.properties.course_rating >= i %} + + + + {% else %} + + + + {% endif %} + {% endfor %} +
+ + {{course.properties.course_rating}}
({{course.properties.course_rating_count}})
+
+
{% endcomment %} +
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_instructors.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_instructors.html.liquid new file mode 100644 index 00000000..ca6f1f2f --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_instructors.html.liquid @@ -0,0 +1,26 @@ +

+ {% t .header %} +

+
+ {% for instructor in course.instructors %} +
+ {{ instructor.name }} +
+
+ {{ instructor.name }} +
+ +
+
+ {% endfor %} +
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_mobile_view.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_mobile_view.html.liquid new file mode 100644 index 00000000..d1ce82f2 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_mobile_view.html.liquid @@ -0,0 +1,87 @@ +
+ {% include "course_header" %} +
+ {% include "course_progress_and_cta" %} +
+
+ +{% if course.progress == 0 %} +
+ {% include "course_description" %} +
+
+ {% include "course_outline" %} +
+{% else %} +
+ {% include "course_outline" %} +
+
+ {% include "course_description" %} +
+{% endif %} + +{% if course.categories.any? %} +
+ {% include "course_categories" %} +
+{% endif %} + +{% if course.instructors.any? %} +
+ {% include "course_instructors" %} +
+{% endif %} + +{% if course.events.any? %} +
+ {% include "course_events" %} +
+{% endif %} + +
+ {% if course.learner_can_retake? %} +
+ {% form_authenticity_token %} + +
+ {% else %} + + {% 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 %} + + {% endif %} +
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_outline.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_outline.html.liquid new file mode 100644 index 00000000..34361a1d --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_outline.html.liquid @@ -0,0 +1,38 @@ +
+
+ {% t .header, key: current_school.course_vocabulary %} +
+
+
    + {% for section in course.sections %} +
  1. +
    + {{ section.name }} +
    +
      + {% for activity in section.activities %} + +
    1. + {% if activity.completed? %} + + {% if activity.locked? %} + {% include "course_activity_locked" %} + {% else %} + {% include "course_activity_unlocked", class: "np-course-outline-content-activity-link-completed" %} + {% endif %} + {% else %} + + {% if activity.locked? %} + {% include "course_activity_locked" %} + {% else %} + {% include "course_activity_unlocked", class: "np-course-outline-content-activity-link" %} + {% endif %} + {% endif %} +
    2. + {% endfor %} +
    +
  2. + {% endfor %} +
+
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_course_progress_and_cta.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_progress_and_cta.html.liquid new file mode 100644 index 00000000..3b57b667 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_course_progress_and_cta.html.liquid @@ -0,0 +1,47 @@ +
+ {%comment%}
+ {% t .header %} +
{%endcomment%} +
+ {% t shared.progress, count: course.progress %} +
+ +
+
+
+
+
+ +
+ {% if course.learner_can_retake? %} +
+ {% form_authenticity_token %} + +
+ {% else %} + + {% 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 %} + + {% endif %} +
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_courses_catalog.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_courses_catalog.html.liquid new file mode 100644 index 00000000..d1f80304 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_courses_catalog.html.liquid @@ -0,0 +1,28 @@ +{% assign view_more_counter = 0 %} +{% if courses.in_catalog.any? %} +
+ {% for course in courses.in_catalog %} + {% if view_more_counter < 3%} + {% assign view_more_counter = view_more_counter | plus: 1%} +
+ {% include "cards_course" with course, class: "" %} +
+ {% else %} +
+ {% include "cards_course" with course, class: "" %} +
+ {% endif%} + {% endfor %} + + {% if view_more_counter >= 3%} + + {% endif %} +
+{% else %} + {% capture message %} + {% t shared.zero_state.courses.catalog, + key: current_school.course_vocabulary + %} + {% endcapture %} + {% include "courses_zero_state", message: message %} +{% endif %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_courses_index.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_courses_index.html.liquid new file mode 100644 index 00000000..848722a6 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_courses_index.html.liquid @@ -0,0 +1,14 @@ +{% if courses.enrolled.any? %} +
+ {% for course in courses.enrolled %} + {% include "cards_course" with course, class: "col-xs-12 col-sm-6 np-stretch-content" %} + {% endfor %} +
+{% else %} + {% capture message %} + {% t shared.zero_state.courses.index, + key: current_school.course_vocabulary + %} + {% endcapture %} + {% include "courses_zero_state", message: message %} +{% endif %} diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_custom_header.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_custom_header.html.liquid new file mode 100644 index 00000000..59da4836 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_custom_header.html.liquid @@ -0,0 +1,124 @@ +
+
+
+ {% if current_person.signed_in? %} + + + {% endif %} +
+ {% if current_school.logo_url %} +

+ + {{ current_school.name }} + +

+ {% else %} + + {{ current_school.name }} + + {% endif %} + +
+ +
+ + {% if current_person.signed_in? %} + +
+ + +
+ {% else %} +
+ \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_dashboard_course_filter.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_dashboard_course_filter.html.liquid new file mode 100644 index 00000000..22b7c7db --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_dashboard_course_filter.html.liquid @@ -0,0 +1,168 @@ +
+ +
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_filter_by_progress.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_filter_by_progress.html.liquid new file mode 100644 index 00000000..a0426dfa --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_filter_by_progress.html.liquid @@ -0,0 +1,112 @@ +{% assign topic_classname = topic | split: " " %} + +
+ {% if label %} +
{{ label }}
+ {% endif %} +
+ +
+
+ + + diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_footer.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_footer.html.liquid new file mode 100644 index 00000000..b5396d5b --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_footer.html.liquid @@ -0,0 +1,232 @@ +
+{% include "carousels" %} + +{% if current_person.signed_in? %} + + + +{% endif %} + + + +{%comment%} View More Styles/Scripts {%endcomment%} + + + +{% if current_person.signed_in? %} + +{% endif %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_head.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_head.html.liquid new file mode 100644 index 00000000..237b3e05 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_head.html.liquid @@ -0,0 +1,25 @@ +{% styles default %} +{% styles colors %} +{% styles custom %} + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_header.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_header.html.liquid new file mode 100644 index 00000000..ed1b6d33 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_header.html.liquid @@ -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-' %} + + {% endunless %} +{% endif %} + + + +
+
+
+ {% if current_school.logo_url %} +
+

+ + {{ current_school.name }} + +

+
+ {% endif%} +
+ +
+
+ {% if current_person.signed_in? %} + + {% endif %} +
+ + {% for link in navigations.sub_navigation %} + {% if link.label == "Events" or link.label == "Dashboard" %} + {% elsif link.label == "Catalog" %} + + + Courses + + {% elsif link.label == "Home" %} + + + Home + + {% else %} + + + {{ link.label }} + + {% endif %} + {% endfor %} + + {%comment%} +
+ {% unless current_school.sso_active? %} + + {% t .profile_settings %} + + {% endunless %} + + {% t .sign_out %} + + {%endcomment%} +
+
+
+ +{% include "messages" %} + +{% if current_person.signed_in? %} + +{% endif %} + +{% unless current_person.signed_in? %} + +{% endunless %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_header_minimal.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_header_minimal.html.liquid new file mode 100644 index 00000000..a0e6bc18 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_header_minimal.html.liquid @@ -0,0 +1,17 @@ +
+ + {% if current_school.logo_url %} + + {% else %} + + {{ current_school.name }} + + {% endif %} + +
+ +{% include "messages" %} diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_path_progress_and_cta.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_path_progress_and_cta.html.liquid new file mode 100644 index 00000000..2975d9de --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_path_progress_and_cta.html.liquid @@ -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? %} +
+
+ {% t .progress %} +
+
+
+
+
+
+ {% if calculated_progress == 0 %} + {% t shared.progress, count: learning_path.progress %} + {% else %} + {{calculated_progress | ceil }}% Completed + {% endif %} +
+
+{% 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 %} + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_collection.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_collection.html.liquid new file mode 100644 index 00000000..2b5639a5 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_collection.html.liquid @@ -0,0 +1,11 @@ +
+
+ +
+
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_index.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_index.html.liquid new file mode 100644 index 00000000..3f21cca4 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_index.html.liquid @@ -0,0 +1,27 @@ +
+ {% 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%} +
+ {% include "cards_learning_path" with learning_path %} +
+ {% else %} +
+ {% include "cards_learning_path" with learning_path %} +
+ {% endif %} + {% endfor %} + {% if view_more_counter >= 1%} + + {% endif %} + {% else %} +
+
+ {% t .empty %} +
+ {% t .empty %} +
+ {% endif %} +
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_index_homepage.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_index_homepage.html.liquid new file mode 100644 index 00000000..334bb4bc --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_learning_paths_index_homepage.html.liquid @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_modified_header.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_modified_header.html.liquid new file mode 100644 index 00000000..c8551291 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_modified_header.html.liquid @@ -0,0 +1,148 @@ +
+
+
+ {% if current_person.signed_in? %} + + + {% endif %} +
+ {% if current_school.logo_url %} +

+ + {{ current_school.name }} + +

+ {% else %} + + {{ current_school.name }} + + {% endif %} + +
+ +
+ + {% if current_person.signed_in? %} + +
+ Help Guide +
+
+ + +
+ {% else %} +
+ {% endif %} + +
+ diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_overview_video.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_overview_video.html.liquid new file mode 100644 index 00000000..266f6b4e --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_overview_video.html.liquid @@ -0,0 +1,39 @@ + + + +
+ +
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_progress_circle.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_progress_circle.html.liquid new file mode 100644 index 00000000..f2c0f4cd --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_progress_circle.html.liquid @@ -0,0 +1,37 @@ +
+

+ {{name}} +

+ + + {{count}} + +
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_recent_course.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_recent_course.html.liquid new file mode 100644 index 00000000..ec8a043e --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_recent_course.html.liquid @@ -0,0 +1,52 @@ +{% if courses.enrolled.any? %} +
+ {% for course in courses.enrolled %} + {% if course.id == current_person.properties.last_viewed_course %} +

RECENTLY VIEWED

+ {% include "cards_course" with course, class: "" %} + {% endif %} + {% endfor %} +
+{% endif %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_section_faqs.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_section_faqs.html.liquid new file mode 100644 index 00000000..42f1fb7b --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_section_faqs.html.liquid @@ -0,0 +1,106 @@ + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_section_popular_topics.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_section_popular_topics.html.liquid new file mode 100644 index 00000000..3f950727 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_section_popular_topics.html.liquid @@ -0,0 +1,26 @@ + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_section_tips_tricks.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_section_tips_tricks.html.liquid new file mode 100644 index 00000000..24f35f70 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_section_tips_tricks.html.liquid @@ -0,0 +1,76 @@ +{% capture quotes %} + + + + + + + + + +{% endcapture %} + + + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_statistics.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_statistics.html.liquid new file mode 100644 index 00000000..185412db --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_statistics.html.liquid @@ -0,0 +1,34 @@ +
+
+

{{ countInProgress }}

+

{% if countInProgress == 1 %}Course{% else %}Courses{% endif %} in Progress

+
+
+

{{ countComplete }}

+

Completed Courses

+
+
+ {% if current_person.properties.learner_badges contains "missing property" %} +

0

+ {% else %} +

{{ current_person.properties.learner_badges }}

+ {% endif %} +

Badges

+
+
+ {% if current_person.properties.learner_points contains "missing property" %} +

0

+ {% else %} +

{{ current_person.properties.learner_points }}

+ {% endif %} +

Points

+
+
+ {% if current_person.properties.learner_hours contains "missing property" %} +

0

+ {% else %} +

{{ current_person.properties.learner_hours }} mins

+ {% endif %} +

Course Time

+
+
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_sub_navigation.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_sub_navigation.html.liquid new file mode 100644 index 00000000..b85169a1 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_sub_navigation.html.liquid @@ -0,0 +1,49 @@ + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_cta.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_cta.html.liquid new file mode 100644 index 00000000..91cdb885 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_cta.html.liquid @@ -0,0 +1,61 @@ +{% if training_session.approved? %} +
+ + {% t .registered %} +
+{% elsif training_session.pending? %} +
+ {% t .pending %} +
+{% elsif training_session.denied? %} +
+ {% t .denied %} +
+{% elsif training_session.too_late? %} +
+ {% t .too_late %} +
+{% elsif training_session.no_seats? %} +
+ {% t .no_seats %} +
+{% endif %} +
+
+
+ {% form_authenticity_token %} + + {% if training_session.internal? and training_session.approved? %} + {% if features.training_events_google_calendar? %} + {% include "training_session_calendars" %} + + {% else %} + + {% endif %} + + + {% endif %} + + {% if training_session.not_registered? %} + + {% endif %} +
+
+
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_date.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_date.html.liquid new file mode 100644 index 00000000..7963ec43 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_date.html.liquid @@ -0,0 +1,14 @@ +
+
+
+ {{ training_session.day }} +
+
+
+ {{ training_session.month }} +
+
+ {{ training_session.year }} +
+
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_description.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_description.html.liquid new file mode 100644 index 00000000..bc95c88c --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_description.html.liquid @@ -0,0 +1,6 @@ +{%comment%}

+ {% t .header %} +

{%endcomment%} +
+ {{ training_event.description }} +
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_details.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_details.html.liquid new file mode 100644 index 00000000..980a6bbf --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_details.html.liquid @@ -0,0 +1,24 @@ +
+ {% include "training_session_date" %} + +
+ + {{ training_session.time_period }} {{ training_session.time_zone }} +
+ + {% if training_session.location %} +
+ + {{ training_session.location }} +
+ {% endif %} + + {% if training_session.session_url %} +
+ + + {{ training_session.session_url }} + +
+ {% endif %} +
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_header.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_header.html.liquid new file mode 100644 index 00000000..daee98b5 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_training_session_header.html.liquid @@ -0,0 +1,10 @@ +
+ {% t shared.event_types, key: training_event.event_type %} + +
+
+ + + + {{ training_event.title }} +
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/_welcome_hero.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/_welcome_hero.html.liquid new file mode 100644 index 00000000..0f77a45d --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/_welcome_hero.html.liquid @@ -0,0 +1,4 @@ +
+ + +
\ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/account.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/account.html.liquid new file mode 100644 index 00000000..9939b607 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/account.html.liquid @@ -0,0 +1,123 @@ +{% include "header" %} + +
+
+ {% include "sub_navigation" %} +
+ +
+
+ {% include "account_mobile_view", form: form %} +
+ +
+ {% include "account_desktop_view", form: form %} +
+
+
+ +{% include "footer" %} + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/auth_url_email.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/auth_url_email.html.liquid new file mode 100644 index 00000000..bd3e99da --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/auth_url_email.html.liquid @@ -0,0 +1,101 @@ +
+
+ {% include "header_minimal" %} +
+
+ {% form_authenticity_token %} +
+ {% t shared.welcome_to_school, school_name: current_school.name %} +
+
+ {% t .headline, key: current_school.course_vocabulary %} +
+
+ + +
+
+ + +
+
+ + +
+ + +
+
+
+
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/catalog.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/catalog.html.liquid new file mode 100644 index 00000000..008c7ed2 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/catalog.html.liquid @@ -0,0 +1,54 @@ +{% include "header" %} +{% include "course_version_outdated_alert", courses: courses.in_catalog %} +
+
+ {% include "sub_navigation" %} +
+
+
+
+
{{ catalog.headline }}
+
{{ catalog.subheadline }}
+
Courses
+
Explore currated sets of courses for a tailored learning experience.
+ {% include 'dashboard_course_filter' %} +
+
+ {% include "courses_catalog" %} +
+
+{% include "footer" %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/certification.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/certification.html.liquid new file mode 100644 index 00000000..d8de6c18 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/certification.html.liquid @@ -0,0 +1,747 @@ +{% comment %} skip-auth {% endcomment %} +{% include "header" %} +
+ {% if current_person.signed_in? %} +
+ {% include "sub_navigation" %} +
+ {% endif %} + + +
+ {% comment %}================================================ REGISTRATION HEADER ============================================={% endcomment %} + + {%- comment -%}
+
Getting Started
+
Register Now
+
{%- endcomment -%} + + {% comment %}=================================================== TEXT HEADER ==================================================={% endcomment %} + + {%- comment -%}
Skuid Certification Registration
{%- endcomment -%} + + {% comment %}================================================= HEADER BUBBLES ==================================================={% endcomment %} + +
+
GET STARTED
+
EXAM PREP
+
COMPLETION STATUS
+
RECERTIFICATION
+
+ + {% comment %}=================================================== IFRAME =========================================================={% endcomment %} + + {%- comment -%} {%- endcomment -%} + + {% comment %}=========================================== CERTIFICATION REGISTRATION =============================================={% endcomment %} + +
+
Ready to be Skuid Certified?
+
+ {%- comment -%}
The Skuid - Certified Builder Exam assumes knowledge in topics from Levels 1 and 2 of Skuid Skool.
{%- endcomment -%} +
The Skuid - Certified Builder Exam assumes knowledge in topics from Level 1, Level 2, Deploy and Manage Skuid Apps in Salesforce, and the Explore More learning paths within Skuid Skool.
+
+
Click below to register for your exam.
+
+ + Register Now + + exam-registration-image + +
+ + + {% comment %}================================================ EXAM PREP ==================================================={% endcomment %} + +
+
Skuid Certification Exam Prep
+
Prep, practice, or schedule you exam.
+ +
+
+ Prep Guide +
+ View courses, documentation, and other resources to prep for the certification exam. +
+
+
+ Practice Exam +
+ Take a practice exam to test what you've learned. +
+
+
+ Schedule Exam +
+ Ready? Schedule your exam to become certified. +
+
+
+
+ + {% comment %}============================================ EXAM NOT STARTED =================================================={% endcomment %} + +
+
Exam not started
+
See email for instructions or schedule your exam below
+ +
+ Schedule Exam +
+ Ready? Schedule your exam to become certified. +
+
+
+ + {% comment %}============================================ EXAM COMPLETE ===================================================={% endcomment %} + + {%- comment -%}
Exam complete
+
Results are still pending. Check back in 10 business days from your exam date.
{%- endcomment -%} + +
+ exam-complete-background +
+ + {% comment %}============================================== PASSED ========================================================{% endcomment %} + + + + {% comment %}=============================================== FAILED ======================================================{% endcomment %} + +
+
Exam failed.
+
If you'd like to try again, register to retake the exam below.
+ + Register to retake the exam +
+ + {% comment %}============================================= CERTIFIED ======================================================{% endcomment %} + +
+ cert-recert-background +
+
Recertification is due on 1/1/2024
+ Download Certificate +
+ +
+ + {%- comment -%}
+
Congratulations you're certified!
+
Recertification is due on 1/1/2024
+ + Download Certificate +
{%- endcomment -%} + + {% comment %}============================================ RECERTIFIED ====================================================={% endcomment %} + +
+
Time for your recertification!
+
Recertification is due on 1/1/2024
+ + Get recertified +
+
+
+{% include "footer" %} + + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/course.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/course.html.liquid new file mode 100644 index 00000000..85051fee --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/course.html.liquid @@ -0,0 +1,66 @@ +{% include "header" %} +
+
+ {% include "sub_navigation" %} +
+
+
+ {% include "course_desktop_view" %} +
+
+ {% include "course_mobile_view" %} +
+
+
+{% include "footer" %} + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/courses.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/courses.html.liquid new file mode 100644 index 00000000..9ea6995b --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/courses.html.liquid @@ -0,0 +1,15 @@ +{% include "header" %} + +
+
+ {% include "sub_navigation" %} +
+
+
+ {% t shared.course_vocabulary.plural, key: current_school.course_vocabulary %} +
+
{% t .headline, key: current_school.course_vocabulary %}
+ {% include "courses_index", class: "col-xs-12 col-sm-6 col-lg-4 np-stretch-content" %} +
+
+{% include "footer" %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/dashboard.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/dashboard.html.liquid new file mode 100644 index 00000000..aa14740b --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/dashboard.html.liquid @@ -0,0 +1,3 @@ + diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/eula.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/eula.html.liquid new file mode 100644 index 00000000..1d9089ec --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/eula.html.liquid @@ -0,0 +1,773 @@ +{% comment %} skip-auth {% endcomment %} +
+

+ TERMS OF USE FOR SKUID SKOOL


+

+ +

+ 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.

+

+ 1. Definitions

+
    +
  1. “Affiliate” 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.
  2. +
  3. “Agreement” means these terms and + conditions, including any Order Forms, whether written or submitted online, and materials available on the Skuid + website (www.skuid.com) specifically incorporated by + reference herein, including the Skuid + Privacy Statement, Skuid documentation (docs.skuid.com), Skuid Support terms (www.skuid.com/support) as such materials may be + updated by Skuid from time to time in its sole discretion.
  4. +
  5. “Content” 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.
  6. +
  7. “Data” 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.
  8. +
  9. “Data Platform” 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.
  10. +
  11. “Data Processing Addendum” or “DPA” means the addendum drafted in + compliance with the EU General Data Protection Regulation 2016/679 (“GDPR”), available upon request + at legal@skuid.com, 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.
  12. +
  13. “Direct Competition” 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.
  14. +
  15. “Effective Date” 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.
  16. +
  17. “Intellectual Property Rights” 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.
  18. +
  19. “Malicious Code” means computer viruses, + worms, time bombs, Trojan horse software and other harmful or malicious code, files, scripts, agents, or programs. +
  20. +
  21. “Metadata” means configuration data that + describes how a Skuid application functions and how it is presented in the user experience for You.
  22. +
  23. “Order Form” 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.
  24. +
  25. “Purchased Skuid Services” means Skuid + Services that You or Your affiliates purchase under an Order Form.
  26. +
  27. “Service Administrator” 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.
  28. +
  29. “Skuid Credentials” 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.
  30. +
  31. “Skuid Data” 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.
  32. +
  33. “Skuid Professional Services” 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.
  34. +
  35. “Skuid Services” 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 Salesforce.com 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.
  36. +
  37. “Term” 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.
  38. +
  39. “Third-Party Applications” 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.
  40. +
  41. “User” or “Users” 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.
  42. +
  43. “User Guide” means the online documentation + for the Skuid Services, accessible through docs.skuid.com, as updated from time to time. +
  44. +
  45. “We” or “Us” means Skuid.
  46. +
  47. “You” or “Your” 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.
  48. +
+

+ 2. General Terms

+
    +
  1. 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.
  2. +
+

+ 3. Free Plan

+
    +
  1. 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.
  2. +
+

+ 4. Purchased Skuid Services

+ +

+ 5. Use of the Skuid Services

+
+ Skuid’s Responsibilities
+
    +
  1. Skuid shall provide the Purchased Skuid Services only + according to applicable laws and government regulations.
  2. +
  3. 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 community.skuid.com, online help webpages and + user documentation for the Skuid Services at docs.skuid.com.
  4. +
  5. To the extent applicable, Skuid will provide the relevant + Support that Customer has purchased as defined and described at skuid.com/support, which may be updated from time + to time upon notice.
  6. +
  7. 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.
  8. +
+
+ Your Responsibilities
+
    +
  1. 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).
  2. +
  3. 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.
  4. +
  5. You shall be responsible for maintaining security of Your + Data on the Data Platform(s) that You access with the Skuid Services.
  6. +
+
+ Prohibited Uses. You may not:
+
    +
  1. Make the Skuid Services available to any third party, + except as expressly permitted herein or in an Order Form;
  2. +
  3. 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;
  4. +
  5. Sell, resell, rent, or lease the Skuid Services;
  6. +
  7. Access the Skuid Services for purposes of monitoring their + availability, performance or functionality, or for any other benchmarking, competitive or anti-competitive purposes; +
  8. +
  9. 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;
  10. +
  11. 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.
  12. +
+
+ Usage Limitations.
+
    +
  1. 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.
  2. +
+

+ 6. Third-Party Providers and Skuid Services

+
    +
  1. Data Platform. 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.
  2. +
  3. Data Source. 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.
  4. +
  5. Third Party Applications. 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.
  6. +
+

+ 7. Skuid Professional Services

+
    +
  1. Engagement. 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.
  2. +
  3. Project Team. 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.
  4. +
  5. Limited License. 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.
  6. +
  7. Skuid IP. 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.
  8. +
  9. Expenses. Customer shall reimburse Skuid for all + reasonable travel expenses as approved in advance by Customer, or as noted in the applicable SOW.
  10. +
+

+ 8. Fees and Payment for Purchased Services

+
    +
  1. User Fees. 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.
  2. +
  3. Fees for Pro Services. 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.
  4. +
  5. Invoicing and Payment. 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.
  6. +
  7. Billing Information. 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.
  8. +
  9. Suspension of Skuid Services and Acceleration. 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.
  10. +
  11. Payment Disputes. 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.
  12. +
  13. Taxes. 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.
  14. +
  15. Reconnection Fee. 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.
  16. +
+

+ 9. Proprietary Rights

+
    +
  1. Reservation of Rights. 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.
  2. +
  3. Ownership of Your Data. You will retain all rights, + title, and interest in and to any Data, information, or materials provided by You, including Skuid Data.
  4. +
  5. Federal Government End Use Provisions. 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.
  6. +
  7. Infringement. 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.
  8. +
+

+ 10. Confidentiality

+
    +
  1. Definition of Confidential Information. 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.
  2. +
  3. Protection of Confidential Information. 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.
  4. +
  5. Compelled Disclosure. 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.
  6. +
  7. Privacy and Disclosure. 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.
  8. +
  9. Communications from Skuid. 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.
  10. +
  11. Customer Reference; Trademark License. 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.
  12. +
+

+ 11. Warranties and Disclosures

+
    +
  1. Limited Warranty. 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.
  2. +
  3. Limitation of Warranty. 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.
  4. +
  5. Warranty on Pro Services. 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.
  6. +
  7. Mutual Warranties. 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.
  8. +
+

+ 12. Indemnification by Skuid

+
    +
  1. Indemnification. 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.
  2. +
  3. Injunction. 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.
  4. +
  5. Limitation. 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.
  6. +
+

+ 13. Indemnification by You

+
    +
  1. Indemnification. 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. +
  2. +
+

+ 14. Limitation of Liability

+
    +
  1. Limitation of Liability. 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.
  2. +
  3. Exclusion of Consequential and Related Damages. 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.
  4. +
+

+ 15. Terms and Termination

+
    +
  1. Term of Agreement. 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.
  2. +
  3. Renewals. 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.
  4. +
  5. Termination for Cause. 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.
  6. +
  7. Refund or Payment upon Termination. 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.
  8. +
  9. Return of Your Metadata. Skuid will provide Your + Metadata to You upon request.
  10. +
  11. Surviving Provisions. 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.
  12. +
+

+ 16. Miscellaneous Provisions

+
    +
  1. Export Compliance. 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.
  2. +
  3. Relationship of the Parties. 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.
  4. +
  5. Non-solicitation. 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.
  6. +
  7. Waiver and Cumulative Remedies. 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.
  8. +
  9. Severability. 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.
  10. +
  11. Notices. 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.
  12. +
  13. Governing Law and Jurisdiction. 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.
  14. +
  15. Waiver of Jury Trial. 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.
  16. +
  17. Attorney Fees. 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.
  18. +
  19. Language and Headings. 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.
  20. +
  21. Assignment. 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.
  22. +
  23. Entire Agreement. 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.
  24. +
  25. Force Majeure. 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.
  26. +
+
+ +
+ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/forgot_password.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/forgot_password.html.liquid new file mode 100644 index 00000000..aaffda6d --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/forgot_password.html.liquid @@ -0,0 +1,25 @@ +
+
+ {% include "header_minimal" %} +
+
+ {% form_authenticity_token %} +
+ + +
+ +
+
+
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/homepage.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/homepage.html.liquid new file mode 100644 index 00000000..ae8228ba --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/homepage.html.liquid @@ -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 %} +
+ + {% if current_person.signed_in? %} +
+ {% include "sub_navigation" %} +
+ {% endif %} + + +
+ {% if current_person.signed_in? %} + {% include 'welcome_hero' %} + {% include 'statistics' %} + +
+ {% include 'overview_video' %} +
+ {% endif %} + + {% unless current_person.signed_in? %} +
+ {% include 'learning_paths_collection' %} +
+ + + {% include "course_collection_unlogged" %} +
+
+ {% for course in courses.in_catalog %} + {% if view_more_counter < 4%} + {% assign view_more_counter = view_more_counter | plus: 1%} +
+ {% include "cards_course" with course, class: "" %} +
+ {% else %} +
+ {% include "cards_course" with course, class: "" %} +
+ {% endif%} + {% endfor %} + + {% if view_more_counter >= 4%} + + {% endif %} +
+
+ {% endunless %} + + {% if current_person.signed_in? %} +
+
+ {% if features.learning_paths? %} +
+
+
+ {% if learning_paths.enrolled.any? %} + {% include "learning_paths_index_homepage", items: learning_paths.enrolled %} + {% endif %} +
+
+ {% include 'recent_course' %} +
+
+
+ {% include 'dashboard_course_filter' %} + + {% include "course_collection" %} +
+
+ {% for course in courses.enrolled %} + {% if view_more_counter < 4 %} + {% assign view_more_counter = view_more_counter | plus: 1%} +
+ {% include "cards_course" with course, class: "" %} +
+ {% else %} +
+ {% include "cards_course" with course, class: "" %} +
+ {% endif%} + {% endfor %} + + {% if view_more_counter >= 4%} + + {% endif %} +
+
+
+
+ {% endif %} +
+
+ {% endif %} +
+
+ + + +{% include "footer" %} + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/learning_path.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/learning_path.html.liquid new file mode 100644 index 00000000..66891944 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/learning_path.html.liquid @@ -0,0 +1,15 @@ +{% include "header" %} +
+
+ {% include "sub_navigation" %} +
+
+
+ {% include "learning_path_desktop_view" %} +
+
+ {% include "learning_path_mobile_view" %} +
+
+
+{% include "footer" %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/learning_paths.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/learning_paths.html.liquid new file mode 100644 index 00000000..c4e95cc4 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/learning_paths.html.liquid @@ -0,0 +1,49 @@ +{% include "header" %} +
+
+ {% include "sub_navigation" %} +
+
+
+
+ {% t shared.learning_paths %} +
+
Learning Paths
+
+ {% t .subtitle %} +
+
Explore curated sets of courses for a tailored learning experience.
+ {% include "learning_paths_index", items: learning_paths.available %} +
+
+
+{% include "footer" %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/login.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/login.html.liquid new file mode 100644 index 00000000..8fb1ee0a --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/login.html.liquid @@ -0,0 +1,171 @@ + + {% include "header" %} +
+
+ + +
+
+
Welcome to Skuid Skool
+
Login below
+ {% form_authenticity_token %} +
+ + +
+
+ + +
+ + + {% t .forgot_password %} + + {% if features.account_creation? %} + + {% t shared.sign_up %} + + {% endif %} + {% if features.request_access? %} + + {{ current_school.request_access_label }} + + {% endif %} +
+ + +
+
+
+ {% include "footer" %} + + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/reset_password.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/reset_password.html.liquid new file mode 100644 index 00000000..53ad1fad --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/reset_password.html.liquid @@ -0,0 +1,43 @@ +
+
+ {% include "header_minimal" %} +
+
+ + + {% form_authenticity_token %} +
+ + +
+
+ + +
+ +
+
+
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/search.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/search.html.liquid new file mode 100644 index 00000000..4518c4ad --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/search.html.liquid @@ -0,0 +1,45 @@ +{% include "header" %} +
+
+ {% include "sub_navigation" %} +
+
+
+ {% t .title %} +
+
+
+ {% t .showing %} + {{ results.count }} + {% t .results_for %} + "{{ results.term }}" +
+ {% capture label %}{% t shared.filters.by_type %}{% endcapture %} + {% + include "filter_dropdown", + filters: results.filters, + key: "type", + label: label + %} +
+ {% if results.items.any? %} + {% render "search_result" for results.items as result %} + {% else %} + {% include "search_zero_state" %} + {% endif %} +
+
+{% include "footer" %} + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/server_error.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/server_error.html.liquid new file mode 100644 index 00000000..d6a6c804 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/server_error.html.liquid @@ -0,0 +1,12 @@ +
+
+

{% t .headline %}

+
+ +
+
+

{% t .subheadline %}

+

{% t .home %}

+
+
+
diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/sign-up-follow-up.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/sign-up-follow-up.html.liquid new file mode 100644 index 00000000..db2ebb1c --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/sign-up-follow-up.html.liquid @@ -0,0 +1,324 @@ +{% 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" %} + + {% endif %} +{% endfor %} + + + {% include "header" %} +
+
+ + +
+
+
Welcome to Skuid Skool
+
We need a little more information to tailor the best courses to your role
+ {% form_authenticity_token %} +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ {% include "footer" %} + + + + + + + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/sign_up.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/sign_up.html.liquid new file mode 100644 index 00000000..3adb2edb --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/sign_up.html.liquid @@ -0,0 +1,409 @@ +{% if current_person.signed_in? %} + +{% endif %} + + + {% include "header" %} + {% include "messages" %} +
+
+ + +
+
+
Welcome to Skuid Skool
+
Complete your profile below
+ {% form_authenticity_token %} +
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ {%- comment -%}
+ + +
{%- endcomment -%} + + {% comment %}
+ + +
{% endcomment %} + + + +
+ {% comment %} + By submitting this form you agree to the + + + Northpass + + and + + + Skuid + + Terms of Use + {% endcomment %} + +
+
+
+ {% include "footer" %} + + + + + + + diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/social-redirections.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/social-redirections.html.liquid new file mode 100644 index 00000000..70eafa3e --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/social-redirections.html.liquid @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/styles.css.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/styles.css.liquid new file mode 100644 index 00000000..d25c5872 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/styles.css.liquid @@ -0,0 +1,1023 @@ +/* 1. Global */ +/* 1.1 Fonts */ +/* 2. Header */ +/* 3. Sub Navigation */ +/* 4. Dashboard */ +/* 4.1 Welcome Hero */ +/* 4.2 Statistics */ +/* 4.3 Overview */ +/* 4.4 Dashboard filter */ +/* 5. Course */ + +/* 1. Global */ + +@media (min-width: 769px) and (max-width: 1600px) { + .np-card-content-title { + font-size: 1rem; + } +} + +@media screen and (min-width: 769px) { + .np-learning-paths .np-card-content { + height: 100%; + } +} + +@media (min-width: 768px) { + .np-learning-paths .np-learning-path-image { + object-fit: contain; + } +} + +.np-card-text > p, +.np-card-heading, +.np-top-title, +.np-learning-path-items-count, +.catalog-subtitle, +.catalog-title, +.lp-subtitle, +.np-resource-subtitle, +.np-resource-title, +.lp-title, +.np-card-content-subtitle, +.np-card-content-progress, +.np-card-ribbon { + font-family: F37 Moon; +} + +.np-alert-success { + background: #bbdfa5; + color: #1e824c; +} + +@media (max-width: 768px) { + .np-hidden-mobile { + display: none !important; + } + + .np-hidden-desktop { + display: block !important; + } +} + +@media (min-width: 769px) { + .np-header-content { + flex-direction: row; + } + + .np-hidden-mobile { + display: block !important; + } + + .np-hidden-desktop { + display: none !important; + } + + .np-hidden-mobile.np-header-avatar, + .np-hidden-mobile.np-learning-path-items, + .lp-and-recently-completed-course-container.np-hidden-mobile { + display: flex !important; + } + + .np-hidden-mobile.inline-text { + display: inline !important; + } + + .np-hidden-mobile.np-card-header { + display: none !important; + } +} + +a { + font-family: F37 Moon; + font-style: normal; + font-weight: normal; +} + +body { + font-family: Inter !important; + font-style: normal; + font-weight: normal; +} + +@media (max-width: 768px) { + .np-main { + margin-left: 0; + } + + .np-subpage-container { + padding: 0 0 2rem; + } +} + +.np-button { + border-radius: 30px; + padding: 0.7rem 1.25rem; + font-family: F37 Moon; + font-style: normal; + font-weight: normal; +} + +.np-button:hover { + color: white; +} + +.np-main { + background-color: white; +} + +.np-card-container { + box-shadow: 5px 5px 0px rgb(128 173 220 / 32%); + border-radius: 8px; +} + +.np-card-stack { + display: none; +} + +@media (min-width: 769px) and (max-width: 1024px) { + .recent-view-header { + margin-bottom: 0; + background-color: #ebf5ff; + min-width: 100%; + box-shadow: 4px 1px 0px rgb(128 173 220 / 32%); + border-radius: 14px 14px 0 0; + font-size: 14px; + text-align: center; + } + + .course-card-title { + font-size: 15px; + } + + + + .np-card-content-description { + display: block; + min-height: 105px; + font-size: 14px; + } +} + +@media (min-width: 1025px) and (max-width: 1440px) { + .np-card-content-description { + display: block; + min-height: 165px; + } +} + +@media (min-width: 1441px) { + .np-card-content-description { + display: block; + min-height: 200px; + } + + .np-card-content-subtitle { + min-height: 22.5px; + } +} + +/* 1.1 Fonts */ + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 100; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-Thin.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 100; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-ThinItalic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-ExtraLight.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-ExtraLightItalic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-Light.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-LightItalic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-Regular.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-Italic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-Medium.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 500; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-MediumItalic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-SemiBold.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-SemiBoldItalic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-Bold.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-BoldItalic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-ExtraBold.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-ExtraBoldItalic.woff") + format("woff"); +} + +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-Black.woff") + format("woff"); +} +@font-face { + font-family: "Inter"; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/Inter-BlackItalic.woff") + format("woff"); +} + +@font-face { + font-family: "F37 Moon"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/F37Moon-Bold.ttf") + format("truetype"); +} +@font-face { + font-family: "F37 Moon"; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/F37Moon-Demi.ttf") + format("truetype"); +} +@font-face { + font-family: "F37 Moon"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/F37Moon-Regular.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-Black.ttf") + format("truetype"); +} +@font-face { + font-family: "NunitoSans"; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-BlackItalic.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-Bold.ttf") + format("truetype"); +} +@font-face { + font-family: "NunitoSans"; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-BoldItalic.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-ExtraBold.ttf") + format("truetype"); +} +@font-face { + font-family: "NunitoSans"; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-ExtraBoldItalic.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-ExtraLight.ttf") + format("truetype"); +} +@font-face { + font-family: "NunitoSans"; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-ExtraLightItalic.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-Italic.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-Light.ttf") + format("truetype"); +} +@font-face { + font-family: "NunitoSans"; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-LightItalic.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-Regular.ttf") + format("truetype"); +} + +@font-face { + font-family: "NunitoSans"; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-SemiBold.ttf") + format("truetype"); +} +@font-face { + font-family: "NunitoSans"; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url("https://s3.amazonaws.com/static.northpass.com/Skuid/fonts/NunitoSans-SemiBoldItalic.ttf") + format("truetype"); +} + +/* 2. Header */ +.np-header-color { + background: transparent; +} + +.logo-container { + margin-right: 35px; + padding: 40px 50px 25px 5px; +} + +.avatar-container { + display: flex; + padding: inherit; + width: 200px; + justify-content: space-evenly; + align-items: center; + background-color: #f0f1f2; + border-radius: 10%/50%; + height: 45px; +} + +@media screen and (min-width: 769px) { + .avatar-image { + height: 35px; + } + + .np-header { + padding: 0; + } +} + +.points-badges-avatar { + display: flex; + align-items: flex-end; + font-family: "F37 Moon"; + font-style: normal; + font-weight: normal; +} + +.points-display { + margin-right: 10px; + margin-top: revert; +} + +.badges-display { + margin-right: 10px; + margin-top: revert; +} + +.form-control { + background-color: #ebf5ff !important; + border: none !important; + border-radius: 10%/65% !important; +} + +.has-search .form-control { + padding-left: 2.375rem; + background-color: #ebf5ff !important; +} + +.has-search .form-control-feedback { + position: absolute; + z-index: 2; + display: block; + width: 2.375rem; + height: 2.375rem; + line-height: 2.375rem; + text-align: center; + pointer-events: none; + color: #aaa; +} + +/* 3. Sub Navigation */ +.np-sub-navigation-content-item-active .np-sub-navigation-content-item-link { + color: #000000; + font-family: Inter !important; + font-style: normal; + font-weight: normal; +} + +.np-sub-navigation-content-item-active { + background-color: #bfd6ed; + border-radius: 5%/30%; +} + +.custom-navigation { + display: flex; + align-items: flex-start; +} + +.custom-navigation-content { + flex-direction: column; +} + +.custom-navigation-content-item { + margin: 10px 0; + padding: 0 1.75rem; +} + +.custom-navigation-item-link { + flex-direction: row; + justify-content: flex-start; +} + +.custom-navigation-content-item-icon { + padding-bottom: 0; + color: #000000 !important; +} + +/* 4.1 Welcome Hero */ +.welcome-message { + text-align: center; + margin-bottom: 40px; + display: flex; + justify-content: center; +} + +@media (max-width: 768px) { + .welcome-message { + margin-bottom: 20px; + } +} + +/* 4.2 Statistics */ +.statistics-container { + display: flex; + justify-content: space-between; +} +@media (max-width: 768px) { + .statistics-container { + flex-direction: column; + align-items: center; + margin-bottom: 20px; + } +} + +.quantity { + font-size: 24px; + margin-bottom: -4px; + font-family: F37 Moon !important; + font-style: normal; + font-weight: normal; + margin-top: 10px; +} + +.badges { + display: flex; + /* width: 230px; */ + width: 19%; + background-color: #ebf5ff; + color: #000000; + border-radius: 15px; + justify-content: center; + flex-direction: column; + align-items: center; + font-family: "F37 Moon"; + font-style: normal; + font-weight: normal; + font-size: 18px; + text-align: center +} + +@media (max-width: 768px) { + .badges { + margin-top: 15px; + width: 50%; + } +} + +/* 4.3 Overview */ +.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; +} + +/* 4.4 Dashboard filter */ + +.mo-search-wrapper { + display: flex; + justify-content: flex-start; + padding-bottom: 15px; +} + +@media (max-width: 768px) { + .mo-search-wrapper { + margin-left: 8%; + } +} + +.dashboard-filter-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-family: Inter !important; + font-style: normal; + font-weight: normal; + line-height: 1.5; + color: #212529; + background-color: #ebf5ff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.filter-wrapper { + position: relative; +} +.filter-wrapper select { + display: none; +} + +.mo-active-filter-prog { + width: 200px; + height: 45px; + border-radius: 15%/48%; + border: none; + color: #252b33 !important; +} + +/* 7. Others */ + +.page-container { + display: flex; + z-index: 1; +} + +.mo-filter-wrapper { + display: flex; + justify-content: center; + list-style: none; + margin: 0; + padding: 0; +} +.mo-filter-item { + padding: 10px; +} +@media only screen and (max-width: 960px) { + .mo-filter-item { + padding: 5px; + } +} + +#mo-mobile-filter { + display: none; + margin: 0 25px 25px 25px; + background-color: #e8e8e8; +} + +.mo-mobile-filter-wrapper { + padding: 20px 20px 30px 20px; +} + +#mo-dropdown { + width: 100%; + height: 40px; + border: 1px solid #c5c5c5; + color: #6b7c93; +} + +@media only screen and (max-width: 806px) { + .mo-filter-wrapper { + overflow: scroll; + justify-content: unset; + } + #mo-mobile-filter { + display: block; + } +} + +.mo-active-filter { + border: 1px solid #252b33; + background: #252b33; + color: white !important; +} + +.uk-panel-box * { + font-family: F37 Moon !important; + font-style: normal; + font-weight: normal; +} + +.mo-content-header { + padding-bottom: 5px !important; +} +.mo-content-header h2 { + color: #00237c; + font-family: F37 Moon !important; + font-style: normal; + font-weight: normal; +} +.mo-active-filter:hover { + background: #017171 !important; +} + +.mo-auto-outter-margins { + margin-left: auto !important; + margin-right: auto !important; +} +.mo-course-duration { + color: #0eabdb; +} +.mo-course-name { + padding-top: 5px; + padding-bottom: 5px; + font-size: 16px; +} +.search { + border-radius: 5px; +} +.mo-description-span { + font-size: 12px; + color: #00237c; +} + +.preview-banner { + display: none; +} + +body, +.school-website-header { + background-color: #ffffff !important; +} + +.school-website-header .uk-brand img { + max-height: 40px; +} + +footer { + background-color: #00237c; + padding-top: 60px; + padding-bottom: 30px; +} + +.copyRight-text { + opacity: 0.7; + font-size: 16px; + font-family: Inter !important; + font-style: normal; + font-weight: normal; + font-stretch: normal; + margin: 0; + letter-spacing: normal; + color: #fff; +} + +#prog-filter:focus { + outline: none !important; +} + +.missing { + display: none; +} +.school-website-header { + color: #252b33 !important; +} + +/* style the items (options) */ +.select-items div { + color: #252b33 !important; + border: 1px solid transparent; + border-color: #252b33 #252b33 #252b33 #252b33; + cursor: pointer; + width: 159px; + height: 38px; + text-align: center; + vertical-align: middle; + line-height: 40px; +} + +/* Style items (options): */ +.select-items { + position: absolute; + background-color: #ffffff !important; + top: 101%; + left: -1px; + z-index: 99; +} + +/* Hide the items when the select box is closed: */ +.select-hide { + display: none; +} +.same-as-selected { + display: none; +} +.select-items div:hover, +.same-as-selected { + background-color: rgba(0, 0, 0, 0.1); +} +._left:before, +._right:before { + font-size: 30px; + background: black; + color: white; + border-radius: 50%; + font-style: normal; + font-feature-settings: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-family: Font awesome\5 Pro; + font-weight: 900; + margin-bottom: 0; + -webkit-font-smoothing: antialiased; +} +/* .slick-dots { + bottom: 50px; + width: 90%; + } */ + +._left, +._right { + top: 50%; + z-index: 1000; + -webkit-font-smoothing: antialiased; + user-select: none; + -webkit-tap-highlight-color: transparent; + box-sizing: border-box; + touch-action: manipulation; + margin: 0; + border-radius: 0; + font-weight: inherit; + letter-spacing: 0.01em !important; + line-height: 0; + position: absolute; + width: 30px; + height: 30px; + padding: 0; + transform: translate(0, -50%); + cursor: pointer; + /* right: 30%; */ + display: block; +} + +.np-learning-paths-resources > ._right { + right: -2%; +} + +.np-learning-paths-resources > ._left { + left: -4%; +} + +._right { + right: -1%; +} + +._left { + left: -1%; +} + +@media only screen and (max-width: 1024px) { + ._right { + right: -2%; + } + ._left { + left: -2%; + } +} + +@media only screen and (max-width: 600px) { + ._right { + right: -2%; + } + ._left { + left: -2%; + } +} + +._1ycOA { + -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); +} +.slick-slide img { + margin: auto; +} +.circle-list { + list-style-type: none !important; + padding: unset; +} + +/* 5. Course */ +@media (max-width: 500px){ + .course-start-button{ + width: 48%; + float: right; + margin-top: -2.9rem; + } + + .np-top-cta-progress-content{ + width: 50%; + } +} + +@media (min-width: 501px){ + .np-top-cta-progress-content{ + margin-bottom: 0.5rem; + } +} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/training_events.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/training_events.html.liquid new file mode 100644 index 00000000..e62ce080 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/training_events.html.liquid @@ -0,0 +1,23 @@ +{% include "header" %} +
+
+ {% include "sub_navigation" %} +
+
+
+
+
+ {% t .title %} +
+
+ {% t .subtitle %} +
+
+
+ {% include "training_events_filter" %} +
+
+ {% include "training_events_index" %} +
+
+{% include "footer" %} \ No newline at end of file diff --git a/Custom_Templates/customer_templates/Skuid_Sandbox/waiting-room.html.liquid b/Custom_Templates/customer_templates/Skuid_Sandbox/waiting-room.html.liquid new file mode 100644 index 00000000..90dd1d45 --- /dev/null +++ b/Custom_Templates/customer_templates/Skuid_Sandbox/waiting-room.html.liquid @@ -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 %} + +{% else %} + +{% endif %} + +
+ +
+ Please wait while we're configuring the school for you. + You’ll be automatically redirected when it's ready +
+
+ + \ No newline at end of file diff --git a/CustomerNotes/G2.md b/CustomerNotes/G2.md index aeae7fc5..ee02d6bf 100644 --- a/CustomerNotes/G2.md +++ b/CustomerNotes/G2.md @@ -311,4 +311,4 @@ Offer certs to anyone who has already completed all courses but before the LPs a BDR team is launching their own academy/cert program. It's an internal program and LMS. They will be the QA tester in May -TODO: Send Katlin and Erin examples of customized login pages, forms, learning paths/dashboards, etc. +DONE: Send Katlin and Erin examples of customized login pages, forms, learning paths/dashboards, etc. diff --git a/CustomerNotes/Glassdoor.md b/CustomerNotes/Glassdoor.md index c278cf3d..3ab5cdd7 100644 --- a/CustomerNotes/Glassdoor.md +++ b/CustomerNotes/Glassdoor.md @@ -16,3 +16,9 @@ Mural board is already laid out. They have resources and ready to go. Phase 2: Cross functional, deeper training for clients who also have CSMs. ~ 6 months from today + +## 03/20/2023 + +### Chat with Paul + +Name, Email, Company Name & Company ID - IDEAL parameters. diff --git a/CustomerNotes/Pipedrive.md b/CustomerNotes/Pipedrive.md index 196749ac..fe174247 100644 --- a/CustomerNotes/Pipedrive.md +++ b/CustomerNotes/Pipedrive.md @@ -154,4 +154,3 @@ How much: * How many became new accounts * Are they interacting with new core-functionality * Have they added new users? - diff --git a/CustomerNotes/SPSCommerce.md b/CustomerNotes/SPSCommerce.md index 21a14109..35cfae59 100644 --- a/CustomerNotes/SPSCommerce.md +++ b/CustomerNotes/SPSCommerce.md @@ -110,3 +110,11 @@ Driving down registrations. Kayla has made all the events discoverable and accessible, but it is restricting the full functionality of Northpass. Kayla thought it could be the webinar template in Zoom. + +## 03/15/2023 + +### Matt joined + +Default- expanded sections +course prop boolean +t/F - collapsed sections diff --git a/CustomerNotes/Skuid.md b/CustomerNotes/Skuid.md index 40051e87..b423514d 100644 --- a/CustomerNotes/Skuid.md +++ b/CustomerNotes/Skuid.md @@ -178,7 +178,7 @@ She is concerned if someone claims they completed something how can she confirm? ### Upgrading to Comms -TODO: Password Reset, Academy Invitation (Mgr+Admin+Learners). Alexa doesn't have to do anything, Marek will change the +DONE: Password Reset, Academy Invitation (Mgr+Admin+Learners). Alexa doesn't have to do anything, Marek will change the format and enable them. Any interruptions? No. Alexa will not see any difference. Well, MOST won't see any changes. By early next week, the old emails will disappear and the new ones will become the standard. They will say "NEW" next to them. diff --git a/CustomerNotes/Walmart.md b/CustomerNotes/Walmart.md index 1ef37e5b..697a05d7 100644 --- a/CustomerNotes/Walmart.md +++ b/CustomerNotes/Walmart.md @@ -382,3 +382,16 @@ Krystal to speak to lead designer to give Cam insight as to how they design thei ## 03/01/2023 ### Meeting Cassie, Lauren Hand off + +## 03/16/2023 + +TODO: Show MJ how to do Show Transcript for bullet points. Here is the code: + +```html +
Show Transcript
+ +
+

Hey everyone, this is Ally with Tripleseat and in this video we are going to go over how to create an event and the different options you have to do so. The quickest way to add an event right to your calendar is by clicking on the new event button on the top right corner of your screen in Tripleseat. Detailing this page out and clicking create will add the event right to our calendar as well as store the contact information within Tripleseat.

+``` + +TODO: Show MJ example of Video+Article as two activities example. diff --git a/CustomerNotes/Wildhealth.md b/CustomerNotes/Wildhealth.md index 02ecfa35..cfdd08b6 100644 --- a/CustomerNotes/Wildhealth.md +++ b/CustomerNotes/Wildhealth.md @@ -181,13 +181,20 @@ DONE: Submit ticket for font changes & iFrame the calendar. ### Certs for Completion of Courses in Group TODO: Create "hidden" course where a cert will live. Submit ticket for course to show up only after all 10 courses in PM Fundamentals group is complete. -TODO: Ask Product about custom certs for Enterprise. Wild Health needs it for accreditation/legal healthcare reasons. +DONE: Ask Product about custom certs for Enterprise. Wild Health needs it for accreditation/legal healthcare reasons. Education Portal > PM Fundamentals Group > Must complete all courses. Date for custom cert: end of month, if possible. If not 2-3 months. WHAcademy: Abby fixed an embed issue but is trying to embed a different website, but it is showing Northpass. www.wildhealth.com\education. It is not working, it is just showing the -TODO: Ask about embeds not working - not loading or just showing the current Northpass page in the iFrame. +DONE: Ask about embeds not working - not loading or just showing the current Northpass page in the iFrame. WHAcademy again: -TODO: Check out the "Sleep" course, Bear Chronotype image, rounded corners not working, they image is staying sharp +DONE: Check out the "Sleep" course, Bear Chronotype image, rounded corners not working, they image is staying sharp This previously worked. + +## 03/20/2023 + +### Trei & Analytics + +Updated Abby on LPs, Certs, eCommerce and road map +TODO: Get Abby a list of requirements for design of certs diff --git a/Scripts/API_Tests/getemails_group.py b/Scripts/API_Tests/getemails_group.py index 94791dcf..04713dba 100644 --- a/Scripts/API_Tests/getemails_group.py +++ b/Scripts/API_Tests/getemails_group.py @@ -3,16 +3,18 @@ import pandas as pd apiKey = "HWxj6VTNPwbc3WghFTPzr7SjE" # Wild Health -groupid = "504c4771-223a-447f-9ec6-08e51bc9ca23" -groupurl = f"https://api.northpass.com/v2/groups/{groupid}/memberships" + +jan_groupid = "504c4771-223a-447f-9ec6-08e51bc9ca23" +july_groupid = "a988c9b0-d9f7-400e-a859-48a0fb167da7" +groupurl = f"https://api.northpass.com/v2/groups/{jan_groupid}/memberships" -def getemailsfromGroup(apiKey, groupid, groupurl): +def getemailsfromGroup(apiKey, jan_groupid, groupurl): x = 0 emaillist = [] while True: x += 1 - url = f"https://api.northpass.com/v2/groups/{groupid}/memberships?page={x}" + url = f"https://api.northpass.com/v2/groups/{jan_groupid}/memberships?page={x}" headers = {"accept": "application/json", "X-Api-Key": apiKey} response = requests.get(url, headers=headers) jsonResponse = response.json() @@ -30,4 +32,4 @@ def getemailsfromGroup(apiKey, groupid, groupurl): if __name__ == "__main__": - getemailsfromGroup(apiKey, groupid, groupurl) + getemailsfromGroup(apiKey, jan_groupid, groupurl) diff --git a/Scripts/GoogleScripts/MizunoPGA/LongRun.gs b/Scripts/GoogleScripts/MizunoPGA/LongRun.gs new file mode 100644 index 00000000..f869207d --- /dev/null +++ b/Scripts/GoogleScripts/MizunoPGA/LongRun.gs @@ -0,0 +1,308 @@ +// Compiled using ts2gas 3.6.5 (TypeScript 4.3.2) +var exports = exports || {}; +var module = module || { exports: exports }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.executeLongRun = exports.LongRun = void 0; +//import Properties = GoogleAppsScript.Properties.Properties; +/** + * Long-Running Support + */ +var LongRun = /** @class */ (function () { + /** + * Private constructor + * @private + */ + function LongRun() { + /** start time map */ + this.startTimeMap = {}; + } + Object.defineProperty(LongRun, "instance", { + /** + * Returns singleton instance. + */ + get: function () { + if (!this._instance) { + this._instance = new LongRun(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + /** + * Returns if function is running now. + * @param funcName + */ + LongRun.prototype.isRunning = function (funcName) { + // get spreadsheet properties + var properties = PropertiesService.getScriptProperties(); + var running = properties.getProperty(LongRun.PREFIX_RUNNING + funcName); + return !(running == null || running === ''); + }; + /** + * Sets the function is running + * @param funcName + * @param running + */ + LongRun.prototype.setRunning = function (funcName, running) { + var properties = PropertiesService.getScriptProperties(); + var key = LongRun.PREFIX_RUNNING + funcName; + if (running) { + properties.setProperty(key, "running"); + } + else { + properties.deleteProperty(key); + } + }; + /** + * Sets max execution seconds + * @param seconds + */ + LongRun.prototype.setMaxExecutionSeconds = function (seconds) { + LongRun.RUNNING_MAX_SECONDS = seconds; + }; + /** + * Sets the trigger's delay minutes + * @param minutes + */ + LongRun.prototype.setTriggerDelayMinutes = function (minutes) { + LongRun.RUNNING_DELAY_MINUTES = minutes; + }; + /** + * Returns the function parameters + * @param funcName + */ + LongRun.prototype.getParameters = function (funcName) { + var properties = PropertiesService.getScriptProperties(); + var parameters = properties.getProperty(LongRun.PREFIX_OPTION + funcName); + if (parameters != null) { + return parameters.split(','); + } + else { + return []; + } + }; + /** + * Sets the function parameters. + * @param funcName + * @param parameters + */ + LongRun.prototype.setParameters = function (funcName, parameters) { + var properties = PropertiesService.getScriptProperties(); + if (parameters != null) { + properties.setProperty(LongRun.PREFIX_OPTION + funcName, parameters.join(',')); + } + else { + properties.deleteProperty(LongRun.PREFIX_OPTION + funcName); + } + }; + /** + * Starts or Resumes Long-Run process. + * @param funcName + * @returns start index ( 0 for the first time ) + */ + LongRun.prototype.startOrResume = function (funcName) { + // save start time + this.startTimeMap[funcName] = new Date().getTime(); + // get properties of spreadsheet + var properties = PropertiesService.getScriptProperties(); + // set running-flag + this.setRunning(funcName, true); + // if the trigger exists, delete it. + this.deleteTrigger(LongRun.PREFIX_TRIGGER_KEY + funcName); + // get start index + var startPos = parseInt(properties.getProperty(LongRun.PREFIX_START_POS + funcName)); + if (!startPos) { + return 0; + } + else { + return startPos; + } + }; + /** + * Determines whether the process should be suspended. + * If it should be suspended, the next trigger will be registered. + * @param funcName + * @param nextIndex - start position when resuming + * @return true - it should be suspended + */ + LongRun.prototype.checkShouldSuspend = function (funcName, nextIndex) { + var startTime = this.startTimeMap[funcName]; + var diff = (new Date().getTime() - startTime) / 1000; + // If it's past the specified time, suspend the process + if (diff >= LongRun.RUNNING_MAX_SECONDS) { + // register the next trigger and set running-flag off + this.registerNextTrigger(funcName, nextIndex); + return true; + } + else { + return false; + } + }; + /** + * Resets Long-Running variables + * @param funcName + */ + LongRun.prototype.reset = function (funcName) { + // delete trigger + this.deleteTrigger(LongRun.PREFIX_TRIGGER_KEY + funcName); + // delete spreadsheet properties + var properties = PropertiesService.getScriptProperties(); + properties.deleteProperty(LongRun.PREFIX_START_POS + funcName); + properties.deleteProperty(LongRun.PREFIX_OPTION + funcName); + properties.deleteProperty(LongRun.PREFIX_RUNNING + funcName); + properties.deleteProperty(LongRun.PREFIX_TRIGGER_KEY + funcName); + }; + /** + * Resets Long-Running variables if there is no next trigger. + * Returns whether the command has finished or not. + * @param funcName + */ + LongRun.prototype.end = function (funcName) { + var ret = false; + if (!this.existsNextTrigger(funcName)) { + this.reset(funcName); + ret = true; + } + return ret; + }; + /** + * Returns if there is next trigger. + * @param funcName + */ + LongRun.prototype.existsNextTrigger = function (funcName) { + var triggerId = PropertiesService.getScriptProperties().getProperty(LongRun.PREFIX_TRIGGER_KEY + funcName); + return triggerId != null; + }; + /** + * register the next trigger and set running-flag off + * @param funcName + * @param nextIndex - start position when resuming + */ + LongRun.prototype.registerNextTrigger = function (funcName, nextIndex) { + // get spreadsheet properties + var properties = PropertiesService.getScriptProperties(); + properties.setProperty(LongRun.PREFIX_START_POS + funcName, String(nextIndex)); // save next start position + this.setTrigger(LongRun.PREFIX_TRIGGER_KEY + funcName, funcName); // set trigger + // turn off running-flag + properties.deleteProperty(LongRun.PREFIX_RUNNING + funcName); + }; + /** + * Deletes the trigger + * @param triggerKey + */ + LongRun.prototype.deleteTrigger = function (triggerKey) { + var triggerId = PropertiesService.getScriptProperties().getProperty(triggerKey); + if (!triggerId) + return; + ScriptApp.getProjectTriggers().filter(function (trigger) { + return trigger.getUniqueId() == triggerId; + }) + .forEach(function (trigger) { + ScriptApp.deleteTrigger(trigger); + }); + PropertiesService.getScriptProperties().deleteProperty(triggerKey); + }; + /** + * Sets a trigger + * @param triggerKey + * @param funcName + */ + LongRun.prototype.setTrigger = function (triggerKey, funcName) { + this.deleteTrigger(triggerKey); // delete if exists. + var dt = new Date(); + dt.setMinutes(dt.getMinutes() + LongRun.RUNNING_DELAY_MINUTES); // will execute after the specified time + var triggerId = ScriptApp.newTrigger(funcName).timeBased().at(dt).create().getUniqueId(); + // save the trigger id to delete the trigger later. + PropertiesService.getScriptProperties().setProperty(triggerKey, triggerId); + }; + // constants + LongRun.PREFIX_RUNNING = "running_"; + LongRun.PREFIX_TRIGGER_KEY = "trigger_"; + LongRun.PREFIX_START_POS = "start_"; + LongRun.PREFIX_OPTION = "option_"; + LongRun.RUNNING_MAX_SECONDS = 4 * 60; + LongRun.RUNNING_DELAY_MINUTES = 1; + LongRun.EXECUTE_LONGRUN_FUNCNAME = "_executeLongRun"; + return LongRun; +}()); +exports.LongRun = LongRun; +/** + * A function allows you to easily execute long-run task using the LongRun class. + * + * @param mainFuncName - Name of the function to be executed each time. + * @param loopCount - Number of times to execute the main function. + * @param params - Parameters passed to each function (string[]). (optional) + * @param initializerName - Name of the first function to be executed on first or restart. (optional) + * @param finalizerName - Name of the function to be called on interruption or when all processing is complete. (optional) + * + * The definition of each function to be passed should be as follows. + * - Main function: function [function name](index: number, params: string[]) {...} + * - Initializer: function [function name](startIndex: number, params: string[]) {...} + * - Finalizer: function [function name](isFinished: boolean, params: string[]) {...} + * + * Note that it is not possible to use executeLongRun() to execute different long-time processes simultaneously. + */ +function executeLongRun(mainFuncName, loopCount, params, initializerName, finalizerName) { + if (params === void 0) { params = null; } + if (initializerName === void 0) { initializerName = null; } + if (finalizerName === void 0) { finalizerName = null; } + var longRunParams = []; + longRunParams.push(mainFuncName); + longRunParams.push(String(loopCount)); + longRunParams.push(initializerName === null ? '' : initializerName); + longRunParams.push(finalizerName === null ? '' : finalizerName); + if (params != null && params.length > 0) { + longRunParams.push(params.join(',')); + } + LongRun.instance.setParameters(LongRun.EXECUTE_LONGRUN_FUNCNAME, longRunParams); + _executeLongRun(); +} +exports.executeLongRun = executeLongRun; +/** + * The main body of executeLongRun + */ +function _executeLongRun() { + var longRun = LongRun.instance; + // get parameters + var longRunParams = longRun.getParameters(LongRun.EXECUTE_LONGRUN_FUNCNAME); + var mainFuncName = longRunParams[0]; + var loopCount = parseInt(longRunParams[1]); + var initializerName = longRunParams[2]; + var finalizerName = longRunParams[3]; + var params = []; + for (var i = 4; i < longRunParams.length; i++) { + params.push('"' + longRunParams[i] + '"'); + } + var paramsLiteral = '[' + params.join(',') + ']'; + var startIndex = longRun.startOrResume(LongRun.EXECUTE_LONGRUN_FUNCNAME); + try { + // *** call initializer *** + if (initializerName != null && initializerName.length > 0) { + eval(initializerName + '(' + startIndex + ',' + paramsLiteral + ')'); + } + // execute the iterative process. + for (var i = startIndex; i < loopCount; i++) { + // Each time before executing a process, you need to check if it should be stopped or not. + if (longRun.checkShouldSuspend(LongRun.EXECUTE_LONGRUN_FUNCNAME, i)) { + // if checkShouldSuspend() returns true, the next trigger has been set + // and you should get out of the loop. + console.log('*** The process has been suspended. ***'); + break; + } + // *** call main process *** + eval(mainFuncName + '(' + i + ',' + paramsLiteral + ')'); + } + } + catch (e) { + console.log(e.message); + } + finally { + // you must always call end() to reset the long-running variables if there is no next trigger. + var finished = longRun.end(LongRun.EXECUTE_LONGRUN_FUNCNAME); + // *** call finalizer *** + if (finalizerName != null && finalizerName.length > 0) { + eval(finalizerName + '(' + finished + ',' + paramsLiteral + ')'); + } + } +} diff --git a/Scripts/GoogleScripts/MizunoPGA/Test1.gs b/Scripts/GoogleScripts/MizunoPGA/Test1.gs new file mode 100644 index 00000000..b218c904 --- /dev/null +++ b/Scripts/GoogleScripts/MizunoPGA/Test1.gs @@ -0,0 +1,62 @@ +// Compiled using ts2gas 3.6.5 (TypeScript 4.3.2) +var exports = exports || {}; +var module = module || { exports: exports }; +Object.defineProperty(exports, "__esModule", { value: true }); +//import {LongRun} from "../LongRun"; +function executeTest1() { + var params = []; + params.push(3); // How many times the process should be executed + params.push(1); // How long does it take to process one case? (in seconds) + params.push(1); // Maximum acceptable run time in seconds (less than 6 minutes, of course) + params.push(1); // How many minutes later the next trigger will be activated + LongRun.instance.setParameters('LongRunTask', params); + LongRunTask(); +} +function LongRunTask( +// there must be no arguments, because the parameters must be retrieved from LongRun class. +/* times: number, funcExecutionSeconds: number, maxExecutionSeconds: number, triggerDelayMinutes: number */ +) { + var longRun = LongRun.instance; + // funcName must equal this function's name. + var funcName = 'LongRunTask'; + // you can get the parameters from LongRun class. + var params = longRun.getParameters(funcName); + var times = parseInt(params[0]); + var funcExecutionSeconds = parseInt(params[1]); + var maxExecutionSeconds = parseInt(params[2]); + var triggerDelayMinutes = parseInt(params[3]); + // you can set the long-running configurations. of course you can use the default values. + longRun.setMaxExecutionSeconds(maxExecutionSeconds); // default is 240 seconds + longRun.setTriggerDelayMinutes(triggerDelayMinutes); // default is 1 minute + // you should get the index to resume(zero for the first time) + var startIndex = longRun.startOrResume(funcName); + if (startIndex === 0) { + console.log('--- LongRunTask started. ---'); + } + try { + // Execute the iterative process. + for (var i = startIndex; i < times; i++) { + console.log('Processing: ' + i); + // Each time before executing a process, you need to check if it should be stopped or not. + if (longRun.checkShouldSuspend(funcName, i)) { + // if checkShouldSuspend() returns true, the next trigger has been set + // and you should get out of the loop. + console.log('*** The process has been suspended. ***'); + break; + } + // *** code your main process here! *** + Utilities.sleep(funcExecutionSeconds * 1000); // demonstrate the process + console.log('Processing Done!: ' + i); + } + } + catch (e) { + console.log(e.message); + } + finally { + // you must always call end() to reset the long-running variables if there is no next trigger. + var finished = longRun.end(funcName); + if (finished) { + console.log('--- LongRunTask finished. ---'); + } + } +}