Index: src/main/webapp/resources/js/xwiki/table/livetable.js =================================================================== --- src/main/webapp/resources/js/xwiki/table/livetable.js (revision 22160) +++ src/main/webapp/resources/js/xwiki/table/livetable.js (working copy) @@ -338,18 +338,23 @@ el.addClassName('desc'); } Event.observe(el, "click", function(event) { - if (event.element().hasClassName("selected")) { // Sort column already selected. Change direction - var direction = event.element().hasClassName("asc") ? "asc" : "desc"; + var elem = event.element() + if( !elem.hasClassName('sortable') ) + elem = elem.up('th.sortable'); + if( elem == null ) + return; + if (elem.hasClassName("selected")) { // Sort column already selected. Change direction + var direction = elem.hasClassName("asc") ? "asc" : "desc"; var newDirection = direction == "asc" ? "desc" : "asc"; - event.element().removeClassName(direction); - event.element().addClassName(newDirection); + elem.removeClassName(direction); + elem.addClassName(newDirection); } else { // sort column was not selected, do not change direction, just column if (self.selectedColumn){ self.selectedColumn.removeClassName("selected"); } - event.element().addClassName("selected"); - self.selectedColumn = event.element(); + elem.addClassName("selected"); + self.selectedColumn = elem; } self.totalRows = -1; //reset self.showRows(1, self.limit); @@ -358,6 +363,7 @@ } }); + /** * Helper class to display pagination */