Joomla Academy 2026 – Ajaxified Backend [Midterm Report]
By Adarsh Dubey on 2026-07-15 17:25 in Academy
Here is a summary of the work completed during the first half of the coding period
-
Added SubmissionContext to derive the component, view, controller and normalized task action from submitted administrator forms.
-
Added SubmissionEligibility backed by server provided Joomla script options, allowing supported tasks to use AJAX while unsupported tasks continue through native form submission.
-
Added a reusable SubmissionTransport that submits the existing form as FormData, follows controller redirects and blocks duplicate in flight submissions for the same form.
-
Added ResponseSnapshot to parse the returned administrator document and collect the final response URL, canonical form, Joomla options, messages, assets and synchronization boundaries.
-
Added workspace synchronization for the browser URL, form action and server generated form controls after redirected actions such as Save and Save as Copy.
-
Added named progressive update boundaries for replacing server rendered administrator regions.
-
Added separate synchronization of j-main-container and the Atum toolbar using the HTML returned by Joomla.
-
Updated joomla-toolbar-button to rediscover nested or slotted buttons after toolbar replacement and to clean up selection state listeners correctly.
-
Added Joomla message replay and runtime option synchronization after each successful partial update.
-
Added module asset discovery and loading when the response requires JavaScript modules that are not already present in the document.
-
Added RuntimeLifecycleManager to activate newly inserted markup and dispatch joomla:updated after boundary replacement.
-
Enabled AJAX for validated edit form actions such as Save and Save as Copy while keeping Save & New, Cancel and other navigational tasks native.
- Added submission progress feedback using Joomla’s core loader, with a 200px spinner indicating that the AJAX request is being processed.
-
Added AjaxifiedListViewTrait and the progressive synchronization HTML helper so each list view can declare its supported task suffixes and replacement boundaries from PHP.
-
Enabled AJAX list refreshes for search, filters, clear, ordering, pagination and page limit changes, together with supported actions such as publish, unpublish, archive, trash, delete, check-in and batch.
-
Updated SearchTools, multiselect, list row actions and toolbar selection handling so they continue working after the list form is replaced.
-
Integrated Martina’s column toggle web component, assigned stable table selectors to supported views and made the component reconnect to the newly rendered table after joomla:updated.
-
Rolled the list integration out to 51 administrator views, including selected Installer, cache, check-in, Finder, Scheduler and other special purpose views.
-
Wrote an article for the Joomla Community Magazine explaining Declarative Partial Updates, their browser native model and how they can support server rendered partial synchronization in Joomla.
Midterm progress
-
The implementation approach changed from the original proposal after adopting Dimitris Grammatiko’s Declarative Partial Updates model, using server rendered synchronization instead of component specific AJAX responses.
-
The agreed midterm goal of completing the Ajaxified Backend foundation and extending it across administrator edit and list workflows has been achieved.
- The project is on track for the second half of the coding period, with the next major milestone focused on implementing Autosave.
Plans for the second half
-
Design and implement Autosave for administrator edit forms.
-
Add background draft persistence without triggering the normal Joomla save workflow on every autosave request.
-
Restore unsaved drafts when an item is reopened after a reload, browser closure or interrupted editing session.
-
Integrate Autosave with Joomla’s existing locking, validation and version history behaviour where appropriate.
-
Extend administrator list filtering to support custom fields.
-
Complete testing, documentation and final cleanup before the final evaluation.