mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
### Description Completes #122 ### Please confirm - [x] I am the legal owner or represent the legal owner of all work submitted (including LLM-generated code, if any) - [x] I consent to my changes being added to this FOSS project - [x] I have confirmed that this does not add new errors or warnings with `utils/clippy.sh` - [ ] This PR used LLMs to generate some or all of the code changes Reviewed-on: https://git.ngram.ca/OpenJam/rc-servers/pulls/133
232 lines
10 KiB
Handlebars
232 lines
10 KiB
Handlebars
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<!-- Primary Meta Tags -->
|
|
<title>Dashboard - Openjam</title>
|
|
<meta name="title" content="Dashboard - Openjam" />
|
|
<meta name="description" content="User dashboard for third-party Robocraft servers" />
|
|
|
|
<!-- Open Graph / Facebook -->
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:url" content="https://git.ngram.ca/OpenJam/rc-servers" />
|
|
<meta property="og:title" content="Dashboard - Openjam" />
|
|
<meta property="og:description" content="View your account for third-party Robocraft servers" />
|
|
<meta property="og:image" content="https://git.ngram.ca/OpenJam/rc-servers/raw/branch/main/assets/robocraft/favicon.jpg" />
|
|
|
|
<!-- Twitter -->
|
|
<meta property="twitter:card" content="summary" />
|
|
<meta property="twitter:url" content="https://git.ngram.ca/OpenJam/rc-servers" />
|
|
<meta property="twitter:title" content="Dashboard - Openjam" />
|
|
<meta property="twitter:description" content="View your account for third-party Robocraft servers" />
|
|
<meta property="twitter:image" content="https://git.ngram.ca/OpenJam/rc-servers/raw/branch/main/assets/robocraft/favicon.jpg" />
|
|
|
|
|
|
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
{{> stylesheet}}
|
|
</head>
|
|
<body>
|
|
<div class="form-stripe">
|
|
<div class="form-header-right">
|
|
Welcome {{form.display_name}}! |
|
|
<a href="/">Home</a>
|
|
</div>
|
|
<h1 class="form-banner">{{form.display_name}} Dashboard</h1>
|
|
{{#if error}}
|
|
<div class="form-error">
|
|
<p class="form-error-message">{{error}}</p>
|
|
</div>
|
|
{{/if}}
|
|
|
|
<div class="access-grid">
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Details</h4>
|
|
<div class="box-details">
|
|
<div class="box-details-key">Name</div>
|
|
<div class="box-details-value">{{form.display_name}}</div>
|
|
<div class="box-details-key">Public ID</div>
|
|
<div class="box-details-value">{{form.public_id}}</div>
|
|
<div class="box-details-key">Database ID</div>
|
|
<div class="box-details-value">{{form.debug.user_id}}</div>
|
|
<div class="box-details-key">Last Seen</div> <!-- TODO -->
|
|
<div class="box-details-value"><time datetime="{{form.debug.creation_time_iso}}">{{form.debug.creation_time_iso}}</time></div>
|
|
<div class="box-details-key">Creation</div>
|
|
<div class="box-details-value"><time datetime="{{form.debug.creation_time_iso}}">{{form.debug.creation_time_iso}}</time></div>
|
|
</div>
|
|
</div>
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Permissions</h4>
|
|
<div class="box-details">
|
|
<div class="box-details-key">Moderator</div>
|
|
<div class="box-details-value">{{form.perms.mod}}</div>
|
|
<div class="box-details-key">Administrator</div>
|
|
<div class="box-details-value">{{form.perms.admin}}</div>
|
|
<div class="box-details-key">Developer</div>
|
|
<div class="box-details-value">{{form.perms.dev}}</div>
|
|
<div class="box-details-key">Royal</div>
|
|
<div class="box-details-value">{{form.perms.royal}}</div>
|
|
<div class="box-details-key">Banned</div>
|
|
<div class="box-details-value">{{form.perms.banned}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Garages</h4>
|
|
<div class="box-details">
|
|
<div class="box-details-key">Total</div>
|
|
<div class="box-details-value">{{form.garage.total}}</div>
|
|
<div class="box-details-key">Regulars</div>
|
|
<div class="box-details-value">{{form.garage.regular_total}}</div>
|
|
<div class="box-details-key">Megabots</div>
|
|
<div class="box-details-value">{{form.garage.mega_total}}</div>
|
|
<div class="box-details-key">Empty</div>
|
|
<div class="box-details-value">{{form.garage.empty_total}}</div>
|
|
<div class="box-details-key">Selected Slot</div>
|
|
<div class="box-details-value">#{{form.garage.selected_slot}}</div>
|
|
{{#if form.garage.bytes_total }}
|
|
<div class="box-details-key">Storage</div>
|
|
<div class="box-details-value">{{form.garage.bytes_total}}B</div>
|
|
{{/if}}
|
|
</div>
|
|
<a href="/garages/list">
|
|
<div class="access-box-banner">
|
|
View My Garages
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Factory</h4>
|
|
<div class="box-details">
|
|
<div class="box-details-key">Factory Garages</div>
|
|
<div class="box-details-value">{{form.factory.garages_from_factory}}</div>
|
|
<div class="box-details-key">Uploads</div>
|
|
<div class="box-details-value">{{form.factory.uploads_total}}</div>
|
|
</div>
|
|
<a href="{{form.debug.factory}}">
|
|
<div class="access-box-banner">
|
|
View My Uploads
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Account</h4>
|
|
<div class="box-details">
|
|
{{#if form.account.is_custom_avatar}}
|
|
<div class="box-details-key">Avatar</div>
|
|
<div class="box-details-value">
|
|
<a href="{{form.debug.cdn}}/customavatar/Live/{{form.public_id}}" download="user_{{form.display_name}}.jpg" target="_blank" type="media/jpeg" referrerpolicy="no-referrer">
|
|
<img src="{{form.debug.cdn}}/customavatar/Live/{{form.public_id}}" alt="Custom avatar picture for {{form.display_name}}" style="margin-top: 5px;"/>
|
|
</a>
|
|
</div>
|
|
{{else}}
|
|
<div class="box-details-key">Avatar</div>
|
|
<div class="box-details-value">{{form.account.avatar_id}}</div>
|
|
{{/if}}
|
|
<div class="box-details-key">Rank</div>
|
|
<div class="box-details-value">{{form.account.rank}}</div>
|
|
<div class="box-details-key">Currency</div>
|
|
<div class="box-details-value">
|
|
Robits: {{form.account.currencies.robits}}<br/>
|
|
GC: {{form.account.currencies.gc}}<br/>
|
|
TP: {{form.account.currencies.tp}}<br/>
|
|
XP: {{form.account.currencies.xp}}<br/>
|
|
</div>
|
|
<div class="box-details-key">Games</div>
|
|
<div class="box-details-value">{{form.account.games}}</div>
|
|
<div class="box-details-key">Premium Until</div>
|
|
<div class="box-details-value"><time datetime="{{form.account.premium_until_iso}}">{{form.account.premium_until_iso}}</time></div>
|
|
</div>
|
|
<a href="#"> <!-- TODO -->
|
|
<div class="access-box-banner">
|
|
Manage My Account
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Sanctions</h4>
|
|
<div class="box-details">
|
|
<div class="box-details-key">Total</div>
|
|
<div class="box-details-value">{{form.sanction.total}}</div>
|
|
{{#if (ne form.sanction.pending 0)}}
|
|
<div class="box-details-key">Pending</div>
|
|
<div class="box-details-value">{{form.sanction.pending}}</div>
|
|
{{/if}}
|
|
<div class="box-details-key">Warnings</div>
|
|
<div class="box-details-value">{{form.sanction.warns}}</div>
|
|
<div class="box-details-key">Mutes</div>
|
|
<div class="box-details-value">{{form.sanction.mutes}}</div>
|
|
{{#if form.sanction.muted_until_iso}}
|
|
<div class="box-details-key">Muted Until</div>
|
|
<div class="box-details-value"><time datetime="{{form.sanction.muted_until_iso}}">{{form.sanction.muted_until_iso}}</time></div>
|
|
{{/if}}
|
|
</div>
|
|
<a href="#"> <!-- TODO -->
|
|
<div class="access-box-banner">
|
|
View My Sanctions
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Social</h4>
|
|
<div class="box-details">
|
|
{{#if form.social.clan}}
|
|
<div class="box-details-key">Clan</div>
|
|
<div class="box-details-value">
|
|
<span style="display: inline-block; text-align: center; width: 100%;">{{form.social.clan.name}}</span>
|
|
<a href="{{form.debug.cdn}}/clanavatar/Live/{{form.social.clan.name}}" download="clan_{{form.social.clan.name}}.jpg" target="_blank" type="media/jpeg" referrerpolicy="no-referrer">
|
|
<img src="{{form.debug.cdn}}/clanavatar/Live/{{form.social.clan.name}}" alt="Clan avatar picture for {{form.social.clan.name}}" style="margin-top: 5px;"/>
|
|
</a>
|
|
<span style="display: inline-block; font-size: 10px; text-align: center; margin: 5px auto; width: 100%;">{{form.social.clan.ty}}</span>
|
|
<span>{{form.social.clan.description}}</span>
|
|
</div>
|
|
{{else}}
|
|
<div class="box-details-key">Clan</div>
|
|
<div class="box-details-value">[no clan]</div>
|
|
{{/if}}
|
|
<div class="box-details-key">Friends</div>
|
|
<div class="box-details-value">
|
|
{{form.social.friends}}
|
|
{{#if (ne form.social.friends form.social.friends_of)}}
|
|
= {{form.social.friends_of}}[!]
|
|
{{/if}}
|
|
</div>
|
|
<div class="box-details-key">Chats</div>
|
|
<div class="box-details-value">
|
|
{{#each form.social.chats}}
|
|
{{this}}<br/>
|
|
{{/each}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="access-box">
|
|
<h4 class="access-box-title">Federation</h4>
|
|
<div class="box-details">
|
|
<div class="box-details-key">Enabled</div>
|
|
<div class="box-details-value">{{form.fediverse.enabled}}</div>
|
|
<div class="box-details-key">Blocked</div>
|
|
<div class="box-details-value">
|
|
{{#each form.fediverse.defederated}}
|
|
<span>{{this}}</span><br/>
|
|
{{else}}
|
|
<span>[None]</span>
|
|
{{/each}}
|
|
</div>
|
|
</div>
|
|
<a href="/federation/list"> <!-- TODO -->
|
|
<div class="access-box-banner">
|
|
Manage My Federation
|
|
</div>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<footer>
|
|
<div class="footer">
|
|
{{version}}
|
|
| <a href="{{source_url}}#readme">About</a>
|
|
| <a href="https://liberapay.com/NGram">Support Me</a>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
</body>
|
|
</html>
|