FCLT#56546 Multi-acties worden nu apart gechecked of ze getoond moeten worden afh. van S(inline_actions_mld)

svn path=/Website/trunk/; revision=41140
This commit is contained in:
2019-02-25 13:08:38 +00:00
parent a1cb427bf6
commit b4e55fb730
2 changed files with 96 additions and 8 deletions

View File

@@ -670,7 +670,7 @@ function mld_list (pautfunction, params)
function fnrowActionEnabler(oRs)
{
if (!S("inline_actions_mld"))
if (!S("inline_actions_mld") && !(mld_key > 0))
return {};
// We weten al dat we mogen lezen. Geef dat mee aan func_enabled_melding, die wordt daar efficienter van
@@ -746,7 +746,76 @@ function mld_list (pautfunction, params)
eDoorzet: eDoorzet,
eVerwerk: eVerwerk
};
return data;
}
function fnmultiActionEnabler()
{
/* Bij 1 melding lopen we toch de inline-enablers na */
if (mld_key > 0)
return {};
/* Niet multi */
var eEdit = false;
var eForward = false;
var eForwardTeam = false;
var eEmptyRequiredFields = false;
/* Fast check to see if we have anything to do with FO-BO handling (terug- of doorzetten) */
sql = "SELECT ''"
+ " FROM mld_disc_params"
+ " WHERE mld_disc_params_directklaar > 0 AND ROWNUM = 1";
oRs = Oracle.Execute(sql);
var hasAnyFOBOdiscs = !oRs.eof;
oRs.Close();
/* Hebben we minimaal 1 vakgroeptype die een groepering kan zijn en minimaal 1 vakgroeptype die kan groeperen? */
var sql = "SELECT ''"
+ " FROM ins_srtdiscipline"
+ " WHERE EXISTS"
+ " (SELECT ''"
+ " FROM ins_srtdiscipline"
+ " WHERE BITAND (ins_srtdiscipline_mldgroup, 1) = 1)"
+ " AND EXISTS"
+ " (SELECT ''"
+ " FROM ins_srtdiscipline"
+ " WHERE BITAND (ins_srtdiscipline_mldgroup, 2) = 2)";
var oRs = Oracle.Execute(sql);
var hasGroupable = !oRs.EoF;
oRs.Close();
/* Algehele autorisatie parameters voor snelle check */
var authparamsMLDFOF = user.checkAutorisation("WEB_MLDFOF", true);
var authparamsMLDBOF = user.checkAutorisation("WEB_MLDBOF", true);
var authparamsMLDBO3 = user.checkAutorisation("WEB_MLDBO3", true);
var authparamsMLDAFR = user.checkAutorisation("WEB_MLDAFR", true);
var hasAnyFOFWrite = authparamsMLDFOF && (authparamsMLDFOF.PRSwritelevel < 9 || authparamsMLDFOF.ALGwritelevel < 9);
var hasAnyBOFWrite = authparamsMLDBOF && (authparamsMLDBOF.PRSwritelevel < 9 || authparamsMLDBOF.ALGwritelevel < 9);
var hasAnyBO3Write = authparamsMLDBO3 && (authparamsMLDBO3.PRSwritelevel < 9 || authparamsMLDBO3.ALGwritelevel < 9);
var hasAnyAFRWrite = authparamsMLDAFR && (authparamsMLDAFR.PRSwritelevel < 9 || authparamsMLDAFR.ALGwritelevel < 9);
var eContinue = !S("mld_disable_continuation") && hasAnyFOFWrite;
var eVerwerk = S("mld_archive_by_gui") && hasAnyAFRWrite;
var eGroup = hasGroupable;
var eTerugzet = hasAnyFOBOdiscs && hasAnyBOFWrite;
var eDoorzet = hasAnyFOBOdiscs && hasAnyFOFWrite;
var eReject = hasAnyFOFWrite || hasAnyBOFWrite;
var eClose = hasAnyFOFWrite || hasAnyBOFWrite;
var eAccept = hasAnyBOFWrite || hasAnyBO3Write;
var data = { eEdit: eEdit,
eReject: eReject,
eClose: eClose,
eAccept: eAccept,
eContinue: eContinue,
eForward: eForward,
eForwardTeam: eForwardTeam,
eEmptyRequiredFields: eEmptyRequiredFields,
eGroup: eGroup,
eTerugzet: eTerugzet,
eDoorzet: eDoorzet,
eVerwerk: eVerwerk
};
return data;
}
@@ -1157,7 +1226,8 @@ function mld_list (pautfunction, params)
ID: "complainstable",
rowClass: fnrowClass,
rowData: fnrowData,
rowActionEnabler: (urole=="fo" || urole =="bo")?fnrowActionEnabler:null,
rowActionEnabler: (urole=="fo" || urole =="bo") ? fnrowActionEnabler : null,
multiActionEnabler: (urole=="fo" || urole =="bo") ? fnmultiActionEnabler : null,
flexModule: "MLD",
flexId: "mld_melding_key",
flexGroupId: "mld_stdmelding_key", // Kenmerken zijn ook op stdmelding niveau gedefinieerd

View File

@@ -144,6 +144,7 @@ function ResultsetTable(params)
this.keyColumn = null;
this.dblClick = null;
this.rowActionEnabler = null;
this.multiActionEnabler = null;
this.inlineDetails = null;
this.hasInlineDetails = null;
this.inlineDetailsChanged = null;
@@ -708,7 +709,6 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
anyMultiActions |= this.actions[i].multi;
}
// Eerst: maak <20><>n div met alle acties.
var hasActionsCol = 0;
var skip = 0;
@@ -732,6 +732,8 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
var aantalInline = 0;
for (var i = 0; i < this.actions.length; i++)
{
if (!S("inline_actions_mld") && !this.actions[i].isDefault)
continue;
if (this.actions[i].single === false) // triple '=' omdat undefined niet false mag zijn
continue; // niet ook nog inline
if (!this.actions[i].isDefault && !this.actions[i].onlyMulti)
@@ -747,10 +749,10 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
actionsDiv += val + this.actions[i].caption + "</span>";
}
hasInlineActions = aantalInline > 0;
html += "\n<div id='allactions_" + ID + "' class='allactions' style='display:none;z-index:13' hasActionsCol='"+hasActionsCol+"' >" + actionsDiv + "</div>";
html += "\n<script type='text/javascript'>"
html += "\n initActions('" + this.ID + "', "+useHamburger+")"
html += "</script>"
html += "\n<div id='allactions_" + ID + "' class='allactions' style='display:none;z-index:13' hasActionsCol='"+hasActionsCol+"' >" + actionsDiv + "</div>"
+ "\n<script type='text/javascript'>"
+ "\n initActions('" + this.ID + "', "+useHamburger+")"
+ "</script>";
}
html += startTable();
@@ -956,6 +958,22 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
{
appender = "\n<div id='multiactiondiv' style='float:left; visibility:hidden;'><span id='multilabel'>" + L("lcl_with_selected").format(0) + "</span>";
var multiActions = 0;
// Geen inline acties, dus ook geen rowEnabler, dus is okformulti ook nog niet bepaald, dan doen we dat hier
if (!S("inline_actions_mld") && multiActionEnabler)
{
var validateAction = multiActionEnabler();
for (var i=0; i < actions.length; i++)
{
if (!actions[i].okformulti && // No double check
(actions[i].multi && !(actions[i].onlyMulti || actions[i].single === false)) && // No unnecessary check
actions[i].enabler && validateAction && validateAction[actions[i].enabler]) // Check
{
actions[i].okformulti = true;
}
}
}
for (var i=0; i < actions.length; i++)
{
/////
@@ -977,7 +995,7 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
actions[i].caption + "\", " +
actions[i].multiOnce + ");" +
"FcltMgr.stopPropagation(event);' class='button footerbutton'>"+actions[i].caption+"</span>";
}
}
}
if (multiActions == 0)
appender += "<i style=\"padding-left: 9px\">" + L("lcl_no_multi_actions") + "</i>";