- adminserverlist.php: fix th color (dark bg #2c3e50 + light text #f0f0f0)
and add position:sticky to thead so header rows stay visible while scrolling
- adminserverlist.php: remove Out of Stock column from UI (thead, tbody),
save handler (no longer reads/writes out_of_stock), and sync logic
(soft-disable no longer sets out_of_stock = 1; new rows no longer insert it)
- adminserverlist.php: normalize price inputs to step=0.01 / 2 decimal places
- serverlist.php: fix foreach on mysqli_result cast bug that silently
prevented all services from rendering; now uses fetch_assoc() loop
- serverlist.php: add IS NOT NULL guard alongside the != '' check
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/3474562e-25f4-4d89-a030-f227e11b609b
Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
- config_servers.php: add gsp_normalize_config_value(), gsp_value_to_display_string(),
gsp_value_to_editable_string() helpers; replace (string)$attrValue cast at line 124
with gsp_value_to_editable_string() so PHP arrays from SimpleXML attribute iteration
never trigger "Array to string conversion" notices
- adminserverlist.php sync_billing_services(): add description column (= service name)
to INSERT so the query succeeds on databases where description is NOT NULL without
a default; add pre-flight col_exists() schema guard that shows a friendly admin
warning and aborts sync instead of crashing on completely missing columns
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e8bfe531-e1ff-4257-b49c-f8376b84e772
Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
- admin_config.php: guard session_start() — was firing Notice because
admin_auth.php → session_bridge.php already started the session
- includes/menu.php: check mysqli_thread_id() before reusing $db so a
closed handle does not cause 'mysqli object is already closed' fatal
- admin_invoices.php / admin_payments.php: set $db = null after
mysqli_close() so menu.php's reuse-check correctly falls through to
opening a fresh connection
- adminserverlist.php: use col_exists() to detect missing 'enabled'
column in gsp_remote_servers; fall back to constant 1 and display a
schema-notice banner; guard UPDATE accordingly; also add missing
price_daily / price_year columns to the services SELECT; remove
duplicate 'Update Enabled Servers' button
- add_remote_server_enabled_column.sql: idempotent migration to add the
'enabled' INT column to gsp_remote_servers on older installs
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/988997ed-7568-48bf-96ef-889fb5d91fec
Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>