Appearance
Search Page ​
File Information ​
- Path:
pages/_workspace_id/dam/search.vue - Route:
/:workspace_id/dam/search - Middleware:
authCheck,checkWorkspace,check-if-suspended,can-access-dam-module - Layout:
damLayout
Purpose ​
The Search page provides comprehensive search functionality across assets, folders, and collages using Typesense search engine. It supports advanced filtering, multiple view modes, and bulk operations.
Key Features ​
Multi-Tab Search
- Assets tab
- Folders tab
- Collages tab
Advanced Filtering
- File type filters
- Tag filters
- Custom field filters
- Collage filters
- Uploaded by filters
- Date range filters
View Modes
- Grid view
- List view
- Mosaic view (assets only)
Bulk Operations
- Multi-select items
- Bulk download
- Bulk share
- Bulk add to collage
- Bulk tag management
- Bulk custom field updates
Search Features
- Full-text search
- Faceted search
- Filter combination
- Search history
Components Used ​
SearchFilter- Filter panel componentAddedFilterOption- Active filter chipsSearchBulkActions- Bulk action toolbarSearchAssets- Assets search resultsSearchFolders- Folders search resultsSearchCollages- Collages search resultsViewToggle- View mode switcherSearchTabs- Tab navigation- Various skeleton loaders
Data Properties ​
javascript
{
tab: number, // Active tab index
tabLabels: string[], // Tab labels
loading: boolean, // Search loading state
searchQuery: string, // Search query text
mainFilterObj: object, // Main filter object
allFilterList: array, // Active filters list
fileTypeList: array, // Available file types
tagsList: array, // Available tags
customFieldsList: array, // Custom fields
collageList: array, // Available collages
uploadedByList: array, // Users list
assetsSelectedItems: array, // Selected assets
assetSelectedCount: number, // Selected assets count
currentTabMode: string, // Current view mode
pagination: object, // Pagination state
noResults: boolean // No results flag
}Computed Properties ​
canShareDownload- Permission to share/downloadcanMoveContent- Permission to move contentcanDeleteContent- Permission to delete contentshouldShowNoData- Determines if "no data" message should shownoDigitalAssetsResults- No assets results flag
Methods ​
fetchResults() ​
Performs search query:
- Builds search parameters
- Calls Typesense API
- Updates results
- Handles errors
updateFilterObj(filterObj) ​
Updates filter object:
- Merges new filters
- Triggers search
- Updates UI
updateFilterListData(filterList) ​
Updates active filters list:
- Adds/removes filters
- Updates filter chips
- Triggers search
removeFilterOptn(filter) ​
Removes specific filter:
- Removes from filter list
- Updates filter object
- Triggers search
updateTabMode(mode) ​
Changes view mode:
- Updates current mode
- Saves preference
- Refreshes view
assetsRemoveSelection() ​
Clears asset selection:
- Resets selected items
- Updates UI
assetsDownloadFile(items) ​
Downloads selected assets:
- Prepares download
- Calls download API
- Handles progress
assetsAddToCollage(items) ​
Adds assets to collage:
- Opens collage dialog
- Handles selection
- Updates collage
assetsAddToShare(items) ​
Shares selected assets:
- Opens share dialog
- Configures sharing
- Creates share links
assetsAddToTags(items) ​
Manages tags for assets:
- Opens tag dialog
- Applies tags
- Updates assets
assetsAddCustomFields(items) ​
Updates custom fields:
- Opens custom fields dialog
- Applies changes
- Updates assets
API Endpoints ​
POST /typesense/search-assets- Search assetsPOST /typesense/search-folders- Search foldersPOST /typesense/search-collages- Search collagesGET /dam/file-types- Get file typesGET /dam/tags- Get tags listGET /dam/custom-fields- Get custom fieldsGET /dam/collages- Get collages listGET /dam/users- Get users list
Search Parameters ​
javascript
{
q: string, // Search query
query_by: string, // Fields to search
filter_by: string, // Filter conditions
sort_by: string, // Sort order
per_page: number, // Results per page
page: number, // Page number
facet_by: string[] // Facet fields
}Filter Types ​
File Type Filter
- Image, Video, Audio, Document, etc.
- Multiple selection
- Pagination support
Tag Filter
- Tag selection
- Tag search
- Multiple tags
Custom Field Filter
- Field-specific filters
- Value selection
- Type-based filtering
Collage Filter
- Collage selection
- Multiple collages
Uploaded By Filter
- User selection
- Multiple users
Date Range Filter
- Created date
- Modified date
- Upload date
User Interactions ​
Search
- Type in search box
- Apply filters
- View results
Filtering
- Add filters from filter panel
- Remove filters from chips
- Combine multiple filters
Selection
- Select individual items
- Select all items
- Bulk operations
View Modes
- Switch between grid/list/mosaic
- Preference is saved
Performance Considerations ​
- Debounced search input
- Lazy loading of results
- Pagination for large result sets
- Cached filter options
- Optimized Typesense queries
Notes for Development ​
- Search uses Typesense for fast, relevant results
- Filters are combined with AND logic
- View mode preference is persisted
- Bulk operations require proper permissions
- Search history can be implemented for better UX
- Faceted search provides drill-down capabilities
Related Documentation ​
- API Services - API documentation
- SearchBar Component - Search bar component
- Common Functions Mixin - Common utilities
- Pages Documentation - All pages overview