02-Dec-2025 — Content: 4 features #97
New Features
content: add search filtering and UI polish to Index fixes #97 phase 4
Updated row type selector:
- Added displayValue() method to customize enum display
- Maps ALBUM_INDEX to "Index" for cleaner UI
- Keeps internal enum value unchanged for backward compatibility
Enhanced album index view with search filtering:
- Added search input with FontAwesome search icon
- Only shows search when >5 items (shouldShowSearch)
- filteredPageContent() filters columns by title and contentText
- Search applies to both action buttons and map rendering
- Case-insensitive substring matching
All phases complete for issue #97:
- Phase 1: Location row type for dynamic content
- Phase 2: Index multi-content support (albums + pages)
- Phase 3: Map rendering with clustering
- Phase 4: Search filtering and UI polish
content: add map rendering to Index with clustering fixes #97 phase 3
Created DynamicContentViewAlbumIndexMapComponent:
- Leaflet-based map with marker clustering support
- Configurable map height, clustering threshold
- Click-to-navigate markers with rich popups
- Image thumbnails, titles, descriptions in popups
- Auto-fit bounds to show all markers
Updated content-text.model:
- Added location property to PageContentColumn interface
- Enables location data passthrough from pages to map
Enhanced LocationExtractionService:
- Now includes location coordinates in extracted columns
- Supports geocoded data for map rendering
Updated album index view component:
- Multi-render mode support (action buttons + map)
- Renders modes in selection order
- Passes map configuration from albumIndex to map component
- getRenderModes() defaults to ACTION_BUTTONS for backward compatibility
Added map configuration UI to album index editor:
- Render modes multi-select (action buttons, map)
- Conditional map config section (height, clustering toggle, threshold)
- ensureMapConfig() initializes defaults when MAP mode selected
- Defaults: height 500px, clustering enabled, threshold 10 items
content: enhance Index with multi-content support fixes #97 phase 2
Extended AlbumIndexService to support multiple content types:
- Added contentTypes property to AlbumIndex interface
- Defaults to [IndexContentType.ALBUMS] for backward compatibility
- Refactored album extraction into extractAlbumColumns method
- Integrated LocationExtractionService for PAGES content type
- Aggregates albums and pages based on contentTypes selection
Updated album index edit UI:
- Added ng-select multi-select for content type selection
- Selection order determines display order
- Initialization ensures backward compatibility
- Changed summary text from "albums" to "items" for generic display
Fixed Location edit component:
- Corrected AlertTarget import from alert-target.model
- Properly initialized notify instance in ngOnInit
- Added notification target template reference
content: add Location row type for dynamic content fixes #97 phase 1
Add new Location row type to capture and display location data within dynamic content pages.