Files
Facilitor/APPL/CAD/legenda_create.asp
Jos Groot Lipman 1c84cba579 FSN#35529 Vaker correcter JSON_Result zetten in plaats van DOCTYPE_Disable
svn path=/Website/trunk/; revision=28208
2016-02-18 09:36:57 +00:00

107 lines
3.6 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/json2.js' -->
<!-- #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 oRs = Oracle.Execute("SELECT cad_thema_view FROM cad_thema WHERE cad_thema_key = " + themaKey);
var viewname = oRs("cad_thema_view").value;
// 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();
}
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();
}
}
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 }));
%>