"use strict"; let currentScrollRef = ""; // ref of the scroll currently displayed function RenderScroll() { const dataSource = document.querySelector("#Unity-Data-Interface"); if (!(dataSource instanceof HTMLElement) || dataSource === null || dataSource.dataset.scrollDynamic === undefined) { console.error("No Scroll found in the Unity-Data-Interface"); return; } const scroll_json = JSON.parse(dataSource.dataset.scrollDynamic); let scroll; try { scroll = backendObject_fromJSON(scroll_json); if (!Scroll.isScroll(scroll)) { throw {}; } } catch (error) { console.error(error, `Cannot parse the scroll:`, scroll_json); return; } //console.log(scroll.requiredFacts); const scrollContainer = document.querySelector("#scrollContainer"); // replace the description if the scroll changed, otherwise only its content needs update // if (scroll.ref != currentScrollRef) { // currentScrollRef = scroll.ref; // scrollContainer.innerHTML = scroll.description; // } // go through the facts in the scroll, show their labels, add dropzones and limit the allowed types scroll.slots.forEach(slot => { $(`[data-slot-id='${slot.uri}']`) .html(slot.label) .attr("dropzone", "copy"); }); // acquired facts only need updated labels scroll.acquiredFacts.forEach(fact => { $(`[data-solution-id='${fact.uri}']`) .html(fact.label); }); console.log(scroll.label + 'Scroll rendered'); } $(function () { RenderScroll(); });