Launcher polish: monogram reveal-on-failure + app placeholder on every icon surface (v0.163.1)
(A) The launcher monogram bled through every transparent white logo — it rendered unconditionally under the img. Now hidden by default (.launch-mono display:none), revealed only when the img chain fails (onerror adds .launch-tile--noimg). (B) The /static/app-placeholder.svg default reached only app_list_row. The four other sanctioned app-logo onerror chains now match the canonical SVG->PNG->placeholder grammar: backups_apps (aligned row), stacks (infra->infra-logo else placeholder), app_info hero (screenshots still vanish), deploy (keeps .LogoURL/.LogoPNGURL). Template/CSS only; no handler/funcmap change. 5 tests + 2 red-proofs.
This commit is contained in:
@@ -139,10 +139,12 @@
|
||||
<div class="app-backup-row" data-status="{{.Status}}">
|
||||
<!-- Aligned to the shared app-row grammar (icon + name left, status + chevron right);
|
||||
the expander behavior is untouched — this header is the one allowlisted aligned
|
||||
copy in scripts/app_row_dedup_gate.py, NOT a partial render (it owns the toggle). -->
|
||||
copy in scripts/app_row_dedup_gate.py, NOT a partial render (it owns the toggle).
|
||||
The icon chain matches app_row.html: SVG -> PNG -> /static/app-placeholder.svg, so a
|
||||
logo-less app shows the placeholder here too instead of a hidden dead-end (v0.163.1). -->
|
||||
<div class="app-backup-row-header" onclick="toggleBackupDetail(this)">
|
||||
<img class="app-row-icon" src="{{logoURL .Slug}}" alt=""
|
||||
onerror="this.onerror=function(){this.style.visibility='hidden'};this.src='{{logoPNGURL .Slug}}'">
|
||||
<img class="app-row-icon" src="{{logoURL .Slug}}" alt="" data-fallback="/static/app-placeholder.svg"
|
||||
onerror="if(!this.dataset.step){this.dataset.step='1';this.src='{{logoPNGURL .Slug}}';}else if(this.dataset.fallback&&this.dataset.step==='1'){this.dataset.step='2';this.src=this.dataset.fallback;}else{this.onerror=null;this.style.visibility='hidden';}">
|
||||
<span class="app-backup-row-name">{{.DisplayName}}</span>
|
||||
<div class="app-backup-row-meta">
|
||||
{{if .DriveDisconnected}}
|
||||
|
||||
Reference in New Issue
Block a user