mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
function updateDropdown (element, id, label) {
|
|
const dropdown = document.getElementById(element)
|
|
if (dropdown != null) {
|
|
dropdown.querySelector('.dropdown-toggle').textContent = label
|
|
dropdown.querySelectorAll('.panel-dropdown .dropdown-item').forEach(item => {
|
|
item.classList.remove('active')
|
|
let target = item.getAttribute('data-link')
|
|
if (target != null) {
|
|
target = target.replace(/^#+/, '')
|
|
if (target === id) {
|
|
item.classList.add('active')
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
document.querySelectorAll('.panel-dropdown').forEach(trigger => {
|
|
trigger.addEventListener('hide.bs.dropdown', event => {
|
|
if (event.clickEvent != null) {
|
|
let target = event.clickEvent.srcElement.getAttribute('data-link')
|
|
if (target != null) {
|
|
trigger.querySelectorAll('.panel-dropdown .dropdown-item').forEach(item => {
|
|
item.classList.remove('active')
|
|
})
|
|
target = target.replace(/^#+/, '')
|
|
const btn = document.getElementById(target)
|
|
if (btn != null) {
|
|
event.clickEvent.srcElement.classList.add('active')
|
|
trigger.querySelector('.dropdown-toggle').textContent = event.clickEvent.srcElement.textContent
|
|
btn.click()
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
document.querySelectorAll('.nav-panel .nav-link').forEach(trigger => {
|
|
trigger.addEventListener('click', event => {
|
|
const companion = event.srcElement.parentElement.parentElement.getAttribute('data-companion')
|
|
if (companion != null) {
|
|
updateDropdown(companion, trigger.getAttribute('id'), trigger.textContent.trim())
|
|
}
|
|
})
|
|
})
|