Class luya\admin\buttons\DuplicateActiveButton
Adds a duplicate row button to the CRUD.
Public Properties
| Property | Type | Description | Defined By | 
|---|---|---|---|
| $condition | luya\admin\ngrest\base\ActiveButton | ||
| $defaultIcon | string | luya\admin\buttons\DuplicateActiveButton | |
| $defaultLabel | string|boolean | luya\admin\buttons\DuplicateActiveButton | |
| $icon | string | luya\admin\ngrest\base\ActiveButton | |
| $label | string|boolean | luya\admin\ngrest\base\ActiveButton | |
| $modelValidation | boolean | Whether the model should be validate while saving or not. | luya\admin\buttons\DuplicateActiveButton | 
| $permissionLevel | luya\admin\ngrest\base\ActiveButton | 
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\DuplicateActiveButton | 
| getDefaultLabel() | Get the default label if not set trough {{$label}}. | luya\admin\buttons\DuplicateActiveButton | 
| 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\DuplicateActiveButton | 
| 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 | 
| 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
Whether the model should be validate while saving or not.
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 'control_point_duplicate';
}
            
        Get the default label if not set trough {{$label}}.
| public string|boolean getDefaultLabel ( ) | 
                public function getDefaultLabel()
{
    return Module::t('active_button_duplicate_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)
{
    $data = $model::ngRestFind()->byPrimaryKey($model->getPrimaryKey())->asArray()->one();
    if (!$data) {
        return $this->sendError(Module::t('active_button_duplicate_error', ['message' => 'Model with id ' . $model->getPrimaryKey() . ' not found.']));
    }
    $copy = new $model();
    $copy->attributes = $data;
    if ($copy->save($this->modelValidation)) {
        $this->sendReloadEvent();
        return $this->sendSuccess(Module::t('active_button_duplicate_success'));
    }
    $message = implode(" ", $copy->getErrorSummary(true));
    return $this->sendError(Module::t('active_button_duplicate_error', ['message' => $message]));
}
            
        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);
}
            
        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()
{
}
            
        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;
}