Creation du système de base des widgets

This commit is contained in:
EpicKiwi 2026-06-14 13:29:00 +02:00
parent 8fda06c77f
commit e61c495cc4
Signed by: epickiwi
GPG key ID: C4B28FD2729941CE
9 changed files with 118 additions and 2 deletions

View file

@ -1,8 +1,10 @@
import "./feature-short-header.js"
import FEATURE_WIDGETS from "../feature-widgets/feature-widgets.js"
const TEMPLATE = document.createElement("template")
TEMPLATE.innerHTML = `
<camp-feature-short-header class="feature-header" ></camp-feature-short-header>
<div class="feature-widgets"></div
`
export class FeatureElement extends HTMLElement {
@ -19,6 +21,14 @@ export class FeatureElement extends HTMLElement {
let header = this.querySelector("camp-feature-short-header")
header.feature = this.feature
header.updateContent()
let widgetContainer = this.querySelector(".feature-widgets");
for(let widgetFn of FEATURE_WIDGETS){
let result = widgetFn(this.feature);
if(result !== undefined && result !== null){
widgetContainer.append(result)
}
}
}
}

View file

@ -0,0 +1,7 @@
import { zoneInterditeWidget } from "./zone-interdite.js"
export const FEATURE_WIDGETS = [
zoneInterditeWidget
]
export default FEATURE_WIDGETS

View file

@ -0,0 +1,23 @@
export function zoneInterditeWidget(feature){
if(feature.properties["zone-interdite"] || feature.properties["autorisee"] === false){
let content = document.createElement("div")
content.classList.add("zone-interdite-widget")
content.classList.add("widget")
let h2 = document.createElement("h2")
h2.textContent = "Zone interdite"
content.append(h2)
if(feature.properties["description-interdiction"]){
let description = document.createElement("p")
description.textContent = feature.properties["description-interdiction"]
content.append(description)
} else {
let p = document.createElement("p")
p.textContent = `Cette zone est interdite. Veuillez ne pas y entrer.`
content.append(p)
}
return content
}
}

View file

@ -231,6 +231,7 @@ export class PlaceDatabase extends EventTarget {
default_database.loadGeojson(new URL("../couches/terrain-de-basket.geojson", import.meta.url), {batch: true}),
default_database.loadGeojson(new URL("../couches/wifi.geojson", import.meta.url), {batch: true}),
default_database.loadGeojson(new URL("../couches/zones-interdite.geojson", import.meta.url), {batch: true}),
default_database.loadGeojson(new URL("../couches/zones-protegees.geojson", import.meta.url), {batch: true}),
])
default_database.buildIndex()

View file

@ -71,7 +71,7 @@ function getBaseSymbolForFeature(feature){
return WIFI_SYMBOL
}
if(feature.properties["zone-interdite"]){
if(feature.properties["zone-interdite"] || feature.properties["autorisee"] === false){
return VERBOTEN_AREA_SYMBOL
}