Breaking: #69916 - Registered AJAX handlers replaced by routes
See forge#69916
Description
AJAX handlers registered in the core by Extension 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..
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 fetchbeing 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 |