Confirmação na CButtonColumn

Boa tarde.

Estou com um problema nos botões da CButtonColumn.

O meu objectivo é que, quando clicar no botão remover, abre-se uma confirmação para o utilizador escolher se quer ou não remover.

O meu código até ao momento.




?php 




if(isset($_GET['Community'])){

	$dataProvider->attributes = $_GET['Community'];

}


	$this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'community-grid',

	'dataProvider'=>$dataProvider->searchPerUser($model->id),

	'filter'=>$dataProvider,

	'columns'=>array(

		'id',

		//'photo',

		'name',

		//'description',

		//'founder_id',

		array(

			'name'=>'is_active',

			'filter'=>array(0=>'Não', 1=> 'Sim'),

			'value'=>'$data->getYesNo("is_active")',

		),

		array(

			'name'=>'is_open',

			'filter'=>array(0=>'Não', 1=> 'Sim'),

			'value'=>'$data->getYesNo("is_open")',

		),

		array(

			'name'=>'can_publish',

			'filter'=>array(0=>'Não', 1=> 'Sim'),

			'value'=>'$data->getYesNo("can_publish")',

		),

		array(

			'name'=>'is_permanent',

			'filter'=>array(0=>'Não', 1=> 'Sim'),

			'value'=>'$data->getYesNo("is_permanent")',

		),

		array(

			'name'=>'is_formal',

			'filter'=>array(0=>'Não', 1=> 'Sim'),

			'value'=>'$data->getYesNo("is_formal")',

		),

		array(

			'name'=>'has_advanced_search',

			'filter'=>array(0=>'Não', 1=> 'Sim'),

			'value'=>'$data->getYesNo("has_advanced_search")',

		),

		array( 'class'=>'CButtonColumn',

			'template'=>'{modifyPermissions}{removeUser}',

			'buttons'=>array(

					'modifyPermissions' => array(

								    'label'=>'Modificar permissões do membro',     // text label of the button

								    'url'=>'Yii::app()->createUrl("/admin/userrights",array("id_user"=>'.$model->id.', "id_community"=>$data->id))',       // a PHP expression for generating the URL of the button

								    'imageUrl'=>'images/buttons/16x16/gif/69.gif',  // image URL of the button. If not set or false, a text link is used

								    'htmlOptions'=>array('title'=>'modificar permissões'), // HTML options for the button tag

								    'visible'=>'1',   // a PHP expression for determining whether the button is visible

								),

					'removeUser' => array(

								    'label'=>'Retirar da comunidade',

								    'url'=>'Yii::app()->createUrl("/admin/removeuserfromcommunity",array("id_user"=>'.$model->id.', "id_community"=>$data->id))',

								    'imageUrl'=>'images/buttons/16x16/gif/33.gif',

								    'htmlOptions'=>array('title'=>'retirar o utilizador da comunidade','onClick'=>"if(confirm('Tem a certeza que quer remover o utilizador da comunidade?'))alert('Removido');else alert('Cancelado')"),

								    'visible'=>'1',

								),

					

				)

		),

	),

));

 ?>



O problema é que não está a abrir confirmação nenhuma…

já descobri o problema:


'click'=>'function(){alert("hey");return false;}',

faltava colocar function() e as chavetas ;D

Ô amigo o que fiz de errado, pois não está mostrando nada.




'htmlOptions' => array('title' => 'Receber CTPS', 'onClick' => 'function(){if(confirm("Tem a certeza que deseja receber CTPS?"))alert("Recebido");else alert("Cancelado")}'),



Tem que colocar algo no Controller??

Ahe blz,

Segue a estrura do botão, no seu caso o click é um paramentro do botao.

‘buttonID’ => array(

'label'=>'...',     // texto do botao


'url'=>'...',       // link a ser chamado


'imageUrl'=>'...',  // Imagem do Botao


'options'=>array(...), // Opçoes do link  atributos


'click'=>'...',     // Funções de js


'visible'=>'...',   // Expressão se é visivel ou não

)

Seu caso:

‘click’=>‘function(){if(confirm(“Tem a certeza que deseja receber CTPS?”))alert(“Recebido”);else alert(“Cancelado”)}’

Falow brodi.

Amigo valeu pela resposta rápida, deu certo em partes pois ele mostra a mensagem, porém quando clico em cancelar ele executa a ação do mesmo jeito. Como tratar isso. Segue abaixo como está o botaão na grid e o meu controller




                	'receber' => array(

                    	'label' => 'Receber CTPS',

                    	'imageUrl' => Yii::app()->baseUrl . '/css/gridViewStyle/images/' . 'arrow-270.png',

                    	'url' => 'Yii::app()->createUrl("/atualizar/receber", array("id" => $data->idatualizar))',              	

                    	'click'=>'function(){if(confirm("Tem a certeza que deseja receber CTPS?"))alert("Recebido");else alert("Cancelado")}',

                	),






	public function actionReceber() {

    	$model = $this->loadModel();

    	if ($model->statusAtualizacao == atualizar::RECEBIDO) {

        	throw new CHttpException(413, 'A CTPS já foi recebida.');

    	} elseif ($model->statusAtualizacao == atualizar::ATUALIZADO) {

        	throw new CHttpException(413, 'A CTPS já foi Atualizada.');

    	} elseif ($model->statusAtualizacao == atualizar::CONVOCADO) {

        	if ($model->receber()) {

            	Yii::app()->user->setFlash('deleteStatus', 'Deleted Successfully');

            	$this->redirect(array('admin'));

        	}

        	throw new CHttpException(400, 'Falha ao Receber a CTPS');

    	} else {

        	throw new CHttpException(413, 'Ação possui um estado inesperado');

    	}

	}



blz Adrian

No caso é so vc da um return false no script:

‘click’=>‘function(){if(confirm(“Tem a certeza que deseja receber CTPS?”))alert(“Recebido”);else alert(“Cancelado”); return false; }’

Falow

Falow amigo, muito obrigado… Resolvido!!!