micschk/silverstripe-signaturefield

A signaturefield based on https://github.com/szimek/signature_pad

Installs: 79

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 3

Open Issues: 0

Type:silverstripe-vendormodule

v1.0.1 2023-03-10 16:42 UTC

This package is auto-updated.

Last update: 2024-03-10 18:41:26 UTC


README

A silverstripe signature form field based on https://github.com/szimek/signature_pad

screenshot

Installation

composer require micschk/silverstripe-signaturefield

Usage

A signaturefield will be scaffolded if field is set to 'Signature' (field holds base64 png image of signature)

use Micschk\SignatureField\Signature;

class Contract extends DataObject {

	private static $db = array(
		'Signature' => Signature::class,
	);

}

Or explicitly add a SignatureField to a form (eg for non-scafolded formfields or front-end)

use Micschk\SignatureField\SignatureField;

...

	public function getCMSFields() {
		$fields = parent::getCMSFields();

		$fields->addFieldToTab('Root.Main',
				SignatureField::create('Signature')
			);

		return $fields;
	}

Front end use

If using this field on a front end form, outside of the CMS, jQuery is required. By default this module will load a packaged version of jQuery. This may conflict with existing versions if you have separately installed jQuery on your front end. To remove the included version of jQuery and make use of your own version, add the following to your yaml config

Micschk\SignatureField\SignatureField:
  include_jquery: false

Known Issues

Scaling issues may occur on high DPI screens: szimek/signature_pad#679

Development

The js is bundled using parcel.js. To make javascript changes

  1. run yarn install to install dependencies.
  2. make requisite changes in javascript/src/signature_pad.init.js
  3. run yarn build to compile changes