Skip to content

Commit af13077

Browse files
committed
Move GameFoundryStudio account pages to root with Theme V2 - PR_26152_036-root-account-pages-migration
1 parent d690161 commit af13077

6 files changed

Lines changed: 102 additions & 34 deletions

File tree

GameFoundryStudio/assets/js/gamefoundry-partials.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,18 @@
5959
disclaimer: "disclaimer.html",
6060
"privacy-policy": "privacy-policy.html",
6161
"terms-legal": "terms.html",
62-
account: "account/index.html",
63-
"account-profile": "account/profile.html",
64-
"account-preferences": "account/preferences.html",
65-
"account-security": "account/security.html",
62+
account: "account.html",
63+
"account-profile": "profile.html",
64+
"account-preferences": "preferences.html",
65+
"account-security": "security.html",
6666
branding: "admin/branding.html",
6767
controls: "admin/controls.html",
6868
"design-system": "admin/design-system.html",
6969
"grouping-colors": "admin/grouping-colors.html",
7070
rating: "admin/ratings.html"
7171
};
7272

73-
const rootPageRoutes = new Set(["about", "vision", "mission", "roadmap", "release-notes"]);
73+
const rootPageRoutes = new Set(["about", "vision", "mission", "roadmap", "release-notes", "account", "account-profile", "account-preferences", "account-security"]);
7474

7575
const partials = {
7676
"header-nav": "assets/partials/header-nav.html",
@@ -84,6 +84,7 @@
8484
}
8585

8686
function rootPrefix() {
87+
if (window.location.pathname.split("/").filter(Boolean).lastIndexOf("GameFoundryStudio") < 0) return "";
8788
const pagePath = currentPagePath();
8889
if (!pagePath || pagePath === "index.html") return "";
8990
return "../".repeat(pagePath.split("/").length - 1);
@@ -117,7 +118,7 @@
117118
const route = routeMap[link.dataset.route] || "";
118119
const isToolChild = pagePath.indexOf("tools/") === 0 && link.dataset.route === "tools";
119120
const isGameChild = pagePath.indexOf("arcade/") === 0 && link.dataset.route === "games";
120-
const isAccountChild = pagePath.indexOf("account/") === 0 && link.dataset.route === "account";
121+
const isAccountChild = ["account.html", "profile.html", "preferences.html", "security.html"].includes(pagePath) && link.dataset.route === "account";
121122
const isAdminChild = pagePath.indexOf("admin/") === 0 && link.dataset.route === "admin";
122123
if (route === pagePath || isToolChild || isGameChild || isAccountChild || isAdminChild) {
123124
link.classList.add("active");
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33

44
<head>
55
<meta charset="utf-8">
6+
<base href="GameFoundryStudio/">
67
<meta name="viewport" content="width=device-width, initial-scale=1">
78
<title>Account Home - Game Foundry Studio</title>
89
<meta name="description" content="Plan the personal account workspace for Game Foundry Studio creators.">
9-
<link rel="icon" href="../assets/images/favicon.svg" type="image/svg+xml">
10-
<link rel="stylesheet" href="../assets/css/styles.css">
10+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
11+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1112
</head>
1213

1314
<body>
@@ -23,10 +24,10 @@ <h1>Account Home</h1>
2324
<section class="section">
2425
<div class="container account-panel">
2526
<aside class="side-menu" aria-label="Account pages">
26-
<a class="active" href="index.html">Account Home</a>
27-
<a href="profile.html">Profile</a>
28-
<a href="preferences.html">Preferences</a>
29-
<a href="security.html">Security</a>
27+
<a class="active" href="../account.html">Account Home</a>
28+
<a href="../profile.html">Profile</a>
29+
<a href="../preferences.html">Preferences</a>
30+
<a href="../security.html">Security</a>
3031
</aside>
3132
<div class="card">
3233
<div class="card-body">
@@ -60,7 +61,7 @@ <h3>Planned Sections</h3>
6061
</section>
6162
</main>
6263
<div data-partial="footer"></div>
63-
<script src="../assets/js/gamefoundry-partials.js" defer></script>
64+
<script src="assets/js/gamefoundry-partials.js" defer></script>
6465
</body>
6566

6667
</html>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# PR_26152_036 Root Account Pages Migration Validation
2+
3+
## Scope
4+
5+
- Migrated approved Account pages to the repository root:
6+
- `/account.html`
7+
- `/profile.html`
8+
- `/preferences.html`
9+
- `/security.html`
10+
- Removed the old `GameFoundryStudio/account/` copies of those pages.
11+
- Updated shared partial routing so Account links resolve to the root page locations.
12+
- Kept Account pages on Theme V2.
13+
- Did not migrate Admin, Tools, Games, or Samples.
14+
- Did not change any CSS files.
15+
16+
## Changed Files
17+
18+
- `account.html` added
19+
- `profile.html` added
20+
- `preferences.html` added
21+
- `security.html` added
22+
- `GameFoundryStudio/account/index.html` removed
23+
- `GameFoundryStudio/account/profile.html` removed
24+
- `GameFoundryStudio/account/preferences.html` removed
25+
- `GameFoundryStudio/account/security.html` removed
26+
- `GameFoundryStudio/assets/js/gamefoundry-partials.js` updated for root Account route handling
27+
28+
## Validation Commands
29+
30+
- PASS: `node --check GameFoundryStudio/assets/js/gamefoundry-partials.js`
31+
- PASS: `rg -n --pcre2 "<script(?![^>]*\bsrc=)|<style|\son[a-z]+\s*=" index.html about.html vision.html mission.html roadmap.html release-notes.html account.html profile.html preferences.html security.html`
32+
- No inline script blocks, style blocks, or inline event handlers found.
33+
- PASS: `rg -n "base href" account.html profile.html preferences.html security.html about.html vision.html mission.html roadmap.html release-notes.html index.html`
34+
- Root index, root Company pages, and root Account pages contain `<base href="GameFoundryStudio/">`.
35+
- PASS: `rg -n "assets/css/theme/v2/theme\.css" account.html profile.html preferences.html security.html about.html vision.html mission.html roadmap.html release-notes.html index.html`
36+
- Root Account pages load Theme V2 assets.
37+
- PASS: `rg -n "data-partial" account.html profile.html preferences.html security.html about.html vision.html mission.html roadmap.html release-notes.html index.html`
38+
- Root Account pages keep shared header/footer partial slots.
39+
- PASS: `rg -n "account.html|profile.html|preferences.html|security.html|rootPageRoutes|isAccountChild|rootPrefix" GameFoundryStudio/assets/js/gamefoundry-partials.js`
40+
- Shared partial routing points Account routes to root pages.
41+
- PASS: `git status --short -- GameFoundryStudio/assets/css/theme/v2`
42+
- No Theme V2 CSS files changed.
43+
- PASS: `git status --short -- account.html profile.html preferences.html security.html GameFoundryStudio/account/index.html GameFoundryStudio/account/profile.html GameFoundryStudio/account/preferences.html GameFoundryStudio/account/security.html GameFoundryStudio/assets/js/gamefoundry-partials.js GameFoundryStudio/assets/css/theme/v2 docs/dev/commit_comment.txt docs/dev/reports/codex_review.diff docs/dev/reports/codex_changed_files.txt docs/dev/reports/root_account_pages_migration_validation.md`
44+
- Scoped status shows the expected root page additions, old in-folder page deletions, and partial router update.
45+
46+
## Link Validation
47+
48+
- `gamefoundry-partials.js` now maps:
49+
- `account` -> `account.html`
50+
- `account-profile` -> `profile.html`
51+
- `account-preferences` -> `preferences.html`
52+
- `account-security` -> `security.html`
53+
- Account routes are included in `rootPageRoutes`.
54+
- Root pages use `rootPrefix()` without leaving the `GameFoundryStudio/` base, so partials load from `GameFoundryStudio/assets/partials/`.
55+
- Root Account links render to root Account pages from the shared header/footer.
56+
57+
## Skipped
58+
59+
- Repo-wide tests were not run by request.
60+
- Tests outside affected root/GameFoundryStudio paths were not run by request.
61+
- Full samples smoke test was not run by request.
62+
- `git diff --stat` was attempted for exact review artifact generation but was intermittently blocked by the Windows sandbox before git could start:
63+
- `windows sandbox: spawn setup refresh`

GameFoundryStudio/account/preferences.html renamed to preferences.html

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33

44
<head>
55
<meta charset="utf-8">
6+
<base href="GameFoundryStudio/">
67
<meta name="viewport" content="width=device-width, initial-scale=1">
78
<title>Preferences - Game Foundry Studio</title>
89
<meta name="description" content="Plan personal workspace preferences for Game Foundry Studio accounts.">
9-
<link rel="icon" href="../assets/images/favicon.svg" type="image/svg+xml">
10-
<link rel="stylesheet" href="../assets/css/styles.css">
10+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
11+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1112
</head>
1213

1314
<body>
@@ -23,10 +24,10 @@ <h1>Preferences</h1>
2324
<section class="section">
2425
<div class="container account-panel">
2526
<aside class="side-menu" aria-label="Account pages">
26-
<a href="index.html">Account Home</a>
27-
<a href="profile.html">Profile</a>
28-
<a class="active" href="preferences.html">Preferences</a>
29-
<a href="security.html">Security</a>
27+
<a href="../account.html">Account Home</a>
28+
<a href="../profile.html">Profile</a>
29+
<a class="active" href="../preferences.html">Preferences</a>
30+
<a href="../security.html">Security</a>
3031
</aside>
3132
<div class="card">
3233
<div class="card-body">
@@ -56,7 +57,7 @@ <h3>Planned Sections</h3>
5657
</section>
5758
</main>
5859
<div data-partial="footer"></div>
59-
<script src="../assets/js/gamefoundry-partials.js" defer></script>
60+
<script src="assets/js/gamefoundry-partials.js" defer></script>
6061
</body>
6162

6263
</html>
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33

44
<head>
55
<meta charset="utf-8">
6+
<base href="GameFoundryStudio/">
67
<meta name="viewport" content="width=device-width, initial-scale=1">
78
<title>Profile - Game Foundry Studio</title>
89
<meta name="description" content="Plan profile settings for Game Foundry Studio accounts.">
9-
<link rel="icon" href="../assets/images/favicon.svg" type="image/svg+xml">
10-
<link rel="stylesheet" href="../assets/css/styles.css">
10+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
11+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1112
</head>
1213

1314
<body>
@@ -23,10 +24,10 @@ <h1>Profile</h1>
2324
<section class="section">
2425
<div class="container account-panel">
2526
<aside class="side-menu" aria-label="Account pages">
26-
<a href="index.html">Account Home</a>
27-
<a class="active" href="profile.html">Profile</a>
28-
<a href="preferences.html">Preferences</a>
29-
<a href="security.html">Security</a>
27+
<a href="../account.html">Account Home</a>
28+
<a class="active" href="../profile.html">Profile</a>
29+
<a href="../preferences.html">Preferences</a>
30+
<a href="../security.html">Security</a>
3031
</aside>
3132
<div class="card">
3233
<div class="card-body">
@@ -56,7 +57,7 @@ <h3>Planned Sections</h3>
5657
</section>
5758
</main>
5859
<div data-partial="footer"></div>
59-
<script src="../assets/js/gamefoundry-partials.js" defer></script>
60+
<script src="assets/js/gamefoundry-partials.js" defer></script>
6061
</body>
6162

6263
</html>
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33

44
<head>
55
<meta charset="utf-8">
6+
<base href="GameFoundryStudio/">
67
<meta name="viewport" content="width=device-width, initial-scale=1">
78
<title>Security - Game Foundry Studio</title>
89
<meta name="description" content="Plan security settings for Game Foundry Studio accounts.">
9-
<link rel="icon" href="../assets/images/favicon.svg" type="image/svg+xml">
10-
<link rel="stylesheet" href="../assets/css/styles.css">
10+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
11+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1112
</head>
1213

1314
<body>
@@ -23,10 +24,10 @@ <h1>Security</h1>
2324
<section class="section">
2425
<div class="container account-panel">
2526
<aside class="side-menu" aria-label="Account pages">
26-
<a href="index.html">Account Home</a>
27-
<a href="profile.html">Profile</a>
28-
<a href="preferences.html">Preferences</a>
29-
<a class="active" href="security.html">Security</a>
27+
<a href="../account.html">Account Home</a>
28+
<a href="../profile.html">Profile</a>
29+
<a href="../preferences.html">Preferences</a>
30+
<a class="active" href="../security.html">Security</a>
3031
</aside>
3132
<div class="card">
3233
<div class="card-body">
@@ -56,7 +57,7 @@ <h3>Planned Sections</h3>
5657
</section>
5758
</main>
5859
<div data-partial="footer"></div>
59-
<script src="../assets/js/gamefoundry-partials.js" defer></script>
60+
<script src="assets/js/gamefoundry-partials.js" defer></script>
6061
</body>
6162

6263
</html>

0 commit comments

Comments
 (0)