FSN#31698 Rapportgenerator beter default filterwaarden
Ook: generiek na opslaan nieuw record terugkomen in showmode svn path=/Website/trunk/; revision=24509
This commit is contained in:
@@ -14,6 +14,7 @@ if (mode == "save" || mode == "delete")
|
||||
var JSON_Result = true;
|
||||
%>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="./scaffolding_common.inc" -->
|
||||
<% if (mode != "save" && mode != "delete") { %>
|
||||
<% if (mode != "list") { %>
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
@@ -113,9 +114,13 @@ function scaffolding(model, scf_params)
|
||||
function scf_ROFIELDTR(model, fld, val, key)
|
||||
{
|
||||
var field = model.fields[fld];
|
||||
if (!field)
|
||||
{ // Vanuit scaffolding_search
|
||||
field = model.fields[fld.replace(/^(start_|end_)/,"")];
|
||||
}
|
||||
|
||||
var txt = val;
|
||||
if (txt === null)
|
||||
if (txt === null || typeof txt === "undefined")
|
||||
{
|
||||
if (field.typ == "check")
|
||||
txt = "0";
|
||||
@@ -195,7 +200,7 @@ function scf_RWFIELDTR(model, fld, val, key)
|
||||
show_expired: true
|
||||
});
|
||||
}
|
||||
else if (fupper = "MLD_DISCIPLINE")
|
||||
else if (fupper == "MLD_DISCIPLINE")
|
||||
{
|
||||
FCLTdisciplineselector(fld,
|
||||
"sg" + fld,
|
||||
|
||||
@@ -2,15 +2,133 @@
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: scaffolding_common.inc
|
||||
File: scaffolding_common.inc
|
||||
|
||||
Description:
|
||||
Description: Common voor gewone GUI en mobiel
|
||||
Parameters:
|
||||
Context:
|
||||
*/
|
||||
|
||||
var scf =
|
||||
{
|
||||
getMonday: function (d)
|
||||
{
|
||||
d = new Date(d);
|
||||
var day = d.getDay(),
|
||||
diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday
|
||||
return new Date(d.setDate(diff));
|
||||
},
|
||||
defaultDate: function (code)
|
||||
{
|
||||
var dt = null;
|
||||
var pn = code.substr(1,1); // p is dag terug, n is dag vooruit
|
||||
var pnnum = (pn=='p'?-1:pn=='n'?1:0);
|
||||
switch (code.substr(0,1).toLowerCase())
|
||||
{
|
||||
case "n":
|
||||
dt = new Date();
|
||||
break;
|
||||
case "d":
|
||||
dt = new Date();
|
||||
dt.setHours(0,0,0,0);
|
||||
dt.setDate(dt.getDate() + pnnum);
|
||||
break;
|
||||
case "w":
|
||||
dt = scf.getMonday(new Date());
|
||||
dt.setHours(0,0,0,0);
|
||||
dt.setDate(dt.getDate() + pnnum * 7);
|
||||
break;
|
||||
case "m":
|
||||
dt = new Date();
|
||||
dt.setDate(1);
|
||||
dt.setHours(0,0,0,0);
|
||||
dt.setMonth(dt.getMonth() + pnnum);
|
||||
break;
|
||||
case "q":
|
||||
dt = new Date();
|
||||
dt.setDate(1);
|
||||
dt.setHours(0,0,0,0);
|
||||
dt.setMonth(3 * Math.floor(dt.getMonth() / 3));
|
||||
dt.setMonth(dt.getMonth() + pnnum * 3);
|
||||
break;
|
||||
case "y":
|
||||
dt = new Date();
|
||||
dt.setDate(1);
|
||||
dt.setMonth(0);
|
||||
dt.setHours(0,0,0,0);
|
||||
dt.setYear(dt.getYear() + pnnum);
|
||||
break;
|
||||
}
|
||||
|
||||
// Nu correctie naar einde periode voor hoofdletter
|
||||
if (code.substr(0,1) != code.substr(0,1).toLowerCase())
|
||||
dt.setHours(0,0,-1,0); // Einde dag ervoor
|
||||
switch (code.substr(0,1))
|
||||
{
|
||||
case "N":
|
||||
break;
|
||||
case "D":
|
||||
dt.setDate(1 + dt.getDate());
|
||||
break;
|
||||
case "W":
|
||||
dt.setDate(7 + dt.getDate());
|
||||
break;
|
||||
case "M":
|
||||
dt.setMonth(1 + dt.getMonth());
|
||||
break;
|
||||
case "Q":
|
||||
dt.setMonth(3 + dt.getMonth());
|
||||
break;
|
||||
case "Y":
|
||||
dt.setYear(1 + dt.getYear());
|
||||
break;
|
||||
}
|
||||
return dt;
|
||||
},
|
||||
parseDefault: function (def, field)
|
||||
{
|
||||
var result = { fixed: false, vmin: null, vmax: null };
|
||||
if (!def || def.substr(0,1) != ":")
|
||||
{
|
||||
result.vmin = def;
|
||||
return result;
|
||||
}
|
||||
def = def.substr(1);
|
||||
if (def.substr(0,1) == "!") // ':!' bevriest waarde
|
||||
{
|
||||
result.fixed = true;
|
||||
def = def.substr(1);
|
||||
}
|
||||
result.vmin = def;
|
||||
if (field.filter == "range")
|
||||
{
|
||||
result.vmin = def.split('-')[0];
|
||||
result.vmax = def.split('-')[1];
|
||||
}
|
||||
switch (field.typ)
|
||||
{
|
||||
case "key":
|
||||
switch (result.vmin.toLowerCase())
|
||||
{
|
||||
case "self":
|
||||
result.vmin = user_key;
|
||||
break;
|
||||
case "location":
|
||||
result.vmin = user.alg_locatie_key({withcurrent:true});
|
||||
break;
|
||||
case "building":
|
||||
result.vmin = user.alg_gebouw_key({withcurrent:true});
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "date":
|
||||
case "datetime":
|
||||
result.vmin = scf.defaultDate(result.vmin);
|
||||
result.vmax = scf.defaultDate(result.vmax);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
%>
|
||||
@@ -63,6 +63,11 @@ function scaffolding_edit(model, scf_params)
|
||||
{
|
||||
FcltMgr.closeDetail(window, { cancel: true } );
|
||||
}
|
||||
jQuery(function()
|
||||
{
|
||||
$('textarea').resize(function () { FcltMgr.resized(window) });
|
||||
$('textarea').autogrow();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body id="<%=modal?"mod_scaffolding":"editbody"%>" <%=modal?"class='modal scaffolding'":""%>>
|
||||
|
||||
@@ -102,7 +102,7 @@ function scaffolding_list(model, scf_params)
|
||||
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
|
||||
if (model["REST_POST"] && authparams.PRSwritelevel < 9 && authparams.ALGwritelevel < 9)
|
||||
{
|
||||
var addurl = scf_params.this_path + "?mode=edit" + transit;
|
||||
var addurl = scf_params.this_path + "?mode=wrap" + transit;
|
||||
buttons.push({ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + " " + model.record_name + "')" });
|
||||
}
|
||||
|
||||
|
||||
@@ -36,13 +36,14 @@ function scaffolding_save(model, scf_params)
|
||||
{
|
||||
if ("hook_pre_put" in model)
|
||||
model.hook_pre_put(params, jsondata, key);
|
||||
var xxx_array = model.REST_PUT(params, jsondata, key);
|
||||
var restresult = model.REST_PUT(params, jsondata, key);
|
||||
}
|
||||
else
|
||||
{
|
||||
var xxx_array = model.REST_POST(params, jsondata);
|
||||
var restresult = model.REST_POST(params, jsondata);
|
||||
key = restresult.key;
|
||||
}
|
||||
var warning = xxx_array.warning;
|
||||
var warning = restresult.warning;
|
||||
|
||||
var result = { key: key,
|
||||
warning: warning,
|
||||
|
||||
@@ -52,7 +52,7 @@ function scaffolding_search(model, scf_params)
|
||||
$("#scfcolpicker").css("left", window.fcltevent.clientX - $("#scfcolpicker").width() - 50);
|
||||
}
|
||||
|
||||
function doSubmit()
|
||||
function doSubmit(graph)
|
||||
{
|
||||
$("#scfcolpicker").hide();
|
||||
var cols = [];
|
||||
@@ -71,6 +71,7 @@ function scaffolding_search(model, scf_params)
|
||||
);
|
||||
$("#columns").val(cols.join(","));
|
||||
$("#groups").val(groups.join(","));
|
||||
$("#graph").val(graph||"");
|
||||
document.forms.u2.submit();
|
||||
}
|
||||
<% if (scf_params.search.autosearch) { %>
|
||||
@@ -85,6 +86,7 @@ function scaffolding_search(model, scf_params)
|
||||
<input type='hidden' name='mode' value='list'>
|
||||
<input type='hidden' name='columns' id='columns'>
|
||||
<input type='hidden' name='groups' id='groups'>
|
||||
<input type='hidden' name='graph' id='graph'>
|
||||
<%
|
||||
var defaults = api2.qs2json(); // TODO: Ook via scf_params
|
||||
|
||||
@@ -109,66 +111,23 @@ function scaffolding_search(model, scf_params)
|
||||
{
|
||||
var fld = scf_params.search.filters[i];
|
||||
var field = model.fields[fld];
|
||||
var def = field.filterdefault || defaults[fld];
|
||||
if (field.hidden)
|
||||
continue;
|
||||
|
||||
var def = field.filterdefault || defaults[fld];
|
||||
var defs = scf.parseDefault(def, field);
|
||||
|
||||
if (field.filter == 'like' || field.filter == 'exact' || !("filter" in field))
|
||||
scf_RWFIELDTR(model, fld, def);
|
||||
{
|
||||
(defs.fixed?scf_ROFIELDTR:scf_RWFIELDTR)(model, fld, defs.vmin);
|
||||
}
|
||||
else if (field.filter == "range")
|
||||
{
|
||||
var from = null;
|
||||
var to = null;
|
||||
if (def && def.substr(0,1) == ":")
|
||||
{
|
||||
// Formaat ':d-d', ':d', ':-d' voor dagen en m, y voor maand/jaar
|
||||
// De eerste letter geldt voor 'van', de eventuele tweede voor 'tot'
|
||||
// Van is altijd begin van dag/maand/jaar, tot is altijd einde van dag/maand/jaar
|
||||
switch (def.substr(1, 1))
|
||||
{
|
||||
case "d":
|
||||
from = new Date();
|
||||
from.setHours(0,0,0,0);
|
||||
break;
|
||||
case "m":
|
||||
from = new Date();
|
||||
from.setDate(1);
|
||||
from.setHours(0,0,0,0);
|
||||
break;
|
||||
case "y":
|
||||
from = new Date();
|
||||
from.setDate(1);
|
||||
from.setMonth(0);
|
||||
from.setHours(0,0,0,0);
|
||||
break;
|
||||
}
|
||||
if (def.indexOf('-') > -1) // Einddatum
|
||||
switch (def.substr(def.length - 1, 1))
|
||||
{
|
||||
case "d":
|
||||
to = new Date();
|
||||
to.setHours(23,59,59,00);
|
||||
break;
|
||||
case "m":
|
||||
to = new Date();
|
||||
to.setDate(1);
|
||||
to.setMonth(to.getMonth() + 1);
|
||||
to.setHours(0,0,-1,0);
|
||||
break;
|
||||
case "y":
|
||||
to = new Date();
|
||||
to.setYear(to.getYear() + 1);
|
||||
to.setDate(1);
|
||||
to.setMonth(0);
|
||||
to.setHours(0,0,-1,0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
var org_label = field.label;
|
||||
field.label = org_label + " " + L("lcl_from");
|
||||
scf_RWFIELDTR(model, "start_" + fld, from);
|
||||
(defs.fixed?scf_ROFIELDTR:scf_RWFIELDTR)(model, "start_" + fld, defs.vmin);
|
||||
field.label = org_label + " " + L("lcl_to");
|
||||
scf_RWFIELDTR(model, "end_" + fld, to);
|
||||
(defs.fixed?scf_ROFIELDTR:scf_RWFIELDTR)(model, "end_" + fld, defs.vmax);
|
||||
field.label = org_label;
|
||||
}
|
||||
}
|
||||
@@ -177,6 +136,7 @@ function scaffolding_search(model, scf_params)
|
||||
|
||||
BLOCK_END();
|
||||
var buttons = [];
|
||||
// buttons.push({title: L("lcl_menu_fac_graphs"), action: "doSubmit('G')" });
|
||||
buttons.push({title: L("lcl_search"), action: "doSubmit()" });
|
||||
buttons.push({title: L("lcl_scf_columns"), action: "pick_columns(this)" });
|
||||
CreateButtons(buttons, { entersubmit: true });
|
||||
@@ -202,7 +162,7 @@ function scaffolding_search(model, scf_params)
|
||||
if (model.list && model.list.canGroup && field.typ != "varchar" && !field.dbs.match(/_key$/i))
|
||||
{
|
||||
if (field.typ == "date" || field.typ == "datetime")
|
||||
grp = api2.filterLOV(L("lcl_rap_groupbyLOV"), "G,D,W,M,Y,H");
|
||||
grp = api2.filterLOV(L("lcl_rap_groupbyLOV"), "G,D,W,M,Q,Y,H");
|
||||
else if (field.typ == "time")
|
||||
grp = api2.filterLOV(L("lcl_rap_groupbyLOV"), "G,H");
|
||||
else if (field.typ == 'varchar')
|
||||
|
||||
Reference in New Issue
Block a user