cloudwords-8.x-1.x-dev/src/Form/CloudwordsProjectLanguageApproveForm.php

src/Form/CloudwordsProjectLanguageApproveForm.php
<?php

namespace Drupal\cloudwords\Form;

use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Url;

class CloudwordsProjectLanguageApproveForm extends ConfirmFormBase {

  /**
   * The ID of the project
   *
   * @var int
   */
  protected $project_id;

  /**
   * Language of translations in project.
   *
   * @var string
   */
  protected $language;

  /**
   * Language status of translations in project.
   *
   * @var string
   */
  protected $language_status;

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'cloudwords_project_language_approve_form';
  }

  /**
   * {@inheritdoc}
   */
  public function getQuestion() {
    return $this->t('Are you sure you want to approve %lang?', ['%lang' => $this->language]);
  }

  /**
   * {@inheritdoc}
   */
  public function getCancelUrl() {
    //@todo change to proper cancel url
    return Url::fromUri('internal:/admin/cloudwords/projects/' . $this->project_id);
  }

  /**
   * {@inheritdoc}
   */
  public function getDescription () {
    return $this->t('Approving a language tells your translation vendor the content has been accepted and does not need further work. This action cannot be undone.');
  }

  public function buildForm(array $form, \Drupal\Core\Form\FormStateInterface $form_state, \Drupal\cloudwords\CloudwordsDrupalProject $cloudwords_project = NULL, \Drupal\cloudwords\CloudwordsLanguage $cloudwords_language = NULL) {
    $this->language = $cloudwords_language->getDisplay();
    $this->project_id = $cloudwords_project->getId();

    $form_state->set(['cloudwords_project'], $cloudwords_project);
    $form_state->set(['cloudwords_language'], $cloudwords_language);

    return parent::buildForm($form, $form_state);
  }

  public function submitForm(array &$form, \Drupal\Core\Form\FormStateInterface $form_state) {
    $project = $form_state->get(['cloudwords_project']);
    $language = $form_state->get(['cloudwords_language']);

    cloudwords_get_api_client()->approve_project_language($project->getId(), $language->getLanguageCode());

    $project->approve($language);

    drupal_set_message($this->t('%name was successfully approved.', [
      '%name' => $project->getName()
      ]));

    $form_state->setRedirect('cloudwords.cloudwords_project_overview_form', ['cloudwords_project' => $project->getId()]);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc