Appearance
Create Collage Dialog ​
File Information ​
- Path:
components/dam/Dialogs/CreateCollageDialog.vue - Purpose: Create and edit collages with name, description, and asset selection
Overview ​
The Create Collage Dialog component provides an interface for creating new collages and editing existing ones. It supports collage name, description, asset selection, and initial configuration.
Key Features ​
Collage Creation
- Collage name input
- Collage description
- Name validation
- Duplicate name checking
Collage Editing
- Edit existing collage
- Update name and description
- Modify collage settings
- Save changes
Asset Selection
- Select assets for collage
- Add/remove assets
- Asset preview
- Asset count display
Validation
- Name required validation
- Name uniqueness check
- Description length validation
- Form error handling
Props ​
javascript
{
dialog: {
type: Boolean,
default: false
},
collage: {
type: Object,
default: null
// Existing collage to edit (null for create)
},
workspaceId: {
type: [String, Number],
required: true
},
initialAssets: {
type: Array,
default: () => []
// Initial assets to include
}
}Data Properties ​
javascript
{
form: {
name: '',
description: '',
assets: []
},
saving: false, // Saving state
errors: {}, // Form errors
availableAssets: [] // Available assets for selection
}Computed Properties ​
isEditMode ​
Checks if editing existing collage
isFormValid ​
Validates form data
collageName ​
Returns collage name (for edit mode)
Methods ​
loadCollage() ​
Loads collage data (edit mode):
- Fetches collage details
- Updates form data
- Loads collage assets
- Handles errors
saveCollage() ​
Saves collage:
- Validates form
- Creates or updates collage via API
- Adds selected assets
- Shows success message
- Emits saved event
- Handles errors
addAsset(asset) ​
Adds asset to collage:
- Validates asset
- Adds to assets array
- Updates UI
removeAsset(assetId) ​
Removes asset from collage:
- Removes from assets array
- Updates UI
validateForm() ​
Validates collage form:
- Checks name required
- Checks name uniqueness
- Validates description
- Returns validation result
Events ​
close- Dialog closedsaved- Collage saved successfullycreated- Collage createdupdated- Collage updated
API Endpoints ​
Create Collage ​
- Endpoint:
POST /digital-assets/collage/create - Request Body:json
{ "workspace_id": 123, "name": "My Collage", "description": "Collage description", "asset_ids": [1, 2, 3] } - Response: Created collage object
Update Collage ​
- Endpoint:
PUT /digital-assets/collage/update - Request Body: Collage update data
- Response: Updated collage object
Usage Examples ​
Create Collage ​
vue
<template>
<CreateCollageDialog
:dialog="showCreateCollage"
:workspace-id="workspaceId"
:initial-assets="selectedAssets"
@close="showCreateCollage = false"
@created="handleCollageCreated"
/>
</template>
<script>
import CreateCollageDialog from '~/components/dam/Dialogs/CreateCollageDialog.vue'
export default {
components: {
CreateCollageDialog
}
}
</script>Edit Collage ​
vue
<template>
<CreateCollageDialog
:dialog="showEditCollage"
:collage="selectedCollage"
:workspace-id="workspaceId"
@close="showEditCollage = false"
@updated="handleCollageUpdated"
/>
</template>Integration Points ​
- Collages Page: Create new collages
- Collage Details: Edit existing collages
- Asset Components: Add assets to collage
- Folder Components: Create collage from folder
Notes for Development ​
- Name must be unique per workspace
- Description optional
- Assets can be added/removed
- Edit mode loads existing data
- Validation before save
Related Documentation ​
- Collages Page - Collage listing
- Collage Details Page - Collage management
- Folder Dialogs - Folder operations