Hi,
After updating the Yii framework (v1.1.7), the file jquery.yiigridview.js generated an error :
Here the function :
if(settings.selectableRows > 0) {
$('#'+id+' .'+settings.tableClass+' > tbody > tr').live('click',function(e){
if('checkbox'!=e.target.type){
var $sbox=$('input.select-on-check',this);
var sboxname=$sbox.attr('name');
if(settings.selectableRows == 1){
$(this).siblings().removeClass('selected');
$("input[name='"+sboxname+"']").attr('checked',false);
}
$(this).toggleClass('selected');
$sbox.attr('checked',$(this).hasClass('selected'));
var sboxallname=sboxname.substring(0,sboxname.length-2)+'_all'; //.. remove '[]' and add '_all'
$("input[name='"+sboxallname+"']").attr('checked', $("input[name='"+sboxname+"']").length==$("input[name='"+sboxname+"']:checked").length);
if(settings.selectionChanged != undefined)
settings.selectionChanged(id);
}
});
}
This problem is solved by adding a test on the variable sboxname :
if(settings.selectableRows > 0) {
$('#'+id+' .'+settings.tableClass+' > tbody > tr').live('click',function(e){
if('checkbox'!=e.target.type){
var $sbox=$('input.select-on-check',this);
var sboxname=$sbox.attr('name');
if(settings.selectableRows == 1){
$(this).siblings().removeClass('selected');
if(sboxname) $("input[name='"+sboxname+"']").attr('checked',false);
}
$(this).toggleClass('selected');
$sbox.attr('checked',$(this).hasClass('selected'));
if(sboxname) var sboxallname=sboxname.substring(0,sboxname.length-2)+'_all'; //.. remove '[]' and add '_all'
if(sboxname) $("input[name='"+sboxallname+"']").attr('checked', $("input[name='"+sboxname+"']").length==$("input[name='"+sboxname+"']:checked").length);
if(settings.selectionChanged != undefined)
settings.selectionChanged(id);
}
});
}
But this file is located in the assets. Is it a good practice to change it?