User tests: Successful: Unsuccessful:
Pull Request resolves #46904 .
The code was using direction: rtl to visually flip the grid.
But:
RTL was designed for text flow — not structural layout inversion of tables with mixed content (like time selectors).
The time row is semantically LTR (HH:MM), so it should never inherit RTL layout direction.
This PR keeps the calendar RTL where it matters (header + day grid), but force only the time row to behave LTR without breaking table layout.
This has js and css changes so either use a prebuilt package or npm ci
Install the Persian Farsi language
Check the display of the calendar field in BOTH the site and the admin interface (the publish date is a good field to check)
You can check that the fields are hours or minutes by simply observing how big the select is.
screenshot showing some missing styling AND the time is displayed minutes/hours
Please select:
Documentation link for guide.joomla.org:
No documentation changes for guide.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
| Status | New | ⇒ | Pending |
| Category | ⇒ | Repository NPM Change JavaScript Layout |
| Labels |
Added:
NPM Resource Changed
Frontend Template
bug
PR-5.4-dev
RTL
|
||
@richard67 i converted it to spaces as requested but please note that it was tabs before. And just looking at the files in this folder they are a mix of tabs and spaces
also please add the admin template tag as this fix is universal
@richard67 i converted it to spaces as requested but please note that it was tabs before. And just looking at the files in this folder they are a mix of tabs and spaces
Oh, I'm sorry, it was not my intention that you change it completely in these js files. I only meant some places where you had added or modified code. Maybe better revert the last commit, then I can make a few change suggestions so you know what I meant.
Again, sorry for the trouble, I was not clear enough.
also please add the admin template tag as this fix is universal
Done.
| Labels |
Added:
Backend Template
|
||
@brianteeman Now it looks good. Again sorry for the inconvenience, it was my mistake.
RTL was designed for text flow — not structural layout inversion of tables with mixed content (like time selectors).
The time row is semantically LTR (HH:MM), so it should never inherit RTL layout direction.
I fully agree with that, 100% right.
I have tested this item ✅ successfully on 336920f
Tested successfully using the prebuilt package!
In the RTL layout (tested with Persian), the calendar highlighting applies correctly and the time selector successfully maintains its ltr direction.

@brianteeman Just wanted to say I learned a lot looking at your commits here. Instead of adding another SCSS patch, dropping the redundant calendar-rtl.css entirely and using that JS DOM swap for the time row was brilliant. Really cool to see "the best code is no code" in action. Thanks for taking this over and showing how it's done!
I have tested this item ✅ successfully on 336920f
Great and enjoyable. Thank you very, very much.
| Status | Pending | ⇒ | Ready to Commit |
RTC
| Labels |
Added:
RTC
|
||
✅ Final test before merge using JBT
de-DE, set for super user and RTL language ur-PK and second user using it
ur-PK, de-DE and en-UK selected date is highlighted, current date green underscored, hours left and minutes right
| Status | Ready to Commit | ⇒ | Fixed in Code Base |
| Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2026-02-19 09:42:16 |
| Closed_By | ⇒ | muhme |
Thank you @brianteeman for your contribution. Thank you @richard67 for support. Thank you @krishnagandhicode and @mortezahonar for testing.
thanks
@brianteeman No idea why the js linter does not complain. But as far as I can see you have used tabs for indentation in the js, but we use spaces. Could you check and if necessary correct that?