117 lines
3.9 KiB
Plaintext
117 lines
3.9 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: legenda_create.asp
|
|
Description: Maak een nieuwe legendawaarde aan in een ruimte.
|
|
Parameters: room_key OF: highlight voor meerdere ruimetswp_key
|
|
Context: default.asp/$.post
|
|
Result:
|
|
Note: Vooralsnog *moet* in een ruimte gegooid worden
|
|
(werkpleksymbool ondersteunen we nog niet echt).
|
|
*/
|
|
var JSON_Result = true;
|
|
%>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="FGII.inc" -->
|
|
<!-- #include file="../shared/save2db.inc" -->
|
|
<%
|
|
protectRequest.validateToken();
|
|
|
|
var warning = null;
|
|
var scenario_key = getQParamInt("scenario_key"); // current scenario.
|
|
var vKey = getQParamInt("vKey");
|
|
|
|
var highlight_arr = getQParamIntArray("highlight", [-1]); // Comma-separated room_key_list (terrains). Optional
|
|
var roomKey = getQParamInt("room_key"); // Die moet er zijn
|
|
var themaKey = getQParamInt("thema"); // Voor de viewnaam
|
|
var lwKey = getQParamInt("lwKey"); // Legenda waarde key
|
|
var addmode = getQParamInt("addmode", 0); // 1 voor toevoegen, 0 voor overschijven
|
|
|
|
var sql = "SELECT cad_thema_view"
|
|
+ " , COALESCE(fac_functie_key, -1) fac_functie_key"
|
|
+ " FROM cad_thema"
|
|
+ " WHERE cad_thema_key = " + themaKey;
|
|
var oRs = Oracle.Execute(sql);
|
|
var viewname = oRs("cad_thema_view").value;
|
|
var functie_key = oRs("fac_functie_key").Value;
|
|
oRs.Close();
|
|
if (functie_key > -1) // Zonder autorisatie functie is dit niet beperkt
|
|
user.checkAutorisation(functie_key);
|
|
|
|
// Als meerdere ruimtes gehighlight maar je dropt niet in één van die
|
|
// ruimtes dan geldt uitsluitend de dropruimte
|
|
var roomKeyinHighlight = false;
|
|
for (i in highlight_arr)
|
|
{
|
|
if (roomKey == parseInt(highlight_arr[i], 10))
|
|
roomKeyinHighlight = true;
|
|
}
|
|
if (!roomKeyinHighlight) // ook als geen highlight
|
|
highlight_arr = [roomKey];
|
|
|
|
if (scenario_key == 0)
|
|
{
|
|
var where = " WHERE alg_ruimte_key IN (" + highlight_arr.join(",") + ")";
|
|
|
|
var sql = "SELECT waarde, alg_ruimte_key FROM " + viewname + where;
|
|
oldvals = [];
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.Eof)
|
|
{
|
|
oldvals[oRs("alg_ruimte_key").value] = oRs("waarde").value;
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.Close();
|
|
|
|
if (addmode == 0)
|
|
{
|
|
sql = "UPDATE " + viewname + " SET waarde_key = " + lwKey;
|
|
}
|
|
else // Toevoegen (shift gedrukt tijdens slepen)
|
|
{
|
|
sql = "INSERT INTO " + viewname + " (alg_ruimte_key, waarde_key)"
|
|
+ "SELECT alg_ruimte_key, " + lwKey + " FROM alg_ruimte";
|
|
}
|
|
|
|
sql += where;
|
|
var err = Oracle.Execute(sql, true); // De echte update
|
|
if (err.friendlyMsg)
|
|
warning = err.friendlyMsg;
|
|
|
|
// tracking per ruimte
|
|
var sql = "SELECT waarde, alg_ruimte_key FROM " + viewname + where;
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.Eof)
|
|
{
|
|
var newval = oRs("waarde").value;
|
|
var oldval = oldvals[oRs("alg_ruimte_key").value];
|
|
if ((oldval || "") != (newval || ""))
|
|
shared.trackaction("ALGCAD", oRs("alg_ruimte_key").value, buildTrackText("varchar", oldval, newval, { nodiff: true } ));
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.Close();
|
|
}
|
|
else // Scenario
|
|
{
|
|
if (addmode == 0)
|
|
{
|
|
sql = "UPDATE "+viewname+" set waarde_key = " + lwKey
|
|
}
|
|
else // Toevoegen (shift gedrukt tijdens slepen)
|
|
{
|
|
sql = "INSERT INTO "+viewname+" (prj_ruimte_key, waarde_key)"
|
|
+ "SELECT prj_ruimte_key, " + lwKey + " FROM prj_ruimte"
|
|
}
|
|
sql += " WHERE prj_ruimte_key IN (" + highlight_arr.join(",") + ")";
|
|
|
|
var err = Oracle.Execute(sql, true); // De echte update
|
|
if (err.friendlyMsg)
|
|
warning = err.friendlyMsg;
|
|
}
|
|
|
|
Response.Write(JSON.stringify({ success: warning == null, message: warning }));
|
|
%>
|
|
<% ASPPAGE_END(); %>
|