The Admin Panel
The CWA has no separate CMS URL. Editing happens on the live page — the admin bar overlays the front end, and the manager panel slides up from the bottom when you click a component.
Access
Log in at /login with ROLE_ADMIN credentials. Once logged in, the admin bar appears at the top of every page.
The Admin Bar
The bar shows:
- Edit / Done toggle — activates inline editing mode
- Navigation links: Layouts | Pages | Data | Routes | Users | Settings
- A page title input for the current page
- A loading indicator for API activity
Edit Mode
When edit mode is active:
- An empty ComponentGroup shows a dashed placeholder with a single + hotspot — click it to open the "Add Component" dialog
- Click any component to select it and open the manager panel
- The manager panel slides up from the bottom and shows your component's admin tabs
- Right-click a component in the live page layout (not in the
/_cwa/admin pages) to open a context menu listing the nested resources under the cursor — use it to select the parent component position or group instead of the innermost component
The Admin Pages (/_cwa/)
| URL | Purpose |
|---|---|
/_cwa/layouts | List layouts; create new; assign uiComponent |
/_cwa/pages | List pages; assign layout and page template |
/_cwa/pages/[iri] | Page settings: title, SEO, layout |
/_cwa/data | Browse PageData categories (blog, products, events…) |
/_cwa/data/[type] | List and create records for a data type |
/_cwa/data/[type]/[iri] | Edit an individual data record |
/_cwa/routes | Manage URL paths; create redirects; view the route tree |
/_cwa/users | List users; create/edit accounts and roles |
/_cwa/settings | Site config: name, SEO defaults, robots, sitemap, maintenance mode |
Managing Routes
The /_cwa/routes admin page manages URL paths for pages and redirects.
Editing a path
The path editor uses a prefix + suffix layout. For top-level routes the prefix is empty and you type the full slug. For child routes (e.g. a blog article nested under /blog) the parent path is shown as a read-only prefix — you only type the suffix. This makes it clear what the final URL will be without having to remember the parent path.
An SEO recommendation appears below the input showing a full path preview built from the parent prefix and a slugified version of the page title. Click it to apply.
When editing a parent route that has child routes, a cascade child paths option appears. Enabling it renames all child paths to keep them under the new parent prefix and creates redirects from every old path automatically. Without it only the parent route is renamed; children keep their old paths.
Redirects
Each route entry shows two sections:
Forward visitors to — the outbound redirect field. Set this to send visitors arriving at this URL to a different destination. When a redirect target is set and edit mode is active, the admin panel suppresses the redirect so the page remains navigable for editing.
Incoming redirects — the redirectedFrom list. Shows all other routes that currently forward visitors to this route. Useful for auditing redirect chains and identifying stale paths.
Redirects can be chained. The API walks the chain when it serialises a route and returns the final destination as redirectPath — the Nuxt module's route middleware then issues a 308 to it. A chain that loops back on itself is rejected with a circular reference error rather than being followed.
To seed redirects in fixtures, see Data Fixtures → Seeding Redirects.
Adding a Component
- Enter edit mode
- In an empty group, click its + hotspot. In a group that already has content, click a component to select it, then use the manager panel's CTA button — Add Before / Add After (or Add to Start / Add to End when the ComponentGroup itself is selected)
- The "Add Component" dialog lists available component types
- Select one — if
instantAdd: trueis set innuxt.config, it's added immediately; otherwise a config panel appears first - The new component is added to the group
Reordering
Drag components within a group to reorder them. The module patches sortValue on each ComponentPosition automatically.
The Manager Panel
When you click a component, the manager panel shows all admin/*.vue files for that component type as tabs. Each tab is defined by a call to useCwaResourceManagerTab({ name: 'Tab Name' }) in the Vue file.
Changes in the admin tabs apply to the draft version of the component. Click Publish in the panel to make changes live.
Deleting is on the panel's Info tab. There is no duplicate/clone action.