FSN#37938 Bulk acties zijn nu buttons ipv dropdown menu

svn path=/Website/trunk/; revision=31787
This commit is contained in:
2016-12-02 09:45:04 +00:00
parent 7bb352e851
commit 9e3f4da15f
2 changed files with 32 additions and 16 deletions

View File

@@ -155,7 +155,8 @@ function initActions(tableID, hambType)
useHamb = hambType;
$(function () {
$("#" + tableID)
.on('click', '.multiselect', FcltMgr.stopPropagation);
.on('click', '.multiselect', FcltMgr.stopPropagation)
.on('click', '.multiselect', function() { toggleFooter.apply(tableID) } );
if (hambType == 0) // No hamburger, just mouseOver
{
$("#" + tableID)
@@ -202,6 +203,17 @@ function $currentActionsDiv()
return $("#allactions_" + tbl[0].id +".allactions");
}
function toggleFooter()
{
var show = false;
$("#" + this).find(".multiselect:checked").each(function() {
show = true;
return false;
});
var footerButtons = $("#" + this).find("#multiactiondiv");
show ? footerButtons.css('visibility','visible') : footerButtons.css('visibility','hidden');
}
function willHide()
{
$("li#printhamburger").each(function() {
@@ -392,30 +404,32 @@ function getKeyString(rowArray)
return keyString.join(",");
}
function doMulti(thisID)
function doMulti(thisID, func, tekst, onceMulti)
{
var actionSelect = document.getElementById("multiaction");
if (actionSelect[actionSelect.selectedIndex].value == '') return;
var regels = $("#" + thisID + " .multiselect:checked");
if (regels.length > 0)
{
FcltMgr.confirm(L("lcl_shared_doaction").format(actionSelect[actionSelect.selectedIndex].text, regels.length), function() {
FcltMgr.confirm(L("lcl_shared_doaction").format(tekst, regels.length), function() {
// Als multiOnce is gedefinieerd dan wordt de actie 1 keer aangeroepen waarbij een string met keys wordt meegegeven aan de actiefunctie
// anders wordt voor elke aangevinkte regel de actie aangeroepen waarbij elke keer een key wordt meegegeven aan de actiefunctie
var multiOnce = false;
var multiOnceArray = new Array();
var teller = 0;
$("#" + thisID + " .multiselect:checked").each(function() {
teller++;
var rowData = eval('(' + this.parentNode.parentNode.getAttribute("ROWDATA") + ')');
multiOnce = actionSelect[actionSelect.selectedIndex].getAttribute("multiOnce");
multiOnce = onceMulti;
if (multiOnce)
{
multiOnceArray.push(this.parentNode.parentNode);
}
else
eval(actionSelect[actionSelect.selectedIndex].value).call(null, this.parentNode.parentNode, true); // true voor noconfirm i.g.v. multi actie
eval(func).call(null, this.parentNode.parentNode, true); // true voor noconfirm i.g.v. multi actie
});
if (multiOnce)
eval(actionSelect[actionSelect.selectedIndex].value).call(null, multiOnceArray, true); // true voor noconfirm i.g.v. multi actie
eval(func).call(null, multiOnceArray, true); // true voor noconfirm i.g.v. multi actie
});
}
}
@@ -430,6 +444,7 @@ function checkAll(thisID, zelf)
{
this.checked = zelf.checked;
});
toggleFooter.apply(thisID);
}
function RSdefaultAction(thisID, defaultAction)
{

View File

@@ -904,26 +904,27 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
if (anyMultiActions && !inline)
{
appender = "\n<div id='multiactiondiv' style='float: left'><label><span id='multilabel'>" + L("lcl_with_selectedlabel") + "</span>"
appender += "\n<select id='multiaction'>"
appender += "<option value=''>" + L("lcl_with_selected") + "</option>";
appender = "\n<div id='multiactiondiv' style='float: left; visibility: hidden;'><label><span id='multilabel'>" + L("lcl_with_selected") + ": </span>";
for (var i=0; i < actions.length; i++)
{
if (actions[i].multi)
appender += "<option value='" + actions[i].action + (actions[i].multiOnce? "' multiOnce='" + actions[i].multiOnce : "") +"'>" + actions[i].caption + "</option>";
appender += "<span onClick='javascript:doMulti(\"" + this.ID + "\", \"" +
actions[i].action + "\", \"" +
actions[i].caption + "\", " +
actions[i].multiOnce + ");" +
"FcltMgr.stopPropagation(event);' class='button footerbutton'>"+actions[i].caption+"</span>";
}
appender += "</select>";
appender += "\n<span onClick='javascript:doMulti(\"" + this.ID + "\");FcltMgr.stopPropagation(event);' class='button'>"+L("lcl_domulti")+"</span></div>";
appender += "</div>";
htmlFoot += "<tr><td class='rsfooter' colspan=" + (columns.length + (hasInlineDetails? 1 : 0) + (!isPrinting && !isExcel && anyMultiActions && !inline? 1 : 0)) + ">" + appender + "</td></tr>";
}
if (htmlFoot != "")
{
htmlFoot = "<tfoot>" + htmlFoot + "</tfoot>";
}
html += htmlFoot;
Response.Write(html);
endTable();
// 'Klik voor meer' onderaan de tabel