import("system.logging");
import("system.util");
import("system.db");
import("system.vars");
import("system.result");
import("Context_lib");
import("system.translate");

var resultList = [];
if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param") && vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param"))
{
    
    var active;
    var selectMap = ContextUtils.getSelectMap ()
    if(vars.exists("$local.userfilter") && vars.get("$local.userfilter") )
    {
        var filter = JSON.parse(vars.getString("$local.userfilter"));
        if(filter.childs != null && filter.childs.length > 0)
        {
            filter.childs.forEach(function(child)
            {
                if(child.name === "ACTIVE")
                    active = child.key;
            });  
        }  
    }
    
    var contextList = JSON.parse(vars.getString("$param.ObjectType_param"));
    contextList.forEach(function (context) 
    {
        var data = db.table(ContextUtils.getContextDataSql(context, vars.get("$param.ObjectRowId_param"), true, active, true));
        data.forEach(function (row) 
        {
            var record = [];
            record[0] = util.getNewUUID(); // UID
            record[1] = row[0]; // TARGET_ID
            record[2] = context; // TARGET_CONTEXT
            record[3] = row[1]; // TITLE
            record[4] = row[2]; //DATE
            if(active != undefined) //ACTIVE
                record[5] = translate.text(active);
            else
            {
               if(selectMap[context].activeStates.indexOf(row[3]) > -1)    
                  record[5] = translate.text("true");
               else
                  record[5] = translate.text("false");
            }
            resultList.push(record); 
        });       
                  
    });            
    result.object(resultList)  
} 
else
{
    result.object(resultList);
}