FCLT#54360 mld_kenmerk ook via Scaffolding

svn path=/Website/trunk/; revision=40267
This commit is contained in:
Erik Groener
2018-12-18 10:18:42 +00:00
parent 45c8866d91
commit cac82d0375
3 changed files with 420 additions and 84 deletions

View File

@@ -19,6 +19,8 @@
function model_mld_kenmerk(niveau, params)
{
var isOpdrachtKenmerk = (niveau == "O");
params = params || {};
this.records_name = "issueproperties";
this.record_name = "issueproperty";
@@ -26,8 +28,8 @@ function model_mld_kenmerk(niveau, params)
this.primary = "mld_kenmerk_key";
this.soft_delete = "mld_kenmerk_verwijder";
this.autfunction = params.internal?false:"WEB_MLDMGT";
this.record_title = (niveau == "O" ? L("mld_kenmerk") : L("lcl_mld_kenmerk") + " (scf)");
this.records_title = (niveau == "O" ? L("lcl_mld_ord_kenmerken") : L("lcl_mld_kenmerken") + " (scf)");
this.record_title = (isOpdrachtKenmerk ? L("mld_kenmerk") : L("lcl_mld_kenmerk"));
this.records_title = (isOpdrachtKenmerk ? L("lcl_mld_ord_kenmerken") : L("lcl_mld_kenmerken"));
this.module = "MLD";
var fields_main = {
@@ -63,11 +65,7 @@ function model_mld_kenmerk(niveau, params)
"dbs": "mld_kenmerk_niveau",
"label": L("mgt_kenmerk_niveau"),
"typ": "varchar",
"required": true,
"hidden_fld": true,
"showtransit": true,
// "defaultvalue": "O" // omdat we MLD toch nog niet bewerken via dit bestand
"defaultvalue": niveau
"defaultvalue": (isOpdrachtKenmerk ? "O" : "")
},
"ordertype": {
"dbs": "mld_typeopdr_key",
@@ -81,7 +79,7 @@ function model_mld_kenmerk(niveau, params)
"key": "mld_typeopdr_key",
"desc": "mld_typeopdr_omschrijving"
},
"required": true, // omdat we MLD toch nog niet bewerken via dit bestand
"required": isOpdrachtKenmerk, // alleen voor OPDR verplicht
"defaultvalue": null
},
"sequence": {
@@ -132,7 +130,7 @@ function model_mld_kenmerk(niveau, params)
},
"readonly": {
"dbs": "mld_kenmerk_toonbaar",
"label": L("mgt_kenmerk_toonbaar"),
"label": (isOpdrachtKenmerk ? L("mgt_kenmerk_toonbaar") : L("lcl_mld_kenmerk_readonly") ),
"typ": "check"
},
"default": {
@@ -142,23 +140,10 @@ function model_mld_kenmerk(niveau, params)
"translate": true
},
"issuetype": {
"dbs": (niveau != "O" ? "view_mld_kenmerk." : "") + "mld_stdmelding_key",
"dbs": "mld_stdmelding_key",
"label": L("mld_stdmelding_key"),
"typ": "key",
"hidden_fld": true,
"foreign": {
"tbl": "(select m.mld_stdmelding_key"
+ " , " + (niveau == "O" ? "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": ""
"hidden_fld": true
},
"hint": {
"dbs": "mld_kenmerk_hint",
@@ -173,9 +158,14 @@ function model_mld_kenmerk(niveau, params)
}
};
var fields_ext = ( niveau == "O"
? {}
: {
var fields_ext = {
"mld_issuetype": {
"dbs": "view_mld_kenmerk.mld_mld_stdmelding_key",
"label": L("mld_stdmelding_key"),
"typ": "key",
"foreign": "MLD_STDMELDING",
"filter": "exact"
},
"issuepropertytypename": {
"dbs": "view_mld_kenmerk.mld_srtkenmerk_omschrijving",
"label": L("mgt_srtkenmerk_key"),
@@ -196,11 +186,7 @@ function model_mld_kenmerk(niveau, params)
"dbs": "view_mld_kenmerk.ins_discipline_key", //"mld_discipline.ins_discipline_key",
"label": L("lcl_mld_vakgroep"),
"typ": "key",
"foreign": {
"tbl": "mld_discipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
}
"foreign": "MLD_DISCIPLINE"
},
"filled": {
"dbs": "view_mld_kenmerk.aantal",
@@ -221,20 +207,19 @@ function model_mld_kenmerk(niveau, params)
"typ": "key",
"LOV": requiredstatus_LOV()
},
"visible": {
"dbs": "mld_kenmerk_toonbaar",
"label": L("lcl_mld_kenmerk_readonly"),
"typ": "check"
},
"code": {
"dbs": "mld_kenmerk_code",
"label": L("lcl_mld_code"),
"typ": "varchar",
"readonly": true
}
});
};
if (isOpdrachtKenmerk)
this.fields = fields_main;
else
this.fields = object_merge({}, fields_ext, fields_main);
this.fields = object_merge({}, fields_ext, fields_main);
function object_merge()
{
@@ -251,29 +236,48 @@ function model_mld_kenmerk(niveau, params)
return typedata;
}
this.hook_pre_edit = function (obj, fld)
{
delete this.fields.disciplinetype;
delete this.fields.filled;
delete this.fields.attributetype;
if (niveau == "O")
delete this.fields.discipline;
// else
// this.fields.discipline.foreign = "MLD_DISCIPLINE";
this.hook_pre_search = function(fld)
{
%>
<script>
var module = "MLD";
var niveau = "<%=niveau%>";
</script>
<%
}
// this.hook_pre_post = function (params, obj)
// {
// __Log(params);
// __Log(obj);
// abort_with_warning("STOP");
// }
this.hook_pre_edit = function (obj, fld)
{
delete this.fields.filled;
delete this.fields.attributetype;
%>
<script>
var module = "MLD";
</script>
<%
}
this.hook_pre_post = function (params, obj)
{
switch (obj.level)
{
case "O": obj.ordertype = obj.ordertype; break;
case "S": obj.issuetype = obj.mld_issuetype; break;
case "D": obj.issuetype = obj.discipline; break;
case "T": obj.issuetype = obj.disciplinetype; break;
}
}
this.hook_pre_put = function(params, obj, key)
{
switch (obj.level)
{
case "O": obj.ordertype = obj.ordertype; break;
case "S": obj.issuetype = obj.mld_issuetype; break;
case "D": obj.issuetype = obj.discipline; break;
case "T": obj.issuetype = obj.disciplinetype; break;
}
}
@@ -294,7 +298,7 @@ function model_mld_kenmerk(niveau, params)
var gparams = {"GET": {}};
if (niveau == "O")
if (isOpdrachtKenmerk)
{
gparams.GET = { wheres: [ "mld_kenmerk.mld_kenmerk_niveau = 'O'" ] };
}
@@ -306,7 +310,7 @@ function model_mld_kenmerk(niveau, params)
+ " , msk.mld_srtkenmerk_omschrijving"
+ " , s.mld_kenmerk_niveau"
+ " , s.ref_mld_stdmelding_key"
+ " , s.mld_stdmelding_key"
+ " , s.mld_stdmelding_key mld_mld_stdmelding_key"
+ " , s.mld_stdmelding_omschrijving"
+ " , s.ins_discipline_key"
+ " , s.ins_srtdiscipline_key"

View File

@@ -5,39 +5,275 @@
File: mld_kenmerk.asp
Description: fac_management aanroep van model_mld_kenmerk
Description: Aanroep van model_mld_kenmerk voor meldingen EN opdrachten
Context:
Notes: LET OP: alleen gebruikt voor opdracht kenmerken
Melding kenmerken komen in dezelfde tabel maar die hebben
nog eigen schermen via MLD\mld_kenmerk.asp
Context: paramater: niveau=M: melding kenmerken (level = S|D|T)
niveau=O: opdracht kenmerken (level = O)
Notes:
*/
%>
<!-- #include file="../scf/scaffolding.inc" -->
<!-- #include file="../api2/model_mld_kenmerk.inc" -->
<%
var this_model = new model_mld_kenmerk('O');
var niveau = getQParam("niveau", "X");
var kenmerk_key = getQParamInt("id", -1);
scaffolding(this_model,
if (mode == "edit" && (niveau == "X" || niveau == "M") && kenmerk_key == -1) // dwing keuze
{
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script>
var niveau = "";
function dialogClose()
{
if (niveau != "")
{
var addurl = "mld_kenmerk.asp?mode=edit&niveau=" + niveau;
addurl += "<%=buildTransitParam(["srtdisc_key", "disc_key", "stdm", "id"])%>";
window.location.href = addurl;
}
}
$(function()
{
var params = { title: "<%=L("lcl_mld_choose_srt")%>",
modal: true,
width : 300,
resizable : false,
close : dialogClose
};
FcltMgr.fixActiveelementError();
$('div#dmodal').dialog(params).dialog('open');
});
</script>
</head>
<body>
<div id="dmodal" style="display:none">
<%
buttons = [{ title: L("lcl_complain"), action: "niveau='S';$('div#dmodal').dialog('close').remove();"},
{ title: L("lcl_mld_vakgroep"), action: "niveau='D';$('div#dmodal').dialog('close').remove();"},
{ title: L("lcl_mld_vakgroeptype"), action: "niveau='T';$('div#dmodal').dialog('close').remove();"}
];
CreateButtons(buttons, { vertical: 1, isDialog: true } )
%> </div>
</body>
</html>
<% Response.End;
}
var isOpdrachtKenmerk = (niveau == "O");
var km_level = niveau;
if (kenmerk_key > -1)
{
var sql = "SELECT mld_kenmerk_niveau"
+ " FROM mld_kenmerk"
+ " WHERE mld_kenmerk_key = " + kenmerk_key;
var oRs = Oracle.Execute(sql);
km_level = oRs("mld_kenmerk_niveau").Value;
oRs.Close();
}
var show_edit_level = "";
switch (km_level)
{
case "O": show_edit_level = "ordertype"; break;
case "S": show_edit_level = "mld_issuetype"; break;
case "D": show_edit_level = "discipline"; break;
case "T": show_edit_level = "disciplinetype"; break;
}
var this_model = new model_mld_kenmerk( (isOpdrachtKenmerk ? "O" : "M") );
this_model.fields.level.LOV = level_LOV();
this_model.fields.level.filter = "exact";
this_model.fields.issuepropertytype.foreign = issuepropertytype_foreign();
if (mode == "edit")
{
if (kenmerk_key == -1)
{
"search": {
"autosearch": true,
"filters": [
"issuepropertytype",
"ordertype"
]
},
"list": {
"columns": [
"id",
"issuepropertytype",
"ordertype",
"sequence",
"group",
"required"
]
},
"print": {}
});
this_model.fields.level.hidden_fld = true;
this_model.fields.level.showtransit = true;
this_model.fields.level.defaultvalue = km_level;
}
else
{
this_model.fields.level.readonly = true;
}
}
switch (km_level)
{
case "O": delete this_model.fields.disciplinetype;
delete this_model.fields.discipline;
break;
case "S": delete this_model.fields.disciplinetype;
delete this_model.fields.discipline;
break;
case "D": delete this_model.fields.disciplinetype;
delete this_model.fields.mld_issuetype;
break;
case "T": delete this_model.fields.discipline;
delete this_model.fields.mld_issuetype;
break;
}
function level_LOV()
{
var v_level = "";
if (mode == "list" || mode == "search")
{
if (isOpdrachtKenmerk)
v_level = "O;" + L("lcl_shared_order");
else
v_level = "S;" + L("lcl_complain")
+ ";D;" + L("lcl_mld_vakgroep")
+ ";T;" + L("lcl_mld_vakgroeptype");
}
else
{
switch (km_level)
{
case "O": v_level = "O;" + L("lcl_shared_order"); break;
case "S": v_level = "S;" + L("lcl_complain"); break;
case "D": v_level = "D;" + L("lcl_mld_vakgroep"); break;
case "T": v_level = "T;" + L("lcl_mld_vakgroeptype"); break;
default: v_level = "O;" + L("lcl_shared_order")
+ ";S;" + L("lcl_complain")
+ ";D;" + L("lcl_mld_vakgroep")
+ ";T;" + L("lcl_mld_vakgroeptype");
}
}
return v_level;
}
function issuepropertytype_foreign()
{
var v_omschr = "mld_srtkenmerk_omschrijving"
+ ( mode != "list"
? "|| ' (' || mld_srtkenmerk_kenmerktype ||')'"
: ""
)
+ " oms";
var v_foreign = {
"tbl": "(select mld_srtkenmerk_key"
+ " , " + v_omschr
+ " from mld_srtkenmerk"
+ " where mld_srtkenmerk_verwijder is null"
+ " order by mld_srtkenmerk_upper asc)",
"key": "mld_srtkenmerk_key",
"desc": "oms"
}
return v_foreign;
}
var model_params = {
"search": {
"autosearch": true,
"filters": [
(isOpdrachtKenmerk ? "issuepropertytype" : "issuepropertytypename"),
(isOpdrachtKenmerk ? "ordertype" : "disciplinetype"),
"discipline", // Het veld discipline bestaat niet voor Opdracht en wordt daarom in filter niet getoond!
"mld_issuetype", // Het veld mld_issuetype bestaat niet voor Opdracht.
"attributetype", // Het veld attributetype bestaat niet voor Opdracht
(isOpdrachtKenmerk ? "filled" : "level") // Niet op level filteren bij Opdracht: Het veld filled bestaat niet voor Opdracht en wordt daarom in filter niet getoond!
],
"requires": {
"js": ["./mld_kenmerk.js"]
}
},
"list": {
"columns": [
"id",
"disciplinetype",
"discipline",
"mld_issuetype",
"sequence",
"group",
"required",
"issuepropertytype",
"attributetype",
"level",
"filled"
],
"orderby": [
(isOpdrachtKenmerk ? "id" : "disciplinetype"),
"discipline NULLS FIRST",
"mld_issuetype NULLS FIRST",
"sequence"
]
},
"transit": {
"niveau": niveau
},
"print": {},
"layout": {
"miscellaneous": L("lcl_mld_miscellaneous_fields"),
"block": [
{
"blockid": "algSrtBld",
"label": L("alg_srtgebouw"),
"ishtmlsafe": true,
"hidden": false,
"buttons": [],
"fields": [
"id",
"issuepropertytype",
"level",
show_edit_level,
"sequence",
"group",
"required",
"requiredstatus",
"readonly",
"regexp",
"hint",
"default",
"code"
]
},
{
"blockid": "mldHidden",
"label": L("lcl_mld_hidden_fields"),
"hidden": true,
"fields": [
"filled",
"issuepropertytypename",
"attributetype",
"hltproperty",
"obligationfill",
"issuetype",
"ordertype"
]
}
]
}
};
if (isOpdrachtKenmerk)
{
model_params.list = {
"columns": [
"id",
"issuepropertytype",
"ordertype",
"sequence",
"group",
"required"
]
};
}
scaffolding(this_model, model_params);
%>

96
APPL/MGT/mld_kenmerk.js Normal file
View File

@@ -0,0 +1,96 @@
/*
$Revision$
$Id$
*/
$(function ()
{
setTimeout("init_mld_kenmerk()", 100);
});
function init_mld_kenmerk()
{
var isOpdrachtKenmerk = (niveau == "O");
if (!isOpdrachtKenmerk)
{
$("#disciplinetype").prev().text(" "); // Op disciplinetype wil ik geen multiselect!
$("#disciplinetype").change( change_disciplinetype );
$("#discipline_show").attr("sgonChange", "change_discipline");
$("#mld_issuetype_show").attr("sgonChange", "change_mld_issuetype");
sgdiscipline.reloadUrlAdd([{urlParam: "srtdisc_key", field: "disciplinetype" }]);
sgmld_issuetype.reloadUrlAdd([{urlParam: "disc_key", field: "discipline" }]);
}
}
function change_disciplinetype()
{
sgdiscipline.setValue(-1, '');
sgdiscipline.CheckJustOne();
sgmld_issuetype.setValue(-1, '');
sgmld_issuetype.CheckJustOne();
}
function change_discipline()
{
var disc_key = $("#discipline").val();
if (sgmld_issuetype.getValue() == -1)
{
sgmld_issuetype.setValue(-1, "", true, false, null, true);
sgmld_issuetype.CheckJustOne();
}
if (disc_key > 0)
{
$.getJSON("../mld/get_mld_info_ajax.asp",
{ req_info: "mld_discipline",
mld_ins_discipline_key: disc_key,
caller_key: -1
},
process_disc_info);
}
}
function process_disc_info(data, textStatus)
{
// Zet disciplinetype indien niet ingevuld
var d_srtdisc_key = data.ins_srtdiscipline_key;
var f_srtdisc_key = $("#disciplinetype").val();
if (f_srtdisc_key <= 0 || (f_srtdisc_key != d_srtdisc_key))
{
$("#disciplinetype").val(d_srtdisc_key);
}
}
function change_mld_issuetype()
{
var stdmelding_key = sgmld_issuetype.getValue();
if (stdmelding_key > 0)
{
$.getJSON("../mld/get_mld_info_ajax.asp",
{ req_info: "mld_stdmelding",
mld_stdmelding_key: stdmelding_key,
caller_key: -1
},
process_stdm_info);
}
}
function process_stdm_info(data, textStatus)
{
// Zet de discipline indien niet ingevuld
var d_disc_key = data.ins_discipline_key;
var f_disc_key = $("#discipline").val();
if (f_disc_key <= 0 || (f_disc_key != d_disc_key))
{
var disc_naam = (data.ins_srtdiscipline_prefix != null ? data.ins_srtdiscipline_prefix + "-" : "")
+ data.discipline_omschrijving;
sgdiscipline.setValue( data.ins_discipline_key
, disc_naam
, true /*doonChange*/
, false /*checkExist*/
);
}
}