Signature
The signature element is a special inkControl element, which is stored in the ink format "ISF (Ink Serialized Format)" by Microsoft.
For security and legal reasons the HybridForms App advises an encryption of the stored data. Unless a certificate is provided as part of your form definition a notification will appear each time a user signs.
You can store your signaure data unencrypted, but in case of taking advantage of this security feature, please follow the instruction of the HFSQL Server administration guide, capitel 7 „Biometric Signature Data“ for creating the necessary certificate or contact your HFSQL Server administrator.
<div id="repair_customer_sign"
data-win-control="HFWinJSCtrl.Signature"
data-win-options="{
label: 'Customer\'s signature',
required: true,
tooltip: 'Sign here!',
clearButton: true,
saveTimeout: 10,
openInOverlay: {
type: 'mobile',
rotateToLandscape: true
},
printMetadata: true,
printMetadataParts: ['Location', 'Signer', 'ItemID', 'DateTime']
}">
</div>
Signature
Instead of coding a "signingAsCallback" function you can also use the alternative option to fill in the signer's name:
<div id="repair_customer_sign"
data-win-control="HFWinJSCtrl.Signature"
data-win-options="{
label: 'Customer\'s signature',
...,
signingFromFields: ['tab1_first_name', 'tab1_last_name'],
...
}"></div>
FormControl Options
background
Sets the background of the signature field. If "none" is the provided value, the signature gets a white background otherwise a reference to a formdefinition image should be provided. If image is not set the signature field gets the Hybrid Forms default signature background.
background: {{HFFormPath}}/signature-background.png
'string' | 'none'
clearButton
Defines a small button (x) on the bottom left of the picture with which the drawing can be deleted.
clearButton: true
boolean
true
disabled
Set "true" whenever the Signature field should be disabled.
disabled: true
boolean
doNotCopy
Set "true" whenever the field should get deleted if form is copied.
doNotCopy: true
boolean
forceUnsafe
Allow the saving of the biometric data without Certificate. Caution! This saves sensitive data on the server without encryption. Should only used for testing or debugging!
forceUnsafe: true
boolean
highAccuracyLocation
Enables high accuracy when requesting the location.
highAccuracyLocation: true
boolean
true
locationRequestTimeout
Sets the request timeout for the geolocation service in seconds.
locationRequestTimeout: 5
number
10
onChanged
Call a pre-defined JS-method to do something when the status of the control changes
onChanged: HFFormdefinition.Namespace.Method
function
function(value: boolean) => void
openInOverlay
Define an object of type openInOverlay for displaying a signature ctrl in a separate dialog (i.e. form page overlay).
openInOverlay: {...}
OverlayObject
printMetadata
Set false if you do not want any Metadata added to the generated signature graphics. If set to false the options printMetadataParts will be ignored
printMetadata: true
boolean
true
printMetadataParts
Define the Metadata added to the generated signature graphics.
- Location: The coords will be added to the signature graphics. If no "Location" is contained in the printMetadata array, the location will not be collected.
- Signer: The signer's name will be added to the signature graphics.
- ItemID: A SHA256 base64 encoded checksum of the form data is added to the signature graphics.
- DateTime: The time stamp will be added to the signature graphics.
printMetadataParts: ['Location', 'Signer', 'ItemID', 'DateTime']
('Location' | 'Signer' | 'ItemID' | 'DateTime')[]
['Location', 'ItemID', 'DateTime']
saveTimeout
Duration in seconds until the signature control is locked and saved.
saveTimeout: 10
integer
5
signingAsCallback
Call the method you previously defined to write the signer's name within the signature field. This method is optional and needs to be coded first!
signingAsCallback: HFFormdefinition.Namespace.getSigner
function
function() => any
signingFromFields
Write the signer's name (or some other additional infos) within the signature field. Optional.
signingFromFields: ['fieldId_01', 'fieldId_02']
string[]
stamp
Define an object of type stamp for setting a stamp image on the signature background.
stamp: {...}
StampObject
tooltip
Write a comment to provide further information about the field. A question mark will then be shown within the label and with a click/tap on it, the information will occur.
tooltip: 'Sign here!'
string
tooltipTemplate
Write an id of a html container to provide further information about the field. A question mark will then be shown within the label and with a click/tap on it, the content of the container will occur.
tooltipTemplate: 'example_control_tooltip'
string
Overlay Object
type - required
Define the range of application - "always" to open the overlay to sign in all App versions and all devices or "mobile" to open the overlay only on mobile devices. "never" to use in-place Singature.
type: 'always' / 'mobile'
'never' | 'always' | 'mobile'
rotateToLandscape
Define the behaviour of the overlay on mobile devices: prevent rotating the overlay to landscape by setting the option to false.
rotateToLandscape: false
boolean
true
Stamp Object
url - required
The URL to the image that should be used as stamp. The image is resized automatically if it is to big, but it is recommended not to provide images bigger than 920px.
url: '{{HFFormPath}}/stamp-image.png'
string
alpha
Define the alpha value of the provided image. Provide a number between 0 (fully transparent) and 1 (not transparent).
alpha: 0.2
number
Stored data
{
"id": "repair_customer_sign",
"value": true
}
{
"id": "repair_customer_sign_HFInkImage",
"value": "repair_customer_sign.png"
}
{
"id": "repair_customer_sign_HFSignatureZip",
"value": "repair_customer_sign.zip"
}
{
"id": "repair_customer_sign_HFSignatureMetadata",
"value": {
"timestamp": "2018-07-03T14:37:01.802Z",
"geoposition": {
"latitude": 47.06734,
"longitude": 15.43349,
"accuracy": 20,
"accuracyFormatted": "~ 20 m",
"timestamp": "2018-07-03T14:36:51.292Z"
},
"signer": "Robert Simon",
"eventCounter": 190,
"itemid": "84395929-b38e-1a9f-ffac-b97ef6c9b4f2",
"formHash":"ZH82iLfZEfaxtceMMTECCRmwMOjZrB3ERm5tynSegPY=",
"timeunit": "milliseconds",
"input": "mouse"
}
}