Problem/Motivation

The toolbar submenus do not load anymore.

Proposed resolution

If you return a JsonResponse in your controller it should be passed directly to the output rather than being converted to an AjaxResponse.

User interface changes

None. Well, toolbar subtrees will work again :)

API changes

Returning a JsonResponse object from the controller will no longer result in it being converted to an AjaxResponse.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

jessebeach’s picture

Adds some jank eval support for the JSON callback sent from the Toolbar subtrees route controller. Let's get this into ajax.js so Toolbar just needs to call the URL and not worry about the JSON data eval'ing.

Oh, and the namespace of the ToolbarController was wrong in the routing file for some reason, so I fixed it:

-    _custom_access: '\Drupal\toolbar\Routing\ToolbarController::checkSubTreeAccess'
+    _custom_access: '\Drupal\toolbar\Controller\ToolbarController::checkSubTreeAccess'
webchick’s picture

Priority: Major » Critical

Regressions in previously working things == critical.

dawehner’s picture

Oh i haven't opened this issue in the meantime but also ran into the problem as you talked about the toolbar in the other issue: #2187991: toolbar access checking points to wrong namespace

jessebeach’s picture

FileSize
72.13 KB

This is what JsonResponse is now returning

0: {command:insert, method:null, selector:null,…}
command: "insert"
data: "Drupal.toolbar.setSubtrees.resolve({"admin-content":"","admin-structure":"\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/block\u0022 id=\u0022toolbar-link-admin-structure-block\u0022 class=\u0022toolbar-icon toolbar-icon-block-layout\u0022 title=\u0022Configure what block content appears in your site\u0026amp;#039;s sidebars and other regions.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/block\u0022\u003EBlock layout\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/content\/comment\u0022 id=\u0022toolbar-link-admin-content-comment\u0022 class=\u0022toolbar-icon toolbar-icon-comment-forms\u0022 title=\u0022List and edit site comments and the comment approval queue.\u0022 data-drupal-link-system-path=\u0022admin\/content\/comment\u0022\u003EComment forms\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/contact\u0022 id=\u0022toolbar-link-admin-structure-contact\u0022 class=\u0022toolbar-icon toolbar-icon-contact-form-categories\u0022 title=\u0022Create a system contact form and set up categories for the form to use.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/contact\u0022\u003EContact form categories\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/types\u0022 id=\u0022toolbar-link-admin-structure-types\u0022 class=\u0022toolbar-icon toolbar-icon-content-types\u0022 title=\u0022Manage content types, including default status, front page promotion, comment settings, etc.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/types\u0022\u003EContent types\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/display-modes\u0022 id=\u0022toolbar-link-admin-structure-display-modes\u0022 class=\u0022toolbar-icon toolbar-icon-display-modes\u0022 title=\u0022Configure what displays are available for your content and forms.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/display-modes\u0022\u003EDisplay modes\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/display-modes\/form\u0022 id=\u0022toolbar-link-admin-structure-display-modes-form\u0022 class=\u0022toolbar-icon toolbar-icon-form-modes\u0022 title=\u0022Manage custom form modes.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/display-modes\/form\u0022\u003EForm modes\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/display-modes\/view\u0022 id=\u0022toolbar-link-admin-structure-display-modes-view\u0022 class=\u0022toolbar-icon toolbar-icon-view-modes\u0022 title=\u0022Manage custom view modes.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/display-modes\/view\u0022\u003EView modes\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/menu\u0022 id=\u0022toolbar-link-admin-structure-menu\u0022 class=\u0022toolbar-icon toolbar-icon-menus\u0022 title=\u0022Add new menus to your site, edit existing menus, and rename and reorganize menu links.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/menu\u0022\u003EMenus\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/taxonomy\u0022 id=\u0022toolbar-link-admin-structure-taxonomy\u0022 class=\u0022toolbar-icon toolbar-icon-taxonomy\u0022 title=\u0022Manage tagging, categorization, and classification of your content.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/taxonomy\u0022\u003ETaxonomy\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/structure\/views\u0022 id=\u0022toolbar-link-admin-structure-views\u0022 class=\u0022toolbar-icon toolbar-icon-views\u0022 title=\u0022Manage customized lists of content.\u0022 data-drupal-link-system-path=\u0022admin\/structure\/views\u0022\u003EViews\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E","admin-appearance":"","admin-modules":"","admin-config":"\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/people\u0022 id=\u0022toolbar-link-admin-config-people\u0022 class=\u0022toolbar-icon toolbar-icon-people\u0022 title=\u0022Configure user accounts.\u0022 data-drupal-link-system-path=\u0022admin\/config\/people\u0022\u003EPeople\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/people\/accounts\u0022 id=\u0022toolbar-link-admin-config-people-accounts\u0022 class=\u0022toolbar-icon toolbar-icon-account-settings\u0022 title=\u0022Configure default behavior of users, including registration requirements, e-mails, and fields.\u0022 data-drupal-link-system-path=\u0022admin\/config\/people\/accounts\u0022\u003EAccount settings\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/system\u0022 id=\u0022toolbar-link-admin-config-system\u0022 class=\u0022toolbar-icon toolbar-icon-system\u0022 title=\u0022General system related configuration.\u0022 data-drupal-link-system-path=\u0022admin\/config\/system\u0022\u003ESystem\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/system\/site-information\u0022 id=\u0022toolbar-link-admin-config-system-site-information\u0022 class=\u0022toolbar-icon toolbar-icon-site-information\u0022 title=\u0022Change site name, e-mail address, slogan, default front page and error pages.\u0022 data-drupal-link-system-path=\u0022admin\/config\/system\/site-information\u0022\u003ESite information\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/system\/cron\u0022 id=\u0022toolbar-link-admin-config-system-cron\u0022 class=\u0022toolbar-icon toolbar-icon-cron\u0022 title=\u0022Manage automatic site maintenance tasks.\u0022 data-drupal-link-system-path=\u0022admin\/config\/system\/cron\u0022\u003ECron\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/content\u0022 id=\u0022toolbar-link-admin-config-content\u0022 class=\u0022toolbar-icon toolbar-icon-content-authoring\u0022 title=\u0022Settings related to formatting and authoring content.\u0022 data-drupal-link-system-path=\u0022admin\/config\/content\u0022\u003EContent authoring\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/content\/formats\u0022 id=\u0022toolbar-link-admin-config-content-formats\u0022 class=\u0022toolbar-icon toolbar-icon-text-formats-and-editors\u0022 title=\u0022Configure how user-contributed content is filtered and formatted, as well as the text editor user interface (WYSIWYGs or toolbars).\u0022 data-drupal-link-system-path=\u0022admin\/config\/content\/formats\u0022\u003EText formats and editors\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/user-interface\u0022 id=\u0022toolbar-link-admin-config-user-interface\u0022 class=\u0022toolbar-icon toolbar-icon-user-interface\u0022 title=\u0022Tools that enhance the user interface.\u0022 data-drupal-link-system-path=\u0022admin\/config\/user-interface\u0022\u003EUser interface\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/user-interface\/shortcut\u0022 id=\u0022toolbar-link-admin-config-user-interface-shortcut\u0022 class=\u0022toolbar-icon toolbar-icon-shortcuts\u0022 title=\u0022Add and modify shortcut sets.\u0022 data-drupal-link-system-path=\u0022admin\/config\/user-interface\/shortcut\u0022\u003EShortcuts\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/development\u0022 id=\u0022toolbar-link-admin-config-development\u0022 class=\u0022toolbar-icon toolbar-icon-development\u0022 title=\u0022Development tools.\u0022 data-drupal-link-system-path=\u0022admin\/config\/development\u0022\u003EDevelopment\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/development\/performance\u0022 id=\u0022toolbar-link-admin-config-development-performance\u0022 class=\u0022toolbar-icon toolbar-icon-performance\u0022 title=\u0022Enable or disable page caching for anonymous users and set CSS and JS bandwidth optimization options.\u0022 data-drupal-link-system-path=\u0022admin\/config\/development\/performance\u0022\u003EPerformance\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/development\/logging\u0022 id=\u0022toolbar-link-admin-config-development-logging\u0022 class=\u0022toolbar-icon toolbar-icon-logging-and-errors\u0022 title=\u0022Settings for logging and alerts modules. Various modules can route Drupal\u0026amp;#039;s system events to different destinations, such as syslog, database, email, etc.\u0022 data-drupal-link-system-path=\u0022admin\/config\/development\/logging\u0022\u003ELogging and errors\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/development\/maintenance\u0022 id=\u0022toolbar-link-admin-config-development-maintenance\u0022 class=\u0022toolbar-icon toolbar-icon-maintenance-mode\u0022 title=\u0022Take the site offline for maintenance or bring it back online.\u0022 data-drupal-link-system-path=\u0022admin\/config\/development\/maintenance\u0022\u003EMaintenance mode\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/development\/testing\u0022 id=\u0022toolbar-link-admin-config-development-testing\u0022 class=\u0022toolbar-icon toolbar-icon-testing\u0022 title=\u0022Run tests against Drupal core and your modules. These tests help assure that your site code is working as designed.\u0022 data-drupal-link-system-path=\u0022admin\/config\/development\/testing\u0022\u003ETesting\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/development\/configuration\u0022 id=\u0022toolbar-link-admin-config-development-configuration\u0022 class=\u0022toolbar-icon toolbar-icon-configuration-management\u0022 title=\u0022Import, export, or synchronize your site configuration.\u0022 data-drupal-link-system-path=\u0022admin\/config\/development\/configuration\u0022\u003EConfiguration management\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/media\u0022 id=\u0022toolbar-link-admin-config-media\u0022 class=\u0022toolbar-icon toolbar-icon-media\u0022 title=\u0022Media tools.\u0022 data-drupal-link-system-path=\u0022admin\/config\/media\u0022\u003EMedia\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/media\/file-system\u0022 id=\u0022toolbar-link-admin-config-media-file-system\u0022 class=\u0022toolbar-icon toolbar-icon-file-system\u0022 title=\u0022Tell Drupal where to store uploaded files and how they are accessed.\u0022 data-drupal-link-system-path=\u0022admin\/config\/media\/file-system\u0022\u003EFile system\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/media\/image-styles\u0022 id=\u0022toolbar-link-admin-config-media-image-styles\u0022 class=\u0022toolbar-icon toolbar-icon-image-styles\u0022 title=\u0022Configure styles that can be used for resizing or adjusting images on display.\u0022 data-drupal-link-system-path=\u0022admin\/config\/media\/image-styles\u0022\u003EImage styles\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/media\/image-toolkit\u0022 id=\u0022toolbar-link-admin-config-media-image-toolkit\u0022 class=\u0022toolbar-icon toolbar-icon-image-toolkit\u0022 title=\u0022Choose which image toolkit to use if you have installed optional toolkits.\u0022 data-drupal-link-system-path=\u0022admin\/config\/media\/image-toolkit\u0022\u003EImage toolkit\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/search\u0022 id=\u0022toolbar-link-admin-config-search\u0022 class=\u0022toolbar-icon toolbar-icon-search-and-metadata\u0022 title=\u0022Local site search, metadata and SEO.\u0022 data-drupal-link-system-path=\u0022admin\/config\/search\u0022\u003ESearch and metadata\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/search\/settings\u0022 id=\u0022toolbar-link-admin-config-search-settings\u0022 class=\u0022toolbar-icon toolbar-icon-search-settings\u0022 title=\u0022Configure relevance settings for search and other indexing options.\u0022 data-drupal-link-system-path=\u0022admin\/config\/search\/settings\u0022\u003ESearch settings\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/search\/path\u0022 id=\u0022toolbar-link-admin-config-search-path\u0022 class=\u0022toolbar-icon toolbar-icon-url-aliases\u0022 title=\u0022Change your site\u0026amp;#039;s URL paths by aliasing them.\u0022 data-drupal-link-system-path=\u0022admin\/config\/search\/path\u0022\u003EURL aliases\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/regional\u0022 id=\u0022toolbar-link-admin-config-regional\u0022 class=\u0022toolbar-icon toolbar-icon-regional-and-language\u0022 title=\u0022Regional settings, localization and translation.\u0022 data-drupal-link-system-path=\u0022admin\/config\/regional\u0022\u003ERegional and language\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/regional\/settings\u0022 id=\u0022toolbar-link-admin-config-regional-settings\u0022 class=\u0022toolbar-icon toolbar-icon-regional-settings\u0022 title=\u0022Settings for the site\u0026amp;#039;s default time zone and country.\u0022 data-drupal-link-system-path=\u0022admin\/config\/regional\/settings\u0022\u003ERegional settings\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/regional\/date-time\u0022 id=\u0022toolbar-link-admin-config-regional-date-time\u0022 class=\u0022toolbar-icon toolbar-icon-date-and-time-formats\u0022 title=\u0022Configure display format strings for date and time.\u0022 data-drupal-link-system-path=\u0022admin\/config\/regional\/date-time\u0022\u003EDate and time formats\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022expanded\u0022\u003E\u003Ca href=\u0022\/admin\/config\/services\u0022 id=\u0022toolbar-link-admin-config-services\u0022 class=\u0022toolbar-icon toolbar-icon-web-services\u0022 title=\u0022Tools related to web services.\u0022 data-drupal-link-system-path=\u0022admin\/config\/services\u0022\u003EWeb services\u003C\/a\u003E\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/services\/rss-publishing\u0022 id=\u0022toolbar-link-admin-config-services-rss-publishing\u0022 class=\u0022toolbar-icon toolbar-icon-rss-publishing\u0022 title=\u0022Configure the site description, the number of items per feed and whether feeds should be titles\/teasers\/full-text.\u0022 data-drupal-link-system-path=\u0022admin\/config\/services\/rss-publishing\u0022\u003ERSS publishing\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/config\/workflow\u0022 id=\u0022toolbar-link-admin-config-workflow\u0022 class=\u0022toolbar-icon toolbar-icon-workflow\u0022 title=\u0022Content workflow, editorial workflow tools.\u0022 data-drupal-link-system-path=\u0022admin\/config\/workflow\u0022\u003EWorkflow\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E","admin-people":"","admin-reports":"\u003Cul class=\u0022menu clearfix\u0022\u003E\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/reports\/dblog\u0022 id=\u0022toolbar-link-admin-reports-dblog\u0022 class=\u0022toolbar-icon toolbar-icon-recent-log-messages\u0022 title=\u0022View events that have recently been logged.\u0022 data-drupal-link-system-path=\u0022admin\/reports\/dblog\u0022\u003ERecent log messages\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/reports\/fields\u0022 id=\u0022toolbar-link-admin-reports-fields\u0022 class=\u0022toolbar-icon toolbar-icon-field-list\u0022 title=\u0022Overview of fields on all entity types.\u0022 data-drupal-link-system-path=\u0022admin\/reports\/fields\u0022\u003EField list\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/reports\/status\u0022 id=\u0022toolbar-link-admin-reports-status\u0022 class=\u0022toolbar-icon toolbar-icon-status-report\u0022 title=\u0022Get a status report about your site\u0026amp;#039;s operation and any detected problems.\u0022 data-drupal-link-system-path=\u0022admin\/reports\/status\u0022\u003EStatus report\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/reports\/access-denied\u0022 id=\u0022toolbar-link-admin-reports-access-denied\u0022 class=\u0022toolbar-icon toolbar-icon-top-\u0026#039;access-denied\u0026#039;-errors\u0022 title=\u0022View \u0026amp;#039;access denied\u0026amp;#039; errors (403s).\u0022 data-drupal-link-system-path=\u0022admin\/reports\/access-denied\u0022\u003ETop \u0026#039;access denied\u0026#039; errors\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/reports\/page-not-found\u0022 id=\u0022toolbar-link-admin-reports-page-not-found\u0022 class=\u0022toolbar-icon toolbar-icon-top-\u0026#039;page-not-found\u0026#039;-errors\u0022 title=\u0022View \u0026amp;#039;page not found\u0026amp;#039; errors (404s).\u0022 data-drupal-link-system-path=\u0022admin\/reports\/page-not-found\u0022\u003ETop \u0026#039;page not found\u0026#039; errors\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/reports\/search\u0022 id=\u0022toolbar-link-admin-reports-search\u0022 class=\u0022toolbar-icon toolbar-icon-top-search-phrases\u0022 title=\u0022View most popular search phrases.\u0022 data-drupal-link-system-path=\u0022admin\/reports\/search\u0022\u003ETop search phrases\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli class=\u0022leaf\u0022\u003E\u003Ca href=\u0022\/admin\/reports\/views-plugins\u0022 id=\u0022toolbar-link-admin-reports-views-plugins\u0022 class=\u0022toolbar-icon toolbar-icon-views-plugins\u0022 title=\u0022Overview of plugins used in all views.\u0022 data-drupal-link-system-path=\u0022admin\/reports\/views-plugins\u0022\u003EViews plugins\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E","admin-help":""});"
method: null
selector: null
settings: null

dawehner’s picture

Status: Active » Needs review
Issue tags: +PHPUnit
FileSize
7.27 KB

I'm pretty certain that #1959574: Change record: Remove the deprecated Drupal 7 Ajax API introduced a change in the behavior of JsonResponse->callback(). Now, the data is returned as an Insert Command, meaning the callback information isn't accessible to the jQuery.ajax() JSONP behavior that the Toolbar had relied on.

So yeah, if you return a JsonResponse in your controller it should be passed directly to the output. This is cleary a bug.

jessebeach’s picture

So yeah, if you return a JsonResponse in your controller it should be passed directly to the output. This is cleary a bug.

I had a chat with nod_ about this and he agrees. A JsonResponse should return JSON. if you want commands and the whole Drupal AJAX experience, then one should use AjaxResponse.

dawehner’s picture

Right, in those cases you have drupal_ajax as content type, so both the JS and the PHP developer has control over it.

dawehner’s picture

FileSize
6.75 KB

Rerolled.

dawehner’s picture

Title: JsonResponse->callback now returns data in an Insert Command without any support in ajax.js to eval the callback in the client » Toolbar subtree is broken | JsonResponse->callback now returns data in an Insert Command without any support in ajax.js to eval the callback in the client

.

agentrickard’s picture

Works in testing. Needs code review.

agentrickard’s picture

Very minor documentation re-roll (a / an and a missing comma). Looks good!

agentrickard’s picture

Another minor docs change to use "Response object" consistently.

star-szr’s picture

Issue summary: View changes
Status: Needs review » Reviewed & tested by the community
Related issues: +#1959574: Remove the deprecated Drupal 7 Ajax API
FileSize
1.12 KB
4.1 KB
6.84 KB

Adding back the test case that got lost and more minor docs cleanup after talking to @dawehner. This looks good to go!

Including test-only patch as well for visibility and updating the issue summary, hope I got the details right.

The last submitted patch, 12: jsonresponse-2187483_12.patch, failed testing.

The last submitted patch, 11: jsonresponse-2187483_11.patch, failed testing.

dawehner’s picture

Thank you for fixing the grammar mistakes.

The last submitted patch, 13: 2187483-13-testonly.patch, failed testing.

webchick’s picture

Status: Reviewed & tested by the community » Fixed

Committed and pushed to 8.x. Thanks!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.