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.