Files
Facilitor/APPL/FAC/fac_menu_list.asp
Jos Groot Lipman 4377d2ddae Menuvolgnummer is een 'number', dat ook netjes aangeven
svn path=/Website/branches/v2016.3/; revision=32302
2017-01-10 16:23:48 +00:00

299 lines
12 KiB
Plaintext

<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: fac_menu_list.asp
Description: Toont alle menu-opties, met de mogelijkheid deze van/naar het eigen menu te zetten
Parameters: groep (0,1,2): filtert het resultaat
module (MLD etc): filtert het resultaat
inuse (0, 1): filtert het resultaat
Context: Als resultaat van het menubeheer/selectiescherm voor de applicatiebeheerder
Requires: WEB_PRSSYS autorisatie
Note: Eerste opzet
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="fac.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
var mgroep = getQParamInt("mgroep", -1);
var mmodule = getQParam("mmodule", -1);
var minuse = getQParam("inuse", -1) == "on";
var mnotinuse = getQParam("notinuse", -1) == "on";
var tekst = getQParam("tekst", "");
var showall = getQParamInt("showall", 0) == 1;
var outputmode = getQParamInt("outputmode", 0);
var addButton = [];
var autfunction = "WEB_PRSSYS";
var authparams = user.checkAutorisation(autfunction);
var canAdd = (authparams.PRSwritelevel < 9);
FCLTHeader.Requires({ plugins: ["jQuery"],
js: []
})
%>
<html>
<head>
<% FCLTHeader.Generate({outputmode: outputmode}) %>
</head>
<body id="listbody">
<script type="text/javascript">
function aMenuDetails(row)
{
var facData = eval('(' + row.getAttribute("ROWDATA") + ')');
$(row).addClass('dirty');
var url = 'appl/fac/fac_menu.asp?menu_key=' + facData.menu_key
+ '&menuitem_key=' + facData.menuitem_key
FcltMgr.openDetail(url, '<%=L("lcl_fac_menuoptie")%> ' + facData.menu_key);
}
function addAfter(after_key)
{
//var facData = eval('(' + row.getAttribute("ROWDATA") + ')');
var url = 'appl/fac/fac_menu.asp?after_key=' + after_key;
FcltMgr.openDetail(url, L("lcl_add"));
FcltMgr.stopPropagation();
}
</script>
<%
var sqln = "SELECT menu.* FROM ("
+ " SELECT mi.fac_menuitems_key"
+ ", mi.fac_menuitems_module"
+ ", COALESCE(m.fac_menu_altgroep, mi.fac_menuitems_groep) fac_menuitems_groep"
+ ", " + lcl.xsql2("COALESCE(m.fac_menu_altlabel, mi.fac_menuitems_label)", 'FAC_MENU_ALTLABEL', 'fac_menu_key') + " fac_menuitems_label"
+ ", COALESCE(m.fac_menu_alturl, mi.fac_menuitems_url) fac_menuitems_url"
+ ", mi.fac_menuitems_srtdisc"
+ ", mi.fac_menuitems_disc"
+ ", fac_menu_volgnr"
+ ", m.fac_functie_key"
+ ", fac_menuitems_rw"
+ ", " + lcl.xsqla("fac_menu_info", "fac_menu_key")
+ ", fac_menu_key"
+ ", m.ins_srtdiscipline_key"
+ ", m.ins_discipline_key"
+ ", f.fac_functie_code"
+ ", f2.fac_functie_code fac_functie_code2"
+ ", m.fac_menu_level"
+ ", m.fac_menu_portal"
+ ", COALESCE(m.fac_menu_image, mi.fac_menuitems_image) image"
+ ", (SELECT SUM (fac_gui_counter_count)"
+ " FROM fac_gui_counter"
+ " WHERE fac_gui_counter_group = 'menu' AND fac_gui_counter_refkey = fac_menu_key"
+ " AND fac_gui_counter_date > sysdate - 365) aantal"
+ ", (SELECT SUM (fac_gui_counter_count)"
+ " FROM fac_gui_counter"
+ " WHERE fac_gui_counter_group = 'menu' AND fac_gui_counter_refkey = fac_menu_key"
+ " AND fac_gui_counter_date > sysdate - 31) aantalmaand"
+ " FROM fac_menuitems mi, fac_functie f, fac_menu m, fac_functie f2"
+ " WHERE m.fac_functie_key = f.fac_functie_key(+)"
+ " AND mi.fac_functie_key = f2.fac_functie_key(+)"
+ " AND mi.fac_menuitems_key = m.fac_menuitems_key(+)"
+ " UNION ALL "
+ " SELECT NULL fac_menuitems_key"
+ ", NULL fac_menuitems_module"
+ ", m.fac_menu_altgroep fac_menuitems_groep"
+ ", " + lcl.xsqla2("m.fac_menu_altlabel", 'FAC_MENU_ALTLABEL', 'fac_menu_key')
+ ", m.fac_menu_alturl fac_menuitems_url"
+ ", NULL "
+ ", NULL"
+ ", fac_menu_volgnr"
+ ", m.fac_functie_key"
+ ", NULL "
+ ", " + lcl.xsqla("fac_menu_info", "fac_menu_key")
+ ", fac_menu_key"
+ ", m.ins_srtdiscipline_key"
+ ", m.ins_discipline_key"
+ ", f.fac_functie_code"
+ ", NULL fac_functie_code2"
+ ", m.fac_menu_level"
+ ", m.fac_menu_portal"
+ ", m.fac_menu_image image"
+ ", (SELECT SUM (fac_gui_counter_count)"
+ " FROM fac_gui_counter"
+ " WHERE fac_gui_counter_group = 'menu' AND fac_gui_counter_refkey = fac_menu_key"
+ " AND fac_gui_counter_date > sysdate - 365) aantal"
+ ", (SELECT SUM (fac_gui_counter_count)"
+ " FROM fac_gui_counter"
+ " WHERE fac_gui_counter_group = 'menu' AND fac_gui_counter_refkey = fac_menu_key"
+ " AND fac_gui_counter_date > sysdate - 31) aantalmaand"
+ " FROM fac_functie f, fac_menu m"
+ " WHERE m.fac_functie_key = f.fac_functie_key(+)"
+ " AND m.fac_menuitems_key IS NULL"
+ " AND m.fac_menu_altgroep <> 5"
+ ") menu"
+ (tekst? " ,fac_locale_xsl":"")
+ " where (1=1) "
+ (mgroep != -1
? " AND fac_menuitems_groep = " + mgroep
: S("mobile_enabled") == 1 ? "" : "AND fac_menuitems_groep <> 3" ) // Alles behalve de mobiele
+ (mmodule != -1
? " AND fac_menuitems_module = " + safe.quoted_sql(mmodule)
: "")
+ (!minuse
? " AND fac_menu_key IS NULL"
: "")
+ (!mnotinuse
? " AND fac_menu_key IS NOT NULL"
: "")
+ (tekst
? " AND fac_locale_xsl_label(+) = fac_menuitems_label"
+ " AND fac_locale_xsl_module(+) = 'ASP'"
+ " AND fac_locale_xsl_lang(+) = " + safe.quoted_sql(user.lang())
+ " AND UPPER(COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, fac_menuitems_label)) LIKE " + safe.quoted_sql_wild("%" + tekst + "%")
: "");
// Zelfs met PRSSYS kom je hier niet in, dan ook maar niet tonen. Is te verwarrend
if (!user.has("WEB_FACTAB"))
{
sqln += " AND (fac_functie_code IS NULL OR fac_functie_code NOT IN ('WEB_FACFAC', 'WEB_FACTAB'))"
sqln += " AND (fac_functie_code2 IS NULL OR fac_functie_code2 NOT IN ('WEB_FACFAC', 'WEB_FACTAB'))"
}
sqln += " ORDER BY fac_menuitems_groep, fac_menu_volgnr, fac_menuitems_label";
function fnrowData(oRs)
{
var menu_key = oRs("fac_menu_key").value;
var menuitem_key = oRs("fac_menuitems_key").value;
if (menu_key == null)
menu_key = -1
if (menuitem_key == null)
menuitem_key = -1
var data = {menu_key: menu_key, menuitem_key: menuitem_key};
return JSON.stringify(data);
}
function fncolGroep(oRs)
{
var lgrtext = "?";
switch (oRs("fac_menuitems_groep").value)
{
case 0 : lgrtext = L("lcl_menu_pers") ; break;
case 1 : lgrtext = L("lcl_menu_prof") ; break;
case 2 : lgrtext = L("lcl_menu_config") ; break;
case 3 : lgrtext = L("lcl_menu_mobile") ; break;
}
return lgrtext;
}
function fncolPortal(oRs)
{
if (oRs("fac_menu_portal").value == 1)
return "<img src='../Pictures/res_ok.gif'>";
else
return "";
return lgrtext;
}
function fncolLabel(oRs)
{
var l = "";
l = safe.html(fac.localstring(oRs("fac_menuitems_label").value));
if (oRs("fac_menu_level").value == 1)
l = "<span class='facmenuheaditem'>" + l + "</span>";
return l;
}
function fncoldbLabel(oRs)
{
var l = "";
l = safe.html(fac.localstring(oRs("fac_menuitems_dblabel").value));
if (oRs("fac_menu_level").value == 1)
l = "<span class='facmenuheaditem'>" + l + "</span>";
return l;
}
function fncolUse(oRs)
{
if (oRs("fac_menu_key").value == null)
return "N";
else
return "J";
}
function fncolAdd(oRs)
{
if ( !oRs("fac_menu_key").value )
return "";
var click = "addAfter(" + oRs("fac_menu_key").value + ")";
return "<span title='Toevoegen na' onclick='addAfter(" + oRs("fac_menu_key").value + ")'>"
+ "<img src='../pictures/plus.png'></img></span>";
}
function fncolExplode(oRs)
{
var s = "";
if (oRs("fac_menuitems_srtdisc").value == 1 && oRs("fac_menuitems_module").value == "MLD")
s = L("lcl_vakgroup_type");
else if (oRs("fac_menuitems_srtdisc").value == 1 && oRs("fac_menuitems_module").value == "RES")
s = L("lcl_srtactivity");
else if (oRs("fac_menuitems_disc").value == 1)
s = L("lcl_bes_discipline");
else if (oRs("ins_srtdiscipline_key").value != null )
s = "="+L("lcl_vakgroup_type");
else if (oRs("ins_discipline_key").value != null)
s = "="+L("lcl_bes_discipline");
// NB: uit de explosie halen van srtactiviteit werkt nog niet zomaar
return s;
}
function fnAantal(oRs)
{
if (oRs("aantal").Value || oRs("aantalmaand").Value)
return (oRs("aantal").Value||0) + "/" + (oRs("aantalmaand").Value||0);
else
return "";
}
function fnrowActionEnabler(oRs)
{
var eAddtoMenu = oRs("fac_menu_key").value == null;
var eRemovefromMenu = oRs("fac_menu_key").value > 0;
var eDetailsMenu = oRs("fac_menu_key").value > 0;
var data = {eAddtoMenu: eAddtoMenu, eRemovefromMenu: eRemovefromMenu, eDetailsMenu: eDetailsMenu};
return data;
}
var addurl = "appl/fac/fac_menu.asp"
if (canAdd)
addButton = [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
var rst = new ResultsetTable({ sql: sqln,
keyColumn: "fac_menu_key",
ID: "menutable",
title : L("lcl_fac_menuopties"),
rowData: fnrowData,
rowActionEnabler: fnrowActionEnabler,
showAll: showall,
outputmode: outputmode,
buttons: addButton
});
rst.addColumn(new Column({caption: L("lcl_menuused"), content: fncolUse}));
// FSN#25864 Vooralsnog niet rst.addColumn(new Column({caption: L("lcl_add"), content: fncolAdd}));
rst.addColumn(new Column({caption: L("lcl_menugroep"), content: fncolGroep}));
rst.addColumn(new Column({caption: L("lcl_menuvolgnr"), content: "fac_menu_volgnr", datatype: "number"}));
rst.addColumn(new Column({caption: L("lcl_menuportal"), content: fncolPortal}));
rst.addColumn(new Column({caption: L("lcl_menulabel"), content: fncolLabel}));
rst.addColumn(new Column({caption: L("lcl_fac_menuexplode"), content: fncolExplode}));
rst.addColumn(new Column({caption: L("lcl_menuinfo"), content: "fac_menu_info"}));
rst.addColumn(new Column({caption: L("lcl_fac_menusysautorisatie"), content: "fac_functie_code2"}));
rst.addColumn(new Column({caption: L("lcl_fac_menuautorisatie"), content: "fac_functie_code"}));
rst.addColumn(new Column({caption: L("lcl_image"), content: "image"}));
// FSN#34808 experimenteel laatste kolom erbij tonen.
//rst.addColumn(new Column({caption: ("Afgelopen jaar/maand"), content: fnAantal}));
rst.addAction({action: "aMenuDetails", caption:L("lcl_menu_details"), isDefault: true});
var cnt = rst.processResultset();
%>
</body>
</html>