MCPcopy Create free account
hub / github.com/cppla/ServerStatus / renderSSLCards

Function renderSSLCards

web/js/app.js:412–422  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

410 }).join('') || `<tr><td colspan="6" class="muted" style="text-align:center;padding:1rem;">无证书数据</td></tr>`;
411}
412function renderSSLCards(){
413 const wrap = $('sslCards');
414 if(window.innerWidth > 700){ wrap.innerHTML = ''; return; }
415 wrap.innerHTML = S.ssl.map(c => {
416 const cls = c.mismatch || c.expire_days <= 0 ? 'err' : c.expire_days <= 7 ? 'warn' : 'ok';
417 const status = c.mismatch ? '域名不匹配' : c.expire_days <= 0 ? '已过期' : c.expire_days <= 7 ? '将到期' : '正常';
418 const dt = c.expire_ts ? new Date(c.expire_ts * 1000).toISOString().slice(0,10) : '-';
419 const alertClass = cls === 'err' ? ' alert-critical' : cls === 'warn' ? ' alert-warning' : '';
420 return `<div class="card${alertClass}"><div class="card-header"><div class="card-title">${esc(c.name || '-')}</div><span class="status-pill ${cls === 'err' ? 'off' : 'on'}">${status}</span></div><div class="kvlist"><div><span class="key">域名</span><span>${esc(String(c.domain || '').replace(/^https?:\/\//,''))}</span></div><div><span class="key">端口</span><span>${esc(c.port || 443)}</span></div><div><span class="key">剩余</span><span>${esc(c.expire_days ?? '-')} 天</span></div><div><span class="key">到期</span><span>${dt}</span></div></div></div>`;
421 }).join('') || '<div class="empty-state">无证书数据</div>';
422}
423
424function openDetail(key){
425 S.openDetailKey = key;

Callers 2

renderFunction · 0.85
app.jsFile · 0.85

Calls 2

$Function · 0.85
escFunction · 0.85

Tested by

no test coverage detected