FSN#38633 Op hele TD kunnen klikken voor multi-select checkbox

svn path=/Website/trunk/; revision=31808
This commit is contained in:
Jos Groot Lipman
2016-12-03 13:42:43 +00:00
parent 48f6b91593
commit d60488e572
2 changed files with 28 additions and 11 deletions

View File

@@ -63,11 +63,20 @@ $(document).ready(function() {
delayed(200, doFilter);
});
};
// Bij multi-select Shift-toets gebruiken voor een range
var lastChecked = null;
$(document).ready(function() {
// Op hele TD klikken voor checkbox
$('td:has(:checkbox.multiselect)').click(function (e) {
if (!$(e.target).is('input')) {
$('input:checkbox', this).click();
return false;
}
});
// Bij multi-select Shift-toets gebruiken voor een range
var $chkboxes = $('input.multiselect');
$chkboxes.click(function(e) {
$(this).closest("tr").toggleClass("selected", this.checked);
$chkboxes = $('input.multiselect');
if(!lastChecked) {
lastChecked = this;
@@ -78,10 +87,10 @@ $(document).ready(function() {
var start = $chkboxes.index(this);
var end = $chkboxes.index(lastChecked);
$chkboxes.slice(Math.min(start,end), Math.max(start,end)+ 1).prop('checked', lastChecked.checked);
$chkboxes.slice(Math.min(start,end), Math.max(start,end)+ 1)
.prop('checked', lastChecked.checked)
.closest("tr").toggleClass("selected", lastChecked.checked);
}
lastChecked = this;
});
});
@@ -206,12 +215,17 @@ function $currentActionsDiv()
function toggleFooter()
{
var show = false;
$("#" + this).find(".multiselect:checked").each(function() {
show = true;
return false;
});
var nn = $("#" + this).find(".multiselect:checked").length;
var footerButtons = $("#" + this).find("#multiactiondiv");
show ? footerButtons.css('visibility','visible') : footerButtons.css('visibility','hidden');
if (nn)
{
footerButtons.css('visibility','visible');
$("span#multilabel").text(L("lcl_with_selected").format(nn))
}
else
{
footerButtons.css('visibility','hidden');
}
}
function willHide()
@@ -291,7 +305,10 @@ function showHamburgerActions(event)
function showActions(event) // event op de mouseover van resultsettable
{
var key = this.getAttribute("ROWKEY");
if (!key || (useHamb != 0 && currentRowKey == key && $currentActionsDiv().css('display') != "none"))
if (!key
|| $(event.target).is('input:checkbox')
|| $(event.target).find('input:checkbox').length
|| (useHamb != 0 && currentRowKey == key && $currentActionsDiv().css('display') != "none"))
{
hideActions(event)
return;

View File

@@ -1232,7 +1232,7 @@ function __rsMakeTableRow(oRs, oRsFlexData, cnt, anyMultiActions, noFlexResult)
if (!isPrinting && !isExcel && anyMultiActions && !inline) // Checkboxje erbij voor 'select all'
{
var isChecked = this.rowChecked && this.rowChecked(oRs, this.processParams);
appender += "<td><input type=checkbox class='multiselect'" + (isChecked?' checked=1':'') + "></td>";
appender += "<td class='multiselect'><input type=checkbox class='multiselect'" + (isChecked?' checked=1':'') + "></td>";
}
if (useHamburger && hasInlineActions)