Skip to content

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 ​

  1. 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)
  2. Create Portal — "Add Portal" button (visible when canCreateBrandPortal) opens CreatePortalDialog; PortalLimitDialog is shown instead when the plan limit is reached
  3. Skeleton Loaders — full card skeletons during initial load
  4. Empty State — illustrated empty view with an "Add Portal" CTA for users with canManageBrandPortalSettings
  5. Navigation — clicking a card navigates to /:workspace_id/dam/portals/:id if 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 ​

ComputedDescription
canCreateBrandPortalTrue if user can create a new portal (plan + role)
canManageBrandPortalSettingsTrue if user can configure portal settings
canAccessPortalDetailTrue if user has any portal mgmt permission (settings, users, banners, or tiles)
isAtPortalLimitTrue when instances.length >= portalLimit

API Endpoints ​

  • GET digital-assets/instance/all?workspace_id= — fetch all portals

Access Control ​

PermissionWhen required
canCreateBrandPortalShow "Add Portal" button
canManageBrandPortalSettingsShow empty-state CTA
canAccessPortalDetailEnable card click-through to detail