Commit ed2a687b authored by Volodymyr Mostepaniuk's avatar Volodymyr Mostepaniuk
Browse files

Issue #3295753 by mostepaniukvm: Move third_party config to main module.

parent 2f295a6d
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
core.entity_view_display.*.*.*.third_party_settings.custom_elements_ui:
core.entity_view_display.*.*.*.third_party_settings.custom_elements:
  type: mapping
  label: 'Per-view-mode Custom elements settings'
  mapping:
    enabled:
      type: boolean
      label: 'Whether the Custom Elements Display builder is enabled for this display'
      label: 'Whether the custom elements rendering is enabled for view display mode'
    custom_element_name:
      type: string
      label: 'Custom element name'
    custom_element_fields:
      type: sequence
      sequence:
        type: custom_elements_ui.field
        type: custom_elements.field

custom_elements_ui.field:
custom_elements.field:
  type: mapping
  label: 'CE field'
  label: 'Custom element field '
  mapping:
    label:
      type: string
      label: 'CE name'
      label: 'Custom element name'
    is_slot:
      type: bool
      label: 'is Slot'
    type:
      type: string
      label: 'Widget type machine name'
      label: 'Custom element renderer'
    weight:
      type: integer
      label: 'Weight'
    region:
      type: string
      label: 'Region'
    ce_formatter:
      type: string
      label: 'CE Formatter'
+1 −1
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@ function custom_elements_module_implements_alter(&$implementations, $hook) {
function custom_elements_entity_view_display_alter(EntityViewDisplayInterface $display, array $context) {
  // Enable for all view-modes named appropriately by default.
  if (strpos($context['view_mode'], 'custom_elements') === 0) {
    $display->setThirdPartySetting('custom_elements', 'enabled', 1);
    $display->setThirdPartySetting('custom_elements', 'enabled', TRUE);
  }
}

+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ function custom_elements_everywhere_entity_prepare_view($entity_type_id, array $
    // such that custom elements processor may use it to render
    // individual fields.
    foreach ($displays as $display) {
      $display->setThirdPartySetting('custom_elements', 'enabled', 1);
      $display->setThirdPartySetting('custom_elements', 'enabled', TRUE);
    }
  }
}
+5 −5
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ function custom_elements_ui_form_entity_view_display_edit_form_alter(&$form, For
  $display_form = $form_state->getFormObject();
  /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display_entity */
  $display_entity = $display_form->getEntity();
  $is_enabled = $display_entity->getThirdPartySetting('custom_elements_ui', 'enabled') ?? FALSE;
  $is_enabled = $display_entity->getThirdPartySetting('custom_elements', 'enabled', FALSE);

  // Hide the table of fields same as in field_ui.
  if ($is_enabled) {
@@ -53,14 +53,14 @@ function custom_elements_ui_form_entity_view_display_edit_form_alter(&$form, For
    '#access' => $is_enabled,
  ];

  $form['custom_elements_ui'] = [
  $form['custom_elements'] = [
    '#type' => 'details',
    '#open' => TRUE,
    '#title' => t('Custom Elements'),
    '#tree' => TRUE,
  ];

  $form['custom_elements_ui']['enabled'] = [
  $form['custom_elements']['enabled'] = [
    '#type' => 'checkbox',
    '#title' => t('Use Custom Elements Display'),
    '#default_value' => $is_enabled,
@@ -75,12 +75,12 @@ function custom_elements_ui_form_entity_view_display_edit_form_alter(&$form, For
 * @see custom_elements_ui_form_entity_view_display_edit_form_alter()
 */
function _custom_elements_ui_entity_view_display_edit_form_submit($form, FormStateInterface $form_state) {
  $set_enabled = (bool) $form_state->getValue(['custom_elements_ui', 'enabled'], FALSE);
  $enabled = (bool) $form_state->getValue(['custom_elements', 'enabled'], FALSE);
  /** @var \Drupal\Core\Entity\EntityFormInterface $display_form */
  $display_form = $form_state->getFormObject();
  /** @var \Drupal\Core\Entity\Entity\EntityViewDisplay $display_entity */
  $display_entity = $display_form->getEntity();
  $display_entity->setThirdPartySetting('custom_elements_ui', 'enabled', $set_enabled);
  $display_entity->setThirdPartySetting('custom_elements', 'enabled', $enabled);
  // @todo Autogenerate fields and name from view display entity?
  $display_entity->save();
}
+7 −7
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ class EntityCustomElementsDisplayForm extends EntityDisplayFormBase {
    $field_row = parent::buildFieldRow($field_definition, $form, $form_state);
    $field_name = $field_definition->getName();
    $display_component_options = $this->entity->getComponent($field_name);
    $display_options = $this->entity->getThirdPartySetting('custom_elements_ui', 'custom_element_fields');
    $display_options = $this->entity->getThirdPartySetting('custom_elements', 'custom_element_fields', []);
    $display_options = $display_options[$field_name] ?? [];

    // Override default values.
@@ -103,14 +103,14 @@ class EntityCustomElementsDisplayForm extends EntityDisplayFormBase {
   */
  protected function copyFormValuesToEntity(EntityInterface $entity, array $form, FormStateInterface $form_state) {
    $form_values = $form_state->getValues();
    $is_enabled = $entity->getThirdPartySetting('custom_elements_ui', 'enabled');
    $is_enabled = $entity->getThirdPartySetting('custom_elements', 'enabled', FALSE);

    // Delete fields if form was submitted but ce display wasn't activated.
    if (!$is_enabled) {
      $entity->setThirdPartySetting('custom_elements_ui', 'custom_element_fields', []);
      $entity->setThirdPartySetting('custom_elements', 'custom_element_fields', []);
      parent::copyFormValuesToEntity($entity, $form, $form_state);
    }
    $ce_fields = $entity->getThirdPartySetting('custom_elements_ui', 'custom_element_fields') ?? [];
    $ce_fields = $entity->getThirdPartySetting('custom_elements', 'custom_element_fields', []);

    if ($this->entity instanceof EntityWithPluginCollectionInterface) {
      // Do not manually update values represented by plugin collections.
@@ -148,8 +148,8 @@ class EntityCustomElementsDisplayForm extends EntityDisplayFormBase {
    }
    uasort($ce_fields, 'Drupal\Component\Utility\SortArray::sortByWeightElement');

    $entity->setThirdPartySetting('custom_elements_ui', 'custom_element_fields', $ce_fields);
    $entity->setThirdPartySetting('custom_elements_ui', 'custom_element_name', $form_values['ce_name']);
    $entity->setThirdPartySetting('custom_elements', 'custom_element_fields', $ce_fields);
    $entity->setThirdPartySetting('custom_elements', 'custom_element_name', $form_values['ce_name']);
  }

  /**
@@ -174,7 +174,7 @@ class EntityCustomElementsDisplayForm extends EntityDisplayFormBase {
    $form['ce_name'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Element name'),
      '#default_value' => $this->entity->getThirdPartySetting('custom_elements_ui', 'custom_element_name') ?? '',
      '#default_value' => $this->entity->getThirdPartySetting('custom_elements', 'custom_element_name', ''),
      '#size' => 20,
      '#required' => TRUE,
    ];
Loading