This commit is contained in:
Yohan Boniface 2025-03-25 16:18:24 +01:00 committed by GitHub
commit e2a9b8544d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 30 additions and 5 deletions

View file

@ -166,7 +166,8 @@
.umap-caption-bar button { .umap-caption-bar button {
margin-inline-start: 10px; margin-inline-start: 10px;
} }
.umap-caption-bar button + button:before { .umap-caption-bar > button + select:before,
.umap-caption-bar > button + button:before {
content: '|'; content: '|';
padding-inline-end: 10px; padding-inline-end: 10px;
} }
@ -196,7 +197,14 @@
z-index: var(--zindex-panels); z-index: var(--zindex-panels);
} }
.umap-caption-bar-enabled .umap-caption-bar { .umap-caption-bar-enabled .umap-caption-bar {
display: block; display: flex;
align-items: baseline;
}
.umap-caption-bar select {
margin-top: 0;
line-height: initial;
height: initial;
width: auto;
} }
.umap-caption-bar-enabled { .umap-caption-bar-enabled {
--current-footer-height: var(--footer-height); --current-footer-height: var(--footer-height);

View file

@ -960,11 +960,11 @@ export class DataLayer extends ServerStored {
this.propagateHide() this.propagateHide()
} }
toggle() { toggle(status) {
// From now on, do not try to how/hidedataChanged // From now on, do not try to how/hidedataChanged
// automatically this layer. // automatically this layer.
this._forcedVisibility = true this._forcedVisibility = true
if (!this.isVisible()) this.show() if (!this.isVisible() || status) this.show()
else this.hide() else this.hide()
} }
@ -1252,7 +1252,7 @@ export class DataLayer extends ServerStored {
this this
) )
} }
DomEvent.on(toggle, 'click', this.toggle, this) DomEvent.on(toggle, 'click', () => this.toggle())
DomEvent.on(zoomTo, 'click', this.zoomTo, this) DomEvent.on(zoomTo, 'click', this.zoomTo, this)
container.classList.add(this.getHidableClass()) container.classList.add(this.getHidableClass())
container.classList.toggle('off', !this.isVisible()) container.classList.toggle('off', !this.isVisible())

View file

@ -167,6 +167,7 @@ const BOTTOM_BAR_TEMPLATE = `
<button class="umap-about-link flat" type="button" title="${translate('Open caption')}" data-ref="caption">${translate('Open caption')}</button> <button class="umap-about-link flat" type="button" title="${translate('Open caption')}" data-ref="caption">${translate('Open caption')}</button>
<button class="umap-open-browser-link flat" type="button" title="${translate('Browse data')}" data-ref="browse">${translate('Browse data')}</button> <button class="umap-open-browser-link flat" type="button" title="${translate('Browse data')}" data-ref="browse">${translate('Browse data')}</button>
<button class="umap-open-browser-link flat" type="button" title="${translate('Filter data')}" data-ref="filter">${translate('Filter data')}</button> <button class="umap-open-browser-link flat" type="button" title="${translate('Filter data')}" data-ref="filter">${translate('Filter data')}</button>
<select data-ref=layers></select>
</div> </div>
` `
@ -189,6 +190,13 @@ export class BottomBar extends WithTemplate {
this._umap.openBrowser('filters') this._umap.openBrowser('filters')
) )
this._slideshow.renderToolbox(this.element) this._slideshow.renderToolbox(this.element)
this.elements.layers.addEventListener('change', () => {
const select = this.elements.layers
const selected = select.options[select.selectedIndex].value
this._umap.eachDataLayer((datalayer) => {
datalayer.toggle(datalayer.id === selected)
})
})
this.redraw() this.redraw()
} }
@ -201,6 +209,15 @@ export class BottomBar extends WithTemplate {
this.elements.caption.hidden = !showMenus this.elements.caption.hidden = !showMenus
this.elements.browse.hidden = !showMenus this.elements.browse.hidden = !showMenus
this.elements.filter.hidden = !showMenus || !this._umap.properties.facetKey this.elements.filter.hidden = !showMenus || !this._umap.properties.facetKey
this.elements.layers.innerHTML = ''
this._umap.eachDataLayer((datalayer) => {
if (!datalayer.options.inCaption) return
this.elements.layers.appendChild(
Utils.loadTemplate(
`<option value="${datalayer.id}">${datalayer.getName()}</option>`
)
)
})
} }
} }