Unit/System Tests Language Change NPM Resource Changed PR-6.1-dev Pending

User tests: Successful: Unsuccessful:

avatar eslam-reda-div
eslam-reda-div
24 Feb 2026

Why

This PR modernizes administrator UX in com_content with progressive async behavior while preserving full synchronous fallback and existing server-side ACL/CSRF protections.

Scope delivered

  1. Async admin contract foundations
  • Feature-flag plumbing for async backend behavior in com_content.
  • Reusable normalized async JSON envelope trait.
  • Shared client async helper with graceful fallback.
  1. Async list interactions in Articles manager
  • Async state actions (publish, unpublish, archive, trash, featured, unfeatured).
  • Async workflow transitions.
  • Async search/filter/order/pagination with list fragment refresh.
  1. Autosave in Article edit
  • Autosave scheduler + dirty-state tracking.
  • Async autosave endpoint contract + status payload.
  • Versioning-safe policy:
    • skip unchanged payload
    • throttle by configured autosave interval
  • Recover last autosaved snapshot + undo recover (session-local MVP).
  1. Custom-field filtering in Articles list
  • Custom-field filter controls in search tools.
  • Query integration for selected custom field + optional value match.
  1. Shared hooks + accessibility
  • Reusable async fragment refresh hooks.
  • Focus restoration after async refresh.
  • aria-live async announcement handling.

Addressed review findings in this update

  • Replaced Object.hasOwn(...) with Object.prototype.hasOwnProperty.call(...).
  • Added redirect handling control (followRedirect) so list flows can refresh fragments without forced navigation.
  • Added isAsyncEnabled() guards in Joomla.submitbutton and Joomla.listItemTask overrides so flags-OFF behavior remains classic/synchronous.
  • Fixed async fallback path to preserve task handling via original submit path.
  • Autosave guard state is now persisted only on successful autosave.
  • Custom-field controls are removed when no custom fields are available.
  • Custom-field query uses EXISTS subquery to avoid duplicate article rows.
  • Cypress autosave initialization test now calls Joomla.contentAutosave.setup() after runtime options are loaded.
  • Fixed PHPDoc alignment in async response trait.

AI disclosure (Joomla policy)

This PR is AI-assisted and explicitly labeled per policy.

I confirm:

  • I manually reviewed and understood all changed code.
  • I validated behavior and adjusted generated code where needed.
  • I checked fallback/safety behavior (flags OFF and ON paths).
  • I removed/rewrote issues identified in prior review.
  • I am fully responsible for correctness, security, maintainability, and licensing compatibility.

Validation performed

  • Unit tests:
    • tests/Unit/Libraries/Cms/MVC/Controller/AsyncAdminResponseTraitTest.php (2 passed)
  • Manual verification checklist:
    • Flags OFF: classic full submit behavior in list/edit
    • Flags ON: async list actions/transitions/filters/pagination
    • Autosave statuses: pending/saving/saved
    • Autosave skip policy: unchanged/throttled
    • Recover + undo recover
    • Custom field filter visibility and filtering
    • Accessibility: focus restoration + aria-live messages

Risk / rollout

  • Scope is intentionally limited to com_content as pilot.
  • Async behavior remains feature-flag gated.
  • Non-async paths remain available and functional.
  • Server-side ACL/CSRF checks are unchanged.
avatar eslam-reda-div eslam-reda-div - open - 24 Feb 2026
avatar eslam-reda-div eslam-reda-div - change - 24 Feb 2026
The description was changed
avatar eslam-reda-div eslam-reda-div - edited - 24 Feb 2026
avatar eslam-reda-div eslam-reda-div - change - 24 Feb 2026
The description was changed
avatar eslam-reda-div eslam-reda-div - edited - 24 Feb 2026
avatar joomla-cms-bot joomla-cms-bot - change - 24 Feb 2026
Category Administration com_content Language & Strings JavaScript Repository NPM Change Libraries Unit Tests
avatar tecpromotion tecpromotion - close - 24 Feb 2026
avatar tecpromotion
tecpromotion - comment - 24 Feb 2026

Hello @eslam-reda-div
Thank you for your contribution. Please check our AI policy how we expect AI contribution are working:
https://developer.joomla.org/generative-ai-policy.html

As this is the third PR with this reference, please stop it.

avatar tecpromotion tecpromotion - change - 24 Feb 2026
Status New Closed
Closed_Date 0000-00-00 00:00:00 2026-02-24 16:42:44
Closed_By tecpromotion
Labels Added: Unit/System Tests Language Change NPM Resource Changed PR-6.1-dev
avatar eslam-reda-div
eslam-reda-div - comment - 24 Feb 2026

Hi @tecpromotion,
Thank you for the reminder, and I’m sorry for the noise caused by my recent PRs.

I want to clarify my process: this was AI-assisted, not AI-submitted blindly.
I studied the Livewire approach myself and used it only as inspiration for async UX patterns in Joomla. I used AI to speed up drafting and iteration, but I manually reviewed, adjusted, tested, and validated the code before submitting.

I understand and respect the Joomla AI policy and your guidance.
If you still prefer I stop this direction, I will do so. If you are open to it, I would appreciate specific technical feedback on scope/approach so I can contribute in the format and quality expected by the project.

Sorry again, and thank you for your time.

Add a Comment

Login with GitHub to post a comment