The patch adds an extra validation step against accepted file types.
Even if the repository checks are bypassed (as illustrated in the
Behat), the invalid file is still caught by the element's validation
rules.
It turns out there is no way to test the filepicker element easily via
Behat. Additionally, it provides the renaming features only with
disabled javascript. So the Behat tests are provided for the filemanager
only.
AMOS BEGIN
CPY [err_wrongfileextension,mod_workshop],[err_wrongfileextension,core_form]
AMOS END
The add/roles thing was only converted to bootstrap 2/4 markup and the yui left in place.
The modal for adding users to a course was unsavable so I rewrote it with an mform in a popup, still calling
the same (barely) modified ajax script.
The webservice for searching cohorts was taken from admin/tool/lp and moved into /cohort. I added a generic "cohort"
mform element at the same time.
The webservice for searching for users was taken from the original ajax script.
While working on the filetypes element validation, I realized we did not
cover the case of selecting 'Any file type'. So the value '*' was
falsely reported as unknown file type.
This is a pragmatic (read: hacky) solution of the problem that
Behat/Mink is unable to locate the input field within the filetypes
group. I've spent a while trying to figure out how to make it work. On
the road, I've discovered that our situation with labels of mform group
elements is a bit messy. And generally there seems to be no easy way how
to use the group's label to identify one particular input field in the
group.
In this case, we use mform group but in fact there is a single input
field within the group. Mink does not locate the group itself as an
input field and throws ElementNotFoundException. So reusing the group's
label as a hidden label for the input makes sense from certain
perspective.
The potential drawback (unconfirmed) is that screen readers might read
the same label text twice. But only one of them is associated with the
actual input field so chances are they would ignore the group's one,
like Mink does.
These new methods will be used to render the tree of file types groups
and extensions in the browser widget.
Co-Authored-By: John Okely <john@moodle.com>
This is a stripped down version of the original Jonathon's element
without the actual JS selector. The options "allowall" and "onlytypes"
are not fully supported right now yet.
renamed Visible to Availability and added help strings
AMOS BEGIN
CPY [availability,core_moodle],[modvisible,core_moodle]
CPY [availability,core_moodle],[modvisiblewithstealth,core_moodle]
CPY [availability,core_moodle],[modvisiblehiddensection,core_moodle]
CPY [show,core_moodle],[modshow,core_moodle]
CPY [hide,core_moodle],[modhide,core_moodle]
AMOS END
This introduces a new "controlled link" file type where the file is not
stored in Moodle - but Moodle will control the access permissions on the file.
Plugins can "freeze" a filearea which means Moodle will take ownership of all the remote
files of this type.
When accessing a file, if the "filebrowser" infomation indicates the current user can write to the file, they
will be granted temporary write access.
Part of MDL-58220
Add field 'visibleoncoursepage' to the course_modules table
Add site-wide setting for turning on stealth mode availability
Add callback for "stealth" mode support in the course formats
Change display of modules/sections availability on the course page
1. BrowserKitDriver::setValue only checks if the element is
disabled. It still is able to set value on hidden elements
So there is no need for noscript tag in password unmask
2. Set size on hidden field is not valid html, so set it later
when text element is displayed
Some "select" based form elements are not inheriting directly from
MoodleQuickForm_select - so did not have the adjustment to the form
field name that allows multiple values. I moved this fix to the
templateable trait so all the form fields get this fix.