Operator guideEN

CMS / Pages / Detail

Full page editor for page identity, URLs, settings, localized sections, landing options, country targeting, version restore, translation helpers, duplicate, publish, and delete.

How to use this guide

Start with the main guide

Follow the explanation and examples first. Extra definitions and formulas are available below when you need them.

What this page does

This page opens the full page editor for one page key and is the main operator workspace for updating localized content, adjusting visibility, and publishing the current draft.

What operators manage here

  • Header identity: page key, editable name, operational state, and content status.
  • Page URLs through the URLs modal.
  • Page settings: enabled/disabled state, layout (Main, Landing, or Profile), landing-page redirect behavior, top navigation buttons, excluded countries, included countries, and past version restore.
  • Language tabs and page sections for localized content.
  • Preview mode switching between desktop and mobile frames.
  • Older versions that can be switched back into the current draft.
  • Lifecycle actions such as publish, align, translate, duplicate, URLs editing, and delete.

Common confusion

  • Delete removes the page and related content history entirely.
  • Publish promotes the current draft content and archives the previous published version.
  • State changes page availability, while Status tracks the publication lifecycle of content.
  • There is no visible Save Draft button. Draft persistence happens automatically through debounced autosave when operators change editable fields or page content.
  • Translate fills other languages from the primary language, while Force Translate overwrites non-primary languages.
  • Choose a Past Version is not a compare-only history viewer. Selecting a row immediately copies that archived content into the current draft through the normal page update route.
  • Duplicate first creates a new page shell, then copies the current page content and settings into the new key.
  • Content align warns that manually added non-primary language sections will be lost before the alignment request runs.

Editor-only helper surfaces

  • URLs opens a separate modal for page URLs. Current visible URL rows expose Locale, URL, and remove action. The modal blocks empty URLs, URLs that do not start with /, and duplicate URL values.
  • Duplicate opens the same page-creation modal used on the page list, then copies the current content into the newly created page.
  • Add section inserts a new default content section into the current language layout.
  • The right sidebar exposes per-section controls for Type, Section name (optional), Visibility, Access Tags, Device Visibility, and section-level Delete / Duplicate / move actions.
  • Split-view sections can add/remove rows or columns and those layout-grid changes are saved as page content.
  • Preview can switch between desktop and mobile framing without changing saved content.
  • Choose a Past Version shows archived timestamps and can label rows as Published or Current version.

How saving actually works

  • Name autosaves after the operator changes it.
  • State, Layout, landing redirect, and top-navigation button settings save immediately.
  • Exclude Countries and Included Countries submit immediately after the operator changes the selection.
  • Section edits, section ordering, and layout-grid edits rebuild the current language content and refresh the preview.
  • Language tabs and the desktop/mobile preview toggle only change what the operator is viewing; they do not save page data by themselves.
More details

Definitions and formulas

Open only the section you need. The relevant section opens automatically when you request help for a specific item on screen.

Calculations7 topicsOpen details

Mixed save model

Logic
`Name` uses `getFormikCommonFieldProps(..., true)` and Formik submit, then the FE debounces `PUT /api/core/pages/:pageKey` by one second., `Exclude Countries` and `Included Countries` call `formik.handleSubmit()` immediately after selection, but still save through the same debounced update path., `State` and `Layout` bypass the debounce helper and call the page update mutation directly., Section edits, add/remove/duplicate, and layout-grid changes rebuild the localized `pageContent` payload and save it through the page update flow.

Preview and language local state

Logic
Language tabs and the desktop/mobile preview toggle are local FE state only., The FE forces the preview iframe to reload by rotating a local `hash` after successful update, translate, align, or section-change operations., Changing the preview frame does not persist any page setting by itself.

Older version restore

Logic
Selecting `Choose a Past Version` sends `switchTo` through `PUT /api/core/pages/:pageKey`., `edit-page.ts` ensures a draft exists first; if no draft exists, it creates one from the published content before applying the selected version., The selected historical content replaces the current draft snapshot instead of opening a compare-only history view.

Duplicate is create-then-copy

Logic
`Duplicate` opens `CreatePageModal`, which first calls `POST /api/core/pages` with the new `pageKey` and `pageName`., After create succeeds, `duplicateExistingPage` calls the page update route with the new key plus the current `pageContent` and `pageContentSettings`., The FE then redirects the operator to `/cms/pages/:pageKey` for the new page.

Content align warning

Logic
`Content align` is gated by a browser confirm dialog., The confirmation explicitly warns that sections manually added to non-primary language pages will be lost., Only confirmed aligns call `POST /api/core/pages/:pageKey/align`.

Force Translate confirmation

Logic
`Force Translate` does not call the translate route immediately., The FE opens a confirmation dialog warning that all non-primary language content will be overwritten., Confirmed force-translate calls `POST /api/core/pages/:pageKey/translate` with `force: true` and `isDeeplService: true`.

URLs modal validation

Logic
The `URLs` helper modal keeps its own form state and saves through a one-second debounced `PUT /api/core/urls`., Empty URLs, URLs without a leading `/`, and duplicate URL values are blocked in the FE before the save request is sent., Successful URL save closes the modal; row deletion can call `DELETE /api/core/urls/:urlId` immediately before the modal-level save.
Fields25 topicsOpen details

Key

Immutable page identifier used by routes and content references.

Data Type
string

Name

Operator-facing page name editable from the header.

Data Type
string
Editable
true

State

Operational status of the page record.

Data Type
enum
Editable
true

Status

Lifecycle status of the current page content snapshot.

Data Type
enum

Layout

Page layout preset applied to the current page content settings.

Data Type
enum
Editable
true
Options
main, landing, profile

Auth user redirect to

Landing-layout setting that redirects already-authenticated users to another path.

Data Type
string
Editable
true
Visibility
Only visible when Layout is `landing`.
Caveats
Empty value leaves the setting unset.

Hide top navigation registration/login buttons

Landing-layout setting that hides registration and login buttons in top navigation.

Data Type
boolean
Editable
true
Visibility
Only visible when Layout is `landing`.

Language Tabs

Switches the editor between localized page variants.

Data Type
tabs

Preview Mode

Chooses whether the embedded preview is rendered in desktop or mobile framing.

Data Type
enum
Caveats
This toggle changes only local FE framing and does not write a persisted page setting.

Excluded Countries

Blocks the page in the selected countries.

Data Type
string[]
Editable
true

Included Countries

Limits the page to the selected countries only.

Data Type
string[]
Editable
true

Choose a Past Version

Historic archived versions that can be restored into the current draft.

Data Type
version-list
Caveats
Selecting a row applies that version into the draft immediately; it is not a compare-only history viewer., Dropdown rows can display `Published` or `Current version` chips next to the timestamp.

Manage URLs

Nested modal for page URLs assigned to this page key.

Data Type
modal-table
Editable
true
Fields
0: Id: url_locale | Label: Locale | Data Type: enum | Operator Meaning: Language scope for the URL row. `Any` means the URL is not tied to one language. | 1: Id: url | Label: URL | Data Type: string | Operator Meaning: Path value for the page URL. | Validation: Required., Must start with `/`., Must be unique within the modal values. | 2: Id: url_actions | Label: Actions | Data Type: action-cell | Operator Meaning: Remove control for the selected URL row.
Caveats
Current visible URL rows do not expose redirect/direct type selection in this modal.

Page Sections

Structured page sections edited per language in the main content area.

Data Type
object
Editable
true

Type

Section-type selector in the right sidebar for the currently selected page section.

Data Type
enum
Editable
true

Section name (optional)

Optional operator-facing identifier for the selected section.

Data Type
string
Editable
true

Visibility

Controls whether the selected section is visible or hidden on the page.

Data Type
enum
Editable
true

Access

Section-level audience selector used by section types that expose access control.

Data Type
enum
Editable
true
Options
any, user, guest

Include Tags

Access-tag rule requiring matching tags for the selected section.

Data Type
string[]
Editable
true

Exclude Tags

Access-tag rule that suppresses the selected section for matching tags.

Data Type
string[]
Editable
true

Show on Desktop

Device-visibility switch controlling whether the selected section appears on desktop layouts.

Data Type
boolean
Editable
true

Show on Mobile

Device-visibility switch controlling whether the selected section appears on mobile layouts.

Data Type
boolean
Editable
true

HTML

HTML content field for a basic content section.

Data Type
html
Editable
true
Visibility
Visible for content section types that expose an HTML editor.

Disable backdrop

Content-section setting that disables the section backdrop.

Data Type
boolean
Editable
true
Visibility
Visible for content section types that expose this boolean.

Split-view grid

Column/row layout configuration for split-view sections.

Data Type
layout-grid
Editable
true
Visibility
Visible for split-view section types that expose grid controls in the embedded editor.
Caveats
Removing a split-view column or row can also remove linked row sections from the current language content.
More help

Related pages

CMS / Pages

CMS page workspace for inventory, page creation, draft editing, page URLs, visibility settings, translation helpers, and publish/delete actions.

CMS / Pages / Form

Create-page modal for the initial page name, generated/supplied page key, URL preview, validation, create, cancel, and success/error feedback.

CMS / Pages / List

CMS page inventory grid with key/name/state/status filters, untranslated-language stats, create-page entrypoint, and navigation into the page editor.

Activity Tag Rules / Detail

Rule inspection page with stored identity, conditions, timestamps, impact estimate, run action, delete action, and recent application history.

Affiliate Payment Settings / Detail

Detail/edit shell for one saved affiliate payment-setting record.

Affiliate Settings / Detail

Saved affiliate detail workspace for reviewing one affiliate and opening report actions.