The admin screens
A tour of the seven forex admin screens — how to read the dashboard's currency pools and ageing queues, what each table can and cannot do, and the guards that refuse a destructive action.
Everything is at /admin/forex, reached from Admin → Extensions →
Investment Products → Forex Broker & Investments. Seven screens, one
navigation bar across the top of all of them, and no settings page — the
Extensions screen is the on/off switch and everything else is configured on
the plan, duration or account row.
The dashboard
/admin/forex. Gated on access.forex.
It refreshes every sixty seconds, in place, and only while the tab is visible. A live indicator reports live, updating or stale, and it goes stale the moment a refresh fails — so a green dot can never sit above a clock that stopped advancing. A failed background refresh leaves the figures you were reading on screen and raises a notice rather than blanking the page.
The decision band
The first thing on the page is the two things waiting on you: deposits awaiting approval and withdrawals awaiting approval, each linking to its queue.
Each carries the age of the oldest item still waiting, not just a count — a count tells you there is work, only an age tells you any of it is late. The ages are scored against the platform's own waiting-time targets, 72 hours for a deposit and seven days for a withdrawal, so the dashboard can never say "fine" about something the rest of the platform calls late. A marker that does not rely on colour appears past half the target and a different one past the target itself.
An admin who can see the dashboard but is not granted access.forex.deposit or
access.forex.withdraw sees the count with the age reported as unavailable. It
never falls back to reading like "nothing is old". The age costs one extra
request per queue and only when that queue is not empty, so a quiet desk costs
exactly one request per refresh.
Reading the money figures
The unit of account lives on the plan the investment was bought against.
Adding investment amounts across plans denominated differently produces a
number that does not exist — a book holding 1.5 BTC and 50,000 USD once
published 50,001.5 with a dollar sign on it.
Every money figure on this page is therefore grouped by the plan's currency:
- The headline tile is the largest single pool, named. When more than one pool holds capital the tile reads Largest capital pool rather than Total investments, and the page states how many pools there are before you read the first tile.
- Settled profit and loss is listed one row per currency, signed, so a losing pool reads as a loss. Up to three are shown with the count of any remainder. There is deliberately no "and the rest" row, because that row would be the cross-currency sum this design exists to stop publishing.
- Each plan's share of the book is a share of its own currency pool. Plans are listed under the pool they belong to, largest pool first.
- The volume chart plots one currency — the largest pool — and says which.
On a single-currency install none of that changes any number; it only labels them. On a mixed-currency install the headline figure is smaller than the cross-currency sum an older build published, and the per-plan percentages are completely different.
Figures in a currency whose code is not a standard three-letter one — USDT is
the common case — are rendered with the code in front of the number rather than
being forced into a symbol.
The rest of the page
- Registry row — live accounts, demo accounts, plans and signals, each with the number active, and each linking to the screen that owns it. The tile is labelled Plans, not Active plans: the figure counts every plan on the platform.
- Investment volume chart — the only thing on the page that moves with the timeframe picker, which is why the picker sits on the chart's own toolbar. Everything else is an all-time total.
- Recent investments — the five most recent, with an age rather than a
formatted date, each row naming its own currency. An investment that has not
settled shows no profit or loss rather than
+0.00in gain ink. - Win / loss / draw counts and a win rate over completed investments.
Investments settled before v6.1.2 store a loss as a positive number beside a
LOSS result. The recent-investments list printed that number with a + in
front of it, in gain ink, in the same row whose result column read Loss —
and the overall profit total the dashboard published was summed the same way,
so a losing book totalled as a gain of identical size.
Both are corrected. Do not reconcile against any profit figure you read off this screen before that release.
A dashboard that cannot load keeps its header and offers direct routes to both queues alongside Retry, and renders no figures at all — a full console of zeros under an error banner is a set of claims the page cannot support.
Accounts
/admin/forex/account. Create, view, edit, delete, per-row status toggle and
bulk status changes.
This is where you pre-provision the account pool, fill in broker credentials and adjust withdrawal caps. The full behaviour is in Accounts. Two things the table will refuse:
- A second account of the same type for one customer — a 409 naming the existing account. Every lookup in the addon reads this user's LIVE account with no ordering, so a duplicate makes it arbitrary which row is debited.
- Nothing else. Deletion is unguarded here, so remember that removing an account whose customer still holds active investments leaves those investments with nowhere to settle into.
Plans and durations
/admin/forex/plan and /admin/forex/duration. Create, view, edit, delete,
status toggle and bulk status changes on both.
Covered in full in Plans and durations. The guards:
- Contradictory numbers are refused before the row is written — inverted amount limits, inverted profit ranges, a negative anywhere, or a profit percentage outside the plan's own advertised band.
- Deleting a plan or duration is refused while active investments use it. A permanent delete is refused while any investment references it, settled ones included: the foreign keys cascade at the database level, so a hard delete takes the historical rows your accounting is built from with it.
Investments
/admin/forex/investment. View, edit, delete, status changes, bulk status
changes and Recover. There is no Create button.
The behaviour is in Investments. What this screen refuses:
- Editing the amount — the principal has already been collected. Cancel, which refunds, and create a new investment.
- Deleting an active investment — the message names how much principal the selection is holding.
- Recovering an investment the customer can no longer fund — recovery reclaims the cancellation refund first, and refuses when the balance will not cover it.
Every path that moves an investment out of ACTIVE — the row action, the edit
dialog and the bulk selector — refunds the principal in the same transaction as
the status change.
Signals
/admin/forex/signal. Create, view, edit, delete, status toggle and bulk
status changes.
Creating a signal does not put it in front of anybody. Assignment is a separate API call per account, described in Signals.
Deposits and withdrawals
/admin/forex/deposit and /admin/forex/withdraw, both reading core's
transaction table filtered to FOREX_DEPOSIT and FOREX_WITHDRAW. These are
the two money queues and they have their own page —
Deposits and withdrawals. Read it before you
touch either.
One frame across all seven
Every forex admin screen shares a header, navigation bar and footer, and the licence check gates the page content rather than the whole application — so the frame stays put while a licence request is in flight instead of the entire back office being replaced by a spinner and then redrawn.
If you are looking for a Quick Actions panel, it was removed: its six entries were Accounts, Plans, Investments, Signals, Deposits and Withdrawals, which is the same six links as the navigation bar directly above it.