FSN#35228 Bijlagen kunnen toevoegen nadat een melding is ingezien/geaccepteerd

svn path=/Website/trunk/; revision=30035
This commit is contained in:
Erik Groener
2016-07-13 10:22:10 +00:00
parent 303205eeda
commit 6ee1b76a20
4 changed files with 102 additions and 128 deletions

View File

@@ -4243,6 +4243,69 @@ mld = {setmeldingstatus:
emptyRequiredFields = emptyRequiredFields || (mld_melding.freetext == 2 && !mld_melding.mld_omschr);
return emptyRequiredFields;
},
getMldKenmerk_sql:
function _getMldKenmerk_sql(pmld_key, pfiltClause)
{
var filtClause = pfiltClause || {};
var where = "";
if (filtClause.wheres && filtClause.wheres.length > 0)
where = " AND " + filtClause.wheres.join(" AND ");
var sql = "SELECT mkm.mld_kenmerk_key"
+ " , mkm.mld_kenmerk_niveau"
+ " , mkm.mld_kenmerk_volgnummer"
+ " , msk.mld_srtkenmerk_omschrijving"
+ " , msk.mld_srtkenmerk_kenmerktype"
+ " , mkm.mld_srtkenmerk_key"
+ " FROM mld_kenmerk mkm"
+ " , mld_srtkenmerk msk"
+ " , mld_melding mm"
+ " , mld_stdmelding sm"
+ " , mld_discipline md"
+ " , (SELECT 'S' mld_kenmerk_niveau"
+ " , mld_stdmelding_key ref_mld_stdmelding_key"
+ " , mld_stdmelding_key"
+ " , ins_discipline_key"
+ " , m2.ins_srtdiscipline_key"
+ " FROM mld_stdmelding md"
+ " , mld_discipline m2"
+ " WHERE md.mld_ins_discipline_key = m2.ins_discipline_key"
+ " UNION ALL"
+ " SELECT 'D' mld_kenmerk_niveau"
+ " , ins_discipline_key ref_mld_stdmelding_key"
+ " , NULL mld_stdmelding_key"
+ " , ins_discipline_key ins_discipline_key"
+ " , ins_srtdiscipline_key"
+ " FROM mld_discipline m2"
+ " UNION ALL"
+ " SELECT 'T' mld_kenmerk_niveau"
+ " , ins_srtdiscipline_key ref_mld_stdmelding_key"
+ " , NULL mld_stdmelding_key"
+ " , NULL ins_discipline_key"
+ " , ins_srtdiscipline_key"
+ " FROM ins_srtdiscipline m2"
+ " ) s"
+ " WHERE mkm.mld_kenmerk_verwijder IS NULL"
+ " AND mkm.mld_stdmelding_key = s.ref_mld_stdmelding_key"
+ " AND mkm.mld_kenmerk_niveau = s.mld_kenmerk_niveau"
+ " AND mkm.mld_srtkenmerk_key = msk.mld_srtkenmerk_key"
+ " AND mm.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND md.ins_discipline_key = sm.mld_ins_discipline_key"
+ " AND ( (s.ins_discipline_key = sm.mld_ins_discipline_key)"
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = md.ins_srtdiscipline_key)"
+ " )"
+ " AND ( (s.mld_stdmelding_key = sm.mld_stdmelding_key)"
+ " OR ('D' = mkm.mld_kenmerk_niveau AND s.ins_discipline_key = sm.mld_ins_discipline_key)"
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = md.ins_srtdiscipline_key)"
+ " )"
+ " AND mm.mld_melding_key = " + pmld_key
+ where
+ " ORDER BY mkm.mld_kenmerk_volgnummer DESC";
return sql;
}
}

View File

@@ -46,57 +46,9 @@ FCLTHeader.Requires({ plugins: [] });
if (mld_key > 0)
{
// Is er een bijlage kenmerk?
var sql = "SELECT mkm.mld_kenmerk_key"
+ " , mkm.mld_kenmerk_niveau"
+ " , mkm.mld_kenmerk_volgnummer"
+ " , msk.mld_srtkenmerk_omschrijving"
+ " , msk.mld_srtkenmerk_kenmerktype"
+ " , mkm.mld_srtkenmerk_key"
+ " FROM mld_kenmerk mkm"
+ " , mld_srtkenmerk msk"
+ " , mld_melding mm"
+ " , mld_stdmelding sm"
+ " , mld_discipline md"
+ " , (SELECT 'S' mld_kenmerk_niveau"
+ " , mld_stdmelding_key ref_mld_stdmelding_key"
+ " , mld_stdmelding_key"
+ " , ins_discipline_key"
+ " , m2.ins_srtdiscipline_key"
+ " FROM mld_stdmelding md"
+ " , mld_discipline m2"
+ " WHERE md.mld_ins_discipline_key = m2.ins_discipline_key"
+ " UNION ALL"
+ " SELECT 'D' mld_kenmerk_niveau"
+ " , ins_discipline_key ref_mld_stdmelding_key"
+ " , NULL mld_stdmelding_key"
+ " , ins_discipline_key ins_discipline_key"
+ " , ins_srtdiscipline_key"
+ " FROM mld_discipline m2"
+ " UNION ALL"
+ " SELECT 'T' mld_kenmerk_niveau"
+ " , ins_srtdiscipline_key ref_mld_stdmelding_key"
+ " , NULL mld_stdmelding_key"
+ " , NULL ins_discipline_key"
+ " , ins_srtdiscipline_key"
+ " FROM ins_srtdiscipline m2"
+ " ) s"
+ " WHERE mkm.mld_kenmerk_verwijder IS NULL"
+ " AND mkm.mld_stdmelding_key = s.ref_mld_stdmelding_key"
+ " AND mkm.mld_kenmerk_niveau = s.mld_kenmerk_niveau"
+ " AND mkm.mld_srtkenmerk_key = msk.mld_srtkenmerk_key"
+ " AND mm.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND md.ins_discipline_key = sm.mld_ins_discipline_key"
+ " AND ( (s.ins_discipline_key = sm.mld_ins_discipline_key)"
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = md.ins_srtdiscipline_key)"
+ " )"
+ " AND ( (s.mld_stdmelding_key = sm.mld_stdmelding_key)"
+ " OR ('D' = mkm.mld_kenmerk_niveau AND s.ins_discipline_key = sm.mld_ins_discipline_key)"
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = md.ins_srtdiscipline_key)"
+ " )"
+ " AND mkm.mld_kenmerk_volgnummer <= 100"
+ " AND msk.mld_srtkenmerk_kenmerktype = 'M'"
+ " AND mm.mld_melding_key = " + mld_key
+ " ORDER BY mkm.mld_kenmerk_volgnummer DESC";
var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["mkm.mld_kenmerk_volgnummer < 800",
"msk.mld_srtkenmerk_kenmerktype = 'M'"]}
);
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{

View File

@@ -175,7 +175,7 @@ var tracking = getQParamInt("tracking", 1) == 1; // tracking erbij tonen? Onderd
sqls.push(sql)
}
sql = "SELECT * FROM ("+ sqls.join(" UNION ") + ") ORDER BY 1"
+ (S("mld_note_sort_ascending") == 0 ? " DESC " : "")
+ (S("mld_note_sort_ascending") == 0 ? " DESC " : "");
}
else
{ // Geen mld_key dus kom vanuit het menu.

View File

@@ -24,6 +24,7 @@ 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 tmp_note = getQParam("tmp_note", "");
var note_key = getQParamInt("note_key", -1);
var mld_info = mld.mld_melding_info(mld_key);
@@ -44,57 +45,9 @@ var timestamp_notes = new Date();
if (mld_key > 0)
{
// Is er een bijlage kenmerk?
var sql = "SELECT mkm.mld_kenmerk_key"
+ " , mkm.mld_kenmerk_niveau"
+ " , mkm.mld_kenmerk_volgnummer"
+ " , msk.mld_srtkenmerk_omschrijving"
+ " , msk.mld_srtkenmerk_kenmerktype"
+ " , mkm.mld_srtkenmerk_key"
+ " FROM mld_kenmerk mkm"
+ " , mld_srtkenmerk msk"
+ " , mld_melding mm"
+ " , mld_stdmelding sm"
+ " , mld_discipline md"
+ " , (SELECT 'S' mld_kenmerk_niveau"
+ " , mld_stdmelding_key ref_mld_stdmelding_key"
+ " , mld_stdmelding_key"
+ " , ins_discipline_key"
+ " , m2.ins_srtdiscipline_key"
+ " FROM mld_stdmelding md"
+ " , mld_discipline m2"
+ " WHERE md.mld_ins_discipline_key = m2.ins_discipline_key"
+ " UNION ALL"
+ " SELECT 'D' mld_kenmerk_niveau"
+ " , ins_discipline_key ref_mld_stdmelding_key"
+ " , NULL mld_stdmelding_key"
+ " , ins_discipline_key ins_discipline_key"
+ " , ins_srtdiscipline_key"
+ " FROM mld_discipline m2"
+ " UNION ALL"
+ " SELECT 'T' mld_kenmerk_niveau"
+ " , ins_srtdiscipline_key ref_mld_stdmelding_key"
+ " , NULL mld_stdmelding_key"
+ " , NULL ins_discipline_key"
+ " , ins_srtdiscipline_key"
+ " FROM ins_srtdiscipline m2"
+ " ) s"
+ " WHERE mkm.mld_kenmerk_verwijder IS NULL"
+ " AND mkm.mld_stdmelding_key = s.ref_mld_stdmelding_key"
+ " AND mkm.mld_kenmerk_niveau = s.mld_kenmerk_niveau"
+ " AND mkm.mld_srtkenmerk_key = msk.mld_srtkenmerk_key"
+ " AND mm.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND md.ins_discipline_key = sm.mld_ins_discipline_key"
+ " AND ( (s.ins_discipline_key = sm.mld_ins_discipline_key)"
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = md.ins_srtdiscipline_key)"
+ " )"
+ " AND ( (s.mld_stdmelding_key = sm.mld_stdmelding_key)"
+ " OR ('D' = mkm.mld_kenmerk_niveau AND s.ins_discipline_key = sm.mld_ins_discipline_key)"
+ " OR ('T' = mkm.mld_kenmerk_niveau AND s.ins_srtdiscipline_key = md.ins_srtdiscipline_key)"
+ " )"
+ " AND mkm.mld_kenmerk_volgnummer <= 800"
+ " AND msk.mld_srtkenmerk_kenmerktype = 'M'"
+ " AND mm.mld_melding_key = " + mld_key
+ " ORDER BY mkm.mld_kenmerk_volgnummer DESC";
var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["mkm.mld_kenmerk_volgnummer < 800",
"msk.mld_srtkenmerk_kenmerktype = 'M'"]}
);
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
@@ -148,6 +101,10 @@ var timestamp_notes = new Date();
function UploadCallback()
{
var params = {};
if ($("#note").val() != "")
params.appendurl = "tmp_note=" + $("#note").val();
FcltMgr.reload(params);
// window.parent.FcltMgr.reload();
}
@@ -236,7 +193,8 @@ var timestamp_notes = new Date();
+ ", 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;
+ " 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) // tracking info erbij?
@@ -255,7 +213,7 @@ var timestamp_notes = new Date();
+ " 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"
sql = "SELECT * FROM ("+ sqls.join(" UNION ") + ") ORDER BY 1";
var oRs = Oracle.Execute(sql);
var lasttime = null;
@@ -295,8 +253,8 @@ var timestamp_notes = new Date();
}
else
{
if (lasttime && (thistime.getTime() - lasttime.getTime()) < 1000 * 60 * 5)
timestr = ""; // Binnen 5 minuten onderdrukken
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
@@ -308,28 +266,10 @@ var timestamp_notes = new Date();
if (note_oms) // Notitie of tracking met opgeslagen tekst
{
safehtml = safe.fclthtml(note_oms, true);
}
else if (srtnoti)
safehtml = status.getsrtnotificatietext(srtnoti); // default tracking tekst
if (srtnoti)
{
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+"'><td class='mldhtime'>{0}</td><td"+(thisuser == null ? " class='system'" : "")+">{1}</td></tr>").format(timestr, safehtml));
}
else // notitie
{
var edittm = timestr;
var cls = '';
var cls_tr = (srtnoti?" trtrack": "");
var note_zichtbaar_class = (note_zichtbaar?"note_fe_visible":(srtnoti?"" :"note_fe_hidden"));
if (LastIsSelfNote)
{
edittm = "<img src='../pictures/wijzigen.png' onclick='mld_notechange(" + last_note_key + ")' class='details' title='" + L("lcl_change") + "'></img>";
@@ -340,7 +280,23 @@ var timestamp_notes = new Date();
safehtml = "<div class='notetoggler'>{0}</div>".format(safehtml)
+ "<span class='notetoggler'>" + L("lcl_rs_truncated") + "</span>";
}
Response.Write("<tr class='mldhandlingdiv"+clsself+"'><td class='mldhtime " + cls + "'>{0}</td><td class='mldhandlingnote {1}'>{2}</td></tr>".format(edittm, (note_zichtbaar?"note_fe_visible":"note_fe_hidden"), safehtml));
Response.Write("<tr class='mldhandlingdiv"+clsself+cls_tr+"'><td class='mldhtime " + cls + "'>{0}</td><td class='mldhandlingnote {1}'>{2}</td></tr>".format(edittm, note_zichtbaar_class, safehtml));
}
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+" trtrack'><td class='mldhtime'>{0}</td><td"+(thisuser == null ? " class='system'" : "")+">{1}</td></tr>").format(timestr, safehtml));
}
// De MoveNext hebben we al eerder gehad
}
@@ -360,6 +316,9 @@ var timestamp_notes = new Date();
note_zichtbaar = oRs("mld_melding_note_flag").value == 1;
}
// 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)