Creation du système de base des widgets
This commit is contained in:
parent
8fda06c77f
commit
e61c495cc4
9 changed files with 118 additions and 2 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
7
js/feature-widgets/feature-widgets.js
Normal file
7
js/feature-widgets/feature-widgets.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
import { zoneInterditeWidget } from "./zone-interdite.js"
|
||||
|
||||
export const FEATURE_WIDGETS = [
|
||||
zoneInterditeWidget
|
||||
]
|
||||
|
||||
export default FEATURE_WIDGETS
|
||||
23
js/feature-widgets/zone-interdite.js
Normal file
23
js/feature-widgets/zone-interdite.js
Normal 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
|
||||
}
|
||||
}
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue