Files
Gainsight/Custom_Templates/customer_templates/iAdvize Sandbox/_header.html.liquid

319 lines
9.3 KiB
Plaintext

<header class="np-header np-header-color">
<div class="np-header-content">
<div class="np-hidden-desktop np-header-mobile-menu-nav">
{% if current_person.signed_in? %}
<button
data-toggle-class="np-hidden"
class="np-header-mobile-menu-nav-button fal fa-times np-hidden np-header-font-color"
data-toggle-target=".np-header-mobile-avatar-menu,
.np-header-mobile-menu-content, .np-main, .np-footer"
></button>
<button
data-test="open-mobile-menu"
data-toggle-class="np-hidden"
class="np-header-mobile-menu-nav-button np-header-mobile-avatar-menu"
data-toggle-target=".fa-times, .np-header-mobile-menu-content, .np-main, .np-footer"
>
<img
alt="{{ current_person.name }}"
class="np-header-avatar-image"
src="{{ current_person.avatar_url }}"
/>
</button>
{% endif %}
</div>
{% if current_school.logo_url %}
<h1 class="np-header-logo">
<a href="{% route home %}">
<img
alt="{{ current_school.name }}"
class="np-header-logo-image"
src="{{ current_school.logo_url }}"
/>
</a>
</h1>
{% else %}
<a href="{% route home %}" class="np-school-name np-header-font-color">
{{ current_school.name }}
</a>
{% endif %}
<div class="np-hidden-mobile np-header-desktop-nav">
<ul class="np-header-desktop-nav-list">
{% for website_navigation in navigations.header_navigations_external %}
<li class= "np-header-desktop-nav-item">
<a
href="{{ website_navigation.path }}"
class="np-header-desktop-nav-link np-header-font-color"
target="_blank"
>
{{ website_navigation.name }}
</a>
</li>
{% endfor %}
</ul>
</div>
{% if current_person.signed_in? %}
<select id="languageDropdown">
<option value="all">All Languages</option>
<option value="EN">English</option>
<option value="FR">French</option>
</select>
<div class="np-hidden-mobile np-header-search np-header-search-expanded">
<form action="{% route search %}" method="get" data-test="desktop-search">
<input
aria-label="{% t .search %}"
class="np-header-search-input np-header-font-background-color"
type="text"
name="q"
placeholder="{% t .search %}"
/>
<i class="np-header-search-icon far fa-search"></i>
</form>
</div>
<div class="np-hidden-mobile np-header-avatar">
<button
class="np-header-avatar-button"
data-test="open-desktop-menu"
data-toggle-class-on-target="np-hidden"
data-toggle-target=".np-header-avatar-tooltip"
data-toggle-outside
>
<img
alt="{{ current_person.name }}"
class="np-header-avatar-image"
src="{{ current_person.avatar_url }}"
>
</button>
<div class="np-header-avatar-tooltip np-hidden" role="tooltip">
<span class="np-header-avatar-tooltip-arrow-up"></span>
<div class="np-header-avatar-tooltip-learner">
<div class="np-header-avatar-tooltip-learner-name">
{{ current_person.name }}
</div>
<div class="np-header-avatar-tooltip-learner-email">
{{ current_person.email }}
</div>
</div>
<nav class="np-header-avatar-tooltip-navigation">
{% unless current_school.sso_active? %}
<a
class="np-header-avatar-tooltip-navigation-link"
href="{% route account %}"
>
{% t .profile_settings %}
</a>
{% endunless %}
<a
class="np-header-avatar-tooltip-navigation-link np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
</a>
</nav>
</div>
</div>
{% else %}
<a
class="np-header-sign-in np-header-desktop-nav-link np-header-font-color"
aria-label="{% t shared.sign_in %}"
href="{% route login %}"
>
{% t shared.sign_in %}
</a>
{% endif %}
</div>
</header>
<div class="np-hidden-desktop">
<div class="np-header-mobile-menu-content np-hidden">
{% if current_person.signed_in? %}
<img
alt="{{ current_person.name }}"
class="np-header-mobile-menu-content-avatar"
src="{{ current_person.avatar_url }}"
/>
<div class="np-header-mobile-menu-content-name">
{{ current_person.name }}
</div>
{% endif %}
<div class="np-header-mobile-menu-content-nav">
<form
class="np-header-search"
data-test="mobile-search"
method="get"
action="{% route search %}"
>
<input
aria-label="{% t .search %}"
class="np-header-search-input"
type="text"
name="q"
placeholder="{% t .search %}"
/>
<i class="np-header-search-icon far fa-search"></i>
</form>
{% for website_navigation in navigations.header_navigations %}
<a
href="{{ website_navigation.path }}"
class="np-header-mobile-menu-content-button"
{% if website_navigation.external? %} target="_blank" {% endif %}
>
{{ website_navigation.name }}
</a>
{% endfor %}
<div class="np-header-mobile-menu-content-line"></div>
{% unless current_school.sso_active? %}
<a
class="np-header-mobile-menu-content-button"
href="{% route account %}"
>
{% t .profile_settings %}
</a>
{% endunless %}
<a
class="np-header-mobile-menu-content-button np-danger"
href="{% route logout %}"
>
{% t .sign_out %}
</a>
</div>
</div>
</div>
{% include "messages" %}
<style>
/* Reset default styles for the dropdown */
select {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
background-color: transparent;
border: 1px solid #ddd;
padding: 8px 20px;
font-size: 16px;
color: #333;
cursor: pointer;
outline: none;
width: 200px;
margin: 1rem;
}
/* Style the dropdown arrow */
select::-ms-expand {
display: none;
}
/* Style the selected option */
select option:checked {
background-color: #f0f0f0;
}
/* Style the dropdown when hovered */
select:hover {
border-color: #aaa;
}
/* Style the dropdown when focused */
select:focus {
border-color: #007bff;
}
/* Style the dropdown options */
select option {
padding: 8px 20px;
background-color: #fff;
}
/* Style the dropdown container */
.dropdown-container {
display: inline-block;
position: relative;
}
/* Style the arrow icon */
.arrow-icon {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
pointer-events: none;
}
</style>
<script>
window.addEventListener("DOMContentLoaded", () => {
setLanguageFromCookie()
})
// Event listener for the language dropdown
const languageDropdown = document.getElementById("languageDropdown");
languageDropdown.addEventListener("change", (event) => {
const selectedLanguage = event.target.value;
filterCoursesByLanguage(selectedLanguage);
filterLearningPathsByLanguage(selectedLanguage)
addToLanguageCookies(selectedLanguage);
});
// Function to filter courses based on selected language
function filterCoursesByLanguage(selectedLanguage) {
const courseCards = document.querySelectorAll(".card-courses");
courseCards.forEach((course) => {
const courseLanguage = course.getAttribute("data-category");
if (selectedLanguage === "all" || courseLanguage.includes(selectedLanguage)) {
course.parentElement.style.display = "block";
} else {
course.parentElement.style.display = "none";
}
});
}
function filterLearningPathsByLanguage(selectedLanguage) {
const learningPathCards = document.querySelectorAll(".card-learning-path");
learningPathCards.forEach((learningPath) => {
const learningPathLanguage = learningPath.getAttribute("data-categories");
if (selectedLanguage === "all" || learningPathLanguage.includes(selectedLanguage)) {
learningPath.parentElement.style.display = "block";
} else {
learningPath.parentElement.style.display = "none";
}
});
}
function setLanguageFromCookie() {
cookie = getCookie("IAdviseLangugage")
if (cookie != "") {
filterCoursesByLanguage(cookie);
filterLearningPathsByLanguage(cookie)
document.getElementById("languageDropdown").value = cookie
}
}
function addToLanguageCookies(selectedLanguage) {
document.cookie = `IAdviseLangugage=${selectedLanguage}`;
}
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
</script>