Home › Publishing Workflow › Management Assistant
Management Assistant
Legacy entry: mng_assist.php (ROLE_16 — labeled "Editorial Office" in the legacy English strings; kept as "Management Assistant" here per the Phase B taxonomy), view view/index.mng_assist.view.php. Admin/utility catch-all for journal configuration (subjects, manuscript types, countries, related links, indexing/abstracting registries, FAQ, glossary, checklist), editorial-board membership, role/subject assignment, bulk contact tools (merge duplicates, Excel import), an email/SMS campaign builder, and the financial report — not a manuscript-lifecycle step.
| Page | Status | Workflow | E2E | Enhanced | Legacy Ref | Route | Roles |
|---|---|---|---|---|---|---|---|
| Management Assistant Dashboard | Pending | — | — | — | mng_assist.php | /mng_assist | Management Assistant |
| Journal Settings | Pending | — | — | — | mng_assist.php?_action=journal | /mng_assist?_action=journal | Management Assistant |
| Manage Roles | Full | — | Yes | tabbed | mng_assist.php?_action=role | /mng_assist?_action=role | Management Assistant |
| Assign Subjects to Editors / Reviewers | Full | — | Yes | tabbed | mng_assist.php?_action=reviewer | /mng_assist?_action=reviewer | Management Assistant |
| Email to Users | Pending | — | — | — | mng_assist.php?_action=campaign | /mng_assist?_action=campaign | Management Assistant |
| Merge Duplicate Users | Pending | — | — | — | mng_assist.php?_action=merge_dup | /mng_assist?_action=merge_dup | Management Assistant |
| Editorial Board List | Full | — | Yes | drag-reorder | mng_assist.php?_action=edb | /mng_assist?_action=edb | Management Assistant |
| Add / Edit Editorial Board Member | Full | — | Yes | slide-over | mng_assist.php?_action=edb&_ts=0 | /mng_assist?_action=edb&_ts=0 | Management Assistant |
| Manuscript Types List | Pending | — | — | — | mng_assist.php?_action=type | /mng_assist?_action=type | Management Assistant |
| Add / Edit Manuscript Type | Pending | — | — | — | mng_assist.php?_action=type&_ts=0 | /mng_assist?_action=type&_ts=0 | Management Assistant |
| Subjects | Pending | — | — | — | mng_assist.php?_action=subject | /mng_assist?_action=subject | Management Assistant |
| Checklist Items | Pending | — | — | — | mng_assist.php?_action=checklist | /mng_assist?_action=checklist | Management Assistant |
| Review Questions List | Pending | — | — | — | mng_assist.php?_action=revQ | /mng_assist?_action=revQ | Management Assistant |
| Add / Edit Review Question | Pending | — | — | — | mng_assist.php?_action=revQ&tQU=1 | /mng_assist?_action=revQ&tQU=1 | Management Assistant |
| Import Users from Excel — Upload File | Pending | — | — | — | mng_assist.php?_action=import_cn | /mng_assist?_action=import_cn | Management Assistant |
| Import Users from Excel — Match Columns | Pending | — | — | — | mng_assist.php?_action=import_cn | /mng_assist?_action=import_cn | Management Assistant |
| Import Users from Excel — Preview & Confirm | Pending | — | — | — | mng_assist.php?_action=import_cn | /mng_assist?_action=import_cn | Management Assistant |
| Countries | Pending | — | — | — | mng_assist.php?_action=country | /mng_assist?_action=country | Management Assistant |
| Related Links | Pending | — | — | — | mng_assist.php?_action=link | /mng_assist?_action=link | Management Assistant |
| Indexing and Abstracting | Pending | — | — | — | mng_assist.php?_action=index | /mng_assist?_action=index | Management Assistant |
| FAQ | Pending | — | — | — | mng_assist.php?_action=faq | /mng_assist?_action=faq | Management Assistant |
| Glossaries | Pending | — | — | — | mng_assist.php?_action=gl | /mng_assist?_action=gl | Management Assistant |
| Ads List | Full | — | Yes | drag-reorder | mng_assist.php?_action=ads | /mng_assist?_action=ads | Management Assistant |
| Ads — Add / Edit | Full | — | — | modal | mng_assist.php?_action=ads&_ts=0 | /mng_assist?_action=ads&_ts=0 | Management Assistant |
| News & Announcements List | Full | — | Yes | drag-reorder | mng_assist.php?_action=news | /mng_assist?_action=news | Management Assistant |
| Add / Edit News | Full | — | Yes | rich-text | mng_assist.php?_action=news&edt=0[&_ts=<news_code>] | /mng_assist?_action=news&edt=0&_ts=<news_code> | Management Assistant |
| Financial Report | Pending | — | — | — | mng_assist.php?_action=py_report | /mng_assist?_action=py_report | Management Assistant |
Features
| Feature | Status | E2E | Description |
|---|---|---|---|
| Editorial Office (role-16) staff can open a dedicated Management Assistant portal dashboard | Pending | — | Legacy mng_assist.php default action renders a role-16 landing page (view/index.mng_assist.view.php); no apps/web counterpart yet. |
| Admin can edit journal settings/details (title, configuration) from the assistant portal | Pending | — | Legacy ?_action=journal loads AddJournal::loadJournalDetails and saves via ?_action=journal&save=1. |
| Admin can grant and revoke journal roles on a user account | Full | Yes | Legacy AJAX mutation (request/manager.ajax.php) accepted roles 4/6/16, so it worked from either portal; the port gates by session permission instead. |
| Admin can assign subject areas to editors and reviewers | Full | Yes | Covers RoleManager::addSubjectToContact; subject expertise drives reviewer matching downstream. |
| Admin can build an email campaign: define content, search/select a filtered audience of journal users, and send | Pending | — | Legacy JournalCampaign::addEditCampaign with AJAX audience search (getCampaignUsers/getUserList), saved recipient lists (saveCampaignUsers), and sendCampaign. |
| Admin can send an SMS campaign to selected users | Pending | — | Legacy JournalCampaign::sendCampaignSMS is a distinct send channel inside the campaign builder. |
| Admin can search for duplicate user accounts and merge them into one contact | Pending | — | Legacy ContactImport::mergeContactsForm/mergeContactsSearch/mergeContactsSave via AJAX; works fully from mng_assist because the AJAX gate accepts role 16. |
| Admin can bulk-import users from an Excel file via a three-step wizard (upload file, match columns, preview & confirm) | Pending | — | Legacy ContactImport::importCnForm/matchColumns/importSave; spec-confirmed broken past step one for role-16-only staff because the forms submit back to manager.php (apps/legacy/spec/admin/user-management/import-users-from-excel.md). |
| Excel import can assign subject expertise to imported contacts as part of the import | Pending | — | Legacy ContactImport::saveCnSubject runs during import save — a sub-feature invisible at page granularity. |
| Admin can view the editorial-board member list and delete members | Full | Yes | This is the public board-member listing managed via EDBManager, distinct from the edbb role portal. |
| Admin can reorder editorial-board members to control their public display order | Full | Yes | Order persists to edb_order and drives the public editorial-board page ordering. |
| Admin can add or edit an editorial-board member with photo and rich-text bio | Full | Yes | Legacy EDBManager::addEditEDBForm/saveEDB also supported member image upload and deleteImage. |
| Admin can manage manuscript types (list, add/edit, delete, reorder) | Pending | — | Legacy TypeManager::getTypesList/addEditTypeForm/saveType/deleteType/reOrderType; types drive the submission form. |
| Admin can manage the journal's subject taxonomy (list, add/edit, delete, reorder) | Pending | — | Legacy SubjectManager combined list + add/edit on one screen (addEditSubjectForm embeds getSubjectsList) with reOrderSubjects. |
| Admin can manage submission checklist items (list, add/edit, delete, reorder) | Pending | — | Legacy CheckListManager; checklist items are shown to authors during submission. |
| Admin can manage review questions (the Manuscript Evaluation Form): list, add/edit, delete, reorder | Pending | — | Legacy ReviewQuestionManager::getQuestionsList/addEditQuestion/saveQuestion/deleteQuestion/reorderQu; legacy label is 'Manuscript Evaluation Form'. |
| Admin can manage the countries list, including one-click import of a default country set | Pending | — | Legacy CountryManager::addEditCountryForm/saveCountry/importCountry/deleteCountry; in legacy, saves from mng_assist silently fail for role-16-only staff (form posts to manager.php). |
| Admin can manage related links shown on the journal site (list, add/edit, delete, reorder) | Pending | — | Legacy LinkManager; same manager.php render/save split as Countries in legacy. |
| Admin can manage indexing & abstracting registry entries with logo images (list, add/edit, delete, reorder) | Pending | — | Legacy IndexManager::addEditIndexForm/saveIndex/reOrderIndex/deleteImage; entries appear on the public journal pages. |
| Admin can manage FAQ entries (list, add/edit, delete, reorder) | Pending | — | Legacy FAQManager; same manager.php render/save split in legacy. |
| Admin can manage glossary terms (list, add/edit, delete) | Pending | — | Legacy GlossaryManager; view hard-codes action="manager" so legacy saves fail for role-16-only staff. |
| Admin can view the advertisements list with search, status filter and pagination | Full | Yes | Covers AdsManager::getAdssList; search/filter/pagination are enhancements over the legacy flat list. |
| Admin can drag-to-reorder ads to control display order | Full | Yes | Order determines ad rotation/placement on the public site. |
| Admin can create or edit an ad with banner image upload, and delete ads with confirmation | Full | — | Legacy AdsManager::addEditAdsForm/saveAds/deleteAds/deleteImage; legacy saves posted to manager.php (role-6 gate). |
| Admin can view the news & announcements list with search, status filter and pagination | Full | Yes | Covers NewsManager::getNewssList. |
| Admin can drag-to-reorder news items to control display order | Full | Yes | Order drives the public news listing. |
| Admin can create and edit news posts with a rich-text body and image upload, and delete news with confirmation | Full | Yes | Legacy NewsManager::addEditNewsForm/saveNews/deleteNews/deleteImage. |
| Admin can run a financial report: filter payments and view the results, including access to payment receipt files | Pending | — | Legacy JUPaymentReport::paymentFilterForm embeds ::paymentReportResult and exposes receipt files (getPaymentReceiptFiles); in legacy the Modern-theme filter/export form posts to manager.php (role-6) while Classic posts to itself. |
| Admin can export the financial report to Excel | Pending | — | Legacy top-of-file py_excel query param streams an Excel file via JUPaymentReport::getPaymentsExcel and exits before rendering. |
| Admin can export the journal's user/contact list to Excel | Full | Yes | Legacy top-of-file excel query param streams Contact_Manager::getContactList as an Excel download and exits — a background export invisible at page granularity. Note: this handler instantiates Contact_Manager, whose class chain defines no getContactList method (only ContactAdmin has it, cn.adm.class.php:78) — the same undefined-method pattern flagged as 'Dropped' on the neighboring impersonate row — so the legacy mechanism itself is likely broken even though the capability is fully ported in the new system. |
| Admin can impersonate (log in as) another user from the assistant portal | Dropped | — | Dead on this entry point only — impersonation as a capability belongs to the Manager/Editor modules. |
| Admin can reach user-list and reset-password screens from the assistant portal | Dropped | — | The equivalent working screens are cataloged under Journal Admin › Users (manager.php). |
Open flag (unresolved in Phase B): admin/utility screen riding the role-portal router — not a manuscript-lifecycle step. Nearly every row above dispatches into the exact same manager-style classes (
SubjectManager, TypeManager, CountryManager, LinkManager, IndexManager, FAQManager, GlossaryManager, AdsManager, NewsManager, CheckListManager, ReviewQuestionManager, EDBManager, RoleManager, ContactImport, JournalCampaign, JUPaymentReport) as the sibling Manager module — kept as its own module only because mng_assist.php is its own role-portal entry point, gated on ju_contact_role._role = 16 rather than manager.php's _role = 6.Six rows above render via
mng_assist.php but save through manager.php instead — which silently breaks for role-16-only staff.CountryManager and GlossaryManager hard-code action="manager" in their views (view/country.view.php, view/glossary.view.php); LinkManager, FAQManager, AdsManager, and NewsManager default their internal fileName/actionFile property to "manager", and mng_assist.php's dispatch — unlike its subject/edb/type/index/checklist/revQ cases, which explicitly reassign the property — never overrides it. manager.php's own top-of-file gate requires a ju_contact_role row with _role = 6 specifically (the same class of bug the Import Users from Excel spec confirms below), so a contact holding role 16 but not role 6 can open Countries, Related Links, FAQ, Glossaries, Ads, and News & Announcements from this page, but every save is silently redirected away and rejected. The Financial Report row has a milder version of the same issue: only its Modern-theme filter/export form hard-codes action="manager?_action=py_report" (the Classic-theme form submits back to itself).Import Users from Excel is spec-confirmed broken past step one for role-16-only staff.
Per
apps/legacy/spec/admin/user-management/import-users-from-excel.md's Inconsistency States: "the feature is exposed through both manager and mng_assist, but the rendered forms submit back to manager, and the cancel link also points to manager?_action=import_cn" — a role-16 (not role-6) contact can open the Upload File screen above, but Match Columns and Preview & Confirm both fail once submitted. The same wizard is separately cataloged as a fully working role-6 flow at Journal Admin › Users.Manage Roles, Assign Subjects, Email to Users, and Merge Duplicate Users are also cataloged under Journal Admin › Users
(
manager.php, role 6). Unlike the rows in the previous two notes, these four have no render/save split: their data mutations run through request/manager.ajax.php, which independently gates on _role IN (4, 6, 16), so all four work fully whether reached from manager.php or mng_assist.php.Editorial Board List and Add / Edit Editorial Board Member are also cataloged under Journal Admin › Editorial Board
(
manager.php, role 6). mng_assist.php's edb case explicitly reassigns $edb->actionFile = "mng_assist" before calling EDBManager::manageEDBActions — and view/edb.view.php builds every link and form action off that property — so, like the Note 4 rows above, both screens render and save correctly end-to-end whether reached from manager.php (role 6) or mng_assist.php (role 16), with no render/save split.Excluded as non-rows.
The top-of-file
excel/py_excel query params stream an Excel file and exit() before any page renders. _action=imps instantiates Contact_Manager (class/contacts.class.php, per mng_assist.php's own case block at lines 390-394) and calls ->impersonateAsUser($_REQUEST) — but Contact_Manager (and its parent JU_Config) defines no such method anywhere in the codebase; only ContactAdmin (class/cn.adm.class.php:591), which is what manager.php (line 556) and editor.php (line 426) correctly instantiate for their own imps cases, has it. Calling it here throws a PHP fatal error (call to undefined method) instead of performing the redirect, so it's excluded as broken/unreachable rather than as a working no-render redirect. _action=userList and _action=resetpass have page-title mappings in the switch above the content dispatch, but their case blocks in the actual content-dispatch switch are commented out — dead, unreachable code. _action=journal_s, email, sms, backupDb, section, and subscription likewise only set a page title; with no matching case in the content-dispatch switch, they silently fall through to the Dashboard row above instead of rendering a distinct screen.