gitea-actions[bot]
7f4451628d
chore(version): pre-release bump to 01.00.37-dev [skip ci]
2026-06-28 19:55:09 +00:00
gitea-actions[bot]
c8f7422996
chore(version): auto-bump patch 01.00.36-dev [skip ci]
2026-06-28 19:54:54 +00:00
jmiller
8dfc1227cb
feat: add pretty display names for all extensions in Joomla admin
...
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 13s
Universal: Auto Version Bump / Version Bump (push) Successful in 15s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
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 12s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
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
Authored-by: Moko Consulting
2026-06-28 14:54:35 -05:00
gitea-actions[bot]
e8d67215b1
chore(version): pre-release bump to 01.00.35-dev [skip ci]
2026-06-28 18:55:48 +00:00
gitea-actions[bot]
f7bbddd98d
chore(version): pre-release bump to 01.00.34-dev [skip ci]
2026-06-28 18:55:32 +00:00
gitea-actions[bot]
1ece8a006f
chore(version): auto-bump patch 01.00.33-dev [skip ci]
2026-06-28 18:55:15 +00:00
jmiller
5ea2fd2b98
fix: make SQL migration 01.00.02 a no-op to prevent install abort
...
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 10s
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 43s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
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
Joomla aborts the entire package install on any SQL error in update
files. DROP COLUMN fails when catid doesn't exist (fresh installs,
or systems where it was already removed). Since install.mysql.sql
already omits catid, no runtime migration is needed.
Authored-by: Moko Consulting
2026-06-28 13:54:45 -05:00
gitea-actions[bot]
b6900aec6e
chore(version): pre-release bump to 01.00.32-dev [skip ci]
2026-06-28 18:49:53 +00:00
gitea-actions[bot]
ecfb7c426d
chore(version): auto-bump patch 01.00.31-dev [skip ci]
2026-06-28 18:49:42 +00:00
gitea-actions[bot]
8c2bf7b02c
chore(version): pre-release bump to 01.00.30-dev [skip ci]
2026-06-28 18:47:43 +00:00
gitea-actions[bot]
056b339dee
chore(version): auto-bump patch 01.00.29-dev [skip ci]
2026-06-28 18:47:35 +00:00
jmiller
58f3ac96d9
feat: add license key warning and download key preservation
...
Universal: Auto Version Bump / Version Bump (push) Successful in 17s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
Save/restore the download key (dlid) across package upgrades so users
don't lose their license key. Show a warning with direct edit link
when no license key is configured.
Mirrors the pattern from MokoSuiteCross.
Authored-by: Moko Consulting
2026-06-28 13:46:31 -05:00
gitea-actions[bot]
086c50e150
chore(version): pre-release bump to 01.00.28-dev [skip ci]
2026-06-28 18:08:49 +00:00
gitea-actions[bot]
3487072b8a
chore(version): pre-release bump to 01.00.27-dev [skip ci]
2026-06-28 18:08:38 +00:00
gitea-actions[bot]
edc6bbf62c
chore(version): auto-bump patch 01.00.26-dev [skip ci]
2026-06-28 18:08:29 +00:00
jmiller
8b42c016a8
fix: remove IF EXISTS syntax from SQL migration for MySQL 5.7 compat
...
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
Joomla's SQL update runner doesn't support DELIMITER or stored
procedures. DROP COLUMN IF EXISTS is MySQL 8.0.13+ only. Plain
DROP COLUMN is safe here because update files only run on upgrades
from versions that had the catid column.
Authored-by: Moko Consulting
2026-06-28 13:08:14 -05:00
gitea-actions[bot]
41875e7878
chore(version): pre-release bump to 01.00.25-dev [skip ci]
2026-06-28 17:53:42 +00:00
gitea-actions[bot]
797101474a
chore(version): pre-release bump to 01.00.24-dev [skip ci]
2026-06-28 16:24:59 +00:00
gitea-actions[bot]
dccdb88617
chore(version): auto-bump patch 01.00.23-dev [skip ci]
2026-06-28 16:24:51 +00:00
jmiller
2897a1ceba
fix: escape location title in detail map popup to prevent XSS
...
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 9s
Use DOM-based textContent instead of raw string in Leaflet bindPopup()
to prevent HTML injection via location titles.
Authored-by: Moko Consulting
2026-06-28 11:24:31 -05:00
gitea-actions[bot]
926b4c7576
chore(version): pre-release bump to 01.00.22-dev [skip ci]
2026-06-28 16:23:11 +00:00
gitea-actions[bot]
80cefe1624
chore(version): auto-bump patch 01.00.21-dev [skip ci]
2026-06-28 16:23:03 +00:00
jmiller
32b541597a
fix: resolve all open issues — detail map, clustering, CSP, GROUP BY, cleanup ( #34 #57 #58 #59 #60 #61 )
...
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
- Add Leaflet map to location detail page with marker and popup (#57 )
- Implement Leaflet.markercluster with toggleable module parameter (#61 )
- Convert inline <script> to $wa->addInlineScript() for CSP nonce support (#34 )
- Replace category INNER JOIN with EXISTS subquery for ONLY_FULL_GROUP_BY compat (#59 )
- Add delete() override to LocationTable and CategoryTable for junction cleanup (#60 )
- Drop dead catid column and idx_catid index via SQL update 01.00.02 (#58 )
- Update CHANGELOG and README
Authored-by: Moko Consulting
2026-06-28 11:22:40 -05:00
gitea-actions[bot]
85a3566ae3
chore(version): pre-release bump to 01.00.20-dev [skip ci]
2026-06-28 08:08:05 +00:00
gitea-actions[bot]
1b177f267d
chore(version): auto-bump patch 01.00.19-dev [skip ci]
2026-06-28 08:07:56 +00:00
gitea-actions[bot]
1d600184b1
chore(version): pre-release bump to 01.00.18-dev [skip ci]
2026-06-28 03:44:05 +00:00
gitea-actions[bot]
45661df50e
chore(version): pre-release bump to 01.00.17-dev [skip ci]
2026-06-28 03:10:09 +00:00
gitea-actions[bot]
0be86aec5a
chore(version): auto-bump patch 01.00.16-dev [skip ci]
2026-06-28 03:10:01 +00:00
jmiller
7835e77920
fix: rename plugin manifest to match element name
...
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
Joomla's autoloader namespace scanner expects plugin manifests to be
named {element}.xml (e.g. mokosuitestorelocator.xml), not the full
prefixed name (plg_webservices_mokosuitestorelocator.xml). Without the
correct filename, the PSR-4 namespace mapping is not registered in
autoload_psr4.php, causing "Class not found" errors.
Pattern confirmed from MokoSuiteClient's webservices plugin.
Authored-by: Moko Consulting
2026-06-27 22:09:48 -05:00
gitea-actions[bot]
72949fefa5
chore(version): pre-release bump to 01.00.15-dev [skip ci]
2026-06-28 02:59:59 +00:00
gitea-actions[bot]
6c83e5530f
chore(version): auto-bump patch 01.00.14-dev [skip ci]
2026-06-28 02:59:49 +00:00
jmiller
b75677a6ec
fix: add plugin attribute to webservices manifest files element
...
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Joomla's PluginAdapter requires plugin="xxx" on a <files> child to
determine filesystem deployment path and extension element. Without it,
plugin files are not deployed and the element field is empty in
#__extensions. Pattern confirmed from MokoSuiteClient.
Authored-by: Moko Consulting
2026-06-27 21:59:35 -05:00
gitea-actions[bot]
5f8ab19abd
chore(version): pre-release bump to 01.00.13-dev [skip ci]
2026-06-28 02:07:04 +00:00
gitea-actions[bot]
d9460d3f07
chore(version): pre-release bump to 01.00.12-dev [skip ci]
2026-06-28 00:27:09 +00:00
gitea-actions[bot]
8a9a3851e0
chore(version): auto-bump patch 01.00.11-dev [skip ci]
2026-06-28 00:26:59 +00:00
jmiller
36eb55758e
fix: add module attribute to services folder and hardcode package description
...
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 11s
Joomla's ModuleAdapter requires the `module` attribute on a <files> child
to identify the module element. Without it, install fails with "No module
file specified" even when namespace and services/provider.php are present.
Pattern confirmed against MokoSuiteClient modules.
Also hardcodes the package description since packages don't load language
files during install, causing the raw key to display.
Authored-by: Moko Consulting
2026-06-27 19:26:44 -05:00
gitea-actions[bot]
bb30e0cd20
chore(version): pre-release bump to 01.00.10-dev [skip ci]
2026-06-27 20:40:46 +00:00
gitea-actions[bot]
5ccc0246bb
chore(version): auto-bump patch 01.00.09-dev [skip ci]
2026-06-27 20:40:35 +00:00
jmiller
e16e15dc00
fix: align dlid and updateservers with MokoSuiteClient pattern
...
Universal: Auto Version Bump / Version Bump (push) Successful in 13s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Move <dlid> to right after <description> (before <scriptfile>) and add
priority="1" to <server> element, matching the MokoSuiteClient manifest
structure so Joomla properly registers the download key field.
Authored-by: Moko Consulting
2026-06-27 15:40:19 -05:00
gitea-actions[bot]
7c51396d8d
chore(version): pre-release bump to 01.00.08-dev [skip ci]
2026-06-27 20:35:46 +00:00
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