KFNS#38663 adding alg scoping to kennisbank items
svn path=/Website/trunk/; revision=33721
This commit is contained in:
147
APPL/FAC/fac_alg_list.asp
Normal file
147
APPL/FAC/fac_alg_list.asp
Normal file
@@ -0,0 +1,147 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: fac_alg_list.asp
|
||||
Description: Show an overview of alg_locatie & alg_v_onroerendgoed items in list-form,
|
||||
which meets with the given requirements
|
||||
Parameters:
|
||||
Context: Include frame for fac_show_faq.
|
||||
Note:
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
||||
<!-- #include file="../MLD/mld.inc" -->
|
||||
|
||||
<%
|
||||
var outputmode = getQParamInt("outputmode", 0); // 0 = screen, 1 = print, 2 = excel etc
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var faq_key = getQParamInt("faq_key");
|
||||
|
||||
var sql = "SELECT fac_faq_level"
|
||||
+ " , fac_faq_datum"
|
||||
+ " FROM fac_faq f"
|
||||
+ " WHERE fac_faq_key = " + faq_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs.Eof)
|
||||
shared.record_not_found("<!--" + faq_key + "-->");
|
||||
|
||||
var level = oRs("fac_faq_level").Value;
|
||||
var datum = oRs("fac_faq_datum").Value;
|
||||
var mustProf = (level & 1) == 0; // Alleen professionals
|
||||
oRs.close();
|
||||
|
||||
var authparamsFAQUSE = user.checkAutorisation("WEB_FAQUSE", true); // Frontend mag ingevoerde items bekijken
|
||||
var authparamsFAQFOF = user.checkAutorisation("WEB_FAQFOF", true); // Frontoffice mag items aanmaken en bewerken
|
||||
var authparamsFAQBOF = user.checkAutorisation("WEB_FAQBOF", true); // Backoffice mag ingevoerde items publiceren (publicatie datum zetten/aanpassen)
|
||||
|
||||
user.auth_required_or_abort(authparamsFAQBOF || authparamsFAQFOF || (!mustProf && authparamsFAQUSE));
|
||||
|
||||
var canWriteFAQFOF = authparamsFAQFOF && authparamsFAQFOF.PRSwritelevel < 9 && authparamsFAQFOF.ALGwritelevel < 9;
|
||||
var canWriteFAQBOF = authparamsFAQBOF && authparamsFAQBOF.PRSwritelevel < 9 && authparamsFAQBOF.ALGwritelevel < 9;
|
||||
var canChange = canWriteFAQBOF || (canWriteFAQFOF && datum == null)
|
||||
|
||||
var addButton = [];
|
||||
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate({outputmode:outputmode}) %>
|
||||
<script type="text/javascript">
|
||||
var autosearch = 1; //automatisch laden van resultaat op search pagina
|
||||
|
||||
function alg_algfaq()
|
||||
{
|
||||
FcltMgr.openModalDetail("../fac/fac_algfaq.asp?faq_key=<%=faq_key%>",
|
||||
L("lcl_faq_algfaq"),
|
||||
{ callback: FcltMgr.reload });
|
||||
}
|
||||
|
||||
function faq_newmld(row)
|
||||
{
|
||||
var faqData = eval('(' + row.getAttribute("ROWDATA") + ')');
|
||||
var locParam = "&loc_key="+faqData.loc_key;
|
||||
var bldParam = "&bld_key="+faqData.bld_key;
|
||||
var flrParam = "&flr_key="+faqData.flr_key;
|
||||
var roomParam = "&room_key="+faqData.room_key;
|
||||
FcltMgr.openDetail("appl/mld/mld_melding.asp?fromkb=1"+locParam+bldParam+flrParam+roomParam, "<%=L("lcl_add")%>");
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body id="listbody">
|
||||
<%
|
||||
function fnrowData(oRs)
|
||||
{
|
||||
var locatie_key = oRs("loc_key").Value;
|
||||
var gebouw_key = oRs("bld_key").Value;
|
||||
var verdieping_key = oRs("flr_key").Value;
|
||||
var ruimte_key = oRs("room_key").Value;
|
||||
|
||||
var data = {loc_key:locatie_key, bld_key:gebouw_key, flr_key:verdieping_key, room_key:ruimte_key };
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
function fnrowActionEnabler(oRs)
|
||||
{
|
||||
return { eAlg: canWriteFAQFOF || canWriteFAQBOF };
|
||||
}
|
||||
|
||||
function fnScope(oRs)
|
||||
{
|
||||
switch (oRs("scope").Value)
|
||||
{
|
||||
case "L": return L("lcl_location");
|
||||
case "G": return L("lcl_building");
|
||||
case "T": return L("lcl_terra");
|
||||
case "V": return L("lcl_floor");
|
||||
case "R": return L("lcl_room");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
if (canChange)
|
||||
{
|
||||
addButton = [{icon: "wijzigen.png", title: L("lcl_change"), action: "alg_algfaq()"}];
|
||||
}
|
||||
|
||||
var sql = "SELECT f.alg_algfaq_key"
|
||||
+ " , DECODE(o.alg_type, NULL, 'L', o.alg_type) scope"
|
||||
+ " , l.alg_locatie_code ||"
|
||||
+ " DECODE(o.alg_plaatsaanduiding, NULL, NULL, '-' || o.alg_plaatsaanduiding) plaats"
|
||||
+ " , l.alg_locatie_key loc_key"
|
||||
+ " , COALESCE(o.alg_gebouw_key, o.alg_terreinsector_key, -1) bld_key"
|
||||
+ " , COALESCE(o.alg_verdieping_key, -1) flr_key"
|
||||
+ " , COALESCE(o.alg_ruimte_key, -1) room_key"
|
||||
+ " FROM alg_algfaq f"
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_v_onroerendgoed_gegevens o"
|
||||
+ " WHERE f.alg_locatie_key = l.alg_locatie_key"
|
||||
+ " AND f.alg_onroerendgoed_keys = o.alg_onroerendgoed_keys(+)"
|
||||
+ " AND f.fac_faq_key = " + faq_key;
|
||||
|
||||
var rst = new ResultsetTable({ sql: sql
|
||||
, keyColumn: "alg_algfaq_key"
|
||||
, ID: "algfaqtable"
|
||||
, noPrint: true
|
||||
, showAll: showall
|
||||
, rowData: fnrowData
|
||||
, rowActionEnabler: fnrowActionEnabler
|
||||
, outputmode: outputmode
|
||||
, title: L("lcl_faq_voor_alg")
|
||||
, buttons: addButton
|
||||
});
|
||||
|
||||
rst.addColumn(new Column({caption: L("lcl_faq_alg_scope"), content: fnScope }));
|
||||
rst.addColumn(new Column({caption: L("lcl_plaatsgegevens"), content: "plaats" }));
|
||||
|
||||
rst.addAction({action: "faq_newmld", caption: L("lcl_do_amelding_hint"), enabler: "eAlg" });
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
233
APPL/FAC/fac_algfaq.asp
Normal file
233
APPL/FAC/fac_algfaq.asp
Normal file
@@ -0,0 +1,233 @@
|
||||
<%@language = "javascript"%>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: fac_algfaq.asp
|
||||
Description: Laat aan een FAQ meerdere standaardmeldingen toevoegen
|
||||
Parameters: faq_key: fac_faq_key waaraan de standaardmeldingen gekoppeld moeten worden
|
||||
Context:
|
||||
Note:
|
||||
|
||||
k
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/plaatsselector.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins:["jQuery"]
|
||||
, js: ["./fac_algfaq.js"]
|
||||
});
|
||||
|
||||
var faq_key = getQParamInt("faq_key");
|
||||
var submitting = getQParamInt("submit", 0) == 1;
|
||||
if (submitting)
|
||||
{
|
||||
protectRequest.validateToken();
|
||||
|
||||
FCLTHeader.Generate();
|
||||
|
||||
var nrRows = getFParamInt("nrRows", 0);
|
||||
|
||||
var loc_key = -1;
|
||||
var onr_key = -1;
|
||||
var loc_keys = [];
|
||||
var onr_keys = [];
|
||||
for (var i = 0; i < nrRows; i++)
|
||||
{
|
||||
loc_key = getFParamInt("loc" + i, -1);
|
||||
onr_key = getFParamInt("onr" + i, -1);
|
||||
|
||||
if (loc_key > 0)
|
||||
{
|
||||
loc_keys.push(loc_key);
|
||||
onr_keys.push(onr_key);
|
||||
}
|
||||
}
|
||||
|
||||
// Alles van deze kennisbank-item Verwijderen
|
||||
var sql = "DELETE alg_algfaq"
|
||||
+ " WHERE fac_faq_key = " + faq_key;
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// Alle regels uit de popup toevoegen.
|
||||
for (var i = 0; i < loc_keys.length; i++)
|
||||
{
|
||||
{
|
||||
var sql = "INSERT INTO alg_algfaq "
|
||||
+ " (fac_faq_key, alg_locatie_key, alg_onroerendgoed_keys)"
|
||||
+ " VALUES (" + faq_key
|
||||
+ "," + loc_keys[i]
|
||||
+ "," + ((onr_keys[i] > 0) ? onr_keys[i] : "NULL")
|
||||
+ ")";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
FcltMgr.closeDetail(window, { success: true });
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
else
|
||||
{
|
||||
var loc_key = -1;
|
||||
var bld_key = -1;
|
||||
var flr_key = -1;
|
||||
var room_key = -1;
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate(); %>
|
||||
<script type="text/javascript">
|
||||
function onChangeAlg(alg_level)
|
||||
{
|
||||
if ($("#locatiekey").val() > 0)
|
||||
{
|
||||
var alg_key = -1;
|
||||
var loc_key = $("#locatiekey").val();
|
||||
switch (alg_level)
|
||||
{
|
||||
case 3: alg_key = $("#gebouwkey").val(); break;
|
||||
case 4: alg_key = $("#verdiepingkey").val(); break;
|
||||
case 5: alg_key = $("#ruimtekey").val(); break;
|
||||
}
|
||||
$.getJSON("../mld/get_mld_info_ajax.asp",
|
||||
{ req_info: "alg_algfaq_info",
|
||||
loc_key: loc_key,
|
||||
alg_key: alg_key },
|
||||
process_algfaq_info);
|
||||
}
|
||||
}
|
||||
|
||||
function process_algfaq_info(data)
|
||||
{
|
||||
$("#scope").val(fnScope(data.scope));
|
||||
$("#plaats").val(data.plaats);
|
||||
}
|
||||
|
||||
function fnScope(scopeAbbr)
|
||||
{
|
||||
switch (scopeAbbr)
|
||||
{
|
||||
case "L": return L("lcl_location");
|
||||
case "G": return L("lcl_building");
|
||||
case "T": return L("lcl_terra");
|
||||
case "V": return L("lcl_floor");
|
||||
case "R": return L("lcl_room");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="modal" id="mod_algfaq">
|
||||
<form name="u2" method="post" action="fac_algfaq.asp?submit=1&faq_key=<%=faq_key%>">
|
||||
<input type="hidden" id="nrRows" name="nrRows" value="0">
|
||||
<input type="hidden" id="plaats" name="plaats" value="">
|
||||
<input type="hidden" id="scope" name="scope" value="">
|
||||
<%
|
||||
BLOCK_START("");
|
||||
// <!-- Toevoegen -->
|
||||
// Plaats
|
||||
FCLTplaatsselector("", // TODO
|
||||
{ label: L("lcl_plaatsgegevens"),
|
||||
locatiekey: loc_key,
|
||||
gebouwkey: bld_key,
|
||||
verdiepingkey: flr_key,
|
||||
ruimtekey: room_key,
|
||||
onLocChange: "onChangeAlg(2)",
|
||||
onGebChange: "onChangeAlg(3)",
|
||||
onVerChange: "onChangeAlg(4)",
|
||||
onRuiChange: "onChangeAlg(5)",
|
||||
startlevel: 2, // Locatie
|
||||
eindlevel: 5 // Ruimte
|
||||
});
|
||||
%>
|
||||
|
||||
<tr>
|
||||
<td class="label" colspan="2">
|
||||
<label for="algfaqtable" style="white-space: nowrap"><%=L("lcl_faq_voor_alg")%>: </label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<table id="algfaqtable" cellspacing=0 cellpadding=0 class="rstable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style='width:15px'></th>
|
||||
<th><%=L("lcl_faq_alg_scope")%></th>
|
||||
<th><%=L("lcl_plaatsgegevens")%></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
<%
|
||||
|
||||
var sql = "SELECT f.alg_algfaq_key"
|
||||
+ " , DECODE(o.alg_type, NULL, 'L', o.alg_type) scope"
|
||||
+ " , l.alg_locatie_code ||"
|
||||
+ " DECODE(o.alg_plaatsaanduiding, NULL, NULL, '-' || o.alg_plaatsaanduiding) plaats"
|
||||
+ " , l.alg_locatie_key loc_key"
|
||||
+ " , COALESCE(o.alg_gebouw_key, o.alg_terreinsector_key, -1) bld_key"
|
||||
+ " , COALESCE(o.alg_verdieping_key, -1) flr_key"
|
||||
+ " , COALESCE(o.alg_ruimte_key, -1) room_key"
|
||||
+ " FROM alg_algfaq f"
|
||||
+ " , alg_locatie l"
|
||||
+ " , alg_v_onroerendgoed_gegevens o"
|
||||
+ " WHERE f.alg_locatie_key = l.alg_locatie_key"
|
||||
+ " AND f.alg_onroerendgoed_keys = o.alg_onroerendgoed_keys(+)"
|
||||
+ " AND f.fac_faq_key = " + faq_key;
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
var teller = 0;
|
||||
while (!oRs.eof)
|
||||
{
|
||||
teller++;
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
|
||||
var onr_key = -1;
|
||||
var rk = <%=oRs("room_key").value%>;
|
||||
var vk = <%=oRs("flr_key").value%>;
|
||||
var gk = <%=oRs("bld_key").value%>;
|
||||
|
||||
if (rk > -1)
|
||||
onr_key = rk;
|
||||
else if (vk > -1)
|
||||
onr_key = vk;
|
||||
else if (gk > -1)
|
||||
onr_key = gk;
|
||||
|
||||
CreateRow(<%=oRs("loc_key").value%>
|
||||
,onr_key
|
||||
,fnScope("<%=oRs("scope").value%>")
|
||||
,'<%=safe.jsstring(oRs("plaats").value)%>'
|
||||
);
|
||||
|
||||
</script>
|
||||
<%
|
||||
oRs.MoveNext();
|
||||
}
|
||||
%>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<%
|
||||
BLOCK_END();
|
||||
var buttons = [ {title: L("lcl_add"), icon: "submit.png", action: "fac_add()" }
|
||||
, {title: L("lcl_submit"), icon: "undo.png", action: "fac_submit()" }
|
||||
];
|
||||
CreateButtons(buttons);
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
128
APPL/FAC/fac_algfaq.js
Normal file
128
APPL/FAC/fac_algfaq.js
Normal file
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: fac_stdmeldingfaq.js
|
||||
*/
|
||||
|
||||
var rowIndex = -1;
|
||||
var multiFAQ = true;
|
||||
|
||||
function onClickItem(tr)
|
||||
{
|
||||
// Wordt aangeroepen na <20><>n klik op een item
|
||||
$(tr).toggleClass("selected");
|
||||
}
|
||||
|
||||
function onDblClickItem(tr)
|
||||
{
|
||||
$(tr).closest("table").find("tr").removeClass("selected"); // Alle andere regels deselecteren
|
||||
$(tr).addClass("selected");
|
||||
window.parent.doSubmit();
|
||||
}
|
||||
|
||||
function setMultiFAQ(aantal)
|
||||
{
|
||||
multiFAQ = (aantal != 1);
|
||||
}
|
||||
|
||||
function CreateRow(loc_key, onr_key, scope, plaats)
|
||||
{
|
||||
rowIndex++;
|
||||
var table = $("#algfaqtable>tbody")[0];
|
||||
|
||||
// Insert data rows
|
||||
tr = table.insertRow(-1);
|
||||
tr.myData = { loc_key: loc_key
|
||||
, onr_key: onr_key
|
||||
};
|
||||
tr.value = rowIndex;
|
||||
|
||||
// Create drop button
|
||||
cell = tr.insertCell(-1);
|
||||
cell.className = "result";
|
||||
cell.align = "center";
|
||||
cell.innerHTML = "<i class='fa fa-fw fa-trash' OnClick='delRow(this)' style='cursor:pointer'></i>";
|
||||
|
||||
// innerHTML opent een htmlparser die overbodige spaties en line breaks verwijderd in IE, daarom met innerText oplossen
|
||||
// Input velden moeten wel met innerHTML of outerHTML anders wordt het text
|
||||
|
||||
// Vakgroep omschrijving veld
|
||||
cell = tr.insertCell(-1);
|
||||
cell.className = "result";
|
||||
cell.innerHTML = scope;
|
||||
cell.align = "left";
|
||||
cell.style.whiteSpace = "nowrap";
|
||||
|
||||
// Stdmelding omschrijving veld
|
||||
cell = tr.insertCell(-1);
|
||||
cell.className = "result";
|
||||
cell.innerHTML = plaats;
|
||||
cell.align = "left";
|
||||
cell.style.whiteSpace = "nowrap";
|
||||
|
||||
// Data velden
|
||||
cell = tr.insertCell(-1);
|
||||
cell.className = "result";
|
||||
cell.innerHTML = "<input type='hidden' id='loc" + rowIndex + "' name='loc" + rowIndex + "' value='" + loc_key + "'></input>"
|
||||
+ "<input type='hidden' id='onr" + rowIndex + "' name='onr" + rowIndex + "' value='" + onr_key + "'></input>";
|
||||
cell.align = 'left';
|
||||
|
||||
document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
|
||||
}
|
||||
|
||||
function delRow(img)
|
||||
{
|
||||
// Verwijder de aangeklikte afdeling uit de lijst (de regel)
|
||||
FcltMgr.confirm(L("lcl_faq_del_alg"), function() {
|
||||
var tr = $(img).closest("tr")[0];
|
||||
if (tr.myData.loc_key != null) {
|
||||
document.getElementById("algfaqtable").deleteRow(tr.rowIndex);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function fac_submit()
|
||||
{
|
||||
document.forms.u2.submit();
|
||||
}
|
||||
|
||||
function fac_add()
|
||||
{
|
||||
if ($("#locatiekey").val() > 0)
|
||||
{
|
||||
var exist = false;
|
||||
|
||||
var this_onr_key = -1;
|
||||
switch ($("#scope").val())
|
||||
{
|
||||
case "Ruimte": this_onr_key = $("#ruimtekey").val(); break;
|
||||
case "Verdieping": this_onr_key = $("#verdiepingkey").val(); break;
|
||||
case "Gebouw":
|
||||
case "Terrein": this_onr_key = $("#gebouwkey").val(); break;
|
||||
}
|
||||
|
||||
$("#algfaqtable tr").each(function(i, value)
|
||||
{
|
||||
if (this.myData
|
||||
&& ($("#locatiekey").val() == this.myData.loc_key)
|
||||
&& (this_onr_key == this.myData.onr_key)
|
||||
)
|
||||
{
|
||||
exist = true;
|
||||
}
|
||||
});
|
||||
if (!exist)
|
||||
{
|
||||
CreateRow( $("#locatiekey").val()
|
||||
, this_onr_key
|
||||
, $("#scope").val()
|
||||
, $("#plaats").val()
|
||||
);
|
||||
FcltMgr.resized(window);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user