10 Commits
Author SHA1 Message Date
angryzeroandCopilot 8f49d3bf18 feat: add quick-reward buttons to player page
Jackpot (scrap 500), Santa Claus (supply.signal 1), Care Package
(l96.weapon 1), Emergency Heal (large.medkit 3), and Loot Reset
(server.fill_groups - map-wide, with confirm dialog).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 19:06:08 +02:00
angryzeroandCopilot 1ecb7488fe fix: use vanilla Rust commands, add Give Item + Teleport
Switched to global.kill (vanilla), removed plugin warnings from both
buttons. Added inventory.giveto (prompts shortname + amount) and
entity.teleport (prompts target SteamID). Split actions into two rows:
player actions + admin roles. Added .btn-outline-purple CSS.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 19:05:25 +02:00
angryzeroandCopilot aa9bd725aa fix: guard against page-navigation race + deprecation warning
- playerInfo refresh() now early-returns if DOM elements are gone
  (happens when navigating away while getPlayers RCON is in flight)
- swiched donutLabelsOutside(false) → labelsOutside(false) to
  silence NVD3 deprecation warning

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:56:51 +02:00
angryzeroandCopilot e2e766378b feat: add fun/admin actions to player info page
Added button group below stats: Kill, Heal, Moderator, Owner.
- Kill/Heal are plugin-dependent (kill/heal commands)
- Moderator/Owner are standard Rust RCON (moderatorid/ownerid)
- Buttons hidden until player is confirmed online
- Confirm dialogs on all destructive actions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:55:46 +02:00
angryzeroandCopilot a9667bdea2 fix: player Position field showing [object Object]
Rust RCON returns Position as {x, y, z} object. Now formatted as
'x:123.4 y:56.7 z:89.0' instead of the default toString() garbage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:54:16 +02:00
angryzeroandCopilot 5f25974cf2 feat: hide IP addresses by default, click to reveal
Added maskIp() helper that replaces IPs with ••••••••. A global
delegated click handler reveals the address on click. Applied to:
- Player list 'Address' column
- Player info 'Address' field

Styled .ip-masked with dimmed text and purple hover glow.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:53:18 +02:00
angryzeroandCopilot eaa908336d fix: player info 3-col grid layout + add Kick/Ban actions
- Wrapped col-sm-4 fields in proper row/col hierarchy (removed
  conflicting col+row on same element, now col-lg-12 > row > col-sm-4)
- Replaced d-grid Steam Profile button with btn-group containing
  Steam Profile, Kick (confirm dialog), and Ban (prompt for reason)
- Removed redundant 'Info' heading

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:51:57 +02:00
angryzeroandCopilot 7386e9f8cb fix: player info page shows 'not connected' for online players
SteamID from RCON JSON is parsed as a Number, but the URL param
from the regex match is a string. Strict === comparison always fails.
Changed to String() coercion so types match.

Also fixes subtle issue with large SteamID64 values exceeding
MAX_SAFE_INTEGER — string comparison avoids precision loss.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:48:29 +02:00
angryzeroandCopilot 1bfca0d1e0 fix: add loading indicators to all pages
- 'Loading…' shown in charts/fields/output areas while waiting for server response
- Console + chat: clears loading state on first output line
- Player list: table body shows loading row until refresh completes
- Player info / Server info: fields show loading until data arrives

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:00:31 +02:00
angryzeroandCopilot 0a178d17b9 feat: full de-Angularization with Bootstrap 5 migration
- Removed AngularJS 1.4.8 completely — no more framework dependency
- Extracted core RCON logic into pure vanilla JS (js/rcon.js)
- Added lightweight hash-based SPA router (js/router.js)
- Rewrote all 6 pages as vanilla JS modules in js/pages/
- Migrated Bootstrap 3 → Bootstrap 5 (cards instead of panels, bootstrap-icons instead of glyphicons)
- Removed jQuery dependency (Bootstrap 5 is vanilla JS)
- Purged all Angular templates from html/
- Removed npm artifacts (package.json, node_modules)
- Added nginx.example.conf for static hosting
- Updated rcon.css dark theme for BS5 variables
- Static file only — no Node.js backend required

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 17:51:50 +02:00