Appearance
Portals Page ​
File Information ​
- Path:
pages/_workspace_id/dam/portals/index.vue - Route:
/:workspace_id/dam/portals - Middleware:
authCheck,check-workspace-access,checkWorkspace,check-if-suspended,can-access-dam-module,can-access-dam-settings - Layout:
damLayout
Purpose ​
Lists all brand portals for the DAM workspace. Each portal card shows its branding, URL, tags, and stats (publishable assets, published assets, portal users, 30-day sessions). Admins can create portals here; clicking a card navigates to the portal detail page.
Key Features ​
- Portal Cards — each card shows logo thumbnail, brand name, URL slug, tag chips, and four stat counters (publishable assets, published assets, portal users, 30-day sessions)
- Create Portal — "Add Portal" button (visible when
canCreateBrandPortal) opensCreatePortalDialog;PortalLimitDialogis shown instead when the plan limit is reached - Skeleton Loaders — full card skeletons during initial load
- Empty State — illustrated empty view with an "Add Portal" CTA for users with
canManageBrandPortalSettings - Navigation — clicking a card navigates to
/:workspace_id/dam/portals/:idif the user has any portal management permission (canAccessPortalDetail)
Components Used ​
CreatePortalDialog— create new portal (~/components/dam/Dialogs/CreatePortalDialog.vue)PortalLimitDialog— plan limit reached notice (~/components/dam/Dialogs/PortalLimitDialog.vue)CollagePlusIcon,CollageGlobeIcon,CollageLockIcon,CollageEmptyIcon,CollageExternalLinkIcon,Collages,CollageFolderIcon,CollageFileIcon,CollageUserGroupIcon— SVG icons
Data Properties ​
javascript
{
contentLoading: true,
portalLimit: null, // Max portals allowed on current plan (null = unlimited)
addPortalDialog: false,
whiteLabelEnabled: false,
instances: [], // Array of portal objects
total_publishable_assets: 0,
total_published_assets: 0,
total_portal_users: 0,
last_30_days_sessions: 0,
}Computed Properties ​
| Computed | Description |
|---|---|
canCreateBrandPortal | True if user can create a new portal (plan + role) |
canManageBrandPortalSettings | True if user can configure portal settings |
canAccessPortalDetail | True if user has any portal mgmt permission (settings, users, banners, or tiles) |
isAtPortalLimit | True when instances.length >= portalLimit |
API Endpoints ​
GET digital-assets/instance/all?workspace_id=— fetch all portals
Access Control ​
| Permission | When required |
|---|---|
canCreateBrandPortal | Show "Add Portal" button |
canManageBrandPortalSettings | Show empty-state CTA |
canAccessPortalDetail | Enable card click-through to detail |
Related Documentation ​
- Portal Detail Page — configure individual portal
- Portal Users Settings — manage portal-level user access
- Portals Feature — full portals feature overview
- Pages Overview — all pages