Problema con los scripts

Issue #87 new
Former user created an issue

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)

  1. Miguel Garcia

    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

  2. Log in to comment