243 lines
9.0 KiB
PHP
243 lines
9.0 KiB
PHP
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: scaffolding_edit.asp
|
|
Description: show detailed information of a usrrapx
|
|
|
|
Parameters: usrxxx_key (usrrapx id)
|
|
|
|
Context:
|
|
Note:
|
|
|
|
*/ %>
|
|
<%
|
|
function scaffolding_edit(model, scf_params)
|
|
{
|
|
scf_params.edit = scf_params.edit || {};
|
|
|
|
FCLTHeader.Requires({ plugins: ["jQuery"],
|
|
js: ["jquery-ui.js", "jquery.timepicker-table.js"],
|
|
css: ["timePicker-table.css"]})
|
|
|
|
if (scf_params.edit && "requires" in scf_params.edit)
|
|
FCLTHeader.Requires(scf_params.edit.requires);
|
|
|
|
var transit = "";
|
|
if ("transit" in scf_params)
|
|
transit = "&" + scf_params.transit.name + "=" + safe.url(scf_params.transit.val);
|
|
|
|
if (scf_params.incsetting)
|
|
transit += "&" + scf_params.incsetting.joinfield + "=" + getQParamInt(scf_params.incsetting.joinfield);
|
|
|
|
var key = getQParamInt("id", -1);
|
|
if (key > 0)
|
|
{
|
|
user.auth_required_or_abort(model.REST_PUT);
|
|
var xxx_params = { filter: { id: key } };
|
|
var xxx_array = model.REST_GET(xxx_params);
|
|
|
|
if (!xxx_array.length)
|
|
shared.record_not_found();
|
|
var xxx_data = xxx_array[0];
|
|
|
|
// Defaults vanuit url maken we readonly
|
|
// Vooral bij includes wordt hier ook de parent_key verwijzing gezet
|
|
var filter = shared.qs2json(model)
|
|
for (var fld in model.fields)
|
|
{
|
|
var field = model.fields[fld];
|
|
if (fld in filter)
|
|
model.fields[fld].readonly = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
user.auth_required_or_abort(model.REST_POST);
|
|
xxx_data = {};
|
|
// Defaults vanuit url invullen
|
|
// Bij includes wordt hier ook de parent_key verwijzing gezet
|
|
var filter = scf_params.filter || shared.qs2json(model)
|
|
for (var fld in model.fields)
|
|
{
|
|
var field = model.fields[fld];
|
|
if (fld in filter)
|
|
{
|
|
xxx_data[fld] = filter[fld];
|
|
if (field.foreign)
|
|
{ // name ook achterhalen. Voor includes is die waarschijnlijk ook wel te vinden
|
|
// in scf_params.orgmodel o.i.d. maar dit is doorgaans toch een heel goedkope query
|
|
var foreign = field.foreign;
|
|
if (typeof foreign == 'string')
|
|
foreign = foreignKeyTable(foreign);
|
|
var sqlf = "SELECT " + foreign.desc
|
|
+ " FROM " + foreign.tbl + " " + (foreign.alias||"")
|
|
if (foreign.where)
|
|
sqlf += " WHERE " + foreign.where + " AND ";
|
|
else
|
|
sqlf += " WHERE ";
|
|
sqlf += foreign.key + " = " + filter[fld];
|
|
var oRs = Oracle.Execute(sqlf);
|
|
xxx_data[fld] = { id: filter[fld], name: oRs(0).Value };
|
|
oRs.Close()
|
|
}
|
|
field.readonly = true;
|
|
}
|
|
else if ("defaultvalue" in field)
|
|
{
|
|
xxx_data[fld] = field.defaultvalue;
|
|
if ("LOV" in field)
|
|
{
|
|
var spl = api2.splitLOV(field.LOV);
|
|
xxx_data[fld] = { id: field.defaultvalue, name: spl[field.defaultvalue] };
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ("hook_pre_edit" in model)
|
|
model.hook_pre_edit(xxx_data, model.fields);
|
|
|
|
var modal = model.edit.modal; // dan doen we een detailrecord altijd modal
|
|
%>
|
|
|
|
<html>
|
|
<head>
|
|
<% FCLTHeader.Generate(); %>
|
|
<script>
|
|
function scf_submit()
|
|
{
|
|
if (!validateForm("u2"))
|
|
return false;
|
|
|
|
if (typeof pre_submit != "undefined")
|
|
{
|
|
if (!pre_submit())
|
|
return false;
|
|
}
|
|
|
|
$.post($("form[name=u2]")[0].getAttribute("action"), $("[name=u2]").serialize(), FcltCallbackClose, "json");
|
|
return true; // disable button
|
|
}
|
|
|
|
function scf_cancel()
|
|
{
|
|
FcltMgr.closeDetail(window, { cancel: true } );
|
|
}
|
|
|
|
function scf_delete()
|
|
{
|
|
if (confirm('<%=safe.jsstring(L("lcl_scf_confirm_delete").format(model.record_title, xxx_data.name || xxx_data.id))%>'))
|
|
{
|
|
var data = { key: "<%=key%>" };
|
|
<% protectRequest.dataToken("data"); %>
|
|
$.post("<%=scf_params.this_fullpath%>?mode=delete&id=<%=key%><%=transit%>",
|
|
data,
|
|
FcltCallbackClose,
|
|
"json");
|
|
}
|
|
}
|
|
|
|
window.lastinputid = null;
|
|
$(function () {
|
|
$("input,textarea").on("focus", function () {
|
|
window.lastinputid = this.id;
|
|
sethint();
|
|
});
|
|
});
|
|
window.hints = {};
|
|
function sethint()
|
|
{
|
|
if ($("#hinter").is(':visible'))
|
|
{
|
|
if (window.lastinputid)
|
|
{
|
|
if (window.lastinputid in window.hints)
|
|
$("#hinter div#hinttitle").text (window.hints[window.lastinputid]);
|
|
else
|
|
{
|
|
$.getJSON("../shared/load_hint.asp?model=<%=model.table%>&fld=" + escape(window.lastinputid),
|
|
function (data, textStatus)
|
|
{
|
|
if (data && data.hint)
|
|
{
|
|
window.hints[window.lastinputid] = data.hint;
|
|
}
|
|
else
|
|
window.hints[window.lastinputid] = "No info found";
|
|
$("#hinter div#hinttitle").text (window.hints[window.lastinputid]);
|
|
}
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function scf_enablehint()
|
|
{
|
|
$("#hinter").dialog({ title: L("lcl_hint")});
|
|
sethint();
|
|
}
|
|
jQuery(function()
|
|
{
|
|
$('textarea').resize(function () { FcltMgr.resized(window) });
|
|
$('textarea').autogrow();
|
|
});
|
|
</script>
|
|
</head>
|
|
<body id="<%=modal?"mod_scaffolding":"editbody"%>" <%=modal?"class='modal scaffolding'":""%>>
|
|
<div id="hinter" style='display:none'>Hint!
|
|
<div id='hinttitle'></div>
|
|
</div>
|
|
<%
|
|
var buttons = [ ];
|
|
if (scf_params.edit.buttons)
|
|
{
|
|
for (var i = 0; i < scf_params.edit.buttons.length; i++)
|
|
{ // Als je een action opgeeft *zonder* haakjes voegen we automagisch de key en model toe
|
|
if (scf_params.edit.buttons[i].action.indexOf("(") < 0)
|
|
scf_params.edit.buttons[i].action += "(" + key + ", '" + model.table + "')"
|
|
buttons.push(scf_params.edit.buttons[i]);
|
|
}
|
|
}
|
|
buttons.push({title: L("lcl_submit"), action:"scf_submit()", icon: "opslaan.png", singlepress: true });
|
|
if (modal && model.REST_DELETE && key > 0)
|
|
buttons.push({title: L("lcl_delete"), action:"scf_delete()", icon: "delete.png", singlepress: true });
|
|
buttons.push({title: L("lcl_cancel"), action:"scf_cancel()", icon: "undo.png" });
|
|
if (model.hashints)
|
|
buttons.splice(0, 0, {title: L("lcl_hint"), action:"scf_enablehint()", icon: "lightbulb.png" });
|
|
if (!modal)
|
|
IFRAMER_HEADER(model.record_title, buttons);
|
|
%>
|
|
<div id="edit">
|
|
<form name="u2" method="post" action="<%=scf_params.this_fullpath%>?mode=save&id=<%=key%><%=transit%>" onsubmit="return false;">
|
|
<%
|
|
// Eerst de hidden velden.
|
|
for (var fld in model.fields)
|
|
{
|
|
var field = model.fields[fld];
|
|
if (field.hidden_fld || (field.readonly && !(key > 0)))
|
|
scf_RWHIDDENTR(fld, xxx_data[fld]);
|
|
}
|
|
|
|
BLOCK_START("scf_info", xxx_data["name"] || model.record_title);
|
|
for (var fld in model.fields)
|
|
{
|
|
var field = model.fields[fld];
|
|
if (field.readonly || fld == "id")
|
|
scf_ROFIELDTR(model, fld, xxx_data[fld]);
|
|
else if (field.insertonly && key > 0)
|
|
scf_ROFIELDTR(model, fld, xxx_data[fld]);
|
|
else if (!field.hidden_fld)
|
|
scf_RWFIELDTR(model, fld, xxx_data[fld], key);
|
|
}
|
|
BLOCK_END();
|
|
if (modal)
|
|
CreateButtons(buttons);
|
|
IFACE.FORM_END();
|
|
%>
|
|
</form>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
<%
|
|
}
|
|
%> |