Change attempt verbage, fix popn and gita records, add backend stats, fix record sorting
Some checks failed
Build / build (push) Has been cancelled

This commit is contained in:
Trenton Zimmer 2025-11-02 12:10:25 -05:00
parent e5e3c97a07
commit e4a5b21779
13 changed files with 101 additions and 48 deletions

View File

@ -1,4 +1,4 @@
VITE_APP_VERSION="3.0.31"
VITE_APP_VERSION="3.0.32"
VITE_API_URL="http://localhost:8000/"
VITE_API_KEY="your_api_key_should_be_here"
VITE_ASSET_PATH="/assets"

View File

@ -1,4 +1,4 @@
VITE_APP_VERSION="3.0.31"
VITE_APP_VERSION="3.0.32"
VITE_API_URL="https://restfulsleep.phaseii.network"
VITE_API_KEY="your_api_key_should_be_here"
VITE_ASSET_PATH="https://cdn.phaseii.network/file/PhaseII/web-assets"

View File

@ -30,5 +30,6 @@
"3.0.28": ["- (Major) Full support for rivals across applicable games", "- (Major) Move from Vue Hash routing to standard routing", "- (Bugfix) Fix issue when customizing on iOS"],
"3.0.29": ["- (Major) Finish arcade PASELI support", "- (Minor) Clean up arcade page, add button for opening owner", "- (Bugfix) Fix table upper curved edges"],
"3.0.30": ["- (Major) Rewrite auth flow at backend and frontend", "- (Minor) Add auth to all api calls", "- (Bugfix) Fix bad user auth bug", "- (Minor) Add more greetings"],
"3.0.31": ["- (Major) Change all date formatting to a sortable format", "- (Minor) Add news archive page", "- (Bugfix) Add real news limiting", "- (Shrimp) Add more shrimp"]
"3.0.31": ["- (Major) Change all date formatting to a sortable format", "- (Minor) Add news archive page", "- (Bugfix) Add real news limiting", "- (Shrimp) Add more shrimp"],
"3.0.32": ["- (Major) Change phase \"Attempt\" to \"Score\"", "- (Bugfix) Fix pop'n music version sorting", "- (Bugfix) Fix Gitadora chart data formatting issues", "- (Bugfix) Filter personal records to songs with scores"]
}

View File

@ -65,7 +65,7 @@ const datasetAttemptObject = (color, points) => {
data: points,
tension: 0.5,
cubicInterpolationMode: "default",
label: "Attempts",
label: "Scores",
};
};

View File

@ -1011,10 +1011,10 @@ export const gameData = [
{ text: "SKILL POINT", value: "data.new_skill", width: 140 },
],
chartTable: {
1: "BASIC",
2: "ADVANCED",
3: "EXTREME",
12: "MASTER",
6: "BASIC",
7: "ADVANCED",
8: "EXTREME",
9: "MASTER",
},
rankTable: {
100: "E",
@ -1026,6 +1026,7 @@ export const gameData = [
700: "SS",
800: "EXC",
},
difficultyDenom: 10,
versions: GITADORA_VERSION_DATA,
},
{
@ -1061,10 +1062,14 @@ export const gameData = [
{ text: "SKILL POINT", value: "data.new_skill", width: 140 },
],
chartTable: {
1: "BASIC",
2: "ADVANCED",
3: "EXTREME",
12: "MASTER",
1: "GUITAR BASIC",
2: "GUITAR ADVANCED",
3: "GUITAR EXTREME",
4: "GUITAR MASTER",
11: "BASS BASIC",
12: "BASS ADVANCED",
13: "BASS EXTREME",
14: "BASS MASTER",
},
rankTable: {
100: "E",
@ -1076,6 +1081,7 @@ export const gameData = [
700: "SS",
800: "EXC",
},
difficultyDenom: 10,
versions: GITADORA_VERSION_DATA,
},
{
@ -1798,6 +1804,10 @@ export const gameData = [
{ text: "Halo", value: "halo", width: 80 },
],
versions: [
{
id: 0,
label: "CS and Licenses",
},
{
id: VersionConstants.POPN_MUSIC,
label: "Original",

View File

@ -160,7 +160,7 @@ function formatEvents(events) {
/>
<CardBoxWidget
:number="dashboardData?.statistics?.score_history"
label="Score Attempts"
label="Scores"
/>
<CardBoxWidget
:number="dashboardData?.statistics?.achievement"

View File

@ -61,6 +61,12 @@ const headers = [
width: 120,
sortable: true,
},
{
text: "Web3 Beta Used",
value: "data.webVersionsBool",
width: 120,
sortable: true,
},
];
onMounted(async () => {
@ -76,6 +82,10 @@ async function loadData() {
item.username = "Unclaimed Account";
}
if (item.data.webVersions) {
item.data.webVersionsBool = item.data.webVersions ? true : false;
}
formattedItems.push(item);
}

View File

@ -50,13 +50,17 @@ onMounted(async () => {
const filteredVersions = computed(() => {
if (!thisGame.versions) return [];
const versionIdsWithSongs = new Set(songData.value.map((s) => s.version));
const versionIdsWithSongs = new Set(
songData.value.map((s) => parseInt(s.version)),
);
return thisGame.versions.filter((v) => versionIdsWithSongs.has(v.id));
});
const filteredSongs = computed(() => {
if (!versionForm.currentVersion) return songData.value;
return songData.value.filter((s) => s.version === versionForm.currentVersion);
return songData.value.filter(
(s) => parseInt(s.version) === versionForm.currentVersion,
);
});
</script>
@ -94,12 +98,15 @@ const filteredSongs = computed(() => {
<div class="grid md:flex gap-2 md:justify-end md:place-content-end">
<template v-for="chart of song.charts" :key="chart.db_id">
<div
v-if="chart.data?.difficulty != 0"
v-if="
chart.data?.difficulty != 0 &&
thisGame.chartTable[chart.chart]
"
class="bg-gray-900 dark:bg-gray-700 p-4 rounded-lg"
>
<h2 class="text-md md:text-lg">
{{ thisGame.chartTable[chart.chart] }} -
{{ chart.data?.difficulty }}
{{ chart.data?.difficulty / (thisGame.difficultyDenom ?? 1) }}
</h2>
{{
chart.record

View File

@ -82,6 +82,17 @@ const filteredSongs = computed(() => {
if (!versionForm.currentVersion) return songData.value;
return songData.value.filter((s) => s.version === versionForm.currentVersion);
});
const songsWithRecords = computed(() => {
return filteredSongs.value.filter((song) => {
return song.charts.some(
(chart) =>
chart.data?.difficulty != 0 &&
thisGame.chartTable[chart.chart] &&
chart.record,
);
});
});
</script>
<template>
@ -125,7 +136,7 @@ const filteredSongs = computed(() => {
</template>
</SectionTitleLine>
<CardBox v-for="song of filteredSongs" :key="song.id" class="mb-6">
<CardBox v-for="song of songsWithRecords" :key="song.id" class="mb-6">
<div class="lg:flex w-full lg:place-content-between">
<div class="mb-4 lg:mb-0 space-y-1">
<h1 class="text-lg lg:text-xl">{{ song.name }}</h1>
@ -142,22 +153,29 @@ const filteredSongs = computed(() => {
class="grid md:grid-cols-2 lg:flex gap-2 lg:justify-end lg:place-content-end"
>
<template v-for="chart of song.charts" :key="chart.db_id">
<div
v-if="chart.data?.difficulty != 0"
class="bg-gray-900 dark:bg-gray-700 p-4 rounded-lg"
>
<h2 class="text-md lg:text-lg">
{{ thisGame.chartTable[chart.chart] }} -
{{ chart.data?.difficulty }}
</h2>
{{
chart.record
? `${
chart.record?.username
} - ${chart.record.points?.toLocaleString()}`
: "Unclaimed"
}}
</div>
<template v-if="chart.record">
<div
v-if="
chart.data?.difficulty != 0 &&
thisGame.chartTable[chart.chart]
"
class="bg-gray-900 dark:bg-gray-700 p-4 rounded-lg"
>
<h2 class="text-md lg:text-lg">
{{ thisGame.chartTable[chart.chart] }} -
{{
chart.data?.difficulty / (thisGame.difficultyDenom ?? 1)
}}
</h2>
{{
chart.record
? `${
chart.record?.username
} - ${chart.record.points?.toLocaleString()}`
: "Unclaimed"
}}
</div>
</template>
</template>
</div>
</div>

View File

@ -442,7 +442,7 @@ async function generateTimeline(myProfile) {
/>
<CardBoxWidget
v-if="myProfile.stats?.count?.attempts"
label="Attempts"
label="Scores"
:number="myProfile.stats?.count?.attempts"
/>

View File

@ -63,12 +63,14 @@ const chartOptions = computed(() => {
songData.value.charts
.filter(
(chart) =>
chart.data?.difficulty !== 0 && chart.data?.difficulty != null,
chart.data?.difficulty !== 0 &&
chart.data?.difficulty != null &&
thisGame.chartTable[chart.chart],
)
// eslint-disable-next-line no-unused-vars
.map((chart, index) => {
const label = `${thisGame.chartTable[chart.chart]} - ${
chart.data?.difficulty ?? "?"
chart.data?.difficulty / (thisGame.difficultyDenom ?? 1)
}`;
return { id: chart.chart, label };
})
@ -193,10 +195,13 @@ const navigateToProfile = (item) => {
<div class="grid grid-cols-3 sm:flex gap-2">
<template v-for="chart of songData.charts" :key="chart.db_id">
<PillTag
v-if="chart.data?.difficulty != 0"
v-if="
chart.data?.difficulty != 0 &&
thisGame.chartTable[chart.chart]
"
color="info"
:label="`${thisGame.chartTable[chart.chart]} - ${
chart.data?.difficulty
chart.data?.difficulty / (thisGame.difficultyDenom ?? 1)
}`"
/>
</template>
@ -208,7 +213,9 @@ const navigateToProfile = (item) => {
<div class="grid grid-cols-2 lg:grid-cols-5 gap-4 mb-6">
<template v-for="chart of songData.charts" :key="chart.db_id">
<CardBoxWidget
v-if="chart.data?.difficulty != 0"
v-if="
chart.data?.difficulty != 0 && thisGame.chartTable[chart.chart]
"
:label="`${thisGame.chartTable[chart.chart]}`"
small-content
>{{

View File

@ -189,10 +189,10 @@ const cardBoxes = ref([
number: totalRecords,
},
{
label: "Total Attempts",
label: "Total Scores",
icon: PhMedal,
iconColor: "text-pink-300",
suffix: "attempt",
suffix: "score",
number: totalAttempts,
},
{
@ -203,10 +203,10 @@ const cardBoxes = ref([
number: todayRecords,
},
{
label: "Attempts Today",
label: "Scores Today",
icon: PhMedal,
iconColor: "text-sky-300",
suffix: "attempt",
suffix: "score",
number: todayAttempts,
},
]);

View File

@ -217,10 +217,10 @@ const cardBoxes = ref([
number: totalRecords,
},
{
label: "Total Attempts",
label: "Total Scores",
icon: PhMedal,
iconColor: "text-pink-300",
suffix: "attempt",
suffix: "score",
number: totalAttempts,
},
{
@ -231,10 +231,10 @@ const cardBoxes = ref([
number: todayRecords,
},
{
label: "Attempts Today",
label: "Scores Today",
icon: PhMedal,
iconColor: "text-sky-300",
suffix: "attempt",
suffix: "score",
number: todayAttempts,
},
]);