Files
Facilitor/APPL/Shared/rs_columns_save.asp
Jos Groot Lipman 2aa489e0c7 FCLT#Recordsets die niet gesloten zijn beter detecteren
svn path=/Website/trunk/; revision=47235
2020-06-24 15:42:24 +00:00

119 lines
4.4 KiB
Plaintext

<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: rs_columns_save.asp
Description: Save user-defined columns for non-scaffolding lists.
Parameters:
Globals:
Context: used by resultset_table_v2.js
Note:
*/ %>
<%
var JSON_Result = true;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/save2db.inc"-->
<%
protectRequest.validateToken();
var code = getFParam("code", "");
var cols = getFParamArray("columns", []);
var resetcols = getFParamInt("resetcols", 0);
if (cols.length > 0)
{
savePerslidCols(code, cols);
}
else if (resetcols == 1)
{
resetCols(code)
}
function resetCols(code)
{
var sql = "DELETE prs_perslid_tabs"
+ " WHERE prs_perslid_tabs_code = " + safe.quoted_sql(code)
+ " AND prs_perslid_key = " + user_key;
Oracle.Execute(sql);
}
function savePerslidCols(code, cols)
{
var index;
var visible;
var field;
var combine;
if (cols.length > 0)
{
var sql = "SELECT c.prs_perslid_tabs_key, c.prs_perslid_cols_column_name"
+ " FROM prs_perslid_tabs t, prs_perslid_cols c"
+ " WHERE t.prs_perslid_tabs_code = " + safe.quoted_sql(code)
+ " AND c.prs_perslid_tabs_key = t.prs_perslid_tabs_key"
+ " AND t.prs_perslid_key = " + user_key
+ " ORDER BY c.prs_perslid_tabs_key, c.prs_perslid_cols_volgnr, c.prs_perslid_cols_column_name";
var oRs = Oracle.Execute(sql);
if (oRs.eof)
{
oRs.close();
var fields = [ { dbs: "prs_perslid_tabs_key", typ: "key", seq: "prs_s_prs_perslid_tabs_key" },
{ dbs: "prs_perslid_tabs_code", typ: "varchar", val: code },
{ dbs: "prs_perslid_key", typ: "key", val: user_key, foreign: "prs_perslid" }
];
var tabsIns = buildInsert("prs_perslid_tabs", fields);
var tabs_key = tabsIns.sequences["prs_perslid_tabs_key"];
sql = tabsIns.sql;
Oracle.Execute(sql);
// insert column records
for (index = 0; index < cols.length; index++)
{
field = cols[index].split("|")[0];
visible = cols[index].split("|")[1];
combine = cols[index].split("|")[2];
fields = [ { dbs: "prs_perslid_cols_key", typ: "key", seq: "prs_s_prs_perslid_cols_key" },
{ dbs: "prs_perslid_tabs_key", typ: "key", val: tabs_key, foreign: "prs_perslid_tabs" },
{ dbs: "prs_perslid_cols_volgnr", typ: "number", val: index },
{ dbs: "prs_perslid_cols_column_name", typ: "varchar", val: field },
{ dbs: "prs_perslid_cols_visible", typ: "varchar", val: visible },
{ dbs: "prs_perslid_cols_combine", typ: "number", val: combine }
];
var colsIns = buildInsert("prs_perslid_cols", fields);
sql = colsIns.sql;
Oracle.Execute(sql);
}
return cols;
}
else
{
var tabs_key = oRs("prs_perslid_tabs_key").Value;
var sqlCol = "";
while (!oRs.eof)
{
for (index = 0; index < cols.length; index++)
{
field = cols[index].split("|")[0];
visible = cols[index].split("|")[1];
combine = cols[index].split("|")[2];
if (oRs("prs_perslid_cols_column_name").Value == field)
{
fields = [ { dbs: "prs_perslid_cols_volgnr", typ: "number", val: index },
{ dbs: "prs_perslid_cols_column_name", typ: "varchar", val: field },
{ dbs: "prs_perslid_cols_visible", typ: "varchar", val: visible },
{ dbs: "prs_perslid_cols_combine", typ: "number", val: combine }
];
sqlCol = buildUpdate("prs_perslid_cols", fields)
+ " prs_perslid_tabs_key = " + tabs_key
+ " AND prs_perslid_cols_column_name = " + safe.quoted_sql(field);
Oracle.Execute(sqlCol);
break;
}
}
oRs.MoveNext();
}
}
oRs.Close();
}
}
Response.Write(JSON.stringify({ success: true }));
%><% ASPPAGE_END(); %>