diff --git a/src/Plugin/Field/FieldWidget/InlineParagraphsWidget.php b/src/Plugin/Field/FieldWidget/InlineParagraphsWidget.php
index 7debd12..e072f48 100644
--- a/src/Plugin/Field/FieldWidget/InlineParagraphsWidget.php
+++ b/src/Plugin/Field/FieldWidget/InlineParagraphsWidget.php
@@ -275,23 +275,25 @@ class InlineParagraphsWidget extends WidgetBase {
);
}
- $links['remove_button'] = array(
- '#type' => 'submit',
- '#value' => t('Remove'),
- '#name' => strtr($id_prefix, '-', '_') . '_remove',
- '#weight' => 500,
- '#submit' => array(array(get_class($this), 'removeItemSubmit')),
- '#limit_validation_errors' => array(array_merge($parents, array($field_name, 'add_more'))),
- '#delta' => $delta,
- '#ajax' => array(
- 'callback' => array(get_class($this), 'itemAjax'),
- 'wrapper' => $widget_state['ajax_wrapper_id'],
- 'effect' => 'fade',
- ),
- '#access' => $paragraphs_entity->access('delete'),
- '#prefix' => '
',
- '#suffix' => '',
- );
+ if ($paragraphs_entity->language()->getId() == $paragraphs_entity->getUntranslated()->language()->getId()) {
+ $links['remove_button'] = array(
+ '#type' => 'submit',
+ '#value' => t('Remove'),
+ '#name' => strtr($id_prefix, '-', '_') . '_remove',
+ '#weight' => 500,
+ '#submit' => array(array(get_class($this), 'removeItemSubmit')),
+ '#limit_validation_errors' => array(array_merge($parents, array($field_name, 'add_more'))),
+ '#delta' => $delta,
+ '#ajax' => array(
+ 'callback' => array(get_class($this), 'itemAjax'),
+ 'wrapper' => $widget_state['ajax_wrapper_id'],
+ 'effect' => 'fade',
+ ),
+ '#access' => $paragraphs_entity->access('delete'),
+ '#prefix' => '',
+ '#suffix' => '',
+ );
+ }
$info['edit_button_info'] = array(
'#type' => 'markup',
@@ -710,38 +712,80 @@ class InlineParagraphsWidget extends WidgetBase {
}
// Add 'add more' button, if not working with a programmed form.
- if (($real_item_count < $cardinality || $cardinality == FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) && !$form_state->isProgrammed()) {
- $elements['add_more'] = array(
- '#type' => 'container',
- '#theme_wrappers' => array('paragraphs_dropbutton_wrapper'),
- );
-
- if (count($access_options)) {
- if ($this->getSetting('add_mode') == 'button' || ($this->getSetting('add_mode') == 'dropdown' && count($access_options) === 1)) {
+ if ( $items->getEntity()->language()->getId() == $items->getEntity()->getUntranslated()->language()->getId()) {
+ if (($real_item_count < $cardinality || $cardinality == FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) && !$form_state->isProgrammed()) {
+ $elements['add_more'] = array(
+ '#type' => 'container',
+ '#theme_wrappers' => array('paragraphs_dropbutton_wrapper'),
+ );
- foreach ($access_options as $machine_name => $label) {
- $elements['add_more']['add_more_button_' . $machine_name] = array(
- '#type' => 'submit',
- '#name' => strtr($id_prefix, '-', '_') . '_' . $machine_name . '_add_more',
- '#value' => t('Add !type', array('!type' => $label)),
- '#attributes' => array('class' => array('field-add-more-submit')),
- '#limit_validation_errors' => array(array_merge($parents, array($field_name, 'add_more'))),
- '#submit' => array(array(get_class($this), 'addMoreSubmit')),
- '#ajax' => array(
- 'callback' => array(get_class($this), 'addMoreAjax'),
- 'wrapper' => $wrapper_id,
- 'effect' => 'fade',
- ),
- '#bundle_machine_name' => $machine_name,
+ if (count($access_options)) {
+ if ($this->getSetting('add_mode') == 'button' || ($this->getSetting('add_mode') == 'dropdown' && count($access_options) === 1)) {
+
+ foreach ($access_options as $machine_name => $label) {
+ $elements['add_more']['add_more_button_' . $machine_name] = array(
+ '#type' => 'submit',
+ '#name' => strtr($id_prefix, '-', '_') . '_' . $machine_name . '_add_more',
+ '#value' => t('Add !type', array('!type' => $label)),
+ '#attributes' => array('class' => array('field-add-more-submit')),
+ '#limit_validation_errors' => array(array_merge($parents, array($field_name, 'add_more'))),
+ '#submit' => array(array(get_class($this), 'addMoreSubmit')),
+ '#ajax' => array(
+ 'callback' => array(get_class($this), 'addMoreAjax'),
+ 'wrapper' => $wrapper_id,
+ 'effect' => 'fade',
+ ),
+ '#bundle_machine_name' => $machine_name,
+ );
+ }
+ }
+ elseif($this->getSetting('add_mode') == 'dropdown') {
+ foreach ($access_options as $machine_name => $label) {
+ $elements['add_more']['add_more_button_' . $machine_name] = array(
+ '#type' => 'submit',
+ '#name' => strtr($id_prefix, '-', '_') . '_' . $machine_name . '_add_more',
+ '#value' => t('Add !type', array('!type' => $label)),
+ '#attributes' => array('class' => array('field-add-more-submit')),
+ '#limit_validation_errors' => array(array_merge($parents, array($field_name, 'add_more'))),
+ '#submit' => array(array(get_class($this), 'addMoreSubmit')),
+ '#ajax' => array(
+ 'callback' => array(get_class($this), 'addMoreAjax'),
+ 'wrapper' => $wrapper_id,
+ 'effect' => 'fade',
+ ),
+ '#bundle_machine_name' => $machine_name,
+ '#prefix' => '',
+ '#suffix' => '',
+ );
+ }
+ $elements['add_more']['#theme_wrappers'] = array('dropbutton_wrapper', 'paragraphs_dropbutton_wrapper');
+ $elements['add_more']['prefix'] = array(
+ '#markup' => '',
+ '#weight' => 999,
);
}
- }
- elseif($this->getSetting('add_mode') == 'dropdown') {
- foreach ($access_options as $machine_name => $label) {
- $elements['add_more']['add_more_button_' . $machine_name] = array(
+ else {
+ $elements['add_more']['add_more_select'] = array(
+ '#type' => 'select',
+ '#options' => $options,
+ '#title' => t('!title type', array('!title' => t($this->getSetting('title')))),
+ '#label_display' => 'hidden',
+ );
+
+ $text = t('Add !title', array('!title' => t($this->getSetting('title'))));
+
+ if ($real_item_count > 0) {
+ $text = t('Add another !title', array('!title' => t($this->getSetting('title'))));
+ }
+
+ $elements['add_more']['add_more_button'] = array(
'#type' => 'submit',
- '#name' => strtr($id_prefix, '-', '_') . '_' . $machine_name . '_add_more',
- '#value' => t('Add !type', array('!type' => $label)),
+ '#name' => strtr($id_prefix, '-', '_') . '_add_more',
+ '#value' => $text,
'#attributes' => array('class' => array('field-add-more-submit')),
'#limit_validation_errors' => array(array_merge($parents, array($field_name, 'add_more'))),
'#submit' => array(array(get_class($this), 'addMoreSubmit')),
@@ -750,62 +794,22 @@ class InlineParagraphsWidget extends WidgetBase {
'wrapper' => $wrapper_id,
'effect' => 'fade',
),
- '#bundle_machine_name' => $machine_name,
- '#prefix' => '',
- '#suffix' => '',
);
}
- $elements['add_more']['#theme_wrappers'] = array('dropbutton_wrapper', 'paragraphs_dropbutton_wrapper');
- $elements['add_more']['prefix'] = array(
- '#markup' => '',
- '#weight' => 999,
- );
}
else {
- $elements['add_more']['add_more_select'] = array(
- '#type' => 'select',
- '#options' => $options,
- '#title' => t('!title type', array('!title' => t($this->getSetting('title')))),
- '#label_display' => 'hidden',
- );
-
- $text = t('Add !title', array('!title' => t($this->getSetting('title'))));
-
- if ($real_item_count > 0) {
- $text = t('Add another !title', array('!title' => t($this->getSetting('title'))));
+ if (count($options)) {
+ $elements['add_more']['info'] = array(
+ '#type' => 'markup',
+ '#markup' => '' . t('You are not allowed to add any of the !title types.', array('!title' => t($this->getSetting('title')))) . '',
+ );
+ }
+ else {
+ $elements['add_more']['info'] = array(
+ '#type' => 'markup',
+ '#markup' => '' . t('You did not add any !title types yet.', array('!title' => t($this->getSetting('title')))) . '',
+ );
}
-
- $elements['add_more']['add_more_button'] = array(
- '#type' => 'submit',
- '#name' => strtr($id_prefix, '-', '_') . '_add_more',
- '#value' => $text,
- '#attributes' => array('class' => array('field-add-more-submit')),
- '#limit_validation_errors' => array(array_merge($parents, array($field_name, 'add_more'))),
- '#submit' => array(array(get_class($this), 'addMoreSubmit')),
- '#ajax' => array(
- 'callback' => array(get_class($this), 'addMoreAjax'),
- 'wrapper' => $wrapper_id,
- 'effect' => 'fade',
- ),
- );
- }
- }
- else {
- if (count($options)) {
- $elements['add_more']['info'] = array(
- '#type' => 'markup',
- '#markup' => '' . t('You are not allowed to add any of the !title types.', array('!title' => t($this->getSetting('title')))) . '',
- );
- }
- else {
- $elements['add_more']['info'] = array(
- '#type' => 'markup',
- '#markup' => '' . t('You did not add any !title types yet.', array('!title' => t($this->getSetting('title')))) . '',
- );
}
}
}