Commit ca7cdda6 authored by Anmol Goel's avatar Anmol Goel Committed by gaurav.kapoor
Browse files

Issue #2978820 by anmolgoyal74, Dinesh18: Config settings is required

parent c6a43543
Loading
Loading
Loading
Loading
+2 −0
Changes for config/install/node_export.settings.yml: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
node_export_import: 'replace'
node_export_format: 'JSON'
+10 −0
Changes for config/schema/node_export.schema.yml: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
node_export.settings:
  type: config_object
  label: 'Node Export label settings'
  mapping:
    node_export_import:
      type: string
      label: 'What to do when importing existing nodes.'
    node_export_format:
      type: string
      label: 'Which Format to use while exporting nodes.'
+5 −0
Changes for node_export.links.menu.yml: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -18,3 +18,8 @@ node_export.import_text:
  parent: node_export.import
  description: 'Export the Node'
  route_name: node_export.import
node_export.config:
  title: 'Node Export Settings'
  parent: system.admin_config_content
  description: 'Node Export Configuration'
  route_name: node_export.config
 No newline at end of file
+8 −0
Changes for node_export.routing.yml: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -53,3 +53,11 @@ node_export.bulk_export_form:
    _form: '\Drupal\node_export\Form\BulkNodeExport'
  requirements:
    _permission: 'administer node_export'

node_export.config:
  path: '/admin/config/content/node_export'
  defaults:
    _title: 'Node Export Settings'
    _form: '\Drupal\node_export\Form\NodeExportConfigForm'
  requirements:
    _permission: 'administer node_export'
+82 −0
Changes for src/Form/NodeExportConfigForm.php: 82 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Drupal\node_Export\Form;

use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Provides a Node Export form.
 */
class NodeExportConfigForm extends ConfigFormBase {

  protected $moduleHandler;

  /**
   * Gets the configuration names that will be editable.
   *
   * @return array
   *   An array of configuration object names that are editable if called in
   *   conjunction with the trait's config() method.
   */
  protected function getEditableConfigNames() {
    return [
      'node_export.settings',
    ];
  }
  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'node_export_config_form';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this->config('node_export.settings');
    $form['basic'] = [
      '#type' => 'fieldset',
      '#title' => t('General settings'),
    ];
    $form['basic']['node_export_format'] = array(
      '#type' => 'radios',
      '#title' => t('Format to use when exporting a node'),
      '#default_value' => 'JSON',
      '#options' => ['JSON' => t('JSON')],
      '#description' => t("Right Now we use only JSON Foramt."),
    );
    $form['basic']['node_export_existing'] = [
      '#type' => 'radios',
      '#title' => t('When importing a node that already exists'),
      '#options' => [
        'new' => t('Create a new node'),
        'replace' => t('Create a new revision of the existing node'),
        'skip' => t('Skip the node'),
      ],
      '#description' => t('UUIDs are used to uniquely identify nodes.'),
      '#default_value' => $config->get('node_export_import'),
    ];
    $form['submit'] = [
      '#type' => 'submit',
      '#value' => t('Save Configuration'),
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->configFactory->getEditable('node_export.settings')
      // Set the submitted configuration setting.
      ->set('node_export_import', $form_state->getValue('node_export_existing'))
      ->set('node_export_format', $form_state->getValue('node_export_format'))
      ->save();
    parent::submitForm($form, $form_state);
  }
}