feat: dashboard strip HS source consistency + PineAP→Attacks cross-link banner
This commit is contained in:
@@ -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' });
|
||||
|
||||
Reference in New Issue
Block a user