827 Commits

Author SHA1 Message Date
Ilya Tregubov
f5050ab31f
Merge branch 'MDL-78255-master' of https://github.com/davewoloszyn/moodle 2023-09-14 17:50:24 +08:00
Huong Nguyen
4ead50e696
MDL-78267 core: Partial course sharing for MoodleNet 2023-09-14 14:59:50 +07:00
Jun Pataleta
9cd44cbf4c
Merge branch 'MDL-79356-master' of https://github.com/HuongNV13/moodle 2023-09-14 11:52:12 +08:00
Huong Nguyen
e1cff527b9
MDL-79356 core: Convert MoodleNet modals to use new static methods 2023-09-14 09:44:19 +07:00
Jun Pataleta
f8b16ea91f
Merge branch 'MDL-78826-master' of https://github.com/roland04/moodle 2023-09-13 19:28:25 +08:00
Andrew Nicols
82761c582c
MDL-78324 core: Deprecate core/modal_factory 2023-09-09 00:05:04 +08:00
Andrew Nicols
48bc688ccd
MDL-78324 core: Convert modals to use new static methods
This commit takes all modals which were not using the legacy
ModalFactory.create triggers and migrates them to the new Modal.create
method.
2023-09-09 00:04:11 +08:00
Andrew Nicols
a797020524
MDL-78324 core: Convert core/tag to esm
This module is converted to ESM in preparation for simplification of
Modal instantiation.
2023-09-09 00:04:03 +08:00
Andrew Nicols
98f0aebde6
MDL-78324 gradereport_singleview: Update modal usage to drop factory use
This change includes some additional simplifications to support this
change, including conversion from done/fail to then/catch, and some
simplification of Promise usage.

There were a number of cases of nested Modal usage which have been
removed.
2023-09-09 00:04:03 +08:00
Andrew Nicols
a54ba682a4
MDL-78324 core: Create modal factory in core/modal
This commits adds a new static `create()` method to replace the existing
ModalFactory.create approach.

This allows the creation of a modal to now be simplified to:

```js
import SomeModalClass from 'mymodule/wherever';

// ...

const modal = await SomeModalClass.create();
```

Prior to this change the modal was instantiated via the ModalFactory,
but the Type of modal was typically pulled from the ModalClass itself
via the registry. Essentially it used to require three modules to
instantiate a single Modal, and now it takes just one.
2023-09-08 23:49:13 +08:00
Andrew Nicols
9073225c98
MDL-78324 core: Simplify modal configuration
This change moves configuration of the modal from the ModalFactory to
a new `configure` function on the Modal class which does exactly the
same thing. This means that the API is fully encapsulated within the
Modal, and an individual Modal can specify its own configuration more
easily.

This change will make it much easier to instantiate new modals,
significantly reducing boilerplate in many instances.

This change allows modals to extend the `configure()` method to provide
their own defaults, or to override standard ones.

```js
class MyModal extends Modal {
    static TYPE = 'my_module/mymodal';
    static TEMPLATE = 'my_module/mymodal';

    configure(params = {}) {
        // Override the default value for large.
        params.large = true;

        super.configure(params);

        // Handle our own properties here.
        const {
          makeSound = true,
        } = params;

        this.setSoundEmitter(makeSound);
    }
```

Prior to this change, it was common to see this happen in the _calling_
code, rather than the modal itself.
2023-09-08 23:49:12 +08:00
Ferran Recio
c87fe6036d MDL-78826 javascript: add dropdown js controls 2023-09-08 10:23:13 +02:00
Andrew Nicols
4bfd20983d
MDL-78779 core: Do not re-render combo searchresults if term unchanged 2023-09-06 12:28:36 +08:00
Andrew Nicols
c7a05345b6
MDL-78779 core: Wrap combobox debounce in pending Promise
This addresses a random failure with the combobox search results where
the debounce causes the results to be shown, and then the same search
result is returned again, re-rendered, and replaced after Behat has
moved on.
2023-09-06 12:27:45 +08:00
Mark Johnson
4b160a7c7b
MDL-72321 datafilter: Stop disabling jointype field
This was causing behat test failures due to the test trying to
set the disabled jointype field before the filter type was selected.
2023-09-01 23:43:20 +08:00
David Woloszyn
ce706f4c3e MDL-78255 lib: Upgrade emoji-data to 15.0.1 2023-09-01 19:01:04 +10:00
Ilya Tregubov
e90d73974a
Merge branch 'MDL-79198-master' of https://github.com/junpataleta/moodle 2023-09-01 11:03:22 +08:00
Andrew Nicols
1ce54ee87e
Merge branch 'MDL-72321_master-squashed' of https://github.com/marxjohnson/moodle 2023-08-31 23:02:35 +08:00
Mark Johnson
2e02264945 MDL-72321 core: Support disabled options in form-autocomplete
Autocomplete fields can now include disabled options in the suggestion
list. When calling .enchance() on a select list with disabled options,
those options will be added to the autocomplete suggestions with the
aria-disabled arribute set, and will not be selectable.

Datafilters using the autocomplete element can also hook into this by
including disabled options in their list of values.
2023-08-31 15:00:38 +01:00
Mark Johnson
7091a3210c MDL-72321 core: Allow datafilters to specify a subset of join types
A datafilter can now specify a subset of jointypes that it supports from
the default list of all, any or none. By default all options will be
available, but an individual filter can ovveride this to include just
those options that make sense for the filter. If only one option is
allowed, the select list will be hidden to simplify the UI.
2023-08-31 15:00:37 +01:00
Nathan Nguyen
ef8c11328b MDL-72321 core: Add binary datafilter
This adds a new datafilter type which provides a single binary choice
(for example yes/no).
2023-08-31 15:00:37 +01:00
Sara Arjona
2ec4ac7e4a
Merge branch 'MDL-78612-master' of https://github.com/andrewnicols/moodle 2023-08-30 17:55:32 +02:00
Andrew Nicols
c85cca3e33
MDL-78612 core: Wrap modal_factory.create in pendingPromise 2023-08-30 12:41:37 +08:00
Jun Pataleta
59fff99a94
MDL-79198 core: Increment static variable properly 2023-08-29 16:44:16 +08:00
Jun Pataleta
cc7bc1a553
Merge branch 'MDL-79064-master' of https://github.com/andrewnicols/moodle 2023-08-29 13:32:45 +08:00
Andrew Nicols
af7719682d
MDL-79064 core: Update all get_strings as uses 2023-08-29 10:57:54 +08:00
Andrew Nicols
fe80eecc44
MDL-79064 core: Improve Native promise support
As we migrate to primarily using natives promises, we should make it
easier to use and consume them.

This change:
- updates core/str to add new methods for:
  - getString
  - getStrings
- accept Native promises into Modal setters
2023-08-29 10:57:06 +08:00
Sara Arjona
67f225429b
Merge branch 'MDL-78248' of https://github.com/paulholden/moodle 2023-08-28 13:52:50 +02:00
Paul Holden
c1a3e17a0b
MDL-78248 libraries: upgrade to version 4.4.0 of ChartJS. 2023-08-24 17:22:09 +01:00
Mark Johnson
e81a8381a8 MDL-72321 core: Allow datafilters to be marked required
Required datafilters cannot be removed. There will be no remove button
on the filter row, and the "Clear filters" button will ignore them.
2023-08-24 11:09:37 +01:00
Mark Johnson
1d64f468d1 MDL-72321 core: Allow custom filteroptions to be passed by datafilters
This allows datafilters to include additional fields other than the standard list of selected values.
For example they may wish to include an additional select or checkbox to change how the values are used in the resulting query.
2023-08-24 11:09:34 +01:00
Ilya Tregubov
4bed4ea8f3
Merge branch 'MDL-71212-collapse-expand-all-sections-in-course-index-drawer' of https://github.com/stopfstedt/moodle 2023-08-24 09:22:23 +08:00
Safat
4b9438431e MDL-75318 core: JS updates for sharing course to MoodleNet 2023-08-22 11:00:06 +10:00
Stefan Topfstedt
7b04638c52 MDL-71212 core_course: adds controls to the course index drawer. 2023-08-18 11:00:55 -07:00
Jun Pataleta
4ef1f2fabd
Merge branch 'MDL-78962' of https://github.com/timhunt/moodle 2023-08-10 18:32:22 +07:00
Tim Hunt
788580c9dd MDL-78962 core/loadingicon: remove jQuery requirement in the API 2023-08-09 21:10:13 +01:00
Jun Pataleta
51e86626d1
Merge branch 'MDL-77174-master' of https://github.com/andrewnicols/moodle 2023-08-08 15:15:32 +08:00
Ferran Recio
105324e6fd MDL-78665 output: add subpanels to action menu
Many times the action menu item triggers modals to show more information
to the user. In most cases this is enough, however, a modal will close
the menu and the user is not able to see the modal content in the page
context. To solve this now menus can define subpanels that are displayed
next the the menu item when the item is focused or hover. This will be
used to group options like the group mode in activities or to replace
the adhoc solution implemented to select language in the user menu.
2023-08-04 16:09:29 +02:00
Ferran Recio
3b53616321 MDL-78665 libs: page helpers global amd module
Add a new global module to get information from the page. Some methods
are just local functions moved to as a global library. For example, the
drawers isSmall or isLarge to detect the page width. The other funcionts
added are to detect focusable elements and they are needed to loop on
elements, especially when accessibility keyboard navigation is implemented.
2023-08-04 16:07:59 +02:00
Mathew May
a4b3b0d044 MDL-77991 core: Move tertiary search dropdown component 2023-08-03 09:07:18 +08:00
Andrew Nicols
cad1c7d008
MDL-77174 core: Modal z-index calc should ignore hidden items
When an AMD dialogue is opened from a YUI dialogue, the YUI dialogue is
not actually removed from the DOM, but was counted in z-index
calculation.

We need to stop including it otherwise nested AMD => YUI => AMD
dialogues get broken.
2023-07-31 10:57:09 +08:00
Andrew Nicols
dbf3bccf99
MDL-77174 core: Add support for button sources to modal utility 2023-07-31 10:56:22 +08:00
Andrew Nicols
715902c9c0
MDL-77174 core: Provide default anchor support to modal utility 2023-07-31 10:56:22 +08:00
Andrew Nicols
96dfb8382e
MDL-77174 core: Provide default strings for modal utility 2023-07-31 10:56:22 +08:00
Andrew Nicols
42d3e7de14
MDL-77174 core: Add getElement to core/normalise 2023-07-31 10:56:04 +08:00
Jun Pataleta
844257a539
Merge branch 'MDL-76046-master' of https://github.com/stevandoMoodle/moodle 2023-07-13 16:51:37 +02:00
Ilya Tregubov
09c7cd98f4
Merge branch 'MDL-73213' of https://github.com/pedrojordao/moodle 2023-07-13 16:49:58 +02:00
Andrew Nicols
3ff84d3eb7
MDL-78316 core: Improve jsdoc typedef for icons 2023-07-07 16:31:54 +08:00
Andrew Nicols
f57af194fb
MDL-78316 core: Update async promises
Writing a Promise as:
```
const promise = new Promise(async (resolve, reject) => {
  return await 'foo';
});
```

Is equivalent to an IIFE:
```
const promise = (async () => {
  return await 'foo';
})();
```

A recent change introduced by MDL-74301 picks this up.

This commit addresses this flagged issue.
2023-07-07 16:23:26 +08:00
Andrew Nicols
5b54ac43b1
MDL-78316 core: Move IconSystem init to Factory
This is throwback to times when we understood JS less.

We should not have the factory method for the IconSystem in
core/templates.
2023-07-07 16:13:28 +08:00