Commit Graph
85 Commits
Author SHA1 Message Date
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 317258142e fix: accept optional trailing slash in player info route
The URL has a trailing slash but [^/]+) with $ anchor rejected it.
Added \/?$ to make the trailing slash optional.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:50:23 +02:00
angryzeroandCopilot 93a6cb09e4 fix: player info regex greedily captured trailing slash
The regex .+) matched '76561198984102849/' instead of just the
SteamID. Changed to [^/]+) which stops at the trailing slash.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:49:41 +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 d45ca5c67a feat: console/chat/playerlist use full viewport height
Replaced fixed 600px output heights with calc(100vh - 130px)
so console and chat logs fill the available space. Added min-height
to player list table so it doesn't look empty with few players.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:45:52 +02:00
angryzeroandCopilot 270b303be0 refactor: remove redundant hostname heading from server tab
The server name is already shown in the navbar — no need to
repeat it as a heading on the page.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:44:26 +02:00
angryzeroandCopilot 3dbed2bbf6 style: add bottom margin to navbar
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:43:36 +02:00
angryzeroandCopilot 94517a0ef4 fix: players donut uses more space with tight margins
Reduced pie chart margins from 75px to 5px and moved labels
inside the donut (.donutLabelsOutside(false)) so the chart
fills the available card width instead of being squeezed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:40:57 +02:00
angryzeroandCopilot 381b100f23 fix: equal chart heights + single toggle for bottom row
- Players donut now same height as network chart (250px)
- Removed redundant Players toggle button
- Network toggle now collapses both cards via shared .bottom-row class

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:39:46 +02:00
angryzeroandCopilot 752ee008ff refactor: players donut beside network chart (1/4 + 3/4)
Moved Players card before Network, placed side by side in a row:
col-sm-3 for the donut, col-sm-9 for the networking area chart.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:38:18 +02:00
angryzeroandCopilot aae26dc36f style: glass cards + light chart text
- Cards: replaced solid #1e1330 bg with semi-transparent glass
  (backdrop-filter blur + subtle purple border)
- NVD3: overridden all chart text from black to rgba(255,255,255,0.85)
  including axis labels, ticks, legends, and pie labels
- Axis lines toned down to barely-visible for a cleaner look

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:35:53 +02:00
angryzeroandCopilot 396d45fb4e style: mystical dark palette — deeper bg + purple chart colors
- Body/card backgrounds tinted deep purple (#120918 / #1e1330)
  instead of sterile gray-blue
- Chart colors: fuchsia+cyan for performance, violet+amber for
  network, layered purples for the players donut

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:34:20 +02:00
angryzeroandCopilot 7010562dae style: deeper purple + remove redundant page title
- Darkened primary from #8b5cf6 to #6d28d9 (violet-700) to better
  complement the dark theme
- Removed <h1> page title — the sidebar active highlight already
  tells you which tab you're on
- Cleaned up related CSS and elTitle plumbing in app.js

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:32:11 +02:00
angryzeroandCopilot dc39322fa3 style: mystical purple primary + container-fluid full-width
- Override Bootstrap 5.3 dark-theme --bs-primary to #8b5cf6 (violet)
- Update rcon.css accent, sidebar, and focus-ring to match purple
- Switch all containers from fixed-width to container-fluid

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:30:42 +02:00
angryzeroandCopilot f4e7dd5bb6 fix: empty server page on reload with cached connection
Router.go() sets window.location.hash, but when the hash already
matches (e.g. F5 reload at /#/addr/info then clicking a saved
connection), hashchange doesn't fire and the router never re-renders.
Switched to Router.navigate() which processes the route directly
regardless of current hash.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:26:08 +02:00
angryzeroandCopilot ae9176656b fix: server info fields now display in 3-column grid
Added 'row' class to #si-fields wrapper so Bootstrap col-sm-4 children
arrange horizontally instead of stacking vertically.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:22:40 +02:00
angryzeroandCopilot b9364119da fix: serverInfo page shows data immediately on load
Eliminated redundant serverinfo RCON polling from the serverInfo page.
It now subscribes to the header's serverinfo-update CustomEvent instead.

Key changes:
- app.js: cache last serverinfo in window._lastServerInfo and dispatch
  serverinfo-update event so pages can pick up data immediately
- serverInfo.js: replaced setInterval-based polling with event listener
  plus immediate _lastServerInfo cache check, eliminating the initial
  blank page state and duplicate RCON requests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:20:55 +02:00
angryzeroandCopilot 27d67f73aa fix: start polling synchronously, decoupled from nv.addGraph
Move startPolling() before nv.addGraph calls so it fires immediately
after DOM setup. This eliminates the race where nv.addGraph's async
render loop could delay or silently swallow the polling start. Charts
still initialize via nv.addGraph and have null guards in updateCharts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:19:03 +02:00
angryzeroandCopilot 7ea16d4677 fix: defer startPolling until all NVD3 charts initialized
nv.addGraph uses setTimeout internally, so chart models may not exist yet
when the first WebSocket response arrives. Moved startPolling() into the
last nv.addGraph callback to guarantee charts are ready before data flows.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:10:04 +02:00
angryzeroandCopilot 3e3f908c9e fix: remove .duration() calls from multiChart and stackedAreaChart
NVD3 1.8.1 on CDN doesn't expose .duration() on multiChart or
stackedAreaChart top-level models. Duration is set via sub-components
(.lines1.duration, .lines2.duration) which are already present.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:06:02 +02:00
angryzeroandCopilot d68639e591 fix: remove orphaned duplicate netChart code causing SyntaxError
Lines 88-103 were a duplicate of the stackedAreaChart setup floating
outside any function — the stray }); at line 103 had no matching open
brace. Removed the 16 orphaned lines.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:03:26 +02:00
angryzeroandCopilot 7847f6e6ae fix: NVD3 1.8.1 API compat, null guards, missing brace
- Removed useInteractiveGuideline (not in NVD3 1.8.1 on CDN)
- Added null guards in updateData + updateCharts for navigation-away
- Fixed missing closing brace in updateCharts if block

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 18:02:14 +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 19c5247c90 fix: router add() signature, setActivePage typo, connect race condition
- Router.add() now takes 3 params (pattern, title, onEnter) matching app.js usage
- Fixed setActiveSidebar → setActivePage in all route callbacks
- Removed premature hash-setting from connect.js — app.js now sole navigator
  (was firing router into a hidden container before showConnected ran)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 17:57:48 +02:00
angryzeroandCopilot c5679feb82 fix: navbar single-line, chart sizing, text visibility
- Removed hamburger menu — all stats inline on one navbar row
- Disconnect button at top-right (ms-auto)
- Added data-bs-theme=dark for proper BS5 dark mode text inheritance
- Restored explicit width/height on chart SVGs (required by NVD3)
- Changed text-muted → text-white-50 for field labels on dark bg
- Added flex-nowrap to navbar container
- Overrode --bs-body-bg to maintain original dark shade

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 17:56:05 +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
angryzero 0fd94044a8 init 2026-06-13 17:31:24 +02:00
Garry Newman 3d8b4e0fea Should fix XSS mentioned in #32 2021-02-20 11:37:58 +00:00
Garry Newman 757dc3bd95 Merge pull request #22 from alexfriesen/improve-serverinfo
Serverinfo performance monitoring
2017-08-17 09:37:25 +01:00
alexfriesen cab65aeab7 change charts
change data collection
charts are collapsible
show fps and entity count in one chart
improve network chart
add player chart (queued, joining, playing, free)
2017-04-25 19:03:03 +02:00
alexfriesen 12a5ec279b add performance graphs to serverinfo
move serverinfo-bar to seperate file
add serverinfo fps chart 
add network i/o chart
2017-04-23 21:28:37 +02:00
Garry Newman 24b0898d86 Merge pull request #17 from braktar/gh-pages
Fix playerlist dropdown
2017-04-22 10:20:55 +01:00
Garry Newman edb79a829b Merge pull request #21 from alexfriesen/feature-disconnect
Feature: disconnect
2017-04-22 10:20:17 +01:00
alexfriesen 39960aa897 move disconnect button to nav-header
moved disconnect button to nav-header
fix navbar (responsive again)
replace custon classes with bootstap classes
2017-04-21 15:45:55 +02:00
alexfriesen a02a57bf99 add Disconnect
added disconnect feature
auto formatted js/html code
2017-04-21 15:06:52 +02:00
alexfriesen cbe2b27e28 add command to start dev http server
you can use a simple node http server to start a http server for development on localhost:8888.
also added generic nodejs gitignore
2017-04-21 14:02:39 +02:00
Garry Newman 465a8a1631 Merge pull request #19 from Dids/gh-pages
Removed XP remnants and fixed violation level spelling
2017-03-27 15:57:36 +01:00
Pauli Jokela aefea1feeb Fixed violation level spelling and removed XP remnants from the player info screen 2017-03-25 12:49:36 +02:00
Braktar 77ff71d32e Fix playerlist dropdown 2017-03-04 15:22:23 +01:00
Garry Newman aefbb0d7b5 Merge pull request #15 from Dids/gh-pages
Strip HTML tags from chat messages
2017-02-20 11:44:23 +00:00
Pauli Jokela 20611e26f8 Strip HTML tags from chat messages 2017-02-20 13:35:52 +02:00
Garry Newman 26e8ce7cfd Merge pull request #14 from Scrxtchy/gh-pages
Fix 'Mixed active content' errors
2016-12-29 10:32:53 +00:00
Scratch 84fb8e61a4 fetch angular over https 2016-12-29 11:27:04 +11:00
Garry Newman 38c33be89e Merge pull request #11 from Dids/gh-pages
Fixed potential issues and cleaned up old unused stuff
2016-12-16 19:52:10 +00:00
Pauli Jokela 740216d64b Cleanup 2016-12-16 21:44:30 +02:00
Pauli Jokela 3fcc651262 Error fixing and code cleanup 2016-12-16 21:44:07 +02:00
Garry Newman 2da3351935 Nice header with server status, better chat layout 2016-07-11 09:57:17 +01:00