Class luya\admin\ngrest\base\ActiveSelection

Inheritanceluya\admin\ngrest\base\ActiveSelection » luya\admin\ngrest\base\BaseActiveResponse » yii\base\BaseObject
Implementsyii\base\Configurable
Subclassesluya\admin\selections\DeleteActiveSelection
Available since version4.0.0
Source Code https://github.com/luyadev/luya-module-admin/blob/master/src/ngrest/base/ActiveSelection.php

Active Selection Actions

An active selection (action) is button which can interact with the selected items from the CRUD list.

See the [[ngrest-activeselection.md]] guide.

Public Properties

Hide inherited properties

Property Type Description Defined By
$action callable A callable which contains all selected items as first argument and the object as second argument. luya\admin\ngrest\base\ActiveSelection
$icon string An optional icon, see material icons. luya\admin\ngrest\base\ActiveSelection
$label string The button label. luya\admin\ngrest\base\ActiveSelection

Public Methods

Hide inherited methods

Method Description Defined By
__call() Calls the named method which is not a class method. yii\base\BaseObject
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__unset() Sets an object property to null. yii\base\BaseObject
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
handle() Runs the either the callable or can overriden in a concret implementation. luya\admin\ngrest\base\ActiveSelection
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
init() Initializes the object. yii\base\BaseObject
sendError() Send an error message as response. luya\admin\ngrest\base\BaseActiveResponse
sendReloadEvent() Send a CRUD reload event. luya\admin\ngrest\base\BaseActiveResponse
sendSuccess() Send a success message. luya\admin\ngrest\base\BaseActiveResponse

Constants

Hide inherited constants

Constant Value Description Defined By
EVENT_RELOAD_LIST 'loadList' luya\admin\ngrest\base\BaseActiveResponse

Property Details

Hide inherited properties

$action public property

A callable which contains all selected items as first argument and the object as second argument.

'action' => function(array $items, \luya\admin\ngrest\base\ActiveSelection $context) {
   foreach ($items as $item) {
     $item->doSomethingWithObject();
   }

   // sends a reload event, so the ngrest list will be reloaded afterwards.
   $context->sendReloadEvent();

   return $context->sendSuccess('We did, what you teached.')
}

Each item is an object of {{luya\admin\ngrest\base\NgRestModel}} representing the model on which the selection is attached to.

For even quicker implementations, its possible just to return a boolean value for either a success or error message.

'action' => function(array $items) {
  foreach ($items as $item) {
      // do something with item
  }

  return true;
}
public callable $action null
$icon public property

An optional icon, see material icons.

public string $icon null
$label public property

The button label.

public string $label null

Method Details

Hide inherited methods

__call() public method

Defined in: yii\base\BaseObject::__call()

Calls the named method which is not a class method.

Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.

public mixed __call ( $name, $params )
$name string

The method name

$params array

Method parameters

return mixed

The method return value

throws yii\base\UnknownMethodException

when calling unknown method

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public method

Defined in: yii\base\BaseObject::__construct()

Constructor.

The default implementation does two things:

  • Initializes the object with the given configuration $config.
  • Call init().

If this method is overridden in a child class, it is recommended that

  • the last parameter of the constructor is a configuration array, like $config here.
  • call the parent implementation at the end of the constructor.
public void __construct ( $config = [] )
$config array

Name-value pairs that will be used to initialize the object properties

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public method

Defined in: yii\base\BaseObject::__get()

Returns the value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $object->property;.

See also __set().

public mixed __get ( $name )
$name string

The property name

return mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is write-only

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public method

Defined in: yii\base\BaseObject::__isset()

Checks if a property is set, i.e. defined and not null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing isset($object->property).

Note that if the property is not defined, false will be returned.

See also https://www.php.net/manual/en/function.isset.php.

public boolean __isset ( $name )
$name string

The property name or the event name

return boolean

Whether the named property is set (not null).

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public method

Defined in: yii\base\BaseObject::__set()

Sets value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $object->property = $value;.

See also __get().

public void __set ( $name, $value )
$name string

The property name or the event name

$value mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is read-only

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__unset() public method

Defined in: yii\base\BaseObject::__unset()

Sets an object property to null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($object->property).

Note that if the property is not defined, this method will do nothing. If the property is read-only, it will throw an exception.

See also https://www.php.net/manual/en/function.unset.php.

public void __unset ( $name )
$name string

The property name

throws yii\base\InvalidCallException

if the property is read only.

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
canGetProperty() public method

Defined in: yii\base\BaseObject::canGetProperty()

Returns a value indicating whether a property can be read.

A property is readable if:

  • the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canSetProperty().

public boolean canGetProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be read

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public method

Defined in: yii\base\BaseObject::canSetProperty()

Returns a value indicating whether a property can be set.

A property is writable if:

  • the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canGetProperty().

public boolean canSetProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be written

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() public static method
Deprecated since 2.0.14. On PHP >=5.5, use ::class instead.

Defined in: yii\base\BaseObject::className()

Returns the fully qualified name of this class.

public static string className ( )
return string

The fully qualified name of this class.

                public static function className()
{
    return get_called_class();
}

            
handle() public method

Runs the either the callable or can overriden in a concret implementation.

public boolean handle ( array $items )
$items luya\admin\ngrest\base\NgRestModel[]

                public function handle(array $items)
{
    $state = call_user_func($this->action, $items, $this);
    // the callable has used the sendSuccess/sendError methods.
    if (is_array($state)) {
        return $state;
    }
    return $state ? $this->sendSuccess($this->label) : $this->sendError($this->label);
}

            
hasMethod() public method

Defined in: yii\base\BaseObject::hasMethod()

Returns a value indicating whether a method is defined.

The default implementation is a call to php function method_exists(). You may override this method when you implemented the php magic method __call().

public boolean hasMethod ( $name )
$name string

The method name

return boolean

Whether the method is defined

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() public method

Defined in: yii\base\BaseObject::hasProperty()

Returns a value indicating whether a property is defined.

A property is defined if:

  • the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also:

public boolean hasProperty ( $name, $checkVars true )
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property is defined

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() public method

Defined in: yii\base\BaseObject::init()

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init ( )

                public function init()
{
}

            
sendError() public method

Defined in: luya\admin\ngrest\base\BaseActiveResponse::sendError()

Send an error message as response.

Events are only triggered on success messages {{sendSuccess()}}.

public array sendError ( $message, array $additionalResponseData = [] )
$message string

The error message.

$additionalResponseData array

Data which should be added to the xhr response.

return array

An array with success, error, message, responseData and events.

                public function sendError($message, array $additionalResponseData = [])
{
    Yii::$app->response->setStatusCode(422, 'Data Validation Failed.');
    return [
        'success' => false,
        'error' => true,
        'message' => $message,
        'responseData' => $additionalResponseData,
        'events' => $this->_events,
    ];
}

            
sendReloadEvent() public method

Defined in: luya\admin\ngrest\base\BaseActiveResponse::sendReloadEvent()

Send a CRUD reload event.

public void sendReloadEvent ( )

                public function sendReloadEvent()
{
    $this->_events[] = self::EVENT_RELOAD_LIST;
}

            
sendSuccess() public method

Defined in: luya\admin\ngrest\base\BaseActiveResponse::sendSuccess()

Send a success message.

public array sendSuccess ( $message, array $additionalResponseData = [] )
$message string

The sucess message.

$additionalResponseData array

Data which should be added to the xhr response.

return array

An array with success, error, message, responseData and events.

                public function sendSuccess($message, array $additionalResponseData = [])
{
    return [
        'success' => true,
        'error' => false,
        'message' => $message,
        'responseData' => $additionalResponseData,
        'events' => $this->_events,
    ];
}