FCLT#43129 Bolletjes en zo nu ook PDA en beter reageren op S("mld_melding_actiecode")

svn path=/Website/trunk/; revision=41307
This commit is contained in:
Jos Groot Lipman
2019-03-05 12:00:12 +00:00
parent 6092fbec46
commit fcac056e57
3 changed files with 99 additions and 67 deletions

View File

@@ -31,7 +31,7 @@ function note_save(mld_key, note, params)
]
// fenotes betekenis:
// 0 FE kan niet reageren, per notitie, default niet zichtbaar voor FE, raar als je dan ook S("mld_flag_on_fenote") zou hebben
// 0 FE kan niet reageren, per notitie, default niet zichtbaar voor FE, raar als je dan ook S("mld_melding_actiecode")==1 zou hebben
// 1 FE kan reageren, alle notities zichtbaar voor FE (transparantiemodus)
// 2 FE kan reageren, per notitie, default niet zichtbaar voor FE
// 3 FE kan reageren, per notitie, default wel zichtbaar voor FE
@@ -89,62 +89,65 @@ function note_save(mld_key, note, params)
var note_key = noteIns.sequences["mld_melding_note_key"];
Oracle.Execute(noteIns.sql);
if (mfe.haveOnlyFErights) // Frontend gebruiker
if (S("mld_melding_actiecode")==1) // doen we pingpong?
{
if (params.notifyBO && eigenMelding && (mld_info.actiecode & 1) != 1) // Misschien 'actie' naar BO
if (mfe.haveOnlyFErights) // Frontend gebruiker
{
var sql = "UPDATE mld_melding"
+ " SET mld_melding_actiecode = 1 + 128" // BO+attentie
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
shared.trackaction("MLDA2B", mld_key)
}
}
else if (zichtbaarFE) // Backoffice gebruiker
{
if ((mld_info.actiecode & 128) == 128)
{ // Altijd attentie er af
var sql = "UPDATE mld_melding"
+ " SET mld_melding_actiecode = BITAND(mld_melding_actiecode, 255 - 128)"
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
}
if (params.notifyFE)
{
// Notificatie (MLDNOT) indien notitie zichtbaar is voor FE.
// (tracking ervan is overkill: de notitie zelf is eigenlijk tracking)
// 'Notitie bij {0}: {1}'
var txt = L("lcl_mld_is_mldnotetrack").format((mld_info.prefix||"") + mld_key, note);
var txt = txt.split("\n")[0].split("\r")[0]; // Altijd alleen eerste regel
if (txt.length > 80)
txt = txt.substr(0, 80);
txt = txt + "...";
Oracle.Execute("BEGIN fac.putnotificationsrtprio("
+ "NULL, "
+ mld_info.melder_key
+ ", 'MLDNOT', "
+ mld_key
+ ", " + safe.quoted_sql(txt)
+ ", NULL, NULL, NULL, NULL, 2, NULL); END;");
}
if (S("mld_flag_on_fenote") > 0 && params.action2FE && (mld_info.actiecode & 2) != 2) // Misschien actie naar FE
{
var sql = "UPDATE mld_melding"
+ " SET mld_melding_actiecode = 2" // Actie stond er nog niet en gaat naar FE
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
shared.trackaction("MLDA2M", mld_key)
}
else // Misschien naar de backoffice zetten?
{
if (!params.action2FE && (mld_info.actiecode & 1) != 1)
if (params.notifyBO && eigenMelding && (mld_info.actiecode & 1) != 1) // Misschien 'actie' naar BO
{
var sql = "UPDATE mld_melding"
+ " SET mld_melding_actiecode = 1" // Actie nu bij BO. Zelf gedaan dus geen attentie
+ " SET mld_melding_actiecode = 1 + 128" // BO+attentie
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
shared.trackaction("MLDA2B", mld_key);
shared.trackaction("MLDA2B", mld_key)
}
}
else if (zichtbaarFE) // Backoffice gebruiker
{
if ((mld_info.actiecode & 128) == 128)
{ // Altijd attentie er af
var sql = "UPDATE mld_melding"
+ " SET mld_melding_actiecode = BITAND(mld_melding_actiecode, 255 - 128)"
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
}
if (params.notifyFE)
{
// Notificatie (MLDNOT) indien notitie zichtbaar is voor FE.
// (tracking ervan is overkill: de notitie zelf is eigenlijk tracking)
// 'Notitie bij {0}: {1}'
var txt = L("lcl_mld_is_mldnotetrack").format((mld_info.prefix||"") + mld_key, note);
var txt = txt.split("\n")[0].split("\r")[0]; // Altijd alleen eerste regel
if (txt.length > 80)
txt = txt.substr(0, 80);
txt = txt + "...";
Oracle.Execute("BEGIN fac.putnotificationsrtprio("
+ "NULL, "
+ mld_info.melder_key
+ ", 'MLDNOT', "
+ mld_key
+ ", " + safe.quoted_sql(txt)
+ ", NULL, NULL, NULL, NULL, 2, NULL); END;");
}
if (params.action2FE && (mld_info.actiecode & 2) != 2) // Misschien actie naar FE
{
var sql = "UPDATE mld_melding"
+ " SET mld_melding_actiecode = 2" // Actie stond er nog niet en gaat naar FE
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
shared.trackaction("MLDA2M", mld_key)
}
else // Misschien naar de backoffice zetten?
{
if (!params.action2FE && (mld_info.actiecode & 1) != 1)
{
var sql = "UPDATE mld_melding"
+ " SET mld_melding_actiecode = 1" // Actie nu bij BO. Zelf gedaan dus geen attentie
+ " WHERE mld_melding_key = " + mld_key;
Oracle.Execute(sql);
shared.trackaction("MLDA2B", mld_key);
}
}
}
}

View File

@@ -762,7 +762,7 @@ if (mld_key > 0)
<textarea id='note' name='note' class='fldtxt' rows='4' cols='80' maxlength='4000'><%=safe.textarea(note_oms)%></textarea>
<%
// fenotes betekenis:
// 0 FE kan niet reageren, per notitie, default niet zichtbaar voor FE, raar als je dan ook S("mld_flag_on_fenote") zou hebben
// 0 FE kan niet reageren, per notitie, default niet zichtbaar voor FE, raar als je dan ook S("mld_melding_actiecode")==1 zou hebben
// 1 FE kan reageren, alle notities zichtbaar voor FE (transparantiemodus)
// 2 FE kan reageren, per notitie, default niet zichtbaar voor FE
// 3 FE kan reageren, per notitie, default wel zichtbaar voor FE
@@ -789,7 +789,7 @@ if (mld_key > 0)
}
//actie bij melder zetten
if (note_key == -1 && !eigenMelding && S("mld_flag_on_fenote") && mld_info.fenotes > 0)
if (note_key == -1 && !eigenMelding && S("mld_melding_actiecode")==1 && mld_info.fenotes > 0)
{
var actie_bij_melder = (mld_info.actiecode & 2) == 2; // stond actie al bij melder?
if (actie_bij_melder)
@@ -815,7 +815,7 @@ if (mld_key > 0)
else // Frontend mag actie ook zelf houden (in plaats van actie naar backoffice)
{
var actie_bij_BO = (mld_info.actiecode & 1) == 1; // stond actie al bij backoffice? FE mag nooit terugpakken
if (!actie_bij_BO)
if (!actie_bij_BO && S("mld_melding_actiecode")==1)
{
Response.Write("<div class='noteoptions'>");
CHECKBOX("fldcheck", "notifyBO", true); // default altijd actie naar BO

View File

@@ -48,6 +48,7 @@ var sql = "";
var action = "../mld/mld_edit_note_save.asp?urole="+urole+"&mld_key=" +pkey;
var mld_info = mld.mld_melding_info(pkey);
var meldernaam = new Perslid(mld_info.melder_key).naam();
lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY");
pnote.subject = mld_info.prefix + pkey;
pnote.fenotes = mld_info.fenotes;
@@ -320,17 +321,31 @@ var sql = "";
window.location.href = "<%=back_reference() + '&notitie=1'%>";
}
}
function visToggler(deze)
{
var vis = $(deze).prop("checked");
$("#notioption,#actionoption").css("display", vis ? "inline":"none");
if (vis)
$('#action2FE,#notifyFE').prop('checked', <%=S("mld_note_default_notifyFE")%> == 1).checkboxradio("refresh");
else
$('#action2FE,#notifyFE').prop('checked', false).checkboxradio("refresh");
}
function notiToggler(deze)
{
var noti = $(deze).prop("checked");
$("#notioption").css("display", noti ? "inline":"none");
if (noti)
{
var v_actie_bij_melder = <%=(S("mld_note_default_notifyFE") == 1? 1 : 0)%> == 1;
$("#notifyFE").prop("checked", v_actie_bij_melder).checkboxradio("refresh");
}
else
$("#notifyFE").prop("checked", false).checkboxradio("refresh");
<% if (!(mld_info.actiecode & 2)) { %>
var noti = $(deze).prop('checked');
if (!noti)
$('#action2FE').prop('checked', false).checkboxradio("refresh");
<% } %>
}
function actionToggler(deze)
{
<% if (!(mld_info.actiecode & 2)) { %>
var action = $(deze).prop('checked');
if (action)
$('#notifyFE').prop('checked', true).checkboxradio("refresh");
<% } %>
}
</script>
<%
@@ -348,18 +363,32 @@ var sql = "";
if (!pnote.eigenMelding && pnote.fenotes != 1) // same for add and edit, difference is made in functions note_add and note_change
{
// keuze voor wel of niet zichtbaar FE
CHB_FIELD("zichtbaarFE", "<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", pnote.zichtbaar, {disabled: false, onclick: "notiToggler(this)"});
CHB_FIELD("zichtbaarFE", "<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", pnote.zichtbaar, {disabled: false, onclick: "visToggler(this)"});
}
else
CHB_FIELD("zichtbaarFE", "<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", pnote.zichtbaar, {disabled: true, onclick: "notiToggler(this)"});
CHB_FIELD("zichtbaarFE", "<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", pnote.zichtbaar, {disabled: true, onclick: "visToggler(this)"});
//actie bij melder zetten
if (!pnote.eigenMelding && S("mld_flag_on_fenote") && pnote.fenotes > 0) // same for add and edit, difference is made in functions note_add and note_change
if (!pnote.eigenMelding && S("mld_melding_actiecode")==1 && pnote.fenotes > 0) // same for add and edit, difference is made in functions note_add and note_change
{
var actie_bij_melder = (mld_info.actiecode & 2) == 2; // stond actie al bij melder?
if (actie_bij_melder)
{
var lbl = L("lcl_mld_latenbij_FE").format(meldernaam);
}
else
{
actie_bij_melder = pnote.zichtbaar && S("mld_note_default_notifyFE")==1;
var lbl = L("lcl_mld_toekennen_FE").format(meldernaam);
}
// We doen aan pingpongen
var actie_bij_melder = (pnote.zichtbaar && S("mld_note_default_notifyFE")==1 ? 1 : 0);
Response.Write("<span id='notioption'"+(pnote.zichtbaar? "style='display:inline'" :" style='display:none'")+">");
CHB_FIELD("notifyFE", "<nobr>" + L("lcl_mld_toekennen_FE") + "</nobr>", actie_bij_melder, {disabled: false});
CHB_FIELD("notifyFE", "<nobr>" + L("lcl_mld_notify_FE").format(meldernaam) + "</nobr>", actie_bij_melder, { onclick: "notiToggler(this)"});
Response.Write("</span>");
Response.Write("<span id='actionoption' style='{0}'>".format(pnote.zichtbaar? "display:inline":"display:none"));
CHB_FIELD("action2FE", lbl, actie_bij_melder, { onclick: "actionToggler(this)" });
Response.Write("</span>");
}
}