Incompatible changes deprecated
Release 2.0.0
With the 2.0.0 release, this package has been upgraded to work with the latest 8.0.0 App Suite Core UI. Additionally, almost every occurence of "ad" or "ads" has been replaced with display. The following list contains an overview of the most notable changed:
Code upddated to ES Modules
Since the App Suite core code has been updated to use native ES modules, every code that is loaded via manifests has to be provided as ES modules. It is recommended to create the modules with vite. You can find an example project here.
Renaming of settings
Every setting that has been in the form io.ox/ads//setting
has been moved to io.ox/display//setting
in order to prevent ad-blocker detection.
Additionally, the setting io.ox/ads//ad_cookies
is now io.ox/display//displayCookies
.
Renaming of extension points
Every extension point that has been of the form io.ox/ads/pointName
has been renamed to io.ox/display/pointName
. Additionally, the main extension point (formerly io.ox/ads
) is now called io.ox/display
.
Renaming of adspaces
All adspaces are now just referred as spaces in the code. Moreover, all the names of the form io.ox/asd/adspace
were renamed to io.ox/display/adspace
.
Renaming of capability
The capability to enable/disable OX Display has been renamed from ads
to display
.
Extensions of spaces need to be registered before default
Due to some changes in the order of code loading, you need to make sure that the extension points for spaces have an additional parameter before: default
. Example:
ext.point('the/spaces/name').extend({
before: 'default', // This makes sure this extensions is run before code is attached to the dom
cleanup (baton) { /* do some cleanup */ },
draw (baton) { /* append baton.data.html to the spaces element, do other stuff */ },
reload (baton) { /* trigger a reload of the banner */ }
defaults (baton) { /* add default values to baton.data, like for sizes or size mappings */ }
})
New manifest namespaces
Before the change to native ES modules, a manifest could have a namespace named after a file (e.g. io.ox/display/register
). Those namespaces do not exists anymore. Instead there now is a dedicated namespace io.ox/display
. A plugin can export a named function fetchConfig -> Promise<Array>
that exposes custom configuration:
export function fetchConfig () {
return fetch('api/display/config')
}
Release 1.4.2
Removal of io.ox/ads/mailBackground and io.ox/ads/portalBackground ad spaces
Those ad spaces have been removed in favour of the new wallpaper "align" config options which has been available since a while.
Renaming of io.ox/ads/driveFolder to io.ox/ads/folder ad space
The driveFolder ad space has been renamed to folder, which reflects the new and more general use-case that is now supported.
Release 1.4.1
Removed io.ox/ads/skyscraperLeft extension point
This has been removed in favour of a new option of the io.ox/ads/skyscraper
extension point. To migrate to the new API, rename all io.ox/ads/skyscraperLeft
space configurations and add "placement": "left"
attribute to it.
Release 1.3.0
Removed some filters from the default implementation
Filters that can easily be implemented in the middleware, have been removed from frontend code. Those attributes are not used to filter the list of active ads any longer:
- capabilities
- active
In order to add custom support this, use the io.ox/ads
extension point and implement a custom filter
method.
ext.point('io.ox/ads').extend({
filter: function (baton) {
baton.activeAds = baton.activeAds.filter(function(conf) {
return conf.active && capabilities.has(conf.capabilities);
});
}
});