FSN#31660 Handtekening afronding

svn path=/Website/trunk/; revision=24502
This commit is contained in:
Jos Groot Lipman
2015-03-18 14:34:20 +00:00
parent a7b9d9e592
commit b4d07584af
5 changed files with 82 additions and 105 deletions

File diff suppressed because one or more lines are too long

View File

@@ -29,13 +29,8 @@ FCLTHeader.Requires({plugins: ["jQuery"],
// 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 pMulti = getQParamInt("multi", 0) == 1;
var pReado = getQParamInt("reado", 0) == 1;
var pDoDelete = getQParam("DoDelete", "");
var transitParam = buildTransitParam(["key", "module", "niveau", "kenmerk_key", "encrypt", "extFilter", "pregexp", "reado", "multi", "tmpfolder"]);
@@ -43,13 +38,6 @@ params = flexProps(pModule, pKey, String(pKenmerk_key), pNiveau);
__Log("Zoeken bestanden onder " + params.AttachPath);
if (pDoDelete != "")
{
fso = Server.CreateObject("Scripting.FileSystemObject")
__Log("deleting: " + params.AttachPath + "/" + pDoDelete)
fso.DeleteFile(params.AttachPath + "/" + safe.filename(pDoDelete), true);
}
if (params.extFilter != "xxx")
{
abort_with_warning("INTERNAL ERROR:\nExtfilter not xxx");
@@ -65,8 +53,7 @@ if (params.extFilter != "xxx")
var wrapper = document.getElementById("signature-pad"),
clearButton = wrapper.querySelector("[data-action=clear]"),
saveButton = wrapper.querySelector("[data-action=save]"),
canvas = wrapper.querySelector("canvas"),
signaturePad;
canvas = wrapper.querySelector("canvas");
// Adjust canvas coordinate space taking into account pixel ratio,
// to make it look crisp on mobile devices.
@@ -81,48 +68,58 @@ if (params.extFilter != "xxx")
window.onresize = resizeCanvas;
resizeCanvas();
signaturePad = new SignaturePad(canvas, {
window.signaturePad = new SignaturePad(canvas, {
xbackgroundColor: "rgb(255, 255, 255)"
});
clearButton.addEventListener("click", function (event) {
signaturePad.clear();
});
saveButton.addEventListener("click", function (event) {
if (signaturePad.isEmpty())
{
alert("Please provide signature first."); // Of: gewoon wissen op filesysteem?
}
else
{
$.post("<%=protectQS.create("base64_png_save.asp?action=insert"+transitParam)%>",
{ data: signaturePad.toDataURL() },
FcltCallbackAndThen(uploadDone), "json");
}
});
}
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()
{
FcltMgr.closeDetail(window, { cancel: true } );
}
function uploadDone(json)
{
window.return_data = { cnt: 1, fileName: json.safefilename, fullPath: json.fullPath };
window.return_data = { cnt: 1, fileName: json.safefilename||"", fullPath: json.fullPath||"" };
window.return_data.org_data = FcltMgr.dialogArguments();
FcltMgr.closeDetail(window, return_data);
}
</script>
<style>
div#buttons { padding-top: 5px; }
</style>
</head>
<body onload="init()">
<div id="signature-pad" class="m-signature-pad">
<div class="m-signature-pad--body">
<canvas></canvas>
<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"), action:"sig_clear()", icon: "opslaan.png", singlepress: true },
{title: L("lcl_submit"), action:"sig_submit()", icon: "opslaan.png", singlepress: true },
{title: L("lcl_cancel"), action:"sig_cancel()", icon: "undo.png" }];
CreateButtons(buttons);
%>
</div>
</div>
<div class="m-signature-pad--footer">
<div class="description">Sign above</div>
<button class="button clear" data-action="clear">Clear</button>
<button class="button save" data-action="save">Save</button>
</div>
</div>
</body>
</html>
<%
Response.End;
%>

View File

@@ -30,34 +30,47 @@ var pKenmerk_key = getQParamInt("kenmerk_key", -1);
var params = flexProps(pModule, pKey, String(pKenmerk_key), pNiveau);
if (params.extFilter)
{
// extFilter="pdf,tiff" of "pdf tiff" of "pdf;tiff"
var regFilter = params.extFilter;
regFilter = regFilter.replace(/( |,|;)/g,"|"); // Altijd | karakter
regFilter = ".*\\." + "(" + regFilter + ")$"; // er moet een punt voor en extensie is aan het einde
}
__Log("Opslaan onder: " + params.AttachPath);
CreateFullPath(params.AttachPath);
var Attachment = getFParam("data").split(",")[1]; // haal data:image/png;base64, er af
var SafeName = "test.png";
encodedString2File(params.AttachPath + SafeName, Attachment, "bin.base64");
checkWebconfig(params.AttachRootPath);
var transitParam = buildTransitParam(["tmpfolder"]);
var result = { message: "", // VB_result("message"),
safefilename: SafeName,
fullPath: protectQS.create(OpenFlexFile(pModule, pNiveau, pKey, pKenmerk_key, SafeName) + transitParam)
};
if (result.message != "")
var fso = Server.CreateObject("Scripting.FileSystemObject")
var f = fso.GetFolder(params.AttachPath);
for (fc = new Enumerator(f.files); !fc.atEnd(); fc.moveNext())
{
result.message = L("lcl_shared_upload_error_start") + result.message + L("lcl_shared_upload_error_end");
var vFileName = fc.item().Name;
__Log("Autodelete: " + params.AttachPath + vFileName)
DeleteFile(params.AttachPath + vFileName);
}
var data = getFParam("data", "");
var result = {};
if (data)
{
var Attachment = data.split(",")[1]; // haal data:image/png;base64, er af
var now = new Date();
var SafeName = "signature_{0}-{1}-{2}_{3}-{4}-{5}.png".format(padout(now.getFullYear()),
padout(now.getMonth()+1),
padout(now.getDate()),
padout(now.getHours()),
padout(now.getMinutes()),
padout(now.getSeconds()));
try
{
encodedString2File(params.AttachPath + SafeName, Attachment, "bin.base64");
checkWebconfig(params.AttachRootPath);
var transitParam = buildTransitParam(["tmpfolder"]);
result.safefilename = SafeName;
result.fullPath = protectQS.create(OpenFlexFile(pModule, pNiveau, pKey, pKenmerk_key, SafeName) + transitParam);
}
catch (e)
{
result.message = L("lcl_shared_upload_error_start") + e.description + L("lcl_shared_upload_error_end");
}
}
result.success = true;
Response.Write(JSON.stringify(result));
Response.End;
%>

View File

@@ -1289,7 +1289,7 @@ function listKenmerk(sql, module, key, props)
if (!nolabel)
kenmerk_write('<label for="' + nameprefix + idCounter + 'val"' + (ktype == 'L' || ktype == 'l'? ' class=flexlabellabel' : '') + '>'
+ '<span title="' + safe.htmlattr(hint) + '">'
+ val_label + (kdim != null? ' [' + kdim + ']' : '') + val_seperator + '</span></label>');
+ val_label + ((kdim != null && kdim != "xxx")? ' [' + kdim + ']' : '') + val_seperator + '</span></label>');
// FSN#26365 Tijdelijke hack om mobile te voorkomen dat labels aan elkaar geplakt worden
// Eigenlijke oorzaak is dat de gegenereerde HTML aan alle kanten rammelt. Eigenlijk moet

View File

@@ -181,14 +181,14 @@ function bijlagen_callback(data, orgParams)
}
else
{
orgParams.params.objButton.value = data.fileName;
orgParams.params.objButton.value = data.fileName||"";
$(orgParams.params.objButton).toggle(data.fileName != "");
$(orgParams.params.objButton).next().toggle(data.fileName == ""); // de 'Add' knop
if (data.fullPath) // handtekening
{
$(orgParams.params.objButton).nextAll("img").show()[0].src = data.fullPath;
FcltMgr.resized();
}
else
$(orgParams.params.objButton).nextAll("img").hide();
FcltMgr.resized();
}
if (orgParams.params.objButton.onchange)
orgParams.params.objButton.onchange(); // Omdat input veld readonly is wordt de onchange niet automatisch uitgevoerd.