You are here

public function CmisCreateFolderForm::submitForm in CMIS API 8.2

Same name and namespace in other branches
  1. 8 src/Form/CmisCreateFolderForm.php \Drupal\cmis\Form\CmisCreateFolderForm::submitForm()
  2. 3.0.x src/Form/CmisCreateFolderForm.php \Drupal\cmis\Form\CmisCreateFolderForm::submitForm()

Form submission handler.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Overrides FormInterface::submitForm

File

src/Form/CmisCreateFolderForm.php, line 85

Class

CmisCreateFolderForm
Class CmisCreateFolder.

Namespace

Drupal\cmis\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $values = $form_state
    ->getValues();
  if (!empty($values['folder_name'])) {
    $repository = new CmisRepositoryController($values['config'], $values['folder_id']);
    if (!empty($repository
      ->getBrowser()
      ->getConnection()
      ->validObjectName($values['folder_name'], 'cmis:folder', $values['folder_id']))) {
      $this
        ->messenger()
        ->addWarning($this
        ->t('The folder name @folder_name exists in folder.', [
        '@folder_name' => $values['folder_name'],
      ]));
      return;
    }
    $session = $repository
      ->getBrowser()
      ->getConnection()
      ->getSession();
    $properties = [
      PropertyIds::OBJECT_TYPE_ID => 'cmis:folder',
      PropertyIds::NAME => $values['folder_name'],
    ];
    if (!empty($values['folder_description'])) {
      $properties[PropertyIds::DESCRIPTION] = $values['folder_description'];
    }
    try {
      $session
        ->createFolder($properties, $session
        ->createObjectId($values['folder_id']));
      $this
        ->messenger()
        ->addStatus($this
        ->t('The folder name @folder_name has been created.', [
        '@folder_name' => $values['folder_name'],
      ]));
    } catch (Exception $exception) {
      $this
        ->messenger()
        ->addWarning($this
        ->t('Impossible to create fhe folder name @folder_name.', [
        '@folder_name' => $values['folder_name'],
      ]));
    }
  }
}