HomePublishing Workflow › Manager

Manager

Utility portal on the manager.php entry file (gated to _role = 6, labelled ROLE_6 / "System Admin" in the legacy strings), rendered through view/index.manager.view.php — the journal's day-to-day configuration hub: journal/email/SMS settings, user & role administration, content admin (news, ads, FAQ, glossary, related links/journals, indexing, editorial board), payments/subscriptions, reports, backup, and CRM helpdesk screens.

Page Status Workflow E2E Enhanced Legacy Ref Route Roles
Admin Options (Dashboard) Pending manager.php /manager System Admin (ROLE_6)
Journal Settings — Basic Setting Pending manager.php?_action=journal&section=info /manager?_action=journal&section=info System Admin (ROLE_6)
Journal Settings — Additional Setting Pending manager.php?_action=journal&section=more /manager?_action=journal&section=more System Admin (ROLE_6)
Journal Settings — Titles & Section Names Pending manager.php?_action=journal&section=ttl /manager?_action=journal&section=ttl System Admin (ROLE_6)
Manuscript Types Pending manager.php?_action=type /manager?_action=type System Admin (ROLE_6)
Manuscript Evaluation Form Pending manager.php?_action=revQ /manager?_action=revQ System Admin (ROLE_6)
Checklist Items Pending manager.php?_action=checklist /manager?_action=checklist System Admin (ROLE_6)
Journal Email Templates Pending manager.php?_action=email /manager?_action=email System Admin (ROLE_6)
Journal SMS Messages Pending manager.php?_action=sms /manager?_action=sms System Admin (ROLE_6)
Subjects Pending manager.php?_action=subject /manager?_action=subject System Admin (ROLE_6)
Countries Pending manager.php?_action=country /manager?_action=country System Admin (ROLE_6)
Journal Sections Pending manager.php?_action=section /manager?_action=section System Admin (ROLE_6)
Manuscript Status Settings Pending manager.php?_action=manu_st /manager?_action=manu_st System Admin (ROLE_6); menu link commented out in the Classic theme — reachable via the Modern theme menu or direct URL
Customize Expressions Pending manager.php?_action=cstm_lb /manager?_action=cstm_lb System Admin (ROLE_6)
List of Users Full Yes filters manager.php?_action=userList /manager?_action=userList System Admin (ROLE_6)
Reset Password Full inline-dialog manager.php?_action=resetpass — ContactAdmin::resetUserPassword /manager?_action=resetpass&cn=... System Admin (ROLE_6); reached via an action icon on List of Users, not its own menu entry
Manage Roles Full Yes tabbed manager.php?_action=role /manager?_action=role System Admin (ROLE_6)
Assign Subjects to Editors / Reviewers Full Yes tabbed manager.php?_action=reviewer /manager?_action=reviewer System Admin (ROLE_6)
Email to Users Pending manager.php?_action=campaign /manager?_action=campaign System Admin (ROLE_6)
Import Users from Excel Pending manager.php?_action=import_cn /manager?_action=import_cn System Admin (ROLE_6)
Merge Duplicate Users Pending manager.php?_action=merge_dup /manager?_action=merge_dup System Admin (ROLE_6)
Registration Form Settings Pending manager.php?_action=reg_form /manager?_action=reg_form System Admin (ROLE_6)
Editorial Board Full Yes drag-reorder manager.php?_action=edb /manager?_action=edb System Admin (ROLE_6)
Menus Pending manager.php?_action=menu /manager?_action=menu System Admin (ROLE_6)
Static Pages Pending manager.php?_action=page /manager?_action=page System Admin (ROLE_6)
News & Announcements Full Yes drag-reorder manager.php?_action=news /manager?_action=news System Admin (ROLE_6)
Ads Full Yes drag-reorder manager.php?_action=ads /manager?_action=ads System Admin (ROLE_6)
FAQ Pending manager.php?_action=faq /manager?_action=faq System Admin (ROLE_6)
Related Links Pending manager.php?_action=link /manager?_action=link System Admin (ROLE_6)
Indexing and Abstracting Pending manager.php?_action=index /manager?_action=index System Admin (ROLE_6)
Related Journals Full drag-reorder manager.php?_action=relj /manager?_action=relj System Admin (ROLE_6)
Glossaries Pending manager.php?_action=gl /manager?_action=gl System Admin (ROLE_6)
Financial Report Pending manager.php?_action=py_report /manager?_action=py_report System Admin (ROLE_6)
Journal Subscription — List Pending manager.php?_action=subscription /manager?_action=subscription System Admin (ROLE_6)
Journal Subscription — Detail Pending manager.php?_action=subscription&subs=... /manager?_action=subscription&subs=... System Admin (ROLE_6)
Billing Pending manager.php?_action=billing /manager?_action=billing System Admin (ROLE_6); under the Classic theme, shown in the default dashboard's own hardcoded link list only when CRM is connected (crm_url + journaladed settings) and invoicing is enabled (ticket_invoice setting); under the Modern/admin-backend theme, always listed in the primary sidebar menu regardless of those settings (no gating check in __manager_pmenu)
My Support Request Pending manager.php?_action=support /manager?_action=support System Admin (ROLE_6); under the Classic theme, shown in the default dashboard's own hardcoded link list only when the journal has the CRM add-on configured (crm_url + journaladed settings); under the Modern/admin-backend theme, always listed in the primary sidebar menu regardless of those settings (no gating check in __manager_pmenu)
Statistical Report Pending manager.php?_action=report /manager?_action=report System Admin (ROLE_6); quick-menu only, not in the primary nested menu
Backup Pending manager.php?_action=backup /manager?_action=backup System Admin (ROLE_6); under the Classic theme, shown in the default dashboard's own hardcoded link list only when Dropbox backup is enabled (dropbox_backup_enabled setting); under the Modern/admin-backend theme, always listed in the quick-menu icon strip regardless of that setting (no gating check in __manager_qmenu)
Article Stat Report Pending manager.php?_action=arst_report — ArticleStatReport::manageActions /manager?_action=arst_report System Admin (ROLE_6); no link in this module's own menus — reachable by direct URL; the filter form self-submits back into this same manager.php dispatcher because ArticleStatReport::$actionFile defaults to "manager" and is never overridden here (contrast mainm/adm.php, which explicitly sets $arst->actionFile = "adm" for its own copy of this screen at adm?_action=arst_report)
Critical System Settings Pending manager.php?_action=todo — view/index.manager.view.php /manager?_action=todo System Admin (ROLE_6); linked from the shared Contacts "My Home" screen, not manager's own menu

Features

FeatureStatusE2EDescription
Admin lands on a manager dashboard with quick links and conditional CRM/backup shortcuts Pending Legacy default manager.php screen shows a hardcoded link hub whose Billing/Support/Backup entries appear only when crm_url/journaladed/ticket_invoice/dropbox_backup_enabled settings are set; apps/web Journal Admin lands directly on nav sections with no dashboard.
Admin can edit journal basic settings (info section) Pending AddJournal::journalBasicForm tenant-level journal info editing; Super Admin journal edit exists but in a different segment.
Admin can edit journal additional settings (editor configuration) Pending AddJournal::editorConfig additional-settings section, Modern-theme route manager?_action=journal&section=more.
Admin can edit journal titles and section names Pending AddJournal::loadJournalDetails ttl section; under the Classic theme all three journal-settings sections render as tabs on one page.
Admin can manage manuscript types Pending TypeManager CRUD for the manuscript-type list used by submissions.
Admin can build the manuscript evaluation (review question) form Pending ReviewQuestionManager lets the journal define the reviewer evaluation questionnaire.
Admin can manage submission checklist items Pending CheckListManager CRUD for author-submission checklist entries.
Admin can edit journal email templates per locale Pending EmailSetting edits workflow email templates; manager.php resolves the template locale from the journal's primary_locale or a __locale override with RTL/LTR handling.
Admin can edit journal SMS message templates Pending SMSSetting per-locale SMS template editing, same locale/direction resolution as email templates.
Admin can manage the journal's subject taxonomy Pending SubjectManager tenant-level parent/child subjects; a platform-wide subjects screen exists only under Super Admin.
Admin can manage the country list Pending CountryManager CRUD over ju_countries used in registration and contact records.
Admin can manage journal sections Pending SectionManager CRUD; sections are referenced by editorial-board membership and manuscripts.
Admin can configure manuscript status labels/settings Pending ManuscriptStatusSetting; legacy menu link commented out in Classic theme, reachable via Modern menu or direct URL.
Admin can customize UI expressions/labels Pending CustomLables lets a journal override built-in wording (custom expressions).
Admin can browse and live-search the journal's user directory with filters, sorting and pagination Full Yes Ports ContactAdmin::searchContactsForm/getContactList including keyword tokenization across name/email/username/address/country and role-based filtering (author filter includes manuscript/article authorship, not just role rows).
Admin can export the user list to Excel Full Yes Legacy export honored journal custom_fields/req_fields settings (e.g. national_code) as extra columns.
Admin can open a quick-view of a contact from the list New Yes Lets the admin inspect a user without leaving the list; designed to reduce navigation round-trips in the new UI.
Admin can reset a user's password Full Legacy also logged the reset to contact action history and short-circuited unless the caller had admin standing (roles 4/6/16).
Admin can impersonate a journal user Full Yes Legacy _action=imps was a session-swap redirect with no screen of its own (excluded as a non-row); the capability itself is ported as a list action.
Admin can delete a user, blocked when the user has active manuscripts, reviews, or is an admin Full Yes Guard rules are business-critical: legacy surfaced the blocking manuscript ID in the error message.
Admin can block/unblock a user with a block note and block type Pending ContactAdmin::blockUserForm/blockUserSave (cn.adm.class.php:699-813) set cn_disabled 1/2 plus a block note in cn_custom_style; no block/unblock counterpart found in apps/web components or lib.
Admin can view and edit a user's full profile Full Yes The legacy per-contact edit lived in the shared contacts area; the port centralizes it as the Profile tab of the user detail page.
Admin can assign and remove a user's roles Full Yes Legacy quirks to preserve: role 6 (and 0/10) skipped on save, optional unique_edt setting enforcing a single Editor-in-Chief, and role changes logged to contact action history.
Admin can assign subjects (specialties) to editors/reviewers Full Yes Legacy preserved rows where fav_spc = 2 (contact's own favourite specialties) when the admin re-saved assignments.
Admin can register a not-yet-registered contact on their behalf New Yes Supports the new flow where contacts can exist unregistered and an admin activates them.
Admin can email user segments (campaigns) Pending JournalCampaign bulk-email tool targeting role/subject-filtered user lists.
Admin can import users from Excel Pending ContactImport spreadsheet-driven bulk contact creation.
Admin can merge duplicate user accounts Pending ContactImport::mergeContactsForm consolidates duplicate contacts and their linked records.
Admin can configure the public registration form (custom/required fields) Pending RegFormSetting drives custom_fields/req_fields settings that also feed the user-list Excel export columns.
Admin can manage editorial board members (CRUD) Full Yes Legacy nuances: duplicate email+role guard (bypassable via allow_edb_emd setting), auto-linking a member to an existing contact by email, avatar <=500KB jpeg/png/gif, and defaulting show-in-home per role.
Admin can drag-to-reorder editorial board members Full Yes Order persists to edb_order and controls public editorial-board display order.
Admin can manage news & announcements (CRUD with image, publish date and visibility status) Full Yes Legacy supported bilingual title/detail (news_title_2/news_detail_2) and <=500KB jpeg/png/gif images; creates/updates/deletes were logged to contact action history.
Admin can drag-to-reorder news items Full Yes Order persists to news_order and drives public news listing order.
Admin can manage ads/banners (CRUD with banner image and target link) Full Yes Legacy stored bilingual title/note packed with a || delimiter; hidden ads use ads_position = -1 and are excluded from the admin list.
Admin can see per-ad click counts Full Yes Click tracking itself happens on the public site; the manager list surfaces the counter.
Admin can drag-to-reorder ads Full Yes Order persists to ads_order and controls banner rotation/display order.
Admin can manage related journals (CRUD with image) and reorder them Full No e2e spec exists yet for related-journals (no related-journals directory under e2e-tests/src/tests/journal-admin).
Admin can build the journal's navigation menus Pending JournalMenu tenant menu builder for the public site.
Admin can manage static pages Pending PageManager per-journal static page CRUD; Super Admin page-management and the public /pages/<id> renderer are different segments.
Admin can manage FAQ entries Pending FAQManager CRUD; the public FAQ page in apps/web is read-only.
Admin can manage related links Pending LinkManager CRUD; the public related-links page in apps/web is read-only.
Admin can manage indexing & abstracting entries Pending IndexManager CRUD; the public indexing-abstracting page in apps/web is read-only.
Admin can manage glossary entries Pending GlossaryManager CRUD; the public glossary page in apps/web is read-only.
Admin can run the financial/payment report with Excel export Pending JUPaymentReport; manager.php also exposes a py_excel export branch that streams the payments spreadsheet.
Admin can manage journal subscriptions (list, detail, edit, delete) Pending SubscriptionManager: list plus a genuinely separate detail render dispatched on the subs query param, with save/delete actions.
Admin can view CRM invoices/billing Pending CrmManager::getInvoiceList; legacy gating differs by theme (Classic gates on crm_url/journaladed/ticket_invoice settings, Modern always shows the menu entry).
Admin can raise and track CRM helpdesk support tickets Pending CrmManager::GetAllTicket; ticket/invoice detail pages within manager are dead code — working detail links point to the Editor-in-Chief portal.
Admin can run the journal statistical report Pending JUStatusReport, quick-menu only in legacy; Super Admin stat-reports is a different segment.
Admin can back up the journal (Dropbox backup) Pending BackupManager; Classic theme shows it only when dropbox_backup_enabled is set, Modern always lists it in the quick menu.
Admin can run the article stat report Pending ArticleStatReport (article.stat.report.class.php: statFilterForm + getStatResults); direct-URL only in this module, no menu link.
Admin can review critical system settings (todo screen) Pending manager.php _action=todo via __managerToDo(), linked from the shared Contacts My Home screen rather than manager's own menu.
Admin content and user-management actions are recorded in the contact action history (audit trail) Pending Legacy saveCnActionHistory logs news/ads/editorial-board CRUD, role and subject assignment, password resets, blocks and deletions with typed action codes; no audit-history surface was found on the ported apps/web journal-admin screens.
Database backup download (backupDb) Dropped Dead legacy code path, deliberately excluded from porting.
Email tracking report (trackreport) Dropped Dead legacy code path, deliberately excluded from porting.
Open flag (unresolved in Phase B): overlaps conceptually with Journal Admin › Users and journal-configuration screens without a clear home. Kept under Publishing Workflow because the legacy role-portal router lives here. See also: Journal Admin › Users.
Excluded as non-rows (dead, unlinked, or pure redirect/session handlers).
_action=journals (plural) and the commented-out _action=journal_s branch are unreferenced anywhere in the codebase. _action=backupDb instantiates BackupRestoreDb, a class that does not exist in class/backup.class.php — a broken/dead code path, distinct from the working backup action. _action=trackreport ("Email Report") has the identical defect: it requires class/email.tracker.class.php and instantiates EmailTracker, but that class file does not exist anywhere in this codebase and no class EmailTracker is defined under any other filename either (only the corresponding view/email.tracker.view.php exists) — so, like backupDb, this branch fatals rather than rendering and is excluded here rather than kept as a working row. _action=imps (impersonate) and _action=portal_login (CRM SSO) only set the session/redirect (header() / __redirect()) with no rendered screen of their own. _action=allservice is only referenced from a commented-out quick-menu entry. _action=pvm_not / _action=glm_not just toggle a "don't show this message again" flag and re-render the default dashboard. _action=ticket / _action=invoice exist in manager.php's switch (shared CrmManager/view/crm.view.php code), but every ticket/invoice row link in that shared view is hardcoded to editor?_action=ticket... / editor?_action=invoice... — so within the Manager module these two cases are unreachable dead code; the working detail pages live under Editor-in-Chief.
Judgment call on granularity.
Most of the rows above (Subjects, Countries, Journal Sections, Checklist Items, News, Ads, FAQ, Glossaries, Related Links/Journals, Indexing, Editorial Board, Static Pages, Menus, ...) each pair a list screen with a same-shaped "Add/Edit" form reached via an extra query param (e.g. &_ts=<id>) that is a genuine full-page navigation, not a modal. These were folded into a single row per _action rather than split into List + Add/Edit pairs, since the pattern is structurally identical across ~15 of this module's screens and splitting all of them would roughly double the row count without capturing additional materially-different UI. The two exceptions kept as separate rows — Journal Settings' three named tabs and the Subscription List/Detail pair — are each distinct for different reasons. The Subscription List/Detail split is a genuinely different render under any theme: manager.php's own dispatch branches directly on isset($_REQUEST['subs']), independent of theme or menu structure. The Journal Settings three-way split is a genuinely different render, separately named with its own route (manager?_action=journal&section=info/more/ttl), only under the Modern/admin-backend theme (view/add.journal.view.php:105-124, __manager_pmenu in template/rules.php:2478-2489); under the Classic theme (view/add.journal.view.php:63-103, the module's default), all three sections render together as tabs on one page load regardless of section, matching the "Manuscript Detail — tab" precedent from the design doc's template only in the Modern-theme case.