gitea-actions[bot]
4e9e698d2c
chore(version): auto-bump patch 01.00.07-dev [skip ci]
2026-06-27 20:35:36 +00:00
jmiller
81854440de
fix: move dlid before updateservers so Joomla registers download key
...
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
The <dlid> element was placed after </updateservers>, causing Joomla's
installer to skip it when registering the update site. Moving it before
<updateservers> ensures the extra_query field is populated in the
#__update_sites table.
Authored-by: Moko Consulting
2026-06-27 15:35:24 -05:00
gitea-actions[bot]
569f907512
chore(version): pre-release bump to 01.00.06-dev [skip ci]
2026-06-27 20:24:14 +00:00
gitea-actions[bot]
4258fd1d4f
chore(version): auto-bump patch 01.00.05-dev [skip ci]
2026-06-27 20:23:59 +00:00
jmiller
3efd423e74
fix: add module services/provider.php and fix manifest packaging
...
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
Both modules were missing services/provider.php — the Joomla 5 DI
entry point that registers the ModuleDispatcherFactory. Without it,
Joomla falls back to a mod_*.php entry point file that doesn't exist,
causing "No module file specified" on install.
Also moves access.xml into admin/ and adds it to the component
manifest so it gets included in the package ZIP.
Authored-by: Moko Consulting
2026-06-27 15:23:31 -05:00
gitea-actions[bot]
f0d8c7ecbf
chore(version): pre-release bump to 01.00.04-dev [skip ci]
2026-06-27 20:19:25 +00:00
gitea-actions[bot]
f469aa7e64
chore(version): pre-release bump to 01.00.03-dev [skip ci]
2026-06-27 19:44:16 +00:00
gitea-actions[bot]
1c443be9ea
chore(version): auto-bump patch 01.00.02-dev [skip ci]
2026-06-27 19:44:07 +00:00
jmiller
6426fee428
feat: v1.2 multi-category, REST API, ACL, security hardening ( #1 , #2 , #29 , #30 , #31 , #34 , #48 )
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 10s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 37s
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Multi-category support with parent/child hierarchy, junction table,
admin CRUD, and per-category custom marker icons on the Leaflet map.
REST API via Web Services plugin with JSON:API endpoints. ACL
permissions via access.xml. SQL update schema for safe upgrades.
Shop integration bridge (LocationBridgeHelper, LocationSavedEvent).
Security: CSV formula injection prevention, MIME validation, file size
limit, ORDER BY allowlist, map height CSS regex validation.
Authored-by: Moko Consulting
2026-06-27 14:40:02 -05:00
Jonathan Miller
cf495cd8ce
feat: FocalPoint (Shack Locations) migration import
...
Add one-click import from installed FocalPoint/Shack Locations component:
- Reads #__focalpoint_locations table directly via Joomla DB layer
- Parses customfieldsdata JSON for email, website, hours, phone
- Maps FocalPoint schema to MokoSuiteStoreLocator fields
- Copies coordinates (DECIMAL 10,6 → 10,8), published state, ordering
- Combines description + fulldescription into single description field
- Import button on admin Import view with CSRF + ACL protection
- Graceful handling: checks table exists, reports per-row errors
Field mapping:
FocalPoint.title → title
FocalPoint.address → address (single field, no city/state split)
FocalPoint.latitude/longitude → latitude/longitude
FocalPoint.phone → phone
FocalPoint.customfieldsdata.email → email
FocalPoint.customfieldsdata.website → website
FocalPoint.customfieldsdata.hours → hours
FocalPoint.state → published
Authored-by: Moko Consulting
2026-06-27 14:40:01 -05:00
gitea-actions[bot]
6e20567240
chore(version): pre-release bump to 01.00.01-dev [skip ci]
2026-06-27 14:40:00 -05:00
Jonathan Miller
97fb560864
chore: align version format to MokoStandards XX.YY.ZZ (01.00.00)
...
mokocli tools require two-digit zero-padded version groups (01.00.00)
per MokoStandards convention. Fixes auto-release pipeline failure.
Changed in: pkg manifest, component manifest, both module manifests,
and CHANGELOG.md.
Authored-by: Moko Consulting
2026-06-27 14:40:00 -05:00
Jonathan Miller
753c6336be
chore: sync workflows from Template-Joomla (metadata first-class fields)
...
Pull latest workflow versions from MokoConsulting/Template-Joomla.
These use the updated mokocli tools with manifest metadata as
first-class fields instead of README FILE INFORMATION blocks.
Updated: ci-joomla.yml, pre-release.yml, workflow-sync-trigger.yml
Added: version-set.yml
Removed: deploy-manual.yml, update-server.yml, composer-publish.yml
(superseded by auto-release.yml pipeline)
Authored-by: Moko Consulting
2026-06-27 14:39:59 -05:00
jmiller
7a86ada1fa
chore: sync rc-revert.yml from Template-Generic [skip ci]
2026-06-27 05:32:28 +00:00
jmiller
37f5a99e99
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-06-27 00:49:24 +00:00
jmiller
e1bb1ca99d
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-25 19:46:56 +00:00
jmiller
d61bb1446a
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-25 19:46:55 +00:00
jmiller
be622219df
chore: sync ci-issue-reporter.yml from Template-Generic [skip ci]
2026-06-25 19:46:53 +00:00
jmiller
b3d5ee4f5d
chore: sync workflow-sync-trigger.yml from Template-Generic [skip ci]
2026-06-25 17:11:49 +00:00
jmiller
90f6ebf0fa
chore: sync version-set.yml from Template-Generic [skip ci]
2026-06-25 17:11:48 +00:00
jmiller
adef7ec7a7
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-25 17:11:48 +00:00
jmiller
05c3feff9c
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-06-25 17:11:47 +00:00
jmiller
3422258218
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-25 17:11:46 +00:00
jmiller
cacb997162
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-25 17:11:46 +00:00
jmiller
8084fc60cc
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-25 17:11:45 +00:00
jmiller
2b18dcc72c
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-06-25 17:11:45 +00:00
jmiller
4ee79efffe
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-25 17:11:44 +00:00
jmiller
3453fcb590
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-25 17:11:44 +00:00
jmiller
2fc3a9d2b4
chore: sync version-set.yml from Template-Generic [skip ci]
2026-06-24 11:51:14 +00:00
jmiller
dc3d85d55b
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-24 11:51:11 +00:00
jmiller
4a2a002b32
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-23 18:46:27 +00:00
jmiller
421282f32c
chore: remove security-audit.yml -- handled by MokoGitea
2026-06-23 18:05:42 +00:00
jmiller
3fa7508794
chore: remove deploy-manual.yml -- no longer needed
2026-06-23 18:00:14 +00:00
jmiller
6dd93059cc
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-23 17:51:16 +00:00
jmiller
0836f2f21d
chore: remove deprecated .mokogitea/workflows/composer-publish.yml [skip ci]
2026-06-23 17:38:10 +00:00
jmiller
e3e3e2a1f7
chore: remove deprecated .mokogitea/workflows/update-server.yml [skip ci]
2026-06-23 17:38:06 +00:00
jmiller
b6a24d7952
chore: remove deprecated .mokogitea/workflows/deploy-manual.yml [skip ci]
2026-06-23 17:38:03 +00:00
jmiller
cc70e4abc2
feat: v1.1 competitive parity — proximity, directions, geocoding, CSV import ( #55 )
2026-06-23 17:26:45 +00:00
Jonathan Miller
c56f3473b1
fix: review round 2 — geocode 0-coord, tel: sanitization, Factory ACL
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Joomla: Extension CI / Lint & Validate (pull_request) Successful in 7s
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 30s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 6s
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 17s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
- Fix geocoding trigger: use isset+is_numeric instead of !empty for
coordinate detection (same 0.0 bug pattern as Haversine fix)
- Sanitize tel: href to digits/+/-/() only (prevents URI injection)
- Use Factory::getApplication() for ACL check (consistent with codebase)
Authored-by: Moko Consulting
2026-06-23 12:26:18 -05:00
Jonathan Miller
ddb25fa99f
chore: remove legacy source/src/ directory (old MokoJoom naming)
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 8s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Universal: Auto Version Bump / Version Bump (push) Successful in 15s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 14s
Joomla: Extension CI / Lint & Validate (pull_request) Successful in 34s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Delete 26 files from the pre-rename MokoJoomStoreLocator structure.
These were superseded by source/packages/ with MokoSuite naming.
No workflow or manifest references remain to the old paths.
Closes #52
Authored-by: Moko Consulting
2026-06-23 12:23:05 -05:00
Jonathan Miller
c8a3c58495
fix: code review fixes — security, 0-coord bug, BOM, ACL
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Lint & Validate (pull_request) Successful in 9s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: Auto Version Bump / Version Bump (push) Successful in 10s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 52s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Security:
- ACL check (core.create) in ImportController before processing
- File extension validation (.csv/.txt only) on upload
- Website href restricted to http/https scheme (prevents javascript: XSS)
Bug fixes:
- Fix 0.0 coordinate rejection: use null checks instead of != 0.0
(coordinates at equator/prime meridian are valid locations)
- Fix Haversine guard using !== null instead of PHP truthiness
- Fix geocoding result check: isset+is_numeric instead of !empty
- Strip UTF-8 BOM from first CSV header (fixes Excel-generated imports)
- Cap radius at 25000 to prevent unreasonable distance queries
Authored-by: Moko Consulting
2026-06-23 12:07:03 -05:00
Jonathan Miller
7ef9a23ef8
feat: v1.1 competitive parity — proximity search, directions, geocoding, CSV import
...
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Universal: Build & Release / Promote to RC (pull_request) Failing after 15s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Successful in 38s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 43s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Haversine proximity search:
- LocationsModel filters by distance using Haversine formula
- populateState captures lat/lng/radius/radius_unit from search form
- Distance-sorted results when proximity filter is active
- Hidden radius_unit field added to search module form
Get Directions:
- Google Maps directions link on location detail page (no API key)
- Directions link in Leaflet popup markers
Auto-geocoding:
- LocationModel::save() override auto-geocodes empty coordinates
- Calls Nominatim/OSM API when address present but coords missing
- Success/failure messages via Joomla enqueueMessage
CSV Import:
- ImportController handles file upload with CSRF token check
- ImportModel parses CSV via SplFileObject with configurable delimiter
- Auto-detects column headers (title/name, address/street, city, etc.)
- Per-row validation via LocationTable::bind()->check()->store()
- Import view with upload form, delimiter picker, and column help
- Toolbar button and submenu item for import access
Addresses #54
Authored-by: Moko Consulting
2026-06-23 11:50:02 -05:00
jmiller
d3e73a0ea4
feat: complete store locator implementation (Phases 1-3) ( #53 )
2026-06-23 16:10:29 +00:00
Jonathan Miller
e26d0ed400
fix: code review fixes, Joomla 5/6 compat, XSS prevention
...
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 8s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 9s
Generic: Project CI / Lint & Validate (pull_request) Successful in 34s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3s
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 10s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Project CI / Tests (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Security:
- Fix stored XSS in Leaflet popup — HTML-escape loc.title/address/phone
- Use HTMLHelper::_('content.prepare') for description output
Joomla 5/6 compatibility:
- Bump PHP minimum to 8.2, Joomla minimum to 5.0.0
- script.php implements InstallerScriptInterface with typed signatures
- Restore updateservers and dlid in package manifest
- Update all manifest creationDates to 2026-06-23
Code quality:
- Replace hard-coded English errors with Text::_() language strings
- Add COM_MOKOJOOMSTORELOCATOR_ERROR_* language keys
- Use Text::_() for Locations list toolbar title
- Import missing Text class in LocationTable and Locations HtmlView
Documentation:
- Update CLAUDE.md: MokoSuite naming, source/ paths, PHP 8.2, namespace
- Update README: Joomla 5/6, PHP 8.2+, MySQL 8.0+
Authored-by: Moko Consulting
2026-06-23 11:08:46 -05:00
Jonathan Miller
f73e536d05
chore: fix script.php location, update README and changelog for release
...
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 4s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Generic: Project CI / Lint & Validate (pull_request) Successful in 33s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Project CI / Tests (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
- Move script.php to source/ (alongside package manifest) with MokoSuite naming
- Update README: map and search now listed as implemented, not planned
- Set changelog version to 1.0.0
Authored-by: Moko Consulting
2026-06-23 11:02:19 -05:00
Jonathan Miller
4894a703c2
feat: wire up map and search modules with Leaflet and geolocation (Phase 3)
...
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Universal: Build & Release / Promote to RC (pull_request) Failing after 7s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 7s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 7s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Generic: Project CI / Lint & Validate (pull_request) Successful in 27s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Generic: Project CI / Tests (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Map module:
- Dispatcher queries published locations with coordinates from DB
- Leaflet.js + OpenStreetMap tile layer integration
- Markers with popup info (name, address, phone)
- Auto-fit bounds to show all markers
- Leaflet CSS/JS via Joomla Web Asset Manager
Search module:
- Dispatcher loads distinct cities/states for dropdown filters
- Builds radius options from module params
- City dropdown filter (toggled by show_city_filter param)
- Radius dropdown with configurable values and unit (miles/km)
- Geolocation "Use My Location" button via browser API
- Hidden lat/lng fields for proximity search passthrough
- New language strings for all search UI elements
Both dispatchers now implement DatabaseAwareInterface for DB access.
Addresses #51 , #3 , #35
Authored-by: Moko Consulting
2026-06-23 10:45:50 -05:00
Jonathan Miller
07a4fcc0b5
docs: update README with MokoSuite naming and current feature status
...
Rename from MokoJoomStoreLocator to MokoSuiteStoreLocator, update
package element names, add implemented vs planned feature sections,
add development instructions.
Authored-by: Moko Consulting
2026-06-23 10:34:00 -05:00
Jonathan Miller
4b37489c41
feat: add site frontend with locations list, detail view, and SEF router (Phase 2)
...
Build the complete public-facing frontend for the store locator:
- Site DisplayController routing to list and detail views
- LocationsModel with search, city, and state filters (published only)
- LocationModel for single location by ID
- Locations list template with Schema.org LocalBusiness markup
- Location detail template with address, contact, hours, map placeholder
- SEF URL router with menu/standard/nomenu rules
- Menu item types: "All Locations" list and "Location Detail" picker
- Site language strings for views and menu items
- Router wired into component extension class and service provider
- .gitignore exception for source/packages/*/site/
Addresses #50
Authored-by: Moko Consulting
2026-06-23 08:49:07 -05:00
Jonathan Miller
c415d4813f
feat: complete admin CRUD for locations (Phase 1)
...
Add full admin editing capability for store locations:
- LocationController (FormController) for save/cancel/apply
- LocationsController (AdminController) for bulk publish/unpublish/delete
- Location edit view with tabbed form (Details, Address, Contact)
- Admin list renders data rows with edit links and published toggle
- LocationTable::check() validates title, auto-alias, lat/lng, timestamps
- LocationsModel with populateState(), search/published filters, ordering
- filter_locations.xml with search tools bar
- Language strings for filters, sort options, save messages
Also includes MokoSuite-renamed package scaffolding (source/packages/).
Removes unused Makefile.
Closes #32 — populateState for filter persistence
Closes #33 — filter XML forms for admin list
Authored-by: Moko Consulting
2026-06-23 08:40:02 -05:00
jmiller
72cde2c8ca
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-22 00:35:24 +00:00