5ffe3fbcf7
chore: cascade main → dev/initial-implementation [skip ci]
3.7 KiB
3.7 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Removed
- Removed deploy-manual.yml workflow — switching to Joomla update server method for extension distribution
Added
- Package with component, 2 modules, and web services API plugin
- Component (com_mokojoomstorelocator)
- Admin location CRUD with tabbed edit form (details, address, coordinates, contact, media)
- Leaflet coordinate picker — click map to set lat/lng on admin form
- Locations list with publish/unpublish/delete, search, pagination
- Categories admin with parent/child hierarchy, color, and custom marker icon
- Multi-category support — locations assigned to multiple categories via junction table
- CSV import with 3-step wizard (upload, column mapping, preview/validate)
- CSV export with filter support and UTF-8 BOM for Excel
- Sample data injection (8 Tennessee locations with real coordinates)
- Geocoding service — Nominatim (free default) and Google Geocoding API
- Auto-geocode on save when address present but coordinates missing
- Video URL field with YouTube/Vimeo embed support
- Multiple images field (gallery) per location
- Contact form per location with email delivery and captcha
- Custom fields integration via Joomla com_fields (location + category contexts)
- Component config: geocoding provider, Google API key, auto-geocode toggle
- access.xml with component and category-level ACL permissions
- SQL update schema with versioned migration files
- Filter forms: filter_locations.xml, filter_categories.xml
- populateState for persistent admin list filters
- joomla.asset.json for Web Asset Manager (Leaflet, MarkerCluster, CSS)
- Frontend (site views)
- Locations list with linked titles, distance display, Get Directions buttons
- Single location detail page with embedded map, Schema.org JSON-LD
- Category view — locations filtered by category with color swatch
- SEF URL router (locations, location by alias, category by alias)
- Contact form embedded on location detail page
- Photo gallery and responsive video embed on detail page
- Print button with print stylesheet and static map image
- Category tags with color badges and links
- Responsive CSS with mobile-first grid, click-to-call phone
- Map Module (mod_mokojoomstorelocator_map)
- Leaflet.js with OpenStreetMap tiles (no API key required)
- Google Maps provider (optional, with API key)
- MarkerCluster plugin for both providers
- Category-colored SVG markers with custom icon override
- Category legend below map
- DOM-based popup content (XSS-safe)
- Auto-fit bounds to show all markers
- Get Directions link in popups
- Search Module (mod_mokojoomstorelocator_search)
- Text search (title, address, city, postcode)
- City dropdown filter from distinct values
- Radius filter with configurable options (miles/km)
- "Use My Location" geolocation button with permission handling
- Haversine formula for distance calculation in SQL
- Web Services API (plg_webservices_mokojoomstorelocator)
- CRUD routes for /v1/storelocator/locations
- CRUD routes for /v1/storelocator/categories
- Custom search route: /v1/storelocator/search
- JsonapiView for Locations and Categories
- Package installer
- Auto-enables modules and API plugin on install
- PHP 8.1+ and Joomla 4.4+ version checks
- en-GB and en-US language files for all extensions
Fixed
- Hardcode name and description in all XML manifests (language variables don't resolve during install)