@icebear
also das problem aus der obigen fehlermeldung konnte ich verbessern,
das liegt daran, das vis immer mehrfach den datenpunkt aktualisiert. einmal ohne daten und einmal mit daten. der fehler kommt davon, wenn der datenpunkt keine daten enthält.
ist aber ein vis typisches verhalten.
leider hast du mir dein template mitgeschickt, daher habe ich auf basis meiner version dass auf dunkel umgestellt. alle eigenschaften der auswahlbox sind in den css-anweisungen im template enthalten
Spoiler
<%
let localmapdatapoint="local_map";
let selected="";
let options = Object.keys(data).map(el=>{
return {
value: el,
label:new Date(el).toLocaleString(undefined, {
dateStyle: "short"
})
}
})
console.log(data);
console.log(options);
window.jsontemplate=[]
window.jsontemplate[widgetid]={};
window.jsontemplate[widgetid].data=data;
window.jsontemplate[widgetid].localmapdatapoint=localmapdatapoint;
%>
<style>
.mui-select-wrapper {
position: relative;
display: inline-flex;
flex-direction: column;
min-width: 220px;
margin: 16px 0;
font-family: Roboto, Arial, sans-serif;
}
.mui-select-label {
position: absolute;
top: -8px;
left: 12px;
background: #1e1e1e;
padding: 0 4px;
font-size: 12px;
color: rgba(255, 255, 255, 0.7);
z-index: 1;
}
.mui-select {
height: 56px;
padding: 16px 40px 16px 14px;
border: 1px solid rgba(255, 255, 255, 0.23);
border-radius: 4px;
background-color: #1e1e1e;
font-size: 16px;
color: rgba(255, 255, 255, 0.87);
outline: none;
appearance: none;
cursor: pointer;
}
.mui-select-wrapper::after {
content: "";
position: absolute;
right: 16px;
top: 34px;
width: 0;
height: 0;
pointer-events: none;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 6px solid rgba(255, 255, 255, 0.7);
}
.mui-select:hover {
border-color: rgba(255, 255, 255, 0.87);
}
.mui-select:focus {
border: 2px solid #90caf9;
padding: 15px 39px 15px 13px;
}
.mui-select:focus+.mui-select-label,
.mui-select-wrapper:focus-within .mui-select-label {
color: #90caf9;
}
.mui-select:disabled {
color: rgba(255, 255, 255, 0.38);
border-color: rgba(255, 255, 255, 0.12);
background-color: #2b2b2b;
cursor: default;
}
/* Für die Optionen im Dropdown */
.mui-select option {
background-color: #1e1e1e;
color: rgba(255, 255, 255, 0.87);
}
</style>
<div class="mui-select-wrapper">
<select
id="select_<%= widgetid %>"
class="mui-select"
data-widgetid="<%= widgetid %>"
>
<% options.forEach(function(option) { %>
<option
value="<%= option.value %>"
<%= option.value === selected ? 'selected' : '' %>
>
<%= option.label %>
</option>
<% }); %>
</select>
</div>
<script>
(() => {
const select = document.getElementById("select_<%= widgetid %>");
const widgetid = select.dataset.widgetid;
const data = window.jsontemplate[widgetid];
const key = Object.keys(data.data)[0];
console.log("key",key);
key && onSelectionChanged(widgetid,key);
select.addEventListener("change", (event) => {
const value = event.target.value;
const widgetid = event.target.dataset.widgetid;
onSelectionChanged(widgetid,value);
});
function onSelectionChanged(widgetid,value) {
console.log("change",value);
vis.setValue(window.jsontemplate[widgetid].localmapdatapoint,JSON.stringify(window.jsontemplate[widgetid].data[value].map))
}
})();
</script>
das verhalten das bei einem reiter wechsel hin und zurück die marker weg sind konnte ich nicht nachvollziehen. in der runtime hat das immer gut funktioniert.
die versionen von dir sind identisch zu meinen.
da bei mir der effekt nicht auftritt, ist es schwer nachzuvollziehen. tritt das nur im vis edit mode auf oder auch im runtime? dann bitte nach der aktualisierung auch nochmal auf die fehler schauen. ggfs muss ich auch mal noch die debug ausgaben des map widgets nachschärfen, so das man im browser log besser nachvollziehen kann, was passiert oder auch was nicht passiert.
im edit modus hat es auch etwas mit dem vis verhalten zu tun. da habe ich 2 dinge festgestellt, die ich unabhängig von deinem problem mal noch mal tiefer untersuchen muss. das ist leider debug technisch etwas aufwändiger.
eigentlich abonniert vis/vis2 im edit mode alle datenpunkte. da scheint sich etwas geändert zu haben, auch bekomme ich im browser log (nicht immer) den hinweis:
only admin allowed
wo ich vermute das es damit zu tun hat.
auch bekommt im edit modus nicht immer die daten aus dem datenpunkt an. da aber die dynamische aktualisierung unter vis im edit mode deaktiviert ist, kommen da keine weiteren aktualisierungen, wie es im runtime mode der fall ist. das ist/war eigentlich auch ok. auch hier will ich mal schauen ob ich das noch verbessern kann. hat aber evtl auswirkungen auf das erstellen und debuggen von den templates