You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

85 lines
2.6 KiB

function initSignature(id, isEditable)
{
let container = $(id);
let canvas = container.find('.signature-pad')[0];
function resizeCanvas()
{
let ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
}
window.onresize = resizeCanvas;
resizeCanvas();
let signaturePad = new SignaturePad(canvas, {
backgroundColor: 'rgb(255, 255, 255)'
});
signaturePad.off();
if (isEditable) {
signaturePad.on();
container.find('.clear').click(function () {
signaturePad.clear();
});
container.find('.save').click(function () {
let button = $(this);
let container = button.parents('.signature-container')[0];
let index = $(container).data('index');
let data = {
controller: 'plugin',
action: 'replace',
ticket: $('input[name="csrf_'+index+'"]').val(),
page: $('input[name="page_'+index+'"]').val(),
message: tr('Signature added'),
type: 'signature',
content: signaturePad.toDataURL(),
index: index,
params: []
};
// Disable container buttons
button.parents('.buttons').find('button').each(function(i, e){
$(e).attr('disabled', 'disabled');
});
button.html(tr('Saving'));
$.ajax({
type: 'POST',
url: 'tiki-ajax_services.php',
dataType: 'json',
data: data,
success: function() {
window.location.reload();
},
error: function(xhr, status, message) {
button.html(tr('Save'));
button.parents('.buttons').find('button').each(function(i, e){
$(e).removeAttr('disabled');
});
}
});
});
}
}
$('.add-signature').on('click', function () {
let index = $(this).data('index');
let editPerm = $(this).data('editable');
$(this).hide();
$('#signature_' + index).show();
initSignature("#signature_" + index, editPerm);
});
$('.cancel-signature').on('click', function () {
let container = $(this).parents('.signature-container')[0];
let index = $(container).data('index');
$(container).hide();
$('#add-signature-' + index).show();
});