Skip to content
Snippets Groups Projects
Verified Commit 897c305f authored by Théodore Biadala's avatar Théodore Biadala
Browse files

Issue #3339374 by gapple, andypost, longwave, catch, smustgrave: [11.x]...

Issue #3339374 by gapple, andypost, longwave, catch, smustgrave: [11.x] Require array argument for AddCssCommand
parent 87b34b9d
Branches
Tags
32 merge requests!11131[10.4.x-only-DO-NOT-MERGE]: Issue ##2842525 Ajax attached to Views exposed filter form does not trigger callbacks,!9470[10.3.x-only-DO-NOT-MERGE]: #3331771 Fix file_get_contents(): Passing null to parameter,!8540Issue #3457061: Bootstrap Modal dialog Not closing after 10.3.0 Update,!8528Issue #3456871 by Tim Bozeman: Support NULL services,!8373Issue #3427374 by danflanagan8, Vighneshh: taxonomy_tid ViewsArgumentDefault...,!7526Expose roles in response,!7352Draft: Resolve #3203489 "Set filename as",!6880Add @property to the DateTimeItem,!3878Removed unused condition head title for views,!3818Issue #2140179: $entity->original gets stale between updates,!3742Issue #3328429: Create item list field formatter for displaying ordered and unordered lists,!3731Claro: role=button on status report items,!3668Resolve #3347842 "Deprecate the trusted",!3651Issue #3347736: Create new SDC component for Olivero (header-search),!3531Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!3355Issue #3209129: Scrolling problems when adding a block via layout builder,!3154Fixes #2987987 - CSRF token validation broken on routes with optional parameters.,!3133core/modules/system/css/components/hidden.module.css,!2964Issue #2865710 : Dependencies from only one instance of a widget are used in display modes,!2812Issue #3312049: [Followup] Fix Drupal.Commenting.FunctionComment.MissingReturnType returns for NULL,!2794Issue #3100732: Allow specifying `meta` data on JSON:API objects,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2334Issue #3228209: Add hasRole() method to AccountInterface,!2062Issue #3246454: Add weekly granularity to views date sort,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!877Issue #2708101: Default value for link text is not saved,!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493
Pipeline #109927 canceled
Pipeline: drupal

#109929

    ......@@ -17,21 +17,18 @@ class AddCssCommand implements CommandInterface {
    /**
    * Arrays containing attributes of the stylesheets to be added to the page.
    *
    * @var string[][]|string
    * @var string[][]
    */
    protected $styles;
    /**
    * Constructs an AddCssCommand.
    *
    * @param string[][]|string $styles
    * @param string[][] $styles
    * Arrays containing attributes of the stylesheets to be added to the page.
    * i.e. `['href' => 'someURL']` becomes `<link href="someURL">`.
    */
    public function __construct($styles) {
    if (is_string($styles)) {
    @trigger_error('The ' . __NAMESPACE__ . '\AddCssCommand with a string argument is deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. See http://www.drupal.org/node/3154948', E_USER_DEPRECATED);
    }
    public function __construct(array $styles) {
    $this->styles = $styles;
    }
    ......
    ......@@ -1699,21 +1699,12 @@
    * {@link Drupal.Ajax} object created by {@link Drupal.ajax}.
    * @param {object} response
    * The response from the Ajax request.
    * @param {object[]|string} response.data
    * @param {object[]} response.data
    * An array of styles to be added.
    * @param {number} [status]
    * The XMLHttpRequest status.
    */
    add_css(ajax, response, status) {
    if (typeof response.data === 'string') {
    Drupal.deprecationError({
    message:
    'Passing a string to the Drupal.ajax.add_css() method is deprecated in 10.1.0 and is removed from drupal:11.0.0. See https://www.drupal.org/node/3154948.',
    });
    $('head').prepend(response.data);
    return;
    }
    const allUniqueBundleIds = response.data.map(function (style) {
    const uniqueBundleId = style.href + ajax.instanceIndex;
    // Force file to load as a CSS stylesheet using 'css!' flag.
    ......
    ......@@ -215,17 +215,6 @@ function ajax_forms_test_advanced_commands_add_css_callback($form, FormStateInte
    return $response;
    }
    /**
    * Ajax callback for 'add_css' that uses legacy string parameter.
    *
    * @todo Remove in Drupal 11.0.0 https://www.drupal.org/i/3339374
    */
    function ajax_forms_test_advanced_commands_add_css_legacy_callback($form, FormStateInterface $form_state) {
    $response = new AjaxResponse();
    $response->addCommand(new AddCssCommand("<link rel='stylesheet' href='my/file.css' media='all' />"));
    return $response;
    }
    /**
    * Ajax form callback: Selects the 'driver_text' element of the validation form.
    */
    ......
    ......@@ -224,16 +224,6 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    ],
    ];
    // Shows the Ajax 'add_css' command with legacy string parameter.
    // @todo Remove in Drupal 11.0.0 https://www.drupal.org/i/3339374
    $form['add_css_legacy_command_example'] = [
    '#type' => 'submit',
    '#value' => $this->t("AJAX 'add_css' legacy command"),
    '#ajax' => [
    'callback' => 'ajax_forms_test_advanced_commands_add_css_legacy_callback',
    ],
    ];
    $form['submit'] = [
    '#type' => 'submit',
    '#value' => $this->t('Submit'),
    ......
    ......@@ -144,25 +144,6 @@ public function testAjaxCommands() {
    $this->assertWaitPageContains('<div class="test-settings-command">42</div>');
    }
    /**
    * Tests the various Ajax Commands with legacy parameters.
    * @group legacy
    */
    public function testLegacyAjaxCommands() {
    $session = $this->getSession();
    $page = $this->getSession()->getPage();
    $form_path = 'ajax_forms_test_ajax_commands_form';
    $web_user = $this->drupalCreateUser(['access content']);
    $this->drupalLogin($web_user);
    $this->drupalGet($form_path);
    // Tests the 'add_css' command with legacy string value.
    $this->expectDeprecation('Javascript Deprecation: Passing a string to the Drupal.ajax.add_css() method is deprecated in 10.1.0 and is removed from drupal:11.0.0. See https://www.drupal.org/node/3154948.');
    $page->pressButton("AJAX 'add_css' legacy command");
    $this->assertWaitPageContains('my/file.css');
    }
    /**
    * Asserts that page contains a text after waiting.
    *
    ......
    ......@@ -126,23 +126,6 @@ public function testAddCssCommand($css, $expected) {
    $this->assertEquals($expected, $command->render());
    }
    /**
    * @covers \Drupal\Core\Ajax\AddCssCommand
    * @group legacy
    */
    public function testStringAddCssCommand() {
    $this->expectDeprecation("The Drupal\Core\Ajax\AddCssCommand with a string argument is deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. See http://www.drupal.org/node/3154948");
    $command = new AddCssCommand('<style>p{ text-decoration:blink; }</style>');
    $expected = [
    'command' => 'add_css',
    'data' => '<style>p{ text-decoration:blink; }</style>',
    ];
    $this->assertEquals($expected, $command->render());
    }
    /**
    * @covers \Drupal\Core\Ajax\AfterCommand
    */
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment