Home › Publishing 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§ion=info | /manager?_action=journal§ion=info | System Admin (ROLE_6) |
| Journal Settings — Additional Setting | Pending | — | — | — | manager.php?_action=journal§ion=more | /manager?_action=journal§ion=more | System Admin (ROLE_6) |
| Journal Settings — Titles & Section Names | Pending | — | — | — | manager.php?_action=journal§ion=ttl | /manager?_action=journal§ion=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
| Feature | Status | E2E | Description |
|---|---|---|---|
| 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§ion=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§ion=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.