Files
Facilitor/APPL/MLD/mld_show_note.asp
Jos Groot Lipman b670369840 FSN#35094 Opfrissen icon-set font-awesome
svn path=/Website/trunk/; revision=31579
2016-11-21 08:08:39 +00:00

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?"&note_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>