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

Improve plugin management UI

XMLWordPrintable

    • MOODLE_401_STABLE, MOODLE_402_STABLE
    • MOODLE_402_STABLE
    • MDL-76867-master
    • Hide

      Most testing is already covered by CI, but the Behat steps for checking order of items in the DOM are really slow and I don't want to add more issues there.

      These tests cover the following pages under Site administration -> Plugins

      1. Activites -> Manage activities
      2. Admin tools -> Manage admin tools
      3. Blocks -> Manage blocks
      4. Text editors -> Manage editors
      5. Text editors -> TinyMCE -> General settings
      6. Media Players -> Manage media players

      These tests need to be completed for each of the areas under coverage (defined above):

      1. Log in as admin
      2. Navigate to the relevant page
        1. Confirm that plugins are listed without error
      3. Where there is an "Show" or "Hide" button, try pressing it
        1. Confirm it has the intended result
      4. Toggle again
        1. Confirm it has the intended result
      5. Where there is a "Up/Down" button, try the behaviour
        1. Confirm that you cannot move an item above the top
        2. Confirm that you cannot move an item below the bottom
        3. Confirm that you cannot move an item below the bottom of the list of enabled plugins

      Additional tests

      1. Navigate to Site administration -> Activites -> Manage activities
      2. Try to toggle BigBlueButton
        1. Confirm that you are instead shown a notice that it cannot be enabled
      3. Navigate to Site administration -> Blocks -> Manage blocks
      4. Try to protect and unprotect some blocks
        1. Confirm it has the intended result of protecting/unprotecting the block
      Show
      Most testing is already covered by CI, but the Behat steps for checking order of items in the DOM are really slow and I don't want to add more issues there. These tests cover the following pages under Site administration -> Plugins Activites -> Manage activities Admin tools -> Manage admin tools Blocks -> Manage blocks Text editors -> Manage editors Text editors -> TinyMCE -> General settings Media Players -> Manage media players These tests need to be completed for each of the areas under coverage (defined above): Log in as admin Navigate to the relevant page Confirm that plugins are listed without error Where there is an "Show" or "Hide" button, try pressing it Confirm it has the intended result Toggle again Confirm it has the intended result Where there is a "Up/Down" button, try the behaviour Confirm that you cannot move an item above the top Confirm that you cannot move an item below the bottom Confirm that you cannot move an item below the bottom of the list of enabled plugins Additional tests Navigate to Site administration -> Activites -> Manage activities Try to toggle BigBlueButton Confirm that you are instead shown a notice that it cannot be enabled Navigate to Site administration -> Blocks -> Manage blocks Try to protect and unprotect some blocks Confirm it has the intended result of protecting/unprotecting the block
    • 1
    • Team Hedgehog Sprint 2.2

      The original intent of this issue was to allow TinyMCE plugins to be disabled. However this has changed into an API to allow all plugins to be re-ordered and/or disabled.

      In working on this I discovered that we don't have a single, standardised way of displaying a list of plugins for a plugintype. We have about 30 - one for each plugintype. This means that we have:

      a range of different tables with:

      • different headers
      • different columns orders
      • different wording
      • duplicate code all over the place
        R
        ather than adding to this hellhole of a mess, I have instead opted to spend a little more time on this change and:
      • add a new plugin_management_table which extends the standard flexible_table class and implements the dynamic table interface;
      • written appropriate JavaScript to make toggling of enabled/disabled flags via JS with a table reload instead of whole page reload
        further extended this to support re-ordering of plugintypes which support this

      It is well beyond the scope of this issue to replace all of these cases, but I have implemented the following locations in an effort to ensure that all of the standard use-cases are supported:

      • editors (list of available editors)
      • blocks
      • activities
      • TinyMCE plugins

      The design of this approach means that any plugintype wishing to use the interface must:

      • extend the plugin_management_table class (this is unavoidable because of the nature of the dynamic table system
      • ensure that all behaviour for enabling/disabling a plugin, and (if relevant) ordering plugins within the plugintype are fully and correctly encapsulated inside that plugintype's plugininfo class

      For any plugintype wishing to extend this in some way, such as the following may do so:

      • adding columns
      • modifying existing columns

      To cater to these changes the JavaScript component to this is written as a class which can be extended with additional behaviours added to the event listeners and/or alternative web services used by setting the relevant methods.

      Note: Non-javascript control is maintained with a slimmed-down version of the current files so as to support behat.

      I imagine that this change in UI will likely cause some behat failures, and I need to see about unit + behat testing some of the features.

            dobedobedoh Andrew Lyons
            dobedobedoh Andrew Lyons
            Meirza Meirza
            Ilya Tregubov Ilya Tregubov
            Kim Jared Lucas Kim Jared Lucas
            Votes:
            1 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 week, 17 minutes
                1w 17m

                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.