Unverified Commit 3c373396 authored by Volker Killesreiter's avatar Volker Killesreiter Committed by GitHub
Browse files

Issue #3267136 by shagel: Uncaught TypeError: deltaInput is null after update to 8.x-1.13

* Issue #3267136 by steveoriol, shagel, chr.fritsch, volkerk: Uncaught TypeError: deltaInput is null after update to paragraphs 1.13

* Issue #3267136 by shagel: Uncaught TypeError: deltaInput is null after update to 8.x-1.13

* Fix tests

* fix: another test

* fix: split text

Co-authored-by: default avatarVolker Killesreiter <killesre@gmail.com>
Co-authored-by: default avatarChristian Fritsch <chr.fritsch@gmx.net>

* Increase paragraphs version

* up drupal version

Co-authored-by: default avatarDaniel Bosen <daniel.bosen@burda.com>
Co-authored-by: default avatarChristian Fritsch <chr.fritsch@gmx.net>
parent 93f9df34
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ jobs:
    strategy:
      matrix:
        THEME: ['claro', 'gin']
        DRUPAL_TESTING_DRUPAL_VERSION: ['~9.2.0']
        DRUPAL_TESTING_DRUPAL_VERSION: ['~9.3.0']
        PHP: ['8.0']

    steps:
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@
        }
    ],
    "require": {
        "drupal/paragraphs": "^1.12"
        "drupal/paragraphs": "^1.13"
    },
    "require-dev": {
        "drupal/gin": "^3.0"
+1 −1
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@
   *   Integer value for delta position where a new paragraph should be added.
   */
  Drupal.paragraphs_features.add_in_between.setDelta = (dialog, delta) => {
    let deltaInput = dialog.closest('.paragraphs-add-wrapper').querySelector('.paragraph-type-add-modal-delta');
    let deltaInput = dialog.closest('.paragraphs-add-wrapper').querySelector('.paragraph-type-add-delta.modal');

    deltaInput.value = delta;
  };
+4 −4
Original line number Diff line number Diff line
@@ -46,9 +46,9 @@
    var $paragraphRow = $('#' + editor.name).closest('.paragraphs-subform').closest('tr');
    var paragraphType = $paragraphRow.find('[data-paragraphs-split-text-type]').attr('data-paragraphs-split-text-type');
    var $deltaField = function ($paragraphRow) {
      var $deltaField = $paragraphRow.closest('table').siblings().find('input.paragraph-type-add-modal-delta');
      var $deltaField = $paragraphRow.closest('table').siblings().find('input.paragraph-type-add-delta.modal');
      if ($deltaField.length === 0) {
        $deltaField = $paragraphRow.closest('.layer-wrapper').siblings().find('input.paragraph-type-add-modal-delta');
        $deltaField = $paragraphRow.closest('.layer-wrapper').siblings().find('input.paragraph-type-add-delta.modal');
      }
      return $deltaField;
    }($paragraphRow);
@@ -64,7 +64,7 @@
    var insertionDelta = $paragraphRow.parent().find('> tr.draggable').index($paragraphRow) + 1;
    $deltaField.val(insertionDelta);

    var paragraphTypeButtonSelector = $deltaField.attr('data-drupal-selector').substr('edit-'.length).replace(/-add-more-add-modal-form-area-add-more-delta$/, '-' + paragraphType + '-add-more').replace(/_/g, '-');
    var paragraphTypeButtonSelector = $deltaField.attr('data-drupal-selector').substr('edit-'.length).replace(/-add-more-add-more-delta$/, '-' + paragraphType + '-add-more').replace(/_/g, '-');
    var $actionButton = $('[data-drupal-selector^="' + paragraphTypeButtonSelector + '"]');

    // Triggering element name is required for proper handling of ajax response.
@@ -149,7 +149,7 @@

    // Delta field has to be cleaned up for proper working of add button. It
    // will not make any impact on non modal add mode.
    $originalRow.closest('table').siblings().find('input.paragraph-type-add-modal-delta').val('');
    $originalRow.closest('table').siblings().find('input.paragraph-type-add-delta.modal').val('');
  };

  /**
+6 −6
Original line number Diff line number Diff line
@@ -110,21 +110,21 @@ class ParagraphsFeaturesAddInBetweenTest extends ParagraphsFeaturesJavascriptTes
    // Check first add in between button.
    $page->find('xpath', '(//*[contains(concat(" ", normalize-space(@class), " "), " paragraphs-features__add-in-between__button ")])[1]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[add_more][add_modal_form_area][add_more_delta]', '0');
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[add_more][add_more_delta]', '0');
    $page->find('xpath', '//*[contains(@class, "paragraphs-add-dialog") and contains(@class, "ui-dialog-content")]//*[contains(@name, "test_1")]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();

    // Check last add in between button.
    $this->scrollClick('xpath', '(//*[contains(@class, "paragraphs-features__add-in-between__button ")])[last()]');
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[add_more][add_modal_form_area][add_more_delta]', '2');
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[add_more][add_more_delta]', '2');
    $page->find('xpath', '//*[contains(@class, "paragraphs-add-dialog") and contains(@class, "ui-dialog-content")]//*[contains(@name, "test_1")]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();

    // Check add in between button between existing paragraphs.
    $page->find('xpath', '(//*[contains(@class, "paragraphs-features__add-in-between__button ")])[3]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[add_more][add_modal_form_area][add_more_delta]', '2');
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[add_more][add_more_delta]', '2');
    $page->find('xpath', '//*[contains(@class, "paragraphs-add-dialog") and contains(@class, "ui-dialog-content")]//*[contains(@name, "test_1")]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();

@@ -182,21 +182,21 @@ class ParagraphsFeaturesAddInBetweenTest extends ParagraphsFeaturesJavascriptTes
    // Check first add in between button.
    $page->find('xpath', '(//*[contains(concat(" ", normalize-space(@class), " "), " paragraphs-features__add-in-between__button ")])[1]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[0][subform][field_paragraphs][add_more][add_modal_form_area][add_more_delta]', '0');
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[0][subform][field_paragraphs][add_more][add_more_delta]', '0');
    $page->find('xpath', '//*[contains(@class, "paragraphs-add-dialog") and contains(@class, "ui-dialog-content")]//*[contains(@name, "test_1")]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();

    // Check last add in between button.
    $this->scrollClick('xpath', '(//*[contains(concat(" ", normalize-space(@class), " "), " paragraphs-features__add-in-between__button ")])[last()]');
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[0][subform][field_paragraphs][add_more][add_modal_form_area][add_more_delta]', '1');
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[0][subform][field_paragraphs][add_more][add_more_delta]', '1');
    $page->find('xpath', '//*[contains(@class, "paragraphs-add-dialog") and contains(@class, "ui-dialog-content")]//*[contains(@name, "test_1")]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();

    // Check add in between button between existing paragraphs.
    $page->find('xpath', '(//*[contains(concat(" ", normalize-space(@class), " "), " paragraphs-features__add-in-between__button ")])[2]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[0][subform][field_paragraphs][add_more][add_modal_form_area][add_more_delta]', '1');
    $this->assertSession()->hiddenFieldValueEquals('field_paragraphs[0][subform][field_paragraphs][add_more][add_more_delta]', '1');
    $page->find('xpath', '//*[contains(@class, "paragraphs-add-dialog") and contains(@class, "ui-dialog-content")]//*[contains(@name, "test_1")]')->click();
    $this->assertSession()->assertWaitOnAjaxRequest();

Loading