Vue.component('Accordeon', { template : `
`, props : { list : Object }, data () { return { isActive : false } }, computed: { href: function () { return "#" + this.list.id; } }, methods : { donothing () { }, toggleActive () { this.isActive = !this.isActive document.getElementById(this.list.id).scrollIntoView( { behavior: "smooth", block: "end", inline: "nearest"} ); } } }) const jsonurl = "https://ed.brz9.dev/proj/map/asset/json/db.json" /* let jdnb fetch(jsonurl) .then(res => res.json()) .then(data => jdnb = data) */ let vm = new Vue({ el: '#root', data: { currentLang: 'fr', fdata: {}, dburl : "https://ed.brz9.dev/proj/map/asset/json/db.json", db : {}, db2 : { restaurants : { id : "resto", type : "list", nameFR : "Restaurant", nameEN : "Restaurant", nameIT : "Ristoranti", sub : { italiens : { id: "restoital", type : "list", nameFR : "Italien", nameEN : "Italian", nameIT : "Italiano", sub : { SanTelmo : { id: "santelmo", type : "item", name: "San Telmo", img: "https://ed.brz9.dev/proj/map/asset/img/santelmo.jpg", txtFR: "Français Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.", txtEN: "English Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.", txtIT: "Italiano Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.", card : { tabs : { menu : { priceRange : "18-32€", dishes : { divola : { name : "Pizza Divola", }, regina : { name : "Pizza Regina", } } }, time : { monAM : "11h30-14h00", monPM : "18h30-22h00", } } } }, Salsamenteria : { id: "salsamenteria", type : "item", name: "Salsamenteria di Parma", img: "https://ed.brz9.dev/proj/map/asset/img/salsamentiera.jpg", txtFR: "Français Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.", txtEN: "English Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.", txtIT: "Italiano Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.", }, }, }, vege : { id : "restovege", type : "list", nameFR : "Végétarien", nameEN : "Vegan", nameIT : "Vegetariano", sub : { SanTelmo : { id: "santelmo", type : "item", name: "San Telmo", }, Salsamenteria : { id: "salsamenteria", type : "item", name: "Salsamenteria di Parma", }, } } } } } }, methods: { hidelang: function(lang) { langClass = "b9h-lang-" + lang; langElms = document.getElementsByClassName(langClass); for (i = 0; i < langElms.length; i++) { langElms[i].style.display = 'none'; } }, hidelangs: function() { this.hidelang('fr'); this.hidelang('en'); this.hidelang('it'); }, showlang: function(lang) { this.hidelangs(); langClass = "b9h-lang-" + lang; langElms = document.getElementsByClassName(langClass); for (i = 0; i < langElms.length; i++) { langElms[i].style.display = 'revert'; } }, async getJDB(){ const res = await fetch(this.dburl); const data = await res.json(); this.db = data; }, setlang: function (lang) { target = document.querySelector("#"+"tab-"+lang); marker = document.querySelector("#lang-marker"); marker.style.left = target.offsetLeft + "px"; marker.style.width = target.offsetWidth + "px"; this.showlang(lang); }, }, created: function(){ console.log("about to call getJDB") // this.getJDB(); fetch("http://localhost:3000/db") .then(res => res.json()) .then(data => this.db = data) .catch(err => console.log(err.message)) console.log("after getJDB call") this.setlang('fr'); }, mounted: function() { console.log("mounting"); this.setlang('fr'); console.log("mounted"); this.setlang('fr'); }, updated: function() { this.setlang('fr'); } })