Home › Super Admin › Integrations
Integrations
Platform-default (journal_code = 0) setup for the super-admin's own "CN" organization: notification channels (email, SMS) and the per-journal similarity-check quota. Entry files: mainm/adm.php and mainn/adm.php (admin-role dispatch, gated by $_SESSION['juAdmUser__']) — the similarity-check quota screen exists only in mainm/adm.php; DOI/plagiarism-provider config and per-journal backup/contact-import turned out to live elsewhere — see notes.
| Page | Status | E2E | Enhanced | Legacy Ref | Route | Roles |
|---|---|---|---|---|---|---|
| Email Notification Settings (Platform Defaults) | Pending | — | — | mainm/adm.php?_action=email | /adm?_action=email | Super Admin (blocked for the report-only super-admin account, contact code 3, in mainm/adm.php) |
| SMS Notification Settings (Platform Defaults) | Pending | — | — | mainn/adm.php?_action=sms | /adm?_action=sms | Super Admin |
| Similarity Check Quota (Similarity Limits) | Pending | — | — | mainm/adm.php?_action=sc_limit | /adm?_action=sc_limit | Super Admin (blocked for the report-only super-admin account, contact code 3, in mainm/adm.php) |
| DOAJ Integration — Journals | New | Yes | — | — | /en/super-admin/integrations/doaj | Super Admin |
| DOAJ Integration — Journal Articles | New | Yes | — | — | /en/super-admin/integrations/doaj/<journalCode> | Super Admin |
Features
| Feature | Status | E2E | Description |
|---|---|---|---|
| Admin can edit the platform-default (journal_code=0) email letter template and subject for every workflow notification event, grouped by category (acceptance, rejection, revision, assignments, payment, galley proof, withdraw, general letters, etc.) | Pending | — | Legacy mainm/mainn adm.php?_action=email renders one long grouped form (EmailSetting::emailSettingEditForm, latterGroups) over ~80 letter fields stored in ju_journal_setting; templates are locale-scoped (ju_locale). |
| Email templates support merge placeholders (e.g. {manuId}, {manuTitle}, {authorName}, {username}, {password}, {reviewDueDate}) with an in-form placeholder legend | Pending | — | The legacy editor shows a help map of ~25 tokens substituted at send time (email.setting.class.php lines 89-118). |
| The email-template list adapts to journal configuration — letters for disabled features (section editor, publication manager, external abstract, non-CL reviewing, journal expert, unassigned-reviewer notices) are hidden | Pending | — | emailSettingEditForm strips fields from juEmails based on ju_setting flags (rv_ncl, need_ext_abs, has_sec_editor, unassign_nad_rv, has_je, has_pm/preprint_ju). |
| Admin can set per-letter CC/BCC recipient-role options, saved packed into the letter's subject setting | Pending | — | saveEmailSetting appends _||_-delimited cc/bcc selections to the *_subject value; some letters (headers/footers, manual letters, registration) are excluded from cc/bcc (noCcBcc list). |
| Admin can test the outgoing email/SMTP connection and see a sent-test result plus collapsible SMTP debug detail | Pending | — | EmailSetting::testEmailConection sends a 'Test Connection' email via PHPMailer (SMTPDebug on) to the current admin's address and reports success/failure inline. |
| Saving email notification settings is recorded in the contact action history (audit trail, action type 12) | Pending | — | saveEmailSetting calls saveCnActionHistory; the save form is CSRF-token protected (__token). |
| Admin can configure the platform-default SMS gateway connection (URL, sender number, username, password, HTTP method, extra parameter) | Pending | — | SMSSetting stores the six pipe-delimited gateway values in the single sms_service setting at the platform scope (sms.setting.class.php saveSMSSetting lines 106-142). |
| Admin can edit the platform-default SMS message template for each workflow notification event, with the same merge placeholders as email; input is normalized to plain text (tags stripped, <br> converted to newlines) | Pending | — | ~40 sms_* letter fields (juSMSs) stored locale-scoped in ju_journal_setting; edited via mainn/adm.php?_action=sms. |
| Saving SMS notification settings is recorded in the contact action history (audit trail, action type 13) | Pending | — | saveSMSSetting calls saveCnActionHistory; apps/web's Audit Logs viewer already knows the EDIT_SMS_SETTING label, but only as an audit enum — the settings screen itself is unported. |
| Admin can view all hosted journals in one platform-scope table with each journal's similarity-check quota limit and its used count | Pending | — | JournalAdmin::manageSCQuota joins ju_similarity_check usage per journal against the sc_limit_quota JSON map stored at journal_code=0 and renders it through the hosted-journals list (mainm/adm.php?_action=sc_limit). |
| Admin can bulk-edit similarity-check quotas inline across all journals and save them in a single action, preserving quotas for journals not on the current page | Pending | — | saveScQuota parses a _||_/_|_-packed ju_quotas payload, merges it over the existing sc_limit_quota map, and upserts the journal_code=0 setting (adm.class.php:1900-1958). |
| Admin can filter the similarity-quota journal table by keyword and journal status, and export it to Excel | Pending | — | The sc_limit screen reuses hostedJournalsList's kw/ju_status filter form; when sc_quota is set the Excel button submits as qu_excel (adm.class.php:389-398). |
| The report-only super-admin account (contact code 3) is blocked from the email-settings and similarity-quota screens in mainm/adm.php | Pending | — | Role quirk carried on the inventory rows: platform settings write screens are denied to the read-only super-admin variant. |
| Admin can view a paginated dashboard of DOAJ-eligible journals with ISSNs and per-status article counts (synced / failed / fixed / new) shown as tooltipped badges | New | Yes | Server-rendered from searchParams via fetchDoajJournals (apps/web/lib/data/doaj-data.ts); shows total count, skeleton while navigating, explicit empty state. |
| Admin can live-search DOAJ journals by title and filter them by article sync status (with errors / with fixed / with new) | New | Yes | Filter state lives in the URL, so filtered views are shareable/bookmarkable. |
| Admin can jump from a journal row to its DOAJ record or its public homepage, and clicking the row opens the per-journal article export page in a new tab carrying the active status filter | New | Partial | Homepage link is conditional on the journal having a baseUrl; 'View homepage' has no test coverage. |
| Admin can view a per-journal paginated list of articles with title, DOI, sync status badge, and truncated error code/message expandable via tooltip | New | Yes | Same URL-param search/status-filter/pagination pattern as the journals list, with status tabs all/new/synced/error/fixed. |
| Admin can sync (export) an individual article to DOAJ from its row menu and gets toast success/error feedback with the list refreshed | New | Yes | Sync action is hidden for already-synced articles; spinner shown while syncing. |
| Admin can mark all of a journal's failed DOAJ articles as 'fixed' in one bulk action, with a toast reporting how many were fixed | New | Yes | Bulk remediation step so re-sync attempts can be retried after fixing article metadata. |
| Admin can open an article's public page and its DOAJ record from the article row menu | New | Yes | Lets the admin verify content on both ends of the integration before/after export. |
Only 2 of the module brief's 5 feature areas are real, platform-scoped screens — verified by tracing, not assumed.
Following this segment's established test (does the class ever get instantiated with
journalCode = 0, and is it reachable from main/adm.php/mainm/adm.php/mainn/adm.php, the $_SESSION['juAdmUser__']-gated dispatch — as opposed to manager.php/mng_assist.php, the ju_contact_role._role = 6/16-gated "Manager"/"Management Assistant" role portals in Publishing Workflow): EmailSetting and SMSSetting pass (explicit journalCode = 0 assignment in mainm/mainn); BackupManager (class/backup.class.php, plus its Dropbox/Google subclasses) and ContactImport (class/import.cn.class.php, the "import from CN" anchor — "CN" is this codebase's shorthand for "Contact," not a third-party system) do not: both are instantiated only inside manager.php/mng_assist.php with the current journal's own journalCode, never 0, and never appear in any of the three adm.php files. Per this segment's row-identification method these two are journal-configuration screens with no platform-scope counterpart, so — consistent with how the Content Management and System Settings modules of this same segment excluded their own manager.php-only anchors — they are correctly out of scope here and already sit under Publishing Workflow's open-flagged manager/management-assistant modules instead.DOI deposit/check and plagiarism-provider configuration are not separate screens.
doi_prefix/doi_deposit_url/doi_deposit_config and the similarity-check ("plagiarism") provider fields are edited as collapsible accordion panels ("DOI", "Similarity") inside the single continuous journal-settings form in view/add.journal.view.php — reached via main/adm.php?_action=editj (already catalogued as "Update Journal" under this segment's Journals module), not a distinct _action. Separately, main/adm.php, mainm/adm.php, and mainn/adm.php all expose hidden, unlinked _action=assign_doi / medra_xml / crf_xml handlers (JournalAdmin::assignDOI / ::getDOIXML) that either run a silent batch DOI-assignment loop or stream a Crossref/mEDRA registration XML file with no HTML screen of their own — per the "pure handler, no rendered screen" rule these are not rows either. class/doi.deposit.class.php (DoiDepositor) is an empty, unimplemented stub with no caller at all.