diff --git a/assets/themes/openlovemap/openlovemap.json b/assets/themes/openlovemap/openlovemap.json
index 4eb34de52..9d1616a58 100644
--- a/assets/themes/openlovemap/openlovemap.json
+++ b/assets/themes/openlovemap/openlovemap.json
@@ -24,7 +24,10 @@
},
"minzoom": 6,
"=filter": [
- "open_now"
+ "open_now",
+ "fetish",
+ "accepts_cash",
+ "accepts_cards"
],
"name": {
"en": "Erotic shops",
@@ -42,6 +45,53 @@
"shop=erotic"
]
}
+ ],
+ "tagRenderings+": [
+ {
+ "id": "fetish",
+ "multiAnswer": true,
+ "question": {
+ "en": "Does this shop offer fetish gear?"
+ },
+ "mappings": [
+ {
+ "if": "fetish:bdsm:soft=yes",
+ "ifnot": "fetish:bdsm:soft=no",
+ "then": {
+ "en": "This shop offers soft BDSM-gear, such as fluffy handcuffs, a 'fifty-shade-of-grey'-starterset, ..."
+ }
+ },
+ {
+ "if": "fetish:bdsm:specialized=yes",
+ "ifnot": "fetish:bdsm:specialized=no",
+ "then":{
+ "en": "This shop offers specialized BDSM-gear, such as spreader bars, supplies for needle play, medical bondage supplies, impact tools, shackles, metal colors, cuffs, nipple clamps, shibari accessories, ..."
+ }
+ },
+ {
+ "if": "fetish:pet_play=yes",
+ "ifnot": "fetish:pet_play=no",
+ "then": {
+ "en": "This shop offers pet play accessories, such as puppy masks, animal masks, pony play, tails, hoof shoes, ..."
+ }
+ },
+ {
+ "if": "fetish:leather=yes",
+ "ifnot": "fetish:leather=no",
+ "then": {
+ "en": "This shop offers leather gear, including pants and shirts usable in daily life up till leather harnesses"
+ }
+ },
+ {
+ "if": "fetish:uniform=yes",
+ "ifnot": "fetish:uniform=no",
+ "then": {
+ "en": "This shop offers uniforms for roleplay, such nurse uniforms, military uniforms, police, school girl, french maid, ..."
+ }
+ }
+
+ ]
+ }
]
}
},
diff --git a/src/UI/ThemeViewGUI.svelte b/src/UI/ThemeViewGUI.svelte
index b2980971d..97bbb91cd 100644
--- a/src/UI/ThemeViewGUI.svelte
+++ b/src/UI/ThemeViewGUI.svelte
@@ -13,6 +13,7 @@
import type { MapProperties } from "../Models/MapProperties"
import Geosearch from "./BigComponents/Geosearch.svelte"
import Translations from "./i18n/Translations"
+ import usersettings from "../assets/generated/layers/usersettings.json"
import {
CogIcon,
EyeIcon,
@@ -73,6 +74,7 @@
import AboutMapComplete from "./BigComponents/AboutMapComplete.svelte"
import HotkeyTable from "./BigComponents/HotkeyTable.svelte"
import SelectedElementPanel from "./Base/SelectedElementPanel.svelte"
+ import { LayerConfigJson } from "../Models/ThemeConfig/Json/LayerConfigJson"
export let state: ThemeViewState
let layout = state.layout
@@ -121,6 +123,7 @@
let visualFeedback = state.visualFeedback
let viewport: UIEventSource = new UIEventSource(undefined)
let mapproperties: MapProperties = state.mapProperties
+ let usersettingslayer = new LayerConfig( usersettings, "usersettings", true)
state.mapProperties.installCustomKeyboardHandler(viewport)
let canZoomIn = mapproperties.maxzoom.map(
(mz) => mapproperties.zoom.data < mz,
@@ -603,6 +606,7 @@