1// @dev-note-BW: I updated the javascript to ES6 and removed jQuery usage. 2 3const Metrics = { 4 setScenarioName(name) { 5 const scriptTag = document.getElementById("metricsScript"); 6 const scenarioNameSelector = scriptTag.dataset.scenarioNameSelector; 7 const scenarioName = document.querySelector(scenarioNameSelector); 8 9 scenarioName.textContent = name; 10 }, 11 setServerMark(mark) { 12 const scriptTag = document.getElementById("metricsScript"); 13 const serverMarkSelector = scriptTag.dataset.serverMarkSelector; 14 const serverMark = document.querySelector(serverMarkSelector); 15 16 serverMark.textContent = mark; 17 }, 18 getDataPageName() { 19 const scriptTag = document.getElementById("metricsPageName"); 20 return scriptTag.dataset.pageName; 21 }, 22 hasData: false, 23 loadable: true, 24 async sendAdHocPageView(pageName) { 25 try { 26 const requestUrl = `${baseUrl}/api/Metrics/${pageName}`; 27 const response = await fetch(requestUrl, { 28 method: 'GET', 29 credentials: 'include' 30 }); 31 32 if (response.ok) { 33 const jsonValue = await response.json(); 34 return jsonValue; 35 } else { 36 throw new Error("Error"); 37 } 38 } catch (error) { 39 console.error(error); 40 throw error; 41 } 42 } 43}; 44 45//console.log(Metrics.GetDataPageName()); 46 47(async (metricsObj) => { 48 window.addEventListener('load', async () => { 49 try { 50 const requestUrl = `${baseUrl}/api/Metrics/${metricsObj.getDataPageName()}`; 51 const response = await fetch(requestUrl, { 52 method: 'GET', 53 credentials: 'include' 54 }); 55 56 if (response.ok) { 57 const data = await response.json(); 58 metricsObj.setScenarioName(data.scenario_name); 59 metricsObj.setServerMark(data.server_mark); 60 metricsObj.hasData = true; 61 62 if (data.heat_map_enabled === "true") { 63 const script = document.createElement("script"); 64 script.type = "text/javascript"; 65 script.src = data.heat_map_url; 66 script.async = true; 67 document.querySelector("head").appendChild(script); 68 } 69 } else { 70 throw new Error("Error fetching data"); 71 } 72 } catch (error) { 73 console.error(error); 74 } 75 }); 76})(Metrics);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.