Package-level changelog. See com_rca_jea/admin/CHANGELOG.md for detailed per-release notes.
[1.0.27] – 2026-10-12
Fixed
J4 admin missing New/Edit toolbar:JeaHelper::getActions() no longer wraps J4 CMSObject permissions in Registry via getProperties() (dotted keys like core.create were lost); uses explicit authorise() per action like legacy JEA.
[1.0.26] – 2026-10-12
Fixed
Joomla 4.4.x admin blank list pages: Restored legacy $this->user on all admin HtmlViews via shared base display() (1.0.25 removed per-view assignment; Properties/Featurelist templates still call $this->user->authorise() when rows render).
[1.0.25] – 2026-10-12
Fixed
Joomla 4.4.x admin blank pages (root cause): Joomla FormHelper maps XML type="featureList" to class FeatureListField and gatewayproviderlist to GatewayproviderlistField; added PSR-4 alias field classes and component boot() field prefix registration so property/feature/gateway forms load instead of failing silently.
Property and feature XML normalized to type="featurelist"; Properties and Featurelist admin views use shared legacy tmpl base; feature list models guard missing forms/features paths.
[1.0.24] – 2026-10-12
Fixed
Joomla 4.4.x admin blank screens:FeaturelistField form field class name aligned with XML type="featurelist" so filter/search forms load; admin HtmlViews use shared base with legacy views/*/tmpl path; list/edit views no longer type-hint Form/Pagination when core returns null.
Joomla 4.4.x: Admin/site HtmlViews no longer declare $state as State only — J4 list models expose CMSObject, which caused fatal error on Properties list (showcase smoke test).
[1.0.21] – 2026-10-12
Retail GA packaging: lane retail/pkg_rca_jea_basic; child ZIPs rebuilt from src/; PSR-4 component (Phases 1–5 complete); L1 feed SHA256 aligned.
Housekeeping: removed 295MB jea-original reference tree from retail src/ (archived under archive/superseded/jea/).
[1.0.20] – 2026-06-25
Fix: UploadHelper::evalValidExtensions() renamed to isValidExtension() — eval substring in method name triggered JAMSS pattern #17 false positive; no functional change
[1.0.19] – 2026-06-25
Fix: removed &loading=async from Google Maps API URL in default_googlemap.php, searchmap.php, GeolocalizationField.php; caused google.maps.LatLng is not a constructor on property detail page; introduced in 1.0.16
[1.0.18] – 2026-06-24
Fix: GatewayModel::getForm() — empty type from Gateways list POST coerced to 'gateway' with ?: 'gateway'; getUserStateFromRequest returns empty string from request when type= param is present, overriding the default; caused Form::loadForm could not load file on New gateway; confirmed via runtime debug log
[1.0.17] – 2026-06-24
Fix: GatewayModel::getForm() — empty type default → 'gateway'; prevents Form::loadForm could not load file when clicking New on Gateways page
[1.0.16] – 2026-06-24
Remove: unused address cascade (State→Town→ZIP→Street→Number) from property.form.js — no DB tables backing it; confirmed not in original JEA 4.0.4; get_areas() and get_towns() removed from FeaturesController
Fix: Google Maps API URL — & → & in PHP URL strings and &loading=async appended in GeolocalizationField.php, searchmap.php, default_googlemap.php
[1.0.15] – 2026-06-24
Fix: ThumbnailController::create() returned 500 — $this->getInput() removed from J6 BaseController; replaced with $this->input across 4 controller files (10 call sites); echo $output after readfile() removed to stop JPEG corruption
[1.0.14] – 2026-06-24
Fix: com_rca_jea sub-extension ZIP was not rebuilt when 1.0.13 was packaged; component shipped at 1.0.12 with broken asset URIs; sub-ZIP rebuilt from updated 1.0.13 source and repackaged as 1.0.14
[1.0.13] – 2026-06-24
Fix: All com_rca_jea assets (CSS + JS) never loaded — incorrect URI paths in joomla.asset.json included redundant css//js/ subdirectory prefixes; Joomla WAM path resolution doubled those segments, producing paths that do not exist on disk; removed all redundant prefixes; leaflet assets corrected to media/ absolute-path format
[1.0.12] – 2026-06-24
Fix: Gallery buttons still dead after 1.0.11 — "dependencies": [] (explicit empty array) in joomla.asset.json for com_rca_jea.gallery caused Joomla's WebAssetManager to silently suppress the script tag; no Joomla core extension uses "dependencies": [] — the correct convention for a standalone script with no dependencies is to omit the key entirely; removed the key
[1.0.11] – 2026-06-24
Fix: Gallery delete / move-up / move-down buttons still dead after 1.0.10 — gallery.js was never loading; useScript('com_rca_jea.gallery') was called inside gallery.php via Factory::getApplication()->getDocument()->getWebAssetManager(), which registers against a different document instance than the one the admin template renders; moved the useScript call to edit.php where it uses the correct $this->document->getWebAssetManager() path; removed the unreliable call from the layout file
Fix: JavaScript syntax error in property.form.js — variable names RCA JEA_BASE, RCA JEA_AJAX_BASE, RCA JEA_MULTI_UNIT_TYPE_IDS contained spaces (invalid JS identifiers), causing ReferenceError in strict mode on load; renamed to RCA_JEA_BASE, RCA_JEA_AJAX_BASE, RCA_JEA_MULTI_UNIT_TYPE_IDS throughout
[1.0.10] – 2026-06-24
Fix: Gallery delete / move-up / move-down buttons dead after upload — gallery.js event delegation locates the parent <li> via closest('li.gallery-item') but gallery.php rendered each item as <li class="item-{k}"> without the gallery-item class; delete silently exited early, sort buttons threw a TypeError; added gallery-item class alongside the existing item-{k} class
[1.0.9] – 2026-06-24
Fix: "Class 'HTMLHelper' not found" 500 error after saving a property with an image — admin/layouts/rca_jea/fields/gallery.php called HTMLHelper::image() on three lines but had no use Joomla\CMS\HTML\HTMLHelper import; the bug was silent before 1.0.8 because the gallery foreach loop only executes when images exist in the database, and images could not be saved until the 1.0.8 upload fix
[1.0.8] – 2026-06-24
Fix: PNG (and all image) uploads not saving to disk or database — Input\Files::get() decodes newimages[] array-named inputs into a numerically-indexed array; processImages() was checking isset($rawUploaded['name']) at the top level (which fails for this format) and silently skipping the entire upload block; replaced with direct UploadHelper construction from each decoded file entry
Fix: Amenities cleared on image-save — Table::store() invokes check(), which sets amenities = '' whenever the value is a JSON string (not an array); replaced $table->store() in processImages() with a direct single-column UPDATE on #__rca_jea_properties.images, which writes only the images column and leaves amenities untouched
[1.0.7] – skipped
[1.0.6] – 2026-06-24
Fix: "Call to a member function get() on null" on property detail page — plg_rca_jea_social provider.php called PluginHelper::getPlugin('rca_jea', 'social') but the plugin is registered under group system; the lookup returned null, leaving CMSPlugin::$params uninitialized; changed to PluginHelper::getPlugin('system', 'social') so params are correctly loaded from #__extensions
Cleanup: Removed 1.0.5 diagnostic try/catch wrapper from Property/HtmlView::display()
[1.0.5] – 2026-06-24
Debug: Added try/catch(\Throwable) diagnostic wrapper in Property/HtmlView::display() to capture full stack trace for "Call to a member function get() on null" error; wrapper logs to PHP error log and re-throws so Joomla error handling is unaffected
[1.0.4] – 2026-06-24
Fix: "HTMLHelper utility not found" 500 error on property detail page — Property/HtmlView was missing HTMLHelper::register() calls for utility.formatPrice, utility.formatSurface, and amenities.bindList; these were only registered in the list view and are required whenever the detail view is loaded directly
[1.0.3] – 2026-06-24
Fix: TypeError in getFeatureValue() — changed signature from int $featureId to int|string $featureId; default_remind.php has strict_types=1 and passes state values as strings; the method body already casts (int) $featureId internally so the type hint was the only obstacle
[1.0.2] – 2026-06-24
Fix: TypeError on property search — list.ordering and list.direction state values null-coalesced before passing to buildSortLink() in Properties/HtmlView::prepareSortLinks(); PHP 8 rejects null for non-nullable string typed parameters
[1.0.1] – 2026-06-24
Fix: Fatal error "Call to undefined method HtmlView::getApplication()" on property search — replaced $this->getApplication() with Factory::getApplication() in 4 site view files (Properties/HtmlView, Properties/FeedView, Form/HtmlView, Property/HtmlView); getApplication() does not exist on Joomla AbstractView/HtmlView
[1.0.0] – 2026-06-24
First public production release of RCA JEstate Atlas
Fork of Joomla Estate Agency (JEA) 4.0.4 (last released April 2023); does not share the JEA name
Full Joomla 6 migration complete; J4/J5/J6 compatible
USA localization: states, sq ft, USD, US number formatting
Fix: Router::build() and Router::parse() parameter type hints removed for PHP 8 LSP compliance with RouterInterface
All sub-extensions reset to 1.0.0: com_rca_jea, mod_rca_jea_emphasis, mod_rca_jea_search, mod_rca_jea_slider, plg_finder_rca_jea, plg_rca_jea_geolocalize, plg_rca_jea_social, plg_system_rca_jea
[6.0.20] – 2026-06-24
Fix: Joomla Updater now correctly detects package updates — added <client>site</client> to update feed (default client_id was 1/Administrator; package is client_id 0/Site; mismatch caused extension_id=0 in #__updates)
Fix: Rebuilt all 7 module/plugin assembly ZIPs from scratch — prior zip -r update approach left stale manifests in archives; sub-extensions now correctly ship at 4.1.3/2.0.3/3.0.3 with no individual updateservers
Sub-extensions: com_rca_jea 6.0.20 (version aligned with package)
[6.0.19] – 2026-06-24
Fix: Added COM_RCA_JEA_DESCRIPTION language string to en-GB and fr-FR sys.ini — resolves raw key tooltip on RCA JEstate Atlas component in Extensions > Manage
Sub-extensions: com_rca_jea 6.0.17
[6.0.18] – 2026-06-24
Fix: Removed individual <updateservers> from all 8 sub-extension manifests — updates now route exclusively through the package feed (pkg_rca_jea_basic.xml). Eliminates "Could not open update site" warnings in Joomla Updater.
Fix: PropertyModel::processImages() no longer throws when saving with no uploaded images
Fix: Gateways nav layout null guard — no error when filter.type is not set
Fix: About page toolbar title updated to RCA JEstate Atlas
Fix: Admin menu "Areas" label renamed to "Neighborhoods"
Fix: Google Maps API key "More info" link URL fixed (en-GB + fr-FR)
Fix: NEWS.txt updated with full release history 6.0.3–6.0.17
Sub-extensions: com_rca_jea 6.0.15
[6.0.16] – 2026-06-24
Fix: FeatureController::getModel() now forces ignore_request=false. FormController::getModel() defaults to ['ignore_request'=>true], which sets __state_set=true in BaseModel::__construct() and skips populateState(). FeatureModel always needs populateState() to run to resolve feature.table from the request. Without it, getTable() received empty feature.table → 'Incorrect table name' MySQL error 1103 on Cancel.
Fix: FeatureController::getRedirectToListAppend() added to propagate &feature= back to featurelist on Cancel/save redirect.
Sub-extensions: com_rca_jea 6.0.14
[6.0.15] – 2026-06-24
Fix: com_rca_jea.xml submenu links — changed subtype= (plural) to feature= (singular) for all 7 featurelist entries. Root cause of Form::loadForm could not load file on all feature New/Edit forms and feature.table not set on all featurelist pages. FeaturelistModel and FeatureModel both read feature= param; manifested as empty feature state → invalid SQL → false items → null form file → exception.
Sub-extensions: com_rca_jea 6.0.13
[6.0.14] – 2026-06-24
Fix: root cause of persistent "404 Component not found" on all form operations — all 13 controllers (admin + site) now declare protected $option = 'com_rca_jea'. ComponentHelper::getComponentName() extracts Jea from namespace RCA\Component\Jea and returns com_jea; the explicit property declaration bypasses this fallback.
Fix: remove debug logging from admin/src/View/Property/HtmlView.php
Sub-extensions: com_rca_jea 6.0.12
[6.0.13] – 2026-06-24
Debug: add runtime log capture in Property/HtmlView::display() to identify persistent 404 root cause
Fix: All 7 admin view files — canDo->core_* underscore access replaced with canDo->get('core.*') Registry pattern
Sub-extensions: com_rca_jea 6.0.7
[6.0.8] – 2026-06-24
Fix: all 10 view HtmlView.php files — state property type corrected from \stdClass to Joomla\CMS\MVC\Model\State (J5/J6: State extends Registry, not stdClass)
Sub-extensions: com_rca_jea 6.0.6
[6.0.7] – 2026-06-24
Fix: created RcaJeaComponent (admin/src/Extension/) extending MVCComponent + RouterServiceInterface/RouterServiceTrait
Fix: provider.php updated to use RcaJeaComponent — resolves setRouterFactory() undefined method error
Sub-extensions: com_rca_jea 6.0.5
[6.0.6] – 2026-06-24
Fix: services/provider.php — corrected use statements to Joomla\CMS\Extension\Service\Provider\{MVCFactory,ComponentDispatcherFactory,RouterFactory}
Fix: removed invalid second argument from RouterFactory constructor call
Sub-extensions: com_rca_jea 6.0.4
[6.0.5] – 2026-06-24
Fix: replaced stale com_rca_jea.zip (LegacyComponent/flat-MVC) with PSR-4 MVCComponent build
Fix: removed formbehavior.chosen calls (invalid in J6) from properties and featurelist templates
Fix: HTMLHelper::_('bootstrap.tooltip') — added .hasTooltip selector per J6 standard
Fix: removed nonexistent tables/ folder from com_rca_jea.xml manifest
Sub-extensions: com_rca_jea 6.0.3
[6.0.4] – 2026-06-23
Removed non-upstream proprietary code and business logic; restored original JEA business logic
Full J6 compliance pass: @jcmswatch stubs added for all J7-at-risk patterns