Class luya\admin\buttons\ToggleStatusActiveButton
Set a boolean for a given attribute.
This buttons allows you to save the active status for a given attribute in the model.
Usage example:
[
'class' => 'luya\admin\buttons\ToggleStatusActiveButton',
'attribute' => 'is_active',
'label' => 'Set active',
]
Public Properties
Public 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 |
| getCondition() | Get the button condition or empty of not set | luya\admin\ngrest\base\ActiveButton |
| getDefaultIcon() | The default icon of not overriden trough {{$icon}}. | luya\admin\buttons\ToggleStatusActiveButton |
| getDefaultLabel() | Get the default label if not set trough {{$label}}. | luya\admin\buttons\ToggleStatusActiveButton |
| getIcon() | Get the button icon, if icon is not set default icon is used. | luya\admin\ngrest\base\ActiveButton |
| getLabel() | Get the button label, if not set default label is used. | luya\admin\ngrest\base\ActiveButton |
| getPermissionLevel() | Get the button displaying permission level or empty of not set | luya\admin\ngrest\base\ActiveButton |
| handle() | The handler which implements the function of the button. | luya\admin\buttons\ToggleStatusActiveButton |
| 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. | luya\admin\buttons\ToggleStatusActiveButton |
| 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 |
| setCondition() | Setter method for the button ng-show condition | luya\admin\ngrest\base\ActiveButton |
| setIcon() | Setter method for icon | luya\admin\ngrest\base\ActiveButton |
| setLabel() | Set label | luya\admin\ngrest\base\ActiveButton |
| setPermissionLevel() | Setter method for the ActiveWindow button displaying permission level | luya\admin\ngrest\base\ActiveButton |
Constants
| Constant | Value | Description | Defined By |
|---|---|---|---|
| EVENT_RELOAD_LIST | 'loadList' | luya\admin\ngrest\base\BaseActiveResponse |
Property Details
Method Details
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()");
}
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
$confighere. - 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();
}
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);
}
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.
| 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;
}
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);
}
}
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.
| 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);
}
}
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
$checkVarsis 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);
}
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
$checkVarsis 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);
}
::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();
}
Defined in: luya\admin\ngrest\base\ActiveButton::getCondition()
Get the button condition or empty of not set
| public void getCondition ( ) |
public function getCondition()
{
return empty($this->_condition) ? '' : $this->_condition;
}
The default icon of not overriden trough {{$icon}}.
| public string getDefaultIcon ( ) |
public function getDefaultIcon()
{
return 'toggle_on';
}
Get the default label if not set trough {{$label}}.
| public string|boolean getDefaultLabel ( ) |
public function getDefaultLabel()
{
return Module::t('active_button_togglestatus_label');
}
Defined in: luya\admin\ngrest\base\ActiveButton::getIcon()
Get the button icon, if icon is not set default icon is used.
| public string getIcon ( ) |
public function getIcon()
{
return $this->_icon ?: $this->getDefaultIcon();
}
Defined in: luya\admin\ngrest\base\ActiveButton::getLabel()
Get the button label, if not set default label is used.
If label is false or null, the button has no label.
| public string|boolean getLabel ( ) |
public function getLabel()
{
return $this->_label ?: $this->getDefaultLabel();
}
Defined in: luya\admin\ngrest\base\ActiveButton::getPermissionLevel()
Get the button displaying permission level or empty of not set
| public void getPermissionLevel ( ) |
public function getPermissionLevel()
{
return $this->_permissionLevel;
}
The handler which implements the function of the button.
The model is passed as arugment and is refereing to the current model the active button has been pushed.
| public array handle ( luya\admin\ngrest\base\NgRestModel $model ) | ||
| $model | luya\admin\ngrest\base\NgRestModel | |
| return | array |
See sendError() or sendSuccess(). |
|---|---|---|
public function handle(NgRestModel $model)
{
$transaction = $model::getDb()->beginTransaction();
try {
$newValue = $this->toggleValue($model->getAttribute($this->attribute));
if ($this->uniqueStatus) {
$model::updateAll([$this->attribute => $this->disableValue]);
$model->updateAttributes([$this->attribute => $newValue]);
} else {
$model->updateAttributes([$this->attribute => $newValue]);
}
$transaction->commit();
$this->sendReloadEvent();
if ($newValue == $this->enableValue) {
return $this->sendSuccess(Module::t('active_button_togglestatus_enabled', ['modelName' => $model->{$this->modelNameAttribute}]));
} else {
return $this->sendSuccess(Module::t('active_button_togglestatus_disabled', ['modelName' => $model->{$this->modelNameAttribute}]));
}
} catch (\Throwable $ex) {
$transaction->rollBack();
throw $ex;
}
return $this->sendError(Module::t('active_button_togglestatus_error'));
}
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);
}
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
$checkVarsis 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);
}
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()
{
parent::init();
if (!$this->attribute) {
throw new InvalidConfigException("The attribute property must be set.");
}
}
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 |
|---|---|---|
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,
];
}
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;
}
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 |
|---|---|---|
public function sendSuccess($message, array $additionalResponseData = [])
{
return [
'success' => true,
'error' => false,
'message' => $message,
'responseData' => $additionalResponseData,
'events' => $this->_events,
];
}
Defined in: luya\admin\ngrest\base\ActiveButton::setCondition()
Setter method for the button ng-show condition
| public void setCondition ( $condition ) | ||
| $condition | string | |
public function setCondition($condition)
{
$this->_condition = $condition;
}
Defined in: luya\admin\ngrest\base\ActiveButton::setIcon()
Setter method for icon
| public void setIcon ( $icon ) | ||
| $icon | string |
The material icon |
public function setIcon($icon)
{
$this->_icon = $icon;
}
Defined in: luya\admin\ngrest\base\ActiveButton::setLabel()
Set label
| public void setLabel ( $label ) | ||
| $label | string |
The label for the button. |
public function setLabel($label)
{
$this->_label = $label;
}
Defined in: luya\admin\ngrest\base\ActiveButton::setPermissionLevel()
Setter method for the ActiveWindow button displaying permission level
| public void setPermissionLevel ( $permissionLevel ) | ||
| $permissionLevel | integer | |
public function setPermissionLevel($permissionLevel)
{
$this->_permissionLevel = $permissionLevel;
}