Files
Gainsight/Custom_Templates/customer_templates/WoodMac Learn/dashboard.html.liquid

386 lines
9.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% assign enrolled_events = 0 %}
{% for training_event in training_events.enrolled %}
{% assign enrolled_events = enrolled_events | plus: 1 %}
{% endfor %}
{% include "header" %}
{% include "course_version_outdated_alert", courses: courses.enrolled %}
<div class="np-banner-container ">
<div class="banner-wrapper np-max-width">
<div class="np-banner-content">
<div class="dashboard-heading">Dashboard</div>
<div class="dashboard-greeting-text">
<p>Hi {{ current_person.first_name }}!</p>
<p>Continue where you left off or dive into <br>something new your learning journey awaits!</p>
</div>
</div>
<div class="dashboard-stats">
<div class="dashboard-heading">
Course progress
</div>
{% include 'widget_course_progress' %}
</div>
<div class="dashboard-upcoming-events">
<div class="upcoming_events_heading">Upcoming events</div>
<div class="event-card" >
{% include "training_events_dashboard" %}
</div>
<div class="see-more-container"></div>
<button class="see-more-button" onclick="scrollToRegisteredEvents()">See more</button>
</div>
</div>
</div>
</div>
<main class="np-main np-dashboard np-subpage-container np-max-width">
{% assign in_progress_flag = false %}
{% assign not_started_flag = false %}
{% assign completed_flag = false %}
{% if courses.enrolled.any? %}
{% for course in courses.enrolled %}
{% if course.progress == 0 %}
{% assign not_started_flag = true %}
{% elsif course.progress > 0 and course.progress < 100 %}
{% assign in_progress_flag = true %}
{% else %}
{% assign completed_flag = true %}
{% endif %}
{% endfor %}
{% endif %}
<!-- In Progress Courses -->
{% if in_progress_flag %}
<div class="in-progress-container" onclick="toggleDropdown(this)" data-expanded="false">
<div class="role-quick-link-heading" >In progress courses</div> <span class="dropdown-arrow">▼</span>
</div>
<div class="category-courses course-items-container">
{% for course in courses.enrolled %}
{% if course.progress > 0 and course.progress < 100 %}
<div class="category-cards-wrapper course-item">
{% include "cards_course" with course %}
</div>
{% endif %}
{% endfor %}
</div>
{% endif %}
<!-- Not Started Courses -->
{% if not_started_flag %}
<div class="in-progress-container" onclick="toggleDropdown(this)" data-expanded="false">
<div class="role-quick-link-heading" >Available courses</div><span class="dropdown-arrow">▼</span>
</div>
<div class="category-courses course-items-container" >
{% for course in courses.enrolled %}
{% if course.progress == 0 %}
<div class="category-cards-wrapper course-item">
{% include "cards_course" with course %}
</div>
{% endif %}
{% endfor %}
</div>
{% endif %}
<!-- Completed Courses -->
{% if completed_flag %}
<div class="in-progress-container" onclick="toggleDropdown(this)" data-expanded="false">
<div class="role-quick-link-heading" >Completed courses</div><span class="dropdown-arrow">▼</span>
</div>
<div class="category-courses course-items-container">
{% for course in courses.enrolled %}
{% if course.progress == 100 %}
<div class="category-cards-wrapper course-item">
{% include "cards_course" with course %}
</div>
{% endif %}
{% endfor %}
</div>
{% endif %}
<!-- Registered Events -->
{% assign enrolled_events = 0 %}
{% for training_event in training_events.enrolled %}
{% assign enrolled_events = enrolled_events | plus: 1 %}
{% endfor %}
{% if enrolled_events > 0 %}
<div id="registered-events-section" class="in-progress-container" onclick="toggleDropdown(this)" data-expanded="false">
<div class="role-quick-link-heading">Upcoming events</div><span class="dropdown-arrow">▼</span>
</div>
<div class="category-courses course-items-container">
{% for training_event in training_events.enrolled %}
<div class="category-cards-wrapper course-item">
{% include "cards_training_event" %}
</div>
{% endfor %}
</div>
{% endif %}
</main>
{% include "footer" %}
<script>
function scrollToRegisteredEvents() {
document.getElementById("registered-events-section").scrollIntoView({ behavior: "smooth" });
}
document.addEventListener("DOMContentLoaded", function() {
function setCourseItemsVisibility(container) {
const items = container.querySelectorAll(".course-item");
const isExpanded = container.previousElementSibling.getAttribute("data-expanded") === "true";
items.forEach((item, index) => {
item.style.display = (index < 3 || isExpanded) ? "block" : "none";
});
}
window.toggleDropdown = function(element) {
const container = element.nextElementSibling;
if (container && container.classList.contains("course-items-container")) {
const isExpanded = element.getAttribute("data-expanded") === "true";
element.setAttribute("data-expanded", !isExpanded);
setCourseItemsVisibility(container);
element.querySelector(".dropdown-arrow").textContent = isExpanded ? "▼" : "▲";
}
};
document.querySelectorAll(".course-items-container").forEach(container => {
setCourseItemsVisibility(container);
});
});
</script>
<style>
.np-banner-container{
display: flex;
padding: 33px;
background-color: #EEEFEF;
margin-bottom: 20px;
align-items: flex-start;
gap: 20px;
justify-content: space-around;
}
.np-dashboard-resources{
border-radius: 16px;
}
.category-courses {
display: grid;
grid-template-columns: repeat(3,1fr);
gap: 20px;
margin-bottom: 40px;
}
@media (max-width: 768px) {
.category-courses{
display: flex;
flex-direction: column;
}
}
.banner-wrapper {
display: flex;
justify-content: space-between;
width: 100%;
gap: 30px;
}
.dashboard-heading{
font-size: 2.5rem;
color: #010063;
font-weight: 500;
}
.upcoming_events_heading {
font-size: 2.5rem;
color: #010063;
font-weight: 500;
padding-bottom: 25px;
}
.np-dashboard-resources-title{
font-size: 25px;
color: #0A23F5;
font-weight: bold;
padding-bottom: 25px;
text-transform: none;
}
.dashboard-greeting-text{
color: #01005F;
font-size: 22px;
}
.course-items-container {
width: 100%;
}
.progress-circles {
display: flex;
justify-content: space-between;
}
.progress-circle {
display: flex;
flex-direction: column;
align-items: center;
background-color: #FFFFFF;
padding: 20px;
border-radius: 50%;
width: 120px;
height: 120px;
justify-content: center;
border: 8px solid #B0B0B0;
}
.progress-count {
font-size: 32px;
font-weight: bold;
color: #333333;
}
.progress-label {
font-size: 14px;
color: #01005F;
margin-top: 5px;
}
.progress-card-wrapper {
margin-top: 20px;
}
.section-title{
color:#0A23F5;
}
.progress-circles-container{
padding: 40px;
background-color: #FFFFFF;
}
.progress-circles-container {
padding: 40px;
background-color: #FFFFFF;
border-radius: 15px;
}
.in-progress-container {
background-color: #0A23F5;
padding: 10px;
margin-bottom: 15px;
width: 100%;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
}
.role-quick-link-heading {
font-size: 20px;
font-weight: 600;
color: #FFFFFF;
}
.dropdown-arrow {
font-size: 18px;
transition: transform 0.3s;
color: #fff;
}
.course-items {
overflow: hidden;
height: 500px;
transition: height 0.3s ease;
}
.course-items.show {
height: auto;
}
.hidden-course {
display: none;
}
.course-items.show .hidden-course {
display: block;
}
.see-more-button{
color: #fff;
background-color: #091ED3;
padding: 10px;
border-radius: 4px;
border: none;
}
@media (max-width: 768px) {
.banner-wrapper{
flex-direction: column;
}
}
</style>
<script>
addEventListener("DOMContentLoaded", (event) => {
const timeZones = {
'-12': 'Etc/GMT+12',
'-11': 'Pacific/Pago_Pago',
'-10': 'Pacific/Honolulu',
'-09': 'America/Anchorage',
'-08': 'America/Los_Angeles',
'-07': 'America/Denver',
'-06': 'America/Chicago',
'-05': 'America/New_York',
'-04': 'America/Caracas',
'-03': 'America/Argentina/Buenos_Aires',
'-02': 'Atlantic/South_Georgia',
'-01': 'Atlantic/Azores',
'00': 'UTC',
'CET': 'CET',
'+01': 'Europe/Berlin',
'+02': 'Europe/Athens',
'+03': 'Europe/Moscow',
'+04': 'Asia/Dubai',
'+05': 'Asia/Karachi',
'+06': 'Asia/Almaty',
'+07': 'Asia/Bangkok',
'+08': 'Asia/Singapore',
'+09': 'Asia/Tokyo',
'+10': 'Australia/Sydney',
'+11': 'Pacific/Noumea',
'+12': 'Pacific/Auckland',
'+13': 'Pacific/Tongatapu',
'+14': 'Pacific/Kiritimati'
};
function formatTimeZone(offset) {
offset = offset.trim();
if (timeZones[offset]) {
return timeZones[offset];
}
try {
const zoneName = luxon.FixedOffsetZone.parseSpecifier(offset).name;
return `UTC${zoneName}`;
} catch {
return offset;
}
}
const offset = '+08';
const formattedZone = formatTimeZone(offset);
console.log(`Offset ${offset} to: ${formattedZone}`);
document.querySelectorAll('.zone').forEach((timeElement) => {
const offset = timeElement.textContent;
const formattedZone = formatTimeZone(offset);
timeElement.textContent = timeElement.textContent.replace(offset, formattedZone);
});
});
</script>