319 lines
9.3 KiB
Plaintext
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>
|