feat: dashboard strip HS source consistency + PineAP→Attacks cross-link banner

This commit is contained in:
2026-08-18 21:48:58 -05:00
parent d134e94cb8
commit 7b7a1d2dbd
2 changed files with 11 additions and 1 deletions
@@ -268,7 +268,7 @@
<script src="js/xterm-addon-fit.min.js"></script>
<script src="js/terminal.js"></script>
<script src="js/pager.js"></script>
<script src="js/views.js?v=20260818-4"></script>
<script src="js/views.js?v=20260818-5"></script>
<script src="js/app.js?v=20260818-3"></script>
</body>
</html>
@@ -153,6 +153,11 @@ views.dashboard = (root) => {
liveCards.attacks.style.color = wpa === 'LIVE' || open === 'LIVE' || ent === 'LIVE'
? 'var(--primary)' : '';
}).catch(() => {});
PagerAPI.get('/api/pineap/handshakes').then((r) => {
const hs = (r.data.files || []).length;
const cur = liveCards.attacks.textContent.replace(/HS \d+/, 'HS ' + hs);
liveCards.attacks.textContent = cur;
}).catch(() => {});
PagerAPI.get('/api/health').then((r) => {
const h2 = r.data || {};
liveCards.health.textContent = (h2.pineap_up ? 'pineapd up' : 'pineapd DOWN') +
@@ -330,6 +335,11 @@ views.pineap = (root) => {
modeRow.appendChild(modeCard);
modeRow.appendChild(quickCard);
box.appendChild(modeRow);
box.appendChild(h('div', { class: 'pineap-infobox info' },
h('span', { text: 'For one-click Evil WPA / Open AP / Enterprise attacks, use the Attacks section — it deploys, enables karma, verifies on-device and captures loot automatically.' }),
h('div', { class: 'pineap-infobox-actions' },
h('a', { class: 'btn ghost', href: '#/attacks', style: 'text-decoration:none',
onclick: (e) => { e.preventDefault(); App.go('#/attacks'); } }, 'Go to Attacks'))));
const cards = { karma: {}, open: {}, wpa: {} };
const cardWrap = h('div', { class: 'pineap-title-card-container' });