class LocalTaskController

Returns responses for Local task routes.

Hierarchy

  • class \Drupal\tmgmt_local\Controller\LocalTaskController extends \Drupal\Core\Controller\ControllerBase

Expanded class hierarchy of LocalTaskController

File

translators/tmgmt_local/src/Controller/LocalTaskController.php, line 15

Namespace

Drupal\tmgmt_local\Controller
View source
class LocalTaskController extends ControllerBase {

  /**
   * Assign this task to the current user and reloads the listing page.
   *
   * @param \Drupal\tmgmt_local\LocalTaskInterface $tmgmt_local_task
   *   The task being acted upon.
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   The current request.
   *
   * @return \Drupal\Core\Ajax\AjaxResponse|\Symfony\Component\HttpFoundation\RedirectResponse
   *   Either returns a rebuilt listing page as an AJAX response, or redirects
   *   back to the listing page.
   */
  public function assignToMe(LocalTaskInterface $tmgmt_local_task, Request $request) {
    $tmgmt_local_task
      ->assign(\Drupal::currentUser());
    $tmgmt_local_task
      ->save();
    $this
      ->messenger()
      ->addStatus(t('The task has been assigned to you.'));

    // If the request is via AJAX, return the rendered list as JSON.
    if ($request->request
      ->get('js')) {
      $list = $this
        ->entityTypeManager()
        ->getListBuilder('view')
        ->render();
      $response = new AjaxResponse();
      $response
        ->addCommand(new ReplaceCommand('#views-entity-list', $list));
      return $response;
    }

    // Otherwise, redirect back to the page.
    return $this
      ->redirect('<current>');
  }

}

Members

Namesort descending Modifiers Type Description Overrides
LocalTaskController::assignToMe public function Assign this task to the current user and reloads the listing page.