This commit is contained in:
2025-01-04 00:34:03 +01:00
parent 41829408dc
commit 0ca14bbc19
18111 changed files with 1871397 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
<article class="scrollable">
{{{html}}}
</article>

View File

@@ -0,0 +1,22 @@
<form class="standard-form" method="post" autocomplete="off">
<h2 class="border">{{localize "EULA.Acknowledge"}}</h2>
<div class="form-group">
<div class="form-fields">
<label class="checkbox after">
{{localize "EULA.AgreeLabel"}}
<input id="eula-agree" type="checkbox" name="agree">
</label>
<p class="hint">{{localize "EULA.AgreeHint"}}</p>
</div>
</div>
<footer class="form-footer">
<button type="submit" id="sign" class="bright" name="accept" data-action="accept">
<i class="fa fa-check"></i>
<label>{{localize "EULA.Agree"}}</label>
</button>
<button type="submit" id="decline" name="decline" data-action="decline">
<i class="fa fa-times"></i>
<label>{{localize "EULA.Decline"}}</label>
</button>
</footer>
</form>

View File

@@ -0,0 +1,17 @@
<div class="application standard-form framed">
<h2 class="divider">{{ localize "JOIN.HeaderDetails" }}</h2>
<div class="form-group">
<label><i class="fas fa-clock"></i> {{ localize "JOIN.NextSession" }}<span id="next-tz">{{ nextTZ }}</span></label>
<div class="form-fields">
<span>{{nextTime}}</span>
</div>
</div>
<div class="form-group">
<label><i class="fas fa-users"></i> {{ localize "JOIN.CurrentPlayers" }}</label>
<div class="form-fields current-players">
<span class="count">{{ usersCurrent }}</span>
<span class="sep">/</span>
<span class="count">{{ usersMax }}</span>
</div>
</div>
</div>

View File

@@ -0,0 +1,27 @@
<form class="application standard-form framed" autocomplete="off">
<h2 class="divider">{{ localize "JOIN.HeaderJoin" }}</h2>
<div class="form-group">
<label class="icon" data-tooltip="{{ localize 'JOIN.SelectUser' }}"><i class="fas fa-user"></i></label>
<div class="form-fields">
<select name="userid">
<option value=""></option>
{{#each users}}
<option value="{{this.id}}" {{#if this.active}}disabled{{/if}}>{{this.name}}</option>
{{/each}}
</select>
</div>
</div>
<div class="form-group">
<label class="icon" data-tooltip="{{ localize 'JOIN.UserKey' }}"><i class="fas fa-key"></i></label>
<div class="form-fields">
<input type="password" name="password" placeholder="{{ localize "USERS.AccessKey" }}"
value="" autocomplete="off">
</div>
</div>
<footer class="form-footer">
<button type="submit" name="join" class="bright">
<i class="fas fa-check"></i>
<label>{{ localize "JOIN.HeaderJoin" }}</label>
</button>
</footer>
</form>

View File

@@ -0,0 +1,20 @@
<form class="application standard-form framed">
<h2 class="divider">{{ localize "GAME.ReturnSetup" }}</h2>
<div class="form-group">
{{#if isAdmin }}
<p class="hint">{{ localize "JOIN.AuthAdmin" }}</p>
{{else}}
<label class="icon" data-tooltip="{{ localize 'SETUP.AdminPasswordLabel' }}">
<i class="fas fa-key"></i>
</label>
<input type="password" name="adminPassword" value="" placeholder="{{ localize 'SETUP.AdminPasswordLabel' }}"
autocomplete="current-password">
{{/if}}
</div>
<footer class="form-footer">
<button type="submit" class="bright">
<i class="fas fa-lock"></i>
<label>{{ localize "GAME.ReturnSetup" }}</label>
</button>
</footer>
</form>

View File

@@ -0,0 +1,6 @@
<article class="application framed">
<h2 class="divider">{{ localize "JOIN.HeaderWorld" }}</h2>
<div id="world-description" class="scrollable">
{{{ world.description }}}
</div>
</article>

View File

@@ -0,0 +1,123 @@
{{! -------------------------------------------- }}
{{! World Details View }}
{{! -------------------------------------------- }}
{{#*inline "worlds"}}
<li class="package world" data-package-id="{{package.id}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<div class="package-thumbnail">
<img class="thumbnail" data-src="{{package.thumb}}">
<h3 class="package-title">{{package.title}}</h3>
{{#if package.canPlay}}
<a class="control play" data-action="worldLaunch" data-tooltip="SETUP.WorldLaunch">
<i class="fal fa-play-circle"></i>
</a>
{{/if}}
</div>
<div class="package-content flexcol">
<div class="package-description scrollable">{{{package.description}}}</div>
<footer class="package-footer">
<div class="tags left">
{{#if package.lastPlayedLabel}}
<span class="tag">{{package.lastPlayedLabel}}</span>
{{/if}}
</div>
<div class="tags right">
<span class="tag {{package.systemBadge.type}}" data-tooltip="{{package.systemBadge.tooltip}}">
{{#if package.systemBadge.icon}}<i class="{{package.systemBadge.icon}}"></i>{{/if}}
{{package.systemBadge.label}}
</span>
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</footer>
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! System Details View }}
{{! -------------------------------------------- }}
{{#*inline "systems"}}
<li class="package system" data-package-id="{{package.id}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<div class="package-thumbnail">
<img class="thumbnail" data-src="{{package.thumb}}">
<h3 class="package-title">{{package.title}}</h3>
</div>
<div class="package-content flexcol">
<div class="package-description scrollable">{{{package.description}}}</div>
<footer class="package-footer">
<div class="tags left">
{{#unless package.locked}}
<a class="control package-update" data-action="updatePackage" data-tooltip="{{localize "SETUP.UpdatePerformIfAvailable"}}">
<i class="fas fa-sync-alt"></i>
</a>
<span class="tag update-status hidden">Updated</span>
{{/unless}}
</div>
<div class="tags right">
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</footer>
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! Module Details View }}
{{! -------------------------------------------- }}
{{#*inline "modules"}}
<li class="package module" data-package-id="{{package.id}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<div class="package-thumbnail">
<img class="thumbnail" data-src="{{package.thumb}}">
<h3 class="package-title">{{package.title}}</h3>
</div>
<div class="package-content flexcol">
<div class="package-description scrollable">{{{package.description}}}</div>
<footer class="package-footer">
<div class="tags left">
{{#unless package.locked}}
<a class="control package-update" data-action="updatePackage" data-tooltip="{{localize "SETUP.UpdatePerformIfAvailable"}}">
<i class="fas fa-sync-alt"></i>
</a>
<span class="tag update-status hidden">Updated</span>
{{/unless}}
</div>
<div class="tags right">
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</footer>
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! Details View }}
{{! -------------------------------------------- }}
<ol id="{{type}}-list" class="package-list details scrollable">
{{#each packages as |package|}}
{{> (lookup .. "type") package=package}}
{{/each}}
</ol>

View File

@@ -0,0 +1,102 @@
{{! -------------------------------------------- }}
{{! World Thumbnail View }}
{{! -------------------------------------------- }}
{{#*inline "worlds"}}
<li class="package world" data-package-id="{{package.id}}">
<img class="thumbnail" data-src="{{package.thumb}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<h3 class="package-title" data-tooltip="{{package.shortDesc}}" data-tooltip-direction="UP">{{package.title}}</h3>
{{#if package.canPlay}}
<a class="control play" data-action="worldLaunch" data-tooltip="SETUP.WorldLaunch">
<i class="fal fa-play-circle"></i>
</a>
{{/if}}
<div class="tags left">
{{#if package.lastPlayedLabel}}
<span class="tag">{{package.lastPlayedLabel}}</span>
{{/if}}
</div>
<div class="tags right">
<span class="tag {{package.systemBadge.type}}" data-tooltip="{{package.systemBadge.tooltip}}">
{{#if package.systemBadge.icon}}<i class="{{package.systemBadge.icon}}"></i>{{/if}}
{{package.systemBadge.label}}
</span>
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! System Thumbnail View }}
{{! -------------------------------------------- }}
{{#*inline "systems"}}
<li class="package system" data-package-id="{{package.id}}">
<img class="thumbnail" data-src="{{package.thumb}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<h3 class="package-title" data-tooltip="{{package.shortDesc}}" data-tooltip-direction="UP">{{package.title}}</h3>
<div class="tags left">
{{#unless package.locked}}
<a class="control package-update" data-action="updatePackage" data-tooltip="{{localize "SETUP.UpdatePerformIfAvailable"}}">
<i class="fas fa-sync-alt"></i>
</a>
<span class="tag update-status hidden">Updated</span>
{{/unless}}
</div>
<div class="tags right">
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! Module Thumbnail View }}
{{! -------------------------------------------- }}
{{#*inline "modules"}}
<li class="package module" data-package-id="{{package.id}}">
<img class="thumbnail" data-src="{{package.thumb}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<h3 class="package-title" data-tooltip="{{package.shortDesc}}" data-tooltip-direction="UP">{{package.title}}</h3>
<div class="tags left">
{{#unless package.locked}}
<a class="control package-update" data-action="updatePackage" data-tooltip="{{localize "SETUP.UpdatePerformIfAvailable"}}">
<i class="fas fa-sync-alt"></i>
</a>
<span class="tag update-status hidden">Updated</span>
{{/unless}}
</div>
<div class="tags right">
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! Thumbnail List }}
{{! -------------------------------------------- }}
<ol id="{{type}}-list" class="package-list gallery scrollable">
{{#each packages as |package|}}
{{> (lookup .. "type") package=package}}
{{/each}}
</ol>

View File

@@ -0,0 +1,18 @@
{{#if package.url}}
<span class="tag" data-tooltip="<a href='{{package.url}}' target='_blank'>{{package.url}}</a>" data-locked><i class="fas fa-circle-info"></i></span>
{{/if}}
{{#if package.authors}}
<span class="tag" data-tooltip="{{package.authors}}" data-locked><i class="fas fa-user"></i></span>
{{/if}}
{{#if package.packs}}
<span class="tag compendium" data-tooltip="{{localize 'PACKAGE.TagCompendium'}}"><i class="fas fa-book"></i></span>
{{/if}}
{{#if package.languages}}
<span class="tag languages" data-tooltip="{{localize 'PACKAGE.TagLocalization'}}"><i class="fas fa-language"></i></span>
{{/if}}
{{#if package.badge}}
<span class="tag {{badge.type}}" data-tooltip="{{badge.tooltip}}">
<i class="{{badge.icon}}"></i>
{{#if package.badge.label}}{{package.badge.label}}{{/if}}
</span>
{{/if}}

View File

@@ -0,0 +1,96 @@
{{! -------------------------------------------- }}
{{! World Tiles View }}
{{! -------------------------------------------- }}
{{#*inline "worlds"}}
<li class="package world" data-package-id="{{package.id}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<h3 class="package-title ellipsis" data-tooltip="{{package.shortDesc}}" data-tooltip-direction="UP">{{package.title}}</h3>
<div class="tags left">
{{#if package.canPlay}}
<a class="control play" data-action="worldLaunch" data-tooltip="SETUP.WorldLaunch">
<i class="fal fa-play-circle"></i>
</a>
{{/if}}
</div>
<div class="tags right">
<span class="tag {{package.systemBadge.type}}" data-tooltip="{{package.systemBadge.tooltip}}">
{{#if package.systemBadge.icon}}<i class="{{package.systemBadge.icon}}"></i>{{/if}}
{{package.systemBadge.label}}
</span>
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! System Tiles View }}
{{! -------------------------------------------- }}
{{#*inline "systems"}}
<li class="package system" data-package-id="{{package.id}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<h3 class="package-title ellipsis" data-tooltip="{{package.shortDesc}}" data-tooltip-direction="UP">{{package.title}}</h3>
<div class="tags left">
{{#unless package.locked}}
<a class="control package-update" data-action="updatePackage" data-tooltip="{{localize "SETUP.UpdatePerformIfAvailable"}}">
<i class="fas fa-sync-alt"></i>
</a>
<span class="tag update-status hidden">Updated</span>
{{/unless}}
</div>
<div class="tags right">
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! Module Tiles View }}
{{! -------------------------------------------- }}
{{#*inline "modules"}}
<li class="package module" data-package-id="{{package.id}}">
<div class="status-icons">
{{#if package.favorite}}
<i class="favorite fa-solid fa-star" data-tooltip="{{localize "SETUP.FavoritePackage"}}"></i>
{{/if}}
<i class="lock fas fa-lock {{#unless package.locked}}hidden{{/unless}}"
data-tooltip="{{localize "SETUP.LockHint"}}"></i>
</div>
<h3 class="package-title ellipsis" data-tooltip="{{package.shortDesc}}" data-tooltip-direction="UP">{{package.title}}</h3>
<div class="tags left">
{{#unless package.locked}}
<a class="control package-update" data-action="updatePackage" data-tooltip="{{localize "SETUP.UpdatePerformIfAvailable"}}">
<i class="fas fa-sync-alt"></i>
</a>
<span class="tag update-status hidden">Updated</span>
{{/unless}}
</div>
<div class="tags right">
{{> templates/setup/parts/package-tags.hbs package=this}}
</div>
</li>
{{/inline}}
{{! -------------------------------------------- }}
{{! Thumbnail List }}
{{! -------------------------------------------- }}
<ol id="{{type}}-list" class="package-list tiles scrollable">
{{#each packages as |package|}}
{{> (lookup .. "type") package=package}}
{{/each}}
</ol>

View File

@@ -0,0 +1,12 @@
<section class="application flexcol">
<h2 class="divider">{{localize "SETUP.FeaturedContent"}}</h2>
{{#if featured}}
<a id="featured-content" class="news flexcol" href="{{featured.url}}" target="_blank">
<img src="{{featured.image}}" alt="{{featured.title}}">
<h3 id="featured-content-title">{{featured.title}}</h3>
<p class="caption">{{{featured.caption}}}</p>
</a>
{{else}}
<p class="notification error">{{localize "SETUP.NoFeaturedContent"}}</p>
{{/if}}
</section>

View File

@@ -0,0 +1,9 @@
<div class="flexrow">
{{#each buttons as |b|}}
<button type="button" class="icon" data-action="{{b.action}}" data-tooltip="{{b.tooltip}}"
aria-label="{{b.tooltip}}">
<i class="{{b.icon}}"></i>
{{#if b.pip}}<span class="pip {{b.pip.type}}">{{b.pip.label}}</span>{{/if}}
</button>
{{/each}}
</div>

View File

@@ -0,0 +1,15 @@
<section class="application flexcol">
<h2 class="divider">{{localize "SETUP.News"}}</h2>
<div class="container">
<div id="news-articles" class="flexcol scrollable">
{{#each news as |news|}}
<a class="news flexcol" href="{{news.url}}" target="_blank">
<img src="{{news.image}}" alt="{{news.title}}">
<h3>{{news.title}}</h3>
</a>
{{else}}
<p class="notification error">{{localize "SETUP.NoFeaturedContent"}}</p>
{{/each}}
</div>
</div>
</section>

View File

@@ -0,0 +1,39 @@
<div class="standard-form">
<h2 class="border">{{ localize "USERS.ManageTitle" }}</h2>
<header class="player form-group">
<div>
<label>{{localize "USERS.UserName"}}</label>
</div>
<div>
<label>{{localize "USERS.AccessKey"}}</label>
</div>
<div class="role">
<label>{{localize "USERS.Role"}}</label>
</div>
<div class="controls"></div>
</header>
<ol id="player-list" class="scrollable">
{{#each users as |user idx|}}
{{> (lookup .. 'userTemplate') user=user roles=../roles}}
{{/each}}
</ol>
<footer class="form-footer">
<button type="button" data-action="createUser">
<i class="fas fa-user-plus"></i>
<label>{{ localize "USERS.Create" }}</label>
</button>
{{#if canConfigurePermissions}}
<button type="button" data-action="configurePermissions">
<i class="fas fa-cogs"></i>
<label>{{ localize "PERMISSION.Configure" }}</label>
</button>
{{/if}}
<button type="submit" class="bright">
<i class="fas fa-check"></i>
<label>{{ localize "USERS.Launch" }}</label>
</button>
</footer>
</div>

View File

@@ -0,0 +1,25 @@
<li class="player form-group" data-user-id="{{user._id}}">
<div>
<label class="username">
<input type="text" name="users.{{user._id}}.name" value="{{user.name}}" autocomplete="off"/>
</label>
</div>
<div class="flexrow">
<label class="password">
<input class="password" type="password" name="users.{{user._id}}.password" value="{{@root.passwordString}}" autocomplete="off"/>
</label>
<a class="control show" data-action="showPassword" data-tooltip="{{ localize "USERS.KeyShow" }}" hidden>
<i class="fa-solid fa-eye"></i>
</a>
</div>
<div>
<select name="users.{{user._id}}.role" data-dtype="Number">
{{selectOptions roles selected=user.role}}
</select>
</div>
<div class="controls flexrow">
<a class="control" data-action="deleteUser" data-tooltip="{{ localize 'USERS.Delete' }}">
<i class="fas fa-trash"></i>
</a>
</div>
</li>