Andrew refactored the way it rendered the element, but did not update all the
templates (there is mforms element AND admin settings element).
See 3778a9226f for Andrews original change.
Classes attribute was not being honoured by all form element templates.
Formchangechecker was only looking for the ignoredirty class on the element,
in boost it is on the container.
Assign had specific styles to hide the submit buttons that were not matching in boost.
The initial approach I took was to provide a noscript area containing the
standard input element, and to move it to a hidden input element as part of
the passwordunmask setup.
This allowed behat tests to pass both with and without JS enabled (i.e.
with Goutte and real browsers), and also ensured that the real input did
not appear on screen.
However, the standard formslib validation occurs before other page JS is
run and hooks into the elements on page during its setup.
Since noscript elements are not accessible to scripts as standard elements,
the form validation would fail for _client_ side validation and work for
server-side validation.
This change creates creates the hidden input element in the template
instead, as well as the password element in the noscript tag.
Doing this means that when JS is disabled, the form has two elements of the
same name - one hidden, and the second a visible password field.
Since the latter element will always override the former one on form
submission, and the noscript variant is last, the noscript variant wins
when JS is disabled and tests continue to pass.
When JS is enabled, the noscript variant is not a valid part of the DOM
(the browser sees it as a hidden text field essentially). The password is
not automatically entered into the hidden field, so the autocomplete
prevention continues to work as expected.
This version:
* should work with the Behat Goutte driver
* should not suffer from password autofill anxiety
* should allow unmasking (and masking) of a password
* should allow editing of passwords in either masked, or unmasked form
AMOS BEGIN
MOV [revealpassword,core_form],[passwordunmaskrevealhint,core_form]
AMOS END
This patch includes a big set of changes that are all designed to work together to provide
a better way to navigate in the new theme, and a different way of working with blocks.
Blocks have been moved to a "drawer" that can be opened and closed (this is remembered in a user pref).
A new "flat navigation" element is also available in a drawer - which should let you do 90% of things
without needing to open the "blocks" drawer.
The flat navigation is build from specific parts of the nav tree - the top nodes like "calendar, dashboard" are
hand picked. There is a mycourses node listing your enrolled courses.
There is a node for the current course, built from the top nodes in the current course node in the nav tree.
Administrators have a link to the Site admin settings here too.
These nav elements are used by the templates for the new theme, which also has a resigned layout for login and signup.
There have also been some additional fixes / improvements to the scss for the new theme which goes along with these
layout changes.
This set of changes is a collaboration between Martin, Damyon and Alberto (thanks!).