Deprecation: #98168 - Binding context menu item to this
See forge#98168
Description
Due to historical reasons, a context menu item is bound to this
in its callback action
which was used to access the context menu item's dataset
. The invocation of assigned callback actions
is adapted to pass the dataset
as the 3rd argument.
Binding the context menu item to this
in the callback is now marked as deprecated.
Impact
Using this
in a context menu item callback will trigger a deprecated log entry in the browser's console.
Affected installations
All extensions providing custom context menu actions are affected.
Migration
To access data attributes, use the dataset
argument passed as the 3rd argument in the context menu callback action.
// Before
ContextMenuActions.renameFile(table, uid): void {
const actionUrl = $(this).data('action-url');
top.TYPO3.Backend.ContentContainer.setUrl(
actionUrl + '&target=' + encodeURIComponent(uid) + '&returnUrl=' + ContextMenuActions.getReturnUrl()
);
}
// After
ContextMenuActions.renameFile(table, uid, dataset): void {
const actionUrl = dataset.actionUrl;
top.TYPO3.Backend.ContentContainer.setUrl(
actionUrl + '&target=' + encodeURIComponent(uid) + '&returnUrl=' + ContextMenuActions.getReturnUrl()
);
}
Copied!