Adds a couple of usability tweaks to the dropdown cell type in the data table widget, to more closely mimic a native dropdown field.
Pressing the up or down arrow keys when the cell is focused but with the dropdown closed will select the previous or next item automatically and set it as the cell value. This does prevent the usual table function of going to the previous or next row when focused on a dropdown cell, but I think it's a worthwhile trade-off. When the dropdown is open, the up and down arrows work the same as previously implemented.
Typing out characters will initiate a search and select the first matching option automatically and set it as the cell value. For example, for the following options:
Apples
Oranges
Bananas
Typing out o and r on the keyboard will automatically select the Oranges option.
Credit to @bennothommo
Credit to @Farrow. Previously when creating a backend form with RainLab.Builder if you filled in the "Default" property using the i18n (to get, for example, acme.plugin::lang.field.default) then that string would be output exactly on the form (i.e. <input value="acme.plugin::lang.field.default"...>) instead of being replaced with the actual value of that key from the lang file.
Added documentation for the following events:
media.folder.delete
media.file.delete
media.folder.rename
media.file.rename
media.folder.create
media.folder.move
media.file.move
media.file.upload
Added inline documentation for the following filter widget events:
backend.filter.extendQuery
backend.filter.extendScopesBefore
backend.filter.extendScopes
Fixes#3627. This changes the logic for hiding tabs when all of their fields are hidden to specifically only target direct children of the tab pane when looking for visible fields because repeaters will have fields present that are only hidden by virtue of the parent field being hidden however the previous behaviour would consider it visible.
Fix pathing issue in media manager
Currently there is a way to manipulate folder names using the request headers for the medafinder folder path. since `validatePath` does not validate file names but rather only validates the existence of a folder in a parent/subdirectory. We can utilize `validateFileName` to verify if the name of the folder path being created is valid during the folder creation process and the name applying process.
Documented in e56468a95b. Credit to @manogi.
Added an option to change from the "search on every keystroke" functionality to one where the serach is only fired when hitting the enter key. This makes sense when having larger datasets or CMS users who are slow typers.