Skip to content

Collages Page

File Information

  • Path: pages/_workspace_id/dam/collage/index.vue
  • Route: /:workspace_id/dam/collage
  • Middleware: authCheck, checkWorkspace, check-if-suspended, can-access-dam-module
  • Layout: damLayout

Purpose

The Collages page displays and manages collages in the DAM workspace. Collages are collections of assets that can be organized, shared, and managed as groups.

Key Features

  1. Collage Display

    • Grid view of collages
    • Collage cards with previews
    • Collage metadata (asset count, description)
    • Last modified date
  2. Collage Operations

    • Create new collages
    • Edit collage details
    • Delete collages
    • Share collages
    • Set collage permissions
    • Download collages
  3. View Modes

    • Grid view (default)
    • View mode preference saved
  4. Selection

    • Single collage selection
    • Multi-collage selection
    • Select all functionality
    • Bulk operations
  5. Real-time Updates

    • Live updates via Pusher
    • Automatic refresh on changes

Components Used

  • CollageCard - Collage display card
  • CreateCollageDialog - Create/edit collage dialog
  • PermissionDialog - Permission management dialog
  • ShareAssetDialog - Share collage dialog
  • Skeleton loaders for loading states

Data Properties

javascript
{
  loading: boolean,              // Initial loading state
  collagesList: array,           // Collage list
  viewMode: string,              // View mode
  loadMore: boolean,             // Load more indicator
  selectedCollage: object,       // Selected collage for operations
  shareDialog: boolean,           // Share dialog visibility
  createCollageDialog: boolean,  // Create dialog visibility
  deleteDialog: boolean,         // Delete dialog visibility
  permissionDialog: boolean,    // Permission dialog visibility
  delete_items: array,            // Items to delete
  share_items: array,            // Items to share
  canCreateCollages: boolean,    // Permission to create collages
  canShareDownload: boolean,     // Permission to share/download
  canDeleteContent: boolean      // Permission to delete content
}

Methods

fetchCollages(flag = false)

Fetches collages from API:

  • Loads collages for workspace
  • Handles pagination
  • Updates collage list

createCollage(payload)

Creates new collage:

  • Validates collage data
  • Calls create API
  • Updates collage list
  • Opens collage details

editCollage(collage)

Edits existing collage:

  • Opens edit dialog
  • Pre-fills form with collage data
  • Updates collage on save

deleteCollage()

Deletes selected collages:

  • Confirms deletion
  • Calls delete API
  • Updates collage list

shareCollage(collage)

Shares collage:

  • Opens share dialog
  • Configures sharing options
  • Creates share link

setPermissions(collage)

Sets collage permissions:

  • Opens permission dialog
  • Updates permissions
  • Refreshes collage list

handleScroll()

Handles infinite scroll:

  • Detects scroll position
  • Loads more collages when needed

API Endpoints

  • GET /dam/collages - Fetch collages
  • POST /dam/collages - Create collage
  • PUT /dam/collages/:id - Update collage
  • DELETE /dam/collages/:id - Delete collage
  • POST /dam/collages/:id/share - Share collage
  • GET /dam/collages/:id/download - Download collage

User Interactions

  1. View Collages

    • Browse collages in grid view
    • Scroll to load more collages
    • Click collage to view details
  2. Create Collage

    • Click "New Collage" button
    • Enter collage name and description
    • Submit to create
  3. Collage Actions

    • Click collage to open details
    • Right-click or menu for actions
    • Select multiple collages for bulk operations
  4. Manage Collages

    • Edit collage details
    • Delete collages
    • Set permissions
    • Share collages

Real-time Features

  • Listens to Pusher events:
    • collage.created - New collage created
    • collage.updated - Collage updated
    • collage.deleted - Collage deleted