202 lines
11 KiB
Plaintext
202 lines
11 KiB
Plaintext
<%@ language = "JavaScript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: ins_deeldocumenten.asp
|
|
Description: Toont alle documenten die gerelateerd zijn aan dit object, als antwoord op het gebrek aan overzicht
|
|
dat je hebt als je allerlei taken met rapporten en certificaten enz. hebt.
|
|
Dat zijn:
|
|
- bijlagen in een flexkenmerk van het object zelf
|
|
- bijlagen bij een flexkenmerk van een taak van het object
|
|
|
|
Het overzicht is standaard chronologisch descending, nieuwste document bovenaan.
|
|
|
|
Voor objecten hebben dit nog (uit: Help), dat gehoorzamen we
|
|
rolcode&1 zijn zichtbaar met WEB_INSMAN
|
|
rolcode&2 zijn zichtbaar met WEB_INSUSE (PF: en <= 900 toch?)
|
|
rolcode&4 zijn zichtbaar met WEB_INSFOF (tbv uitleenregistratie)
|
|
|
|
Parameters: ins_key (required)
|
|
|
|
*/ %>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
|
<!-- #include file="ins.inc" -->
|
|
<%
|
|
FCLTHeader.Requires({ js: ["jquery-ui.js"]});
|
|
|
|
var ins_key = getQParamInt("ins_key");
|
|
var outputmode = getQParamInt("outputmode", 0);
|
|
|
|
var filenamelength = 49; // constante. Keuze, normaal maken we ook van 50+ een textarea
|
|
|
|
// Algemene autorisatiecheck
|
|
var this_ins = ins.func_enabled_deel(ins_key); // Wat heb ik zoal aan rechten op dit object?
|
|
user.auth_required_or_abort(this_ins.canReadAny); // Heb ik enige lees rechten op dit object?
|
|
|
|
// Ik mag dus sowieso iets. Nou moet ik vooral weten wat ik evt niet mag voor km.ins_kenmerk_rolcode
|
|
var readman = this_ins.readman;
|
|
var readuse = this_ins.readuse;
|
|
var readfof = this_ins.writefof; // niet erg logisch, maar ook niet onmogelijk. readfof wordt niet eens bepaald..
|
|
var readallekenmerken = readman && readuse && readfof;
|
|
var readmanusekenmerken = readman && readuse && !readfof;
|
|
|
|
%>
|
|
<html>
|
|
<head>
|
|
<% FCLTHeader.Generate({outputmode: outputmode}); %>
|
|
</head>
|
|
<body id="listbody">
|
|
<%
|
|
|
|
function fnFilename (oRs)
|
|
{
|
|
var retval;
|
|
if (outputmode == 0) // op het scherm
|
|
{
|
|
var href = protectQS.create(OpenFlexFile("INS", oRs("fac_bijlagen_key").value, {}));
|
|
retval = "<span class='details' readonly=1 title='{0}'".format(oRs("fac_bijlagen_filename").value)
|
|
+ " onclick='FcltMgr.windowopen(\"" + safe.jsstring(href) + "\")', 'File')'>" + safe.html(shorten(oRs("fac_bijlagen_filename").value, filenamelength, {"middle": true})) + "</span>";
|
|
}
|
|
else
|
|
{
|
|
retval = safe.html(oRs("fac_bijlagen_filename").value); // unshortened plain
|
|
}
|
|
return retval;
|
|
}
|
|
|
|
function fnFilesize (oRs)
|
|
{
|
|
return safe.html("{0} kB".format(safe.showFloat(Math.round(oRs("fac_bijlagen_file_size").value / 1024),0)));
|
|
}
|
|
|
|
|
|
// Het kan me niet schelen hoe een bestandskenmerk aan dit object of taak (srtcontrole) gekoppeld is
|
|
// /* D=Discipline, G=Objectgroep, S=Objectsoort, T=Alle taken, C=Periodiek taken, E=Taakcategorie */
|
|
// Iemand zou kunnen vinden dat alleen de bijlagen van de laatste taak opgenomen zou moeten worden,
|
|
// maar waarom zouden we niet het hele archief tonen? Vandaar op datum, nieuwste bovenaan.
|
|
|
|
// Qua autorisatie disciplines, rolcodes meenemen zodat
|
|
// er autorisaties toegepast kunnen worden:
|
|
// - ik mag mogelijk niet alle taken zien, dus ook de daarbij behorende (bijlage)kenmerken niet
|
|
|
|
// Wat mag ik op basis van mijn autorisatie en deze situatie zien, bepaal mijn rolcode-masker
|
|
var myreadrolcode = 0 + (readman ? 1 : 0)
|
|
+ (readuse ? 2 : 0)
|
|
+ (readfof ? 4 : 0);
|
|
|
|
|
|
// Kenmerken van het type Map (folder met files) worden niet in ins_kmdeelsrtcontr geregistreerd.
|
|
// Voor het type File weet ik het niet, maar anders zou dat deze query moeten zijn. Het duurde even
|
|
// voordat me dit duidelijk werd. Volgens mij is het een rare keuze. Moet nog nagaan of dat voor
|
|
// F en E ook geldt, dan is deze nooit nodig.
|
|
|
|
// var sql = "SELECT d.ins_deel_omschrijving "
|
|
// + " , fb.fac_bijlagen_key "
|
|
// + " , km.ins_kenmerk_code "
|
|
// + " , isc.ins_srtcontrole_omschrijving "
|
|
// + " , COALESCE (km.ins_kenmerk_omschrijving, skm.ins_srtkenmerk_omschrijving) kenmerk_omschrijving "
|
|
// + " , fb.fac_bijlagen_file_size "
|
|
// + " , fb.fac_bijlagen_filename "
|
|
// + " , fb.fac_bijlagen_aanmaak "
|
|
// + " FROM fac_bijlagen fb "
|
|
// + " , ins_deel d "
|
|
// + " , ins_kmdeelsrtcontr kmdsc "
|
|
// + " , ins_kenmerk km "
|
|
// + " , ins_srtkenmerk skm "
|
|
// + " , ins_srtcontrole isc "
|
|
// + " , ins_deelsrtcontrole idsc "
|
|
// + " WHERE kmdsc.ins_deelsrtcontrole_key = fb.fac_bijlagen_refkey "
|
|
// + " AND kmdsc.ins_kenmerk_key = fb.fac_bijlagen_kenmerk_key "
|
|
// + " AND kmdsc.ins_deelsrtcontrole_key = idsc.ins_deelsrtcontrole_key "
|
|
// + " AND kmdsc.ins_kenmerk_key = km.ins_kenmerk_key "
|
|
// + " AND km.ins_srtkenmerk_key = skm.ins_srtkenmerk_key "
|
|
// + " AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key "
|
|
// + " AND idsc.ins_deel_key = d.ins_deel_key "
|
|
// + " AND km.ins_kenmerk_niveau IN ('T', 'C', 'E') "
|
|
// + " AND d.ins_deel_key = " + ins_key;
|
|
|
|
var sql_taakbijlagen = "SELECT d.ins_deel_omschrijving "
|
|
+ " , fb.fac_bijlagen_key "
|
|
+ " , km.ins_kenmerk_code "
|
|
+ " , isc.ins_srtcontrole_omschrijving "
|
|
+ " , COALESCE (km.ins_kenmerk_omschrijving, skm.ins_srtkenmerk_omschrijving) kenmerk_omschrijving "
|
|
+ " , fb.fac_bijlagen_file_size "
|
|
+ " , fb.fac_bijlagen_filename "
|
|
+ " , fb.fac_bijlagen_aanmaak "
|
|
+ " FROM fac_bijlagen fb "
|
|
+ " , ins_deel d "
|
|
+ " , ins_kenmerk km "
|
|
+ " , ins_srtkenmerk skm "
|
|
+ " , ins_srtcontrole isc "
|
|
+ " , ins_deelsrtcontrole idsc "
|
|
+ " WHERE idsc.ins_deelsrtcontrole_key = fb.fac_bijlagen_refkey "
|
|
+ " AND km.ins_kenmerk_key = fb.fac_bijlagen_kenmerk_key "
|
|
+ " AND fb.fac_bijlagen_module = 'INS' "
|
|
+ " AND km.ins_srtkenmerk_key = skm.ins_srtkenmerk_key "
|
|
+ " AND idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key "
|
|
+ " AND isc.ins_scenario_key = 1 " // alleen echte, afwijking is helemaal niet aannemelijk maar je weet nooit
|
|
+ " AND idsc.ins_deel_key = d.ins_deel_key "
|
|
+ " AND km.ins_kenmerk_niveau IN ('T', 'C', 'E') " // bij taken
|
|
+ " AND isc.ctr_discipline_key IN (SELECT w.ins_discipline_key"
|
|
+ " FROM fac_v_webgebruiker w"
|
|
+ " , fac_functie f"
|
|
+ " WHERE w.fac_functie_key = f.fac_functie_key "
|
|
+ " AND f.fac_functie_code IN ('WEB_CTRUSE','WEB_CTRAFR','WEB_CTRFOF','WEB_CTRFOF')"
|
|
+ " AND w.fac_gebruiker_prs_level_read < 9"
|
|
+ " AND w.fac_gebruiker_alg_level_read < 9"
|
|
+ " AND w.prs_perslid_key = " + user_key + ")"
|
|
+ " AND d.ins_deel_key = " + ins_key;
|
|
|
|
var sql_deelbijlagen = "SELECT d.ins_deel_omschrijving "
|
|
+ " , fb.fac_bijlagen_key "
|
|
+ " , km.ins_kenmerk_code "
|
|
+ " , NULL "
|
|
+ " , COALESCE (km.ins_kenmerk_omschrijving, skm.ins_srtkenmerk_omschrijving) kenmerk_omschrijving "
|
|
+ " , fb.fac_bijlagen_file_size "
|
|
+ " , fb.fac_bijlagen_filename "
|
|
+ " , fb.fac_bijlagen_aanmaak "
|
|
+ " FROM fac_bijlagen fb "
|
|
+ " , ins_v_aanwezigdeel d "
|
|
+ " , ins_kenmerk km "
|
|
+ " , ins_srtkenmerk skm "
|
|
+ " WHERE fac_bijlagen_module = 'INS' "
|
|
+ " AND d.ins_deel_key = fb.fac_bijlagen_refkey "
|
|
+ " AND fb.fac_bijlagen_kenmerk_key = km.ins_kenmerk_key(+) "
|
|
+ " AND skm.ins_srtkenmerk_key = km.ins_srtkenmerk_key "
|
|
+ " AND km.ins_kenmerk_niveau NOT IN ('T','C','E') " // niet bij taken
|
|
+ " AND BITAND(km.ins_kenmerk_rolcode, " + myreadrolcode + ") > 0"
|
|
+ " AND d.ins_deel_key = " + ins_key;
|
|
|
|
var sql_allebijlagen = sql_taakbijlagen + " UNION " + sql_deelbijlagen
|
|
+ " ORDER BY ins_deel_omschrijving, fac_bijlagen_aanmaak DESC, 3, 4";
|
|
|
|
var buttons = [];
|
|
buttons.push({ icon: "fa-columns", title: L("lcl_scf_columns"), action: "openColumns()"});
|
|
|
|
var rst = new ResultsetTable({ keyColumn: "fac_bijlagen_key",
|
|
sql: sql_allebijlagen,
|
|
ID: "insdoctable",
|
|
tabs_code: "insdoctable",
|
|
buttons: buttons,
|
|
showAll: true,
|
|
outputmode: outputmode,
|
|
title: L("lcl_ins_bijlagen")
|
|
});
|
|
|
|
rst.addColumn(new Column({caption: L("lcl_ins_object"), content: "ins_deel_omschrijving", purpose: PRINTING_ONLY})); // want dit is een subtab van dit object
|
|
rst.addColumn(new Column({caption: L("lcl_date"), content: "fac_bijlagen_aanmaak", nowrap: true}));
|
|
rst.addColumn(new Column({caption: L("lcl_ins_controle"), content: "ins_srtcontrole_omschrijving"}));
|
|
rst.addColumn(new Column({caption: L("lcl_obj_prop_dsc"), content: "kenmerk_omschrijving", nowrap: true}));
|
|
rst.addColumn(new Column({caption: L("lcl_filename"), content: fnFilename, colName: "fnFilename"}));
|
|
rst.addColumn(new Column({caption: L("lcl_filesize"), content: fnFilesize, colName: "fnFilesize", datatype: "number" })); // number zorgt dat ik nog kan sorteren (ondanks de kB tekst)
|
|
// no actions
|
|
var cnt = rst.processResultset();
|
|
|
|
%>
|
|
</body>
|
|
</html>
|
|
<% ASPPAGE_END(); %>
|