You are here

class AJAXactionLink in Flag 8.4

Provides the AJAX link type.

This class is an extension of the Reload link type, but modified to provide AJAX links.

Plugin annotation


@ActionLinkType(
  id = "ajax_link",
  label = @Translation("AJAX link"),
  description = @Translation("An AJAX JavaScript request will be made without reloading the page.")
)

Hierarchy

Expanded class hierarchy of AJAXactionLink

1 file declares its use of AJAXactionLink
CountLink.php in modules/flag_count/src/Plugin/ActionLink/CountLink.php

File

src/Plugin/ActionLink/AJAXactionLink.php, line 23

Namespace

Drupal\flag\Plugin\ActionLink
View source
class AJAXactionLink extends Reload {

  /**
   * The request stack.
   *
   * @var \Symfony\Component\HttpFoundation\Request
   */
  protected $request;

  /**
   * Build a new link type instance and sets the configuration.
   *
   * @param array $configuration
   *   The configuration array with which to initialize this plugin.
   * @param string $plugin_id
   *   The ID with which to initialize this plugin.
   * @param array $plugin_definition
   *   The plugin definition array.
   * @param \Drupal\Core\Session\AccountInterface $current_user
   *   The current user.
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   The current request from the request stack.
   */
  public function __construct(array $configuration, $plugin_id, array $plugin_definition, AccountInterface $current_user, Request $request) {
    parent::__construct($configuration, $plugin_id, $plugin_definition, $current_user);
    $this->request = $request;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition, $container
      ->get('current_user'), $container
      ->get('request_stack')
      ->getCurrentRequest());
  }

  /**
   * {@inheritdoc}
   */
  protected function getDestination() {
    if ($destination = $this->request->query
      ->get('destination')) {

      // Workaround the default behavior so we keep the GET[destination] value
      // no matter how many times the flag is clicked.
      return $destination;
    }
    parent::getDestination();
  }

  /**
   * {@inheritdoc}
   */
  public function getAsFlagLink(FlagInterface $flag, EntityInterface $entity) {
    $build = parent::getAsFlagLink($flag, $entity);
    $build['#attached']['library'][] = 'flag/flag.link_ajax';
    $build['#attributes']['class'][] = 'use-ajax';
    return $build;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ActionLinkTypeBase::$currentUser protected property The current user.
ActionLinkTypeBase::buildConfigurationForm public function Provides a form array for the action link plugin's settings form. Overrides PluginFormInterface::buildConfigurationForm 1
ActionLinkTypeBase::calculateDependencies public function
ActionLinkTypeBase::defaultConfiguration public function Gets default configuration for this plugin. Overrides ConfigurableInterface::defaultConfiguration 1
ActionLinkTypeBase::getAction protected function Helper method to get the next flag action the user can take.
ActionLinkTypeBase::getAsLink public function Get the action link as a Link object. Overrides ActionLinkTypePluginInterface::getAsLink
ActionLinkTypeBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
ActionLinkTypeBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
ActionLinkTypeBase::submitConfigurationForm public function Processes the action link setting form submit. Overrides PluginFormInterface::submitConfigurationForm 1
ActionLinkTypeBase::validateConfigurationForm public function Validates the action link setting form. Overrides PluginFormInterface::validateConfigurationForm 1
AJAXactionLink::$request protected property The request stack.
AJAXactionLink::create public static function Creates an instance of the plugin. Overrides ActionLinkTypeBase::create
AJAXactionLink::getAsFlagLink public function Get the action link formatted for use in entity links. Overrides ActionLinkTypeBase::getAsFlagLink 1
AJAXactionLink::getDestination protected function Helper method to generate a destination URL parameter. Overrides ActionLinkTypeBase::getDestination
AJAXactionLink::__construct public function Build a new link type instance and sets the configuration. Overrides ActionLinkTypeBase::__construct
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
Reload::getUrl public function Return a Url object for the given flag action. Overrides ActionLinkTypeBase::getUrl
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.