HomeJournal Admin › Account

Account

Journal site-configuration screens: menu structure, custom expression overrides, related links, and subscription management. All dispatched from manager.php (role 6 / System Admin — the journal admin's own entry point) into per-feature classes (class/journal.menu.class.php, class/custom.lables.class.php, class/link.class.php, class/subscription.class.php).

Page Status E2E Enhanced Legacy Ref Route Roles
Customize Expressions Pending manager.php?_action=cstm_lb /manager?_action=cstm_lb Journal Admin (role 6)
Menu List Pending manager.php?_action=menu /manager?_action=menu Journal Admin (role 6)
Menu Add / Edit Pending request/manager.ajax.php?task=addMenu /request/manager.ajax?task=addMenu&id=0 Journal Admin (role 6); request/manager.ajax.php's own top gate (the only access check this screen actually goes through) accepts roles 4 and 16 too — see gating note
Related Links Pending manager.php?_action=link /manager?_action=link Journal Admin (role 6)
Subscription List Pending manager.php?_action=subscription /manager?_action=subscription Journal Admin (role 6)
Subscription Detail Pending manager.php?_action=subscription&subs=... /manager?_action=subscription&subs=<subs_code> Journal Admin (role 6)

Features

FeatureStatusE2EDescription
Admin can view the journal's navigation menu as a two-level tree (top-level items and submenus) showing title, target link, and enabled/disabled status Pending manager?_action=menu lists ju_menu rows ordered by menu_order; children are rendered nested under each parent (apps/legacy/js/class/journal.menu.class.php:240-257, view/journal.menu.view.php).
Journal gets a sensible default menu automatically on first visit to the menu manager Pending setDefaultMenu seeds the standard Home/Browse/Journal Info/Guide-for-Authors/Submit/Reviewers/Contact structure (a reduced set for the portal journal_code=0), skipping ids listed in the ignore_menu journal setting (journal.menu.class.php:55-238).
Admin can add or edit a menu item in a modal with bilingual titles, a target chosen from predefined system pages or the journal's static pages, an optional parent menu, and enabled/disabled status Pending The add/edit form (AJAX-loaded Bootstrap modal, request/manager.ajax.php task=addMenu/saveMenu) offers a link dropdown of system routes plus every ju_pages static page, and a parent selector limited to top-level menus (journal.menu.class.php:259-366, 369-440).
Admin can drag-to-reorder menu items and save the new order with one click Pending Sortable rows plus a Save button posting task=reOrderMenu, which rewrites menu_order sequentially (journal.menu.class.php:495-511, inc/js/manager.js reOrderMenu).
Admin can delete a menu item after confirmation, but deletion is refused while the item still has sub-menus Pending deleteMenu shows an error alert and aborts if children exist under the item (journal.menu.class.php:442-493).
Menu create, edit and delete actions are recorded in the contact action-history audit log Pending saveCnActionHistory is called with action types 57 (create), 58 (update), 59 (delete) carrying the menu title (journal.menu.class.php:427-438, 472-479).
Admin can browse the full catalog of UI expressions/labels harvested from the language files, paginated with a configurable page size Pending manager?_action=cstm_lb parses 15 language files, sorts alphabetically, and paginates at 25 rows by default with first/last navigation (apps/legacy/js/class/custom.lables.class.php:15-155).
Admin can keyword-search expressions, choosing whether to search the default texts or only the already-customized ones Pending Multi-word AND search over label values; search_fld=2 restricts the set to labels that have a per-journal override (custom.lables.class.php:55-113, view/custom.lables.view.php:15-20).
Admin can override any expression's wording for their journal and locale; clearing the override text reverts the label to the system default Pending saveCustomLables upserts ju_custom_lables per journal+locale and deletes the row when the submitted value is blank, showing a saved confirmation (custom.lables.class.php:157-233); the save is audit-logged (action type 60).
Admin can view the journal's related links list side-by-side with an inline add/edit form on the same page Pending manager?_action=link renders the form and the order-sorted ju_links list together — no separate add/edit URL (apps/legacy/js/class/link.class.php:31-87, apps/legacy/spec/admin/site-structure/related-links.md).
Admin can create or edit a related link with a bilingual title and a URL; the secondary-language title only appears for bilingual journals or the super-admin context Pending link_title_2 is conditional on ju_locales=2 or journal_code=0; the URL field is always LTR with an http://www.link.url placeholder (link.class.php:52-148, spec related-links.md Form Fields).
Related-link saves reject duplicate titles and auto-prefix the URL with http:// when no scheme is given Pending saveLink re-renders the form with a duplicate-title error, and prepends http:// unless the URL starts with http://, https:// or ftp:// (link.class.php:94-121).
Related-link form enforces client-side required validation on title and URL before submit Pending Browser-side trim-and-check with inline error and focus on the offending field; secondary title is not validated (spec related-links.md Client-Side Validation).
Admin can drag-to-reorder related links and save the order, which drives their public display order Pending task=reOrderLinks rewrites link_order sequentially; the list sorts by link_order with title fallback for un-ordered rows (link.class.php:31-45, 210-229).
Admin can delete a related link after a confirm dialog, and link create/edit/delete actions are audit-logged Pending deleteLink records action type 34 (32 create / 33 update on save) with the link title before removing the row (link.class.php:149-208).
Super-admin can manage a global related-links list (journal_code = 0) from the super-admin panel, hidden from the hardcoded report-only account Pending Super-admin dispatch forces journal_code=0 so all CRUD hits global rows; the menu entry is suppressed for report-only contact code 3 (spec related-links.md Access Control).
Admin can view the list of journal subscription requests with subscriber name, volume/issue, type and status, optionally filtered by status Pending manager?_action=subscription joins ju_subscription with ju_contacts and volume/issue titles and honors a sub_status filter parameter (apps/legacy/js/class/subscription.class.php:31-51).
Admin can open a subscription's detail view showing the subscriber's contact info, requested volume/issue, subscription type and payment note Pending getSubscriptionDetails adds email/phone/mobile, prefixes numeric volume/issue titles with Volume/Issue labels, and shows only the first segment of the payment note (subscription.class.php:58-94).
Admin can update a subscription's status (4-stage workflow) and internal note from the detail view Pending saveSubscriptionChanges updates subs_status/subs_note with modifier tracking and returns to the list (subscription.class.php:101-138, view/subscription.view.php:150-155).
Admin can optionally email the subscriber their order's new status and note when saving a subscription decision Pending A send_email checkbox triggers EmailManager::subscribeJournalMail with the order id, translated status and note (subscription.class.php:115-135, view/subscription.view.php:159).
Admin can delete a subscription request after a confirm dialog Pending deleteSubscription removes the ju_subscription row scoped to the journal and re-renders the list; unlike menus/links this is not audit-logged (subscription.class.php:145-156).
"Related Journals" (_action=relj) is not claimed here, despite the similar filename.
The assignment's likely-anchor list named rel.journal.view.php, but tracing it shows class/rel.journal.class.php's RelatedJournalManager actually manages cross-journal "Related Journal" cards stored in ju_ads (with ads_position = -1), not ju_links — a different table and a different feature from "Related Links" (ju_links, class/link.class.php, per apps/legacy/spec/admin/site-structure/related-links.md). ultraport/inventory/journal-admin/ads.html also declines to claim it (it shares ju_ads with Ads but is a separate class/action), leaving it an open flag rather than assigning it to Account.
Scope is deliberately narrower than everything manager.php dispatches.
The Account module brief names exactly four site-configuration screens (menu, custom labels/expressions, related links, subscription). manager.php's role-6 dashboard also serves many other journal-configuration actions with no clear home in the 6-module Journal Admin taxonomy — basic journal info/email/SMS settings, subjects, countries, sections, manuscript types, indexing, FAQ, glossary, static pages, review questions, checklist, registration-form setting, backup/restore, CRM billing/support, and reports/todo. Per inventory-design.md's "open flag" for manager.php, those remain unclaimed here and are expected to surface (if anywhere) under Publishing Workflow's manager module page, not Account.
Menu Add/Edit is an AJAX modal, not a navigable URL.
Unlike Related Links (whose add/edit form is embedded inline with the list on the same manager?_action=link page), the Menu add/edit form is only reachable via a POST to request/manager.ajax.php (task=addMenu) that fills a Bootstrap modal client-side (inc/js/manager.js's addMenu()); there is no GET URL that renders it directly. Counted as its own row because it is a materially different rendered screen from the Menu List, consistent with how Ads and News (siblings) split List from Add/Edit.
Menu Add/Edit's real access gate is broader than "role 6".
Every other row on this page is dispatched from manager.php's own switch, behind manager.php's top-of-file check requiring _role = 6 exactly (apps/legacy/js/manager.php:55-68). Menu Add/Edit has no such path — it exists only as the response of request/manager.ajax.php's addMenu/saveMenu tasks (apps/legacy/js/request/manager.ajax.php:180-189), gated solely by that file's own top check, which accepts _role IN (4, 6, 16) — Editor-in-Chief, System Admin, and Editorial Office respectively — with no per-journal filter (apps/legacy/js/request/manager.ajax.php:25-40). The Menu List row's inline reorder-save button (task=reOrderMenu, apps/legacy/js/request/manager.ajax.php:190-194) and Related Links' reorder-save button (task=reOrderLinks, apps/legacy/js/request/manager.ajax.php:105-109) pass through this same broader-gated endpoint, though the pages hosting those buttons still require role 6 to load in the first place, so this only changes Menu Add/Edit's own row. Both editor.php (line 413) and mng_assist.php (line 188) load inc/js/manager.js — the file defining addMenu()/saveMenu()/reOrderMenu() (apps/legacy/js/inc/js/manager.js:1157-1266) — but neither file's own _action switch has a menu case, and the only markup that ever calls addMenu() is view/journal.menu.view.php, which itself is only reachable from manager.php's menu action or this AJAX endpoint — so no rendered screen anywhere surfaces the Menu Add/Edit modal to roles 4 or 16; only the raw AJAX endpoint is technically reachable to those sessions. Mirrors the AJAX-gate note already recorded on journal-admin/news.html for the same shared request/manager.ajax.php file.
Cross-page duplication (open flag, not resolved here).
Customize Expressions, Menu List, Related Links, and both Subscription rows above share their exact manager.php?_action=... ref and underlying class with four rows independently kept on publishing-workflow/manager.html (its "Customize Expressions", "Menus", "Related Links", and "Journal Subscription — List/Detail" rows) — same dispatch-switch cases, traced independently. This module's brief gives cstm_lb/menu/link/subscription a clear, named home here, so Account is treated as the canonical listing; the Publishing Workflow copies are believed stale duplicates that should be trimmed (or at minimum cross-linked) in a later pass — not changed here since that's a different page. See also: Publishing Workflow › Manager.