-
Improvement
-
Resolution: Fixed
-
Major
-
4.0
-
MOODLE_400_STABLE
-
MOODLE_400_STABLE
-
MDL-71134-master-v03 -
-
Moppies Kanban, Moppies Kanban, Moppies Kanban
Create the main AMD modules structure to support the new course editor for Moodle 4.0. The new architecture will be the base for implementing the new course editor, allowing teachers to edit the course from both course index or course content. It will consist of two main AMD modules:
- core_course/courseeditor: the main reactive object the rest of the editor components will interact with
- core_course/local/courseeditor/mutations: the main class to interact with the backend course edit Webservices
However, those 2 modules will extend some new generic libraries to built basic reactive interfaces:
- core/reactive: a wrapper any plugin can import to create both state instances and UI components.
- core/local/reactive/reactive: the generic class to register single state reactive applications in vanilla JS
- core/local/reactive/statemanager: a basic state manager to track changes in the data structures
- core/local/reactive/basecomponent: a component class any UI component can extend to create new reactive components.
Those new libraries will be incorporated into the core and could be used by any plugin.
Those new components are based on the proof of concept developed here: https://github.com/ferranrecio/moodle/tree/coursecreatetest02
Once finished, we could start implementing the new editor components that will replace the existing YUI and AMD modules used to edit the course.
The following diagram summarizes the main editor elements and workflows:
- blocks
-
MDL-71209 Create the new course index list. View mode with no edit options.
- Closed
-
MDL-71780 Adapt course event to the new format
- Open
-
MDL-71781 Fix jsdoc on reactive and course editor libraries
- Open
-
MDL-71863 Create core_courseformat subsystem
- Closed
- has been marked as being related by
-
MDL-70990 Replace jQuery and YUI events core/event with native JS events
- Closed
- is blocked by
-
MDL-71135 Create core_course_get_state webservice
- Closed