This commit is contained in:
Denis Bunevich
2025-11-21 12:00:27 +01:00
parent 6e6c9aa3af
commit be484cb33d
43 changed files with 131 additions and 146 deletions

View File

@@ -15,9 +15,14 @@ $scripts = [];
<link rel="manifest" href="<?= get_theme_file_uri('/assets/img/favicon/site.webmanifest'); ?>">
<link rel="mask-icon" href="<?= get_theme_file_uri('/assets/img/favicon/safari-pinned-tab.svg'); ?>" color="#5bbad5">
<link rel="shortcut icon" href="<?= get_theme_file_uri('/assets/img/favicon/favicon.ico'); ?>" type="image/x-icon">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="<?= get_theme_file_uri('/assets/img/favicon/browserconfig.xml'); ?>">
<meta name="theme-color" content="#ffffff">
<script>
var lawCartaDomain = '<?= get_lawcarta_url()?>';
</script>
@@ -145,44 +150,10 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<header class="header">
<div class="cont">
<div class="header-cont">
<button class="header-menu-toggle header-btn mobile" title="Open Menu">
<span class="icon-menu"></span>
</button>
<a href="/" class="logo" title="Logo" tabindex="0">
<picture>
<source media="(min-width: 600px)" srcset="<?= get_lawcarta_url()?>/img/logo.svg">
<img src="<?= get_lawcarta_url()?>/img/logo-mobile.svg" width="36" height="36" alt="Logo">
</picture>
<img src="<?= get_theme_file_uri('/assets/img/logo.svg'); ?>" alt="Logo">
</a>
<div class="desktop-menu">
</div>
<div class="header-search">
<div class="search-input with-btn">
<div class="si-flex">
<div class="close-search">
<button class="header-btn" title="Close Search">
<span class="icon-back"></span>
</button>
</div>
<div class="left">
<span class="icon-search hide-sm"></span>
<button class="button clear link clear-search" id="clear-search" title="Clear Search" style="display: none;">
<span class="icon-close"></span>
</button>
<input type="text" class="form-control" placeholder="Search customizable books and materials" id="header-search">
</div>
<div class="right">
<button class="button action" id="header-search-btn" title="Start Search">
<span class="icon-search"></span>
</button>
</div>
</div>
</div>
<button class="header-btn open-search" title="Open Search">
<span class="icon-search"></span>
</button>
</div>
<div class="desktop-menu"></div>
<div class="header-right-menu"></div>
</div>
<div class="mobile-menu">
@@ -248,6 +219,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
login: appUrl + '/user/login',
signUp: appUrl + '/user/registration',
llm: appUrl + '/outline-builder',
resources: appUrl + '/resources',
verify: appUrl + '/user/registration/verify',
@@ -264,22 +236,24 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
let isPageSelected = {
home: currentPage === '/' ? ' selected' : '',
features: currentPage.indexOf('/features') === 0 ? ' selected' : '',
aboutUs: currentPage.indexOf('/about-us') === 0 ? ' selected' : ''
aboutUs: currentPage.indexOf('/about-us') === 0 ? ' selected' : '',
resources: currentPage.indexOf('/resources') === 0 ? ' selected' : '',
}
let desktopLinks = '';
if (!isGuest) desktopLinks += '<a href="' + linksObject.dashboard + '" class="menu-link movable" tabindex="0"><span class="text">Dashboard</span></a>';
desktopLinks += '<a href="' + linksObject.catalog + '" class="menu-link movable" tabindex="0"><span class="text">Catalog</span></a>';
if (!isGuest) desktopLinks += '<a href="' + linksObject.library + '" class="menu-link movable" tabindex="0"><span class="text">My Library</span></a>';
// if (!isGuest) desktopLinks += '<a href="' + linksObject.bundles + '" class="menu-link movable" tabindex="0"><span class="text">Bundles</span></a>';
if (isGuest) desktopLinks += '<a href="' + linksObject.features + '" class="menu-link movable' + isPageSelected.features +'" tabindex="0"><span class="text">Features</span></a>';
if (isGuest) desktopLinks += '<a href="' + linksObject.aboutUs + '" class="menu-link movable' + isPageSelected.aboutUs +'" tabindex="0"><span class="text">About Us</span></a>';
if (!isGuest) desktopLinks += `<a href="${linksObject.dashboard}" class="menu-link movable" tabindex="0"><span class="text">Dashboard</span></a>`;
desktopLinks += `<a href="${linksObject.catalog}" class="menu-link movable" tabindex="0"><span class="text">Catalog</span></a>`;
if (!isGuest) desktopLinks += `<a href="${linksObject.library}" class="menu-link movable" tabindex="0"><span class="text">My Library</span></a>`;
// if (!isGuest) desktopLinks += `<a href="${linksObject.bundles}" class="menu-link movable" tabindex="0"><span class="text">Bundles</span></a>`;
if (isGuest) desktopLinks += `<a href="${linksObject.features}" class="menu-link movable${isPageSelected.features}" tabindex="0"><span class="text">Features</span></a>`;
if (isGuest) desktopLinks += `<a href="${linksObject.resources}" class="menu-link movable${isPageSelected.resources}" tabindex="0"><span class="text">Resources</span></a>`;
if (isGuest) desktopLinks += `<a href="${linksObject.aboutUs}" class="menu-link movable${isPageSelected.aboutUs}" tabindex="0"><span class="text">About Us</span></a>`;
desktopLinks += `<a href="${linksObject.llm}" class="menu-link movable" tabindex="0">
<span class="icon-magic"></span>
<span class="text">Curriculum Builder</span>
</a>`;
document.querySelector('.desktop-menu').innerHTML = desktopLinks;
document.querySelector('.desktop-menu').innerHTML = desktopLinks;
let hrmHtml = '';
@@ -287,13 +261,13 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
if (isGuest) {
hrmHtml += `
<div class="desktop-sign-cont">
<a href="` + linksObject.login + `" class="sign-link button action" tabindex="0">Log In</a>
<a href="` + linksObject.signUp + `" class="sign-link button secondary" tabindex="0">Sign Up</a>
<a href="${linksObject.login}" class="sign-link button action" tabindex="0">Log In</a>
<a href="${linksObject.signUp}" class="sign-link button secondary" tabindex="0">Sign Up</a>
</div>
`;
mmSign += `
<a href="` + linksObject.login + `" class="sign-link button action" tabindex="0">Log In</a>
<a href="` + linksObject.signUp + `" class="sign-link button secondary" tabindex="0">Sign Up</a>
<a href="${linksObject.login}" class="sign-link button action" tabindex="0">Log In</a>
<a href="${linksObject.signUp}" class="sign-link button secondary" tabindex="0">Sign Up</a>
`;
}
if (!isGuest) {
@@ -303,10 +277,13 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
hrmHtml += `</button>`;
}
hrmHtml += `
<a class="header-btn circle" href="` + linksObject.cart + `" title="My Cart" tabindex="0">
<span class="icon-shop"></span>`;
hrmHtml += frontSettings?.cartItemsCount > 0 ? '<span class="num">' + frontSettings.cartItemsCount + '</span>' : '';
hrmHtml += `</a>`;
<button class="header-menu-toggle header-btn mobile" title="Open Menu">
<span class="icon-menu"></span>
</button>
<a class="header-btn circle" href="${linksObject.cart}" title="My Cart" tabindex="0">
<span class="icon-shop"></span>
${frontSettings?.cartItemsCount > 0 ? `<span class="num">${frontSettings.cartItemsCount}</span>` : ''}
</a>`;
document.querySelector('.header-right-menu').innerHTML = hrmHtml;
document.querySelector('.mobile-sign-cont').innerHTML = mmSign;
@@ -316,11 +293,12 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
if (sharedAccounts.length > 0) {
mmHtml += `<div class="acc-manage">
<span class="label">Manage account:</span>`;
sharedAccounts.forEach((account) => {
mmHtml += '<a href="' +
linksObject.accountManage.replace('<id>', account.id) + '" class="menu-link" tabindex="0"><span class="text">' +
account.name + '</span></a>'
})
sharedAccounts.forEach((account) => {
mmHtml += `
<a href="${linksObject.accountManage.replace('<id>', account.id)}" class="menu-link" tabindex="0">
<span class="text">${account.name}</span>
</a>`
})
mmHtml += `</div>`;
}
@@ -342,33 +320,12 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
window.addEventListener('DOMContentLoaded', (event) => {
let headerSearch = document.querySelector('.header-search .form-control');
let headerSearchCont = document.querySelector('.header-search .search-input');
let mobileMenu = document.querySelector('.header .mobile-menu');
let mobileCont = document.querySelector('.mobile-links-cont');
let desktopCont = document.querySelector('.desktop-menu');
drawHeader();
headerSearch.addEventListener('focus', () => {
headerSearchCont?.classList.add('open');
});
headerSearch.addEventListener('blur', () => {
headerSearchCont?.classList.remove('open');
});
headerSearch.addEventListener('keydown', () => {
setTimeout(() => {
if (document.getElementById('header-search').value.length > 0) {
document.getElementById('clear-search').style.display = 'block';
} else {
document.getElementById('clear-search').style.display = 'none';
}
}, 20);
});
const moveMenu = function(){
let menuItems = document.querySelectorAll('.menu-link.movable');
@@ -380,13 +337,6 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
window.addEventListener('orientationchange', moveMenu, {passive: true});
document.addEventListener('click', event => {
if (event.target?.closest('.open-search')) {
headerSearchCont?.classList.add('open-search-panel');
headerSearchCont.querySelector('.form-control').focus();
}
if (event.target?.closest('.close-search')) {
headerSearchCont?.classList.remove('open-search-panel');
}
if (event.target?.closest('.header-menu-toggle') ||
event.target?.closest('.close-header-menu') ||
event.target?.closest('.mm-bg')) {
@@ -394,29 +344,11 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
mobileMenu?.classList.toggle('open');
}, 1);
}
if (event.target?.closest('.clear-search')) {
document.getElementById('header-search').value = "";
document.getElementById('clear-search').style.display = 'none';
}
if (event.target?.closest('#header-search-btn')) {
let searchData = document.getElementById('header-search').value.trim();
top.location = appUrl + '/catalog?tab=materials&search=' + searchData;
}
if (!event.target.closest('.mobile-menu.open')) {
mobileMenu?.classList.remove('open');
}
});
document.querySelector('#header-search').addEventListener('keyup', function(e){
if (e.key === "Enter") {
let searchData = e.target.value.trim();
top.location = appUrl + '/catalog?tab=materials&search=' + searchData;
}
})
});
})();