Release 2.8.0
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m49s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 32s

This commit is contained in:
2026-08-16 17:15:31 +01:00
parent 1bdc122995
commit 203d0bfc01
105 changed files with 4185 additions and 677 deletions
+42 -7
View File
@@ -13,9 +13,7 @@
</div>
<form id="account-name-form" method="post" action="/account/name" data-async-save>
<div class="card-body">
<div class="mb-3">
<input id="account-name" type="text" name="name" class="form-control" value="{{name}}" autocomplete="name" required />
</div>
<input id="account-name" type="text" name="name" class="form-control" value="{{name}}" autocomplete="name" required />
</div>
<div class="card-footer d-flex justify-content-end">
<div class="btn-group" role="group" aria-label="Display name actions">
@@ -25,10 +23,47 @@
</div>
</form>
</div>
{{#if allowUserSessionRevocation}}
<div class="card card-outline card-secondary admin-form-card mt-3">
<div class="card-header">
<h3 class="card-title">Active sessions</h3>
</div>
<div class="card-body">
<div class="d-flex flex-column gap-2">
{{#if sessions.length}}
{{#each sessions}}
<div class="border rounded p-3 {{#if isCurrent}}border-primary bg-primary-subtle{{/if}}">
<div class="d-flex align-items-start justify-content-between gap-3">
<div>
<div class="fw-semibold">{{#if isCurrent}}Current session{{else}}Active session{{/if}}</div>
</div>
{{#unless isCurrent}}
<form method="post" action="/account/sessions/{{id}}/revoke">
<button type="submit" class="btn btn-sm btn-outline-danger">Sign out</button>
</form>
{{/unless}}
</div>
<div class="text-body-secondary small mt-2">{{ipAddress}} · {{userAgent}}</div>
<div class="text-body-secondary small">Created {{createdAtLabel}} · Last used {{lastUsedAtLabel}} · Expires {{expiresAtLabel}}</div>
</div>
{{/each}}
{{else}}
<p class="mb-0 text-body-secondary">No active sessions were found.</p>
{{/if}}
</div>
</div>
<div class="card-footer d-flex justify-content-end">
<form method="post" action="/account/sessions/revoke">
<button type="submit" class="btn btn-danger">Sign out other sessions</button>
</form>
</div>
</div>
{{/if}}
</div>
<div class="col-12 col-xl-6">
<div class="card card-outline card-warning admin-form-card h-100">
<div class="card card-outline card-warning admin-form-card">
<div class="card-header">
<h3 class="card-title">Password</h3>
</div>
@@ -40,13 +75,13 @@
</div>
<div class="mb-3">
<label for="account-new-password" class="form-label">New password</label>
<input id="account-new-password" type="password" name="new_password" class="form-control" autocomplete="new-password" minlength="10" required />
<input id="account-new-password" type="password" name="new_password" class="form-control" autocomplete="new-password" minlength="{{passwordMinimumLength}}" required />
</div>
<div class="mb-0">
<label for="account-confirm-password" class="form-label">Confirm new password</label>
<input id="account-confirm-password" type="password" name="confirm_password" class="form-control" autocomplete="new-password" minlength="10" required />
<input id="account-confirm-password" type="password" name="confirm_password" class="form-control" autocomplete="new-password" minlength="{{passwordMinimumLength}}" required />
</div>
<div class="form-text mt-2">Use at least 10 characters and include 3 of: uppercase, lowercase, a number, and a symbol.</div>
<div class="form-text mt-2">{{passwordRequirementsText}}</div>
</div>
<div class="card-footer d-flex justify-content-end">
<div class="btn-group" role="group" aria-label="Password actions">