Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-44164

Refactor Atto code

    XMLWordPrintable

Details

    • 100
    • FRONTEND Sprint 11

    Description

      I've put together a (mostly) working PoC to restructure the atto code.

      At present, the code is based around a structure which must be aware of every editor on the page. We have to pass around an elementid, and each plugin adds buttons to their own element, but with a single click handler.

      The code also does not meet the coding style guidelines.

      IMO, we need to refactor this to:

      • not pass around the elementid;
      • comply with coding style requirements;
      • include API documentation to assist plugin developers;
      • have one editor instance per editor;
      • have instances of the plugins on each editor rather than globally.

      This will:

      • make our lives far easier in the future to maintain because we'll be reducing the code duplication;
      • allow people to write plugins more easily and with much less code duplication;
      • which will allow for a greater diversity of plugins in a shorter period;
      • give better confidence from third-party developers writing plugins for the new editor, and as a result the community as a whole (just think how much we've complained about the TinyMCE plugin structure).

      Personally, I feel that this needs to be done before integration, and certainly before release.

      I've been working on a PoC which is semi-functional (35% of plugins are already done and the others aren't far off) and it only took a few hours to write including appropriate API docs.

      Attachments

        Issue Links

          Activity

            People

              dobedobedoh Andrew Lyons
              dobedobedoh Andrew Lyons
              Damyon Wiese Damyon Wiese
              Andrew Lyons, Huong Nguyen, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: