Release v2.11.1
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m47s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 31s

This commit is contained in:
2026-09-04 15:43:55 +01:00
parent 2c150b5b2e
commit 98f969ca0f
104 changed files with 3559 additions and 447 deletions
+403 -22
View File
@@ -104,7 +104,7 @@
}
.user-menu-dropdown .user-header small {
display: block;
display: table;
margin-top: 0.25rem;
opacity: 0.85;
}
@@ -198,15 +198,115 @@
box-shadow: none;
}
.card-header {
position: relative;
.login-card {
border-radius: var(--bs-border-radius-lg);
overflow: hidden;
}
.card-header .card-tools {
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
.email-verified-card {
max-width: 26rem;
}
.email-verified-card__header {
align-items: center;
background: #111827;
color: #fff;
display: flex;
flex-direction: column;
gap: 0.75rem;
padding: 1.75rem 1.5rem;
text-align: center;
}
.email-verified-card__icon {
align-items: center;
background: #198754;
border: 4px solid rgba(255, 255, 255, 0.2);
border-radius: 50%;
display: flex;
font-size: 1.75rem;
height: 4rem;
justify-content: center;
width: 4rem;
}
.email-verification-error-card {
max-width: 26rem;
}
.email-verification-error-card__header {
align-items: center;
background: #111827;
color: #fff;
display: flex;
flex-direction: column;
gap: 0.75rem;
padding: 1.75rem 1.5rem;
text-align: center;
}
.email-verification-error-card__icon {
align-items: center;
background: #dc3545;
border: 4px solid rgba(255, 255, 255, 0.2);
border-radius: 50%;
display: flex;
font-size: 1.75rem;
height: 4rem;
justify-content: center;
width: 4rem;
}
.email-template-preview {
background: #f4f4f5;
border: 1px solid var(--bs-border-color);
border-radius: var(--bs-border-radius);
padding: 1rem;
}
.email-template-preview__shell {
background: #fff;
border-radius: 0.25rem;
color: #27364b;
min-height: 220px;
padding: 1.5rem;
}
.email-template-preview__brand {
color: #111827;
font-size: 1.05rem;
font-weight: 700;
margin-bottom: 1.25rem;
text-align: center;
}
.email-template-preview__subject {
color: #111827;
font-weight: 600;
margin-bottom: 1rem;
}
.email-template-preview__message p {
margin-bottom: 0.75rem;
white-space: pre-wrap;
}
.email-template-preview__button-wrap {
margin-top: 1.25rem;
text-align: center;
}
.email-template-preview__button {
background: #111827;
border-radius: 0.25rem;
color: #fff;
display: inline-block;
font-weight: 600;
padding: 0.65rem 1.1rem;
}
.card-header {
position: relative;
}
.card-header .card-tools > .btn,
@@ -221,6 +321,15 @@
max-width: 14rem;
}
[data-table-search-container] > .card-header:has(> .card-tools) {
display: flex;
align-items: center;
}
[data-table-search-container] > .card-header:has(> .card-tools) > .card-tools {
margin-left: auto;
}
.template-preview-card .card-body {
gap: 0.75rem 1rem;
}
@@ -873,22 +982,97 @@
border-top: 1px solid var(--bs-border-color);
}
.table-search-group .input-group-text[data-table-search-toggle] {
cursor: pointer;
}
@media (max-width: 767.98px) {
[data-table-search-container] > .card-header > .card-tools,
[data-table-search-container] > .card-header > .background-tasks-task-tools,
[data-table-search-container] > .card-header > .background-tasks-recurring-tools {
position: relative;
width: auto;
margin-left: auto;
flex-shrink: 0;
}
[data-table-search-container] > .card-header > .card-tools .table-search-group,
[data-table-search-container] > .card-header > .background-tasks-task-tools .table-search-group,
[data-table-search-container] > .card-header > .background-tasks-recurring-tools .table-search-group {
position: absolute;
top: 50%;
right: var(--table-search-action-offset, 0px);
z-index: 2;
transform: translateY(-50%);
flex: 0 0 2.25rem;
height: 100%;
margin: 0 !important;
min-width: 0 !important;
width: 2.25rem !important;
max-width: 2.25rem;
overflow: hidden;
border: var(--bs-border-width) solid var(--bs-border-color);
border-radius: var(--bs-border-radius);
background: var(--bs-tertiary-bg);
transition: width 160ms ease;
}
[data-table-search-container] .table-search-group .input-group-text[data-table-search-toggle] {
flex: 1 0 100%;
width: 100%;
justify-content: center;
padding: 0;
border: 0;
color: var(--bs-body-color);
background: transparent;
}
[data-table-search-container] > .card-header > .card-tools .table-search-group:focus-within,
[data-table-search-container] > .card-header > .background-tasks-task-tools .table-search-group:focus-within,
[data-table-search-container] > .card-header > .background-tasks-recurring-tools .table-search-group:focus-within {
flex: 1 1 auto;
width: min(14rem, calc(100vw - 6rem)) !important;
height: auto;
max-width: none;
overflow: visible;
border-color: var(--bs-border-color);
border-radius: var(--bs-border-radius-sm);
background: var(--bs-body-bg);
}
[data-table-search-container] .table-search-group input {
min-width: 0;
width: 0;
flex: 0 0 0;
padding: 0 !important;
border: 0;
opacity: 0;
}
[data-table-search-container] .table-search-group:focus-within input {
width: auto;
flex: 1 1 auto;
padding-right: 0.5rem;
padding-left: 0.5rem;
border-left: var(--bs-border-width) solid var(--bs-border-color);
opacity: 1;
}
[data-table-search-container] .table-search-group:focus-within .input-group-text[data-table-search-toggle] {
flex: 0 0 auto;
width: auto;
padding: 0.25rem 0.5rem;
}
[data-table-search-container] .table-action-context {
display: none;
}
}
.admin-form-card {
box-shadow: none;
}
.account-lock-label-locked {
display: none;
}
.btn-check:checked + label .account-lock-label-unlocked {
display: none;
}
.btn-check:checked + label .account-lock-label-locked {
display: inline;
}
.admin-form-card .card-header {
background: var(--bs-tertiary-bg);
}
@@ -1022,7 +1206,7 @@
display: flex;
align-items: center;
gap: 0.5rem;
margin: 0 0 1rem;
margin: 0 0 0.5rem;
padding-bottom: 0.35rem;
border-bottom: 1px solid var(--bs-border-color);
color: var(--bs-primary);
@@ -1209,7 +1393,7 @@
display: grid;
grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr) minmax(12rem, 0.7fr);
gap: 1rem;
align-items: start;
align-items: stretch;
}
.screen-command-panel-pairing-only {
@@ -1314,6 +1498,203 @@
margin: 0;
}
.clients-mobile-clients {
display: none;
}
@media (max-width: 767.98px) {
.clients-page-header p {
display: none;
}
.clients-screen-command-card .screen-command-panel-right {
display: none;
}
.clients-screen-command-card .screen-command-pairing {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 0;
border: 0;
}
.clients-screen-command-card .screen-command-pairing > div {
display: none;
}
.clients-screen-command-card .screen-command-pairing .btn {
width: 100%;
}
.clients-screen-command-card .screen-command-actions {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.5rem;
}
.clients-screen-command-card .screen-command-actions .btn {
width: 100%;
}
.clients-client-table-card {
display: none;
}
.clients-mobile-clients {
display: block;
}
.clients-mobile-client-tools {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
margin-bottom: 0.65rem;
}
.clients-mobile-client-tools > div:first-child {
display: flex;
align-items: baseline;
gap: 0.5rem;
min-width: 0;
}
.clients-mobile-client-tools h3 {
margin: 0;
font-size: 1.25rem;
line-height: 1.15;
white-space: nowrap;
}
.clients-mobile-client-search {
position: absolute;
top: 50%;
right: 0;
z-index: 2;
display: flex;
flex-wrap: nowrap;
align-items: center;
width: 2.25rem;
min-width: 0;
height: 2.25rem;
overflow: hidden;
transform: translateY(-50%);
border: var(--bs-border-width) solid var(--bs-border-color);
border-radius: var(--bs-border-radius);
background: var(--bs-tertiary-bg);
transition: width 160ms ease;
}
.clients-mobile-client-search:focus-within {
left: 0;
width: auto;
overflow: visible;
background: var(--bs-body-bg);
}
.clients-mobile-client-search label {
display: none;
}
.clients-mobile-client-search .input-group-text {
flex: 1 0 100%;
width: 100%;
justify-content: center;
padding: 0;
border: 0;
color: var(--bs-body-color);
background: transparent;
cursor: pointer;
}
.clients-mobile-client-search:focus-within .input-group-text {
flex: 0 0 auto;
width: auto;
padding: 0.25rem 0.5rem;
}
.clients-mobile-client-search input {
min-width: 0;
width: 0;
flex: 0 0 0;
padding: 0 !important;
border: 0;
opacity: 0;
}
.clients-mobile-client-search:focus-within input {
width: auto;
flex: 1 1 auto;
padding-right: 0.5rem !important;
padding-left: 0.5rem !important;
border-left: var(--bs-border-width) solid var(--bs-border-color);
opacity: 1;
}
.clients-mobile-client {
margin-bottom: 0.75rem;
}
.clients-mobile-client-header {
display: flex;
align-items: start;
justify-content: space-between;
gap: 0.75rem;
}
.clients-mobile-client-header h4 {
margin: 0;
font-size: 1rem;
}
.clients-mobile-client-details {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.75rem;
margin: 0.9rem 0;
padding: 0.75rem 0;
border-top: 1px solid var(--bs-border-color);
border-bottom: 1px solid var(--bs-border-color);
}
.clients-mobile-client-details small {
display: block;
margin-bottom: 0.2rem;
color: var(--bs-secondary-color);
font-size: 0.7rem;
font-weight: 700;
text-transform: uppercase;
}
.clients-mobile-client-details strong {
display: -webkit-box;
min-height: 2.5em;
overflow: hidden;
overflow-wrap: anywhere;
font-size: 0.875rem;
line-height: 1.25;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.clients-mobile-client-actions {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.4rem;
}
.clients-mobile-client-actions .wide {
grid-column: span 2;
}
.clients-mobile-client-actions .btn {
width: 100%;
min-height: 2.4rem;
}
}
@media (max-width: 767.98px) {
.screen-command-panel {
grid-template-columns: 1fr;