PS
Ação ONOFF
Pessoal, uma ajuda com Ação ONOFF.
Seguinte:
Tenho uma TCombo com as opções abaixo:
$active->addItems( [ 'Y' => _t('Yes'), 'N' => _t('No') , 'T' => 'Talvez'] );
Gostaria de criar mais um status para a opção T=Talvez no código abaixo:
$column_active->setTransformer( function($value, $object, $row) {
$class = ($value=='N') ? 'danger' : 'success';
$label = ($value=='N') ? _t('No') : _t('Yes');
$div = new TElement('span');
$div->class="label label-{$class}";
$div->style="text-shadow:none; font-size:12px; font-weight:lighter";
$div->add($label);
return $div;
});
E em seguida alterar a ação onTurnOnOff para alteração entre as três opçoes conforme abaixo:
/**
* Turn on/off an user
*/
public function onTurnOnOff($param)
{
try
{
TTransaction::open('permission');
$user = SystemUser::find($param['id']);
if ($user instanceof SystemUser)
{
$user->active = $user->active == 'Y' ? 'N' : 'Y';
$user->store();
}
TTransaction::close();
$this->onReload($param);
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
TTransaction::rollback();
}
}
Seguinte:
Tenho uma TCombo com as opções abaixo:
$active->addItems( [ 'Y' => _t('Yes'), 'N' => _t('No') , 'T' => 'Talvez'] );
Gostaria de criar mais um status para a opção T=Talvez no código abaixo:
$column_active->setTransformer( function($value, $object, $row) {
$class = ($value=='N') ? 'danger' : 'success';
$label = ($value=='N') ? _t('No') : _t('Yes');
$div = new TElement('span');
$div->class="label label-{$class}";
$div->style="text-shadow:none; font-size:12px; font-weight:lighter";
$div->add($label);
return $div;
});
E em seguida alterar a ação onTurnOnOff para alteração entre as três opçoes conforme abaixo:
/**
* Turn on/off an user
*/
public function onTurnOnOff($param)
{
try
{
TTransaction::open('permission');
$user = SystemUser::find($param['id']);
if ($user instanceof SystemUser)
{
$user->active = $user->active == 'Y' ? 'N' : 'Y';
$user->store();
}
TTransaction::close();
$this->onReload($param);
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
TTransaction::rollback();
}
}
Você pode encadear mais um if ternário no if já existente:
Mas também pode usar if/else normal se quiser
Obrigado Nataniel, resolvido.