Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Ajax/InvokeCommand.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Ajax/InvokeCommand.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,73 @@ +<?php + +namespace Drupal\Core\Ajax; + +/** + * AJAX command for invoking an arbitrary jQuery method. + * + * The 'invoke' command will instruct the client to invoke the given jQuery + * method with the supplied arguments on the elements matched by the given + * selector. Intended for simple jQuery commands, such as attr(), addClass(), + * removeClass(), toggleClass(), etc. + * + * This command is implemented by Drupal.AjaxCommands.prototype.invoke() + * defined in misc/ajax.js. + * + * @ingroup ajax + */ +class InvokeCommand implements CommandInterface { + + /** + * A CSS selector string. + * + * If the command is a response to a request from an #ajax form element then + * this value can be NULL. + * + * @var string + */ + protected $selector; + + /** + * A jQuery method to invoke. + * + * @var string + */ + protected $method; + + /** + * An optional list of arguments to pass to the method. + * + * @var array + */ + protected $arguments; + + /** + * Constructs an InvokeCommand object. + * + * @param string $selector + * A jQuery selector. + * @param string $method + * The name of a jQuery method to invoke. + * @param array $arguments + * An optional array of arguments to pass to the method. + */ + public function __construct($selector, $method, array $arguments = []) { + $this->selector = $selector; + $this->method = $method; + $this->arguments = $arguments; + } + + /** + * Implements Drupal\Core\Ajax\CommandInterface:render(). + */ + public function render() { + + return [ + 'command' => 'invoke', + 'selector' => $this->selector, + 'method' => $this->method, + 'args' => $this->arguments, + ]; + } + +}