diff options
author | Guilhem Moulin <guilhem@fripost.org> | 2025-06-20 14:47:33 +0200 |
---|---|---|
committer | Guilhem Moulin <guilhem@fripost.org> | 2025-06-20 14:53:33 +0200 |
commit | 7a14a37960b73e6f01120ffec444b14b7fee6b3b (patch) | |
tree | 1626ef8cd80eb451eeecdb9f11f33a06df5d64d7 | |
parent | 7b226fdb1298ef6b3b361e382ea33e134c63278e (diff) |
Add a closing button to the measurement panel.
It can be confusing that one had to click on the ruler icon to go back
to the normal mode where one can select features.
-rw-r--r-- | main.js | 43 | ||||
-rw-r--r-- | style.css | 11 |
2 files changed, 39 insertions, 15 deletions
@@ -3918,14 +3918,25 @@ const infoMetadataAccordions = []; modal.appendChild(content); content.classList.add('modal-content'); - const body = document.createElement('div'); - content.appendChild(body); - body.classList.add('modal-body'); + const header = document.createElement('div'); + content.appendChild(header); + header.classList.add('modal-header'); const title = document.createElement('div'); title.classList.add('h5'); title.innerHTML = 'Mät i kartan'; - body.appendChild(title); + header.appendChild(title); + + const btn_close = document.createElement('button'); + btn_close.classList.add('btn-close'); + btn_close.type = 'button'; + btn_close.title = 'Stäng'; + btn_close.setAttribute('aria-label', btn_close.title); + header.appendChild(btn_close); + + const body = document.createElement('div'); + content.appendChild(body); + body.classList.add('modal-body'); const getMeasureMode = (function() { const btn_group = document.createElement('div'); @@ -3987,16 +3998,22 @@ const infoMetadataAccordions = []; btn_group.appendChild(buttons.ok); })(); - document.getElementById('measure-button') - .getElementsByTagName('button')[0] - .addEventListener('click', function(event) { - if (event.currentTarget.getAttribute('aria-expanded') === 'true') { - disposePopover(); - setup(getMeasureMode()); - } else { - setup(null); + const button_menu = document.getElementById('measure-button') + .getElementsByTagName('button')[0]; + button_menu.addEventListener('click', function(event) { + if (event.currentTarget.getAttribute('aria-expanded') === 'true') { + disposePopover(); + setup(getMeasureMode()); + } else { + setup(null); + /* XXX workaround for https://github.com/twbs/bootstrap/issues/41005#issuecomment-2585390544 */ + const activeElement = document.activeElement; + if (activeElement.isEqualNode(btn_close)) { + activeElement.blur(); } - }); + } + }); + btn_close.onclick = () => button_menu.click(); })(); /* popup and feature overlays */ @@ -494,9 +494,16 @@ body.inprogress { -moz-user-select: text; user-select: text; /* eslint-disable-line css/use-baseline */ } -#measure-panel .h5 { +#measure-panel .modal-header { + border-bottom: none; + padding: var(--bs-modal-padding); +} +#measure-panel .modal-header .h5 { font-size: 1.25rem; - margin-bottom: .75rem; + margin: 0; +} +#measure-panel .modal-body { + padding-top: 0; } #age-filter-modal .btn-group > .btn-check:not(:checked) + label.btn:hover, #measure-panel .btn-group > .btn-check:not(:checked) + label.btn:hover { |