113 lines
5.5 KiB
C++
113 lines
5.5 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: ALG/alg_flexkenmerk.inc
|
|
Description: Functie die html code genereert voor de presentatie van de flexvelden
|
|
Parameters: urole Rol van de gebruiker (frontend, frontoffice, backoffice, management info)
|
|
onrgoed_niveau Onroerendgoed niveua
|
|
reado Readonly
|
|
this_alg { readman, readuse Voor tonen
|
|
writeman, writeuse } (voor als niet reado)
|
|
advanced Geadvanceerd
|
|
Context: Functie wordt aangeroepen door
|
|
1) load_kenmerk.asp
|
|
2) alg_edit_xxx.asp die initieel serverside deze html code invoegt.
|
|
Note:
|
|
*/ %>
|
|
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
|
<%
|
|
function generateFlexKenmerkBlock(params)
|
|
{
|
|
var onrgoed_key = params.onrgoed_key; // Onroerendgoed key
|
|
var onrgoed_niveau = params.onrgoed_niveau; // Onroerendgoed niveau
|
|
var reado = params.reado; // Readonly
|
|
var advanced = params.advanced; // Geavanceerd
|
|
var hasfilter = params.hasfilter? params.hasfilter : null;
|
|
|
|
function isReadonly (oRs)
|
|
{
|
|
if (reado)
|
|
return true;
|
|
var rolcode = oRs("kenmerk_rolcode").value;
|
|
var canWrite = (params.this_alg.writeman && (rolcode&1)) || (params.this_alg.writeuse && (rolcode&2));
|
|
|
|
return !canWrite; // readonly
|
|
}
|
|
|
|
function isInvisible(oRs)
|
|
{
|
|
var ktype = oRs("kenmerk_kenmerktype").value;
|
|
if (params.multi)
|
|
return (ktype == 'M' || ktype == 'F' || ktype == 'E'); // onzichtbaar bij multi
|
|
}
|
|
|
|
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
|
var myreadrolcode = 0 + (params.this_alg.readman ? 1 : 0)
|
|
+ (params.this_alg.readuse ? 2 : 0);
|
|
|
|
var sql = "SELECT k.alg_kenmerk_key kenmerk_key"
|
|
+ " , 1 kenmerk_key_count"
|
|
+ " , NULL srtkenmerk_key"
|
|
+ " , " + lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key") + " kenmerk_omschrijving"
|
|
+ " , k.alg_kenmerk_kenmerktype kenmerk_kenmerktype"
|
|
+ " , k.fac_kenmerkdomein_key kenmerkdomein_key"
|
|
+ " , k.alg_kenmerk_lengte kenmerk_lengte"
|
|
+ " , k.alg_kenmerk_dec kenmerk_dec"
|
|
+ " , k.alg_kenmerk_nmin kenmerk_nmin"
|
|
+ " , k.alg_kenmerk_nmax kenmerk_nmax"
|
|
+ " , k.alg_kenmerk_systeem kenmerk_systeem"
|
|
+ (onrgoed_key > 0
|
|
? " , (SELECT MAX(CASE WHEN k.alg_kenmerk_kenmerktype = 'M'"
|
|
+ " THEN NULL"
|
|
+ " ELSE v.alg_onrgoedkenmerk_waarde"
|
|
+ " END)"
|
|
+ " FROM alg_onrgoedkenmerk v "
|
|
+ " WHERE v.alg_onrgoed_key = " + onrgoed_key
|
|
+ " AND v.alg_onrgoed_niveau = " + safe.quoted_sql(onrgoed_niveau)
|
|
+ " AND v.alg_kenmerk_key = k.alg_kenmerk_key"
|
|
+ " AND v.alg_onrgoedkenmerk_verwijder IS NULL)"
|
|
: " , " + lcl.xsql("k.alg_kenmerk_default", "k.alg_kenmerk_key")
|
|
) + " kenmerk_waarde"
|
|
+ " , k.alg_kenmerk_volgnr kenmerk_volgnr"
|
|
+ " , k.alg_kenmerk_rolcode kenmerk_rolcode"
|
|
+ " , " + lcl.xsql("k.alg_kenmerk_dimensie", "k.alg_kenmerk_key") +" kenmerk_dimensie"
|
|
+ " , " + lcl.xsql("k.alg_kenmerk_hint", "k.alg_kenmerk_key") +" kenmerk_hint"
|
|
+ " , " + lcl.xsql("k.alg_kenmerk_default", "k.alg_kenmerk_key") + " kenmerk_default"
|
|
+ " , k.alg_kenmerk_show_expr kenmerk_show_expr"
|
|
+ " , k.alg_kenmerk_verplicht kenmerk_verplicht"
|
|
+ " , k.alg_kenmerk_groep kenmerk_groep"
|
|
+ " , NULL otherpath"
|
|
+ " , k.alg_kenmerk_toonbaar kenmerk_toonbaar"
|
|
+ " , k.alg_kenmerk_uniek kenmerk_uniek"
|
|
+ " , k.alg_kenmerk_regexp kenmerk_regexp"
|
|
+ " , k.fac_functie_key"
|
|
+ " FROM alg_kenmerk k "
|
|
+ " WHERE k.alg_kenmerk_niveau = " + safe.quoted_sql(onrgoed_niveau)
|
|
+ " AND k.alg_kenmerk_verwijder IS NULL "
|
|
+ " AND BITAND(alg_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
|
+ " ORDER BY k.alg_kenmerk_volgnr"
|
|
+ " , " + lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key");
|
|
|
|
var trn = 0; // fijn, maar waarom?
|
|
|
|
listKenmerk(sql,
|
|
"ALG", //module
|
|
onrgoed_key,
|
|
{
|
|
kenmerk_search: advanced,
|
|
fnIsReadonly: isReadonly,
|
|
hideVervallen: onrgoed_key<0,
|
|
reado: reado,
|
|
fnIsInvisible: isInvisible,
|
|
multiMode: params.multi,
|
|
mobile: params.mobile,
|
|
parentKey: onrgoed_key,
|
|
kenmerk_module: onrgoed_niveau,
|
|
hasfilter: hasfilter,
|
|
relativeValuesAllowed: params.multi
|
|
}
|
|
);
|
|
}
|
|
%>
|