FSN#38916 FACFAC Superuser alle tabellen kunnen bekijken
svn path=/Website/trunk/; revision=32239
This commit is contained in:
@@ -91,9 +91,11 @@ function model_generic(table, autfunction)
|
||||
+ " ORDER BY column_id";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var hasName = false;
|
||||
model.nrfields = 0;
|
||||
var seq = _findseq(model.primary);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
model.nrfields++;
|
||||
var field = { dbs: oRs.Fields("column_name").Value,
|
||||
label: oRs.Fields("column_name").Value,
|
||||
typ: "varchar"
|
||||
@@ -114,20 +116,38 @@ function model_generic(table, autfunction)
|
||||
if (field.dbs.match(/_key$/))
|
||||
{
|
||||
field.typ = 'key';
|
||||
if (field.dbs != model.primary &&
|
||||
foreignKeyTable(field.dbs.replace(/_key$/,""))) // TODO ipv. de replace echt foreign-key constraint controleren
|
||||
if (field.dbs != model.primary)
|
||||
{
|
||||
field.foreign = field.dbs.replace(/_key$/,"");
|
||||
field.label = field.foreign + "(_key)"; // indicatie dat het foreign is
|
||||
field.filter = "exact";
|
||||
var ftable = field.dbs.replace(/_key$/,"");// TODO ipv. de replace echt foreign-key constraint controleren
|
||||
|
||||
var sql = "SELECT table_name, num_rows"
|
||||
+ " FROM user_tables"
|
||||
+ " WHERE table_name = " + safe.quoted_sql_upper(ftable)
|
||||
+ " OR table_name = " + safe.quoted_sql_upper(ftable.substr(4)); // mld_alg_locatie_key bijv.
|
||||
var oRs2 = Oracle.Execute(sql);
|
||||
if (!oRs2.Eof)
|
||||
{
|
||||
ftable = oRs2("table_name").Value.toLowerCase();
|
||||
field.num_rows = oRs2("num_rows").Value;
|
||||
field.foreign = { tbl: ftable, key: field.dbs, desc: field.dbs };
|
||||
field.infoPointer = { Url: "appl/mgt/mgt_generic.asp?mode=show&table=" + ftable + "&id=" };
|
||||
}
|
||||
oRs2.Close();
|
||||
|
||||
if (foreignKeyTable(ftable))
|
||||
{
|
||||
field.foreign = ftable;
|
||||
field.label = field.label.replace(/_key$/, "(_key)"); // indicatie dat het foreign is
|
||||
field.filter = "exact";
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "DATE":
|
||||
field.typ = 'datetime';
|
||||
if (field.dbs == table.toLowerCase() + "_datum" ||
|
||||
field.dbs == table.toLowerCase() + "_van" ||
|
||||
field.dbs == table.toLowerCase() + "_aanmaak")
|
||||
if (field.dbs == model.table + "_datum" ||
|
||||
field.dbs == model.table + "_van" ||
|
||||
field.dbs == model.table + "_aanmaak")
|
||||
field.filter = "range";
|
||||
break;
|
||||
case "VARCHAR2":
|
||||
|
||||
@@ -21,7 +21,8 @@ function model_user_tables()
|
||||
this.record_name = "Table";
|
||||
this.autfunction = "WEB_FACFAC";
|
||||
|
||||
this.fields = { "id" : { dbs: "table_name", typ: "varchar", label: "Table" },
|
||||
this.fields = { "id" : { dbs: "table_name", typ: "varchar", label: "key" },
|
||||
"name" : { dbs: "table_name", typ: "varchar", label: "Table" }, // dubbel voor filtering
|
||||
"rows" : { dbs: "num_rows", typ: "number", label: "Estimated rows" },
|
||||
"analyzed" : { dbs: "last_analyzed", typ: "datetime", label: "Last analyzed" }
|
||||
};
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
if ("estimated_rows" in model && model.estimated_rows < S("qp_maxrows"))
|
||||
params.search = { autosearch: true };
|
||||
|
||||
if (model.nrfields > 10)
|
||||
params.multicolumn = true;
|
||||
|
||||
model.REST_GET = generic_REST_GET(model);
|
||||
// geforceerd readonly
|
||||
model.REST_POST = null;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"search": {
|
||||
autosearch: true,
|
||||
"filters": [
|
||||
//"id" werkt niet goed?
|
||||
"name"
|
||||
]
|
||||
|
||||
},
|
||||
|
||||
@@ -177,6 +177,11 @@ function scf_ROFIELDTR(model, fld, val, key, params)
|
||||
title = "Size: {0} bytes".format(txt["size"]);
|
||||
if ("content_url" in txt) // Plaatjes en zo
|
||||
infoPointer = { Url: txt["content_url"], NewWindow: true };
|
||||
else if ("infoPointer" in field)
|
||||
{
|
||||
infoPointer = field.infoPointer;
|
||||
infoPointer.Url += txt.id;
|
||||
}
|
||||
else if ("foreign" in field)
|
||||
{ // Probeer een infopointer te gokken
|
||||
var guesses = [field.foreign.modelname, field.foreign.tbl, field.dbs.replace(/\_key$/, "")]
|
||||
@@ -275,6 +280,10 @@ function scf_RWFIELDTR(model, fld, val, key, params)
|
||||
return scf_ROFIELDTR(model, fld, val);
|
||||
}
|
||||
|
||||
// we doen automatische listboxen maar vanuit model_generic kan dat te gortig worden
|
||||
if (field.foreign && params.search && "num_rows" in field && field.num_rows > 1000) /* of S("qp_maxrows") */
|
||||
field.foreign = null;
|
||||
|
||||
if (field.foreign)
|
||||
{
|
||||
if (typeof field.foreign == 'function')
|
||||
@@ -479,7 +488,7 @@ function scf_RWFIELDTR(model, fld, val, key, params)
|
||||
required: true,
|
||||
autosize: field.autosize
|
||||
});
|
||||
else if (field.typ == "date")
|
||||
else if (field.typ == "date" || (field.typ == "datetime" && params.search))
|
||||
FCLTcalendar(fld, { label : field.label,
|
||||
datum : val,
|
||||
timeField: false,
|
||||
|
||||
Reference in New Issue
Block a user