You are here

public function FontYourFaceController::activateFont in @font-your-face 8.3

1 string reference to 'FontYourFaceController::activateFont'
fontyourface.routing.yml in ./fontyourface.routing.yml
fontyourface.routing.yml

File

src/Controller/FontYourFaceController.php, line 20

Class

FontYourFaceController
Controller routines for forum routes.

Namespace

Drupal\fontyourface\Controller

Code

public function activateFont(Font $font, $js) {
  try {
    $font
      ->activate();
    if ($js == 'ajax') {
      $url = Url::fromRoute('entity.font.deactivate', [
        'js' => 'nojs',
        'font' => $font
          ->id(),
      ], [
        'query' => \Drupal::destination()
          ->getAsArray(),
      ]);
      $url
        ->setOptions([
        'attributes' => [
          'id' => 'font-status-' . $font
            ->id(),
          'class' => [
            'font-status',
            'enabled',
            'use-ajax',
          ],
        ],
      ]);
      $text = $this
        ->t('Enable');
      $link = Link::fromTextAndUrl($text, $url)
        ->toString();
      $response = new AjaxResponse();
      return $response
        ->addCommand(new ReplaceCommand('#font-status-' . $font
        ->id(), $link));
    }
    else {
      \Drupal::messenger()
        ->addMessage($this
        ->t('Font @font successfully enabled', [
        '@font' => $font->name->value,
      ]));
      return $this
        ->redirect('entity.font.collection');
    }
  } catch (Exception $e) {
    $error = $e
      ->getMessage();
    if ($js == 'ajax') {
      return new AjaxResponse([
        'response' => TRUE,
        'message' => $error,
      ], 503);
    }
    else {
      \Drupal::messenger()
        ->addMessage($error, 'error');
      return $this
        ->redirect('entity.font.collection');
    }
  }
}