Breaking: #69916 - Registered AJAX handlers replaced by routes

See forge#69916

Description

AJAX handlers registered in the core by ExtensionManagementUtility::registerAjaxHandler() have been replaced by AJAX routes, which are registered inside any extension under Configuration/Backend/AjaxRoutes.php.

The routes registered in AjaxRoutes.php are available via JavaScript via TYPO3.settings.ajaxUrls[routeIdentifier].

Impact

Calling removed AJAX identifiers will result in an error. Please see the table below for migration.

Affected Installations

All 3rd party extensions using one of the removed handlers is affected.

Migration

Please see the table to get the new AJAX identifier.

EXT:backend

Old identifier

New identifier

New AJAX ID

SC_alt_db_navframe::expandCollapse

sc_alt_db_navframe_expandtoggle

/ajax/sc-alt-db-navframe/expandtoggle

SC_alt_file_navframe::expandCollapse

sc_alt_file_navframe_expandtoggle

/ajax/sc-alt-file-navframe/expandtoggle

TYPO3_tcefile::process

file_process

/ajax/file/process

TYPO3_tcefile::fileExists

file_exists

/ajax/file/exists

t3lib_TCEforms_inline::createNewRecord

record_inline_create

/ajax/inline/create

t3lib_TCEforms_inline::getRecordDetails

record_inline_details

/ajax/inline/record-details

t3lib_TCEforms_inline::synchronizeLocalizeRecords

record_inline_synchronizelocalize

/ajax/inline/synchronizelocalize

t3lib_TCEforms_inline::setExpandedCollapsedState

record_inline_expandcollapse

/ajax/inline/expandcollapse

t3lib_TCEforms_suggest::searchRecord

record_suggest

/ajax/wizard/suggest/search

ShortcutMenu::getShortcutEditForm

shortcut_editform

/ajax/shortcut/editform

ShortcutMenu::saveShortcut

shortcut_saveform

/ajax/shortcut/saveform

ShortcutMenu::render

shortcut_list

/ajax/shortcut/list

ShortcutMenu::delete

shortcut_remove

/ajax/shortcut/remove

ShortcutMenu::create

shortcut_create

/ajax/shortcut/create

SystemInformationMenu::load

systeminformation_render

/ajax/system-information/render

ModuleMenu::reload

modulemenu

/ajax/module-menu

BackendLogin::login

login

/ajax/login

BackendLogin::logout

logout

/ajax/logout

BackendLogin::refreshLogin

login_refresh

/ajax/login/refresh

BackendLogin::isTimedOut

login_timedout

/ajax/login/timedout

ExtDirect::getAPI

ext_direct_api

/ajax/ext-direct/api

ExtDirect::route

ext_direct_route

/ajax/ext-direct/route

DocumentTemplate::getFlashMessages

flashmessages_render

/ajax/flashmessages/render

ContextMenu::load

contextmenu

/ajax/context-menu

DataHandler::process

record_process

/ajax/record/process

UserSettings::process

usersettings_process

/ajax/user-settings/process

ImageManipulationWizard::getHtmlForImageManipulationWizard

wizard_image_manipulation

/ajax/wizard/image-manipulation

LiveSearch

livesearch

/ajax/livesearch

OnlineMedia::add

online_media_create

/ajax/online-media/create

EXT:beuser

Old identifier

New identifier

New AJAX ID

PermissionAjaxController::dispatch

user_access_permissions

/users/access/permissions

EXT:context_help

Old identifier

New identifier

New AJAX ID

ContextHelpAjaxController::dispatch

context_help

/context-help

EXT:opendocs

Old identifier

New identifier

New AJAX ID

TxOpendocs::renderMenu

opendocs_menu

/opendocs/menu

TxOpendocs::closeDocument

opendocs_close

/opendocs/close

EXT:recycler

Old identifier

New identifier

New AJAX ID

RecyclerAjaxController::dispatch

recycler

/recycler

EXT:rsaauth

Old identifier

New identifier

New AJAX ID

BackendLogin::getRsaPublicKey

rsa_publickey

/rsa/publickey

RsaEncryption::getRsaPublicKey

rsa_publickey

/rsa/publickey

EXT:rtehtmlarea

Old identifier

New identifier

New AJAX ID

rtehtmlarea::spellchecker

rtehtmlarea_spellchecker

/rte/spellchecker

EXT:t3editor

Old identifier

New identifier

New AJAX ID

T3Editor::saveCode

t3editor_save

/t3editor/save

T3Editor::getPlugins

t3editor_get_plugins

/t3editor/get-plugins

T3Editor_TSrefLoader::getTypes

t3editor_tsref

/t3editor/tsref

T3Editor_TSrefLoader::getDescription

t3editor_tsref

/t3editor/tsref

CodeCompletion::loadTemplates

t3editor_codecompletion_loadtemplates

/t3editor/codecompletion/load-templates

  • T3Editor_TSrefLoader::getTypes and T3Editor_TSrefLoader::getDescription have been combined. The separation is done by the new parameter fetch being either "types" or "description".

EXT:taskcenter

Old identifier

New identifier

New AJAX ID

Taskcenter::saveCollapseState

taskcenter_collapse

/taskcenter/collapse

Taskcenter::saveSortingState

taskcenter_sort

/taskcenter/sort

EXT:workspaces

Old identifier

New identifier

New AJAX ID

Workspaces::setWorkspace

workspace_switch

/workspaces/switch