Situazione
Tipologie [N <-> 1] Causali
Nella vista index delle tipologie (CausalTypes) ho questa colonna
array(
'name' => 'activeCauals',
'value' => 'count($data->causalsObj)
),
praticamente mi dice quante causali ci sono legate a quella tipologia. E funziona, semplicemente grazie alla relation.
Tenete conto che questa colonna dovrà sparire
Quello che ho bisogno di fare è far si che l’icona ‘Cancella’ mi chieda ‘Vuoi davvero cancellare questa tiplogia’ se NON ci sono di causali attive di questo tipo, mentre deve chiedere ‘Sei davvero sicuro … perchè ci sono ‘n’ causali attive di questo tipo…’
Ho customizzato la columnbutton in modo che prenda il mio elenco di buttons come array, e a sua volta sto cercando di passare all’evento onclick ( proprietà click ) del deleteButton, il valore di count($data->causalsObj), ma ovviamente non funziona.
Vi chiedevo se c’è una Yii-way o comunque una strada sensata anche completamente diversa per ottenere questa funzionalità.
Un collega h a proposto una chiamata ajax ad una action che conta le causali attive, e restituisce il numero e quindi la funzione fa un window.confirm con un testo diverso a seconda … ma … insomma … non mi soddisfa.
Ultimo tentativo: usata gli attributi data- dell’html5
$buttonsArray = array(
'update' => array(
'label'=>Yii::t('general','Modifica'),
'imageUrl'=> Yii::app()->request->baseUrl.'/css/icons/16/edit.png',
),
'delete' => array(
'label'=>Yii::t('general','Cancella'),
'imageUrl'=> Yii::app()->request->baseUrl.'/css/icons/16/cross.png',
'click' => "function() {return customDelConfirm(this); }",
'visible'=>'$data->isActive',
'options' => array('data-activeCausals' => "count($data->causalObj)" ),
),
);
ma non ha funzionato… ottengo questo
<a data-activeCausals="count()" ...
Usando (per prova)
'options' => array('data-activeCausals' => '$data->isActive' ),
ottengo
[ccode]
data-activeCausals="$data->isActive"
[/code]
per cui deduco che non viene eseguito l’eval nelle options.
stavo provando a fare la stessa cosa direttamente nel click, ma anche li finisce male…
A voi l’ardua sentenza