feat(ui): version in footer, iOS icon grid, alphanumeric passwords
This commit is contained in:
parent
28881750db
commit
9e056ddd4a
3 changed files with 79 additions and 75 deletions
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
2026.6.0004
|
||||
2026.6.0005
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package ui
|
||||
|
||||
import appver "git.lohmar.co.uk/lexton-it/NextWks/core/version"
|
||||
|
||||
templ LauncherPage(userName string, role string, apps []AppTile) {
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
|
@ -21,6 +23,9 @@ templ LauncherPage(userName string, role string, apps []AppTile) {
|
|||
@greetingSection(userName)
|
||||
@AppGrid(apps)
|
||||
</main>
|
||||
<footer class="footer">
|
||||
<span>NextWks v{ appver.Version }</span>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- PWA Modal -->
|
||||
|
|
@ -149,40 +154,20 @@ templ workspaceCSS() {
|
|||
.app-card.disabled{opacity:0.35;cursor:default}
|
||||
.app-card.disabled:active{transform:none}
|
||||
|
||||
/* Overlay & Modal */
|
||||
.overlay{
|
||||
position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:1000;
|
||||
display:flex;align-items:center;justify-content:center;
|
||||
backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px)
|
||||
/* Footer */
|
||||
.footer{
|
||||
text-align:center;padding:16px;color:var(--text3);font-size:0.7rem;
|
||||
border-top:1px solid var(--border);margin-top:auto
|
||||
}
|
||||
.modal{
|
||||
background:var(--surface); border:1px solid var(--border);
|
||||
border-radius:var(--radius); width:92%; max-width:420px; max-height:85vh; overflow-y:auto
|
||||
}
|
||||
.modal-head{
|
||||
display:flex;justify-content:space-between;align-items:center;
|
||||
padding:18px 20px 12px
|
||||
}
|
||||
.modal-head h2{font-size:1.1rem;font-weight:600}
|
||||
.modal-body{padding:0 20px 20px}
|
||||
.close-btn{
|
||||
width:32px;height:32px;border-radius:50%;border:none;background:transparent;
|
||||
color:var(--text2);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center
|
||||
}
|
||||
.modal-body h3{font-size:0.85rem;font-weight:600;color:var(--text2);margin:14px 0 6px;text-transform:uppercase;letter-spacing:0.5px}
|
||||
.modal-body ol{padding-left:18px}
|
||||
.modal-body li{font-size:0.85rem;color:var(--text);margin-bottom:4px;line-height:1.5}
|
||||
.modal-body code{background:var(--surface2);padding:1px 5px;border-radius:4px;font-size:0.8rem}
|
||||
.modal-body .btn{
|
||||
display:block;width:100%;padding:12px;margin-top:16px;border:none;border-radius:var(--radius-sm);
|
||||
background:var(--blue);color:#fff;font-size:0.9rem;font-weight:600;cursor:pointer;text-align:center
|
||||
}
|
||||
.modal-body .btn:hover{opacity:0.9}
|
||||
</style>
|
||||
}
|
||||
|
||||
// --- Helpers ---
|
||||
|
||||
func version() string {
|
||||
return appver.Version
|
||||
}
|
||||
|
||||
func initials(name string) string {
|
||||
if name == "" { return "?" }
|
||||
if len(name) == 1 { return name }
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue