KFNS#38663 adding alg scoping to kennisbank items

svn path=/Website/trunk/; revision=33965
This commit is contained in:
2017-05-22 15:37:36 +00:00
parent 99661facf3
commit 9cc2c4ffe8
5 changed files with 80 additions and 83 deletions

View File

@@ -100,12 +100,12 @@ switch (req_info)
{
var loc_key = getQParamInt("loc_key", -1);
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
var level = getQParamInt("level", 2); // delete inline kennisbank vanaf [level] cascaded
var changed = getQParamInt("changed", 2);
var ins_disc_key = getQParamInt("ins_disc_key", -1); // vakgroep
var stdm_key = getQParamInt("stdm_key", -1);
var result = mld.faq_info(loc_key, alg_key_arr, ins_disc_key, stdm_key);
result.level = level;
var result = mld.faq_info(loc_key, alg_key_arr, ins_disc_key, stdm_key, changed);
result.changed = changed;
break;
}

View File

@@ -2718,11 +2718,11 @@ mld = {setmeldingstatus:
var filtSELECT = " , DECODE (sf.mld_stdmelding_key,"
+ " NULL, DECODE (sf.ins_discipline_key,"
+ " NULL, '', 'I'),"
+ " NULL, 'X', 'I'),"
+ " 'S') stdm_type "
+ " , DECODE (og.alg_onroerendgoed_keys,"
+ " NULL, DECODE (af.alg_locatie_key,"
+ " NULL, '', 'L'),"
+ " NULL, 'X', 'L'),"
+ " og.alg_type) alg_type ";
var filtFROM = " , alg_algfaq af"
@@ -2750,13 +2750,13 @@ mld = {setmeldingstatus:
filtWHERE += " AND (af.alg_locatie_key = " + loc_key
+ (changed == 2 ? ")" : " OR af.alg_locatie_key IS NULL)");
else
filtWHERE += " AND af.alg_locatie_key IS NULL";
filtWHERE += (changed > 2 ? "" : " AND af.alg_locatie_key IS NULL");
if (alg_key_arr.length && alg_key_arr.length > 0)
filtWHERE += " AND (af.alg_onroerendgoed_keys IN (" + alg_key_arr + ")"
+ (changed > 2 ? ")" : " OR af.alg_onroerendgoed_keys IS NULL)");
else
filtWHERE += (changed == 2 ? "" : " AND af.alg_onroerendgoed_keys IS NULL");
filtWHERE += " AND af.alg_onroerendgoed_keys IS NULL";
var sql = "SELECT ff.fac_faq_key, "
+ " fac_faq_question, "

View File

@@ -441,6 +441,7 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
readonly: (mld_key > 0 && !this_mld.canPlaatsChange),
filtercode: mld_melding.alg_level <= 2 ? null : "FAC", /*strict genomen alleen voor FE/FO, maar readonly maakt dit vanzelf goed toch? */
suppressEmpty: true,
escalateOnChUp: true,
eindlevel: (mld_melding.alg_level ? mld_melding.alg_level : 2), // Minimaal Locatie
cadSelect: true,
cadShowdiscfn: "cadShowdiscfn",

View File

@@ -448,17 +448,20 @@ function onChangeAlg(level, alg)
var stdm = $("#stdm").val();
var ins_disc = $("#disc").val();
if ((loc && loc > 0) || (ins_disc && ins_disc > 0))
if ((level == 2 && loc && loc > 0) ||
(level > 2 && alg && alg > 0))
{
$.getJSON("./get_mld_info_ajax.asp",
{ req_info: "faq_info",
loc_key: loc,
alg_key_arr: [alg],
level: level,
changed: level,
ins_disc_key: (ins_disc || -1),
stdm_key: stdm || -1 },
callback_faq_info);
}
else
show_fixed_faq(level, []);
}
var faq_info = {};
@@ -472,30 +475,33 @@ function callback_faq_info(data)
+ "?loc_key=" + data.loc_key
+ "&alg_key_arr=" + data.alg_key_arr.join(",")
+ "&stdm_key=" + data.stdm_key
+ "&ins_disc_key=" + data.ins_disc_key;
+ "&ins_disc_key=" + data.ins_disc_key
+ "&changed=" + data.changed;
FcltMgr.openModalDetail(url, L("lcl_mld_faq_stdmanswers"), { height: 200, width: 700, callback: mld_faq_list_callback } );
}
show_fixed_faq(data.level, data.fixed_faq);
show_fixed_faq(data.changed, data.fixed_faq);
}
function show_fixed_faq(level, data_fixed_faq)
function show_fixed_faq(changed, data_fixed_faq)
{
var $tbl = $("#mldFaq").find("table");
var stdm = ['I', 'S', 'X'];
var alg = [null, 'X', 'L', 'G', 'V', 'R'];
if (changed == 0 || changed == 1)
for (var a = 0; a <= 5; a++) {
$tbl.find("tr.faq_" + stdm[changed] + alg[a]).remove();
}
else // changed >= 2 && changed <= 5
for (var s = 0; s < 3; s++) {
for (var a = changed; a <= 5; a++) {
$tbl.find("tr.faq_" + stdm[s] + alg[a]).remove();
}
}
if (data_fixed_faq.length > 0)
{
var stdmLevel = data_fixed_faq[0].faq_type.substr(4,1);
if (stdmLevel != "S" && stdmLevel != "I")
stdmLevel = "";
if (!isNaN(level) && level >= 1 && level <= 5)
{
for (level; level <= 5; level++)
{
$tbl.find("tr.faq_"+stdmLevel+level).remove();
}
}
for (var i = 0; i < data_fixed_faq.length; i++)
{
var safequestion = $("<span>").text(data_fixed_faq[i].question).html().replace(/\n/g, "<br>");
@@ -513,19 +519,10 @@ function show_fixed_faq(level, data_fixed_faq)
}
$("#mldFaq").show();
}
else
if (!$tbl.find("tr").length)
{
for (level; level <= 5; level++)
{
$tbl.find("tr.faq_I"+level).remove();
$tbl.find("tr.faq_S"+level).remove();
$tbl.find("tr.faq_"+level).remove();
}
if (!$tbl.find("tr").length)
{
$tbl.empty();
$("#mldFaq").hide();
}
$tbl.empty();
$("#mldFaq").hide();
}
}
@@ -879,14 +876,14 @@ function onChangeStdMelding(stdmelding_key, txt, params)
{
var ins_disc = $("#disc").val();
var loc = $("#locatiekey").val() || -1;
if ((ins_disc && ins_disc != -1) ||
(loc && loc != -1))
var changed = 1; // onChangeVakgroep nog niet geimplementeerd.
if ((changed == 0 && ins_disc && ins_disc > 0) ||
(changed == 1 && stdmelding_key && stdmelding_key > 0))
{
var alg_key_arr = [];
if (loc > 0)
{
alg_key_arr.push(-1); // voor locatie
var bld = $("#gebouwkey").val();
if (bld && bld != -1)
alg_key_arr.push(bld);
@@ -901,11 +898,13 @@ function onChangeStdMelding(stdmelding_key, txt, params)
{ req_info: "faq_info",
loc_key: loc,
alg_key_arr: alg_key_arr.join(","),
level: 2,
changed: changed,
ins_disc_key: ins_disc,
stdm_key: stdmelding_key },
callback_faq_info);
}
else
show_fixed_faq(changed, []);
params = params || {};
if (stdmelding_key > 0)

View File

@@ -23,7 +23,8 @@ FCLTHeader.Requires({ plugins: ["jQuery"] })
var ins_disc_key = getQParamInt("ins_disc_key", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var loc_key = getQParamInt("loc_key", -1);
var alg_key_arr = getQParamInt("alg_key_arr", []);
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
var changed = getQParamInt("changed", 2);
var authparamsFOF = user.checkAutorisation("WEB_FAQFOF", true); // ziet (ook) FO-items
var authparamsUSE = user.checkAutorisation("WEB_FAQUSE", true); // ziet (ook) FE-items
@@ -73,58 +74,54 @@ user.auth_required_or_abort(authparamsUSE || authparamsFOF);
if (authparamsUSE)
faq_bits += 1;
var filtFROM = ""
var filtWHERE = "";
var filtSELECT = " , DECODE (sf.mld_stdmelding_key,"
+ " NULL, DECODE (sf.ins_discipline_key,"
+ " NULL, 'X', 'I'),"
+ " 'S') stdm_type "
+ " , DECODE (og.alg_onroerendgoed_keys,"
+ " NULL, DECODE (af.alg_locatie_key,"
+ " NULL, 'X', 'L'),"
+ " og.alg_type) alg_type ";
var filtFROM = " , alg_algfaq af"
+ " , mld_stdmeldingfaq sf"
+ " , alg_v_onroerendgoed og";
var filtWHERE = " AND ff.fac_faq_key = sf.fac_faq_key(+)"
+ " AND ff.fac_faq_key = af.fac_faq_key(+)"
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)";
if (ins_disc_key && ins_disc_key != -1)
{
filtFROM += " , mld_stdmeldingfaq sf";
filtWHERE += " AND ff.fac_faq_key = sf.fac_faq_key"
+ " AND sf.ins_discipline_key = " + ins_disc_key;
if (stdm_key && stdm_key != -1)
filtWHERE += " AND sf.mld_stdmelding_key = " + stdm_key;
else
filtWHERE += " AND sf.mld_stdmelding_key IS NULL";
}
filtWHERE += " AND (sf.ins_discipline_key = " + ins_disc_key
+ (changed == 0 ? ")" : " OR sf.ins_discipline_key IS NULL)");
else
{
filtWHERE += " AND NOT EXISTS ("
+ " SELECT ''"
+ " FROM mld_stdmeldingfaq sf"
+ " WHERE ff.fac_faq_key = sf.fac_faq_key"
+ " )";
}
filtWHERE += (changed == 1 ? "" : " AND sf.ins_discipline_key IS NULL");
if (stdm_key && stdm_key != -1)
filtWHERE += " AND (sf.mld_stdmelding_key = " + stdm_key
+ (changed == 1 ? ")" : " OR sf.mld_stdmelding_key IS NULL)");
else
filtWHERE += " AND sf.mld_stdmelding_key IS NULL";
if (loc_key && loc_key != -1)
{
filtFROM += " , alg_algfaq af";
filtWHERE += " AND ff.fac_faq_key = af.fac_faq_key"
+ " AND af.alg_locatie_key = " + loc_key;
if (!alg_key_arr.length) // check only loc
{
filtWHERE += " AND af.alg_onroerendgoed_keys IS NULL";
}
else
{
filtWHERE += " AND (af.alg_onroerendgoed_keys IN (" + alg_key_arr + ")";
if (inArray(-1, alg_key_arr))
filtWHERE += " OR af.alg_onroerendgoed_keys IS NULL";
filtWHERE += " )";
}
}
filtWHERE += " AND (af.alg_locatie_key = " + loc_key
+ (changed == 2 ? ")" : " OR af.alg_locatie_key IS NULL)");
else
{
filtWHERE += " AND NOT EXISTS ("
+ " SELECT ''"
+ " FROM alg_algfaq af"
+ " WHERE ff.fac_faq_key = af.fac_faq_key"
+ " )";
}
filtWHERE += (changed > 2 ? "" : " AND af.alg_locatie_key IS NULL");
if (alg_key_arr.length && alg_key_arr.length > 0)
filtWHERE += " AND (af.alg_onroerendgoed_keys IN (" + alg_key_arr + ")"
+ (changed > 2 ? ")" : " OR af.alg_onroerendgoed_keys IS NULL)");
else
filtWHERE += " AND af.alg_onroerendgoed_keys IS NULL";
var sql = "SELECT ff.fac_faq_key, "
+ " fac_faq_question, "
+ " fac_faq_answer, "
+ " fac_faq_url, "
+ " fac_faq_level "
+ filtSELECT
+ " FROM fac_faq ff"
+ filtFROM
+ " WHERE fac_faq_datum < SYSDATE"