FSN#36112 Workflowschermen nieuwe stijl

svn path=/Website/trunk/; revision=29005
This commit is contained in:
Jos Groot Lipman
2016-04-18 19:50:02 +00:00
parent 2025158fba
commit 09eb42bc57
4 changed files with 149 additions and 1 deletions

View File

@@ -0,0 +1,118 @@
<%@language = "javascript" %>
<%
/* $Revision$
$Id$
File: mld_workflow_expression.asp
Description: Detailscherm om expressie te bouwen
Parameters: step_key (REQUIRED)
Context:
Note: Modal popup
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../mld/mld_flexkenmerk.inc" -->
<%
FCLTHeader.Requires({ plugins: ["jQuery", "suggest"],
js: ["jQuery-ui.js", "modal_kenmerken.js"]
})
var step_key = getQParamInt("step_key");
var sql = "SELECT ms.mld_stdmelding_key,"
+ " md.ins_discipline_key,"
+ " md.ins_srtdiscipline_key"
+ " FROM mld_workflowstep ws,"
+ " mld_stdmelding ms,"
+ " mld_discipline md"
+ " WHERE ws.mld_stdmelding_key = ms.mld_stdmelding_key"
+ " AND md.ins_discipline_key = ms.mld_ins_discipline_key"
+ " AND ws.mld_workflowstep_key = " + step_key;
var oRs = Oracle.Execute(sql);
var srtdisc_key = oRs("ins_srtdiscipline_key").Value;
var disc_key = oRs("ins_discipline_key").Value;
var stdm_key = oRs("mld_stdmelding_key").Value;
oRs.Close()
%>
<html>
<head>
<%
FCLTHeader.Generate();
%>
<script type="text/javascript" >
window.return_data = {};
function quoted_sql(tekst, maxlen) // maxlen is optioneel
{
if (tekst == null)
return "NULL";
if (!maxlen)
maxlen = 4000;
tekst = tekst.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]+/g, "?");
tekst = tekst.substr(0, maxlen);
return "'" + tekst.replace(/\'/g,"''") + "'"; // " syntax highlight correctie
}
function preview ()
{
$("#sample").html(expr_text());
FcltMgr.resized();
}
$(function () { $("input,select").change(preview); });
function expr_text()
{
var sqlarr = [];
var aantal_kenm = $("#k_all").val();
// Ingevulde waarden van de kenmerken bewaren.
// TODO: getKenmerkSql hier inzetten?
for (var n = 1; n <= aantal_kenm; n++)
{
var kw = new kenmerkValues(n);
if (typeof kw.val == 'number')
kw.val = String(kw.val);
var keyname = ":flex" + kw.key;
if (kw.op == 'IS NOT NULL' || kw.op == 'IS NULL')
sqlarr.push(keyname + " " + kw.op)
else if (kw.val && kw.typ != "R" && kw.typ != "S")
{
if (kw.op == 'LIKE' || kw.op == 'NOT LIKE')
sqlarr.push("UPPER(" + keyname + ") " + kw.op + " " + quoted_sql(kw.val.toUpperCase()))
else
sqlarr.push(keyname + " " + kw.op + " " + quoted_sql(kw.val))
}
else if (kw.val != '-1' && kw.val != '' && (kw.typ == "R" || kw.typ == "S"))
sqlarr.push(keyname + " " + kw.op + " " + quoted_sql(kw.val));
}
return sqlarr.join(" AND ");
}
function expr_submit()
{
window.return_data.org_data = FcltMgr.dialogArguments();
window.return_data.expression = expr_text();
FcltMgr.closeDetail(window, return_data);
}
</script>
</head>
<body class="modal" id="mod_wfexpression" >
<form id="wf" name="wf" method="post">
<%
generateFlexKenmerkBlock({ stdm_arr : [stdm_key],
disc_arr : [disc_key],
srtdisc : [srtdisc_key], // Srtdiscipline/Soort melding
flexcolumns : 1,
closing : 1,
advanced : true,
wfbuilder : true
});
var buttons = [ {title: L("lcl_submit"), icon: "opslaan.png", action: "expr_submit()" },
{title: L("lcl_cancel"), icon: "undo.png", action: "FcltMgr.closeDetail( window )" }];
CreateButtons(buttons);
%></form>
<div id='sample'></div>
</body>
</html>

View File

@@ -70,6 +70,23 @@ var scf_params =
},
"transit": {
"mystart": mystart_key
},
"included": {
"rules": {
"edit": {
"requires": {
js: ["./mld_workflowstep.js"]
},
"buttons": [{ title: L("mld_workflowrule_condition"), action: "build_expression(" + prevstep + ")"}]
},
"list": {
"columns": [
"id",
"nextstep",
"condition"
]
}
}
}
};

View File

@@ -3,6 +3,16 @@
$Id$
*/
function build_expression(step_key)
{
parent.FcltMgr.openModalDetail("./mld_workflow_expression.asp?step_key=" + step_key, "Uitdrukking",
{ callback: function (data)
{ if (data.expression)
$("textarea#condition").val(data.expression);
}
} );
}
function add_step(row)
{
var prevstep_key = row.getAttribute("ROWKEY");

View File

@@ -51,7 +51,10 @@ function scaffolding(model, scf_params)
var imodel = getQParam("model", ""); // include model
if (model.includes && imodel in model.includes)
{
scf_params = {}; // settings gelden alleen op het hoofdmodel?
if ("included" in scf_params)
scf_params = scf_params.included[imodel] || {}
else
scf_params = {}; // settings gelden alleen op het hoofdmodel?
scf_params.orgmodel = model;
scf_params.incsetting = model.includes[imodel];
// scf_params.incsetting.joinfield zal nu ook altijd in de url voorkomen