<%@language = "javascript" %>
<% /*
    $Revision$
    $Id$

    File:           fac_groep.asp

    Description:    Ingang via groepen om autorisaties te beheren
                    Ook: als je ?editmode=1 meegeeft kun je de groepen toevoegen enz.
    Context:        Vanuit het menu

    Notes:
*/
%>

<!-- #include file="../scf/scaffolding.inc" -->
<!-- #include file="../api2/model_fac_groep.inc" -->

<%
    var editmode = getQParamInt("editmode", 0);

    var functie_key = getQParamInt("fac_functie", -1);
    var disc_key = getQParamInt("ins_discipline", -1);
    var isClone = getQParamInt("scf_clone", 0) == 1;
    var groep_key = getQParamInt("id", -1);

    var model = new model_fac_groep(null, { disc_key: disc_key, functie_key: functie_key, cloning: isClone, groep_key: groep_key });
    delete model.includes.users.model.fields._fromperson; // Deze hebben we hier niet nodig.

    function fnrowData(oRs)
    {
      var data = { funcdisc: (functie_key > 0) && model.includes.authorization.model.hasdisc };
      return JSON.stringify(data);
    }

    scf_params =
        {
            "search": {
                "autosearch": true,
                "labels" : [],
                "filters": [
                    "name",
                    "remark"
                ]
            },
            "list": {
                "columns": [
                    "id",
                    "name",
                    "remark",
                    "membercount"
                    // Leuk maar veel te veel "users.user",
                    ],
                "requires": {
                  js: ["./fac_groep.js"]
                },
                "script": "window.functie_key = " + functie_key + "; window.disc_key = " + disc_key,
                "fnRowData": fnrowData
            },
            "edit":{
                "modal": false // Anders kom je niet in het detailscherm om personen toe te voegen
            },
            "show":{
                "requires": {
                  js: ["./fac_groep.js"]
                }
            },
            "layout": {
                "miscellaneous": {
                    "icon": "fa-user-shield"
                }
            },
            "transit": {
                "fac_functie": functie_key,
                "ins_discipline" : disc_key,
                "editmode" : editmode
            },
            "wrap": {
                "frames": [
                    { "url": "fac_functie.asp?mode=list&has_scf_outer=1&scf_outer=on&canAdd=1"
                           + "&fac_groep=" + groep_key
                           + "&ins_discipline=" + disc_key,
                      "title": L("fac_groeprechten_m"),
                      "autfunction": "WEB_PRSMSU",
                      "refreshOnActivate": true
                    }
                ]
            }
        };

    if (editmode == 1)
    {
        scf_params.search.autosearch = true;
        scf_params.list.columns.push("substitutes");
    }
    else
    {
        model.REST_POST   = false;
        model.REST_PUT    = false;
        model.REST_DELETE = false;
        scf_params.list.default_action = "edit_rechten";
    }

    if (functie_key > 0 && disc_key < 0 && model.includes.authorization.model.hasdisc)
    {
        scf_params.list.columns.push("authorization.discipline");
    }

    if (mode == "search" && functie_key > 0) // Als er al rechten zijn, tonen we default alleen geauthoriseerde functies
    {
        var groepmodel = new model_fac_groeprechten({ disc_key: disc_key, functie_key: functie_key })
        var data = groepmodel.REST_GET({ filter: { disc_key: disc_key, functie_key: functie_key } });
        if (data.length)
        {
            model.includes.authorization.outertoggle.def = true;
            scf_params.list.autosearch = true;
        }
    }

    if (functie_key > 0)
    {
        var func_desc = Oracle.Get("lcl.l(fac_functie_omschrijving,1)", "fac_functie", functie_key);
        var func_code = Oracle.Get("fac_functie_code", "fac_functie", functie_key);
        scf_params.search.title = func_desc;
        scf_params.search.labels.push({ "lbl": L("fac_functie"), "txt" : "{0} ({1})".format(func_desc, func_code) });
        scf_params.search.labels.push({ "lbl": L("fac_functie_info"), "txt" : Oracle.Get("lcl.l(fac_functie_info,1)", "fac_functie", functie_key)});
        var min_level = model.includes.authorization.model.min_level; // Die is bij functie_key gevuld
        if (min_level & 4 || !(min_level & 8))
        {
            scf_params.list.columns.push("authorization.basislevelread");
            if (min_level & 2)
                scf_params.list.columns.push("authorization.basislevelwrite");
        }
        if (min_level & 8)
        {
            scf_params.list.columns.push("authorization.realestatelevelread")
            if (min_level & 2)
                scf_params.list.columns.push("authorization.realestatelevelwrite");
        }
    }
    if (disc_key > 0)
    {
        scf_params.search.labels.push({ "lbl": L("mgt_discipline"), "txt" : Oracle.Get("ins_discipline_omschrijving", "ins_tab_discipline", "ins_discipline_key", disc_key)});
    }

    scaffolding(model, scf_params);
%>
<% ASPPAGE_END(); %>
