MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / showData

Function showData

scripts/web_timer_main.js:259–319  ·  view source on GitHub ↗
({
  fromDate = new Date(),
  endDate,
  dateType = DATE_TYPE.DAY,
  displayType = DISPLAY_TYPE.TOTAL,
})

Source from the content-addressed store, hash-verified

257}
258
259function showData({
260 fromDate = new Date(),
261 endDate,
262 dateType = DATE_TYPE.DAY,
263 displayType = DISPLAY_TYPE.TOTAL,
264}) {
265 const { chartData = [], allData = [] } =
266 getData({ fromDate, endDate, dateType, displayType }) || {};
267
268 // draw chart
269 let chart = Donut(280, chartData, 50, 2);
270 chartContainer.innerHTML = "";
271 chartContainer.appendChild(chart);
272
273 // draw controller
274 dataContainer.innerHTML = "";
275
276 // total row
277 let totalTime = allData.reduce((acc, curr) => acc + curr.value, 0);
278 let totalRow = document.createElement("div");
279 totalRow.classList.add("row", "total");
280 totalRow.innerHTML = `
281 <div>
282 <div class="label">${t({ vi: "Tổng", en: "Total" })}</div>
283 </div>
284 <div>
285 <div class="percentage">100.00 %</div>
286 <div class="timer">${splitHidden(formatSeconds(totalTime, true))}</div>
287 </div>
288 `;
289 dataContainer.append(totalRow);
290
291 // all rows
292 allData.forEach((d) => {
293 let row = document.createElement("div");
294 row.classList.add("row");
295 row.setAttribute("ufs-website", d.website);
296 row.innerHTML = `
297 <div>
298 <div class="color" style="background-color: ${d.color}"></div>
299 <div class="label" >${d.website}</div>
300 </div>
301 <div>
302 <div class="percentage">${d.percentage} %</div>
303 <div class="timer">
304 ${splitHidden(formatSeconds(d.value, true))}
305 </div>
306 </div>
307 `;
308 row.addEventListener("mouseover", () => {
309 document.querySelector("g.active")?.classList.remove("active");
310 document
311 .querySelector("g[ufs-website='" + d.website + "']")
312 ?.dispatchEvent(new Event("mouseover", { bubbles: true }));
313 });
314 row.addEventListener("click", () => {});
315 dataContainer.appendChild(row);
316 });

Callers 1

initFunction · 0.85

Calls 7

tFunction · 0.90
getDataFunction · 0.85
DonutFunction · 0.85
splitHiddenFunction · 0.85
formatSecondsFunction · 0.85
addMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected