diff -u b/paragraphs.module b/paragraphs.module --- b/paragraphs.module +++ b/paragraphs.module @@ -343,14 +343,17 @@ } if (isset($variables['element']['#allow_reference_changes']) && !$variables['element']['#allow_reference_changes']) { if (isset($variables['table']['#tabledrag'])) { + // Remove the tabledrag. unset($variables['table']['#tabledrag']); unset($variables['table']['#header'][1]); foreach ($variables['table']['#rows'] as $key => $value) { + // Restore the removed weight and give access FALSE. + $variables['table']['#rows'][$key]['data'][1]['data']['_weight'] = $value['data'][2]['data']; unset($variables['table']['#rows'][$key]['data'][2]); + $variables['table']['#rows'][$key]['data'][1]['data']['_weight']['#access'] = FALSE; } } } - } /** diff -u b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php --- b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php +++ b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php @@ -1060,7 +1060,6 @@ $elements['add_more'] = $this->buildAddActions(); } - $elements['#allow_reference_changes'] = $this->allowReferenceChanges(); $elements['#attached']['library'][] = 'paragraphs/drupal.paragraphs.widget'; return $elements; @@ -1074,6 +1073,7 @@ $elements['add_more'] = $this->buildAddActions(); } + $elements['#allow_reference_changes'] = $this->allowReferenceChanges(); $elements['#attached']['library'][] = 'paragraphs/drupal.paragraphs.widget'; return $elements; diff -u b/tests/src/FunctionalJavascript/ParagraphsExperimentalWidgetElementsTest.php b/tests/src/FunctionalJavascript/ParagraphsExperimentalWidgetElementsTest.php --- b/tests/src/FunctionalJavascript/ParagraphsExperimentalWidgetElementsTest.php +++ b/tests/src/FunctionalJavascript/ParagraphsExperimentalWidgetElementsTest.php @@ -3,9 +3,10 @@ namespace Drupal\Tests\paragraphs\FunctionalJavascript; use Drupal\FunctionalJavascriptTests\JavascriptTestBase; +use Drupal\language\Entity\ConfigurableLanguage; /** - * Test paragraphs user interface. + * Test paragraphs widget elements. * * @group paragraphs */ @@ -52,32 +53,40 @@ 'create content translations', 'administer languages', ]); + ConfigurableLanguage::createFromLangcode('sr')->save(); $edit = [ 'settings[paragraph][nested_paragraph][translatable]' => TRUE, 'settings[paragraph][nested_paragraph][settings][language][language_alterable]' => TRUE, 'settings[paragraph][images][fields][field_images_demo]' => TRUE, ]; $this->drupalPostForm('admin/config/regional/content-language', $edit, t('Save configuration')); + $settings = [ + 'add_mode' => 'modal', + ]; + $this->setParagraphsWidgetSettings('paragraphed_content_demo', 'field_paragraphs_demo', $settings); + // Create a node and add a paragraph. $page = $this->getSession()->getPage(); $this->drupalGet('node/add/paragraphed_content_demo'); - $page->pressButton('Add Text'); + $page->pressButton('Add Paragraph'); $this->assertSession()->assertWaitOnAjaxRequest(); - $page->pressButton('Add Text'); + $page->pressButton('Text'); $this->assertSession()->assertWaitOnAjaxRequest(); + // Assert the draghandle is visible. $style_selector = $page->find('css', '.tabledrag-handle'); $this->assertTrue($style_selector->isVisible()); $edit = [ 'title[0][value]' => 'Title', - 'field_paragraphs_demo[0][subform][paragraphs_text][0][value]' => 'First', - 'field_paragraphs_demo[0][subform][paragraphs_text][1][value]' => 'Second' + 'field_paragraphs_demo[0][subform][field_text_demo][0][value]' => 'First', ]; $this->drupalPostForm(NULL, $edit, t('Save')); - - $this->clickLink('Translate'); - $this->clickLink('Add'); - $style_selector = $page->find('css', '.tabledrag-handle'); - $this->assertFalse($style_selector->isVisible()); + // Translate the node. + $node = $this->getNodeByTitle('Title'); + $this->drupalGet('node/' . $node->id() . '/translations/add/en/sr'); + $page = $this->getSession()->getPage(); + $this->createScreenshot('/home/john/Documents/screenshot.jpg'); + // Assert that the draghandle is not displayed. + $this->assertNull($page->find('css', '.tabledrag-handle')); } }