1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00

rc_society dashboard display (#131)

### Description

Closes #130

### 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/131
This commit is contained in:
NG (Graham)
2026-06-20 21:48:09 +00:00
committed by NGnius
parent d2626bb47f
commit b597e1337d
19 changed files with 741 additions and 109 deletions

View File

@@ -72,8 +72,20 @@
<div class="access-box">
<h4 class="access-box-title">Garages</h4>
<div class="box-details">
<div class="box-details-key">Total</div> <!-- TODO -->
<div class="box-details-value">{{form.debug.user_id}}/{{form.debug.user_id}}</div>
<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">
@@ -84,10 +96,12 @@
<div class="access-box">
<h4 class="access-box-title">Factory</h4>
<div class="box-details">
<div class="box-details-key">Total</div> <!-- TODO -->
<div class="box-details-value">{{form.debug.user_id}}/{{form.debug.user_id}}</div>
<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="#"> <!-- TODO -->
<a href="{{form.debug.factory}}">
<div class="access-box-banner">
View My Uploads
</div>
@@ -95,6 +109,32 @@
</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
@@ -104,8 +144,20 @@
<div class="access-box">
<h4 class="access-box-title">Sanctions</h4>
<div class="box-details">
<div class="box-details-key">Total</div> <!-- TODO -->
<div class="box-details-value">{{form.debug.user_id}}</div>
<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">
@@ -116,17 +168,40 @@
<div class="access-box">
<h4 class="access-box-title">Social</h4>
<div class="box-details">
<div class="box-details-key">Clan</div> <!-- TODO -->
<div class="box-details-value">{{form.display_name}}</div>
<div class="box-details-key">Friends</div> <!-- TODO -->
<div class="box-details-value">{{form.debug.user_id}}</div>
{{#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> <!-- TODO -->
<div class="box-details-value">{{form.perms.royal}}</div>
<div class="box-details-key">TODO</div> <!-- TODO -->
<div class="box-details-value">TODO</div>
</div>
<a href="#"> <!-- TODO -->
<div class="access-box-banner">

View File

@@ -61,9 +61,11 @@
<div class="box-details-key">Domain</div>
<div class="box-details-value">{{form.server.domain}}</div>
<div class="box-details-key">CDN</div>
<div class="box-details-value">{{form.server.cdn}}</div>
<div class="box-details-value"><a class="box-details-link" href="{{form.server.cdn}}">{{form.server.cdn}}</a></div>
<div class="box-details-key">Auth</div>
<div class="box-details-value">{{form.server.auth}}</div>
<div class="box-details-value"><a class="box-details-link" href="{{form.server.auth}}">{{form.server.auth}}</a></div>
<div class="box-details-key">Factory</div>
<div class="box-details-value"><a class="box-details-link" href="{{form.server.factory}}">{{form.server.factory}}</a></div>
<div class="box-details-key">Client Version</div>
<div class="box-details-value">>={{form.server.min_version}}</div>
<div class="box-details-key">Server Version</div>
@@ -73,9 +75,17 @@
</div>
</div>
<div class="access-box">
Grid item 2
<h4 class="access-box-title">Server Links</h4>
<div class="box-details">
<div class="box-details-key">Feedback</div>
<div class="box-details-value"><a class="box-details-link" href="{{form.links.feedback}}">{{form.links.feedback}}</a></div>
<div class="box-details-key">Support</div>
<div class="box-details-value"><a class="box-details-link" href="{{form.links.support}}">{{form.links.support}}</a></div>
<div class="box-details-key">Wiki</div>
<div class="box-details-value"><a class="box-details-link" href="{{form.links.wiki}}">{{form.links.wiki}}</a></div>
</div>
</div>
<div class="access-box">
<!--<div class="access-box">
Grid item 3
</div>
<div class="access-box">
@@ -92,7 +102,7 @@
</div>
<div class="access-box">
Grid item 8
</div>
</div>-->
</div>

View File

@@ -44,6 +44,11 @@ a:link { color: darkgrey; }
a:hover { color: white; }
a:visited { color: lightgrey; }
a:active { color: white; }
a.box-details-link { text-decoration-line: underline; }
a.box-details-link:link { color: black; }
a.box-details-link:hover { color: white; }
a.box-details-link:visited { color: black; }
a.box-details-link:active { color: white; }
form {
padding-top: 25px;
padding-left: 25px;