diff -u b/config/schema/paragraphs_type.schema.yml b/config/schema/paragraphs_type.schema.yml --- b/config/schema/paragraphs_type.schema.yml +++ b/config/schema/paragraphs_type.schema.yml @@ -66,8 +66,6 @@ type: string default_paragraph_type: type: string - default_edit_mode_override_limit: - type: integer field.widget.settings.paragraphs: type: mapping @@ -76,6 +74,8 @@ type: string default_paragraph_type: type: string + default_edit_mode_override_limit: + type: integer field.widget.settings.paragraphs: type: mapping 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 @@ -33,11 +33,6 @@ class ParagraphsWidget extends WidgetBase { /** - * Default edit mode override limit. - */ - const PARAGRAPHS_DEFAULT_EDIT_MODE_OVERRIDE_LIMIT = 0; - - /** * Indicates whether the current widget instance is in translation. * * @var bool @@ -54,6 +49,11 @@ const ACTION_POSITION_ACTIONS = 3; /** + * Default edit mode override limit. + */ + const PARAGRAPHS_DEFAULT_EDIT_MODE_OVERRIDE_LIMIT = 0; + + /** * Indicates whether the current widget instance is in translation. * * @var bool @@ -90,7 +90,6 @@ 'add_mode' => 'dropdown', 'form_display_mode' => 'default', 'default_paragraph_type' => '', - 'default_edit_mode_override_limit' => self::PARAGRAPHS_DEFAULT_EDIT_MODE_OVERRIDE_LIMIT, ); } @@ -127,32 +126,13 @@ ), '#default_value' => $this->getSetting('edit_mode'), '#required' => TRUE, - '#attributes' => [ - 'field-name' => 'edit_mode', - ], ); - $elements['default_edit_mode_override_limit'] = [ - '#type' => 'number', - '#title' => $this->t('Edit mode override limit'), - '#default_value' => $this->getSetting('default_edit_mode_override_limit'), - '#description' => $this->t('Number of items considered to live paragraphs open e.g if host has 1 paragraph item. Live that paragraph open.'), - '#title_display' => 'invisible', - '#field_prefix' => $this->t('Force items to display as "Open" when there are '), - '#field_suffix' => $this->t(' items, or less.'), - '#min' => 0, - '#max' => 99, - '#states' => [ - 'invisible' => [ - 'select[field-name="edit_mode"]' => ['value' => 'open'], - ], - ], - ]; - $elements['add_mode'] = array( 'add_mode' => 'dropdown', 'form_display_mode' => 'default', 'default_paragraph_type' => '', + 'default_edit_mode_override_limit' => self::PARAGRAPHS_DEFAULT_EDIT_MODE_OVERRIDE_LIMIT, ); } @@ -185,6 +165,9 @@ '#options' => $this->getSettingOptions('edit_mode'), '#default_value' => $this->getSetting('edit_mode'), '#required' => TRUE, + '#attributes' => [ + 'field-name' => 'edit_mode', + ], ); $elements['closed_mode'] = [ @@ -205,6 +188,23 @@ '#required' => TRUE, ]; + $elements['default_edit_mode_override_limit'] = [ + '#type' => 'number', + '#title' => $this->t('Edit mode override limit'), + '#default_value' => $this->getSetting('default_edit_mode_override_limit'), + '#description' => $this->t('Number of items considered to live paragraphs open e.g if host has 1 paragraph item. Live that paragraph open.'), + '#title_display' => 'invisible', + '#field_prefix' => $this->t('Force items to display as "Open" when there are '), + '#field_suffix' => $this->t(' items, or less.'), + '#min' => 0, + '#max' => 99, + '#states' => [ + 'invisible' => [ + 'select[field-name="edit_mode"]' => ['value' => 'open'], + ], + ], + ]; + $elements['add_mode'] = array( '#type' => 'select', '#title' => $this->t('Add mode'), @@ -258,13 +258,6 @@ $item_mode = isset($widget_state['paragraphs'][$delta]['mode']) ? $widget_state['paragraphs'][$delta]['mode'] : 'edit'; $default_edit_mode = $this->getSetting('edit_mode'); - $default_edit_mode_override_limit = $this->getSetting('default_edit_mode_override_limit'); - - // Force open when the number of items is less than or as the override - // limit. - if ($widget_state['items_count'] <= $default_edit_mode_override_limit && $default_edit_mode <> 'open') { - $default_edit_mode = 'open'; - } $show_must_be_saved_warning = !empty($widget_state['paragraphs'][$delta]['show_warning']); @@ -349,6 +342,13 @@ $item_mode = isset($widget_state['paragraphs'][$delta]['mode']) ? $widget_state['paragraphs'][$delta]['mode'] : 'edit'; $default_edit_mode = $this->getSetting('edit_mode'); + $default_edit_mode_override_limit = $this->getSetting('default_edit_mode_override_limit'); + + // Force open when the number of items is less than or as the override + // limit. + if ($widget_state['items_count'] <= $default_edit_mode_override_limit && $default_edit_mode <> 'open') { + $default_edit_mode = 'open'; + } $closed_mode_setting = isset($widget_state['closed_mode']) ? $widget_state['closed_mode'] : $this->getSetting('closed_mode'); $autocollapse_setting = isset($widget_state['autocollapse']) ? $widget_state['autocollapse'] : $this->getSetting('autocollapse');