Credit to @tobias-kuendig. Added $.oc.relationBehavior.changed function. To keep track of changes made using the relation controller this new "changed" function is called every time a record is created, added, removed or deleted. The function triggers the change.oc.formwidget event on the form field that belongs to this relation controller so other form fields are notified about the changes.
This is needed as it removes leftover control-popover backdrops in any plugin backend that utilizes ajax in a popup modal (which is any of them that has relations or nested relations), so we will need to take a look at the dashboard widgets again. Credit to @ayumihamsaki.
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.
Credit to @vosco88.
When trying to deploy October on shared hosting (www.websupport.sk) it is possible to receive the following error when accessing the frontend pages - ErrorException:> Zend OPcache API is restricted by "restrict_api" configuration directive. This checks not only if the opcache_invalidate exists but also if opcache is enabled. Same check is actually present in twig vendor files - but so far it is working without having the check there.
This commit adds two new aliases for the files associated with `framework.extras`. One to load the CSS (`framework.extras.css`) and for JS (`framework.extras.js`). Credit to @CptMeatball. Resolves#3909. Related: https://github.com/octobercms/docs/pull/334
The setTimeout fires after the modal already hides so it ends up firing twice which causes an error because the element is no longer there:
```
Uncaught TypeError: Cannot read property 'get' of null
at Popup.triggerEvent (storm-min.js?v443:3732)
at Popup.hide (storm-min.js?v443:3741)
at storm-min.js?v443:3730
```
Credit to @Teranode for the fix.
Since popovers and modals currently share the same z-index (600) a popover that gets created for a filter inside a modal is invisible. It is hidden below the modal. This commit adds a check to see if a filter is created from within a modal window. If yes, the popover will be added to the modal container. Otherwise the default container value `false` is used. Credit to @tobias-kuendig
Adds action buttons ("Apply" & "Clear") to filter popups for UX improvement (past experience was click out of the popup to apply the selected filters and manually remove all applied filters). Credit to @Teranode. Fixes#3304.
This enables developers to modify what the cache key is for a given instance of a settings model so that they can do things like load user dependent settings values and have those values affect the rendered CSS. Previously the key being static across all instances of a given setting model would prevent that from being feasible without clearing the cache for every request.
This prevents an error from popping up after the popover is hidden/removed `this.$container.remove()` is no longer available after removal so we need to check for the presence of `this.$container`. Credit to @Teranode
Improves the System Status dashboard widget by adding a warning icon whenever the specific log is disabled. Credit to @gergo85. Thanks to @petehalverson for Octodock making testing easier.