Home › Publishing Workflow › Page Designer
Page Designer
Legacy role: peditor.php (ROLE_7). Manuscript-lifecycle role — the page-designer/typesetting portal: receive manuscripts queued for page layout, upload the typeset file with a note, and hand the manuscript back to the editorial chain.
| Page | Status | Workflow | E2E | Enhanced | Legacy Ref | Route | Roles |
|---|---|---|---|---|---|---|---|
| Page Designer Dashboard | Pending | — | — | — | peditor.php | /peditor | Page Designer |
| New Manuscripts | Pending | Production | — | — | peditor.php?_action=assign | /peditor?_action=assign | Page Designer |
| Handled Manuscripts | Pending | Production | — | — | peditor.php?_action=assigned | /peditor?_action=assigned | Page Designer |
| Manuscript Detail — Page Designer Action | Pending | Production | — | — | class/page.editor.class.php::technicalReviewerActionForm | /request/page.editor.ajax | Page Designer |
| Page Designer Guide | Pending | — | — | — | peditor.php?_action=guide | /peditor?_action=guide | Page Designer |
Features
| Feature | Status | E2E | Description |
|---|---|---|---|
| Page Designer can access a dedicated role portal (dashboard) gated to role 7, with login redirect back to the portal | Pending | — | peditor.php verifies a ju_contact_role row with _role=7 (redirecting non-members away and unauthenticated users to login with the destination preserved in pLoc); apps/web has no page-designer portal — getRoleSwitchDestination only maps role 7 to a category, not a home. |
| Page Designer sees dashboard option cards with live counts of New vs Handled manuscripts | Pending | — | The default peditor screen (view/index.peditor.view.php 'default' branch) shows New Manuscripts and Handled Manuscripts links each with a count badge (red when new work is pending); the Modern theme renders a chart variant via __peditor_chart. |
| Page Designer can view the queue of new manuscripts awaiting page layout | Pending | — | peditor.php?_action=assign lists manuscripts at status 27 assigned to the logged-in page designer (both via ju_manuscript_reviewer assign_status=27 and via ju_manuscript.manu_page_designer), showing ID, title, author, submit date, status and modify date, with an explicit 'no submissions found' empty state. |
| Page Designer can view the list of manuscripts they have already handled | Pending | — | peditor.php?_action=assigned (on-screen label lang key PAGE_DESIGNER_PERFORMED_MANUSCRIPTS = 'Handled Manuscripts') lists manuscripts the designer already responded to (recommendation recorded or page_designer_response_date set). |
| Page Designer lists are server-paginated with a selectable page size | Pending | — | preAssignedManuscript paginates at max_rows (default 25) via pageNavigator with first/last shortcuts, and page_size() in inc/js/page.editor.js reloads with a user-chosen max_rows. |
| Page Designer can open a manuscript's action screen inline by clicking its row in either list | Pending | — | Clicking the manuscript ID calls showManusriptDetails (request/page.editor.ajax.php task=showManusriptDetails), which loads technicalReviewerActionForm into the inline #dvPreview panel below the list (not a modal) and highlights the selected row. |
| Page Designer sees the editor's note-to-page-designer and the editor-provided source files on the action screen | Pending | — | technicalReviewerActionForm shows note_for_peditor (or the latest unlocked ju_manuscript_reviewer editor_note) with auto text-direction detection, plus the file_stt=11 editor files via getManuscriptFiles. |
| Page Designer can upload the typeset file with a description while the manuscript is in the layout stage | Pending | — | uploadFile (task=uploadFile) accepts a file + description only while manu_status=27, rejects blacklisted extensions ($this->bad_files), stores it as file_stt=12 / file_type=18 named <manu>__<user>__<timestamp>.<ext>, and refreshes the related-files fragment. |
| Page Designer can drag-to-reorder the uploaded manuscript files | Pending | — | reOrderFile in inc/js/page.editor.js posts the new fileCode order to request/page.editor.ajax.php task=reOrderFile (jQuery-UI sortable via checkSortable) and re-renders the file list. |
| Page Designer can delete a file they uploaded, with a confirm prompt | Pending | — | deleteManuFile in inc/js/page.editor.js confirms then posts task=deleteManuSFile to request/editor.ajax with edt_r=7 and refreshes the file list (shdel=1 shows delete controls only on the designer's own file_stt=12 files). |
| Page Designer can record a completion note and send the manuscript back to the Editor-in-Chief | Pending | — | saveTechnicalNote records the page-designer note (as reviewer_note + reviwer_recommendation=1 on the assignment row, or page_designer_note on the manuscript for legacy direct assignment) and sets manu_wait_for_response; the send button label switches between 'Send to Editor-in-Chief' and 'Send to Production Manager' when the user also holds role 11. |
| Manuscript status advances to 28 only after all assigned page designers have responded | Pending | — | saveTechnicalNote sets manu_status=28 immediately for direct (manu_page_designer) assignments, but for reviewer-row assignments only when no other unlocked assign_status=27 rows without a recommendation remain. |
| Sending the note auto-uploads any file still selected in the upload field first, after a confirm dialog | Pending | — | saveTechnicalNote in inc/js/page.editor.js triggers uploadFile(1) if #file_name is non-empty, then asks for confirmation before posting and reloads the page on success. |
| Editor-in-Chief is emailed when the page designer completes the assignment | Pending | — | saveTechnicalNote calls EmailManager::emailsToEditorinChief with email_fld=page_designer_respond, embedding the designer's note. |
| The page-designer hand-back is recorded in the manuscript tracking history | Pending | — | saveTechnicalNote calls saveManuTracking with status 28, description TRACK_PAGE_DESIGNER_COMPLETER_ASSIGNMENT, the sent email content, and the designer's note. |
| Page Designer can expand a collapsible full manuscript-info section, including submission history | Pending | — | The action screen's MANU_INFO fieldset toggles #dvManu (shManu) rendering getManuscriptDetails with file_stt 11,12 and show_stt, with submission history lazy-loaded via getSubmissionHistory (request/editor.ajax task=getSubmissionHistory). |
| Page Designer can read a journal-configurable Page Designer Guide | Pending | — | peditor.php?_action=guide renders the localized 'page_designer_guide' journal setting via getTechEditorsGuide. |
Manuscript Detail — Page Designer Action
has no
?_action= of its own — it is the
technicalReviewerActionForm screen (manuscript info, page-designer comment, and file upload),
loaded into the inline #dvPreview div defined in view/page.editor.view.php (inside
the preAssignedManuscript branch, appended below the New/Handled Manuscripts list table itself,
not a modal dialog) via request/page.editor.ajax.php (task=showManusriptDetails),
and opened by clicking a manuscript row inside either New Manuscripts or Handled Manuscripts. (The
#manu_prv modal skeleton defined in view/index.peditor.view.php
($FUNCTION == 'modal') is unreferenced boilerplate — inc/js/page.editor.js never
targets it.) It is counted as its own row per the
row-identification method's "distinct tab/sub-view within an action" clause — it renders a materially different
screen (the upload/note action form) from the list rows it is launched from. The follow-on POST handlers
reached from this screen — saveTechnicalNote, uploadFile, reOrderFile —
are pure mutation/fragment-refresh endpoints with no distinct rendered screen of their own, so they are not
listed as separate rows.Handled Manuscripts
is reached via
_action=assigned, but its legacy on-screen
label (lang key PAGE_DESIGNER_PERFORMED_MANUSCRIPTS) is literally "Handled Manuscripts", not
"Performed" or "Assigned" — used here verbatim to avoid confusion with the query-string action name.class/page.editor.class.php's preAssignedManuscript/technicalReviewerActionForm
methods branch on an isset($_PARAMS['pm']) flag, but that branch is dead code with respect to the
in-scope, routed Production Manager module (apps/legacy/js/pm.php, documented in
production-manager.html) — that module instantiates EditorManager, not
PageEditorManager, and never sets $_PARAMS['pm']. The flag is only ever set (and
PageEditorManager only ever instantiated for it) inside the out-of-scope duplicate legacy trees
main/pm.php and mainn/pm.php; no row here is claimed for it, and this page only
inventories the peditor.php role-7 entry point.