|
|
|
@ -35,18 +35,44 @@ |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function handleTabCheckedCheckboxCount($tab) { |
|
|
|
var newCount = 0; |
|
|
|
$tab.find('input[type="checkbox"]').not('[name="SelectAllInThisTab"]').each(function () { |
|
|
|
if ($(this).is(':checked') === true) { |
|
|
|
newCount++; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
var $tabTitle = $('#' + $tab.attr('id') + '-tab'); |
|
|
|
var title = $tabTitle.html() |
|
|
|
.replace('<b>','').replace('</b>','') |
|
|
|
.replace('<small>','').replace('</small>',''); |
|
|
|
|
|
|
|
var titleSplitted = title.split(' '); |
|
|
|
if (titleSplitted[titleSplitted.length-1].startsWith('(')){ |
|
|
|
titleSplitted.pop(); |
|
|
|
} |
|
|
|
var titleWithoutCount = titleSplitted.join(' '); |
|
|
|
var newTitle = titleWithoutCount + ' (' + (newCount) + ')'; |
|
|
|
if (newCount > 0){ |
|
|
|
newTitle = '<b>' + newTitle + '</b>' |
|
|
|
} |
|
|
|
else { |
|
|
|
newTitle = '<small>' + newTitle + '</small>' |
|
|
|
} |
|
|
|
$tabTitle.html(newTitle) |
|
|
|
}; |
|
|
|
|
|
|
|
function handleUncheck($tab) { |
|
|
|
var $checkBox = $tab.find('input[name="SelectAllInThisTab"]'); |
|
|
|
|
|
|
|
if ($checkBox.is(':checked')) { |
|
|
|
if ($tab.find('input[type="checkbox"]').not('[name="SelectAllInThisTab"]').length > 1) { |
|
|
|
$($checkBox).prop('indeterminate', true); |
|
|
|
} |
|
|
|
else { |
|
|
|
} else { |
|
|
|
$checkBox.prop('checked', false); |
|
|
|
} |
|
|
|
} |
|
|
|
else if ($checkBox.is(':indeterminate')) { |
|
|
|
} else if ($checkBox.is(':indeterminate')) { |
|
|
|
var allUnchecked = true; |
|
|
|
|
|
|
|
$tab.find('input[type="checkbox"]').not('[name="SelectAllInThisTab"]').each(function () { |
|
|
|
@ -76,12 +102,12 @@ |
|
|
|
if (allChecked) { |
|
|
|
$($checkBox).prop('indeterminate', false); |
|
|
|
$checkBox.prop('checked', true); |
|
|
|
} |
|
|
|
else { |
|
|
|
} else { |
|
|
|
$($checkBox).prop('indeterminate', true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function initSelectAllInThisTab() { |
|
|
|
var tabs = $('.tab-pane'); |
|
|
|
for (var i = 0; i < tabs.length; i++) { |
|
|
|
@ -101,11 +127,9 @@ |
|
|
|
|
|
|
|
if (allChecked) { |
|
|
|
$($checkBox).prop('checked', true); |
|
|
|
} |
|
|
|
else if (allUnChecked) { |
|
|
|
} else if (allUnChecked) { |
|
|
|
$($checkBox).prop('checked', false); |
|
|
|
} |
|
|
|
else { |
|
|
|
} else { |
|
|
|
$($checkBox).prop('indeterminate', true); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -139,11 +163,9 @@ |
|
|
|
|
|
|
|
if (allChecked) { |
|
|
|
$($checkBox).prop('checked', true); |
|
|
|
} |
|
|
|
else if (allUnChecked) { |
|
|
|
} else if (allUnChecked) { |
|
|
|
$($checkBox).prop('checked', false); |
|
|
|
} |
|
|
|
else { |
|
|
|
} else { |
|
|
|
$($checkBox).prop('indeterminate', true); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -151,6 +173,7 @@ |
|
|
|
this.initDom = function ($el) { |
|
|
|
$el.find('.tab-pane').each(function () { |
|
|
|
var $tab = $(this); |
|
|
|
handleTabCheckedCheckboxCount($tab); |
|
|
|
$tab.find('input[type="checkbox"]').not('[name="SelectAllInThisTab"]').each(function () { |
|
|
|
var $checkBox = $(this); |
|
|
|
$checkBox.change(function () { |
|
|
|
@ -162,6 +185,7 @@ |
|
|
|
handleUncheck($tab); |
|
|
|
} |
|
|
|
setSelectAllInAllTabs(); |
|
|
|
handleTabCheckedCheckboxCount($tab); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
@ -176,6 +200,7 @@ |
|
|
|
} |
|
|
|
$($checkBox).prop('indeterminate', false); |
|
|
|
setSelectAllInAllTabs(); |
|
|
|
handleTabCheckedCheckboxCount($tab) |
|
|
|
}); |
|
|
|
|
|
|
|
$('input[name="SelectAllInAllTabs"]').change(function () { |
|
|
|
@ -186,6 +211,10 @@ |
|
|
|
$('.tab-pane input[type="checkbox"]').not(':disabled').prop('checked', false); |
|
|
|
} |
|
|
|
$($checkBox).prop('indeterminate', false); |
|
|
|
|
|
|
|
$el.find('.tab-pane').each(function () { |
|
|
|
handleTabCheckedCheckboxCount($(this)) |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
$(function () { |
|
|
|
@ -201,4 +230,4 @@ |
|
|
|
setSelectAllInAllTabs(); |
|
|
|
}; |
|
|
|
}; |
|
|
|
})(jQuery); |
|
|
|
})(jQuery); |
|
|
|
|