268 lines
12 KiB
Plaintext
268 lines
12 KiB
Plaintext
<%@ language="javascript"%>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: mld_show_note.asp (wellicht beter zou zijn mld_notes_list.asp)
|
|
Description: Toont een overzicht van de notes die aan het filter voldoen
|
|
Dit zal hoofdzakelijk zijn als Behorend bij een bepaalde melding
|
|
maar kan ook "open" zijn (vanuit het menu). In dat geval wordt
|
|
er nog wat identificerende meldingsinfo getoond.
|
|
Parameters: mld_key
|
|
|
|
Note: urole wordt alleen in overzichtmode gebruikt, voor als je naar mld_edit gaat. Maar zelfs dat lijkt me niet noodzakelijk
|
|
|
|
// TODO: controleren of ik read-autorisatie heb voor deze melding (als mld_key != -1)
|
|
// toevoeg knop ook conditioneel maken aan de write-autorisatie hiervoor, en
|
|
// danwel de query beperken tot de melding waarvoor ik MLDFOF of MLDBOF rechten heb
|
|
// (dat dan als mld_key wel -1 is).
|
|
|
|
*/%>
|
|
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<!--#include file="../Shared/status.inc"-->
|
|
<!-- #include file="./mld.inc" -->
|
|
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
|
<!-- #include file="../Shared/discx3d.inc" -->
|
|
<%
|
|
|
|
FCLTHeader.Requires({js: ["../mld/mld_list.js"]})
|
|
|
|
var mld_key = getQParamInt("mld_key", -1); // vanuit het menu hebben we geen mld_key
|
|
var urole = getQParamSafe("urole", "fe");
|
|
var embedded = getQParamInt("embedded", -1);
|
|
var outputmode = getQParamInt("outputmode", 0);
|
|
var showall = getQParamInt("showall", 0) == 1;
|
|
var tracking = getQParamInt("tracking", 1) == 1; // tracking erbij tonen? Onderdrukken met 0
|
|
|
|
|
|
%>
|
|
<html>
|
|
<head>
|
|
<% FCLTHeader.Generate({outputmode: outputmode}); %>
|
|
<script>
|
|
function persoonDetails(evt, perslid_key)
|
|
{
|
|
FcltMgr.stopPropagation(evt);
|
|
FcltMgr.openDetail("appl/fac/fac_user.asp?prs_key=" + perslid_key);
|
|
}
|
|
function mld_notechange(mld_note_key)
|
|
{
|
|
if (FcltMgr.startEdit(window))
|
|
window.location.href = "mld_edit_note.asp?urole=<%=urole%>&mld_key=<%=mld_key%>" + (mld_note_key?"¬e_key="+mld_note_key:"") + "&embedded=<%=embedded%>"
|
|
}
|
|
<% if (mld_key == -1)
|
|
{ %>
|
|
function mld_edit(row)
|
|
{
|
|
$(row).addClass('dirty');
|
|
var mld_key = row.getAttribute("ROWKEY");
|
|
url = "appl/mld/mld_melding.asp?urole=<%=urole%>&mld_key=" + mld_key;
|
|
FcltMgr.openDetail(url, L("lcl_mld_complain") + ' ' + mld_key);
|
|
}
|
|
<% } %>
|
|
|
|
</script>
|
|
</head>
|
|
|
|
<body id="listbody">
|
|
<%
|
|
function fnPerslidNaamFull(oRs)
|
|
{
|
|
if (outputmode != 0)
|
|
return safe.html(oRs("prs_perslid_naam_friendly").Value);
|
|
|
|
if (oRs("prs_perslid_key").Value == user_key) {
|
|
var html = "<span class='self'>"
|
|
+ safe.html(oRs("prs_perslid_naam_friendly").Value)
|
|
+ "</span>";
|
|
} else {
|
|
var html = "<span class='details' onclick='persoonDetails(event,"+ oRs("prs_perslid_key").Value +")'>"
|
|
+ safe.html(oRs("prs_perslid_naam_friendly").Value)
|
|
+ "</span>";
|
|
}
|
|
return html;
|
|
}
|
|
function fnZichtbaar(oRs)
|
|
{
|
|
var html = "";
|
|
if (oRs("mld_melding_note_flag").Value == 1)
|
|
html = "<span class='femark' title='" + safe.htmlattr(L("lcl_mld_zichtbaar_FE")) + "'><i class='fa fa-unlock'></i></span>";
|
|
|
|
return html;
|
|
}
|
|
function fnrowClass(oRs)
|
|
{
|
|
var rclass = ""
|
|
if (oRs("prs_perslid_key").Value == user_key)
|
|
rclass = rclass + "self";
|
|
if (oRs("fac_srtnotificatie_code").Value)
|
|
rclass = rclass + " trtrack";
|
|
else
|
|
rclass = rclass + " trnote";
|
|
return rclass;
|
|
}
|
|
function fnOmschrijving(oRs)
|
|
{
|
|
var html = "";
|
|
if (oRs("mld_melding_note_omschrijving").Value)
|
|
html = safe.mldlinkhtml(safe.html(oRs("mld_melding_note_omschrijving").Value));
|
|
else if (oRs("fac_srtnotificatie_code").Value)
|
|
html = status.getsrtnotificatietext(oRs("fac_srtnotificatie_code").Value);
|
|
|
|
return html;
|
|
}
|
|
|
|
buttons = [];
|
|
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
|
|
|
|
if (mld_key > 0)
|
|
{ // Je kunt alleen een notitie toevoegen als je binnen een bekende melding bent. Manual allowed
|
|
var mfe = mld.func_enabled_melding (mld_key);
|
|
// Heb ik rechten om notities te zien
|
|
user.auth_required_or_abort(mfe.canReadNotes);
|
|
|
|
var mld_melding = mld.mld_melding_info(mld_key);
|
|
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
|
|
|
|
if (mfe.canWriteNotes)
|
|
{
|
|
var sql = "SELECT mld_melding_note_key, prs_perslid_key"
|
|
+ " FROM mld_melding_note"
|
|
+ " WHERE mld_melding_key =" + mld_key
|
|
+ " ORDER BY mld_melding_note_aanmaak DESC";
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
if (user.isCollega(oRs("prs_perslid_key").Value))
|
|
{
|
|
buttons.push({title: L("lcl_change"), icon: "wijzigen.png", action: "mld_notechange(" + oRs("mld_melding_note_key").Value + ")", id: "bedit_mld_note"});
|
|
}
|
|
}
|
|
oRs.Close();
|
|
buttons.push({title: L("lcl_add"), icon: "plus.png", action:"mld_notechange()", id:"bchange_mld_note" });
|
|
}
|
|
|
|
// Zelfde query in mld_edit_note.asp
|
|
sql = "SELECT n.mld_melding_note_aanmaak"
|
|
+ ", n.mld_melding_note_key"
|
|
+ ", pf.prs_perslid_key"
|
|
+ ", pf.prs_perslid_naam_friendly"
|
|
+ ", n.mld_melding_note_omschrijving"
|
|
+ ", mld_melding_note_flag"
|
|
+ ", NULL fac_srtnotificatie_code"
|
|
+ " FROM mld_melding_note n, prs_v_perslid_fullnames_all pf"
|
|
+ " WHERE n.prs_perslid_key = pf.prs_perslid_key (+)"
|
|
+ " AND n.mld_melding_key = " + mld_key
|
|
+ (mfe.haveOnlyFErights? " AND mld_melding_note_flag = 1" : "");
|
|
var sqls = [sql];
|
|
|
|
// tracking info erbij?
|
|
if ( S("mld_merge_notes_and_tracking") == 1 && tracking && !(S("mld_hide_fe_tracking") && urole=="fe"))
|
|
{
|
|
var sql = "SELECT tr.fac_tracking_datum"
|
|
+ " , tr.fac_tracking_key"
|
|
+ " , tr.prs_perslid_key"
|
|
+ " , pf.prs_perslid_naam_friendly"
|
|
+ " , tr.fac_tracking_oms"
|
|
+ " , NULL mld_melding_note_flag"
|
|
+ " , str.fac_srtnotificatie_code"
|
|
+ " FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf"
|
|
+ " WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key"
|
|
+ " AND tr.prs_perslid_key = pf.prs_perslid_key (+)"
|
|
+ " AND str.fac_srtnotificatie_code <> 'MLDNOT'" // beetje dubbelop
|
|
+ " AND (tr.fac_tracking_refkey = " + mld_key + " AND str.fac_srtnotificatie_xmlnode IN ('melding'))";
|
|
sqls.push(sql)
|
|
}
|
|
sql = "SELECT * FROM ("+ sqls.join(" UNION ") + ") ORDER BY 1"
|
|
+ (S("mld_note_sort_ascending") == 0 ? " DESC " : "");
|
|
}
|
|
else
|
|
{ // Geen mld_key dus kom vanuit het menu.
|
|
// Heb ik de rechten om de notities te zien
|
|
var pautfunction = (urole == "fo")? "WEB_MLDFOF" : "WEB_MLDBOF";
|
|
var authparams = user.checkAutorisation(pautfunction); // Dit is ongeacht de melding
|
|
|
|
var add_prs_restrict = prshasrestrict(pautfunction);
|
|
sql = "SELECT n.mld_melding_note_aanmaak"
|
|
+ ", n.mld_melding_note_key"
|
|
+ ", pf.prs_perslid_naam_friendly"
|
|
+ ", pf.prs_perslid_key"
|
|
+ ", n.mld_melding_note_omschrijving"
|
|
+ ", mld_melding_note_flag"
|
|
+ ", " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
|
|
+ ", n.mld_melding_key"
|
|
+ ", NULL fac_srtnotificatie_code"
|
|
+ " FROM mld_melding_note n"
|
|
+ ", prs_v_perslid_fullnames_all pf"
|
|
+ ", prs_perslid p"
|
|
+ ", mld_melding m"
|
|
+ ", mld_stdmelding sm"
|
|
+ ", mld_discipline md"
|
|
+ ", alg_v_allonrgoed_gegevens v"
|
|
+ ", alg_locatie l"
|
|
+ ", alg_district di"
|
|
+ ((add_prs_restrict)? ", prs_v_afdeling_boom b" : "")
|
|
+ " WHERE m.mld_alg_locatie_key = l.alg_locatie_key(+)"
|
|
+ " AND l.alg_district_key = di.alg_district_key(+)"
|
|
+ " AND m.mld_alg_onroerendgoed_keys = v.alg_onroerendgoed_keys(+)"
|
|
+ " AND n.prs_perslid_key = pf.prs_perslid_key (+)"
|
|
+ " AND m.prs_perslid_key = p.prs_perslid_key"
|
|
+ " AND n.mld_melding_key = m.mld_melding_key"
|
|
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key"
|
|
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
|
|
+ (add_prs_restrict? " AND p.prs_afdeling_key = b.prs_afdeling_key" : "")
|
|
|
|
sql = discx3d (sql,
|
|
"md.ins_discipline_key",
|
|
"di.alg_regio_key",
|
|
"l.alg_district_key",
|
|
"l.alg_locatie_key",
|
|
"v.alg_gebouw_key",
|
|
"v.alg_verdieping_key",
|
|
"v.alg_ruimte_key",
|
|
"b.prs_bedrijf_key",
|
|
"b.prs_afdeling_key",
|
|
pautfunction,
|
|
"", // geen disc filter
|
|
2) // algprsmode?
|
|
+ " ORDER BY mld_melding_note_aanmaak "
|
|
+ (S("mld_note_sort_ascending") == 0 ? " DESC " : "");
|
|
}
|
|
|
|
|
|
var rst = new ResultsetTable({ sql:sql,
|
|
keyColumn: (mld_key == -1)? "mld_melding_key" : "mld_melding_note_key",
|
|
ID: "notestable",
|
|
buttons: buttons,
|
|
title: (mld_key == -1 || S("mld_merge_notes_and_tracking") == 0 ? L("lcl_mld_frame_notes"): L("lcl_mld_frame_trackandnotes")),
|
|
rowClass: fnrowClass,
|
|
outputmode: outputmode,
|
|
showAll: showall,
|
|
emptySetString : L("lcl_mld_note_emptyset")
|
|
});
|
|
|
|
rst.addColumn(new Column({caption: L("lcl_date"), content: "mld_melding_note_aanmaak", datatype:"date", prettydate: true, nowrap: true}));
|
|
rst.addColumn(new Column({caption: L("lcl_time"), content: "mld_melding_note_aanmaak", datatype:"time"}));
|
|
if (mld_key > 0 && !mfe.haveOnlyFErights)
|
|
rst.addColumn(new Column({caption: "<i class='fa fa-lock'></i>", title: L("lcl_mld_zichtbaar_FE"), content: fnZichtbaar}));
|
|
rst.addColumn(new Column({caption: L("lcl_mld_changedby"), content: fnPerslidNaamFull}));
|
|
if (mld_key == -1) {
|
|
rst.addColumn(new Column({caption: L("lcl_mld_number"), content: "mld_melding_key"}));
|
|
rst.addColumn(new Column({caption: L("lcl_vakgroup"), content: "ins_discipline_omschrijving"}));
|
|
}
|
|
|
|
rst.addColumn(new Column({caption: L("lcl_mld_note"), content: fnOmschrijving, mldlink: true }));
|
|
// rst.addColumn(new Column({caption: L("lcl_mld_note"), content: "mld_melding_note_omschrijving"}));
|
|
|
|
// als ik in een contextloos overzicht zit, kan ik naar de edit van de Melding (niet van de note!)
|
|
// Moet ik wel schrijfrechten hebben ook (TODO)
|
|
if (mld_key == -1) {
|
|
rst.addAction({ action: "mld_edit", caption: L("lcl_edit"), isDefault: true } );
|
|
}
|
|
var cnt = rst.processResultset();
|
|
%>
|
|
</body>
|
|
</html>
|