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
|
// 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)
|
sql2jsonval: function _sql2jsonval(oRs, fld, model)
|
||||||
{
|
{
|
||||||
var field = model.fields[fld];
|
var field = model.fields[fld];
|
||||||
@@ -914,26 +916,27 @@ api2 = {
|
|||||||
if (field.val instanceof Function)
|
if (field.val instanceof Function)
|
||||||
var val = field.val(oRs, field, model, sqlfieldname);
|
var val = field.val(oRs, field, model, sqlfieldname);
|
||||||
else if (field.dbs.indexOf(".") < 0)
|
else if (field.dbs.indexOf(".") < 0)
|
||||||
{
|
|
||||||
var val = oRs(sqlfieldname).Value;
|
var val = oRs(sqlfieldname).Value;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
var val = oRs(field.dbs.split(".")[1]).Value;
|
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)
|
if (val === null)
|
||||||
return val;
|
return val;
|
||||||
if (field.typ == "date")
|
|
||||||
val = new Date(val);
|
switch (field.typ)
|
||||||
if (field.typ == "datetime")
|
{
|
||||||
val = new Date(val);
|
case "check":
|
||||||
if (field.typ == "time") // In de database ondersteunen we dit niet maar komt voor bij fac_report
|
case "check0":
|
||||||
val = new Date(val);
|
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
|
// Wat te doen met lege waarde
|
||||||
// action: null
|
// action: null
|
||||||
// action: {key: null, name: null}
|
// action: {key: null, name: null}
|
||||||
@@ -1097,6 +1100,8 @@ api2 = {
|
|||||||
limit = params.filter.limit;
|
limit = params.filter.limit;
|
||||||
if (params.filter.nolimit || limit == -1)
|
if (params.filter.nolimit || limit == -1)
|
||||||
limit = 99999999; // Excel/CSV alles tonen
|
limit = 99999999; // Excel/CSV alles tonen
|
||||||
|
|
||||||
|
|
||||||
while (!oRs.Eof)
|
while (!oRs.Eof)
|
||||||
{
|
{
|
||||||
if (data.length >= limit) // Alleen nog maar tellen
|
if (data.length >= limit) // Alleen nog maar tellen
|
||||||
@@ -1115,6 +1120,7 @@ api2 = {
|
|||||||
oRs.MoveNext();
|
oRs.MoveNext();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
var newrecord = true;
|
||||||
if (model.primary)
|
if (model.primary)
|
||||||
{
|
{
|
||||||
var key = oRs(model.primary).Value;
|
var key = oRs(model.primary).Value;
|
||||||
@@ -1134,6 +1140,8 @@ api2 = {
|
|||||||
}
|
}
|
||||||
var record = {};
|
var record = {};
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
newrecord = false; // er komen nog wel include-records achteraan
|
||||||
}
|
}
|
||||||
|
|
||||||
// Complexe filtering die we niet voor elkaar kregen met een WHERE-clause
|
// Complexe filtering die we niet voor elkaar kregen met een WHERE-clause
|
||||||
@@ -1148,21 +1156,24 @@ api2 = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var fld;
|
var fld;
|
||||||
for (fld in model.fields)
|
if (newrecord) // dan moeten de velden van het basis model eerst
|
||||||
{
|
{
|
||||||
if (fld.substring(0,1) == "_")
|
for (fld in model.fields)
|
||||||
continue;
|
{
|
||||||
var field = model.fields[fld];
|
if (fld.substring(0,1) == "_")
|
||||||
if (field.hidden)
|
continue;
|
||||||
continue;
|
var field = model.fields[fld];
|
||||||
if ("fields" in params.filter && !inArray(fld, params.filter.fields.split(",")))
|
if (field.hidden)
|
||||||
continue;
|
continue;
|
||||||
|
if ("fields" in params.filter && !inArray(fld, params.filter.fields.split(",")))
|
||||||
|
continue;
|
||||||
|
|
||||||
var val = api2.sql2jsonval(oRs, fld, model)
|
var val = api2.sql2jsonval(oRs, fld, model)
|
||||||
//waarom was dit aanwezig?
|
//waarom was dit aanwezig?
|
||||||
//if (field.readonly && !val.id)
|
//if (field.readonly && !val.id)
|
||||||
// continue;
|
// continue;
|
||||||
record[fld] = val;
|
record[fld] = val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (params.include && model.includes)
|
if (params.include && model.includes)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user