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/xterm-addon-fit.min.js"></script>
|
||||||
<script src="js/terminal.js"></script>
|
<script src="js/terminal.js"></script>
|
||||||
<script src="js/pager.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>
|
<script src="js/app.js?v=20260818-3"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -153,6 +153,11 @@ views.dashboard = (root) => {
|
|||||||
liveCards.attacks.style.color = wpa === 'LIVE' || open === 'LIVE' || ent === 'LIVE'
|
liveCards.attacks.style.color = wpa === 'LIVE' || open === 'LIVE' || ent === 'LIVE'
|
||||||
? 'var(--primary)' : '';
|
? 'var(--primary)' : '';
|
||||||
}).catch(() => {});
|
}).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) => {
|
PagerAPI.get('/api/health').then((r) => {
|
||||||
const h2 = r.data || {};
|
const h2 = r.data || {};
|
||||||
liveCards.health.textContent = (h2.pineap_up ? 'pineapd up' : 'pineapd DOWN') +
|
liveCards.health.textContent = (h2.pineap_up ? 'pineapd up' : 'pineapd DOWN') +
|
||||||
@@ -330,6 +335,11 @@ views.pineap = (root) => {
|
|||||||
modeRow.appendChild(modeCard);
|
modeRow.appendChild(modeCard);
|
||||||
modeRow.appendChild(quickCard);
|
modeRow.appendChild(quickCard);
|
||||||
box.appendChild(modeRow);
|
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 cards = { karma: {}, open: {}, wpa: {} };
|
||||||
const cardWrap = h('div', { class: 'pineap-title-card-container' });
|
const cardWrap = h('div', { class: 'pineap-title-card-container' });
|
||||||
|
|||||||
Reference in New Issue
Block a user