feat: enable Electron App download button with Windows/macOS links, remove "processed 6 at a time" text

This commit is contained in:
Zac Gaetano 2026-04-08 22:59:09 -04:00
parent 340837fa72
commit 02b67f2b6a

View file

@ -382,6 +382,7 @@ body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellips
.toast.success{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.25);color:var(--success)}
.toast.error{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.25);color:var(--error)}
.toast.info{background:rgba(30,75,216,.1);border-color:rgba(30,75,216,.25);color:var(--blue-bright)}
.dl-item{display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--text-primary);text-decoration:none;border-radius:6px;font-size:.85rem;font-weight:600;white-space:nowrap}.dl-item:hover{background:var(--bg-hover)}.dl-item span{margin-left:auto;color:var(--text-dim);font-size:.75rem}
</style>
</head>
<body>
@ -464,12 +465,11 @@ body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellips
<div style="margin-top:1.5rem;margin-bottom:1.25rem">
<div style="display:flex;gap:.5rem;margin-bottom:.75rem">
<button class="mode-btn active-http" id="btn-http" onclick="setMode('http')">🌐 HTTP Mode</button>
<button class="mode-btn" id="btn-udp" disabled style="opacity:.4;cursor:not-allowed;pointer-events:none">🖥️ Electron App</button>
<div style="position:relative;display:inline-block"><button class="mode-btn" id="btn-udp" onclick="toggleDlMenu(event)">🖥️ Electron App &#9660;</button><div id="dl-menu" style="display:none;position:absolute;top:110%;left:0;background:var(--bg-card);border:1px solid var(--border-bright);border-radius:8px;padding:6px;z-index:100;min-width:210px;box-shadow:0 8px 24px rgba(0,0,0,.4)"><a class="dl-item" href="https://github.com/Acsriot94/dragon-wind-desktop/releases/download/v0.1.0/Dragon.Wind.Setup.0.1.0.exe">&#x1FA9F; Windows <span>.exe</span></a><a class="dl-item" href="https://github.com/Acsriot94/dragon-wind-desktop/releases/download/v0.1.0/Dragon.Wind-0.1.0-arm64.dmg">&#x1F34E; macOS <span>.dmg</span></a></div></div>
</div>
<div class="mode-desc" id="mode-desc" style="margin-bottom:0">
<strong id="mode-label">HTTP Mode:</strong> <span id="mode-detail">Direct-to-S3 upload via presigned URLs. Browser uploads straight to storage, bypassing the server. Files are processed 6 at a time.</span>
<strong id="mode-label">HTTP Mode:</strong> <span id="mode-detail">Direct-to-S3 upload via presigned URLs. Browser uploads straight to storage, bypassing the server.</span>
</div>
<div style="text-align:right;margin-top:.3rem;font-size:.7rem;color:var(--text-dim);opacity:.6">Electron App — Aspera-speed desktop application (coming soon)</div>
</div>
<div style="margin-bottom:1.5rem">
@ -946,7 +946,7 @@ function setMode(mode) {
if (mode === 'http') {
btn.className = 'btn-upload';
if (label) label.textContent = 'HTTP Mode:';
if (detail) detail.textContent = 'Direct-to-S3 upload via presigned URLs. Browser uploads straight to storage, bypassing the server. Files are processed 6 at a time.';
if (detail) detail.textContent = 'Direct-to-S3 upload via presigned URLs. Browser uploads straight to storage, bypassing the server.';
if (hint) hint.style.display = 'none';
if (btnHttp) { btnHttp.className = 'mode-btn active-http'; }
if (btnUdp) { btnUdp.className = 'mode-btn'; }
@ -1747,6 +1747,7 @@ function showToast(msg,type='info'){
function esc(s){return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');}
function fmtSize(b){if(b<1024)return`${b} B`;if(b<1048576)return`${(b/1024).toFixed(1)} KB`;if(b<1073741824)return`${(b/1048576).toFixed(1)} MB`;return`${(b/1073741824).toFixed(2)} GB`;}
function getFileIcon(name){const ext=name.split('.').pop().toLowerCase();if(['mp4','mov','mxf','mkv','avi','r3d','braw','mts','m2ts','prores'].includes(ext))return'🎬';if(['mp3','wav','aac','flac','aiff','m4a'].includes(ext))return'🎵';if(['jpg','jpeg','png','tiff','exr','dpx','arw','cr2','dng','psd'].includes(ext))return'🖼️';return'📄';}
function toggleDlMenu(e){e.stopPropagation();var m=document.getElementById("dl-menu");m.style.display=m.style.display==="none"?"block":"none";}document.addEventListener("click",function(){var m=document.getElementById("dl-menu");if(m)m.style.display="none";});
</script>
</body>
</html>