From 816ac41e7c0904ae66291fde05bdafbb7e5f4627 Mon Sep 17 00:00:00 2001 From: Galexion Date: Mon, 28 Aug 2023 07:15:42 -0400 Subject: [PATCH] Judgement Details now done --- public/javascript/user.js | 127 ++++++++++++++++++++++++++++++++++-- public/stylesheets/user.css | 21 ++++++ 2 files changed, 141 insertions(+), 7 deletions(-) diff --git a/public/javascript/user.js b/public/javascript/user.js index 3d4da66..b33a55c 100644 --- a/public/javascript/user.js +++ b/public/javascript/user.js @@ -201,8 +201,6 @@ async function userPlayLogFormatter(div, loadMoreButton) { } // Get the user's play log data and music IDs. - console.log(UserPlayLogData) - const musicIds = UserPlayLogData.map(score => score.music_id); const musicData = await musicMetadata(); let errorIncrement = 0; @@ -224,7 +222,6 @@ async function userPlayLogFormatter(div, loadMoreButton) { errorIncrement++ continue; } - console.log(song) // Song Title tasGrid.innerHTML = `
@@ -329,8 +326,16 @@ async function userPlayLogFormatter(div, loadMoreButton) { let summary = document.createElement('summary'); summary.textContent = "Details"; const detailsGridDiv = document.createElement('div'); + + /* title to table */ + let detailsTable = document.createElement('table'); + await createtTable(detailsTable, score) + + + detailsGridDiv.append(detailsTable); detailsBlock.append(detailsGridDiv); scoreDiv.append(detailsBlock); + /* setting stuff up */ @@ -357,6 +362,118 @@ async function userPlayLogFormatter(div, loadMoreButton) { // If there are no more scores to load, hide the "Load More" button. } +function createtTable(detailsTable, score) { //thing needs to be seperated or else it will keep creating the 2nd recent score. beats me. \-(*-*)-/ + return new Promise((resolve, reject) => { + let hrow = detailsTable.insertRow(0); + let judgementType = ["Critical Perfect", "Perfect", "Great", "Good", "Miss"]; + let noteType = ["Tap", "Hold", "Slide", "Break", "Touch"]; + let noteJudgement = [ + [ + score.tapCriticalPerfect, + score.tapPerfect, + score.tapGreat, + score.tapGood, + score.tapMiss, + ], + [ + score.holdCriticalPerfect, + score.holdPerfect, + score.holdGreat, + score.holdGood, + score.holdMiss, + ], + [ + score.slideCriticalPerfect, + score.slidePerfect, + score.slideGreat, + score.slideGood, + score.slideMiss, + ], + [ + score.breakCriticalPerfect, + score.breakPerfect, + score.breakGreat, + score.breakGood, + score.breakMiss, + ], + [ + score.touchCriticalPerfect, + score.touchPerfect, + score.touchGreat, + score.touchGood, + score.touchMiss, + ] + ] + if (score.isCriticalDisp == 1) { // Perform a check to see if critPerfects are required + let blankCell = hrow.insertCell(0); + blankCell.innerText = "" + for (i = 0; i < judgementType.length; i++) { + let cell = hrow.insertCell(i + 1); + cell.innerText = judgementType[i]; + } + + if (score.isTouch == 1) { // Check if Touch Notes are Needed. + let judgementCount = (judgementType.length - 1) + score.isCriticalDisp; + for (i = 0; i < noteType.length; i++) { + let row = detailsTable.insertRow(i); + let blankCell = row.insertCell(0); + blankCell.innerText = noteType[i] + for (ii = 0; ii < judgementCount; ii++) { + let cell = row.insertCell(ii + 1); + cell.innerText = noteJudgement[i][ii] + } + } + } else { + let judgementCount = (judgementType.length - 1) + score.isCriticalDisp; + for (i = 0; i < noteType.length - 1; i++) { + let row = detailsTable.insertRow(i); + let blankCell = row.insertCell(0); + blankCell.innerText = noteType[i] + for (ii = 0; ii < judgementCount; ii++) { + let cell = row.insertCell(ii + 1); + cell.innerText = noteJudgement[i][ii] + } + } + } + } else if (score.isCriticalDisp == 0) { + let blankCell = hrow.insertCell(0); + blankCell.innerText = "" + for (i = 0; i < judgementType.length-1; i++) { + let cell = hrow.insertCell(i+1); + cell.innerText = judgementType[i+1]; + } + + + if (score.isTouch == 1) { // Check if Touch Notes are Needed. + let judgementCount = (judgementType.length - 1) + score.isCriticalDisp; + for (i = 0; i < noteType.length; i++) { + let row = detailsTable.insertRow(i); + let blankCell = row.insertCell(0); + blankCell.innerText = noteType[i] + for (ii = 0; ii < judgementCount; ii++) { + let cell = row.insertCell(ii+1); + cell.innerText = noteJudgement[i][ii+1] + } + } + } else { + let judgementCount = (judgementType.length - 1) + score.isCriticalDisp; + for (i = 0; i < noteType.length; i++) { + let row = detailsTable.insertRow(i); + let blankCell = row.insertCell(0); + blankCell.innerText = noteType[i] + for (ii = 0; ii < judgementCount-1; ii++) { + let cell = row.insertCell(ii+1); + cell.innerText = noteJudgement[i][ii+1] + } + } + } + } + resolve() + }); +} // this was 100 lines of mehness, this shouldnt have taken this long and i probably could have had it at 50 to 75 lines of code instead but i honestly am tired. + + + /* User Area Status Renderer */ async function userAreaStatusFormatter(div) { @@ -367,7 +484,6 @@ async function userAreaStatusFormatter(div) { for (let i = UserAreaData.length - 1; i >= 0; i--) { const area = UserAreaData[i]; // get the area const mapInfo = await getReleventInformationMap(mapMetadata, area.map_id || area.mapId); // get the relevent Map Information - console.log(mapInfo) if (!mapInfo) continue // continue if mapInfo cant be found for a map const areaGrid = document.createElement('div'); // create the Grid for the area inforrmation to go areaGrid.classList.add('areaGrid'); // add the appropriate class @@ -390,7 +506,6 @@ async function userAreaStatusFormatter(div) { } else if (area.distance !== 0) { let diffrence = unlock.Distance - area.distance if (diffrence === 0) { - console.log(unlock) areaKilometers.innerHTML = areaKilometers.innerHTML + ` Task Track!
Clear ${unlock.TreasureId.str} to continue!`; } else { areaKilometers.innerHTML = areaKilometers.innerHTML + ` ${diffrence} KM until Next Reward.`; @@ -420,10 +535,8 @@ async function userImageFormatter(div) { let memorialImageList = await imageList(); // get image list let imageInfoDiv = document.getElementById("image-info-header-div"); imageInfoDiv.innerHTML = ""; - console.log("Attempting to search list with EXT_ID " + ext_id.toString()) for (var i = 0; i < memorialImageList.length; i++) { // for each name in the array let imageName = memorialImageList[i] - console.log(imageName) if (imageName.startsWith(ext_id.toString())) { // Check if the External ID matches the ID within the photo at the beginning let memorialImage = document.createElement('img'); memorialImage.classList.add('memorialImage'); diff --git a/public/stylesheets/user.css b/public/stylesheets/user.css index 199910d..c184ee1 100644 --- a/public/stylesheets/user.css +++ b/public/stylesheets/user.css @@ -381,4 +381,25 @@ img.fullSync-image { grid-template-areas: "timingTable timingTable" "maxCombo maxSync"; +} + +/* I really could'nt be asked to make css code, so i asked clyde instead. ty clyde. */ + +table { + border-collapse: collapse; + width: 100%; +} + +th, td { + border: 1px solid black; + padding: 8px; + text-align: left; +} + +th { + background-color: #f2f2f2; +} + +tr:nth-child(even) { + background-color: #dddddd; } \ No newline at end of file