FSN#36112 Workflowschermen nieuwe stijl
svn path=/Website/trunk/; revision=28975
This commit is contained in:
@@ -1,78 +0,0 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_mld_workflow.inc
|
||||
|
||||
Description: Vanuit CodeCharge gegenereerd model voor mld_workflow
|
||||
|
||||
Context:
|
||||
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<%
|
||||
|
||||
function model_mld_workflow()
|
||||
{
|
||||
this.table = "mld_workflowstep";
|
||||
this.primary = "mld_workflowstep_key";
|
||||
this.records_name = "mld_workflowsteps";
|
||||
this.record_name = "mld_workflowstep";
|
||||
this.autfunction = "WEB_MLDMGT";
|
||||
this.record_title = L("mld_workflow");
|
||||
this.records_title = L("mld_workflow_m");
|
||||
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "mld_workflowstep_key",
|
||||
"label": "Key",
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"filter": "exact",
|
||||
"seq": "mld_s_mld_workflowstep_key",
|
||||
"readonly": true
|
||||
},
|
||||
"start": {
|
||||
"dbs": "mld_workflowstep_start_key",
|
||||
"label": L("mld_workflowstep_start"),
|
||||
"typ": "key"
|
||||
},
|
||||
"stdmelding": {
|
||||
"dbs": "mld_stdmelding_key",
|
||||
"label": L("mld_stdmelding_key"),
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "(select m.mld_stdmelding_key"
|
||||
+ " , d.ins_discipline_omschrijving || '/' || m.mld_stdmelding_omschrijving stdmelding_omschr"
|
||||
+ " from mld_stdmelding m"
|
||||
+ " , mld_v_aanwezigdiscipline d"
|
||||
+ " where m.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " order by d.ins_discipline_omschrijving asc"
|
||||
+ " , m.mld_stdmelding_omschrijving asc)",
|
||||
"key": "mld_stdmelding_key",
|
||||
"desc": "stdmelding_omschr"
|
||||
},
|
||||
"filter": "exact",
|
||||
"LOVinit": ""
|
||||
},
|
||||
"name": {
|
||||
"dbs": "mld_workflowstep_omschrijving",
|
||||
"label": L("mld_workflowstep_omschr"),
|
||||
"typ": "varchar"
|
||||
},
|
||||
"jointype": {
|
||||
"dbs": "mld_workflowstep_jointype",
|
||||
"label": L("mld_workflowstep_jointype"),
|
||||
"typ": "number"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
%>
|
||||
153
APPL/API2/model_mld_workflowstep.inc
Normal file
153
APPL/API2/model_mld_workflowstep.inc
Normal file
@@ -0,0 +1,153 @@
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: model_mld_workflow.inc
|
||||
|
||||
Description: Vanuit CodeCharge gegenereerd model voor mld_workflow
|
||||
|
||||
Context:
|
||||
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../api2/model_mld_workflowrule.inc" -->
|
||||
<%
|
||||
// model_mld_workflow is het pseudomodel van een compleet workflow*schema*
|
||||
function model_mld_workflow()
|
||||
{
|
||||
var this_model = new model_mld_workflowstep();
|
||||
delete this_model.fields.start;
|
||||
delete this_model.fields.jointype;
|
||||
delete this_model.fields.level;
|
||||
this_model.fields.stdmelding.label = L("mld_workflowstep_start");
|
||||
|
||||
this_model.record_title = L("mld_workflow");
|
||||
this_model.records_title = L("mld_workflow_m");
|
||||
|
||||
// Een include van model_mld_workflowstep met joinfield 'start_key'
|
||||
// met alle meldingen in dit schema zou hier niet misstaan.
|
||||
// Problemen: de start_key is bij de startmelding niet ingevuld
|
||||
// model_mld_workflowstep heeft ook nog weer een include
|
||||
// rules en scaffolding kan drie-die (toch?) niet aan
|
||||
|
||||
return this_model;
|
||||
}
|
||||
|
||||
// model_mld_workflowstep is van een individuele step (melding) in een schema
|
||||
function model_mld_workflowstep(mystart_key)
|
||||
{
|
||||
this.table = "mld_workflowstep";
|
||||
this.primary = "mld_workflowstep_key";
|
||||
this.records_name = "mld_workflowsteps";
|
||||
this.record_name = "mld_workflowstep";
|
||||
this.autfunction = "WEB_MLDMGT";
|
||||
this.record_title = L("mld_workflowstep");
|
||||
this.records_title = L("mld_workflowstep_m");
|
||||
|
||||
this.fields = {
|
||||
"id": {
|
||||
"dbs": "mld_workflowstep_key",
|
||||
"label": "Key",
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"filter": "exact",
|
||||
"seq": "mld_s_mld_workflowstep_key",
|
||||
"readonly": true
|
||||
},
|
||||
"name": {
|
||||
"dbs": "mld_workflowstep_omschrijving",
|
||||
"label": L("mld_workflowstep_omschr"),
|
||||
"typ": "varchar",
|
||||
"required": true
|
||||
},
|
||||
"start": {
|
||||
"dbs": "mld_workflowstep_start_key",
|
||||
"label": L("mld_workflowstep_start"),
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "mld_workflowstep",
|
||||
"key": "mld_workflowstep_key",
|
||||
"desc": "mld_workflowstep_omschrijving",
|
||||
"where": "mld_workflowstep_start_key IS NULL"
|
||||
}
|
||||
},
|
||||
"stdmelding": {
|
||||
"dbs": "mld_stdmelding_key",
|
||||
"label": L("mld_stdmelding_key"),
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "(select m.mld_stdmelding_key"
|
||||
+ " , d.ins_discipline_omschrijving || '/ ' || m.mld_stdmelding_omschrijving stdmelding_omschr"
|
||||
+ " from mld_stdmelding m"
|
||||
+ " , mld_v_aanwezigdiscipline d"
|
||||
+ " where m.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " order by d.ins_discipline_omschrijving asc"
|
||||
+ " , m.mld_stdmelding_omschrijving asc)",
|
||||
"key": "mld_stdmelding_key",
|
||||
"desc": "stdmelding_omschr"
|
||||
},
|
||||
"required": true,
|
||||
"filter": "exact",
|
||||
"LOVinit": ""
|
||||
},
|
||||
"jointype": {
|
||||
"dbs": "mld_workflowstep_jointype",
|
||||
"label": L("mld_workflowstep_jointype"),
|
||||
"typ": "number",
|
||||
"LOV": "0;AND;1;(X)OR;2;SYNC",
|
||||
"required": true,
|
||||
"defaultvalue": "0"
|
||||
},
|
||||
"level": {
|
||||
"dbs": "mylevel",
|
||||
"label": L("mld_workflowstep_level"),
|
||||
"sql": " NVL ( TO_CHAR(1 + (SELECT ll"
|
||||
+ " FROM ( SELECT MAX (LEVEL) ll, mld_workflowstep_next_key"
|
||||
+ " FROM mld_workflowrule r"
|
||||
+ " CONNECT BY PRIOR r.mld_workflowstep_next_key ="
|
||||
+ " r.mld_workflowstep_key"
|
||||
+ " GROUP BY mld_workflowstep_next_key)"
|
||||
+ " WHERE mld_workflowstep_next_key = mld_workflowstep.mld_workflowstep_key)), "
|
||||
+ " CASE WHEN mld_workflowstep_start_key IS NULL THEN '1 (START)' ELSE 'UNREACHABLE' END)",
|
||||
"typ": "varchar"
|
||||
}
|
||||
};
|
||||
|
||||
this.includes = {
|
||||
"rules": {
|
||||
"model": new model_mld_workflowrule(mystart_key),
|
||||
"joinfield": "prevstep",
|
||||
"enable_update": true
|
||||
}
|
||||
};
|
||||
|
||||
var gparams = { GET: { } };
|
||||
|
||||
if (mystart_key > 0)
|
||||
{
|
||||
gparams.GET.wheres = [ "(mld_workflowstep_start_key = {0} OR mld_workflowstep.mld_workflowstep_key = {0})".format(mystart_key)];
|
||||
delete this.fields.name;
|
||||
this.fields.start.defaultvalue = mystart_key;
|
||||
this.fields.start.hidden_fld = true;
|
||||
this.REST_POST = function (params, jsondata) // in mld_workflowstep.asp is een pseudoveld 'prevstep' toegevoegd
|
||||
{
|
||||
var prevstep = jsondata.prevstep;
|
||||
delete this.fields.prevstep; // die pseudokolom doen we zelf
|
||||
var result = generic_REST_POST(this)(params, jsondata); // eerst gewoon opslaan
|
||||
// Nu nog een mld_workflowrule record aanmaken
|
||||
this.includes.rules.model.REST_POST(params, { prevstep: prevstep, nextstep: result.key});
|
||||
return result;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gparams.GET.wheres = [ "mld_workflowstep_start_key IS NULL" ];
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, gparams);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
}
|
||||
%>
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
File: mld_workflow.asp
|
||||
|
||||
Description: fac_management aanroep van model_mld_workflow
|
||||
Description: Bewerken van een workflow *schema*
|
||||
|
||||
Context:
|
||||
|
||||
@@ -14,23 +14,18 @@
|
||||
%>
|
||||
<!-- #include file="../scf/scaffolding.inc" -->
|
||||
<!-- #include file="../mgt/mgt_tools.inc" -->
|
||||
<!-- #include file="../api2/model_mld_workflow.inc" -->
|
||||
<!-- #include file="../api2/model_mld_workflowstep.inc" -->
|
||||
<%
|
||||
|
||||
var this_model = new model_mld_workflow();
|
||||
|
||||
this_model.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
var module = "MLD";
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
|
||||
scaffolding(this_model,
|
||||
var scf_params =
|
||||
{
|
||||
"search": {
|
||||
"autosearch": true
|
||||
"autosearch": true,
|
||||
"filters": [
|
||||
"name"
|
||||
]
|
||||
},
|
||||
"list": {
|
||||
"columns": [
|
||||
@@ -38,6 +33,23 @@ scaffolding(this_model,
|
||||
"name",
|
||||
"stdmelding"
|
||||
]
|
||||
},
|
||||
"edit":{
|
||||
"xxmodal": true
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
scf_params.wrap =
|
||||
{
|
||||
"no_default_frames": true,
|
||||
"frames": [{ url: "mld_workflowstep.asp?mode=list&mystart={0}"
|
||||
},
|
||||
{ url: "workflow_graph.asp?start_key={0}"
|
||||
},
|
||||
{ url: "workflow_overview.asp?start_key={0}"
|
||||
}]
|
||||
};
|
||||
|
||||
scaffolding(this_model, scf_params)
|
||||
%>
|
||||
57
APPL/MGT/mld_workflowstep.asp
Normal file
57
APPL/MGT/mld_workflowstep.asp
Normal file
@@ -0,0 +1,57 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: mld_workflow.asp
|
||||
|
||||
Description: Beheren van mld_workflowstep
|
||||
Individuele meldingen van een workflowschema
|
||||
|
||||
Context: start_key is altijd bekend
|
||||
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../scf/scaffolding.inc" -->
|
||||
<!-- #include file="../mgt/mgt_tools.inc" -->
|
||||
<!-- #include file="../api2/model_mld_workflowstep.inc" -->
|
||||
<%
|
||||
|
||||
var prevstep = getQParamInt("prevstep", -1);
|
||||
if (prevstep > 0)
|
||||
var mystart_key = Oracle.Get("mld_workflowstep_start_key", "mld_workflowstep", prevstep);
|
||||
else
|
||||
var mystart_key = getQParamInt("mystart"); // De parameter zit er niet op als we in een include-model zitten
|
||||
|
||||
var this_model = new model_mld_workflowstep(mystart_key);
|
||||
|
||||
var mode = getQParam("mode", "");
|
||||
if ((mode == "edit" || mode == "save") && getQParam("id", -1) < 0) // Toevoegmode. Forceer dat ook een 'vorige stap' gekozen wordt
|
||||
{
|
||||
this_model.fields.prevstep = this_model.includes.rules.model.fields.prevstep;
|
||||
}
|
||||
|
||||
var scf_params =
|
||||
{
|
||||
"list": {
|
||||
"columns": [
|
||||
//"id",
|
||||
"level",
|
||||
"stdmelding",
|
||||
"rules.nextstep"
|
||||
]
|
||||
},
|
||||
"edit":{
|
||||
"addmodal": true
|
||||
},
|
||||
"transit": {
|
||||
"mystart": mystart_key
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
//xxscf_params.list.orderby = ["level", "stdmelding"];
|
||||
|
||||
scaffolding(this_model, scf_params)
|
||||
%>
|
||||
@@ -100,6 +100,8 @@ function scaffolding_edit(model, scf_params)
|
||||
model.hook_pre_edit(xxx_data, model.fields);
|
||||
|
||||
var modal = model.edit.modal || scf_params.edit && scf_params.edit.modal; // dan doen we een detailrecord altijd modal
|
||||
if (key < 0 && scf_params.edit && scf_params.edit.addmodal)
|
||||
modal = true;
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -225,6 +227,9 @@ function scaffolding_edit(model, scf_params)
|
||||
for (var fld in model.fields)
|
||||
{
|
||||
var field = model.fields[fld];
|
||||
if (field.sql)
|
||||
continue; // weinig aan te beweken
|
||||
|
||||
if (field.hidden_fld || (field.readonly && !(key > 0)))
|
||||
{ // Eerst de hidden velden.
|
||||
scf_RWHIDDENTR(model, fld, xxx_data[fld]);
|
||||
|
||||
@@ -35,6 +35,7 @@ function scaffolding_list(model, scf_params)
|
||||
}
|
||||
|
||||
var modal = model.edit.modal || scf_params.edit && scf_params.edit.modal; // dan doen we een detailrecord altijd modal
|
||||
var addmodal = modal || scf_params.edit && scf_params.edit.addmodal;
|
||||
|
||||
FCLTHeader.Requires({js: ["jquery-ui.js"]});
|
||||
if ("requires" in scf_params.list)
|
||||
@@ -90,7 +91,7 @@ function scaffolding_list(model, scf_params)
|
||||
function scf_add()
|
||||
{
|
||||
<%
|
||||
if (modal) {
|
||||
if (addmodal) {
|
||||
%>
|
||||
FcltMgr.openModalDetail("<%= scf_params.this_fullpath + "?mode=edit" + transit %>", "<%=L("lcl_add") + " " + safe.jsstring(model.record_title)%>", { callback: scf_reload });
|
||||
<% } else { %>
|
||||
|
||||
@@ -68,15 +68,18 @@ function scaffolding_wrap(model, scf_params)
|
||||
|
||||
if (key > 0)
|
||||
{
|
||||
for (var inc in model.includes)
|
||||
if (!scf_params.wrap.no_default_frames)
|
||||
{
|
||||
var include = model.includes[inc];
|
||||
if (include.joinfield && !include.joinfunction && !include.prefunc) // die is te ingewikkeld?
|
||||
for (var inc in model.includes)
|
||||
{
|
||||
var url = scf_params.this_fullpath + "?mode=list" + transit + "&model=" + inc;
|
||||
// Vanuit fac_reportx heeft fullpath geen id in zich verwerkt. Daarom nog maar een keer in de url
|
||||
url += "&" + include.joinfield + "=" + key;
|
||||
IFRAMER("xxxFrame", url, { FcltClose: "scfClose" } );
|
||||
var include = model.includes[inc];
|
||||
if (include.joinfield && !include.joinfunction && !include.prefunc) // die is te ingewikkeld?
|
||||
{
|
||||
var url = scf_params.this_fullpath + "?mode=list" + transit + "&model=" + inc;
|
||||
// Vanuit fac_reportx heeft fullpath geen id in zich verwerkt. Daarom nog maar een keer in de url
|
||||
url += "&" + include.joinfield + "=" + key;
|
||||
IFRAMER("xxxFrame", url, { FcltClose: "scfClose" } );
|
||||
}
|
||||
}
|
||||
}
|
||||
if (scf_params.wrap.frames)
|
||||
|
||||
Reference in New Issue
Block a user