A field widget that allows for entering of sensitive information that can be revealed at the user's request - ie. API keys, secrets.
When a sensitive field that has been previously populated is loaded again, a placeholder is used instead of the real value, until the user opts to reveal the value. The real value is loaded via AJAX.
Credit to @tomaszstrojny for the original implementation.
Replaces #5062. Fixes#5061, #1850, perhaps #1061.
Co-authored-by: Tomasz Strojny <tomasz@init.biz>
Co-authored-by: Luke Towers <github@luketowers.ca>
The bug occurred because if specific fields aren't detected in onRefresh(), the entire Form widget HTML will be returned as the result instead of specific fields. This created a problem because the october.form.js JS is not setup to gracefully handle having the entire root form DOM node completely replaced in the middle of a request being completed. Specifically, this would cause problems when trying to detect empty tabs, and then the problems would cascade from there as there would be an instance of october.form.js attached to the page with broken references to no-longer existing DOM nodes.
This fix solves the immediate issue of `field@context` using the `dependsOn` feature breaking by ensuring that the actual final field name for a given field is used instead of the name used in the configuration of the field. Future work should probably be done to better support an entire form being re-rendered if no fields are detected in onRefresh however.
Allow plugin autoloaders to load, even on restricted pages. This allows (enabled) plugins to load their autoloaders on any pages, allowing includes in migration files to run.
Fixes#5110.
Fixes an issue when using databaseTemplates where if the pathCache had been generated, and then any template was removed from the database manually the pathCache being out of date would cause an exception to be thrown elsewhere.
Very often in our community people asking question:"How do i install theme from marketplace?"
And to answer that question we should say "Just press Install plugins button!"
That's not very intuitive for beginners. This PR adds one button that leads right to themes installation page.