[FEATURE] Add inline AJAX validation for TCA type slug
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Configuration / Backend / AjaxRoutes.php
1 <?php
2
3 use TYPO3\CMS\Backend\Controller;
4
5 /**
6 * Definitions for routes provided by EXT:backend
7 * Contains all AJAX-based routes for entry points
8 *
9 * Currently the "access" property is only used so no token creation + validation is made
10 * but will be extended further.
11 */
12 return [
13
14 // Expand or toggle in legacy file tree
15 'sc_alt_file_navframe_expandtoggle' => [
16 'path' => '/folder/tree/expand',
17 'target' => Controller\FileSystemNavigationFrameController::class . '::ajaxExpandCollapse'
18 ],
19
20 // File processing
21 'file_process' => [
22 'path' => '/file/process',
23 'target' => Controller\File\FileController::class . '::processAjaxRequest'
24 ],
25
26 // Check if file exists
27 'file_exists' => [
28 'path' => '/file/exists',
29 'target' => Controller\File\FileController::class . '::fileExistsInFolderAction'
30 ],
31
32 // Get record details of a child record in IRRE
33 'record_inline_details' => [
34 'path' => '/record/inline/details',
35 'target' => Controller\FormInlineAjaxController::class . '::detailsAction'
36 ],
37
38 // Create new inline element
39 'record_inline_create' => [
40 'path' => '/record/inline/create',
41 'target' => Controller\FormInlineAjaxController::class . '::createAction'
42 ],
43
44 // Synchronize localization
45 'record_inline_synchronizelocalize' => [
46 'path' => '/record/inline/synchronizelocalize',
47 'target' => Controller\FormInlineAjaxController::class . '::synchronizeLocalizeAction'
48 ],
49
50 // Expand / Collapse inline record
51 'record_inline_expandcollapse' => [
52 'path' => '/record/inline/expandcollapse',
53 'target' => Controller\FormInlineAjaxController::class . '::expandOrCollapseAction'
54 ],
55
56 // Site configuration inline create route
57 'site_configuration_inline_create' => [
58 'path' => '/siteconfiguration/inline/create',
59 'target' => Controller\SiteInlineAjaxController::class . '::newInlineChildAction'
60 ],
61
62 // Validate slug input
63 'record_slug_suggest' => [
64 'path' => '/record/slug/suggest',
65 'target' => Controller\FormSlugAjaxController::class . '::suggestAction'
66 ],
67
68 // Site configuration inline open existing "record" route
69 'site_configuration_inline_details' => [
70 'path' => '/siteconfiguration/inline/details',
71 'target' => Controller\SiteInlineAjaxController::class . '::openInlineChildAction'
72 ],
73
74 // Add a flex form section container
75 'record_flex_container_add' => [
76 'path' => '/record/flex/containeradd',
77 'target' => Controller\FormFlexAjaxController::class . '::containerAdd',
78 ],
79
80 // FormEngine suggest wizard result generator
81 'record_suggest' => [
82 'path' => '/wizard/suggest/search',
83 'target' => \TYPO3\CMS\Backend\Controller\Wizard\SuggestWizardController::class . '::searchAction'
84 ],
85
86 // Fetch the tree-structured data from a record for the tree selection
87 'record_tree_data' => [
88 'path' => '/record/tree/fetchData',
89 'target' => Controller\FormSelectTreeAjaxController::class . '::fetchDataAction'
90 ],
91
92 // Get data for page tree
93 'page_tree_data' => [
94 'path' => '/page/tree/fetchData',
95 'target' => Controller\Page\TreeController::class . '::fetchDataAction'
96 ],
97
98 // Get page tree configuration
99 'page_tree_configuration' => [
100 'path' => '/page/tree/fetchConfiguration',
101 'target' => Controller\Page\TreeController::class . '::fetchConfigurationAction'
102 ],
103
104 // Set temporary mount point
105 'page_tree_set_temporary_mount_point' => [
106 'path' => '/page/tree/setTemporaryMountPoint',
107 'target' => Controller\Page\TreeController::class . '::setTemporaryMountPointAction'
108 ],
109
110 // Get shortcut edit form
111 'shortcut_editform' => [
112 'path' => '/shortcut/editform',
113 'target' => Controller\ShortcutController::class . '::showEditFormAction'
114 ],
115
116 // Save edited shortcut
117 'shortcut_saveform' => [
118 'path' => '/shortcut/saveform',
119 'target' => Controller\ShortcutController::class . '::updateAction'
120 ],
121
122 // Render shortcut toolbar item
123 'shortcut_list' => [
124 'path' => '/shortcut/list',
125 'target' => Controller\ShortcutController::class . '::menuAction'
126 ],
127
128 // Delete a shortcut
129 'shortcut_remove' => [
130 'path' => '/shortcut/remove',
131 'target' => Controller\ShortcutController::class . '::removeAction'
132 ],
133
134 // Create a new shortcut
135 'shortcut_create' => [
136 'path' => '/shortcut/create',
137 'target' => Controller\ShortcutController::class . '::addAction'
138 ],
139
140 // Render systeminformtion toolbar item
141 'systeminformation_render' => [
142 'path' => '/system-information/render',
143 'target' => \TYPO3\CMS\Backend\Controller\SystemInformationController::class . '::renderMenuAction',
144 'parameters' => [
145 'skipSessionUpdate' => 1
146 ]
147 ],
148
149 // Reload the module menu
150 'modulemenu' => [
151 'path' => '/module-menu',
152 'target' => Controller\BackendController::class . '::getModuleMenu'
153 ],
154 'topbar' => [
155 'path' => '/topbar',
156 'target' => Controller\BackendController::class . '::getTopbar'
157 ],
158
159 // Log in into backend
160 'login' => [
161 'path' => '/login',
162 'target' => \TYPO3\CMS\Backend\Controller\AjaxLoginController::class . '::loginAction',
163 'access' => 'public'
164 ],
165
166 // Log out from backend
167 'logout' => [
168 'path' => '/logout',
169 'target' => \TYPO3\CMS\Backend\Controller\AjaxLoginController::class . '::logoutAction',
170 'access' => 'public'
171 ],
172
173 // Refresh login of backend
174 'login_refresh' => [
175 'path' => '/login/refresh',
176 'target' => \TYPO3\CMS\Backend\Controller\AjaxLoginController::class . '::refreshAction',
177 ],
178
179 // Check if backend session has timed out
180 'login_timedout' => [
181 'path' => '/login/timedout',
182 'target' => \TYPO3\CMS\Backend\Controller\AjaxLoginController::class . '::isTimedOutAction',
183 'access' => 'public',
184 'parameters' => [
185 'skipSessionUpdate' => 1
186 ]
187 ],
188
189 // Render flash messages
190 'flashmessages_render' => [
191 'path' => '/flashmessages/render',
192 'target' => \TYPO3\CMS\Backend\Controller\FlashMessageController::class . '::getQueuedFlashMessagesAction'
193 ],
194
195 // Load context menu for
196 'contextmenu' => [
197 'path' => '/context-menu',
198 'target' => Controller\ContextMenuController::class . '::getContextMenuAction'
199 ],
200
201 // Load context menu for
202 'contextmenu_clipboard' => [
203 'path' => '/context-menu/clipboard',
204 'target' => Controller\ContextMenuController::class . '::clipboardAction'
205 ],
206
207 // Process data handler commands
208 'record_process' => [
209 'path' => '/record/process',
210 'target' => Controller\SimpleDataHandlerController::class . '::processAjaxRequest'
211 ],
212
213 // Process user settings
214 'usersettings_process' => [
215 'path' => '/usersettings/process',
216 'target' => Controller\UserSettingsController::class . '::processAjaxRequest'
217 ],
218
219 // Open the image manipulation wizard
220 'wizard_image_manipulation' => [
221 'path' => '/wizard/image-manipulation',
222 'target' => \TYPO3\CMS\Backend\Controller\Wizard\ImageManipulationController::class . '::getWizardContent'
223 ],
224
225 // Save a newly added online media
226 'livesearch' => [
227 'path' => '/livesearch',
228 'target' => Controller\LiveSearchController::class . '::liveSearchAction'
229 ],
230
231 // Save a newly added online media
232 'online_media_create' => [
233 'path' => '/online-media/create',
234 'target' => Controller\OnlineMediaController::class . '::createAction'
235 ],
236
237 // Get icon from IconFactory
238 'icons' => [
239 'path' => '/icons',
240 'target' => \TYPO3\CMS\Core\Controller\IconController::class . '::getIcon'
241 ],
242
243 // Get icon cache identifier
244 'icons_cache' => [
245 'path' => '/icons/cache',
246 'target' => \TYPO3\CMS\Core\Controller\IconController::class . '::getCacheIdentifier'
247 ],
248
249 // Encode typolink parts on demand
250 'link_browser_encodetypolink' => [
251 'path' => '/link-browser/encode-typolink',
252 'target' => \TYPO3\CMS\Backend\Controller\LinkBrowserController::class . '::encodeTypoLink',
253 ],
254
255 // Get languages in page
256 'page_languages' => [
257 'path' => '/records/localize/get-languages',
258 'target' => Controller\Page\LocalizationController::class . '::getUsedLanguagesInPage'
259 ],
260
261 // Get summary of records to localize
262 'records_localize_summary' => [
263 'path' => '/records/localize/summary',
264 'target' => Controller\Page\LocalizationController::class . '::getRecordLocalizeSummary'
265 ],
266
267 // Localize the records
268 'records_localize' => [
269 'path' => '/records/localize',
270 'target' => Controller\Page\LocalizationController::class . '::localizeRecords'
271 ],
272
273 // context help
274 'context_help' => [
275 'path' => '/context-help',
276 'target' => \TYPO3\CMS\Backend\Controller\ContextHelpAjaxController::class . '::getHelpAction'
277 ]
278 ];