82 lines
2.9 KiB
JavaScript
82 lines
2.9 KiB
JavaScript
function handleDatatableReady()
|
|
{
|
|
$('th.datatable-head-cell').each(function() { $(this).attr('title', $(this).html()); });
|
|
|
|
var rowspan = 1;
|
|
var compareVal = '';
|
|
var mergeIndex = 0;
|
|
$('.datatable-rows .datatable-rows-span:first table tr').each(function()
|
|
{
|
|
var leftHeight = $(this).height();
|
|
var dataIndex = $(this).data('index');
|
|
|
|
var $right = $('.datatable-rows .datatable-rows-span:last table tr[data-index=' + dataIndex + ']');
|
|
var rightHeight = $right.height();
|
|
|
|
var trHeight = leftHeight;
|
|
if(leftHeight <= rightHeight) trHeight = rightHeight;
|
|
$right.height(trHeight);
|
|
$(this).height(trHeight);
|
|
|
|
if(dataIndex == 0)
|
|
{
|
|
compareVal = $(this).find('td:first').html();
|
|
mergeIndex = dataIndex;
|
|
}
|
|
|
|
if(mergeIndex != dataIndex)
|
|
{
|
|
if(compareVal == $(this).find('td:first').html())
|
|
{
|
|
rowspan += 1;
|
|
$(this).parent().find('tr').eq(mergeIndex).find('td:first').attr('rowspan', rowspan);
|
|
$(this).find('td:first').remove();
|
|
}
|
|
else
|
|
{
|
|
rowspan = 1;
|
|
compareVal = $(this).find('td:first').html();
|
|
mergeIndex = dataIndex;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
$(function()
|
|
{
|
|
handleDatatableReady();
|
|
fixScroll();
|
|
});
|
|
|
|
function fixScroll()
|
|
{
|
|
var $scrollwrapper = $('div.datatable').first().find('.scroll-wrapper:first');
|
|
if($scrollwrapper.size() == 0)return;
|
|
|
|
var $tfoot = $('div.datatable').first().find('table tfoot:last');
|
|
var scrollOffset = $scrollwrapper.offset().top + $scrollwrapper.find('.scroll-slide').height();
|
|
if($tfoot.size() > 0) scrollOffset += $tfoot.height();
|
|
if($('div.datatable.head-fixed').size() == 0) scrollOffset -= '29';
|
|
var windowH = $(window).height();
|
|
var bottom = $tfoot.hasClass('fixedTfootAction') ? 14 + $tfoot.height() : 14;
|
|
if(typeof(ssoRedirect) != "undefined") bottom = 14;
|
|
if(scrollOffset > windowH + $(window).scrollTop()) $scrollwrapper.css({'position': 'fixed', 'bottom': '0px'});
|
|
$('.datatable .scroll-slide.scroll-pos-out').css('bottom', '0px');
|
|
$(window).scroll(function()
|
|
{
|
|
newBottom = $tfoot.hasClass('fixedTfootAction') ? 14 + $tfoot.height() : 14;
|
|
if(typeof(ssoRedirect) != "undefined") newBottom = 14;
|
|
if(scrollOffset <= windowH + $(window).scrollTop())
|
|
{
|
|
$scrollwrapper.css({'position':'relative', 'bottom': '0px'});
|
|
$('.datatable .scroll-slide.scroll-pos-out').css('bottom', '-14px');
|
|
}
|
|
else if($scrollwrapper.css('position') != 'fixed' || bottom != newBottom)
|
|
{
|
|
$scrollwrapper.css({'position': 'fixed', 'bottom': newBottom + 'px'});
|
|
bottom = newBottom;
|
|
$('.datatable .scroll-slide.scroll-pos-out').css('bottom', '-' + newBottom + 'px');
|
|
}
|
|
});
|
|
}
|