HomeSuper 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

FeatureStatusE2EDescription
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.