ThumbnailGenerationSettingsForm.php in Media PDF Thumbnail 8.4
File
src/Form/ThumbnailGenerationSettingsForm.php
View source
<?php
namespace Drupal\media_pdf_thumbnail\Form;
use Drupal\Core\Config\ConfigFactory;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Messenger\Messenger;
use Drupal\media_pdf_thumbnail\Manager\MediaPdfThumbnailQueueManager;
use Drupal\media_pdf_thumbnail\Service\MediaPdfThumbnailService;
use Symfony\Component\DependencyInjection\ContainerInterface;
class ThumbnailGenerationSettingsForm extends FormBase {
protected $entityTypeManager;
protected $messenger;
protected $configFactory;
protected $mediaPdfThumbnailQueueManager;
protected $mediaPdfThumbnailService;
public function __construct(EntityTypeManagerInterface $entityTypeManager, Messenger $messenger, ConfigFactory $configFactory, MediaPdfThumbnailQueueManager $mediaPdfThumbnailQueueManager, MediaPdfThumbnailService $mediaPdfThumbnailService) {
$this->entityTypeManager = $entityTypeManager;
$this->messenger = $messenger;
$this->configFactory = $configFactory;
$this->mediaPdfThumbnailQueueManager = $mediaPdfThumbnailQueueManager;
$this->mediaPdfThumbnailService = $mediaPdfThumbnailService;
}
public static function create(ContainerInterface $container) {
return new static($container
->get('entity_type.manager'), $container
->get('messenger'), $container
->get('config.factory'), $container
->get('media_pdf_thumbnail.queue.manager'), $container
->get('media_pdf_thumbnail.service'));
}
public function getFormId() {
return 'thumbnail_generation_settings_form';
}
public function buildForm(array $form, FormStateInterface $form_state) {
$form['help'] = [
'#type' => 'markup',
'#markup' => $this
->t('Submitting this form will process the Queue which contains @number items.', [
'@number' => $this->mediaPdfThumbnailQueueManager
->numberOfItems(),
]),
];
$form['regenerate_all'] = [
'#type' => 'checkbox',
'#title' => 'Enforce regenerating thumbnails for all Media entities.',
];
$form['submit'] = [
'#type' => 'submit',
'#value' => $this
->t('Regenerate thumbnails'),
];
return $form;
}
public function validateForm(array &$form, FormStateInterface $form_state) {
parent::validateForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
if ($form_state
->getValue('regenerate_all')) {
$this->mediaPdfThumbnailService
->regenerateAllThumbnails();
}
else {
$this->mediaPdfThumbnailQueueManager
->executeQueue();
}
}
}