FSN#38916 FACFAC Superuser alle tabellen kunnen bekijken beter als geen primary key
svn path=/Website/branches/v2016.3/; revision=32554
This commit is contained in:
@@ -1247,9 +1247,12 @@ api2 = {
|
||||
GENERIC_ONLY_WITH_AUTFUNCTION;
|
||||
|
||||
model.REST_GET = generic_REST_GET(model, gparams);
|
||||
model.REST_POST = generic_REST_POST(model, gparams);
|
||||
model.REST_PUT = generic_REST_PUT(model, gparams);
|
||||
model.REST_DELETE = generic_REST_DELETE(model, gparams);
|
||||
if (model.primary)
|
||||
{
|
||||
model.REST_POST = generic_REST_POST(model, gparams);
|
||||
model.REST_PUT = generic_REST_PUT(model, gparams);
|
||||
model.REST_DELETE = generic_REST_DELETE(model, gparams);
|
||||
}
|
||||
},
|
||||
merge_disc_params_model: function(deze, template_model)
|
||||
{
|
||||
@@ -1338,7 +1341,14 @@ function generic_REST_GET(model, gparams)
|
||||
}
|
||||
|
||||
if (!orderbys.length)
|
||||
orderbys.push(model.fields.name?model.fields.name.dbs:model.fields.id.dbs);
|
||||
{
|
||||
if ("name" in model.fields)
|
||||
orderbys.push(model.fields.name.dbs);
|
||||
else if ("id" in model.fields)
|
||||
orderbys.push(model.fields.id.dbs);
|
||||
else
|
||||
orderbys.push(1); // FAC_VERSION heeft niets van dit alles
|
||||
}
|
||||
|
||||
sql += " ORDER BY " + orderbys.join(", "); // TODO: Altijd goed met includes?
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@ function model_generic_template()
|
||||
|
||||
function _findseq(primary)
|
||||
{
|
||||
if (!primary)
|
||||
return null;
|
||||
var seq_name = primary.substr(0,3) + "_S_" + primary;
|
||||
var seq = null;
|
||||
var sql = "SELECT sequence_name"
|
||||
@@ -51,28 +53,40 @@ function model_generic(table, autfunction)
|
||||
model.record_name = table.substring(0,1).toUpperCase() + table.substring(1);
|
||||
model.records_name = model.record_name + "s";
|
||||
|
||||
var sql = "SELECT LOWER(cols.column_name) column_name, cols.position, cons.status, cons.owner"
|
||||
+ " FROM user_constraints cons, user_cons_columns cols"
|
||||
+ " WHERE cols.table_name = " + safe.quoted_sql_upper(table)
|
||||
var sql = "SELECT LOWER(cols.column_name) column_name, cols.position, cons.status, cons.owner, utc.data_type"
|
||||
+ " FROM user_constraints cons, user_cons_columns cols, user_tab_columns utc"
|
||||
+ " WHERE cons.table_name = " + safe.quoted_sql_upper(table)
|
||||
+ " AND cols.table_name = cons.table_name"
|
||||
+ " AND cons.constraint_type = 'P'"
|
||||
+ " AND cons.constraint_name = cols.constraint_name"
|
||||
+ " AND cons.owner = cols.owner"
|
||||
+ " AND utc.table_name = cols.table_name"
|
||||
+ " AND utc.column_name = cols.column_name"
|
||||
+ " ORDER BY cols.table_name, cols.position";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs.Eof)
|
||||
{
|
||||
abort_with_warning("Unable to determine primary key for table {0}".format(table));
|
||||
//abort_with_warning("Unable to determine primary key for table {0}".format(table));
|
||||
model.primary = null;
|
||||
}
|
||||
|
||||
model.primary = oRs("column_name").Value;
|
||||
oRs.MoveNext();
|
||||
if (!oRs.Eof)
|
||||
else
|
||||
{
|
||||
abort_with_warning("Composite primary key not supported for table {0}".format(table));
|
||||
model.primary = oRs("column_name").Value;
|
||||
var data_type = oRs("data_type").Value;
|
||||
if (data_type != 'NUMBER')
|
||||
{
|
||||
//abort_with_warning("Only NUMBER primary key supported, not {0} ({1})".format(data_type, model.primary));
|
||||
model.primary = null;
|
||||
}
|
||||
oRs.MoveNext();
|
||||
if (!oRs.Eof)
|
||||
{
|
||||
//abort_with_warning("Composite primary key not supported for table {0}".format(table));
|
||||
model.primary = null;
|
||||
}
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
|
||||
var sql = "SELECT num_rows, last_analyzed"
|
||||
+ " FROM user_tables"
|
||||
+ " WHERE table_name = " + safe.quoted_sql_upper(table);
|
||||
@@ -157,6 +171,7 @@ function model_generic(table, autfunction)
|
||||
field.dbs == model.table + "_aanmaak")
|
||||
field.filter = "range";
|
||||
break;
|
||||
case "CHAR":
|
||||
case "VARCHAR2":
|
||||
field.typ = 'varchar';
|
||||
break;
|
||||
|
||||
@@ -27,15 +27,28 @@
|
||||
};
|
||||
|
||||
params.search = {};
|
||||
if (model.fields["id"].seq)
|
||||
if ("id" in model.fields)
|
||||
{
|
||||
var sql = "SELECT last_number currval"
|
||||
+ " FROM all_sequences"
|
||||
+ " WHERE sequence_name = " + safe.quoted_sql_upper(model.fields["id"].seq);
|
||||
var oRs = Oracle.Execute(sql)
|
||||
var curval = oRs(0).Value;
|
||||
oRs.Close();
|
||||
params.search.labels = [{ "lbl": "Sequence", "txt" : "{0} (next: {1})".format(model.fields["id"].seq, curval)}];
|
||||
params.search.labels = [{ "lbl": "Primary key", "txt" : "{0}".format(model.fields["id"].dbs)}];
|
||||
if (model.fields["id"].seq)
|
||||
{
|
||||
var sql = "SELECT last_number currval"
|
||||
+ " FROM all_sequences"
|
||||
+ " WHERE sequence_name = " + safe.quoted_sql_upper(model.fields["id"].seq);
|
||||
var oRs = Oracle.Execute(sql)
|
||||
var curval = oRs(0).Value;
|
||||
oRs.Close();
|
||||
params.search.labels.push({ "lbl": "Sequence", "txt" : "{0} (next: {1})".format(model.fields["id"].seq, curval)});
|
||||
}
|
||||
}
|
||||
else // geen id. Dan kun je niet doorklikken. Toon dan maar alle kolommen
|
||||
{
|
||||
params.search.labels = [{ "lbl": "Primary key", "txt" : "No single NUMBER primary key detected. Record clicking not available."}];
|
||||
params.list = { columns : [] };
|
||||
for (var fld in model.fields)
|
||||
{
|
||||
params.list.columns.push(fld);
|
||||
}
|
||||
}
|
||||
|
||||
if ("estimated_rows" in model && model.estimated_rows < S("qp_maxrows"))
|
||||
|
||||
@@ -57,7 +57,9 @@ function scaffolding_list(model, scf_params)
|
||||
}
|
||||
|
||||
var default_url = model.list.default_url;
|
||||
if (!default_url && ("show" in model ||"show" in scf_params || model["REST_PUT"] || model["REST_DELETE"]))
|
||||
if (!default_url &&
|
||||
"id" in model.fields &&
|
||||
("show" in model || "show" in scf_params || model["REST_PUT"] || model["REST_DELETE"]))
|
||||
{
|
||||
if (modal)
|
||||
default_url = scf_params.this_fullpath + "?mode=edit" + transit + "&id=";
|
||||
|
||||
Reference in New Issue
Block a user