- edited description
Problema con los scripts
Issue #87
new
Para que los Scripts dependientes de Jquery funcionen, se deberian lanzar al final, para darle tiempo a jquery a cargar; la solucion pasa o por moverlos a un fichero y luego llamarlo, o, en cada vista, cargar el javascript con la funcion de Yii indicandole que lo cargue al final; por ejemplo, para rbacusersassignments queda asi
<?php
/**
a cada LI del div de roles le anexa un evento click y le pone un cursor
*/
Yii::app()->clientScript->registerScript('RolesDisponibles',"
var _setSelectedItemName = function(valor){
$('#mostrarSeleccion').html(valor);
$('#mostrarSeleccion').data('itemName',valor);
}
var _getSelectedItemName = function(){
return $('#mostrarSeleccion').data('itemName')+'';
}
var _isSelectedItemName = function(){
return _getSelectedItemName() != 'undefined';
}
$('.user-assignments-role-list ul').find('li').each(function(){
var li = $(this);
li.css('cursor','pointer');
li.click(function(){
var itemName = $(this).attr('alt');
_setSelectedItemName('');
$('.user-assignments-role-list ul').find('li').each(function(){
$(this).removeClass('selected');
});
$(this).addClass('selected');
_setSelectedItemName(itemName);
// actualiza la lista1, que contiene los usuarios que tienen la asignacion
$.fn.yiiGridView.update('_lista1',{ data : 'itemName='+itemName+'&mode=select' });
});
});
$('#asignarSeleccion').css('cursor','pointer');
$('#asignarSeleccion').click(function(){
if(!_isSelectedItemName())return;
var itemName = _getSelectedItemName();
var selectedUsers = $.fn.yiiGridView.getSelection('_lista2');
if(((selectedUsers == 'undefined') || (selectedUsers==''))==false){
$.fn.yiiGridView.update('_lista1',
{ data : 'itemName='+itemName+'&userid='+selectedUsers+'&mode=assign' });
}
});
$('#revocarSeleccion').css('cursor','pointer');
$('#revocarSeleccion').click(function(){
if(!_isSelectedItemName())return;
var itemName = _getSelectedItemName();
var selectedUsers = $.fn.yiiGridView.getSelection('_lista1');
if(((selectedUsers == 'undefined') || (selectedUsers==''))==false){
$.fn.yiiGridView.update('_lista1',
{ data : 'itemName='+itemName+'&userid='+selectedUsers+'&mode=revoke' });
}
});
",CClientScript::POS_END);
?>
Comments (3)
-
repo owner -
repo owner hola, cual es el cambio, y en que situacion falla ? saludos y gracias
-
La modificacion es la inclusion de los scripts dentro de Yii::app()->clientScript->registerScript('RolesDisponibles'," ... ",CClientScript::POS_END); para controlar el momento de ejecucion...., pero disculpa, ya que luego he visto que Argenis Bolivar lo ha documentado en los Pull Request. Puedes borrar esto, yo probare esas modificaciones
- Log in to comment