- 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