diff --git a/.env.development b/.env.development index f10177e..ab70bb1 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,4 @@ -VITE_APP_VERSION="3.0.45" +VITE_APP_VERSION="3.1.0-RC" VITE_API_URL="http://localhost:8000/" VITE_API_KEY="your_api_key_should_be_here" VITE_ASSET_PATH="/assets" diff --git a/.env.production b/.env.production index f8d527e..fdc3e0b 100644 --- a/.env.production +++ b/.env.production @@ -1,4 +1,4 @@ -VITE_APP_VERSION="3.0.45" +VITE_APP_VERSION="3.1.0-RC" 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" diff --git a/package.json b/package.json index 220b229..9669ee8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "phaseweb3", - "version": "3.0.45", + "version": "3.1.0-RC", "scripts": { "dev": "vite --host", "build": "vite build", diff --git a/public/assets/onboarding/customize.webp b/public/assets/onboarding/customize.webp new file mode 100644 index 0000000..0ff8bbf Binary files /dev/null and b/public/assets/onboarding/customize.webp differ diff --git a/public/assets/onboarding/dashboard.webp b/public/assets/onboarding/dashboard.webp new file mode 100644 index 0000000..42a0934 Binary files /dev/null and b/public/assets/onboarding/dashboard.webp differ diff --git a/public/assets/onboarding/dropdown.webp b/public/assets/onboarding/dropdown.webp new file mode 100644 index 0000000..0683dd0 Binary files /dev/null and b/public/assets/onboarding/dropdown.webp differ diff --git a/public/assets/onboarding/integrate.webp b/public/assets/onboarding/integrate.webp new file mode 100644 index 0000000..3ee5c8e Binary files /dev/null and b/public/assets/onboarding/integrate.webp differ diff --git a/public/assets/onboarding/showcase.webp b/public/assets/onboarding/showcase.webp new file mode 100644 index 0000000..ef9730a Binary files /dev/null and b/public/assets/onboarding/showcase.webp differ diff --git a/public/assets/onboarding/sidebar.webp b/public/assets/onboarding/sidebar.webp new file mode 100644 index 0000000..ca0680c Binary files /dev/null and b/public/assets/onboarding/sidebar.webp differ diff --git a/public/data-sources/changelog.json b/public/data-sources/changelog.json index d0b671c..0821c01 100644 --- a/public/data-sources/changelog.json +++ b/public/data-sources/changelog.json @@ -44,5 +44,6 @@ "3.0.42-oMini": ["- (Major) Refactor loading state", "- (Minor) Add two new customizations, filled/outlined PillTags and Buttons"], "3.0.43": ["- (Major) Add pop'n music Jam&Fizz"], "3.0.44": ["- (Bugfix) Fix broken race state on game page", "- (Major) Add customization options for BaseIcon fill type", "- (Major) Add pop'n music weekly course song"], - "3.0.45": ["- (Bugfix) Fix Timeline not loading", "- (Major) Add a filter to the data in the timeline for private profiles", "- (Game) Add SDVX 6th chart", "- (Bugfix) Fix floats for jubeat difficulties"] + "3.0.45": ["- (Bugfix) Fix Timeline not loading", "- (Major) Add a filter to the data in the timeline for private profiles", "- (Game) Add SDVX 6th chart", "- (Bugfix) Fix floats for jubeat difficulties"], + "3.1.0-RC": ["- (Feature) Add onboarding page", "- (Minor) Add BaseImage component", "- (Minor) Add BaseAccordion component, - (Admin) Finish admin event log page"] } \ No newline at end of file diff --git a/public/data-sources/onboarding.json b/public/data-sources/onboarding.json new file mode 100644 index 0000000..048f1e0 --- /dev/null +++ b/public/data-sources/onboarding.json @@ -0,0 +1,50 @@ +[ + { + "label": "Dashboard", + "body": [ + "The dashboard is the main landing page of PhaseII.", + "You can view news, quick game stats, and play trend data." + ], + "image": "dashboard" + }, + { + "label": "Game Showcase", + "body": [ + "Cards for the games you've played.", + "Sorted by last play, click them and you'll go to the game!" + ], + "image": "showcase" + }, + { + "label": "Dropdown Menu", + "body": [ + "Here you can find all profile settings and customizations.", + "This collapses on mobile." + ], + "image": "dropdown" + }, + { + "label": "Sidebar", + "body": [ + "Here you can find all other pages in the WebUI.", + "This collapses on mobile." + ], + "image": "sidebar" + }, + { + "label": "Profile Customization", + "body": [ + "Make PhaseII WebUI V3 your own with UI tweaks!", + "This will be expanded in the future." + ], + "image": "customize" + }, + { + "label": "Service Integrations", + "body": [ + "Connect your PhaseII account to outside sources for data linking and special features!", + "Currently, we can link to Kamaitachi and Discord." + ], + "image": "integrate" + } +] \ No newline at end of file diff --git a/src/components/AccordionItem.vue b/src/components/AccordionItem.vue new file mode 100644 index 0000000..c75669b --- /dev/null +++ b/src/components/AccordionItem.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/components/BaseAccordion.vue b/src/components/BaseAccordion.vue new file mode 100644 index 0000000..6ac2315 --- /dev/null +++ b/src/components/BaseAccordion.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/components/BaseImage.vue b/src/components/BaseImage.vue new file mode 100644 index 0000000..5b150ae --- /dev/null +++ b/src/components/BaseImage.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/components/Modal/UpdateModal.vue b/src/components/Modal/UpdateModal.vue index a3e46cb..3b721dd 100644 --- a/src/components/Modal/UpdateModal.vue +++ b/src/components/Modal/UpdateModal.vue @@ -4,6 +4,7 @@ import { ref, onMounted } from "vue"; import CardBox from "@/components/CardBox.vue"; import OverlayLayer from "@/components/OverlayLayer.vue"; import BaseButton from "@/components/BaseButton.vue"; +import BaseButtons from "@/components/BaseButtons.vue"; import BaseIcon from "@/components/BaseIcon.vue"; import { PhSparkle } from "@phosphor-icons/vue"; import { APIUserAppUpdate, APIUserCustomize } from "@/stores/api/account"; @@ -111,7 +112,7 @@ async function updateUserData(disable = false) {

Version: {{ appVersion }}

-
+ -
+ diff --git a/src/components/Modal/WelcomeModal.vue b/src/components/Modal/WelcomeModal.vue new file mode 100644 index 0000000..a136ba0 --- /dev/null +++ b/src/components/Modal/WelcomeModal.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/layouts/LayoutAuthenticated.vue b/src/layouts/LayoutAuthenticated.vue index 4b6c749..f021358 100644 --- a/src/layouts/LayoutAuthenticated.vue +++ b/src/layouts/LayoutAuthenticated.vue @@ -19,6 +19,7 @@ import { useStyleStore } from "@/stores/style.js"; import LoadingModal from "@/components/Modal/LoadingModal.vue"; // import EmailModal from "@/components/Modal/EmailModal.vue"; import UpdateModal from "@/components/Modal/UpdateModal.vue"; +import WelcomeModal from "@/components/Modal/WelcomeModal.vue"; import BaseIcon from "@/components/BaseIcon.vue"; import NavBar from "@/components/NavBar.vue"; import NavBarItemPlain from "@/components/NavBarItemPlain.vue"; @@ -235,10 +236,6 @@ const menuAside = computed(() => { 'overflow-hidden lg:overflow-visible': isAsideMobileExpanded, }" > - { 'opacity-0': !loading && !saving, }" /> +
import { ref, onMounted } from "vue"; -import { PhFlagCheckered, PhCashRegister, PhSiren } from "@phosphor-icons/vue"; +import { + PhFlagCheckered, + PhCashRegister, + PhSiren, + PhGlobeX, + PhExclamationMark, + PhCloudArrowDown, +} from "@phosphor-icons/vue"; import SectionMain from "@/components/SectionMain.vue"; import CardBox from "@/components/CardBox.vue"; import LayoutAuthenticated from "@/layouts/LayoutAuthenticated.vue"; @@ -34,7 +41,7 @@ const eventHeaders = [ width: 120, }, { - text: "Game", + text: "Model", value: "data.model", width: 120, }, @@ -155,20 +162,56 @@ const unhandledHeaders = [ value: "date", width: 120, }, + { + text: "PCBID", + value: "data.pcbid", + width: 120, + }, + { + text: "Model", + value: "data.model", + width: 120, + }, { text: "Request", - value: "data.request", + value: "data.requestName", + width: 120, + }, + { + text: "Method", + value: "data.method", + width: 120, + }, +]; + +const unauthorizedHeaders = [ + { + text: "Timestamp", + value: "date", + width: 120, + }, + { + text: "PCBID", + value: "data.pcbid", + width: 120, + }, + { + text: "Model", + value: "data.model", width: 120, }, ]; function formatData(events) { + if (events === undefined) { + return []; + } return events.map((item) => { if (item.timestamp) { item.date = formatSortableDate(item.timestamp); } - if (item?.data?.service === "xrpc" && item?.data?.request) { + if (item?.data?.request) { const extracted = extractExceptionData(item.data.request); item.data.pcbid = extracted.pcbid; item.data.model = extracted.model; @@ -217,6 +260,47 @@ function extractExceptionData(xmlString) { +
+ + + + + +
+
+ +
+
+
+ + + +
+
+
@@ -225,7 +309,7 @@ function extractExceptionData(xmlString) { @@ -236,6 +320,27 @@ function extractExceptionData(xmlString) { + + + + + + +
+
+
@@ -244,7 +349,7 @@ function extractExceptionData(xmlString) { @@ -255,6 +360,7 @@ function extractExceptionData(xmlString) {