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

Hide_if not working for filesize form element in site admin

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide

      Test 1 (Moodle 3.10, 3.11 and master)

      1. Log in as admin
      2. Go to Site administration > Courses > Download course content
      3. Verify that deselecting the "Download course content feature available" field will hide the "Maximum size per file" field
      4. Verify that selecting the "Download course content feature available" field will show the "Maximum size per file" field

       Test 2 (Moodle 3.9)

      1. Open the /admin/settings/courses.php file in an editor
      2. Paste the following inside the first IF statement (right after the IF line), then save the file

        $temp = new admin_settingpage('testinghideif', 'Testing hide_if');
        $testvals = [0 => 'Hide children', 1 => 'Show children'];
        $temp->add(new admin_setting_configselect('parentsetting', 'Parent setting', 'Selecting "Hide children" should hide both.', 1, $testvals));
        $temp->add(new \core_admin\local\settings\filesize('childsetting1', 'Child setting 1', 'Bug - This will not hide when "Hide children" has been selected above.', 1024));
        $temp->add(new admin_setting_configcheckbox('childsetting2', 'Child setting 2', 'This will correctly be hidden.', 0));
        $temp->hide_if('childsetting1', 'parentsetting', 'eq', 0);
        $temp->hide_if('childsetting2', 'parentsetting', 'eq', 0);
         
        $ADMIN->add('courses', $temp);

      3. Bump up Moodle version in version.php and run Moodle upgrade
      4. Log in as admin
      5. Navigate to <wwwroot>/admin/settings.php?section=testinghideif
      6. Set to "Parent setting" to "Show children"
      7. Verify that you see 2 other settings: "Child setting 1" and "Child setting 2"
      8. Set to "Parent setting" to "Hide children"
      9. Verify that both child settings are hidden: "Child setting 1" and "Child setting 2"

       

       

      Show
      Test 1 (Moodle 3.10, 3.11 and master) Log in as admin Go to Site administration > Courses > Download course content Verify that deselecting the "Download course content feature available" field will hide the "Maximum size per file" field Verify that selecting the "Download course content feature available" field will show the "Maximum size per file" field  Test 2 (Moodle 3.9) Open the /admin/settings/courses.php file in an editor Paste the following inside the first IF statement (right after the IF line), then save the file $temp = new admin_settingpage('testinghideif', 'Testing hide_if'); $testvals = [0 => 'Hide children', 1 => 'Show children']; $temp->add(new admin_setting_configselect('parentsetting', 'Parent setting', 'Selecting "Hide children" should hide both.', 1, $testvals)); $temp->add(new \core_admin\local\settings\filesize('childsetting1', 'Child setting 1', 'Bug - This will not hide when "Hide children" has been selected above.', 1024)); $temp->add(new admin_setting_configcheckbox('childsetting2', 'Child setting 2', 'This will correctly be hidden.', 0)); $temp->hide_if('childsetting1', 'parentsetting', 'eq', 0); $temp->hide_if('childsetting2', 'parentsetting', 'eq', 0);   $ADMIN->add('courses', $temp); Bump up Moodle version in version.php and run Moodle upgrade Log in as admin Navigate to <wwwroot>/admin/settings.php?section=testinghideif Set to "Parent setting" to "Show children" Verify that you see 2 other settings: "Child setting 1" and "Child setting 2" Set to "Parent setting" to "Hide children" Verify that both child settings are hidden: "Child setting 1" and "Child setting 2"    
    • Affected Branches:
      MOODLE_39_STABLE
    • Fixed Branches:
      MOODLE_310_STABLE, MOODLE_39_STABLE
    • Pull from Repository:
    • Pull 3.9 Branch:
    • Pull 3.10 Branch:
      MDL-69748-310
    • Pull 3.11 Branch:
      MDL-69748-311
    • Pull Master Branch:
      MDL-69748-master
    • Story Points:
      4
    • Sprint:
      International 4.0 - Sprint 7, Internationals - 3.11 Sprint 2, Internationals - 3.11 Sprint 3, Internationals - 3.11 Sprint 4, Internationals - 3.11 Sprint 5

      Description

      The hide_if function of adminlib appears to have no effect on filesize inputs, so those settings cannot be hidden based on the value of other settings.

      Steps to reproduce:

      1. Open the /admin/settings/courses.php file in your IDE.
      2. Paste the following inside the first IF statement (it can be the first thing inside the IF), then save the file:

            $temp = new admin_settingpage('testinghideif', 'Testing hide_if');
            $testvals = [0 => 'Hide children', 1 => 'Show children'];
            $temp->add(new admin_setting_configselect('parentsetting', 'Parent setting', 'Selecting "Hide children" should hide both.', 1, $testvals));
            $temp->add(new filesize('childsetting1', 'Child setting 1', 'Bug - This will not hide when "Hide children" has been selected above.', 1024));
            $temp->add(new admin_setting_configcheckbox('childsetting2', 'Child setting 2', 'This will correctly be hidden.', 0));
            $temp->hide_if('childsetting1', 'parentsetting', 'eq', 0);
            $temp->hide_if('childsetting2', 'parentsetting', 'eq', 0);
         
            $ADMIN->add('courses', $temp);

      3. Log in as admin, then navigate to <wwwroot>/admin/settings.php?section=testinghideif
      4. Set the "Parent setting" to "Show children".
      5. You should see two other settings, "Child setting 1" (a filesize input), and "Child setting 2" (a checkbox).
      6. Change the "Parent setting" to "Hide children".
      7. Expected: Both child settings are hidden (the code to hide both used in step 2 is identical).
      8. Actual: Child setting 2 will be hidden, while Child setting 1 will remain visible.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              rezaie9 Shamim Rezaie
              Reporter:
              michaelh Michael Hawkins
              Peer reviewer:
              Michael Hawkins Michael Hawkins
              Integrator:
              Andrew Lyons Andrew Lyons
              Tester:
              Anna Carissa Sadia Anna Carissa Sadia
              Participants:
              Component watchers:
              Andrew Lyons, Dongsheng Cai, Huong Nguyen, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                8/Mar/21

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 4 hours, 27 minutes
                  4h 27m