integration.git
10 hours agoMerge branch 'MDL-88242-405' of https://github.com/paulholden/moodle into MOODLE_405_... MOODLE_405_STABLE
Jun Pataleta [Wed, 27 May 2026 07:56:20 +0000 (15:56 +0800)]
Merge branch 'MDL-88242-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE

2 days agoweekly release 4.5.11+
Shamim Rezaie [Mon, 25 May 2026 10:12:04 +0000 (20:12 +1000)]
weekly release 4.5.11+

4 days agoAutomatically generated installer lang files
AMOS bot [Sat, 23 May 2026 00:07:41 +0000 (00:07 +0000)]
Automatically generated installer lang files

7 days agoAutomatically generated installer lang files
AMOS bot [Wed, 20 May 2026 00:07:52 +0000 (00:07 +0000)]
Automatically generated installer lang files

8 days agoMDL-88242 output: add ARIA labelling to search input container.
Paul Holden [Tue, 19 May 2026 09:39:12 +0000 (10:39 +0100)]
MDL-88242 output: add ARIA labelling to search input container.

8 days agoweekly release 4.5.11+
Huong Nguyen [Tue, 19 May 2026 03:38:37 +0000 (10:38 +0700)]
weekly release 4.5.11+

9 days agoMerge branch 'MDL-87701-405' of https://github.com/rxdelacruz/moodle into MOODLE_405_...
Jake Dallimore [Mon, 18 May 2026 01:42:15 +0000 (09:42 +0800)]
Merge branch 'MDL-87701-405' of https://github.com/rxdelacruz/moodle into MOODLE_405_STABLE

12 days agoMerge branch 'MDL-88518-405-h5p-hub-registration' of https://github.com/moodiycloud...
Jake Dallimore [Fri, 15 May 2026 01:23:20 +0000 (09:23 +0800)]
Merge branch 'MDL-88518-405-h5p-hub-registration' of https://github.com/moodiycloud/moodle into MOODLE_405_STABLE

2 weeks agoMDL-87701 core: update calendar events when overrides change
rxdelacruz [Fri, 8 May 2026 07:40:28 +0000 (15:40 +0800)]
MDL-87701 core: update calendar events when overrides change

Ensures assign and lesson override creation/update triggers calendar event
updates so user and group deadlines remain in sync.

2 weeks agoMDL-87701 behat: add override generators and replace manual steps
rxdelacruz [Fri, 8 May 2026 05:43:23 +0000 (13:43 +0800)]
MDL-87701 behat: add override generators and replace manual steps

Adds user and group override support to assign and lesson Behat generators.
Refactors existing scenarios to use data generators instead of manual UI steps,
reducing @javascript usage and improving execution time.

2 weeks agoMDL-88518 h5p: Register sites with the H5P Hub using POST
Jai Gupta [Sat, 25 Apr 2026 14:43:55 +0000 (20:13 +0530)]
MDL-88518 h5p: Register sites with the H5P Hub using POST

3 weeks agoweekly release 4.5.11+
Shamim Rezaie [Fri, 1 May 2026 07:23:47 +0000 (17:23 +1000)]
weekly release 4.5.11+

3 weeks agoMerge branch 'm45-83526' of https://github.com/danmarsden/moodle into MOODLE_405_STABLE
Huong Nguyen [Thu, 30 Apr 2026 04:31:48 +0000 (11:31 +0700)]
Merge branch 'm45-83526' of https://github.com/danmarsden/moodle into MOODLE_405_STABLE

4 weeks agoweekly release 4.5.11+
Huong Nguyen [Mon, 27 Apr 2026 02:40:59 +0000 (09:40 +0700)]
weekly release 4.5.11+

4 weeks agoMerge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install...
Huong Nguyen [Mon, 27 Apr 2026 02:40:48 +0000 (09:40 +0700)]
Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE

5 weeks agoMerge branch 'MDL-88489-405' of https://github.com/andimendunia/moodle into MOODLE_40...
Huong Nguyen [Tue, 21 Apr 2026 01:53:55 +0000 (08:53 +0700)]
Merge branch 'MDL-88489-405' of https://github.com/andimendunia/moodle into MOODLE_405_STABLE

5 weeks agoAutomatically generated installer lang files
AMOS bot [Tue, 21 Apr 2026 00:09:20 +0000 (00:09 +0000)]
Automatically generated installer lang files

5 weeks agoMDL-88489 core: remove check_lang_sort.sh script
Andi Permana [Mon, 20 Apr 2026 09:30:02 +0000 (16:30 +0700)]
MDL-88489 core: remove check_lang_sort.sh script

5 weeks agoAutomatically generated installer lang files
AMOS bot [Sun, 19 Apr 2026 00:07:47 +0000 (00:07 +0000)]
Automatically generated installer lang files

5 weeks agoAutomatically generated installer lang files
AMOS bot [Sat, 18 Apr 2026 00:07:38 +0000 (00:07 +0000)]
Automatically generated installer lang files

5 weeks agoMoodle release 4.5.11 v4.5.11
Huong Nguyen [Thu, 16 Apr 2026 02:57:09 +0000 (09:57 +0700)]
Moodle release 4.5.11

5 weeks agoNOBUG: Add upgrade notes
Huong Nguyen [Thu, 16 Apr 2026 02:57:08 +0000 (09:57 +0700)]
NOBUG: Add upgrade notes

6 weeks agoweekly release 4.5.10+
Mihail Geshoski [Wed, 15 Apr 2026 10:49:09 +0000 (18:49 +0800)]
weekly release 4.5.10+

6 weeks agoNOBUG: Add upgrade notes
Mihail Geshoski [Wed, 15 Apr 2026 10:49:09 +0000 (18:49 +0800)]
NOBUG: Add upgrade notes

6 weeks agoNOBUG: Fixed file access permissions
Mihail Geshoski [Wed, 15 Apr 2026 10:49:01 +0000 (18:49 +0800)]
NOBUG: Fixed file access permissions

6 weeks agoMerge branch 'MDL-85352-405' of https://github.com/HuongNV13/moodle into MOODLE_405_S...
Mihail Geshoski [Wed, 15 Apr 2026 03:15:45 +0000 (11:15 +0800)]
Merge branch 'MDL-85352-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE

6 weeks agoMDL-87760 message: Improve the validation
Huong Nguyen [Wed, 8 Apr 2026 03:03:23 +0000 (10:03 +0700)]
MDL-87760 message: Improve the validation

`can_send_message_to_conversation()` has been updated
to improve the validation of the sender and the recipient

6 weeks agoMDL-88423 repository: Filename in prepared file path should be a name only
Michael Hawkins [Mon, 13 Apr 2026 07:40:38 +0000 (15:40 +0800)]
MDL-88423 repository: Filename in prepared file path should be a name only

6 weeks agoMDL-88381 library: Bump PHPUnit to 9.6.34
Huong Nguyen [Tue, 7 Apr 2026 04:31:57 +0000 (11:31 +0700)]
MDL-88381 library: Bump PHPUnit to 9.6.34

Generated with PHP 8.1, following the instructions at:
https://moodledev.io/general/development/tools/composer

6 weeks agoMDL-86165 mod_bigbluebuttonbn: added logging for recording events
jfedericobn [Thu, 9 Apr 2026 20:24:28 +0000 (20:24 +0000)]
MDL-86165 mod_bigbluebuttonbn: added logging for recording events

6 weeks agoMDL-88138 auth_db: drop sybasequoting setting
yusufwib01 [Tue, 24 Mar 2026 09:48:10 +0000 (16:48 +0700)]
MDL-88138 auth_db: drop sybasequoting setting

6 weeks agoMDL-85352 aiprovider_openai: Switch to b64_json format
Huong Nguyen [Tue, 14 Apr 2026 06:56:18 +0000 (13:56 +0700)]
MDL-85352 aiprovider_openai: Switch to b64_json format

Previously, the OpenAI image generation processor sent a fixed
response_format=url and downloaded the generated image via a second
HTTP request. This approach does not work for newer models such as
gpt-image-1.5, which always return base64-encoded image data and use
output_format instead of response_format.

Changes:

- Update process_generate_image to calculate size and quality
  base on model, conditionally set response_format and
  output_format based on what the model reports, and decode
  the returned b64_json directly into a local file instead
  of downloading from a URL.

6 weeks agoMDL-83526 core: Improve SameSite handling.
Dan Marsden [Tue, 17 Mar 2026 01:56:48 +0000 (14:56 +1300)]
MDL-83526 core: Improve SameSite handling.

6 weeks agoMDL-84495 MNet: Improve authorization check and mitigate CSRF risk
Vincent Schneider [Wed, 4 Mar 2026 15:33:12 +0000 (16:33 +0100)]
MDL-84495 MNet: Improve authorization check and mitigate CSRF risk

6 weeks agoMDL-87598 libraries: add S3 key-commitment validation
Andi Permana [Wed, 4 Feb 2026 07:59:31 +0000 (14:59 +0700)]
MDL-87598 libraries: add S3 key-commitment validation

6 weeks agoweekly release 4.5.10+
Shamim Rezaie [Fri, 10 Apr 2026 07:11:39 +0000 (17:11 +1000)]
weekly release 4.5.10+

6 weeks agoMerge branch 'MDL-88390-405' of https://github.com/paulholden/moodle into MOODLE_405_...
Huong Nguyen [Thu, 9 Apr 2026 03:57:01 +0000 (10:57 +0700)]
Merge branch 'MDL-88390-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE

6 weeks agoMerge branch 'MDL-88145-405' of https://github.com/mickhawkins/moodle into MOODLE_405...
Huong Nguyen [Thu, 9 Apr 2026 01:27:08 +0000 (08:27 +0700)]
Merge branch 'MDL-88145-405' of https://github.com/mickhawkins/moodle into MOODLE_405_STABLE

7 weeks agoMDL-88145 core: Update deprecated function in security helper unit test
Michael Hawkins [Mon, 10 Nov 2025 11:30:17 +0000 (19:30 +0800)]
MDL-88145 core: Update deprecated function in security helper unit test

7 weeks agoMDL-88145 core: Security helper additional unit test and typo fix
Michael Hawkins [Mon, 10 Nov 2025 11:28:32 +0000 (19:28 +0800)]
MDL-88145 core: Security helper additional unit test and typo fix

Adds unit testing to incorrect call order for get_resolve_info() and
also fixes an incorrect bracket closure on an empty statement.

7 weeks agoMDL-88390 repository: explicit string cast of file source data.
Paul Holden [Tue, 7 Apr 2026 19:11:45 +0000 (20:11 +0100)]
MDL-88390 repository: explicit string cast of file source data.

7 weeks agoMerge branch 'MDL-77649-405' of https://github.com/junpataleta/moodle into MOODLE_405...
Mihail Geshoski [Tue, 7 Apr 2026 07:22:21 +0000 (15:22 +0800)]
Merge branch 'MDL-77649-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE

7 weeks agoweekly release 4.5.10+
Huong Nguyen [Fri, 3 Apr 2026 02:24:12 +0000 (09:24 +0700)]
weekly release 4.5.10+

7 weeks agoNOBUG: Fixed SVG browser compatibility
Huong Nguyen [Fri, 3 Apr 2026 02:23:50 +0000 (09:23 +0700)]
NOBUG: Fixed SVG browser compatibility

7 weeks agoMerge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install...
Huong Nguyen [Fri, 3 Apr 2026 02:23:45 +0000 (09:23 +0700)]
Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE

7 weeks agoAutomatically generated installer lang files
AMOS bot [Fri, 3 Apr 2026 00:07:40 +0000 (00:07 +0000)]
Automatically generated installer lang files

7 weeks agoMDL-88092 core_h5p: Fix version conflict
Safat [Wed, 1 Apr 2026 11:59:27 +0000 (22:59 +1100)]
MDL-88092 core_h5p: Fix version conflict

7 weeks agoAutomatically generated installer lang files
AMOS bot [Thu, 2 Apr 2026 00:08:03 +0000 (00:08 +0000)]
Automatically generated installer lang files

8 weeks agoMerge branch 'MDL-88092-405' of https://github.com/rezaies/moodle into MOODLE_405_STABLE
Safat [Wed, 1 Apr 2026 11:15:14 +0000 (22:15 +1100)]
Merge branch 'MDL-88092-405' of https://github.com/rezaies/moodle into MOODLE_405_STABLE

8 weeks agoMDL-77649 glossary: Add top spacing for fullsearch checkbox
Jun Pataleta [Thu, 15 Jan 2026 13:00:29 +0000 (21:00 +0800)]
MDL-77649 glossary: Add top spacing for fullsearch checkbox

This is to meet WCAG 2.2 AA Target size requirements found by
accessibility Behat tests.

8 weeks agoMDL-77649 glossary: Query user record only when necessary
Jun Pataleta [Thu, 15 Jan 2026 04:34:28 +0000 (12:34 +0800)]
MDL-77649 glossary: Query user record only when necessary

We should only be querying the user record only when we are displaying
an entry. If there's no entry to be shown, we do not need to query it.

8 weeks agoMDL-77649 glossary: Use appropriate author lang string
Jun Pataleta [Tue, 23 Dec 2025 08:14:01 +0000 (16:14 +0800)]
MDL-77649 glossary: Use appropriate author lang string

* Create mod_glossary's own `bynameondate` lang string to avoid
violating component communication rules.

8 weeks agoMDL-77649 glossary: Fix skipped heading levels
Jun Pataleta [Tue, 23 Dec 2025 08:45:45 +0000 (16:45 +0800)]
MDL-77649 glossary: Fix skipped heading levels

* And adjust Behat tests accordingly

8 weeks agoMDL-77649 glossary: Set presentation role for entry tables
Jun Pataleta [Thu, 15 Jan 2026 05:33:18 +0000 (13:33 +0800)]
MDL-77649 glossary: Set presentation role for entry tables

* And for entry formats that display a user picture, make the user
picture decorative only to avoid duplicate user profile links on
the page.

8 weeks agoMDL-77649 glossary: Set presentation role for glossary functions
Jun Pataleta [Thu, 15 Jan 2026 05:31:51 +0000 (13:31 +0800)]
MDL-77649 glossary: Set presentation role for glossary functions

* Set the tables rendered by `glossary_print_entry_lower_section()` and
`glossary_print_entry_approval()` as decorative.

8 weeks agoMDL-77649 glossary: Render category headers without using layout tables
Jun Pataleta [Tue, 23 Dec 2025 01:50:05 +0000 (09:50 +0800)]
MDL-77649 glossary: Render category headers without using layout tables

8 weeks agoMDL-88092 core_h5p: Remove the h5plib_v127 plugin
Shamim Rezaie [Mon, 16 Mar 2026 05:33:08 +0000 (16:33 +1100)]
MDL-88092 core_h5p: Remove the h5plib_v127 plugin

The h5plib_v127 plugin can be removed because it has been replaced with
h5plib_v128, which is using the latest versions of the libraries.

8 weeks agoMDL-88092 core_h5p: Update editor lib with Moodle-specific adjustments
Shamim Rezaie [Mon, 16 Mar 2026 05:27:59 +0000 (16:27 +1100)]
MDL-88092 core_h5p: Update editor lib with Moodle-specific adjustments

8 weeks agoMDL-88092 core_h5p: Upgrade joubel/editor library to moodle-1.27.2
Shamim Rezaie [Mon, 16 Mar 2026 05:18:39 +0000 (16:18 +1100)]
MDL-88092 core_h5p: Upgrade joubel/editor library to moodle-1.27.2

This commit is upgrading the joubel/editor library to the one tagged as
moodle-1.27.2 (which interestingly has no difference to moodle-1.27.0).

8 weeks agoMDL-88092 core_h5p: Update core lib with Moodle-specific adjustments
Shamim Rezaie [Mon, 16 Mar 2026 05:09:25 +0000 (16:09 +1100)]
MDL-88092 core_h5p: Update core lib with Moodle-specific adjustments

8 weeks agoMDL-88092 core_h5p: Upgrade joubel/core library to v1.28.0
Shamim Rezaie [Mon, 16 Mar 2026 04:44:48 +0000 (15:44 +1100)]
MDL-88092 core_h5p: Upgrade joubel/core library to v1.28.0

This commit is upgrading the joubel/core library to the one
tagged as 1.28.0 (which also increases the coreApi minorVersion).
That's why the previous commit was duplicating the existing h5plib_v127.

8 weeks agoMDL-88092 h5plib: Create first version of h5plib_v128
Shamim Rezaie [Mon, 16 Mar 2026 04:29:04 +0000 (15:29 +1100)]
MDL-88092 h5plib: Create first version of h5plib_v128

AMOS BEGIN
CPY [editor:a11ytitleshowlabel,h5plib_v127],[editor:a11ytitleshowlabel,h5plib_v128]
CPY [editor:a11ytitlehidelabel,h5plib_v127],[editor:a11ytitlehidelabel,h5plib_v128]
CPY [editor:atoz,h5plib_v127],[editor:atoz,h5plib_v128]
CPY [editor:add,h5plib_v127],[editor:add,h5plib_v128]
CPY [editor:addauthor,h5plib_v127],[editor:addauthor,h5plib_v128]
CPY [editor:addentity,h5plib_v127],[editor:addentity,h5plib_v128]
CPY [editor:addfile,h5plib_v127],[editor:addfile,h5plib_v128]
CPY [editor:addnewchange,h5plib_v127],[editor:addnewchange,h5plib_v128]
CPY [editor:addtitle,h5plib_v127],[editor:addtitle,h5plib_v128]
CPY [editor:addvideodescription,h5plib_v127],[editor:addvideodescription,h5plib_v128]
CPY [editor:avtablistlabel,h5plib_v127],[editor:avtablistlabel,h5plib_v128]
CPY [editor:belowmin,h5plib_v127],[editor:belowmin,h5plib_v128]
CPY [editor:cancel,h5plib_v127],[editor:cancel,h5plib_v128]
CPY [editor:cancellabel,h5plib_v127],[editor:cancellabel,h5plib_v128]
CPY [editor:changefile,h5plib_v127],[editor:changefile,h5plib_v128]
CPY [editor:changelanguage,h5plib_v127],[editor:changelanguage,h5plib_v128]
CPY [editor:changelibrary,h5plib_v127],[editor:changelibrary,h5plib_v128]
CPY [editor:changelogdescription,h5plib_v127],[editor:changelogdescription,h5plib_v128]
CPY [editor:close,h5plib_v127],[editor:close,h5plib_v128]
CPY [editor:commonfields,h5plib_v127],[editor:commonfields,h5plib_v128]
CPY [editor:commonfieldsdescription,h5plib_v127],[editor:commonfieldsdescription,h5plib_v128]
CPY [editor:confirmchangelibrary,h5plib_v127],[editor:confirmchangelibrary,h5plib_v128]
CPY [editor:confirmdeletechangelog,h5plib_v127],[editor:confirmdeletechangelog,h5plib_v128]
CPY [editor:confirmimageremoval,h5plib_v127],[editor:confirmimageremoval,h5plib_v128]
CPY [editor:confirmpastebuttontext,h5plib_v127],[editor:confirmpastebuttontext,h5plib_v128]
CPY [editor:confirmpastecontent,h5plib_v127],[editor:confirmpastecontent,h5plib_v128]
CPY [editor:confirmremoval,h5plib_v127],[editor:confirmremoval,h5plib_v128]
CPY [editor:confirmremoveauthor,h5plib_v127],[editor:confirmremoveauthor,h5plib_v128]
CPY [editor:contenttypebackbuttonlabel,h5plib_v127],[editor:contenttypebackbuttonlabel,h5plib_v128]
CPY [editor:contenttypecacheoutdated,h5plib_v127],[editor:contenttypecacheoutdated,h5plib_v128]
CPY [editor:contenttypecacheoutdateddesc,h5plib_v127],[editor:contenttypecacheoutdateddesc,h5plib_v128]
CPY [editor:contenttypedemobuttonlabel,h5plib_v127],[editor:contenttypedemobuttonlabel,h5plib_v128]
CPY [editor:contenttypedetailbuttonlabel,h5plib_v127],[editor:contenttypedetailbuttonlabel,h5plib_v128]
CPY [editor:contenttypegetbuttonlabel,h5plib_v127],[editor:contenttypegetbuttonlabel,h5plib_v128]
CPY [editor:contenttypeiconalttext,h5plib_v127],[editor:contenttypeiconalttext,h5plib_v128]
CPY [editor:contenttypeinstallbuttonlabel,h5plib_v127],[editor:contenttypeinstallbuttonlabel,h5plib_v128]
CPY [editor:contenttypeinstallerror,h5plib_v127],[editor:contenttypeinstallerror,h5plib_v128]
CPY [editor:contenttypeinstallsuccess,h5plib_v127],[editor:contenttypeinstallsuccess,h5plib_v128]
CPY [editor:contenttypeinstallingbuttonlabel,h5plib_v127],[editor:contenttypeinstallingbuttonlabel,h5plib_v128]
CPY [editor:contenttypelicensepaneltitle,h5plib_v127],[editor:contenttypelicensepaneltitle,h5plib_v128]
CPY [editor:contenttypenotinstalled,h5plib_v127],[editor:contenttypenotinstalled,h5plib_v128]
CPY [editor:contenttypenotinstalleddesc,h5plib_v127],[editor:contenttypenotinstalleddesc,h5plib_v128]
CPY [editor:contenttypeowner,h5plib_v127],[editor:contenttypeowner,h5plib_v128]
CPY [editor:contenttyperestricted,h5plib_v127],[editor:contenttyperestricted,h5plib_v128]
CPY [editor:contenttyperestricteddesc,h5plib_v127],[editor:contenttyperestricteddesc,h5plib_v128]
CPY [editor:contenttypesearchfieldplaceholder,h5plib_v127],[editor:contenttypesearchfieldplaceholder,h5plib_v128]
CPY [editor:contenttypesectionall,h5plib_v127],[editor:contenttypesectionall,h5plib_v128]
CPY [editor:contenttypeunsupportedapiversioncontent,h5plib_v127],[editor:contenttypeunsupportedapiversioncontent,h5plib_v128]
CPY [editor:contenttypeunsupportedapiversiontitle,h5plib_v127],[editor:contenttypeunsupportedapiversiontitle,h5plib_v128]
CPY [editor:contenttypeupdateavailable,h5plib_v127],[editor:contenttypeupdateavailable,h5plib_v128]
CPY [editor:contenttypeupdatebuttonlabel,h5plib_v127],[editor:contenttypeupdatebuttonlabel,h5plib_v128]
CPY [editor:contenttypeupdatesuccess,h5plib_v127],[editor:contenttypeupdatesuccess,h5plib_v128]
CPY [editor:contenttypeupdatingbuttonlabel,h5plib_v127],[editor:contenttypeupdatingbuttonlabel,h5plib_v128]
CPY [editor:contenttypeusebuttonlabel,h5plib_v127],[editor:contenttypeusebuttonlabel,h5plib_v128]
CPY [editor:contributetranslations,h5plib_v127],[editor:contributetranslations,h5plib_v128]
CPY [editor:copiedbutton,h5plib_v127],[editor:copiedbutton,h5plib_v128]
CPY [editor:copiedtoclipboard,h5plib_v127],[editor:copiedtoclipboard,h5plib_v128]
CPY [editor:copybutton,h5plib_v127],[editor:copybutton,h5plib_v128]
CPY [editor:copytoclipboard,h5plib_v127],[editor:copytoclipboard,h5plib_v128]
CPY [editor:createcontenttablabel,h5plib_v127],[editor:createcontenttablabel,h5plib_v128]
CPY [editor:currentmenuselected,h5plib_v127],[editor:currentmenuselected,h5plib_v128]
CPY [editor:editcopyright,h5plib_v127],[editor:editcopyright,h5plib_v128]
CPY [editor:editimage,h5plib_v127],[editor:editimage,h5plib_v128]
CPY [editor:editmode,h5plib_v127],[editor:editmode,h5plib_v128]
CPY [editor:enteraudiotitle,h5plib_v127],[editor:enteraudiotitle,h5plib_v128]
CPY [editor:enteraudiourl,h5plib_v127],[editor:enteraudiourl,h5plib_v128]
CPY [editor:enterfullscreenbuttonlabel,h5plib_v127],[editor:enterfullscreenbuttonlabel,h5plib_v128]
CPY [editor:entervideotitle,h5plib_v127],[editor:entervideotitle,h5plib_v128]
CPY [editor:entervideourl,h5plib_v127],[editor:entervideourl,h5plib_v128]
CPY [editor:errorcalculatingmaxscore,h5plib_v127],[editor:errorcalculatingmaxscore,h5plib_v128]
CPY [editor:errorcommunicatinghubcontent,h5plib_v127],[editor:errorcommunicatinghubcontent,h5plib_v128]
CPY [editor:errorcommunicatinghubtitle,h5plib_v127],[editor:errorcommunicatinghubtitle,h5plib_v128]
CPY [editor:errorheader,h5plib_v127],[editor:errorheader,h5plib_v128]
CPY [editor:errornotsupported,h5plib_v127],[editor:errornotsupported,h5plib_v128]
CPY [editor:errorparamsbroken,h5plib_v127],[editor:errorparamsbroken,h5plib_v128]
CPY [editor:errortoohighversion,h5plib_v127],[editor:errortoohighversion,h5plib_v128]
CPY [editor:example,h5plib_v127],[editor:example,h5plib_v128]
CPY [editor:exceedsmax,h5plib_v127],[editor:exceedsmax,h5plib_v128]
CPY [editor:exitfullscreenbuttonlabel,h5plib_v127],[editor:exitfullscreenbuttonlabel,h5plib_v128]
CPY [editor:expandcollapse,h5plib_v127],[editor:expandcollapse,h5plib_v128]
CPY [editor:filetolarge,h5plib_v127],[editor:filetolarge,h5plib_v128]
CPY [editor:fillinthefieldsbelow,h5plib_v127],[editor:fillinthefieldsbelow,h5plib_v128]
CPY [editor:gethelp,h5plib_v127],[editor:gethelp,h5plib_v128]
CPY [editor:h5pfileuploadservererrorcontent,h5plib_v127],[editor:h5pfileuploadservererrorcontent,h5plib_v128]
CPY [editor:h5pfileuploadservererrortitle,h5plib_v127],[editor:h5pfileuploadservererrortitle,h5plib_v128]
CPY [editor:h5pfilevalidationfailedcontent,h5plib_v127],[editor:h5pfilevalidationfailedcontent,h5plib_v128]
CPY [editor:h5pfilevalidationfailedtitle,h5plib_v127],[editor:h5pfilevalidationfailedtitle,h5plib_v128]
CPY [editor:h5pfilewrongextensioncontent,h5plib_v127],[editor:h5pfilewrongextensioncontent,h5plib_v128]
CPY [editor:h5pfilewrongextensiontitle,h5plib_v127],[editor:h5pfilewrongextensiontitle,h5plib_v128]
CPY [editor:height,h5plib_v127],[editor:height,h5plib_v128]
CPY [editor:hide,h5plib_v127],[editor:hide,h5plib_v128]
CPY [editor:hideimportantinstructions,h5plib_v127],[editor:hideimportantinstructions,h5plib_v128]
CPY [editor:hubpanellabel,h5plib_v127],[editor:hubpanellabel,h5plib_v128]
CPY [editor:illegaldecimalnumber,h5plib_v127],[editor:illegaldecimalnumber,h5plib_v128]
CPY [editor:imagelightboxprogress,h5plib_v127],[editor:imagelightboxprogress,h5plib_v128]
CPY [editor:imagelightboxtitle,h5plib_v127],[editor:imagelightboxtitle,h5plib_v128]
CPY [editor:importantinstructions,h5plib_v127],[editor:importantinstructions,h5plib_v128]
CPY [editor:insert,h5plib_v127],[editor:insert,h5plib_v128]
CPY [editor:invalidformat,h5plib_v127],[editor:invalidformat,h5plib_v128]
CPY [editor:language,h5plib_v127],[editor:language,h5plib_v128]
CPY [editor:librarymissing,h5plib_v127],[editor:librarymissing,h5plib_v128]
CPY [editor:licensecandistribute,h5plib_v127],[editor:licensecandistribute,h5plib_v128]
CPY [editor:licensecanholdliable,h5plib_v127],[editor:licensecanholdliable,h5plib_v128]
CPY [editor:licensecanmodify,h5plib_v127],[editor:licensecanmodify,h5plib_v128]
CPY [editor:licensecansublicense,h5plib_v127],[editor:licensecansublicense,h5plib_v128]
CPY [editor:licensecanusecommercially,h5plib_v127],[editor:licensecanusecommercially,h5plib_v128]
CPY [editor:licensecannotholdliable,h5plib_v127],[editor:licensecannotholdliable,h5plib_v128]
CPY [editor:licensedescription,h5plib_v127],[editor:licensedescription,h5plib_v128]
CPY [editor:licensefetchdetailsfailed,h5plib_v127],[editor:licensefetchdetailsfailed,h5plib_v128]
CPY [editor:licensemodalsubtitle,h5plib_v127],[editor:licensemodalsubtitle,h5plib_v128]
CPY [editor:licensemodaltitle,h5plib_v127],[editor:licensemodaltitle,h5plib_v128]
CPY [editor:licensemustincludecopyright,h5plib_v127],[editor:licensemustincludecopyright,h5plib_v128]
CPY [editor:licensemustincludelicense,h5plib_v127],[editor:licensemustincludelicense,h5plib_v128]
CPY [editor:licenseunspecified,h5plib_v127],[editor:licenseunspecified,h5plib_v128]
CPY [editor:listbelowmin,h5plib_v127],[editor:listbelowmin,h5plib_v128]
CPY [editor:listexceedsmax,h5plib_v127],[editor:listexceedsmax,h5plib_v128]
CPY [editor:listlabel,h5plib_v127],[editor:listlabel,h5plib_v128]
CPY [editor:loading,h5plib_v127],[editor:loading,h5plib_v128]
CPY [editor:loadingimageeditor,h5plib_v127],[editor:loadingimageeditor,h5plib_v128]
CPY [editor:logthischange,h5plib_v127],[editor:logthischange,h5plib_v128]
CPY [editor:loggedchanges,h5plib_v127],[editor:loggedchanges,h5plib_v128]
CPY [editor:maxscoresemanticsmissing,h5plib_v127],[editor:maxscoresemanticsmissing,h5plib_v128]
CPY [editor:metadata,h5plib_v127],[editor:metadata,h5plib_v128]
CPY [editor:metadatasharingandlicensinginfo,h5plib_v127],[editor:metadatasharingandlicensinginfo,h5plib_v128]
CPY [editor:missingproperty,h5plib_v127],[editor:missingproperty,h5plib_v128]
CPY [editor:missingtranslation,h5plib_v127],[editor:missingtranslation,h5plib_v128]
CPY [editor:newchangehasbeenlogged,h5plib_v127],[editor:newchangehasbeenlogged,h5plib_v128]
CPY [editor:newestfirst,h5plib_v127],[editor:newestfirst,h5plib_v128]
CPY [editor:nextimage,h5plib_v127],[editor:nextimage,h5plib_v128]
CPY [editor:nochangeshavebeenlogged,h5plib_v127],[editor:nochangeshavebeenlogged,h5plib_v128]
CPY [editor:nocontenttypesavailable,h5plib_v127],[editor:nocontenttypesavailable,h5plib_v128]
CPY [editor:nocontenttypesavailabledesc,h5plib_v127],[editor:nocontenttypesavailabledesc,h5plib_v128]
CPY [editor:nofollow,h5plib_v127],[editor:nofollow,h5plib_v128]
CPY [editor:notimageordimensionsfield,h5plib_v127],[editor:notimageordimensionsfield,h5plib_v128]
CPY [editor:numresults,h5plib_v127],[editor:numresults,h5plib_v128]
CPY [editor:numberfield,h5plib_v127],[editor:numberfield,h5plib_v128]
CPY [editor:ok,h5plib_v127],[editor:ok,h5plib_v128]
CPY [editor:onlynumbers,h5plib_v127],[editor:onlynumbers,h5plib_v128]
CPY [editor:or,h5plib_v127],[editor:or,h5plib_v128]
CPY [editor:orderitemdown,h5plib_v127],[editor:orderitemdown,h5plib_v128]
CPY [editor:orderitemup,h5plib_v127],[editor:orderitemup,h5plib_v128]
CPY [editor:outofstep,h5plib_v127],[editor:outofstep,h5plib_v128]
CPY [editor:pasteandreplacebutton,h5plib_v127],[editor:pasteandreplacebutton,h5plib_v128]
CPY [editor:pasteandreplacefromclipboard,h5plib_v127],[editor:pasteandreplacefromclipboard,h5plib_v128]
CPY [editor:pastebutton,h5plib_v127],[editor:pastebutton,h5plib_v128]
CPY [editor:pastecontent,h5plib_v127],[editor:pastecontent,h5plib_v128]
CPY [editor:pastecontentnotsupported,h5plib_v127],[editor:pastecontentnotsupported,h5plib_v128]
CPY [editor:pastecontentrestricted,h5plib_v127],[editor:pastecontentrestricted,h5plib_v128]
CPY [editor:pasteerror,h5plib_v127],[editor:pasteerror,h5plib_v128]
CPY [editor:pastefromclipboard,h5plib_v127],[editor:pastefromclipboard,h5plib_v128]
CPY [editor:pastenocontent,h5plib_v127],[editor:pastenocontent,h5plib_v128]
CPY [editor:pastetoonew,h5plib_v127],[editor:pastetoonew,h5plib_v128]
CPY [editor:pastetooold,h5plib_v127],[editor:pastetooold,h5plib_v128]
CPY [editor:popularfirst,h5plib_v127],[editor:popularfirst,h5plib_v128]
CPY [editor:previousimage,h5plib_v127],[editor:previousimage,h5plib_v128]
CPY [editor:proceedbuttonlabel,h5plib_v127],[editor:proceedbuttonlabel,h5plib_v128]
CPY [editor:readless,h5plib_v127],[editor:readless,h5plib_v128]
CPY [editor:readmore,h5plib_v127],[editor:readmore,h5plib_v128]
CPY [editor:recentlyusedfirst,h5plib_v127],[editor:recentlyusedfirst,h5plib_v128]
CPY [editor:reloadbuttonlabel,h5plib_v127],[editor:reloadbuttonlabel,h5plib_v128]
CPY [editor:removefile,h5plib_v127],[editor:removefile,h5plib_v128]
CPY [editor:removeimage,h5plib_v127],[editor:removeimage,h5plib_v128]
CPY [editor:removeitem,h5plib_v127],[editor:removeitem,h5plib_v128]
CPY [editor:requiredproperty,h5plib_v127],[editor:requiredproperty,h5plib_v128]
CPY [editor:resettooriginallabel,h5plib_v127],[editor:resettooriginallabel,h5plib_v128]
CPY [editor:savelabel,h5plib_v127],[editor:savelabel,h5plib_v128]
CPY [editor:savemetadata,h5plib_v127],[editor:savemetadata,h5plib_v128]
CPY [editor:screenshots,h5plib_v127],[editor:screenshots,h5plib_v128]
CPY [editor:scriptmissing,h5plib_v127],[editor:scriptmissing,h5plib_v128]
CPY [editor:searchresults,h5plib_v127],[editor:searchresults,h5plib_v128]
CPY [editor:selectfiletoupload,h5plib_v127],[editor:selectfiletoupload,h5plib_v128]
CPY [editor:selectlibrary,h5plib_v127],[editor:selectlibrary,h5plib_v128]
CPY [editor:semanticserror,h5plib_v127],[editor:semanticserror,h5plib_v128]
CPY [editor:show,h5plib_v127],[editor:show,h5plib_v128]
CPY [editor:showimportantinstructions,h5plib_v127],[editor:showimportantinstructions,h5plib_v128]
CPY [editor:tabtitlebasicfileupload,h5plib_v127],[editor:tabtitlebasicfileupload,h5plib_v128]
CPY [editor:tabtitleinputlinkurl,h5plib_v127],[editor:tabtitleinputlinkurl,h5plib_v128]
CPY [editor:textfield,h5plib_v127],[editor:textfield,h5plib_v128]
CPY [editor:thecontenttype,h5plib_v127],[editor:thecontenttype,h5plib_v128]
CPY [editor:thiswillpotentially,h5plib_v127],[editor:thiswillpotentially,h5plib_v128]
CPY [editor:title,h5plib_v127],[editor:title,h5plib_v128]
CPY [editor:toolong,h5plib_v127],[editor:toolong,h5plib_v128]
CPY [editor:tryagain,h5plib_v127],[editor:tryagain,h5plib_v128]
CPY [editor:tutorial,h5plib_v127],[editor:tutorial,h5plib_v128]
CPY [editor:unabletointerpreterror,h5plib_v127],[editor:unabletointerpreterror,h5plib_v128]
CPY [editor:unabletointerpretsolution,h5plib_v127],[editor:unabletointerpretsolution,h5plib_v128]
CPY [editor:unknownfieldpath,h5plib_v127],[editor:unknownfieldpath,h5plib_v128]
CPY [editor:uploadinstructionstitle,h5plib_v127],[editor:uploadinstructionstitle,h5plib_v128]
CPY [editor:uploadplaceholder,h5plib_v127],[editor:uploadplaceholder,h5plib_v128]
CPY [editor:uploadsuccess,h5plib_v127],[editor:uploadsuccess,h5plib_v128]
CPY [editor:uploadtablabel,h5plib_v127],[editor:uploadtablabel,h5plib_v128]
CPY [editor:uploadvideotitle,h5plib_v127],[editor:uploadvideotitle,h5plib_v128]
CPY [editor:uploading,h5plib_v127],[editor:uploading,h5plib_v128]
CPY [editor:uploadingthrobber,h5plib_v127],[editor:uploadingthrobber,h5plib_v128]
CPY [editor:usedforsearchingreportsandcopyrightinformation,h5plib_v127],[editor:usedforsearchingreportsandcopyrightinformation,h5plib_v128]
CPY [editor:videoquality,h5plib_v127],[editor:videoquality,h5plib_v128]
CPY [editor:videoqualitydefaultlabel,h5plib_v127],[editor:videoqualitydefaultlabel,h5plib_v128]
CPY [editor:videoqualitydescription,h5plib_v127],[editor:videoqualitydescription,h5plib_v128]
CPY [editor:warningchangebrowsingtoseeresults,h5plib_v127],[editor:warningchangebrowsingtoseeresults,h5plib_v128]
CPY [editor:warningnocontenttypesinstalled,h5plib_v127],[editor:warningnocontenttypesinstalled,h5plib_v128]
CPY [editor:warningupdateavailablebody,h5plib_v127],[editor:warningupdateavailablebody,h5plib_v128]
CPY [editor:warningupdateavailabletitle,h5plib_v127],[editor:warningupdateavailabletitle,h5plib_v128]
CPY [editor:width,h5plib_v127],[editor:width,h5plib_v128]
AMOS END

8 weeks agoAutomatically generated installer lang files
AMOS bot [Wed, 1 Apr 2026 00:07:42 +0000 (00:07 +0000)]
Automatically generated installer lang files

8 weeks agoAutomatically generated installer lang files
AMOS bot [Tue, 31 Mar 2026 00:07:42 +0000 (00:07 +0000)]
Automatically generated installer lang files

2 months agoweekly release 4.5.10+
Huong Nguyen [Fri, 27 Mar 2026 08:41:10 +0000 (15:41 +0700)]
weekly release 4.5.10+

2 months agoMerge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install...
Huong Nguyen [Fri, 27 Mar 2026 08:40:57 +0000 (15:40 +0700)]
Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE

2 months agoMDL-87548 repository_wikimedia: Handle HTTP 429 rate limiting
Andi Permana [Mon, 9 Mar 2026 04:12:06 +0000 (11:12 +0700)]
MDL-87548 repository_wikimedia: Handle HTTP 429 rate limiting

2 months agoMerge branch 'MDL-81241-405' of https://github.com/junpataleta/moodle into MOODLE_405...
Huong Nguyen [Thu, 26 Mar 2026 03:51:27 +0000 (10:51 +0700)]
Merge branch 'MDL-81241-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE

2 months agoMerge branch 'MDL-88279-405' of https://github.com/meirzamoodle/moodle into MOODLE_40...
Huong Nguyen [Thu, 26 Mar 2026 00:49:41 +0000 (07:49 +0700)]
Merge branch 'MDL-88279-405' of https://github.com/meirzamoodle/moodle into MOODLE_405_STABLE

2 months agoAutomatically generated installer lang files
AMOS bot [Thu, 26 Mar 2026 00:07:41 +0000 (00:07 +0000)]
Automatically generated installer lang files

2 months agoMerge branch 'MDL-85451-405' of https://github.com/junpataleta/moodle into MOODLE_405...
Huong Nguyen [Wed, 25 Mar 2026 07:30:16 +0000 (14:30 +0700)]
Merge branch 'MDL-85451-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE

2 months agoMDL-88279 core_session: fix cluster test retry count assertion
meirzamoodle [Tue, 24 Mar 2026 07:39:44 +0000 (14:39 +0700)]
MDL-88279 core_session: fix cluster test retry count assertion

Update session_redis_cluster_test to expect 3 connection attempts
instead of 5, matching the $maxretries default value in redis.php.

2 months agoAutomatically generated installer lang files
AMOS bot [Sat, 21 Mar 2026 00:07:44 +0000 (00:07 +0000)]
Automatically generated installer lang files

2 months agoMerge branch 'MDL-88122-navbar_empty-breadcrumb-M4.5' of https://github.com/stopfsted...
Mihail Geshoski [Fri, 20 Mar 2026 07:35:57 +0000 (15:35 +0800)]
Merge branch 'MDL-88122-navbar_empty-breadcrumb-M4.5' of https://github.com/stopfstedt/moodle into MOODLE_405_STABLE

2 months agoweekly release 4.5.10+
Shamim Rezaie [Fri, 20 Mar 2026 04:32:43 +0000 (15:32 +1100)]
weekly release 4.5.10+

2 months agoNOBUG: Add upgrade notes
Shamim Rezaie [Fri, 20 Mar 2026 04:32:43 +0000 (15:32 +1100)]
NOBUG: Add upgrade notes

2 months agoMerge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install...
Shamim Rezaie [Fri, 20 Mar 2026 04:32:31 +0000 (15:32 +1100)]
Merge branch 'install_405_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_405_STABLE

2 months agoMDL-81241 theme_boost: Accessibility test for the footer region links
Jun Pataleta [Wed, 18 Mar 2026 09:41:19 +0000 (17:41 +0800)]
MDL-81241 theme_boost: Accessibility test for the footer region links

2 months agoMDL-81241 theme_boost: Ensure footer links have sufficient spacing
Jun Pataleta [Wed, 18 Mar 2026 09:37:57 +0000 (17:37 +0800)]
MDL-81241 theme_boost: Ensure footer links have sufficient spacing

2 months agoMDL-87959 tool_installaddon: Fix behats for activity chooser footer
Safat [Wed, 18 Mar 2026 13:33:17 +0000 (00:33 +1100)]
MDL-87959 tool_installaddon: Fix behats for activity chooser footer

2 months agoMerge branch 'MDL-87810-405' of https://github.com/junpataleta/moodle into MOODLE_405...
Mihail Geshoski [Thu, 19 Mar 2026 01:50:33 +0000 (09:50 +0800)]
Merge branch 'MDL-87810-405' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE

2 months agoMerge branch 'MDL-75067-405' of https://github.com/paulholden/moodle into MOODLE_405_...
Ilya Tregubov [Wed, 18 Mar 2026 13:03:02 +0000 (14:03 +0100)]
Merge branch 'MDL-75067-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE

2 months agoMDL-85451 block_timeline: Add accessibility Behat test coverage
Jun Pataleta [Tue, 17 Mar 2026 15:47:00 +0000 (23:47 +0800)]
MDL-85451 block_timeline: Add accessibility Behat test coverage

2 months agoMDL-85451 block_timeline: Group the due date filter options
Jun Pataleta [Tue, 17 Mar 2026 15:46:39 +0000 (23:46 +0800)]
MDL-85451 block_timeline: Group the due date filter options

To ensure that the filter options for the day filter menu matches
the menu pattern and pass accessibility checks, we need to:
* Group the due date filter options, labelled by the "Due date"
"heading".
* Set the "Due date" heading with a presentation role to prevent
assistive technologies from announcing it when the user goes through
the menu options.

2 months agoMDL-85451 block_timeline: Fix heading levels
Jun Pataleta [Tue, 17 Mar 2026 15:10:15 +0000 (23:10 +0800)]
MDL-85451 block_timeline: Fix heading levels

2 months agoMerge branch 'MDL-83096-405' of https://github.com/jason-platts/moodle into MOODLE_40...
Jake Dallimore [Mon, 16 Mar 2026 01:43:35 +0000 (09:43 +0800)]
Merge branch 'MDL-83096-405' of https://github.com/jason-platts/moodle into MOODLE_405_STABLE

2 months agoMDL-88211 backup: remove redundant usage of task manager from tests.
Paul Holden [Fri, 13 Mar 2026 12:36:27 +0000 (12:36 +0000)]
MDL-88211 backup: remove redundant usage of task manager from tests.

The asynchronouse backup/restore tests are only concerned with testing
the implementation of the accompanying task class directly. When they
try to do so at a distance via the task manager API they introduce
random failures by failing to account for different queued tasks that
come from other components (e.g. Workplace).

2 months agoMDL-83096 mod_lti: Register view completion when launching in new window
Daniel Poggenpohl [Wed, 18 Jun 2025 15:51:56 +0000 (17:51 +0200)]
MDL-83096 mod_lti: Register view completion when launching in new window

2 months agoMerge branch 'MDL-87959-405' of https://github.com/safatshahin/moodle into MOODLE_405...
Huong Nguyen [Fri, 13 Mar 2026 07:06:05 +0000 (14:06 +0700)]
Merge branch 'MDL-87959-405' of https://github.com/safatshahin/moodle into MOODLE_405_STABLE

2 months agoMDL-87959 admin: Add marketplace availability in notifications
Safat [Thu, 19 Feb 2026 03:18:19 +0000 (14:18 +1100)]
MDL-87959 admin: Add marketplace availability in notifications

2 months agoMDL-87959 tool_installaddon: Add support for marketplace
Safat [Thu, 19 Feb 2026 03:17:40 +0000 (14:17 +1100)]
MDL-87959 tool_installaddon: Add support for marketplace

2 months agoMerge branch 'MDL-81608-405-2' of https://github.com/junpataleta/moodle into MOODLE_4...
Mihail Geshoski [Fri, 13 Mar 2026 01:54:41 +0000 (09:54 +0800)]
Merge branch 'MDL-81608-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE

2 months agoMerge branch 'MDL-87100-405' of https://github.com/paulholden/moodle into MOODLE_405_...
Huong Nguyen [Fri, 13 Mar 2026 01:39:25 +0000 (08:39 +0700)]
Merge branch 'MDL-87100-405' of https://github.com/paulholden/moodle into MOODLE_405_STABLE

2 months agoMerge branch 'MDL-87708-405' of https://github.com/HuongNV13/moodle into MOODLE_405_S...
Safat [Thu, 12 Mar 2026 04:19:06 +0000 (15:19 +1100)]
Merge branch 'MDL-87708-405' of https://github.com/HuongNV13/moodle into MOODLE_405_STABLE

2 months agoMDL-87708 tool_moodlenet: Remove post install task
Huong Nguyen [Thu, 12 Mar 2026 03:47:50 +0000 (10:47 +0700)]
MDL-87708 tool_moodlenet: Remove post install task

2 months agoMDL-87708 admin: Improve MoodleNet removal warnings message
Huong Nguyen [Thu, 12 Mar 2026 02:24:22 +0000 (09:24 +0700)]
MDL-87708 admin: Improve MoodleNet removal warnings message

2 months agoMDL-87708 tool_moodlenet: Clean up moodle.net configs in stable
Andi Permana [Fri, 6 Feb 2026 07:32:42 +0000 (14:32 +0700)]
MDL-87708 tool_moodlenet: Clean up moodle.net configs in stable

Part of MDL-87351

- Discourage tool_moodlenet unless pointing to custom installation
- Clear activity chooser footer if set to MoodleNet
- Cleanup happens for: moodle.net URL, www.moodle.net, or empty config
- Preserves custom/local MoodleNet installations

2 months agoMDL-88122 navigation: omit empty breadcrumb container in output.
Stefan Topfstedt [Thu, 12 Mar 2026 00:41:30 +0000 (17:41 -0700)]
MDL-88122 navigation: omit empty breadcrumb container in output.

2 months agoMerge branch 'MDL-87955-405-2' of https://github.com/junpataleta/moodle into MOODLE_4...
Mihail Geshoski [Wed, 11 Mar 2026 03:56:07 +0000 (11:56 +0800)]
Merge branch 'MDL-87955-405-2' of https://github.com/junpataleta/moodle into MOODLE_405_STABLE

2 months agoAutomatically generated installer lang files
AMOS bot [Wed, 11 Mar 2026 00:09:24 +0000 (00:09 +0000)]
Automatically generated installer lang files