903 lines
47 KiB
HTML
903 lines
47 KiB
HTML
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: fac/fac_menu.inc.asp
|
|
Context:
|
|
|
|
Levert de div "menutabs" op met alle voor deze user beschikbare opties
|
|
(en niets meer dan dat)
|
|
Deze div heeft de nesting
|
|
<div id="menutabs">
|
|
<ul></ul>
|
|
<div id="ProfFAC"></div>
|
|
<div id="PersFAC"></div>
|
|
<div id="MgtFAC"></div>
|
|
</div>
|
|
*/
|
|
%>
|
|
<!--#include file="fac.inc" -->
|
|
<%
|
|
|
|
var MENU = { PERS:0, PROF:1, MGT:2, MOB:3, TAB:5, FAV:6 };
|
|
|
|
// Zoekt een plaatje onder S("menu_image_path") met fallback naar ../Pictures
|
|
var fso = Server.CreateObject("Scripting.FileSystemObject");
|
|
function findImage(filename)
|
|
{
|
|
if (fso.FileExists(Server.MapPath(S("menu_image_path") + filename)))
|
|
return S("menu_image_path") + filename;
|
|
if (fso.FileExists(Server.MapPath("../Pictures/" + filename)))
|
|
return "../Pictures/" + filename;
|
|
return "";
|
|
}
|
|
|
|
function showImage (img, cls)
|
|
{
|
|
if (!img)
|
|
return "";
|
|
if (img.match(/^fa-/))
|
|
return "<i class='fa fa-fw {0} {1}'></i>".format(cls, img);
|
|
|
|
var newimg = findImage(img);
|
|
if (!newimg)
|
|
return "<i class='fa fa-fw fa-question fa-spin {0}' title='{1}'></i>".format(cls, img);
|
|
else
|
|
return "<img class='{0}' src='{1}'>".format(cls, safe.htmlattr(newimg));
|
|
}
|
|
|
|
// Maak een lijstje met items onder een kopje
|
|
// Als er meer dan 1 items meer dan max_lines zijn verschijnt een More...-regel
|
|
// Het aantal zichtbare regels is dus altijd maximaal max_lines+1.
|
|
function CreateItems(menuItems, pmode, start_collapsed, max_lines)
|
|
{
|
|
%><ul <%=start_collapsed?'style="display:none"':''%>><%
|
|
for (var j=0; j < menuItems.length; j++)
|
|
{
|
|
var itm = menuItems[j];
|
|
if (itm.orggroep == MENU.TAB && pmode == 1) // pinned tabs not under favs on desktop portal
|
|
continue;
|
|
var ttl = "";
|
|
if (itm.info)
|
|
ttl=" title='"+safe.htmlattr(itm.info)+"'";
|
|
var showtxt = ""; // Het zichtbare deel
|
|
if (itm.image)
|
|
showtxt = showImage(itm.image, 'mimg');
|
|
|
|
showtxt += (itm.level < 1? itm.name : safe.html(itm.name));
|
|
var unpin = (itm.orggroep == MENU.FAV && pmode != 3 // niet op portal
|
|
? "<span class='menupinned' title='" + L("lcl_current_fav_unsave") + "'"
|
|
+ " onclick='FcltMgr.stopPropagation(event);FcltMgr.saveFavMenu(this);'"
|
|
+ " fav_ttl='" + safe.htmlattr(itm.name) + "'>"
|
|
+ I("fa-thumb-tack")
|
|
+ "</span>"
|
|
: ""
|
|
);
|
|
var action = "";
|
|
if (itm.href)
|
|
{ // '*' voor een reguliere menuoptie forceert nieuw window
|
|
var protocol = itm.href.split(":")[0];
|
|
if (protocol.length > 0 && protocol.match(/^http|https|mailto|tel$/) || itm.href.slice(0,1) == "*")
|
|
{
|
|
if (itm.href.slice(0,1) == "*")
|
|
itm.href = "../../" + itm.href.substr(1);
|
|
action = " onclick=\"FcltMgr.stopPropagation(event);window.open('" + safe.jsstring(itm.href) + "')\"";
|
|
} else if (itm.href.slice(0,11) == "javascript:") {
|
|
action = " onclick=\"FcltMgr.stopPropagation(event);" + safe.htmlattr(itm.href) + "\"";
|
|
} else {
|
|
action = " onclick=\"" + safe.htmlattr("menu(event,'" + safe.jsstring(itm.href) + "', this, " + (itm.menu_key||-1) + ");") + "\"";
|
|
}
|
|
} else { // MGE: komt dit wel voor? Een submenu item zonder href (link) naar een pagina?
|
|
action = "";
|
|
}
|
|
%>
|
|
<li class="mi<%=itm.level>0?" mi"+itm.level:""%>"<%=ttl%> <%=j>=max_lines&&max_lines!=menuItems.length-1?"style='display:none'":""%><%= action %>>
|
|
<%=unpin%><%=showtxt%>
|
|
</li>
|
|
<%
|
|
|
|
}
|
|
if (j > max_lines&&max_lines!=menuItems.length-1)
|
|
{
|
|
%><li class="mi more" onclick="$('li', $(this).closest('ul')).show();$(this).hide();FcltMgr.resized();"><%=L("lcl_rs_truncated")%></li><%
|
|
}
|
|
%></ul><%
|
|
}
|
|
|
|
// nog verfijnen? diepere levels?
|
|
function CreateMenuGroep(Koppen, pmode)
|
|
{
|
|
function groepHeeftItems(pkop, pmode)
|
|
{
|
|
var heeft_items = false;
|
|
if (pmode == 1)
|
|
{
|
|
for (var i=0; i<pkop.Items.length; i++)
|
|
{
|
|
if ( (pkop.Items[i].group == pkop.Items[i].orggroep)
|
|
|| (pkop.Items[i].group == 0 && pkop.Items[i].orggroep == MENU.FAV)
|
|
)
|
|
heeft_items = true;
|
|
}
|
|
}
|
|
else
|
|
heeft_items = true;
|
|
return heeft_items;
|
|
}
|
|
|
|
%><ul><%
|
|
if (Koppen.length > S("menu_collapse_threshold")) menu_start_collapsed = 1; else menu_start_collapsed = 0;
|
|
for (var i = 0; i<Koppen.length; i++)
|
|
{
|
|
var menuKop = Koppen[i];
|
|
var ttl = "";
|
|
if (menuKop.info)
|
|
ttl=' title="'+safe.htmlattr(menuKop.info)+'"';
|
|
// Gaat het hier om een hoofdmenuitem met submenuitems of om een image link (logo) als menu item?
|
|
// Een hoofdmenuitem heeft submenuitems (en heeft geen url)
|
|
if (menuKop.Items.length > 0 && groepHeeftItems(menuKop, pmode))
|
|
{ // Hoofdmenuitems met submenuitems
|
|
%><li class="mk"<%=ttl%>><%
|
|
if (S("menu_use_menuicons") == 1)
|
|
{
|
|
if (menuKop.image && menuKop.image != "")
|
|
{
|
|
showtxt = showImage(menuKop.image, 'micon fa-2x');
|
|
Response.Write(showtxt);
|
|
} else {
|
|
%><span class="nomicon"> </span><% // invisible but take up the same space as an image
|
|
}
|
|
}%>
|
|
<span class="menukop"><%= safe.html(menuKop.label) %></span>
|
|
<% CreateItems(menuKop.Items, pmode, !menuKop.startopen && menu_start_collapsed==1) %>
|
|
</li><%
|
|
}
|
|
else
|
|
{ // Gaat het hier om een image link (logo) als menu item?
|
|
// Een logo als menuitem als
|
|
// 1) Menuitem moet een hoofdmenuitem zijn (Instelling "Topniveau" moet aan staan) die geen enkele submenu item heeft
|
|
// 2) Met plaatje/logo
|
|
// 3) Met een url naar de pagina
|
|
if (menuKop.image && menuKop.image != "" && menuKop.href && menuKop.href != "")
|
|
{ // Het gaat hier over een image als menu item
|
|
%><li class="mklogo"<%=ttl%>><span class="menulinkkop"><%
|
|
var kitm = menuKop;
|
|
if (kitm.href.slice(0,7) == "http://" || kitm.href.slice(0,8) == "https://" || kitm.href.slice(0,11) == "javascript:"){
|
|
%><a href="<%=safe.htmlattr(kitm.href)%>" target="_blank"><%
|
|
} else {
|
|
%><a onclick='FcltMgr.openDetail("<%=safe.htmlattr(kitm.href)%>", "<%=safe.htmlattr(menuKop.label)%>")'><%
|
|
}
|
|
%><%=showImage(menuKop.image, 'mk')%>
|
|
</a></span><%
|
|
%></li><%
|
|
|
|
}
|
|
}
|
|
}
|
|
%></ul><%
|
|
}
|
|
|
|
function generatePortalmenu(koppen)
|
|
{
|
|
if (koppen.length == 0)
|
|
return;
|
|
|
|
%><table><%
|
|
var col=0;
|
|
// Hoeveel procent per kolom igv volle breedte
|
|
var cw = parseInt(100 / S("portalmenucols") , 10);
|
|
for (var i = 0; i<koppen.length; i++)
|
|
{
|
|
var menuKop = koppen[i];
|
|
// Gaat het hier om een hoofdmenuitem met submenuitems of om een image link (logo) als menu item?
|
|
// Een hoofdmenuitem heeft submenuitems (en heeft geen url)
|
|
if (menuKop.Items.length > 0)
|
|
{ // Hoofdmenuitems met submenuitems
|
|
if (col==0)
|
|
Response.Write("<tr>");
|
|
|
|
var hasOneItem = S("portalmenu_combine_single") && menuKop.Items.length == 1;
|
|
Response.Write("<td"+(cw > 0 ? " style='width:"+cw+"%'": "")+">");
|
|
|
|
var ttl = "";
|
|
if (menuKop.info)
|
|
ttl=" title='"+safe.htmlattr(menuKop.info)+"'";
|
|
|
|
if (!hasOneItem)
|
|
{ %>
|
|
<span class="menuimg"<%=ttl%>>
|
|
<%=showImage(menuKop.image, 'mklogo fa-4x')%>
|
|
</span>
|
|
<% } %>
|
|
<div class='portalmenukop<%=hasOneItem?" withimg":""%>'>
|
|
<span class="menukop"<%=ttl%>>
|
|
<%=safe.html(menuKop.label)%>
|
|
</span>
|
|
<% if (hasOneItem)
|
|
{ %>
|
|
<span class="menuimg"<%=ttl%>>
|
|
<%=showImage(menuKop.image, 'mklogo fa-4x')%>
|
|
</span>
|
|
<% }
|
|
CreateItems(menuKop.Items, 3, false, S("portalmenulines"));
|
|
%></div><%
|
|
|
|
Response.Write("</td>");
|
|
col ++;
|
|
if (col==S("portalmenucols"))
|
|
{
|
|
Response.Write("</tr>");
|
|
col = 0;
|
|
cw = 0; // alleen de eerste rij is voldoende
|
|
}
|
|
}
|
|
}
|
|
%></table><%
|
|
}
|
|
|
|
function fillMenuArray(portalOnly, mobileOnly) {
|
|
// Levert een tweedimensionaal menu-array op met alle opties, in de juiste volgorde,
|
|
// waarbij 0=personal, 1=professional, 2=management, 3=mobile, 4=?, 5=pinned tab, 6=favoriten menu
|
|
// als er nog niet is ingelogd, wordt null opgeleverd.
|
|
|
|
var tmp = fac.myfunctionssqlstring(user_key);
|
|
var lmyreadfacfunctiekeys = tmp.read;
|
|
var lmywritefacfunctiekeys = tmp.write;
|
|
|
|
// Deze querie levert de geldende menu-opties op, dat zijn:
|
|
// die uit fac_menu
|
|
// - waarvoor ik de juiste autorisatie heb (functie + read of write)
|
|
// - geen autorisatie gegevens is ook altijd goed
|
|
// - waar aangegeven (draft) vermenigvuldigd met de module-srt/disciplines waarvoor ik rechten heb (functie +read of write)
|
|
// Voor de functies MET disciplines-autorisaties kunnen we beter direct bijjoinen, vond ik.
|
|
// TODO: (in menufunctions.inc): de diepere levels beter/anders supporten (openklapbaar)
|
|
|
|
/* var selectImage = (mobileOnly
|
|
? ", fac_menuitems_image" // evt image
|
|
+", fac_menu_image" // evt overrule
|
|
: ", COALESCE (fac_menu_image, fac_menuitems_image) image"
|
|
);
|
|
*/
|
|
// waarom bovenstaand verschil? Dit moet toch gewoon kunnen?
|
|
var selectImage = ", COALESCE (fac_menu_image, fac_menuitems_image) image";
|
|
|
|
|
|
var lsql = "SELECT * FROM ("
|
|
+ " SELECT fac_menu_key"
|
|
+ " , " + lcl.xsql2('COALESCE (fac_menu_altlabel, fac_menuitems_label)', 'FAC_MENU_ALTLABEL', 'fac_menu_key') + " label"
|
|
+ " , to_char(null) exploded "
|
|
+ " , REPLACE(REPLACE(COALESCE (fac_menu_alturl, fac_menuitems_url) "
|
|
+ " || CASE WHEN m.ins_discipline_key IS NOT NULL THEN '&dis_key='|| m.ins_discipline_key END "
|
|
+ " || CASE WHEN m.ins_srtdiscipline_key IS NOT NULL THEN '&srtdisc='|| m.ins_srtdiscipline_key END, '{0}', m.ins_srtdiscipline_key), '{1}', m.ins_discipline_key) "
|
|
+ " url "
|
|
+ " , fac_menu_filter filter"
|
|
+ selectImage
|
|
+ " , COALESCE (fac_menu_altgroep, fac_menuitems_groep) groep"
|
|
+ " , fac_menu_level "
|
|
+ " , fac_menu_portal"
|
|
+ " , " + lcl.xsqla('fac_menu_info', 'fac_menu_key')
|
|
+ " , fac_menu_volgnr"
|
|
+ " , COALESCE (m.fac_functie_key, mi.fac_functie_key) fac_functie_key"
|
|
+ " , COALESCE (mi.fac_menuitems_rw, 'R')"
|
|
+ " , 0 depth"
|
|
+ " FROM fac_menu m"
|
|
+ " , fac_menuitems mi"
|
|
+ " WHERE m.fac_menuitems_key = mi.fac_menuitems_key(+)"
|
|
// Systeemautorisatie
|
|
+ " AND (mi.fac_functie_key IS NULL" /* niet-explodeerbare opties zonder autorisaties */
|
|
+ " OR (COALESCE (mi.fac_menuitems_rw, 'R') = 'R' AND mi.fac_functie_key IN (" + lmyreadfacfunctiekeys + "))" /* niet-explodeerbare opties met read-autorisatie */
|
|
+ " OR (COALESCE (mi.fac_menuitems_rw, 'R') = 'W' AND mi.fac_functie_key IN (" + lmywritefacfunctiekeys + "))" /* niet-explodeerbare opties met write-autorisatie */
|
|
+ " )"
|
|
// Extra autorisatie
|
|
+ " AND (m.fac_functie_key IS NULL" /* niet-explodeerbare opties zonder autorisaties */
|
|
+ " OR (COALESCE (mi.fac_menuitems_rw, 'R') = 'R' AND m.fac_functie_key IN (" + lmyreadfacfunctiekeys + "))" /* niet-explodeerbare opties met read-autorisatie */
|
|
+ " OR (COALESCE (mi.fac_menuitems_rw, 'R') = 'W' AND m.fac_functie_key IN (" + lmywritefacfunctiekeys + "))" /* niet-explodeerbare opties met write-autorisatie */
|
|
+ " )"
|
|
|
|
if (!mobileOnly)
|
|
{
|
|
lsql +=" AND COALESCE (mi.fac_menuitems_disc, 0) = 0"
|
|
+ " AND COALESCE (mi.fac_menuitems_srtdisc, 0) = 0"
|
|
+ (portalOnly
|
|
? " AND fac_menu_portal=1"
|
|
: "")
|
|
// Extra autorisatie met een gekozen ins_discipline of ins_srtdiscipline
|
|
+ " AND ((m.ins_discipline_key IS NULL AND m.ins_srtdiscipline_key IS NULL)"
|
|
+ " OR (m.ins_discipline_key IS NOT NULL AND EXISTS "
|
|
+ "(SELECT ''"
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg"
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key"
|
|
+ " AND (g.ins_discipline_key = m.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_read < 9"
|
|
+ " AND fac_gebruiker_alg_level_read < 9"
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ "))"
|
|
+ " OR (m.ins_srtdiscipline_key IS NOT NULL AND EXISTS "
|
|
+ "(SELECT ''"
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg, ins_tab_discipline d"
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key"
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND d.ins_srtdiscipline_key = m.ins_srtdiscipline_key"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_read < 9"
|
|
+ " AND fac_gebruiker_alg_level_read < 9"
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ "))"
|
|
+ ")"
|
|
|
|
+ " UNION ALL" // BES artikelcatalogi zonder een afzonderlijke vermelding
|
|
+ " SELECT fac_menu_key"
|
|
+ " , " + lcl.xsql2('COALESCE (fac_menu_altlabel, fac_menuitems_label)', 'FAC_MENU_ALTLABEL', 'fac_menu_key') + " label"
|
|
+ " , CASE WHEN sd.ins_srtdiscipline_omschrijving IS NULL " // geen lcl.xsql; veronderstelt: geen basistaal, dan ook geen vertaling
|
|
+ " THEN ''"
|
|
+ " ELSE " + lcl.xsql('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key') + "||' '"
|
|
+ " END || "
|
|
+ lcl.xsql('d.ins_discipline_omschrijving', 'd.ins_discipline_key')
|
|
+ " exploded "
|
|
+ " , REPLACE(COALESCE (fac_menu_alturl, fac_menuitems_url) || '&dis_key='|| d.ins_discipline_key, '{1}', d.ins_discipline_key) url "
|
|
+ " , fac_menu_filter filter"
|
|
+ " , COALESCE (fac_menu_image, fac_menuitems_image) image"
|
|
+ " , COALESCE (fac_menu_altgroep, fac_menuitems_groep)groep"
|
|
+ " , fac_menu_level "
|
|
+ " , fac_menu_portal"
|
|
+ " , " + lcl.xsql('d.ins_discipline_opmerking', 'd.ins_discipline_key') + " fac_menu_info" // info per discipline
|
|
+ " , fac_menu_volgnr"
|
|
+ " , COALESCE (m.fac_functie_key, mi.fac_functie_key) fac_functie_key"
|
|
+ " , COALESCE (mi.fac_menuitems_rw, 'R')"
|
|
+ " , 2 depth"
|
|
+ " FROM fac_menu m"
|
|
+ " , fac_menuitems mi"
|
|
+ " , ins_tab_discipline d"
|
|
+ " , ins_srtdiscipline sd "
|
|
+ " WHERE m.fac_menuitems_key = mi.fac_menuitems_key(+)"
|
|
+ " AND d.ins_discipline_module = mi.fac_menuitems_module"
|
|
+ " AND d.ins_discipline_verwijder IS NULL"
|
|
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)"
|
|
+ " AND COALESCE (mi.fac_menuitems_disc, 0) = 1"
|
|
+ (portalOnly
|
|
? " AND m.fac_menu_portal = 1"
|
|
: "")
|
|
+ " AND d.ins_discipline_key NOT IN (" /* sluit items met een afzonderlijke vermelding uit */
|
|
+ " SELECT mm.ins_discipline_key"
|
|
+ " FROM fac_menu mm "
|
|
+ " WHERE mm.fac_functie_key = mi.fac_functie_key" // Alleen bij extra autorisatie kun je fac_menu.ins_discipline_key hebben
|
|
+ " AND mm.ins_discipline_key IS NOT NULL"
|
|
+ " )"
|
|
+ " AND (COALESCE (m.fac_functie_key, mi.fac_functie_key) IS NULL" /* disc-explodeerbare opties zonder autorisaties */
|
|
+ " OR (COALESCE (mi.fac_menuitems_rw, 'R') = 'R'"
|
|
+ " AND EXISTS"
|
|
+ " (SELECT ''"
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg"
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key"
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = mi.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_read < 9"
|
|
+ " AND fac_gebruiker_alg_level_read < 9"
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ " )"
|
|
+ " AND (EXISTS"
|
|
+ " (SELECT ''"
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg"
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key"
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_read < 9"
|
|
+ " AND fac_gebruiker_alg_level_read < 9"
|
|
+ " AND gg.prs_perslid_key = " + user_key + ")"
|
|
+ " OR m.fac_functie_key IS NULL)"
|
|
+ " )"
|
|
+ " OR (COALESCE (mi.fac_menuitems_rw, 'R') = 'W'"
|
|
+ " AND EXISTS"
|
|
+ " (SELECT ''"
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg"
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key"
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = mi.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_write < 9"
|
|
+ " AND fac_gebruiker_alg_level_write < 9"
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ " )"
|
|
+ " AND (EXISTS"
|
|
+ " (SELECT ''"
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg"
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key"
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_write < 9"
|
|
+ " AND fac_gebruiker_alg_level_write < 9"
|
|
+ " AND gg.prs_perslid_key = " + user_key + ") "
|
|
+ " OR m.fac_functie_key IS NULL)"
|
|
+ " )"
|
|
+ " )"
|
|
|
|
+ " UNION ALL" // MLD srtdisciplines zonder een afzonderlijke vermelding
|
|
+ " SELECT m.fac_menu_key"
|
|
+ " , " + lcl.xsql2('COALESCE (fac_menu_altlabel, fac_menuitems_label)', 'FAC_MENU_ALTLABEL', 'fac_menu_key') + " label"
|
|
+ " , " + lcl.xsql('sd.ins_srtdiscipline_omschrijving', 'sd.ins_srtdiscipline_key') + " exploded"
|
|
+ " , COALESCE (m.fac_menu_alturl, mi.fac_menuitems_url) || '&srtdisc='|| sd.ins_srtdiscipline_key url "
|
|
+ " , fac_menu_filter filter"
|
|
+ " , COALESCE (m.fac_menu_image, mi.fac_menuitems_image) image"
|
|
+ " , COALESCE (m.fac_menu_altgroep, mi.fac_menuitems_groep) groep"
|
|
+ " , m.fac_menu_level "
|
|
+ " , m.fac_menu_portal"
|
|
+ " , "+lcl.xsql('sd.ins_srtdiscipline_opmerking', 'sd.ins_srtdiscipline_key')+" fac_menu_info" // info per srtdiscipline
|
|
+ " , m.fac_menu_volgnr"
|
|
+ " , COALESCE (m.fac_functie_key, mi.fac_functie_key)"
|
|
+ " , mi.fac_menuitems_rw"
|
|
+ " , 1 depth"
|
|
+ " FROM fac_menu m"
|
|
+ " , fac_menuitems mi"
|
|
+ " , ins_srtdiscipline sd "
|
|
+ " WHERE m.fac_menuitems_key = mi.fac_menuitems_key(+)"
|
|
+ " AND sd.ins_srtdiscipline_module = mi.fac_menuitems_module "
|
|
+ " AND sd.ins_srtdiscipline_verwijder IS NULL "
|
|
+ (portalOnly
|
|
? " AND m.fac_menu_portal = 1"
|
|
: "")
|
|
+ " AND COALESCE (mi.fac_menuitems_srtdisc, 0) = 1 "
|
|
+ " AND mi.fac_menuitems_module != 'RES' " // Voor MLD heeft ins_srtdiscipline (vakgroeptype) alleen een waarde
|
|
+ " AND sd.ins_srtdiscipline_key <> "+ S("kto_srtdiscipline_key") // die tonen we niet in het menu
|
|
+ " AND sd.ins_srtdiscipline_key IN "
|
|
+ " (SELECT d.ins_srtdiscipline_key "
|
|
+ " FROM ins_tab_discipline d "
|
|
+ " WHERE d.ins_discipline_verwijder IS NULL "
|
|
+ " AND d.ins_srtdiscipline_key NOT IN " /* sluit items met een afzonderlijke vermelding uit */
|
|
+ " (SELECT mm.ins_srtdiscipline_key "
|
|
+ " FROM fac_menu mm "
|
|
+ " WHERE mm.fac_functie_key = mi.fac_functie_key" // Alleen bij extra autorisatie kun je fac_menu.ins_discipline_key hebben
|
|
+ " AND mm.ins_srtdiscipline_key IS NOT NULL) "
|
|
+ " AND (COALESCE (m.fac_functie_key, mi.fac_functie_key) IS NULL " /* srtdisc-explodeerbare opties zonder autorisaties */
|
|
+ " OR (mi.fac_menuitems_rw = 'R'"
|
|
+ " AND EXISTS " // Systeemautorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = mi.fac_functie_key "
|
|
+ " AND fac_gebruiker_prs_level_read < 9 "
|
|
+ " AND fac_gebruiker_alg_level_read < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ " )"
|
|
+ " AND (EXISTS " // Extra autorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_read < 9 "
|
|
+ " AND fac_gebruiker_alg_level_read < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key + ")"
|
|
+ " OR m.fac_functie_key IS NULL)"
|
|
+ " )"
|
|
+ " OR (mi.fac_menuitems_rw = 'W'"
|
|
+ " AND EXISTS " // Systeemautorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = mi.fac_functie_key "
|
|
+ " AND fac_gebruiker_prs_level_write < 9 "
|
|
+ " AND fac_gebruiker_alg_level_write < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ " ) "
|
|
+ " AND (EXISTS " // Extra autorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_write < 9 "
|
|
+ " AND fac_gebruiker_alg_level_write < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key + ")"
|
|
+ " OR m.fac_functie_key IS NULL)"
|
|
+ " ))) "
|
|
|
|
+ " UNION ALL" // RES: srtactiviteiten
|
|
+ " SELECT DISTINCT m.fac_menu_key"
|
|
+ " , " + lcl.xsql2('COALESCE (fac_menu_altlabel, fac_menuitems_label)', 'FAC_MENU_ALTLABEL', 'fac_menu_key') + " label"
|
|
+ " , " + lcl.xsql('sa.res_srtactiviteit_omschrijving', 'sa.res_srtactiviteit_key') + " exploded"
|
|
+ " , COALESCE (m.fac_menu_alturl, mi.fac_menuitems_url) || '&srtact=' || sa.res_srtactiviteit_key url "
|
|
+ " , fac_menu_filter filter"
|
|
+ " , COALESCE (m.fac_menu_image, mi.fac_menuitems_image) image"
|
|
+ " , COALESCE (m.fac_menu_altgroep, mi.fac_menuitems_groep) groep"
|
|
+ " , m.fac_menu_level "
|
|
+ " , m.fac_menu_portal"
|
|
+ " , " + lcl.xsql('sa.res_srtactiviteit_opmerking', 'sa.res_srtactiviteit_key') + " fac_menu_info" // info per srtdiscipline
|
|
+ " , m.fac_menu_volgnr"
|
|
+ " , COALESCE (m.fac_functie_key, mi.fac_functie_key)"
|
|
+ " , mi.fac_menuitems_rw"
|
|
+ " , 1 depth"
|
|
+ " FROM fac_menu m"
|
|
+ " , fac_menuitems mi"
|
|
+ " , res_srtactiviteit sa"
|
|
+ " WHERE m.fac_menuitems_key = mi.fac_menuitems_key(+)"
|
|
+ " AND sa.res_srtactiviteit_verwijder IS NULL"
|
|
+ (portalOnly
|
|
? " AND m.fac_menu_portal = 1"
|
|
: "")
|
|
+ " AND COALESCE (mi.fac_menuitems_srtdisc, 0) = 1"
|
|
+ " AND mi.fac_menuitems_module = 'RES' "
|
|
+ " AND sa.res_srtactiviteit_key IN "
|
|
+ " (SELECT ra.res_srtactiviteit_key "
|
|
+ " FROM ins_tab_discipline d, res_activiteitdiscipline ad, res_activiteit ra "
|
|
+ " WHERE d.ins_discipline_module = mi.fac_menuitems_module "
|
|
+ " AND d.ins_discipline_verwijder IS NULL "
|
|
+ " AND ra.res_activiteit_verwijder IS NULL "
|
|
+ " AND ad.res_activiteit_key = ra.res_activiteit_key "
|
|
+ " AND d.ins_discipline_key = ad.res_discipline_key "
|
|
+ " AND d.ins_srtdiscipline_key NOT IN " /* sluit items met een afzonderlijke vermelding uit */
|
|
+ " (SELECT mm.ins_srtdiscipline_key "
|
|
+ " FROM fac_menu mm "
|
|
+ " WHERE mm.fac_functie_key = mi.fac_functie_key" // Alleen bij extra autorisatie kun je fac_menu.ins_discipline_key hebben
|
|
+ " AND mm.ins_srtdiscipline_key IS NOT NULL) "
|
|
+ " AND (COALESCE (m.fac_functie_key, mi.fac_functie_key) IS NULL " /* srtact-explodeerbare opties zonder autorisaties */
|
|
+ " OR (mi.fac_menuitems_rw = 'R' "
|
|
+ " AND EXISTS " // Systeemautorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = mi.fac_functie_key "
|
|
+ " AND fac_gebruiker_prs_level_read < 9 "
|
|
+ " AND fac_gebruiker_alg_level_read < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ " )"
|
|
+ " AND (EXISTS " // Extra autorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_read < 9 "
|
|
+ " AND fac_gebruiker_alg_level_read < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key + ")"
|
|
+ " OR m.fac_functie_key IS NULL)"
|
|
+ " )"
|
|
+ " OR (mi.fac_menuitems_rw = 'W' "
|
|
+ " AND EXISTS " // Systeemautorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = mi.fac_functie_key "
|
|
+ " AND fac_gebruiker_prs_level_write < 9 "
|
|
+ " AND fac_gebruiker_alg_level_write < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key
|
|
+ " ) "
|
|
+ " AND (EXISTS " // Extra autorisatie
|
|
+ " (SELECT '' "
|
|
+ " FROM fac_groeprechten g, fac_gebruikersgroep gg "
|
|
+ " WHERE g.fac_groep_key = gg.fac_groep_key "
|
|
+ " AND (g.ins_discipline_key = d.ins_discipline_key OR g.ins_discipline_key IS NULL)"
|
|
+ " AND g.fac_functie_key = m.fac_functie_key"
|
|
+ " AND fac_gebruiker_prs_level_write < 9 "
|
|
+ " AND fac_gebruiker_alg_level_write < 9 "
|
|
+ " AND gg.prs_perslid_key = " + user_key + ")"
|
|
+ " OR m.fac_functie_key IS NULL)"
|
|
+ " ))) ";
|
|
}
|
|
lsql += " )";
|
|
lsql += " WHERE groep IS NOT NULL"; // veiligheidje
|
|
lsql += " AND fac_menu_key IN"
|
|
+ " ( SELECT fac_menu_key"
|
|
+ " FROM fac_menu"
|
|
+ " WHERE prs_perslid_key = " + user_key
|
|
+ " OR prs_perslid_key is null"
|
|
+ " )"
|
|
|
|
lsql += (mobileOnly ? " AND groep = " + MENU.MOB : "");
|
|
// Favorieten (groep=6) *voor* de rest van de zelfservice (groep=0)
|
|
lsql += " ORDER BY CASE WHEN groep = 6 OR groep = 5 THEN -1 ELSE groep END, fac_menu_volgnr, label, exploded ";
|
|
|
|
var loRs = Oracle.Execute( lsql );
|
|
|
|
// Verwerk de opties tot menu-array. Het is van belang dat er geen nodeloze
|
|
// items (zoals kop zonder items) in voorkomen, omdat zichtbaarheid
|
|
// van de groep op lengte>0 wordt bepaald
|
|
// Groepen --> Koppen --> Items
|
|
var Groepen = [];
|
|
while( !loRs.eof )
|
|
{
|
|
var groepnr = loRs("groep").value;
|
|
var orggroep = groepnr;
|
|
if (groepnr == MENU.TAB) // Pinned tabs gaan onder favorieten in non-desktop mode
|
|
groepnr = MENU.FAV;
|
|
if (groepnr == MENU.FAV)
|
|
groepnr = MENU.PERS; // Daar stoppen we de favorieten onder
|
|
if (!mobileOnly)
|
|
{
|
|
var mlabel = fac.localstring(loRs("label").value);
|
|
if (loRs("exploded").Value)
|
|
mlabel += " " + loRs("exploded").Value;
|
|
|
|
if (!Groepen[groepnr])
|
|
Groepen[groepnr] = { Koppen: []};
|
|
var grp = Groepen[groepnr];
|
|
|
|
// De allereerste van iedere groep MOET een kop worden
|
|
if (loRs("fac_menu_level").value == 1)
|
|
{
|
|
grp.Koppen.push({ Items: [],
|
|
label: mlabel,
|
|
info: loRs("fac_menu_info").value,
|
|
image: loRs("image").value,
|
|
href:loRs("url").value
|
|
});
|
|
}
|
|
else
|
|
{
|
|
if (!grp.Koppen.length)
|
|
{ // Deze eerste is geen kop; verzin er zelf eentje bij.
|
|
var kop_label = (orggroep == MENU.FAV || orggroep == MENU.TAB ? L("lcl_current_fav") : "<!--auto menukop-->");
|
|
var image = (orggroep == MENU.FAV || orggroep == MENU.TAB ? "fa-heart" : null);
|
|
grp.Koppen.push({ Items: [],
|
|
label: kop_label,
|
|
startopen: true,
|
|
info: null,
|
|
image: image, //null,
|
|
href:null
|
|
});
|
|
}
|
|
var kop = grp.Koppen[grp.Koppen.length-1];
|
|
if (kop.Items.length && kop.Items[kop.Items.length-1].href == loRs("url").value && kop.Items[kop.Items.length-1].name == loRs("label"))
|
|
{
|
|
// skip it
|
|
}
|
|
else
|
|
{
|
|
var xurl = "";
|
|
var url = loRs("url").Value;
|
|
var filters = loRs("filter").Value;
|
|
if (url)
|
|
{
|
|
url = url.replace(/\?$/, "");
|
|
url = url.replace(/\&$/, "");
|
|
xurl = url + ( url
|
|
? (url.indexOf("?") > -1 ? "&" : "?") + (filters ? "fcltfilters=" + safe.url(filters) : "")
|
|
: ""
|
|
);
|
|
}
|
|
kop.Items.push({name: mlabel,
|
|
href: xurl,
|
|
info: loRs("fac_menu_info").value,
|
|
depth: loRs("depth").value,
|
|
img: loRs("image").value,
|
|
menu_key: loRs("fac_menu_key").Value,
|
|
group: groepnr,
|
|
orggroep: orggroep
|
|
})
|
|
}
|
|
}
|
|
}
|
|
else // mobileOnly
|
|
{
|
|
var mlabel = fac.localstring(loRs("label").value);
|
|
var murl = loRs("url").value;
|
|
|
|
// Alleen de eerste keer een groep aanmaken voor mobile menu.
|
|
if (!Groepen[groepnr])
|
|
Groepen[groepnr] = {Koppen: []};
|
|
var grp = Groepen[groepnr]; // altijd 3
|
|
// Voor elk record een kop en item aanmaken
|
|
if (grp.Koppen.length && grp.Koppen[grp.Koppen.length-1].Items[0].href == murl)
|
|
{
|
|
// skip it
|
|
}
|
|
else
|
|
{
|
|
grp.Koppen.push({ Items: [],
|
|
label: mlabel
|
|
});
|
|
var kop = grp.Koppen[grp.Koppen.length-1];
|
|
kop.Items.push({name: mlabel,
|
|
info: loRs("fac_menu_info").value,
|
|
href: murl,
|
|
img: loRs("image").value,
|
|
menu_key: loRs("fac_menu_key").Value,
|
|
group: groepnr,
|
|
orggroep: orggroep
|
|
});
|
|
}
|
|
}
|
|
loRs.MoveNext();
|
|
}
|
|
loRs.close();
|
|
|
|
// Loopje om lege Groepen/ Koppen te verwijderen
|
|
|
|
for (var grp in Groepen)
|
|
{
|
|
for (var kop=0; kop < Groepen[grp].Koppen.length; kop++)
|
|
{
|
|
if (!Groepen[grp].Koppen[kop].Items.length && !Groepen[grp].Koppen[kop].href)
|
|
{
|
|
Groepen[grp].Koppen.splice(kop, 1);
|
|
kop --;
|
|
}
|
|
}
|
|
}
|
|
|
|
return Groepen;
|
|
}
|
|
|
|
// Genereer het menu volgens mode pmode
|
|
// 1 = traditional
|
|
// 2 = tablet like
|
|
// 3 = portal style ("loket")
|
|
// 4 = mobile style
|
|
function generateMenu (pmode, groep) //groep alleen voor mode 3
|
|
{
|
|
if (pmode == 1) {
|
|
|
|
var menuitems = fillMenuArray();
|
|
if (menuitems) {
|
|
var menuTitleLength = 0;
|
|
var menuTitleString = "";
|
|
|
|
if ((menuitems[MENU.PERS] && menuitems[MENU.PERS].Koppen.length > 0) || (menuitems[MENU.FAV] && menuitems[MENU.FAV].Koppen.length > 0)) {
|
|
menuTitleLength++;
|
|
menuTitleString += '<li><a href="#PersFAC"><span class="menutab">' + L("lcl_menu_pers") + '</span></a></li>';
|
|
}
|
|
if ((menuitems[MENU.PROF] && menuitems[MENU.PROF].Koppen.length > 0)) {
|
|
menuTitleLength++;
|
|
menuTitleString += '<li><a href="#ProfFAC"><span class="menutab">' + L("lcl_menu_prof") + '</span></a></li>';
|
|
}
|
|
if ((menuitems[MENU.MGT] && menuitems[MENU.MGT].Koppen.length > 0)) {
|
|
menuTitleLength++;
|
|
menuTitleString += '<li><a href="#MgtFAC"><span class="menutab">' + L("lcl_menu_config") + '</span></a></li>';
|
|
}
|
|
|
|
var disp = menuTitleLength == 1 ? " noToggle\" style=\"display:none\"" : "\"";
|
|
// ui-helper-clearfix wordt er straks door jQuery opgezet bij $("#menutabs").tabs();
|
|
// CONN#19264 Door het alvast zelf te doen wordt een reproduceerbare crash voorkomen!
|
|
%>
|
|
<ul class="ui-tabs-nav ui-helper-clearfix<% Response.Write(disp); %>><%
|
|
Response.write(menuTitleString);
|
|
%></ul>
|
|
<div class="ui-layout-content">
|
|
<%
|
|
if ((menuitems[MENU.PERS] && menuitems[MENU.PERS].Koppen.length > 0)) {
|
|
%><div id="PersFAC" class="ui-tabs-panel ui-tabs-hide"><%
|
|
Response.Write("<div class='filtermenukop'>" + L("lcl_menu_pers") + "</div>");
|
|
if (menuitems[MENU.PERS].Koppen.length > 0)
|
|
CreateMenuGroep(menuitems[MENU.PERS].Koppen, pmode); // zelfservice
|
|
%></div><%
|
|
}
|
|
if ((menuitems[MENU.PROF] && menuitems[MENU.PROF].Koppen.length > 0)) {
|
|
%><div id="ProfFAC" class="ui-tabs-panel"><%
|
|
Response.Write("<div class='filtermenukop'>" + L("lcl_menu_prof") + "</div>");
|
|
CreateMenuGroep(menuitems[MENU.PROF].Koppen, pmode);
|
|
%></div><%
|
|
}
|
|
if ((menuitems[MENU.MGT] && menuitems[MENU.MGT].Koppen.length > 0)) {
|
|
%><div id="MgtFAC" class="ui-tabs-panel ui-tabs-hide"><%
|
|
Response.Write("<div class='filtermenukop'>" + L("lcl_menu_config") + "</div>");
|
|
CreateMenuGroep(menuitems[MENU.MGT].Koppen, pmode);
|
|
%></div>
|
|
<% } %>
|
|
</div>
|
|
|
|
<% // Als er ergens iets is dichtgeklapt dan wordt het tijd voor een zoekveld
|
|
if (menuitems[MENU.PERS].Koppen.length > S("menu_collapse_threshold") ||
|
|
menuitems[MENU.PROF].Koppen.length > S("menu_collapse_threshold") ||
|
|
menuitems[MENU.MGT].Koppen.length > S("menu_collapse_threshold") )
|
|
{
|
|
Response.Write("<input id='menufilter' type='text' placeholder='" + L("lcl_menufilter") + "'>");
|
|
}
|
|
%> <%
|
|
}
|
|
}
|
|
if (pmode == 2) {
|
|
var menuitems = fillMenuArray();
|
|
if (menuitems) {
|
|
%><ul class="ui-tabs-nav ui-helper-clearfix">
|
|
<li><a href="#tabletmenu"><span class="menutab"><%=L("lcl_body_portal")%></span></a></li><%
|
|
if (menuitems[MENU.PERS].Koppen.length > 0) {
|
|
%><li><a href="#tPersFAC"><span class="menutab"><%=L("lcl_menu_pers")%></span></a></li><%
|
|
}
|
|
if (menuitems[MENU.PROF].Koppen.length > 0) {
|
|
%><li><a href="#tProfFAC"><span class="menutab"><%=L("lcl_menu_prof")%></span></a></li><%
|
|
}
|
|
if (menuitems[MENU.MGT].Koppen.length > 0) {
|
|
%><li><a href="#tMgtFAC"><span class="menutab"><%=L("lcl_menu_config")%></span></a></li><%
|
|
}
|
|
%></ul>
|
|
<div class="ui-layout-content">
|
|
<div id="tabletmenu">
|
|
<script>
|
|
function gototab(t)
|
|
{
|
|
$("[href='"+t+"']").trigger("click");
|
|
}
|
|
</script>
|
|
<div id="twelkom"></div>
|
|
<div id="myactions">
|
|
<div id="myactionscontainer">
|
|
<iframe src="fac_list.asp?urole=fe" id="myactionsframe" name="myactionsframe" autorefresh="1"
|
|
width="100%" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" onload="FcltMgr.iframeLoaded(this)">
|
|
</iframe>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="tPersFAC"><div id="portalmenu"><%
|
|
generatePortalmenu(menuitems[MENU.PERS].Koppen);
|
|
%></div></div>
|
|
<div id="tProfFAC"><div id="portalmenu"><%
|
|
generatePortalmenu(menuitems[MENU.PROF].Koppen);
|
|
%></div></div>
|
|
<div id="tMgtFAC"><div id="portalmenu"><%
|
|
generatePortalmenu(menuitems[MENU.MGT].Koppen);
|
|
%></div></div>
|
|
</div>
|
|
<%
|
|
}
|
|
}
|
|
if (pmode == 3) {
|
|
var menuitems = fillMenuArray(true); // true is portalOnly
|
|
if (menuitems && menuitems[groep] && menuitems[groep].Koppen ) {
|
|
%><div id="portalmenu">
|
|
<h2><%=L("lcl_facilitor_portalwelcome"+groep)%></h2>
|
|
<% generatePortalmenu(menuitems[groep].Koppen)
|
|
%>
|
|
</div><%
|
|
}
|
|
}
|
|
if (pmode == 4) {
|
|
var menuitems = fillMenuArray(false, true); // mobileOnly
|
|
var kop = [];
|
|
if (menuitems && menuitems[MENU.MOB])
|
|
kop = menuitems[MENU.MOB].Koppen;
|
|
|
|
if (S("mobile_imageportal"))
|
|
{ // Menu wordt een grid met images
|
|
var actions = "<div class='ui-grid-b'>";
|
|
for (var i=0; i<kop.length; i++)
|
|
{
|
|
var itm = kop[i].Items[0];
|
|
var protocol = itm.href.split(":")[0];
|
|
if (protocol.length == 1 || !protocol.match(/^http|https|mailto|tel$/))
|
|
{
|
|
itm.href = "../../" + itm.href;
|
|
if (itm.menu_key > 0)
|
|
{
|
|
itm.href += itm.href.indexOf("?") > -1?"&":"?";
|
|
itm.href += "from_menu_key=" + itm.menu_key;
|
|
}
|
|
}
|
|
|
|
var colnr;
|
|
switch (i%3)
|
|
{
|
|
case 0 : colnr='a'; break;
|
|
case 1 : colnr='b'; break;
|
|
case 2 : colnr='c'; break;
|
|
}
|
|
|
|
actions += "\n<div class='ui-block-" + colnr + " micon'>"
|
|
+ "<a href='" + safe.htmlattr(itm.href) + "' data-ajax='false'>"
|
|
+ showImage(itm.img, "miconimg")
|
|
+"</a>"
|
|
+ "<div class='imgCaption'>" + safe.html(itm.name) + "</div>"
|
|
+ "</div>";
|
|
}
|
|
actions += "</div>";
|
|
}
|
|
else
|
|
{ // Geen plaatjes bij menuitems gevonden, dus menu wordt een lijst.
|
|
var actions = "<ul data-role='listview' data-inset='true' data-theme='b' data-dividertheme='b'>";
|
|
for (var i=0; i<kop.length; i++)
|
|
{
|
|
var itm = kop[i].Items[0];
|
|
var protocol = itm.href.split(":")[0];
|
|
if (protocol.length == 1 || !protocol.match(/^http|https|mailto|tel$/))
|
|
itm.href = "../../" + itm.href;
|
|
|
|
actions += "\n<li><a href='" + safe.htmlattr(itm.href) + "' data-ajax='false'>" + safe.html(itm.name) + "</a></li>";
|
|
}
|
|
actions += "</ul>";
|
|
}
|
|
Response.Write(actions);
|
|
}
|
|
}
|
|
%> |