Commit graph

622 commits

Author SHA1 Message Date
copilot-swe-agent[bot]
70c3ff8979
fix: billing game images - dropdown selector, auto-guess, proper URL resolution
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/28b4019a-734d-418e-8002-8c1ff0c0f564

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-03 23:03:03 +00:00
fa7e463895
Merge pull request #106 from GameServerPanel/copilot/fix-billing-admin-service-list-ui
Fix billing admin service list UI and customer server list rendering
2026-05-03 15:42:56 -07:00
copilot-swe-agent[bot]
a484974c06
fix: billing admin service list UI and customer server list display
- 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>
2026-05-03 22:39:49 +00:00
d5557a0145
Merge pull request #105 from GameServerPanel/copilot/fix-dayz-epoch-xml-cleanup
Fix billing login fatal error and clean up DayZ Epoch XML post_install
2026-05-03 15:35:33 -07:00
copilot-swe-agent[bot]
51e3bbe16d
fix: billing login fatal error (remove users_pass_hash UPDATE) and clean up DayZ Epoch XML post_install
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/ab0498eb-fc73-47ef-aec4-f20043320401

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-03 21:58:13 +00:00
692c276bc9
Update dayz_arma2co_win32.xml 2026-05-03 14:46:25 -07:00
04de729227
Merge pull request #104 from GameServerPanel/copilot/fix-billing-services-sync-admin-page
Fix billing_services sync: source from config_homes (one row per game), not config_mods
2026-05-02 14:38:00 -07:00
copilot-swe-agent[bot]
ea995dc3b8
fix: sync billing_services from config_homes (one row per game), not config_mods
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/007e3cab-f414-4c90-864c-e820a847b637

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 21:28:46 +00:00
2686174609
Merge pull request #103 from GameServerPanel/copilot/fix-batch-of-errors
Fix array offset on false, array-to-string, and missing INSERT columns in billing sync
2026-05-02 13:44:55 -07:00
copilot-swe-agent[bot]
d57e3d0152
Fix: array offset on false in getNextAvailablePort, array-to-string in render_node attributes, missing columns in sync_billing_services INSERT
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/5bf3f57e-9174-4768-ae8b-c3526a1daeca

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 20:42:46 +00:00
1b0cddc818
Fix SQL query syntax in monitor_buttons.php 2026-05-02 16:36:13 -04:00
735322b8bc removed extras module 2026-05-02 16:20:19 -04:00
7a01838802
Modify download links and extraction commands
Updated download URLs and extraction commands in the post-install section.
2026-05-02 16:14:49 -04:00
956544ded8
Merge pull request #102 from GameServerPanel/copilot/fix-database-billing-prefix-issues
fix: consolidate module DB schemas to single baseline, fix billing prefix/undefined-var issues
2026-05-02 13:05:13 -07:00
copilot-swe-agent[bot]
ffece9ba57
fix: address code review nits - table name escaping, prefix fallback, gamemanager default, admin.php site vars
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/35af6b7c-2518-4105-b4d2-ba1f3fe754cd

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 19:43:35 +00:00
copilot-swe-agent[bot]
d8972fee16
fix: consolidate module schemas to db_version=1, fix billing admin undefined vars and prefix
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/35af6b7c-2518-4105-b4d2-ba1f3fe754cd

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 19:41:22 +00:00
95e3f40021
Merge pull request #101 from GameServerPanel/copilot/fix-config-editor-billing-sync-errors 2026-05-02 08:43:21 -07:00
copilot-swe-agent[bot]
744964ac60
fix: address code review nits - simplify array_map lambda and clarify empty remote_server_id
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e8bfe531-e1ff-4257-b49c-f8376b84e772

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 15:42:09 +00:00
copilot-swe-agent[bot]
3024e41121
fix: config editor array-to-string warning and billing description INSERT failure
- 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>
2026-05-02 15:41:20 +00:00
04dc98380b
Merge pull request #100 from GameServerPanel/copilot/fix-billing-database-target
Fix billing DB target safety + replace service-remote-server mapping table with CSV column
2026-05-02 08:26:11 -07:00
c5d64420dd
Update dayz_epoch_mod_win32.xml 2026-05-02 08:25:25 -07:00
copilot-swe-agent[bot]
8a832b0eac
fix: remove unused $type variable in adminserverlist.php flash loop
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/0b960e6d-bdf7-4b5b-8114-6c63e6b11a8d

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 15:22:58 +00:00
copilot-swe-agent[bot]
3219ed335e
fix: billing DB safety, remove mapping table, sync services from game config
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/0b960e6d-bdf7-4b5b-8114-6c63e6b11a8d

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 15:22:13 +00:00
6465632097
Merge pull request #99 from GameServerPanel/copilot/remove-legacy-install-methods
Remove rsync/manual install methods; standardize SteamCMD pipeline; fix Update button
2026-05-02 08:12:35 -07:00
copilot-swe-agent[bot]
61f6e517ec
fix: improve script-only install messaging and add error logging for exec() calls
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/9c87b62e-17b2-4f36-9b49-82238d73dda2

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 15:09:43 +00:00
copilot-swe-agent[bot]
75e63475ae
feat: remove legacy rsync/manual install methods, standardize SteamCMD pipeline, fix Update button
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/9c87b62e-17b2-4f36-9b49-82238d73dda2

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 15:08:38 +00:00
43877bbd9e
Merge pull request #98 from GameServerPanel/copilot/update-module-wording-fix-billing-redesign
Update module rebranding (GitHub Stable/Unstable) + billing matrix redesign
2026-05-02 07:56:46 -07:00
copilot-swe-agent[bot]
7f6fe9a39a
fix: address code review - prepared stmt, first-radio auto-select, remove unused var, clarify comment
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/4a9c8aab-3782-44a8-a5e4-01b50a813cc0

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 14:52:30 +00:00
copilot-swe-agent[bot]
b3d677035b
feat: update wording (GitHub Stable/Unstable) + billing matrix redesign
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/4a9c8aab-3782-44a8-a5e4-01b50a813cc0

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 14:50:25 +00:00
bedffde371
Merge pull request #97 from GameServerPanel/copilot/fix-billing-admin-errors 2026-05-02 07:19:56 -07:00
copilot-swe-agent[bot]
f4f222953f
fix: address code review feedback on billing admin fixes
- menu.php: remove unnecessary @ suppression from mysqli_thread_id()
  (instanceof check already guarantees a mysqli object)
- adminserverlist.php: split ternary flash message into separate if/else
  for readability; replace dynamic SQL fragment with explicit if/else
  query branches

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/988997ed-7568-48bf-96ef-889fb5d91fec

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 13:41:13 +00:00
copilot-swe-agent[bot]
bb77620796
fix: resolve 3 billing admin errors and normalize remote_servers query
- 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>
2026-05-02 13:40:10 +00:00
59a7eef4bd
Merge pull request #96 from GameServerPanel/copilot/fix-harden-billing-module 2026-05-02 06:17:40 -07:00
copilot-swe-agent[bot]
fcc54cb2da
style: clean up string concatenation in config_loader.php
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/a3e1e4bb-8eb1-4e6e-b1f8-7f3952301231

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 13:16:40 +00:00
copilot-swe-agent[bot]
1247e5e7ca
fix: harden billing module for standalone portability
- config_loader.php: prefer local billing config FIRST (root cause fix)
  - was: panel config loaded first, overriding local config with wrong db name
  - now: local modules/billing/includes/config.inc.php always wins when present
- config.inc.php: add $db_port="3306"
- config.example.php: new example config with all variables documented
- menu.php: add $db_port to mysqli_connect
- admin_auth.php: add $db_port; remove hardcoded /_website path detection
- bootstrap.php billing_get_db(): add $db_port
- login.php: fix /_website path detection
- adminserverlist.php: add $db_port; fix hardcoded /modules/billing/ URL
- All other mysqli_connect calls: add isset($db_port) port parameter
  (my_servers, forgot_password, serverlist, server_status, order, register,
   reset_password, payment_success, my_account, admin_invoices, admin_payments,
   diag_remote, admin_coupons, test_db_connection, tools/check_db_user,
   renew_server)
- timestamp.txt: updated

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/a3e1e4bb-8eb1-4e6e-b1f8-7f3952301231

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 13:15:50 +00:00
834d56a506
Merge pull request #95 from GameServerPanel/copilot/import-open-game-panel-modules-themes 2026-05-02 06:07:00 -07:00
copilot-swe-agent[bot]
b17ead27a6
feat: import 9 missing OGP themes (Evolution, Soft, mobile, Uprise, Silver, Katiuska, expand-soft, DarkNature, Metro)
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/491e883b-1dc5-4ca0-83bf-39faa9060c34

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 13:05:52 +00:00
3e9dca1bc1
Merge pull request #94 from GameServerPanel/copilot/add-cleanup-and-pr-review-tasks
chore: remove 22 stray backup/duplicate files; review and document Copilot PRs #66–#93
2026-05-02 05:57:32 -07:00
copilot-swe-agent[bot]
d4332808e6
chore: remove 22 stray backup files (.bak/.BAK/.orig/.backup); update CHANGELOG and timestamp
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/fe14a5ef-8993-48c4-a867-17971b58ac92

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 12:51:18 +00:00
02fd03539e
Merge pull request #93 from GameServerPanel/copilot/refactor-billing-system 2026-05-02 05:29:32 -07:00
copilot-swe-agent[bot]
3066d9c75c
fix(billing): address code review issues - ALTER TABLE syntax, null period handling, type detection
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e8da2cb7-dbf1-4296-b25d-766f8e099581

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 12:23:23 +00:00
copilot-swe-agent[bot]
4a1b5bc725
fix(billing): address code review feedback
- Use DECIMAL instead of FLOAT for monetary columns in ALTER TABLE
- Simplify bind_param type string from concatenated to single literal
- Validate payment_status against ENUM values before CSS class injection
- Add provisioning failure logging when panel bootstrap fails
- Add comment explaining total_due/amount legacy fallback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 12:19:32 +00:00
copilot-swe-agent[bot]
986a4e53b4
refactor(billing): clean architecture with payment gateway abstraction
- Add PaymentGatewayInterface contract for all payment providers
- Add PayPalGateway (reads credentials from config, not hardcoded)
- Add ManualGateway for admin-triggered payments
- Add StripeGateway stub for future implementation
- Add GatewayFactory for gateway instantiation by name
- Add BillingRepository: parameterized-SQL data layer
- Add BillingService: pricing, invoice creation, payment processing
- Add gsp_billing_transactions table (DB version 2) for audit trail
- Add new columns to gsp_billing_invoices (home_id, rate_type, players, period_start/end, subtotal, total_due, payment_status)
- Add gsp_billing_service_remote_servers mapping table
- Move PayPal credentials from api files into config.inc.php
- Fix double session_start() bug in capture_order.php
- Replace raw SQL with prepared statements throughout
- Refactor admin_invoices.php to use billing_invoices + BillingRepository
- Refactor admin_payments.php to read from gsp_billing_transactions
- Update admin.php with links to Transaction Log and Manage Invoices

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 12:17:36 +00:00
b0e00c9370
Merge pull request #92 from GameServerPanel/copilot/fix-database-connection-error 2026-05-01 17:45:03 -07:00
copilot-swe-agent[bot]
2fc3a1f8a7
Fix uncaught mysqli_sql_exception in PHP 8.1+ during install backup
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/e16b79db-af25-4a5f-828d-355ab71d8962

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 00:38:38 +00:00
0427f577c6
Merge pull request #91 from GameServerPanel/copilot/update-installer-dependencies-check 2026-05-01 17:32:23 -07:00
copilot-swe-agent[bot]
6ddc84700f
fix: correct dead ternary in check.php filesystem status logic
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/73ed1a44-9f9b-44d6-995a-706993bdef21

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 00:31:23 +00:00
copilot-swe-agent[bot]
2303175e56
fix: handle fopen failure gracefully and improve dep check severity
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/73ed1a44-9f9b-44d6-995a-706993bdef21

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-02 00:30:52 +00:00
d852a44a63
Merge pull request #90 from GameServerPanel/copilot/fix-deprecation-errors-unzip 2026-05-01 16:08:38 -07:00
copilot-swe-agent[bot]
b4cadbe30f
fix: replace deprecated zip_* functions and string interpolation in unzip.php (PHP 8.3)
Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/cc7d8d98-a257-470e-aa29-dff276024b1f

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
2026-05-01 23:06:56 +00:00