mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Create society service with basic functionality and auth #118
This commit is contained in:
273
assets/templates/rc_society/dashboard.html.hbs
Normal file
273
assets/templates/rc_society/dashboard.html.hbs
Normal file
@@ -0,0 +1,273 @@
|
||||
<!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="Create an 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="Create an 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">
|
||||
<style>
|
||||
body {
|
||||
background-color: lightgrey;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.form-stripe {
|
||||
position: relative;
|
||||
min-width: 300px;
|
||||
max-width: 90%;
|
||||
height: auto;
|
||||
min-height: 100%;
|
||||
margin: 0 auto;
|
||||
background-color: grey;
|
||||
padding: 0 0 25px 0;
|
||||
box-shadow: 0px 0px 50px 5px grey;
|
||||
}
|
||||
.form-header-right {
|
||||
position: relative;
|
||||
width: 25%;
|
||||
text-align: right;
|
||||
margin: 0 0 0 auto;
|
||||
box-sizing: border-box;
|
||||
padding: 0 25px;
|
||||
}
|
||||
.form-banner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: dimgrey;
|
||||
color: black;
|
||||
padding: 25px;
|
||||
}
|
||||
.form-padded {
|
||||
padding: 0 25px;
|
||||
}
|
||||
h1, h2, h3, h4, h5 {
|
||||
text-align: center;
|
||||
}
|
||||
a { text-decoration-line: none; }
|
||||
a:link { color: darkgrey; }
|
||||
a:hover { color: white; }
|
||||
a:visited { color: lightgrey; }
|
||||
a:active { color: white; }
|
||||
form {
|
||||
padding-top: 25px;
|
||||
padding-left: 25px;
|
||||
padding-right: 25px;
|
||||
padding-bottom: 250px;
|
||||
}
|
||||
.form-error {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: orange;
|
||||
}
|
||||
.form-error-message {
|
||||
padding: 25px;
|
||||
margin: 0 auto;
|
||||
width: 95%;
|
||||
}
|
||||
.form-text-block {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.access-grid {
|
||||
width: 80%;
|
||||
display: grid;
|
||||
margin: 0 auto;
|
||||
padding: 5px;
|
||||
grid-template-columns: auto auto auto auto;
|
||||
gap: 5px;
|
||||
}
|
||||
.access-box {
|
||||
background-color: dimgrey;
|
||||
color: black;
|
||||
padding: 5px 0;
|
||||
text-align: center;
|
||||
}
|
||||
.access-box-title {
|
||||
padding: 5px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.access-box-banner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: black;
|
||||
color: lightgrey;
|
||||
padding: 5px;
|
||||
}
|
||||
.box-details {
|
||||
text-align: left;
|
||||
display: grid;
|
||||
grid-template-columns: auto auto;
|
||||
gap: 2px;
|
||||
padding: 5px;
|
||||
}
|
||||
.box-details-key {
|
||||
padding: 0 5px;
|
||||
background-color: black;
|
||||
color: lightgrey;
|
||||
text-align: left;
|
||||
}
|
||||
.box-details-value {
|
||||
padding: 0 5px;
|
||||
background-color: lightgrey;
|
||||
color: black;
|
||||
text-align: left;
|
||||
}
|
||||
footer {
|
||||
position: relative;
|
||||
width: 100%
|
||||
margin: 0 auto;
|
||||
background-color: black;
|
||||
}
|
||||
.footer {
|
||||
width: 95%;
|
||||
color: lightgrey;
|
||||
box-sizing: border-box;
|
||||
padding: 25px;
|
||||
}
|
||||
</style>
|
||||
</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> <!-- TODO -->
|
||||
<div class="box-details-value">{{form.debug.user_id}}/{{form.debug.user_id}}</div>
|
||||
</div>
|
||||
<a href="#"> <!-- TODO -->
|
||||
<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">Total</div> <!-- TODO -->
|
||||
<div class="box-details-value">{{form.debug.user_id}}/{{form.debug.user_id}}</div>
|
||||
</div>
|
||||
<a href="#"> <!-- TODO -->
|
||||
<div class="access-box-banner">
|
||||
View My Uploads
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="access-box">
|
||||
<h4 class="access-box-title">Account</h4>
|
||||
<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> <!-- TODO -->
|
||||
<div class="box-details-value">{{form.debug.user_id}}</div>
|
||||
</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">
|
||||
<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>
|
||||
</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>
|
||||
<a href="#"> <!-- 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>
|
||||
233
assets/templates/rc_society/index.html.hbs
Normal file
233
assets/templates/rc_society/index.html.hbs
Normal file
@@ -0,0 +1,233 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<!-- Primary Meta Tags -->
|
||||
<title>Home - Openjam</title>
|
||||
<meta name="title" content="Home - Openjam" />
|
||||
<meta name="description" content="OpenJam third-party Robocraft servers federation" />
|
||||
|
||||
<!-- 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="Home - Openjam" />
|
||||
<meta property="og:description" content="OpenJam third-party Robocraft servers federation" />
|
||||
<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="Home - Openjam" />
|
||||
<meta property="twitter:description" content="OpenJam third-party Robocraft servers federation" />
|
||||
<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">
|
||||
<style>
|
||||
body {
|
||||
background-color: lightgrey;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.form-stripe {
|
||||
position: relative;
|
||||
min-width: 300px;
|
||||
max-width: 90%;
|
||||
height: auto;
|
||||
min-height: 100%;
|
||||
margin: 0 auto;
|
||||
background-color: grey;
|
||||
padding: 0 0 25px 0;
|
||||
box-shadow: 0px 0px 50px 5px grey;
|
||||
}
|
||||
.form-header-right {
|
||||
position: relative;
|
||||
width: 25%;
|
||||
text-align: right;
|
||||
margin: 0 0 0 auto;
|
||||
box-sizing: border-box;
|
||||
padding: 0 25px;
|
||||
}
|
||||
.form-banner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: dimgrey;
|
||||
color: black;
|
||||
padding: 25px;
|
||||
}
|
||||
.form-padded {
|
||||
padding: 0 25px;
|
||||
}
|
||||
h1, h2, h3, h4, h5 {
|
||||
text-align: center;
|
||||
}
|
||||
a { text-decoration-line: none; }
|
||||
a:link { color: darkgrey; }
|
||||
a:hover { color: white; }
|
||||
a:visited { color: lightgrey; }
|
||||
a:active { color: white; }
|
||||
form {
|
||||
padding-top: 25px;
|
||||
padding-left: 25px;
|
||||
padding-right: 25px;
|
||||
padding-bottom: 250px;
|
||||
}
|
||||
.form-error {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: orange;
|
||||
}
|
||||
.form-error-message {
|
||||
padding: 25px;
|
||||
margin: 0 auto;
|
||||
width: 95%;
|
||||
}
|
||||
.form-text-block {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.access-grid {
|
||||
width: 80%;
|
||||
display: grid;
|
||||
margin: 0 auto;
|
||||
padding: 5px;
|
||||
grid-template-columns: auto auto auto auto;
|
||||
gap: 5px;
|
||||
}
|
||||
.access-box {
|
||||
background-color: dimgrey;
|
||||
color: black;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
.access-box-title {
|
||||
padding: 5px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.access-box-banner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: black;
|
||||
color: lightgrey;
|
||||
padding: 5px;
|
||||
}
|
||||
.box-details {
|
||||
text-align: left;
|
||||
display: grid;
|
||||
grid-template-columns: auto auto;
|
||||
gap: 2px;
|
||||
padding: 5px;
|
||||
}
|
||||
.box-details-key {
|
||||
padding: 0 5px;
|
||||
background-color: black;
|
||||
color: lightgrey;
|
||||
text-align: left;
|
||||
}
|
||||
.box-details-value {
|
||||
padding: 0 5px;
|
||||
background-color: lightgrey;
|
||||
color: black;
|
||||
text-align: left;
|
||||
}
|
||||
footer {
|
||||
position: relative;
|
||||
width: 100%
|
||||
margin: 0 auto;
|
||||
background-color: black;
|
||||
}
|
||||
.footer {
|
||||
width: 95%;
|
||||
color: lightgrey;
|
||||
box-sizing: border-box;
|
||||
padding: 25px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="form-stripe">
|
||||
<div class="form-header-right">
|
||||
{{#if form.is_logged_in}}
|
||||
Welcome {{form.display_name}}! |
|
||||
<a href="/dashboard">Dashboard</a>
|
||||
{{else}}
|
||||
<a href="/login">Login</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
<h1 class="form-banner">Welcome to <a href="https://git.ngram.ca/OpenJam">OpenJam</a> servers</h1>
|
||||
<h3 class="form-padded">FOSSifying proprietary games since 2025</h3>
|
||||
{{#if error}}
|
||||
<div class="form-error">
|
||||
<p class="form-error-message">{{error}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="form-text-block">
|
||||
<p>
|
||||
This service allows you to manage your account settings, import and export your garage bays, view the server config, and will eventually (not yet) federate with other OpenJam rc-servers instances.
|
||||
You can view other known instances <a href="/federation">here</a>.
|
||||
This service is intended to have stable public APIs for expanding existing functionality.
|
||||
If you do not want any of this functionality in your instance, simply do not run this service with your instance.
|
||||
</p>
|
||||
<p>
|
||||
Interested in running your own server instance? Check out the <a href="https://git.ngram.ca/OpenJam/rc-servers/wiki/Server-Quickstart">quickstart guide</a> in the wiki.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="access-grid">
|
||||
<div class="access-box">
|
||||
<h4 class="access-box-title">Server Details</h4>
|
||||
<div class="box-details">
|
||||
<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-key">Auth</div>
|
||||
<div class="box-details-value">{{form.server.auth}}</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>
|
||||
<div class="box-details-value">{{form.server.server_version}}</div>
|
||||
<div class="box-details-key">Start Time</div>
|
||||
<div class="box-details-value"><time datetime="{{form.server.start_time_iso}}">{{form.server.start_time_iso}}</time></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="access-box">
|
||||
Grid item 2
|
||||
</div>
|
||||
<div class="access-box">
|
||||
Grid item 3
|
||||
</div>
|
||||
<div class="access-box">
|
||||
Grid item 4
|
||||
</div>
|
||||
<div class="access-box">
|
||||
Grid item 5
|
||||
</div>
|
||||
<div class="access-box">
|
||||
Grid item 6
|
||||
</div>
|
||||
<div class="access-box">
|
||||
Grid item 7
|
||||
</div>
|
||||
<div class="access-box">
|
||||
Grid item 8
|
||||
</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>
|
||||
197
assets/templates/rc_society/login.html.hbs
Normal file
197
assets/templates/rc_society/login.html.hbs
Normal file
@@ -0,0 +1,197 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<!-- Primary Meta Tags -->
|
||||
<title>Login - Openjam</title>
|
||||
<meta name="title" content="Login - Openjam" />
|
||||
<meta name="description" content="Connect to a third-party Robocraft servers account" />
|
||||
|
||||
<!-- 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="Login - Openjam" />
|
||||
<meta property="og:description" content="Connect to a third-party Robocraft servers account" />
|
||||
<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="Login - Openjam" />
|
||||
<meta property="twitter:description" content="Connect to a third-party Robocraft servers account" />
|
||||
<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">
|
||||
<style>
|
||||
body {
|
||||
background-color: lightgrey;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.form-stripe {
|
||||
position: relative;
|
||||
min-width: 300px;
|
||||
max-width: 500px;
|
||||
height: auto;
|
||||
min-height: 100%;
|
||||
margin: 0 auto;
|
||||
background-color: grey;
|
||||
padding: 25px 0;
|
||||
box-shadow: 0px 0px 50px 5px grey;
|
||||
}
|
||||
.form-banner {
|
||||
position: relative;
|
||||
min-width: 300px;
|
||||
max-width: 500px;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: dimgrey;
|
||||
color: black;
|
||||
padding: 25px;
|
||||
}
|
||||
.form-padded {
|
||||
padding: 0 25px;
|
||||
}
|
||||
h1, h2, h3, h4, h5 {
|
||||
text-align: center;
|
||||
}
|
||||
a { text-decoration-line: none; }
|
||||
a:link { color: darkgrey; }
|
||||
a:hover { color: white; }
|
||||
a:visited { color: lightgrey; }
|
||||
a:active { color: white; }
|
||||
form {
|
||||
padding-top: 25px;
|
||||
padding-left: 25px;
|
||||
padding-right: 25px;
|
||||
padding-bottom: 250px;
|
||||
}
|
||||
.form-error {
|
||||
position: relative;
|
||||
min-width: 300px;
|
||||
max-width: 500px;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
background-color: orange;
|
||||
}
|
||||
.form-error-message {
|
||||
padding: 25px;
|
||||
margin: 0 auto;
|
||||
width: 95%;
|
||||
}
|
||||
.form-input {
|
||||
padding-top: 5px;
|
||||
}
|
||||
.form-input-label { display: none; }
|
||||
input:required:invalid.form-input-box {
|
||||
border-color: red;
|
||||
}
|
||||
input:required:invalid.form-input-box::after {
|
||||
content: "*required";
|
||||
color: red;
|
||||
font-size: 12px;
|
||||
}
|
||||
input {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
border: thin solid white;
|
||||
background-color: lightgrey;
|
||||
font-size: 20px;
|
||||
}
|
||||
.input-required-hint::after {
|
||||
color: red;
|
||||
/*content: "*required";*/
|
||||
font-size: 12px;
|
||||
}
|
||||
.form-disclaimer {
|
||||
margin: 0 auto;
|
||||
width: 95%;
|
||||
}
|
||||
.form-submit {
|
||||
margin: 0 auto;
|
||||
}
|
||||
.form-submit-button {
|
||||
background-color: black;
|
||||
color: lightgrey;
|
||||
}
|
||||
.fake-button {
|
||||
padding-top: 25px;
|
||||
padding-left: 25px;
|
||||
padding-right: 25px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
}
|
||||
.fake-button-anchor {
|
||||
width: 100%;
|
||||
background-color: black;
|
||||
color: lightgrey;
|
||||
border: 1px solid white;
|
||||
display: inline-block;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
footer {
|
||||
position: relative;
|
||||
min-width: 300px;
|
||||
max-width: 500px;
|
||||
margin: 0 auto;
|
||||
background-color: black;
|
||||
}
|
||||
.footer {
|
||||
width: 95%;
|
||||
color: lightgrey;
|
||||
box-sizing: border-box;
|
||||
padding: 25px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="form-stripe">
|
||||
<h1 class="form-banner">Login to <a href="https://git.ngram.ca/OpenJam">OpenJam</a> servers</h1>
|
||||
<h3 class="form-padded">FOSSifying proprietary games since 2025</h3>
|
||||
{{#if error}}
|
||||
<div class="form-error">
|
||||
<p class="form-error-message">{{error}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
<form action="/login" method="post">
|
||||
<div class="form-input">
|
||||
<div class="form-input-label">
|
||||
<label for="username">Username</label>
|
||||
</div>
|
||||
<input class="form-input-box" type="text" id="username" name="username" value="{{form.username}}" placeholder="username" required/>
|
||||
<span class="input-required-hint"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-input">
|
||||
<div class="form-input-label">
|
||||
<label for="password">Password</label>
|
||||
</div>
|
||||
<input class="form-input-box" type="password" id="password" name="password" value="{{form.password}}" placeholder="password" required/>
|
||||
<span class="input-required-hint"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-disclaimer">
|
||||
<p>By submitting, you agree to the <a href="https://git.ngram.ca/OpenJam/rc-servers#privacy">privacy policy</a>.</p>
|
||||
</div>
|
||||
|
||||
<div class="form-submit">
|
||||
<input class="form-submit-button" type="submit" value="Submit">
|
||||
</div>
|
||||
|
||||
<div class="form-disclaimer">
|
||||
<p>This project is not affiliated with FreeJam, Cardlife or Robocraft. We're just fixing their """sunset""".</p>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<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>
|
||||
Reference in New Issue
Block a user