HomePublishing 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

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