Files
Facilitor/APPL/Shared/BijlagenSignature.asp
Erik Groener 6099fdc170 FSN#34806 Verplicht veld 'factuurbijlage' is niet zichtbaar
svn path=/Website/trunk/; revision=28017
2016-02-03 09:35:51 +00:00

156 lines
5.6 KiB
Plaintext

<%@language = "javascript"%>
<% /*
$Revision$
$Id$
File: shared/BijlagenSignature.asp
Description: Laat een (hand)tekening zetten en sla die op als png
Parameters:
key ALG_RUIMTE_KEY of ...
Module "ALG" of "CNT" of ...
Kenmerk_key ALG_KENMERK_KEY of ...
DoDelete optioneel: bestandsnaam om te verwijderen
Reado optioneel: readonly
Context: Automatisch bij flexkenmerk type 'F' en dimensie 'xxx'
Note: Met TAMPER bescherming!
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/flexfiles.inc" -->
<%
protectQS.verify(); // tamper check
FCLTHeader.Requires({plugins: ["jQuery"],
js: ["../Localscripts/signature/signature_pad.min.js"],
css: ["../Localscripts/signature/signature-pad.css"]});
// key of folder wordt doorgegeven
var pKey = getQParamInt("key", -1);
var pNiveau = getQParamSafe("niveau", "");
var pModule = getQParamSafe("module");
var pKenmerk_key = getQParamInt("kenmerk_key", -1);
var pMobile = getQParamInt("mobile", 0);
var transitParam = buildTransitParam(["key", "module", "niveau", "kenmerk_key", "encrypt", "extFilter", "pregexp", "reado", "multi", "tmpfolder"]);
params = flexProps(pModule, pKey, String(pKenmerk_key), pNiveau);
__Log("Zoeken bestanden onder " + params.AttachPath);
if (params.extFilter != "xxx")
{
abort_with_warning("INTERNAL ERROR:\nExtfilter not xxx");
}
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script>
function sig_submit()
{
if (signaturePad.isEmpty())
{
$.post("<%=protectQS.create("base64_png_save.asp?action=delete"+transitParam)%>",
{ },
FcltCallbackAndThen(uploadDone), "json");
}
else
{
$.post("<%=protectQS.create("base64_png_save.asp?action=insert"+transitParam)%>",
{ data: signaturePad.toDataURL() },
FcltCallbackAndThen(uploadDone), "json");
}
}
function sig_clear()
{
signaturePad.clear();
}
function sig_cancel()
{
<% if (pMobile) { %>
window.parent.$("#bijlagepopup").popup( "close" );
<% } else { %>
FcltMgr.closeDetail(window, { cancel: true } );
<% } %>
}
function uploadDone(json)
{
var aantal = ((json.safefilename||"") == "" ? 0 : 1);
var return_data = { cnt: aantal,
fileName: json.safefilename||"",
fullPath: json.fullPath||"",
org_data: FcltMgr.dialogArguments()
};
<% if (pMobile) { %>
window.parent.return_data = return_data;
window.parent.$("#bijlagepopup").popup( "close" );
<% } else { %>
window.return_data = return_data;
FcltMgr.closeDetail(window, return_data);
<% } %>
}
function init()
{
var wrapper = document.getElementById("signature-pad");
var canvas = wrapper.querySelector("canvas");
// Adjust canvas coordinate space taking into account pixel ratio,
// to make it look crisp on mobile devices.
// This also causes canvas to be cleared.
function resizeCanvas() {
var ratio = window.devicePixelRatio || 1;
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
}
window.onresize = resizeCanvas;
resizeCanvas();
window.signaturePad = new SignaturePad(canvas, {
xbackgroundColor: "rgb(255, 255, 255)"
});
}
$(document).ready(function()
{
window.parent.$("#bijlagepopup").addClass("m-bijlagepopup-ext1");
window.parent.$("#fcltmodal" ).removeClass().addClass("m-bijlagepopup-ext1");
var w_popup = window.parent.$("#fcltmodal").width(); // breedte van popup
var w_screen = window.parent.$("body").width(); // breedte van (achtergrond)scherm
var x_screen = (w_screen > w_popup ? ((w_screen - w_popup) / 2) : 0);
window.parent.$("#bijlagepopup-popup").css( {left: x_screen });
FcltMgr.resized(window);
} );
</script>
<style>
div#buttons { padding-top: 5px; }
</style>
</head>
<body id="mod_signature" class='modal' onload="init()">
<div id="signature-pad" class="m-signature-pad">
<div class="m-signature-pad--body">
<canvas></canvas>
</div>
<div class="m-signature-pad--footer">
<%
var buttons = [ {title: L("lcl_filedelete"), id: "btn_clear", action:"sig_clear()", icon: "delete.png", singlepress: true },
{title: L("lcl_submit"), id: "btn_submit", action:"sig_submit()", icon: "opslaan.png", singlepress: true },
{title: L("lcl_cancel"), id: "btn_cancel", action:"sig_cancel()", icon: "undo.png" }
];
CreateButtons(buttons);
%>
</div>
</div>
</body>
</html>