FSN#41986 Kleine API2 optimalisatie
svn path=/Website/trunk/; revision=35422
This commit is contained in:
@@ -907,6 +907,8 @@ api2 = {
|
||||
}
|
||||
},
|
||||
// Geeft de GET terug van een enkel veld
|
||||
// Onder bepaalde omstandigheden wordt deze functie *heel* veel aangroepen
|
||||
// Houd hem daarom efficient.
|
||||
sql2jsonval: function _sql2jsonval(oRs, fld, model)
|
||||
{
|
||||
var field = model.fields[fld];
|
||||
@@ -914,26 +916,27 @@ api2 = {
|
||||
if (field.val instanceof Function)
|
||||
var val = field.val(oRs, field, model, sqlfieldname);
|
||||
else if (field.dbs.indexOf(".") < 0)
|
||||
{
|
||||
var val = oRs(sqlfieldname).Value;
|
||||
}
|
||||
else
|
||||
var val = oRs(field.dbs.split(".")[1]).Value;
|
||||
|
||||
if (field.typ == "check" || field.typ == "check0")
|
||||
{
|
||||
if (field.invert)
|
||||
val = (val==1?0:1);
|
||||
}
|
||||
|
||||
if (val === null)
|
||||
return val;
|
||||
if (field.typ == "date")
|
||||
val = new Date(val);
|
||||
if (field.typ == "datetime")
|
||||
val = new Date(val);
|
||||
if (field.typ == "time") // In de database ondersteunen we dit niet maar komt voor bij fac_report
|
||||
val = new Date(val);
|
||||
|
||||
switch (field.typ)
|
||||
{
|
||||
case "check":
|
||||
case "check0":
|
||||
if (field.invert)
|
||||
val = (val==1?0:1);
|
||||
return val;
|
||||
break;
|
||||
case "date":
|
||||
case "datetime":
|
||||
case "time": // In de database ondersteunen we dit niet maar komt voor bij fac_report
|
||||
return new Date(val);
|
||||
break;
|
||||
}
|
||||
// Wat te doen met lege waarde
|
||||
// action: null
|
||||
// action: {key: null, name: null}
|
||||
@@ -1097,6 +1100,8 @@ api2 = {
|
||||
limit = params.filter.limit;
|
||||
if (params.filter.nolimit || limit == -1)
|
||||
limit = 99999999; // Excel/CSV alles tonen
|
||||
|
||||
|
||||
while (!oRs.Eof)
|
||||
{
|
||||
if (data.length >= limit) // Alleen nog maar tellen
|
||||
@@ -1115,6 +1120,7 @@ api2 = {
|
||||
oRs.MoveNext();
|
||||
continue;
|
||||
}
|
||||
var newrecord = true;
|
||||
if (model.primary)
|
||||
{
|
||||
var key = oRs(model.primary).Value;
|
||||
@@ -1134,6 +1140,8 @@ api2 = {
|
||||
}
|
||||
var record = {};
|
||||
}
|
||||
else
|
||||
newrecord = false; // er komen nog wel include-records achteraan
|
||||
}
|
||||
|
||||
// Complexe filtering die we niet voor elkaar kregen met een WHERE-clause
|
||||
@@ -1148,21 +1156,24 @@ api2 = {
|
||||
}
|
||||
|
||||
var fld;
|
||||
for (fld in model.fields)
|
||||
if (newrecord) // dan moeten de velden van het basis model eerst
|
||||
{
|
||||
if (fld.substring(0,1) == "_")
|
||||
continue;
|
||||
var field = model.fields[fld];
|
||||
if (field.hidden)
|
||||
continue;
|
||||
if ("fields" in params.filter && !inArray(fld, params.filter.fields.split(",")))
|
||||
continue;
|
||||
for (fld in model.fields)
|
||||
{
|
||||
if (fld.substring(0,1) == "_")
|
||||
continue;
|
||||
var field = model.fields[fld];
|
||||
if (field.hidden)
|
||||
continue;
|
||||
if ("fields" in params.filter && !inArray(fld, params.filter.fields.split(",")))
|
||||
continue;
|
||||
|
||||
var val = api2.sql2jsonval(oRs, fld, model)
|
||||
//waarom was dit aanwezig?
|
||||
//if (field.readonly && !val.id)
|
||||
// continue;
|
||||
record[fld] = val;
|
||||
var val = api2.sql2jsonval(oRs, fld, model)
|
||||
//waarom was dit aanwezig?
|
||||
//if (field.readonly && !val.id)
|
||||
// continue;
|
||||
record[fld] = val;
|
||||
}
|
||||
}
|
||||
if (params.include && model.includes)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user