FSN#35992 Flow wanneer wel en niet welke vinkjes verschijnen verbeterd

svn path=/Website/trunk/; revision=32117
This commit is contained in:
Peter Feij
2016-12-22 14:03:45 +00:00
parent 47f3d1b986
commit b903f9d518

View File

@@ -8,12 +8,13 @@
Betere layout, altijd een invulveld
Parameters: mld_key (altijd verplicht hier)
Note: We forceren dat je BO of FO rechten hebt. Je mag dus altijd alles zien
Note: Nu kan iedereen hier zijn, FE of FOBO. FE mag de interne notes niet zien, let daarop.
TODO: als je pingpongt of save-t als FE wordt de actie soms gezet.
*/%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!--#include file="../Shared/status.inc"-->
<!-- #include file="../Shared/status.inc"-->
<!-- #include file="./mld.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/discx3d.inc" -->
@@ -23,7 +24,7 @@ FCLTHeader.Requires({js: ["../mld/mld_list.js"]})
var mld_key = getQParamInt("mld_key"); // altijd verplicht mld_key
var urole = getQParamSafe("urole", "fe");
var outputmode = getQParamInt("outputmode", 0);
var tracking = getQParamInt("tracking", 1) == 1; // tracking erbij tonen? Onderdrukken met 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);
@@ -36,7 +37,6 @@ 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);
user.auth_required_or_abort(!mfe.haveOnlyFErights); // FE only mag hier helemaal niet (kunnen) komen
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);
@@ -247,7 +247,7 @@ var timestamp_notes = new Date();
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_zichtbaar = oRs("mld_melding_note_flag").value == 1;
var note_zichtbaarFE = oRs("mld_melding_note_flag").value == 1;
oRs.MoveNext();
var LastIsSelfNote = oRs.Eof && user.isCollega(prs_key) && !srtnoti;
@@ -257,26 +257,6 @@ var timestamp_notes = new Date();
// 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 ((lastuser != thisuser || !lasttime || thistime.midnight() > lasttime.midnight()) && thisuser != null )
{
Response.Write("<tr class='mldhandlinghead'><td colspan='2'>");
if (fullname != "") {
Response.Write("<div class='mldhandlinghead'>"+L("lcl_status_behandelheader").format(toTimeString(thistime),
toDateString(thistime, false, true),
fullname)+"</div>");
} else {
// zal maar sporadisch voorkomen
Response.Write("<div class='mldhandlinghead'>"+L("lcl_status_behandelheaderanonym").format(toTimeString(thistime),
toDateString(thistime, false, true))+"</div>");
}
Response.Write("</td></tr>");
}
else
{
if (lasttime && (thistime.getTime() - lasttime.getTime()) < 1000 * 60 * 1)
timestr = ""; // Binnen 1 minuut onderdrukken
}
*/
if (LastIsSelfNote && last_note_key == note_key)
break; // uit de while-loop
var dedatum = (lasttime== null || thistime.midnight() > lasttime.midnight() ? toDateString(thistime, false, true) : "");
@@ -292,13 +272,13 @@ var timestamp_notes = new Date();
var edittm = timestr;
var cls = 'mldhtime';
var cls_tr = (srtnoti?" trtrack": "");
var note_zichtbaar_class = (note_zichtbaar?"note_fe_visible":(srtnoti?"" :"note_fe_hidden"));
var note_zichtbaarFE_class = (note_zichtbaarFE?"note_fe_visible":(srtnoti?"" :"note_fe_hidden"));
if (LastIsSelfNote)
{
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_zichtbaar && !srtnoti)
if (!note_zichtbaarFE && !srtnoti)
edittm += "<i class='fa fa-lock fa-fw fa-lg' title='{0}'></i>".format(L("lcl_mld_verborgen_FE"));
if (safehtml.length > S("rs_maxchar") * 5)
@@ -307,7 +287,7 @@ var timestamp_notes = new Date();
+ "<span class='notetoggler'>" + L("lcl_rs_truncated") + "</span>";
}
Response.Write("<tr class='mldhandlingdiv"+clsself+cls_tr+"'><td class='" + cls
+ ("'><span class='noter'>{5}</span><br>{4}&nbsp;{0}</td><td class='mldhandlingnote "+"{1}'><div class='"+(srtnoti ? "": " bubble ")+"'>{2}</div></td></tr>").format(edittm, note_zichtbaar_class, safehtml,toTimeString(thistime),
+ ("'><span class='noter'>{5}</span><br>{4}&nbsp;{0}</td><td class='mldhandlingnote "+"{1}'><div class='"+(srtnoti ? "": " bubble ")+"'>{2}</div></td></tr>").format(edittm, note_zichtbaarFE_class, safehtml,toTimeString(thistime),
dedatum,
fullname));
@@ -331,68 +311,95 @@ var timestamp_notes = new Date();
}
oRs.Close()
// == Verder met de nieuwe/bestaande notitie
// == 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_zichtbaar = (mld_info.fenotes & 1 );
var note_zichtbaarFE = (mld_info.fenotes == 1 || mld_info.fenotes == 3 );
if (note_key > -1)
{ // Bestaande note: gegevens uit record gebruiken.
{ // 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_zichtbaar = oRs("mld_melding_note_flag").value == 1;
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);
// Bron van verwarring maar: als het een eigen melding is dan ben je zelf de FE-user van die melding
// Dan is het heel onlogisch als je het vinkje zou kunnen uitzetten. Disablen we dan ook effectief.
if (eigenMelding)
note_zichtbaar = true;
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%>&note_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>
<%
if (mld_info.fenotes & 2 || mld_info.fenotes == 0)
{
if (note_key == -1 && !eigenMelding)
if (!mfe.haveOnlyFErights || (mfe.haveOnlyFErights && mld_info.fenotes>0))
{
if (note_key < 0)
{
CHECKBOX("fldcheck", "zichtbaarFE", note_zichtbaar, { html: "onchange='notiToggler(this)'" });
Response.Write("<label for='zichtbaarFE'>{0}</label>".format(L("lcl_mld_zichtbaar_FE")));
}
else
{
Response.Write("{0}: {1}".format(L("lcl_mld_zichtbaar_FE"), note_zichtbaar?L("lcl_Yes"):L("lcl_No"))); /* vriendelijker is: Wel/Niet zichtbaar voor melder */
}
if (S("mld_flag_on_fenote") > 0)
{
Response.Write("<span id='notioption'"+(note_zichtbaar? "" :" style='display:none'")+">");
CHECKBOX("fldcheck", "notifyFE", false); /* compatible ware: note_zichtbaar, maar dit lijkt mij beter */
Response.Write("<label for='notifyFE'>{0}</label></span>".format(L("lcl_mld_toekennen_FE")));
}
}
IFACE.FORM_END();
%>
</form></td></tr>
<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>
<%
buttons = [{ title: L("lcl_submit"), action: "note_submit()", id: "note_submit", singlepress: true}];
}
%>
<tr><td></td>
<td><div class='mldhandlingdiv'>
<form name=u2 method=post action="mld_edit_note_save.asp?mld_key=<%=mld_key%>&urole=<%=urole%>&note_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 */
}
if (S("mld_flag_on_fenote") > 0 && mld_info.fenotes>0 && !eigenMelding)
{
// We doen aan pingpongen
Response.Write("<span id='notioption'"+(note_zichtbaarFE? "style='display:inline'" :" style='display:none'")+">");
CHECKBOX("fldcheck", "notifyFE", false); /* compatible ware: note_zichtbaarFE, maar dit lijkt mij beter */
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 colspan='2'><div style='float:left'>");
CreateButtons(buttons);
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>