54 lines
1.6 KiB
ReStructuredText
54 lines
1.6 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _deprecation-98168-1660890228:
|
|
|
|
=========================================================
|
|
Deprecation: #98168 - Binding context menu item to `this`
|
|
=========================================================
|
|
|
|
See :issue:`98168`
|
|
|
|
Description
|
|
===========
|
|
|
|
Due to historical reasons, a context menu item is bound to :js:`this` in its callback action
|
|
which was used to access the context menu item's :js:`dataset`. The invocation of assigned callback actions
|
|
is adapted to pass the :js:`dataset` as the 3rd argument.
|
|
|
|
Binding the context menu item to :js:`this` in the callback is now marked as deprecated.
|
|
|
|
Impact
|
|
======
|
|
|
|
Using :js:`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 :js:`dataset` argument passed as the 3rd argument in the context menu callback action.
|
|
|
|
.. code-block:: js
|
|
|
|
// 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()
|
|
);
|
|
}
|
|
|
|
.. index:: Backend, JavaScript, NotScanned, ext:backend
|