600 lines
26 KiB
Plaintext
600 lines
26 KiB
Plaintext
<%@ language="javascript"%>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: mld_show_note2.asp
|
|
Description: Nieuwe notities versie.
|
|
Betere layout, altijd een invulveld
|
|
Parameters: mld_key (altijd verplicht hier)
|
|
|
|
Note: Nu kan iedereen hier zijn, FE of FOBO. FE mag de interne notes niet zien, let daarop.
|
|
|
|
*/
|
|
|
|
var mld_key = getQParamInt("mld_key"); // altijd verplicht mld_key
|
|
var LOCKED_USER_OK = { "xmlnode": "melding", "key": mld_key };
|
|
%>
|
|
|
|
<!-- #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 urole = getQParamSafe("urole", "fe");
|
|
var outputmode = getQParamInt("outputmode", 0);
|
|
var tracking = getQParamInt("tracking", (urole=="fe"?0:1)) == 1; // tracking erbij tonen? Onderdrukken met 0
|
|
var tmp_note = getQParam("tmp_note", "");
|
|
var parent_reload = getQParamInt("parent_reload", 0);
|
|
|
|
var note_key = getQParamInt("note_key", -1);
|
|
var mld_info = mld.mld_melding_info(mld_key);
|
|
var stdm_info = mld.mld_stdmeldinginfo(mld_info.stdm);
|
|
|
|
var verynew = getQParamInt("verynew", 0) == 1;
|
|
|
|
lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY");
|
|
var mfe = mld.func_enabled_melding (mld_key);
|
|
// Heb ik rechten om notities te zien
|
|
user.auth_required_or_abort(mfe.canReadNotes);
|
|
|
|
var eigenMelding = user_key == mld_info.melder_key || user.isCollega(mld_info.melder_key);
|
|
var afgehandeld = (mld_info.mld_status == 1 || mld_info.mld_status == 5 || mld_info.mld_status == 6);
|
|
var timestamp_notes = new Date();
|
|
|
|
var kenmerk_key_arr = [];
|
|
var srtkenm_oms_arr = [];
|
|
var multipleBijlagenTypes = false;
|
|
if (mld_key > 0)
|
|
{
|
|
// Zijn er een bijlage kenmerken?
|
|
var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["mkm.mld_kenmerk_volgnummer < 800",
|
|
"(mkm.mld_kenmerk_verplicht IS NULL OR mkm.mld_kenmerk_verplicht=0)",
|
|
"msk.mld_srtkenmerk_kenmerktype = 'M'"]}
|
|
);
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.eof)
|
|
{
|
|
kenmerk_key_arr.push(oRs("mld_kenmerk_key").Value);
|
|
srtkenm_oms_arr.push(oRs("mld_srtkenmerk_omschrijving").Value);
|
|
|
|
oRs.moveNext();
|
|
if (!multipleBijlagenTypes && !oRs.eof)
|
|
multipleBijlagenTypes = true;
|
|
}
|
|
oRs.Close();
|
|
}
|
|
|
|
%>
|
|
<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.mayEdit(window))
|
|
{
|
|
window.location.href = "mld_show_note2.asp?urole=<%=urole%>&mld_key=<%=mld_key%>¬e_key="+mld_note_key + "&tracking=<%=tracking?1:0%>";
|
|
}
|
|
}
|
|
function note_submit()
|
|
{
|
|
if ($.trim($("#note").val()) == "")
|
|
return false;
|
|
|
|
var url = $("form[name=u2]")[0].action;
|
|
$.post($("form[name=u2]")[0].action,
|
|
$("[name=u2]").serialize(),
|
|
FcltCallbackAndThen(note_submit_callback),
|
|
"json");
|
|
return true; // disabled button ook
|
|
}
|
|
function note_submit_callback(json)
|
|
{
|
|
if (window.noteediting && FcltMgr.stopEdit(window))
|
|
{
|
|
window.noteediting = false;
|
|
}
|
|
if (json.canAccept && window.parent.mldFrame.mld_accept)
|
|
{
|
|
FcltMgr.confirm(L("lcl_mld_accept_3"),
|
|
{
|
|
fncancel: function() {
|
|
window.location.href = "../mld/mld_show_note2.asp?urole=<%=urole%>&mld_key=<%=mld_key%>&tracking=<%=tracking?1:0%>";
|
|
<% if (parent_reload == 1)
|
|
{ %>
|
|
window.parent.FcltMgr.reload();
|
|
<% } %>
|
|
}
|
|
},
|
|
function() {
|
|
window.parent.mldFrame.mld_accept("<%=stdm_info.doublecheck%>", 1);
|
|
}
|
|
);
|
|
}
|
|
else
|
|
{
|
|
window.location.href = "mld_show_note2.asp?urole=<%=urole%>&mld_key=<%=mld_key%>&tracking=<%=tracking?1:0%>";
|
|
<% if (parent_reload == 1)
|
|
{ %>
|
|
window.parent.FcltMgr.reload();
|
|
<% } %>
|
|
}
|
|
}
|
|
function doPrint()
|
|
{
|
|
FcltMgr.windowopen("./mld_show_note.asp?urole=<%=urole%>&mld_key=<%=mld_key%>&outputmode=1");
|
|
}
|
|
|
|
function Upload(index)
|
|
{
|
|
index = index || 0;
|
|
var url = [];
|
|
<%
|
|
for (var i = 0; i < kenmerk_key_arr.length; i++)
|
|
{ %>
|
|
url[<%=i%>] = "<%=protectQS.create("../Shared/BijlagenForm.asp?module=MLD&niveau=M&multi=1&key=" + mld_key + "&kenmerk_key=" + kenmerk_key_arr[i])%>";
|
|
<% }
|
|
if (kenmerk_key_arr.length)
|
|
{ %>
|
|
var params = {callback: UploadCallback};
|
|
FcltMgr.openModalDetail(url[index], L("lcl_appendixes"), params );
|
|
<% } %>
|
|
}
|
|
|
|
function UploadCallback()
|
|
{
|
|
var params = {};
|
|
if ($("#note").val() != "")
|
|
params.appendurl = "tmp_note=" + $("#note").val() + "&parent_reload=1";
|
|
FcltMgr.reload(params);
|
|
}
|
|
|
|
function notiToggler(deze)
|
|
{
|
|
var noti = $(deze).prop('checked');
|
|
$('#notioption').css('display', noti ? "inline":"none");
|
|
if (noti)
|
|
$('#notifyFE').prop('checked', <%=S("mld_note_default_notifyFE") == 1? 1 : 0%> == 1);
|
|
else
|
|
$('#notifyFE').prop('checked', false);
|
|
}
|
|
|
|
function toggleDropdown()
|
|
{
|
|
$('li.byHamburger').toggleClass('hidden', true);
|
|
$('li.byDropdown').toggleClass('hidden');
|
|
FcltMgr.resized();
|
|
}
|
|
|
|
var note_key = <%=note_key%>;
|
|
$(function () {
|
|
|
|
window.noteediting = false;
|
|
if (note_key > -1 && FcltMgr.startEdit(window))
|
|
{
|
|
window.noteediting = true;
|
|
}
|
|
|
|
$('textarea').autogrow();
|
|
// Let op: scrollen is complexer dan je denkt. Ons huidige document heeft
|
|
// helemaal geen scrollbars, die zijn van de parent-IFrame!
|
|
<% if (!verynew && getQParamInt("autoscroll", 0) == 1) { %>
|
|
window.setTimeout(function() { $('#note').focus(); }, 1);
|
|
window.setTimeout('parent.scrollBy(0,$(\'#note\').height() + $(\'#note_submit\').height())', 1);
|
|
<% } %>
|
|
|
|
$(window).on("beforeunload", function(){
|
|
if (window.noteediting)
|
|
{
|
|
FcltMgr.stopEdit(window);
|
|
}
|
|
});
|
|
|
|
$("#note").keyup(function ()
|
|
{
|
|
if (note_key == -1 && $("#note").val() == "" && window.noteediting)
|
|
{
|
|
if (FcltMgr.stopEdit(window))
|
|
{
|
|
window.noteediting = false;
|
|
}
|
|
}
|
|
else if (!window.noteediting && (note_key > -1 || $("#note").val() != ""))
|
|
{
|
|
if (FcltMgr.startEdit(window))
|
|
{
|
|
window.noteediting = true;
|
|
}
|
|
}
|
|
});
|
|
|
|
$("span.notetoggler").click(function ()
|
|
{
|
|
$(this).toggleClass("open");
|
|
$(this).prev().toggleClass("open");
|
|
FcltMgr.resized();
|
|
// ...meer/...minder toggle
|
|
if ($(this).hasClass("open"))
|
|
$(this).html("<%=L('lcl_rs_truncate')%>");
|
|
else
|
|
$(this).html("<%=L('lcl_rs_truncated')%>");
|
|
});
|
|
|
|
var timerID=null;
|
|
function delayed(delay, fn)
|
|
{
|
|
if (window.timerID)
|
|
clearTimeout(window.timerID);
|
|
window.timerID = setTimeout(fn, delay);
|
|
}
|
|
function doFilter(deze)
|
|
{
|
|
var deze = $("#autofilter");
|
|
var valThis = deze.val().toLowerCase();
|
|
$('#mldHistorieList table.fcltblocktab>tbody>tr.mldhandlingdiv,tr.mldhandlinghead').each(function(){
|
|
var text = $(this).text().toLowerCase();
|
|
var moretext = ($(this).find("span.rsTruncmore").attr('resttxt')||"").toLowerCase();
|
|
$(this).toggle(text.indexOf(valThis) > -1 || moretext.indexOf(valThis) > -1);
|
|
});
|
|
}
|
|
|
|
if ($('#mldHistorieList table.fcltblocktab>tbody>tr').length > 12)
|
|
{
|
|
$("#mldHistorie .fcltblockhead").append("<input id='autofilter' type='text' placeholder='"+L("lcl_autofilter")+"'>");
|
|
$("#autofilter")
|
|
.click(function (e) {e.stopPropagation()})
|
|
.keyup(function(e){
|
|
if (e.which == 27) {
|
|
$("#autofilter").val("");
|
|
}
|
|
delayed(200, doFilter);
|
|
});
|
|
}
|
|
|
|
<% if (multipleBijlagenTypes)
|
|
{ %>
|
|
$("div.hambdropdown.bijlagen").appendTo($("#mldHistorie div#buttons:first > ul"));
|
|
<% } %>
|
|
});
|
|
</script>
|
|
</head>
|
|
|
|
<body id="showbody">
|
|
<%
|
|
function fnPerslidNaamFull(oRs)
|
|
{
|
|
if (!oRs("prs_perslid_key").Value) return "";
|
|
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;
|
|
}
|
|
|
|
var buttons = [];
|
|
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.stopEdit(window);FcltMgr.reload()"});
|
|
|
|
if (urole=="fo" || urole=="bo")
|
|
buttons.push({ icon: "print.png", title: L("lcl_print"), action: "doPrint()" });
|
|
|
|
if (kenmerk_key_arr.length == 1)
|
|
buttons.push({ icon: "attach.png", title: L("lcl_appendixes"), action: "Upload()" });
|
|
else if (kenmerk_key_arr.length > 1)
|
|
buttons.push({ icon: "fa-chevron-down", title: L("lcl_appendixes"), action: "toggleDropdown()" });
|
|
|
|
BLOCK_START("mldHistorie", (tracking?L("lcl_mld_behandeling"):L("lcl_mld_frame_notes")), { buttons: buttons });
|
|
// what info to show? determined by mld_merge_notes_and_tracking
|
|
// 0 = meldingnotes
|
|
// &1 = met meldingtracking (mits tracking)
|
|
// &2 = met opdrachtnotes (voor fe alleen indien tevens opdrachttype.zichtbaarfe=1)
|
|
// &4 = met opdrachttracking (voor fe alleen indien tevens opdrachttype.zichtbaarfe=1 en tracking)
|
|
|
|
if (multipleBijlagenTypes)
|
|
{
|
|
// Create a dropDown div for the multiple bijlagen types
|
|
Response.write("<div id=\"buttons\" class=\"hambdropdown bijlagen\"><ul onclick=\"FcltMgr.stopPropagation(event);\">");
|
|
for (var i = 0; i < kenmerk_key_arr.length; i++)
|
|
{
|
|
CreateButton(srtkenm_oms_arr[i], "$('li.byDropdown').toggleClass('hidden');FcltMgr.resized();Upload("+i+")", { icon: "fa-folder-open", showIcon: true, xclass: "hidden byDropdown" }, { vertical: true });
|
|
}
|
|
Response.write("</ul></div>");
|
|
|
|
}
|
|
|
|
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"
|
|
+ ", 1 regeltype"
|
|
+ ", null suffix"
|
|
+ " 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];
|
|
|
|
if (S("mld_merge_notes_and_tracking")&1 && tracking) // meldingtracking info erbij?
|
|
{
|
|
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"
|
|
+ " , 1 regeltype"
|
|
+ " , null suffix"
|
|
+ " 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);
|
|
}
|
|
if (S("mld_merge_notes_and_tracking")&2) // opdrachtnotes erbij?
|
|
{
|
|
sql = "SELECT no.mld_opdr_note_aanmaak"
|
|
+ " , no.mld_opdr_note_key"
|
|
+ " , pf.prs_perslid_key"
|
|
+ " , pf.prs_perslid_naam_friendly"
|
|
+ " , no.mld_opdr_note_omschrijving"
|
|
+ " , DECODE(ty.mld_typeopdr_zichtbaarfe, 1, 1, 0) "
|
|
+ " , NULL"
|
|
+ " , 2 regeltype"
|
|
+ " , mld_opdr_bedrijfopdr_volgnr suffix"
|
|
+ " FROM mld_opdr_note no, prs_v_perslid_fullnames_all pf, mld_opdr o, mld_typeopdr ty"
|
|
+ " WHERE no.prs_perslid_key = pf.prs_perslid_key (+)"
|
|
+ " AND o.mld_opdr_key = no.mld_opdr_key"
|
|
+ " AND ty.mld_typeopdr_key = o.mld_typeopdr_key"
|
|
+ " AND no.mld_opdr_key IN (SELECT mld_opdr_key FROM mld_opdr WHERE mld_melding_key = " + mld_key + ")"
|
|
+ (mfe.haveOnlyFErights? " AND ty.mld_typeopdr_zichtbaarfe = 1" : "");
|
|
sqls.push(sql);
|
|
}
|
|
if (S("mld_merge_notes_and_tracking")&4 && tracking) // opdrachttracking info erbij?
|
|
{
|
|
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"
|
|
+ " , 2 regeltype"
|
|
+ " , mld_opdr_bedrijfopdr_volgnr suffix"
|
|
+ " FROM fac_tracking tr, fac_srtnotificatie str, prs_v_perslid_fullnames_all pf, mld_opdr o, mld_typeopdr ty"
|
|
+ " WHERE tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key"
|
|
+ " AND o.mld_opdr_key = tr.fac_tracking_refkey"
|
|
+ " AND tr.prs_perslid_key = pf.prs_perslid_key (+)"
|
|
+ " AND ty.mld_typeopdr_key = o.mld_typeopdr_key"
|
|
+ " AND tr.fac_tracking_refkey IN (SELECT mld_opdr_key FROM mld_opdr WHERE mld_melding_key = " + mld_key + ") "
|
|
+ " AND str.fac_srtnotificatie_xmlnode IN ('opdracht')"
|
|
+ (mfe.haveOnlyFErights? " AND ty.mld_typeopdr_zichtbaarfe = 1" : "");
|
|
sqls.push(sql);
|
|
}
|
|
|
|
sql = "SELECT * FROM ("+ sqls.join(" UNION ") + ") ORDER BY 1"
|
|
+ ", 2"; // ook bij gelijktijdigheid chronologisch
|
|
|
|
var oRs = Oracle.Execute(sql);
|
|
var lasttime = null;
|
|
var lastuser = null;
|
|
while(!oRs.Eof)
|
|
{
|
|
var thisuser = oRs("prs_perslid_naam_friendly").Value;
|
|
var suffix = oRs("suffix").Value;
|
|
var prs_key = oRs("prs_perslid_key").Value;
|
|
var thistime = new Date(oRs("mld_melding_note_aanmaak").Value);
|
|
var timestr = toTimeString(thistime);
|
|
var srtnoti = oRs("fac_srtnotificatie_code").Value;
|
|
var note_oms = oRs("mld_melding_note_omschrijving").Value;
|
|
var fullname = fnPerslidNaamFull(oRs);
|
|
var last_note_key = oRs("mld_melding_note_key").Value;
|
|
var note_zichtbaarFE = oRs("mld_melding_note_flag").value == 1;
|
|
var cls_tr = " rt"+ oRs("regeltype").value; // 1=melding, 2=opdracht
|
|
var isvanOpdracht = oRs("regeltype").value == 2;
|
|
oRs.MoveNext();
|
|
var LastIsNote = oRs.Eof && !srtnoti;
|
|
var LastIsSelfNote = LastIsNote && user.isCollega(prs_key);
|
|
|
|
var clsself = "";
|
|
if (prs_key == user_key)
|
|
clsself = ' mldhandlingself'
|
|
// Bij user of dag switch altijd kopje. Ik zou graag systeemmeldingen niet als user-switch zien,
|
|
// dus die bij het voorgaande kopje laten horen door die te skippen bij lastuser
|
|
|
|
if (LastIsSelfNote && last_note_key == note_key)
|
|
break; // uit de while-loop
|
|
|
|
var dedatum = toDateString(thistime, false, true);
|
|
if (lasttime == null || thistime.midnight() > lasttime.midnight())
|
|
Response.Write("<tr><td><span class='notedatum'>{0}</span></td><td></td></tr>".format(toDateString(thistime, false, true) ));
|
|
|
|
var sameevent = false;
|
|
if (srtnoti && lastuser == thisuser && lasttime && (thistime.getTime() - lasttime.getTime()) < 60000)
|
|
{
|
|
sameevent = true;
|
|
}
|
|
|
|
lasttime = thistime;
|
|
if (thisuser != null)
|
|
lastuser = thisuser; // de laatste echte user
|
|
|
|
var safehtml = "";
|
|
|
|
cls_tr += (srtnoti ? " trtrack" : "");
|
|
if (note_oms) // Notitie of tracking met opgeslagen tekst
|
|
{
|
|
safehtml = safe.fclthtml(note_oms, true);
|
|
var edittm = timestr;
|
|
var cls = 'mldhtime';
|
|
var suffixstr = suffix ? L("lcl_shared_order")+" "+suffix+": " : "";
|
|
|
|
var note_zichtbaarFE_class = (note_zichtbaarFE?"note_fe_visible":(srtnoti?"" :"note_fe_hidden"));
|
|
if (LastIsSelfNote && !isvanOpdracht)
|
|
{
|
|
edittm += "<i class='fa fa-pencil fa-fw fa-lg details' onclick='mld_notechange(" + last_note_key + ")' title='" + L("lcl_change") + "'></i>";
|
|
var cls = " mldnoteedit";
|
|
}
|
|
if (!note_zichtbaarFE && !srtnoti)
|
|
edittm += "<i class='fa fa-lock fa-fw fa-lg' title='{0}'></i>".format(L("lcl_mld_verborgen_FE"));
|
|
|
|
var autocollapse = S("mld_note_autocollapse") && note_oms.match(new RegExp(S("mld_note_autocollapse"))) && note_oms.split("\n").length > 2;
|
|
if (autocollapse || safehtml.length > S("rs_maxchar") * 5)
|
|
{
|
|
safehtml = "<div class='notetoggler {1}'>{0}</div>".format(safehtml, autocollapse?"autocollapse":(LastIsNote?"open":""))
|
|
+ "<span class='notetoggler " + (!autocollapse && LastIsNote?"open":"") + "'>" + (!autocollapse && LastIsNote?L("lcl_rs_truncate"):L("lcl_rs_truncated")) + "</span>";
|
|
}
|
|
Response.Write("<tr class='mldhandlingdiv"+clsself+cls_tr+"'>"
|
|
+ "<td class='" + cls + "'>");
|
|
if (!sameevent)
|
|
Response.Write((fullname?"<span class='noter'>{0}</span><br>".format(fullname):"")
|
|
+ "<span title='{0}'>{1}</span></td>".format(dedatum, edittm=='00:00'?'':edittm));
|
|
if (srtnoti)
|
|
Response.Write(("<td><div>{1}{0}</div></td></tr>").format(safehtml, suffixstr));
|
|
else
|
|
Response.Write(("<td class='mldhandlingnote {0}'><div class='bubble'>{2}{1}</div></td></tr>").format( note_zichtbaarFE_class, safehtml, suffixstr));
|
|
|
|
}
|
|
else if (srtnoti)
|
|
{
|
|
safehtml = status.getsrtnotificatietext(srtnoti); // default tracking tekst
|
|
if (srtnoti == 'MLDUPD')
|
|
{
|
|
var arr = safehtml.split("<br>");
|
|
arr.shift(); // Verwijder de tekst 'Melding xxx is gewijzigd'
|
|
for (var i = 0; i < arr.length; i++) // Eerste woord tot ':' vet maken
|
|
{
|
|
arr[i] = arr[i].replace(/^([\w]+)\:/, "<span class='mldhandlingfield'>$1:</span>")
|
|
}
|
|
safehtml = arr.join("<br>");
|
|
}
|
|
Response.Write("<tr class='mldhandlingdiv" + clsself + cls_tr +"'><td class='mldhtime'>");
|
|
if (!sameevent)
|
|
Response.Write(("<span class='noter'>{0}</span><br><span title='{1}'>{2}</span>").format(fullname, dedatum, timestr));
|
|
Response.Write(("</td><td"+(thisuser == null ? " class='system'" : "")+">{0}</td></tr>").format(safehtml));
|
|
}
|
|
// De MoveNext hebben we al eerder gehad
|
|
}
|
|
oRs.Close()
|
|
|
|
|
|
// == Verder met de nieuwe/bestaande notitie
|
|
|
|
// Er zijn notes die voor iedereen (relevant) zichtbaar zijn en notes die alleen voor FOBO
|
|
// zichtbaar zijn. Dat hangt af van mld_melding_note_flag. Die zichtbaarheid is hierboven geregeld.
|
|
//
|
|
// Dan kunnen er notes worden toegevoegd. Dat kan altijd en door iedereen (relevant)
|
|
// alleen *niet* door de FE indien mld_info.fenotes==0
|
|
// dus wel door FOBO zelfs indien mld_info.fenotes==0
|
|
// dus wel door FE indien mld_info.fenotes>0
|
|
// Let op: fenotes is geen bitwise codering (meer), gewoon 0-3
|
|
|
|
var note_oms = "";
|
|
var note_zichtbaarFE = (mld_info.fenotes == 1 || mld_info.fenotes == 3 );
|
|
if (note_key > -1)
|
|
{ // Bestaande net toegevoegde note voor re-edit: gegevens uit record gebruiken.
|
|
sql = "SELECT mld_melding_note_omschrijving"
|
|
+ " , mld_melding_note_flag"
|
|
+ " FROM mld_melding_note"
|
|
+ " WHERE mld_melding_note_key = " + note_key;
|
|
var oRs = Oracle.Execute(sql);
|
|
note_oms = oRs("mld_melding_note_omschrijving").value;
|
|
note_zichtbaarFE = oRs("mld_melding_note_flag").value == 1; // de net gekozen waarde
|
|
}
|
|
|
|
// Voeg eventueel weer toe wat er voor de reload als gevolg van upload bijlage stond.
|
|
note_oms = (tmp_note != "" ? tmp_note : note_oms);
|
|
|
|
// Aanvulling textbox niet tonen als ik alleen FEread rechten heb gekregen vanwege het feit dat de melding een parent van een eigen melding is (!mfe.parentOfOwnRead).
|
|
if ((!mfe.haveOnlyFErights && mfe.canReadAny) || (mfe.haveOnlyFErights && !mfe.parentOfOwnRead && mld_info.fenotes > 0))
|
|
{
|
|
if (note_key < 0)
|
|
{
|
|
%>
|
|
<tr><td colspan='2'><div class='mldhandlinghead'><%=L("lcl_mld_note_new")%>:
|
|
<% if (afgehandeld) { %> <span class='hot'> <%=L("lcl_mld_edit_note_completed")%></span> <% } %>
|
|
<span class='mldgotop details' onclick='if (parent) parent.scrollTo(0,0)'>^Top</span></div></td></tr>
|
|
<%
|
|
}
|
|
%>
|
|
<tr><td></td>
|
|
<td><div class='mldhandlingdiv'>
|
|
<form name=u2 method=post action="mld_edit_note_save.asp?mld_key=<%=mld_key%>&urole=<%=urole%>¬e_key=<%=note_key%>">
|
|
<input type="hidden" name="notestamp" id="notestamp" value="<%=timestamp_notes.getTime()%>">
|
|
<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
|
|
// 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
|
|
// Do not offer options if
|
|
// - i am just an FE
|
|
// - we do not do options?
|
|
// - it is my call
|
|
if (!mfe.haveOnlyFErights)
|
|
{
|
|
// FOBO
|
|
// zichtbaarheid per nieuwe notitie, vast of veranderbaar
|
|
if (note_key == -1 && !eigenMelding && mld_info.fenotes != 1)
|
|
{
|
|
// keuze voor wel of niet zichtbaar FE
|
|
CHECKBOX("fldcheck", "zichtbaarFE", note_zichtbaarFE, { html: "onchange='notiToggler(this)'" });
|
|
Response.Write("<label for='zichtbaarFE'>{0}</label>".format(L("lcl_mld_zichtbaar_FE")));
|
|
}
|
|
else
|
|
{
|
|
// re-edit, eigenmelding of geen keuze = niks te kiezen, vermeld even hoe zichtbaar deze note is
|
|
Response.Write("{0}: {1}".format(L("lcl_mld_zichtbaar_FE"), note_zichtbaarFE?L("lcl_Yes"):L("lcl_No"))); /* vriendelijker is: Wel/Niet zichtbaar voor melder */
|
|
}
|
|
|
|
//actie bij melder zetten
|
|
if (note_key == -1 && !eigenMelding && S("mld_flag_on_fenote"))
|
|
{
|
|
var actie_bij_melder = (note_zichtbaarFE && S("mld_note_default_notifyFE")==1 ? true : false);
|
|
// We doen aan pingpongen
|
|
Response.Write("<span id='notioption'"+(note_zichtbaarFE? "style='display:inline'" :" style='display:none'")+">");
|
|
CHECKBOX("fldcheck", "notifyFE", actie_bij_melder);
|
|
Response.Write("<label for='notifyFE'>{0}</label></span>".format(L("lcl_mld_toekennen_FE")));
|
|
}
|
|
}
|
|
IFACE.FORM_END();
|
|
%>
|
|
</form></td></tr>
|
|
<%
|
|
buttons = [{ title: L("lcl_submit"), action: "note_submit()", id: "note_submit", singlepress: true}];
|
|
|
|
if (note_key > 0)
|
|
buttons.push({title: L("lcl_cancel"), icon: "undo.png", action: "note_submit_callback({})"});
|
|
|
|
Response.Write("<tr><td></td><td><div class='notebuttons'>");
|
|
CreateButtons(buttons);
|
|
}
|
|
BLOCK_END();
|
|
%>
|
|
</body>
|
|
</html>
|