');
var data = flow.DOCUMENT_REQUESTS;
var categoryOptions = [];
for (i = 0; i < data.length; i++) {
if (categoryOptions.indexOf(data[i].CATEGORY_NAME) < 0) {
categoryOptions.push(data[i].CATEGORY_NAME);
}
}
for (var i = 0; i < categoryOptions.length; i++) {
$workflowTemplate.find('.upload-files').append('
' + categoryOptions[i] + '
');
var checked = '';
for (var j = 0; j < data.length; j++) {
if (categoryOptions[i] == data[j].CATEGORY_NAME) {
var radioElementId = String.format('{0}_{1}', data[j].CATEGORY_CODE, data[j].TYPE_CODE);
$workflowTemplate.find('.upload-files').append('');
checked = '';
}
}
}
$workflowTemplate.find('.bottom.controlls .button-center').text(Resources.next).removeClass('active');
$workflowTemplate.find('.bottom.controlls .button-center').off('click').on('click', function () {
WORK_FLOW.view.updateProgressBar(attachmentsStep, counters.totalSteps, Resources.attachments);
var selectedDocuments = $workflowTemplate.find('.upload-files').find('input[type="radio"]:checked');
var selectedTypes = [];
selectedDocuments.each(function (i, item) {
selectedTypes.push(item.id);
});
var filteredData = data.filter(function (item) {
return selectedTypes.indexOf(item.CATEGORY_CODE + '_' + item.TYPE_CODE) >= 0;
});
WORK_FLOW.view.appendUploadButtons(filteredData);
$workflowTemplate.find('.bottom.controlls').find('.button-right').removeClass('hidden').removeClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-left').removeClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-center').addClass('hidden');
$workflowTemplate.find('.bottom.controlls').addClass('multiple');
$workflowTemplate.find('.bottom.controlls').find('.button-right .text-button').text(Resources.finish);
$workflowTemplate.find('button.capture_doc').off('click').on('click', function (e) {
e.preventDefault();
WORK_FLOW.view.captureDocumentHandler($workflowTemplate.find('button.capture_doc[id="' + e.currentTarget.id + '"]'), fileId, flow.DOCUMENT_REQUESTS, {
isMultiSigner: isMultiSigner,
isAgentLocked: isAgentLocked
});
});
var missingDocuments = false;
$('.upload-files button.capture_doc').each(function (index, item) {
if ($(item).attr('data-total-uploaded') == "0" || $(item).find('.check').find('.new').length)
missingDocuments = true;
});
if (missingDocuments == false) {
$workflowTemplate.find('.bottom.controlls').find('.button-right').addClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-right').off('click').on('click', function () {
var uploadedTypeIds = [];
$workflowTemplate.find('.upload-files').find('button').each(function (index, item) {
uploadedTypeIds.push($(item).attr('id'));
});
Lightico.api.lockWizard(fileId, {
isMultiSigner: isMultiSigner,
uploadedTypes: uploadedTypeIds,
isAgentLocked: isAgentLocked
});
WORK_FLOW.view.showLastPage();
});
}
$workflowTemplate.find('.bottom.controlls').find('.button-left').removeClass('disabled').addClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-left').off('click').on('click', function () {
$workflowTemplate.find('.upload-files').empty();
var data = flow.DOCUMENT_REQUESTS;
var categoryOptions = [];
for (i = 0; i < data.length; i++) {
if (categoryOptions.indexOf(data[i].CATEGORY_NAME) < 0) {
categoryOptions.push(data[i].CATEGORY_NAME);
}
}
for (var i = 0; i < categoryOptions.length; i++) {
$workflowTemplate.find('.upload-files').append('
' + categoryOptions[i] + '
');
var checked = '';
for (var j = 0; j < data.length; j++) {
if (categoryOptions[i] == data[j].CATEGORY_NAME) {
var radioElementId = String.format('{0}_{1}', data[j].CATEGORY_CODE, data[j].TYPE_CODE);
$workflowTemplate.find('.upload-files').append('
-1 ? 'checked' : '') + '/>
');
checked = '';
}
}
}
$workflowTemplate.find('.bottom.controlls .button-center').text(Resources.next).removeClass('active');
WORK_FLOW.view.updateProgressBar(categoriesStep, counters.totalSteps, Resources.select_document);
$workflowTemplate.find('.bottom.controlls').find('.button-right').addClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-left').addClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-center').removeClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-center').addClass('active');
if ($workflowTemplate.find('.upload-files').find('input[type="radio"]:checked').length < $workflowTemplate.find('.upload-files').find('h3').length)
$workflowTemplate.find('.bottom.controlls').find('.button-center').removeClass('active');
$workflowTemplate.find('.upload-files').find('input[type="radio"]').off('change').on('change', function (e) {
if ($workflowTemplate.find('.upload-files').find('input[type="radio"]:checked').length == $workflowTemplate.find('.upload-files').find('h3').length)
$workflowTemplate.find('.bottom.controlls').find('.button-center').addClass('active');
});
$workflowTemplate.find('.bottom.controlls').removeClass('multiple');
});
});
}
}
function initWizardStep(fileStatus) {
isAgentLocked = fileStatus.AgentLocked;
if (fileStatus.CustomerLocked == true) {
if (attachmentsStep > 0 || categoriesStep > 0) {
$workflowTemplate.find('form').hide();
$mainCardBox.addClass('with-out-box-shadow');
$workflowTemplate.find('.form-step').removeClass('active');
$workflowTemplate.find('.upload-files').show();
WORK_FLOW.view.updateProgressBar(attachmentsStep, totalSteps, Resources.attachments);
$workflowTemplate.find('.bottom.controlls').find('.button-right').removeClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-right .text-button').text(Resources.finish);
var missingDocuments = false;
if (flow.DOCUMENT_REQUESTS) {
$(flow.DOCUMENT_REQUESTS).each(function (index, item) {
if (item.TOTAL_UPLOADED == 0 || item.STATUS !== 'done')
missingDocuments = true;
});
} else
missingDocuments = true;
if (missingDocuments == false) {
$workflowTemplate.find('.bottom.controlls').find('.button-right').addClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-right').off('click').on('click', function () {
var uploadedTypeIds = [];
$workflowTemplate.find('.upload-files').find('button').each(function (index, item) {
uploadedTypeIds.push($(item).attr('id'));
});
Lightico.api.lockWizard(fileId, {
isMultiSigner: isMultiSigner,
uploadedTypes: uploadedTypeIds,
isAgentLocked: isAgentLocked
});
WORK_FLOW.view.showLastPage();
var currentStep = parseInt($mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step'));
var currentForm = $workflowTemplate.find('form[data-step=' + (currentStep) + ']');
currentForm.removeData('validator');
});
}
} else {
WORK_FLOW.view.showLastPage();
}
} else {
if (signatureStep == 1 || approveStep == 1) {
$workflowTemplate.find('.button-right').removeClass('active');
if (signatureStep == 1)
WORK_FLOW.view.updateProgressBar(signatureStep, totalSteps, ASSETS.services.getResource(fileId, 'review'));
else
WORK_FLOW.view.updateProgressBar(approveStep, totalSteps, ASSETS.services.getResource(fileId, 'approvment'));
showEsign(fileId, signatureStep == 1, { wizardState: wizardState }, function () {
if (categoriesStep > 0) {
$workflowTemplate.find('.upload-files').show();
$workflowTemplate.find('.bottom').show();
$workflowTemplate.find('.form-content').removeClass('no-buttons');
WORK_FLOW.view.updateProgressBar(categoriesStep, totalSteps, Resources.select_document);
$workflowTemplate.find('.bottom.controlls').find('.button-right').removeClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-right .text-button').text(Resources.finish);
} else if (attachmentsStep > 0) {
$workflowTemplate.find('.upload-files').show();
$workflowTemplate.find('.bottom').show();
$workflowTemplate.find('.form-content').removeClass('no-buttons');
WORK_FLOW.view.updateProgressBar(attachmentsStep, totalSteps, Resources.attachments);
$workflowTemplate.find('.bottom.controlls').find('.button-right').removeClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-right .text-button').text(Resources.finish);
var missingDocuments = false;
$('.upload-files button.capture_doc').each(function (index, item) {
if ($(item).attr('data-total-uploaded') == "0")
missingDocuments = true;
});
if (missingDocuments == false) {
var uploadedTypeIds = [];
$workflowTemplate.find('.upload-files').find('button').each(function (index, item) {
uploadedTypeIds.push($(item).attr('id'));
});
Lightico.api.lockWizard(fileId, {
isMultiSigner: isMultiSigner,
uploadedTypes: uploadedTypeIds,
isAgentLocked: isAgentLocked
});
WORK_FLOW.view.showLastPage();
}
} else {
WORK_FLOW.view.updateProgressBar(totalSteps, totalSteps, '');
Lightico.api.lockWizard(fileId, {
isMultiSigner: isMultiSigner,
uploadedTypes: [],
isAgentLocked: isAgentLocked
});
WORK_FLOW.view.showLastPage();
if (wizardState === 'READ_ONLY') {
$workflowTemplate.find('.bottom').show();
}
}
});
}
if (attachmentsStep == 1 || categoriesStep == 1) {
$workflowTemplate.find('.upload-files').show();
$workflowTemplate.find('.button-right').removeClass('start-signing').removeClass('approve-reading');
if (flow.DOCUMENT_REQUEST_STYLE == 'single') {
WORK_FLOW.view.updateProgressBar(attachmentsStep, totalSteps, Resources.attachments);
$workflowTemplate.find('.bottom.controlls').find('.button-right').removeClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-left').removeClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-center').addClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-right').removeClass('active').addClass('disabled');
$workflowTemplate.find('.bottom.controlls').find('.button-right .text-button').text(Resources.finish);
var missingDocuments = false;
$('.upload-files button.capture_doc').each(function (index, item) {
if ($(item).attr('data-total-uploaded') == "0" || $(item).find('.check').find('.new').length) {
missingDocuments = true;
} else {
let completedItem = $(item).find('.upload-done')
if (completedItem.length) {
completedItem[0].style.pointerEvents = 'none'
completedItem[0].style.cursor = 'default'
}
}
});
if (missingDocuments == false) {
$workflowTemplate.find('.bottom.controlls').find('.button-right').addClass('active').removeClass('disabled');
$workflowTemplate.find('.bottom.controlls').find('.button-right').off('click').on('click', function () {
var uploadedTypeIds = [];
$workflowTemplate.find('.upload-files').find('button').each(function (index, item) {
uploadedTypeIds.push($(item).attr('id'));
});
Lightico.api.lockWizard(fileId, {
isMultiSigner: isMultiSigner,
uploadedTypes: uploadedTypeIds,
isAgentLocked: isAgentLocked
});
WORK_FLOW.view.showLastPage();
});
}
} else if (flow.DOCUMENT_REQUEST_STYLE == 'multiple') {
WORK_FLOW.view.updateProgressBar(categoriesStep, totalSteps, Resources.select_document);
$workflowTemplate.find('.bottom.controlls').find('.button-right').addClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-left').addClass('hidden');
$workflowTemplate.find('.bottom.controlls').find('.button-center').removeClass('hidden');
if ($workflowTemplate.find('.upload-files').find('input[type="radio"]:checked').length < $workflowTemplate.find('.upload-files').find('h3').length)
$workflowTemplate.find('.bottom.controlls').find('.button-center').removeClass('active');
$workflowTemplate.find('.upload-files').find('input[type="radio"]').off('change').on('change', function (e) {
if ($workflowTemplate.find('.upload-files').find('input[type="radio"]:checked').length == $workflowTemplate.find('.upload-files').find('h3').length)
$workflowTemplate.find('.bottom.controlls').find('.button-center').addClass('active');
});
$workflowTemplate.find('.bottom.controlls').removeClass('multiple');
}
$workflowTemplate.find('.bottom').show();
$workflowTemplate.find('.form-content').removeClass('no-buttons');
}
}
}
$workflowTemplate.find('.button-right').off('click').on('click', { fileId: fileId }, function (e) {
e.preventDefault();
Lightico.api.sendCoBrowseEvent(this, 'click', '');
moveNextStep(e.data.fileId);
});
$workflowTemplate.find('.button-right.start-signing').attr('data-focus', 'false');
$workflowTemplate.find('.button-left').off('click').on('click', function (e) {
e.preventDefault();
$workflowTemplate.find('.button-right').removeClass('scale-animation');
Lightico.api.sendCoBrowseEvent(this, 'click', '');
var currentStep = parseInt($mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step'));
if (currentStep == 1) {
return false;
}
if ((currentStep - 1) != signatureStep || (currentStep - 1) != approveStep) {
$workflowTemplate.find('.button-right').removeClass('start-signing').removeClass('approve-reading');
$workflowTemplate.find('.button-right').find('.text-button').text(Resources.next);
$workflowTemplate.find('.button-right').off('click').on('click', { fileId: fileId }, function (e) {
e.preventDefault();
Lightico.api.sendCoBrowseEvent(this, 'click', '');
moveNextStep(e.data.fileId);
});
}
WORK_FLOW.view.updateProgressBar(currentStep - 1, totalSteps, progressBarTitle);
WORK_FLOW.view.updatePageHeader(currentStep - 1, formCount, formTitles[currentStep - 1]);
$workflowTemplate.find('form').hide();
$mainCardBox.removeClass('with-out-box-shadow');
$workflowTemplate.find('form[data-step=' + (currentStep - 1) + ']').show();
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step', currentStep - 1);
$workflowTemplate.find('.button-right').addClass('active');
Lightico.api.closeGallery();
if ((currentStep - 1) == 1) {
$workflowTemplate.find('.button-left').removeClass('active').addClass('disabled');
}
//$workflowTemplate.find('form[data-step=' + (currentStep - 1) + ']').find('input').first().focus().blur();
});
}
$modalFillForm.find('button.modal-primary-button').off('click').on('click', function (e) {
e.preventDefault();
showWizard();
});
var logMessage = {
fileId: fileId,
action: 'open_work_flow'
};
sendLog(logMessage);
Lightico.api.sendCoBrowseEvent(this, 'click', '[data-workflow-id="' + fileId + '"]');
COMMON.functions.cubesLoader.hide();
$('#blueimp-gallery').removeClass('invisible');
if (isDownloadOnlyDocument || isReopenAsset) {
showWizard();
}
});
}
break;
default:
closePreview();
break;
}
};
const close = function (_fileId) {
if (fileId == _fileId || Lightico.api.getPreviewedFileId() === _fileId)
closePreview();
};
const showEsign = function (fileId, signRequired, options, onComplete) {
const fileConsent = ASSETS.services.showConsent(fileId);
const showSignConsent = fileConsent && (options.showSignConsent == null || options.showSignConsent == true);
const showApproveConsent = fileConsent && (options.showSignConsent == null || options.showApproveConsent == true);
const esignTitle = options != null && options.esignTitle != null ? options.esignTitle : '';
let isDownloadOnlyDocument = ASSETS.services.filesProperties[fileId].isDownloadOnly;
$workflowTemplate.attr('data-workflow-id', fileId);
$('.slides').addClass('bottom-adjust');
if (SignaturesData.length > 0) {
SignaturesData[0].shown = false;
SignaturesData[5].shown = false;
SignaturesData[8].shown = false;
}
if (esignTitle) {
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').find('p').text(esignTitle);
}
addedSignatures = [];
COMMON.functions.cubesLoader.show();
if (gallery && gallery.slides.length > 0)
gallery.close();
let galleryFiles = [];
let numOfPages = -1;
let textMappings = [];
let signatureMappings = [];
let currentSignatureFocusData = {};
let transcription = [];
let missingRequiredSignatures = false;
let isSignatureFocuesd = false;
let oCanvasObjects = {};
let imgLoadPending = [];
const wizardState = options && options.wizardState;
$ada_transcript.attr('aria-label', '');
$ada_transcript.hide();
$ada_transcript.text('');
let promise = Promise.resolve();
promise.then(function () {
return new Promise(function (resolve, reject) {
$.ajax({
cache: false,
type: "GET",
url: 'Handlers/GetFile.ashx',
data: {
sessionId: m_sessionData.sessionId,
direction: m_sessionData.direction,
fileId: fileId,
type: 'pageNumber',
sid: m_sessionData.sessionId
},
success: function (response) {
if (response != '0') {
numOfPages = parseInt(response, 10);
resolve();
} else
reject();
},
error: function (textStatus, errorThrown) {
reject();
}
});
});
}).then(function () {
return new Promise(function (resolve, reject) {
E_SIGNATURE.functions.getFilledMappings(fileId, function (res) {
textMappings = $.grep(res, function (e) {
return e.TYPE != 0 && e.TYPE != 5 && e.TYPE != 8;
});
signatureMappings = $.grep(res, function (e) {
return e.TYPE == 0 || e.TYPE == 5 || e.TYPE == 8;
});
signRequired = signatureMappings.filter(function (s) {
return !s.TEXT;
}).length > 0;
if (options && options.wizardState === 'READ_ONLY' && !queueSettings.FORCE_REVIEW) {
$workflowTemplate.find('.button-right').find('.text-button').text(Resources.close);
} else if (options && options.wizardState === 'READ_ONLY' && queueSettings.FORCE_REVIEW) {
$workflowTemplate.find('.button-right').addClass('approve-reading').removeClass('scale-animation active');
if (!queueSettings.FORCE_REVIEW || numOfPages < 2) {
$workflowTemplate.find('.button-right').find('.text-button').text(ASSETS.services.getResource(fileId, 'approve_reading'));
}
if (!esignTitle) {
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').find('p').text(ASSETS.services.getResource(fileId, 'approvment'));
}
} else if (signRequired) {
$workflowTemplate.find('.button-right').addClass('start-signing').removeClass('scale-animation active');
if (!queueSettings.FORCE_REVIEW || numOfPages < 2) {
$workflowTemplate.find('.button-right').find('.text-button').text(ASSETS.services.getResource(fileId, 'start_signing'));
}
if (!esignTitle) {
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').find('p').text(ASSETS.services.getResource(fileId, 'review'));
}
} else {
$workflowTemplate.find('.button-right').addClass('approve-reading').removeClass('scale-animation active');
if (!queueSettings.FORCE_REVIEW || numOfPages < 2) {
$workflowTemplate.find('.button-right').find('.text-button').text(ASSETS.services.getResource(fileId, 'approve_reading'));
}
if (!esignTitle) {
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').find('p').text(ASSETS.services.getResource(fileId, 'approvment'));
}
}
if (isLimitedAccess) {
$workflowTemplate.find('.button-right').find('.text-button').text(Resources.close);
}
if (isDownloadOnlyDocument) {
let download_button_label = ASSETS.services.getResource(fileId, 'download_button_label');
$workflowTemplate.find('.button-right').find('.text-button').text(download_button_label);
SetDownLoadOnlyHeader($workflowTemplate, fileId);
}
convertTextMappingsNumToLocaleFormat(textMappings);
initializeBoundSignatureValue(textMappings, signatureMappings);
resolve();
});
});
}).then(function () {
return new Promise(function (resolve, reject) {
E_SIGNATURE.functions.getTranscription(fileId, function (res) {
transcription = res;
resolve();
});
});
}).then(function () {
return new Promise(function (resolve, reject) {
var xhr = null;
var imagesUrlArr = [];
panzoomObj = [];
for (var i = 1; i <= numOfPages; i++) {
imagesUrlArr.push('images/1px.png');
}
oCanvases = [];
gallery = blueimp.Gallery(imagesUrlArr, {
onclosed: function () {
if (xhr) xhr.abort();
oCanvases = [];
for (var key in oCanvasObjects) {
oCanvasObjects[key].destroy();
}
},
onopened: function () {
$('.navigation .pages .count').text('1/' + numOfPages);
preloadPages(parseInt(numOfPages, 10));
},
onslide: function (index, slide) {
$('.navigation .pages .count').text((index + 1) + '/' + numOfPages);
if (galleryOpened) {
COMMON.functions.cubesLoader.show();
const currentPageNumber = index + 1;
let nextPage = mod((currentPageNumber + 1), numOfPages);
if (nextPage == 0) {
nextPage = numOfPages;
}
else if (nextPage === 1) {
COMMON.functions.cubesLoader.hide();
}
if (currentPageNumber != nextPage && !oCanvasObjects[nextPage]) {
$workflowTemplate.find('.button-right').addClass('disabled');
$workflowTemplate.find('.button-left').addClass('disabled');
imgLoadPending.push(nextPage);
loadPage(nextPage, function () {
imgLoadPending.pop();
if (!imgLoadPending.length) {
COMMON.functions.cubesLoader.hide();
}
});
}
let prevPage = mod((currentPageNumber - 1), numOfPages);
if (prevPage < 1) {
prevPage = prevPage + numOfPages;
}
if (currentPageNumber != prevPage && !oCanvasObjects[prevPage]) {
$workflowTemplate.find('.button-right').addClass('disabled');
$workflowTemplate.find('.button-left').addClass('disabled');
imgLoadPending.push(nextPage);
loadPage(prevPage, function () {
imgLoadPending.pop();
if (!imgLoadPending.length) {
COMMON.functions.cubesLoader.hide();
}
});
}
for (var i = 1; i <= numOfPages; i++) {
if (oCanvasObjects[i] && i != currentPageNumber && i != nextPage && i != prevPage && (missingRequiredSignaturesPages.length == 0 || i != missingRequiredSignaturesPages[0])) {
releaseCanvas($('.slides .slide[data-index=' + (i - 1) + ']').find('canvas')[0]);
oCanvasObjects[i].destroy();
delete oCanvasObjects[i];
}
}
if (!imgLoadPending.length) {
COMMON.functions.cubesLoader.hide();
}
}
const $gallery = $('#blueimp-gallery');
if (m_sessionData.direction !== 'readonly' && (queueSettings.FORCE_REVIEW && !isDownloadOnlyDocument &&
wizardState !== 'READ_ONLY' || queueSettings.FORCE_REVIEW &&
wizardState === 'READ_ONLY')) {
$gallery.find('.prev').hide();
$gallery.find('.next').hide();
} else {
const currentPage = index + 1;
if (+numOfPages > 1) {
if (currentPage < +numOfPages) {
$gallery.find('.next').show();
}
if (index > 0) {
$gallery.find('.prev').show();
}
}
if (+numOfPages === 1) {
$gallery.find('.prev').hide();
$gallery.find('.next').hide();
}
}
if (!isSignatureFocuesd) {
COMMON.functions.resetPanZoom();
} else {
isSignatureFocuesd = false;
}
if ($workflowTemplate.find('.bottom').is(":hidden")) {
$workflowTemplate.find('.bottom').show();
$workflowTemplate.find('.form-content').removeClass('no-buttons');
}
let transcript = $.grep(transcription, function (e) {
return e.PageNumber === (index + 1);
});
if (transcript.length === 1) {
$ada_transcript.text(transcript[0].Data);
$ada_transcript.show();
$ada_transcript.attr('aria-live', 'polite');
$ada_transcript.attr('role', 'alert');
$ada_transcript.removeAttr('aria-hidden');
} else {
$ada_transcript.hide();
$ada_transcript.text('');
}
var logMessage = {
fileId: fileId,
action: 'opened ' + index
};
sendLog(logMessage);
},
useBootstrapModal: false,
toggleControlsOnSlideClick: false,
toggleSlideshowOnSpace: false,
enableKeyboardNavigation: false,
closeOnSlideClick: false,
closeOnEscape: false,
emulateTouchEvents: false,
unloadElements: false,
disableScroll: true,
stopTouchEventsPropagation: true,
preloadRange: 1,
transitionSpeed: 0
});
});
}).then(function () {
return new Promise(function (resolve, reject) {
});
}).catch(function (e) {
closePreview();
});
function mod(a, n) {
return a - (n * Math.floor(a / n));
}
let preloadedPages = [];
let galleryOpened = false;
let missingRequiredSignaturesPages = [];
function preloadPages(maxNumOfPages) {
preloadedPages.push(1);
if (maxNumOfPages > 1) {
preloadedPages.push(2);
}
if (maxNumOfPages > 2) {
preloadedPages.push(maxNumOfPages);
}
signatureMappings.sort(function (a, b) {
if (a.PAGE_NUMBER < b.PAGE_NUMBER)
return -1;
if (a.PAGE_NUMBER > b.PAGE_NUMBER)
return 1;
if (a.MAPPING.split(',')[1] < b.MAPPING.split(',')[1])
return -1;
if (a.MAPPING.split(',')[1] > b.MAPPING.split(',')[1])
return 1;
if (a.MAPPING.split(',')[0] < b.MAPPING.split(',')[0])
return -1;
if (a.MAPPING.split(',')[0] > b.MAPPING.split(',')[0])
return 1;
return 0;
});
$(signatureMappings).each(function (key, value) {
if (value.TEXT !== 'SIGNED') {
if (!missingRequiredSignaturesPages.includes(value.PAGE_NUMBER)) {
missingRequiredSignaturesPages.push(value.PAGE_NUMBER);
}
}
});
if (missingRequiredSignaturesPages.length > 0) {
if (!preloadedPages.includes(missingRequiredSignaturesPages[0])) {
preloadedPages.push(missingRequiredSignaturesPages[0]);
}
}
while (preloadedPages.length > 0) {
let index = preloadedPages.pop();
loadPage(index);
}
}
function releaseCanvas(canvas) {
canvas.height = 1;
canvas.width = 1;
const ctx = canvas.getContext('2d');
ctx && ctx.clearRect(0, 0, 1, 1);
canvas.parentNode.removeChild(canvas);
}
let imagesLoaded = [];
function loadPage(pageNumber, completeCallback) {
if (imagesLoaded.includes(pageNumber)) {
let img = $.grep(oCanvases, function (e) { return e.pageNumber == pageNumber; })[0].img;
initCanvas(pageNumber, img);
applyTextMapping(pageNumber, img);
applySignatures(pageNumber, img);
$workflowTemplate.find('.button-right').removeClass('disabled');
$workflowTemplate.find('.button-left').removeClass('disabled');
if (completeCallback) completeCallback();
}
else {
let img = document.createElement('img');
COMMON.functions.cubesLoader.show();
img.onload = (function (pageNumber) {
return function () {
imagesLoaded.push(pageNumber);
let img = this;
initCanvas(pageNumber, img);
applyTextMapping(pageNumber, img);
applySignatures(pageNumber, img);
if (!galleryOpened && preloadedPages.length == 0) {
galleryOpened = true;
onGalleryReady();
}
else {
$workflowTemplate.find('.button-right').removeClass('disabled');
$workflowTemplate.find('.button-left').removeClass('disabled');
if (completeCallback) completeCallback();
}
};
})(pageNumber);
img.onerror = function () {
//TODO alert someting went wrong
COMMON.functions.cubesLoader.hide();
closePreview();
};
img.src = 'Handlers/GetFile.ashx?sessionId=' + m_sessionData.sessionId + '&direction=' + m_sessionData.direction + '&fileId=' + fileId + '&pageNum=' + pageNumber + '&type=pdf&sid=' + m_sessionData.sessionId;
}
}
function initCanvas(pageNumber, img) {
let documentLang = document.querySelector('html').getAttribute('lang');
let _canvas = document.createElement('canvas');
_canvas.width = img.naturalWidth;
_canvas.height = img.naturalHeight;
_canvas.className = 'slide-content';
_canvas.style.zIndex = 11;
_canvas.style.maxHeight = 'none';
_canvas.style.maxWidth = 'none';
if (documentLang == 'he') {
_canvas.style.direction = 'rtl';
}
let slide = $('.slides .slide[data-index=' + (pageNumber - 1) + ']');
$(slide).append(_canvas);
let dummy = document.createElement('canvas');
dummy.className = 'slide-content';
//dummy.style.maxWidth = '100%';
dummy.width = img.naturalWidth;
dummy.height = img.naturalHeight;
if (documentLang == 'he') {
dummy.style.direction = 'rtl';
}
$(slide).append(dummy);
const rect = dummy.getBoundingClientRect();
dummy.remove();
const scale = rect.height / _canvas.height;
const screenWidth = document.body.getBoundingClientRect().width;
if (screenWidth < _canvas.width) {
const translateLeft = (_canvas.width - screenWidth) / 2;
_canvas.style.marginLeft = '-' + translateLeft + 'px';
}
let oCanvasObj = createOCanvasObject(pageNumber, _canvas, img);
if ($.grep(oCanvases, function (e) { return e.pageNumber == pageNumber; }).length == 0) {
oCanvases.push({
pageNumber: pageNumber,
oCanvasObj: oCanvasObj,
img: img,
});
}
else {
$.grep(oCanvases, function (e) { return e.pageNumber == pageNumber; })[0].oCanvasObj = oCanvasObj;
}
$(slide).find('img').hide();
panzoomObj[pageNumber - 1] = Panzoom($(slide).find('canvas')[0], {
minScale: scale,
startScale: scale
});
$(slide).find('canvas').attr('data-scale', scale);
$(slide).find('canvas')[0].addEventListener('panzoomend', function (event) {
if ($workflowTemplate.find('.bottom').is(":hidden")) {
$workflowTemplate.find('.bottom').show();
$workflowTemplate.find('.form-content').removeClass('no-buttons');
}
});
}
function createOCanvasObject(pageNumber, canvas, img) {
if (!oCanvasObjects[pageNumber]) {
let oCanvasObj = oCanvas.create({
canvas: canvas,
fps: 60
});
const image = oCanvasObj.display.image({
image: img,
width: img.naturalWidth,
height: img.naturalHeight
});
oCanvasObj.addChild(image);
oCanvasObjects[pageNumber] = oCanvasObj;
}
return oCanvasObjects[pageNumber];
}
function applyTextMapping(pageIndex, img) {
$(textMappings).each(function (key, value) {
let isViewr = $('body').hasClass('read-only');
if (isViewr) {
value.TEXT = value.IS_MASKED ? 'X' : value.TEXT;
}
if (value.PAGE_NUMBER == pageIndex && value.TEXT != "") {
let oCanvasObj = $.grep(oCanvases, function (e) { return e.pageNumber == pageIndex; })[0].oCanvasObj;
var position = value.MAPPING.split(',');
if (position) {
var x = position[0];
var y = position[1];
var textBoxWidth = value.DIMENSIONS.split(',')[0];
var textBoxHeight = value.DIMENSIONS.split(',')[1];
var text = null;
var valueText = value.TEXT;
if (value.TYPE == 11) {
if (value.TEXT.toLowerCase() == 'true' || value.TEXT.toLowerCase() == '1')
valueText = 'X';
else
valueText = '';
} else if (value.TYPE == 4) {
if ((';' + value.TEXT.toLowerCase() + ';').indexOf(';' + value.VALUE.toLowerCase() + ';') > -1)
valueText = 'X';
else
valueText = '';
} else if (value.TYPE == 6) {
if (value.TEXT.toLowerCase() === value.VALUE.toLowerCase())
valueText = 'X';
else
valueText = '';
} else if (value.TYPE == 9) {
if (value.DATASET_ID && value.DATASET_ID > 0 && (value.PICK_LIST === '' || value.PICK_LIST === 'null')) {
if (!htmlStaticDataObj[value.CUSTOMER_ENTITY_ATTRIBUTE]) {
let pickListObject = {};
const staticDataPromise = COMMON.api.getHtmlStaticData(value.DATASET_ID);
staticDataPromise.then(function (dataSetProps) {
dataSetProps.forEach(function (item) {
pickListObject[item.Id] = item.Name;
});
htmlStaticDataObj[value.CUSTOMER_ENTITY_ATTRIBUTE] = pickListObject;
valueText = pickListObject[value.TEXT] ? pickListObject[value.TEXT] : '';
}).catch(function (err) {
valueText = '';
});
} else {
valueText = htmlStaticDataObj[value.CUSTOMER_ENTITY_ATTRIBUTE][value.TEXT] ? htmlStaticDataObj[value.CUSTOMER_ENTITY_ATTRIBUTE][value.TEXT] : '';
}
} else {
pickListObject = JSON.parse(value.PICK_LIST);
valueText = pickListObject[value.TEXT] ? pickListObject[value.TEXT] : '';
}
} else if (value.TYPE == 3) {
valueText = COMMON.functions.getFormatedUtcDate(value.TEXT, value.DATE_FORMAT);
} else if (value.TYPE === 7) {
let dateFormat = value.DATE_FORMAT.toUpperCase();
if (value.DATE_FORMAT.toLowerCase().indexOf('tt') > -1) {
dateFormat = value.DATE_FORMAT.split(' ')[0].toUpperCase() + ' ' + value.DATE_FORMAT.split(' ')[1].toLowerCase() + ' A';
}
let dateTimeFormat = value.TIME_FORMAT === '' || value.DATE_FORMAT.toLowerCase().indexOf('h') > -1 ? dateFormat : dateFormat + ' ' + value.TIME_FORMAT.replace('tt', 'A');
valueText = moment.utc(value.TEXT).tz(queueSettings.IANA_TIME_ZONE_NAME != '' ? queueSettings.IANA_TIME_ZONE_NAME : 'Etc/UTC').format(dateTimeFormat);
}
var _lineHeight = value.MULTI_LINE ? (value.FONT_SIZE * img.naturalHeight) : (value.FONT_SIZE * img.naturalHeight);
var font = '';
if (getFieldNameByType(value.TYPE) === 'text' || getFieldNameByType(value.TYPE) === 'digits' || getFieldNameByType(value.TYPE) === 'date' || getFieldNameByType(value.TYPE) === 'signature_date' || getFieldNameByType(value.TYPE) === 'dropdown') {
font = (value.FONT_SIZE * img.naturalHeight) + "px " + (value.FONT_FAMILY || "Arial");
} else {
font = (value.FONT_SIZE * img.naturalHeight) + "px " + "Arial";
}
var itemX = 0;
var itemY = 0;
if (value.RTL) {
itemX = (img.naturalWidth * x) + (img.naturalWidth * textBoxWidth) - 11;
itemY = img.naturalHeight * y + 2;
} else {
itemX = (img.naturalWidth) * x + 11;
itemY = img.naturalHeight * y + 2;
}
switch (value.TYPE) {
case 11:
if (valueText) {
COMMON.canvas.drawCustomerSelectedShape(oCanvasObj, value, itemX, itemY, img);
}
break;
case 4:
case 6:
if (valueText) {
COMMON.canvas.drawCustomerSelectedShape(oCanvasObj, value, itemX, itemY, img);
}
break;
default:
if (value.USE_SPACING && (value.NUM_OF_CHARS > 1 || value.TYPE === 3)) {
let textBoxNaturalWidth = textBoxWidth * img.naturalWidth;
let numOfSpaceTabs = value.TYPE === 3 ? valueText.replace(/\W/g, '').length : value.NUM_OF_CHARS;
let spacing = textBoxNaturalWidth / numOfSpaceTabs;
var xPosition = itemX;
if (value.TYPE === 9 && value.NUM_OF_CHARS < valueText.length) {
valueText = valueText.substring(0, value.NUM_OF_CHARS);
}
var valueTextDecoded = valueText !== null ? value.TYPE === 3 ? valueText.replace(/\W/g, '') : htmlDecode(valueText) : valueText;
let splitText = valueTextDecoded.split('');
var textDirection = COMMON.canvas.getTextDirection(valueTextDecoded);
if ((textDirection === COMMON.canvas.textDirection.RTL && value.RTL === false) || (textDirection === COMMON.canvas.textDirection.LTR && value.RTL === true)) {
splitText = splitText.reverse();
}
let charSpacing = 0;
splitText.forEach(function (char) {
text = oCanvasObj.display.text({
x: xPosition,
y: itemY,
font: font,
lineHeight: _lineHeight + "px",
text: char,
fill: "#000",
origin: { x: "center" }
});
text.x = value.RTL ? xPosition - charSpacing : xPosition + charSpacing;
charSpacing += spacing;
oCanvasObj.addChild(text);
});
} else {
// adjustments added (-11\+11 for x) and (+2 for y) because of textBox border and padding
if (value.RTL) {
text = oCanvasObj.display.text({
x: itemX,
y: itemY,
origin: { x: "right", y: "middle" },
align: 'right',
font: font,
lineHeight: _lineHeight + "px",
text: valueText,
fill: "#000"
});
} else {
text = oCanvasObj.display.text({
x: itemX,
y: itemY,
align: 'left',
font: font,
lineHeight: _lineHeight + "px",
text: valueText !== null ? htmlDecode(valueText) : valueText,
fill: "#000"
});
}
var calcObject = oCanvasObj.display.text({
x: itemX,
y: itemY,
font: font,
lineHeight: _lineHeight + "px",
text: valueText !== null ? htmlDecode(valueText) : valueText,
fill: "#000",
});
}
if (value.IS_MASKED && isViewr) {
var rectangle = oCanvasObj.display.rectangle({
x: img.naturalWidth * x,
y: img.naturalHeight * y,
width: img.naturalWidth * value.DIMENSIONS.split(',')[0],
height: img.naturalHeight * value.DIMENSIONS.split(',')[1],
stroke: "outside 1px rgba(0, 0, 0, 0.5)",
fill: "#000"
});
oCanvasObj.addChild(rectangle);
}
const heightMargin = 9;
const widthMargin = 11;
const boxWidth = (textBoxWidth * img.naturalWidth) - widthMargin;
const boxHeight = textBoxHeight * img.naturalHeight - heightMargin;
let availableWidth = boxWidth;
let breakOuterLoop = false;
if (value.MULTI_LINE == true && valueText !== null) {
calcObject.text = text.text = "";
const words = valueText.split(" ");
outerLoop:
for (let index = 0; index < words.length; index++) {
const takeSpace = index === 0 ? "" : " ";
calcObject.text = takeSpace + words[index];
let wordWidth = calcObject.width;
// Simple case
if (calcObject.width < availableWidth) {
text.text += calcObject.text;
availableWidth = availableWidth - wordWidth;
} else {
if (wordWidth < boxWidth) {
text.text += "\n" + calcObject.text.trim();
if (text.height > boxHeight) {
text.text = text.text.slice(0, -calcObject.text.length);
break;
}
availableWidth = boxWidth - wordWidth;
} else {
while (wordWidth > boxWidth) {
availableWidth = wordWidth = breakWordAndAddToText(
calcObject,
text,
availableWidth,
boxWidth,
calcObject.text
);
}
}
function breakWordAndAddToText(calcObject, textObject, avWid, totalWidth, fullWord) {
calcObject.text = fullWord;
let start = 0,
end = fullWord.length - 1;
let mid = 0;
while (start <= end) {
mid = Math.floor((start + end) / 2);
calcObject.text = calcObject.text.slice(0, mid);
if (calcObject.width < avWid) {
while (calcObject.width < avWid) {
calcObject.text += fullWord[mid];
mid++;
}
mid--;
calcObject.text = calcObject.text.slice(0, -2);
textObject.text += calcObject.text + "\n";
if (text.height > boxHeight) {
text.text = text.text.slice(0, -calcObject.text.length);
breakOuterLoop = true;
break;
}
calcObject.text = fullWord = fullWord.slice(mid - 1);
if (calcObject.width > totalWidth) {
avWid = totalWidth;
return breakWordAndAddToText(calcObject, textObject, avWid, totalWidth, fullWord);
} else {
textObject.text += calcObject.text;
avWid = totalWidth - calcObject.width;
}
break;
} else if (calcObject.width < avWid) {
start = mid + 1;
} else {
end = mid - 1;
}
}
return avWid;
}
if (breakOuterLoop) {
break outerLoop;
}
}
}
} else if (text.text && text.text.length > 1) {
while (boxWidth < text.width) {
text.text = text.text.slice(0, -1);
}
}
oCanvasObj.addChild(text);
}
}
}
});
}
function applySignatures(pageIndex, img) {
$(signatureMappings).each(function (key, value) {
if (value.TEXT == 'SIGNED') {
if (value.PAGE_NUMBER == pageIndex) {
let oCanvasObj = $.grep(oCanvases, function (e) { return e.pageNumber == pageIndex; })[0].oCanvasObj;
var position = value.MAPPING.split(',');
if (position) {
var x = position[0];
var y = position[1];
var text = oCanvasObj.display.text({
x: (img.naturalWidth * x) + (img.naturalWidth * value.DIMENSIONS.split(',')[0] / 2),
y: img.naturalHeight * y,
width: img.naturalWidth * value.DIMENSIONS.split(',')[0],
height: img.naturalHeight * value.DIMENSIONS.split(',')[1],
font: 'bold 18px Arial',
lineHeight: (img.naturalHeight * value.DIMENSIONS.split(',')[1]) + "px",
origin: { x: "center", y: "middle" },
text: value.TEXT,
fill: "#000"
});
oCanvasObj.addChild(text);
}
}
}
else {
missingRequiredSignatures = true;
}
});
}
function onGalleryReady() {
COMMON.functions.cubesLoader.hide();
$workflowTemplate.find('.navigation').show();
$('#blueimp-gallery').find('.navigation').show();
$workflowTemplate.find('.bottom').show();
$workflowTemplate.find('.form-content').removeClass('no-buttons');
let isPreviewOnly = ASSETS.services.isPreviewOnlyDocument(fileId);
if (isDownloadOnlyDocument) {
$workflowTemplate.find('.button-right').addClass('active');
$workflowTemplate.find('.button-right').addClass('active scale-animation').attr('data-focus', 'false');
$workflowTemplate.find('.button-right').off('click').on('click', function () {
Lightico.api.lockFile(fileId);
onComplete();
if (gallery.slides.length > 0) {
gallery.close();
}
if (!options.isPartOfWorkFlow) {
if (options.wizardState !== "READ_ONLY") {
COMMON.functions.cubesLoader.show();
}
Lightico.api.showRoom();
Lightico.api.sendCoBrowseEvent(this, 'click', '');
WORK_FLOW.view.resetWizardForm();
if (window.parent) {
window.parent.postMessage({
'func': 'closed'
}, "*");
}
if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.callback && window.webkit.messageHandlers.callback.postMessage) {
window.webkit.messageHandlers.callback.postMessage('close');
}
if (typeof Android !== 'undefined') {
Android.onMessage('close');
}
} else {
let useWaterMark = ASSETS.services.isDownloadOnlyDocument(fileId) === true ? false : true;
let fileUrl = 'Handlers/GetDocument.ashx?sessionId=' + m_sessionData.sessionId + '&fileId=' + fileId + '&direction=' + m_sessionData.direction + '&lang=' + m_sessionData.language + '&sid=' + m_sessionData.sessionId + '&waterMark=' + useWaterMark;
var oIframe = window.document.createElement('iframe');
var $body = jQuery(document.body);
var $oIframe = jQuery(oIframe).attr({
src: fileUrl,
style: 'display:none'
});
$body.append($oIframe);
}
});
}
else {
if (!readOnlyMode && wizardState !== 'READ_ONLY' || wizardState === 'READ_ONLY' && queueSettings.FORCE_REVIEW) {
if (signRequired && wizardState !== 'READ_ONLY') { // sign
if (missingRequiredSignatures) {
const $startSignButton = $workflowTemplate.find('.button-right.start-signing');
const startSigningHandler = function (e) {
e.preventDefault();
if ($(this).attr('disabled') === 'disabled')
return;
var $signButton = $(this);
$signButton.removeClass('scale-animation');
function confirmEsignConsent() {
WEB_SOCKET.functions.sendEsignConsent(true, fileId);
setTimeout(function () {
_startSigning();
}, 500);
}
function declineEsignConsent() {
WEB_SOCKET.functions.sendEsignConsent(false, fileId);
}
function _startSigning() {
$workflowTemplate.find('.bottom').hide();
$workflowTemplate.find('.navigation').hide();
$workflowTemplate.find('.form-content').css('bottom', '0px');
divLoading.hide();
divLoadingProgressBar.width("0%");
if ($signButton.attr('data-focus') === 'false') {
$signButton.attr('data-focus', 'true');
startSigning(fileId, function () {
Lightico.api.lockFile(fileId);
onComplete();
if (gallery.slides.length > 0) {
gallery.close();
}
});
} else {
focusSignature(fileId);
}
};
if (showSignConsent) {
let consentBody = ASSETS.services.getResource(fileId, 'consent.sign.body');
if (!ASSETS.services.isTemplateResourceConfigured(fileId, 'consent.sign.body') && queueSettings.SIGN_CONSENT && queueSettings.SIGN_CONSENT != '') {
consentBody = COMMON.functions.escapeURL(queueSettings.SIGN_CONSENT);
}
Lightico.api.showConfirmModal(Resources.consent.sign.title, consentBody, ASSETS.services.getResource(fileId, 'consent.sign.confirm'), ASSETS.services.getResource(fileId, 'consent.sign.decline'), true,
confirmEsignConsent, declineEsignConsent, null, 'consent-popup'
);
} else
setTimeout(function () {
_startSigning();
}, 500);
};
if (queueSettings.FORCE_REVIEW && numOfPages > 1) {
const nextPage = function (e) {
e.preventDefault();
gallery.next();
$workflowTemplate.find('.button-left').removeClass('disabled').addClass('active');
$workflowTemplate.find('.button-left').find('.text-button').text(Resources.previous);
if (gallery.getIndex() + 1 == gallery.getNumber()) {
if (!isLimitedAccess) {
// Right
if (wizardState !== 'READ_ONLY') {
$startSignButton.off('click').on('click', startSigningHandler);
$startSignButton.find('.text-button').text(ASSETS.services.getResource(fileId, 'start_signing'));
$startSignButton.addClass('active scale-animation').attr('data-focus', 'false');
} else {
closeOnClick();
}
// Left
$workflowTemplate.find('.button-left').off('click').on('click', function (e) {
e.preventDefault();
gallery.prev();
$startSignButton.removeClass('scale-animation');
$startSignButton.find('.text-button').text(Resources.next);
// Gallery next page
$startSignButton.off('click').on('click', nextPage);
if (gallery.getIndex() == 0) {
$workflowTemplate.find('.button-left').removeClass('active').addClass('disabled');
}
});
} else {
closeOnClick();
}
}
};
$workflowTemplate.find('.button-left').off('click').on('click', function (e) {
e.preventDefault();
// Gallery next page
$startSignButton.off('click').on('click', nextPage);
getPreviewesStep(fileId);
});
$startSignButton.removeClass('scale-animation');
$startSignButton.off('click').on('click', nextPage);
$startSignButton.find('.text-button').text(Resources.next);
$startSignButton.addClass('active');
} else {
if (!isLimitedAccess) {
setTimeout(function () {
$startSignButton.off('click').on('click', startSigningHandler);
$startSignButton.addClass('active scale-animation').attr('data-focus', 'false');
}, 700);
} else {
closeOnClick();
}
}
} else {
Lightico.api.lockFile(fileId);
onComplete();
if (gallery.slides.length > 0) {
gallery.close();
}
}
}
else { //approve
if (queueSettings.FORCE_REVIEW && numOfPages > 1 || (wizardState === "READ_ONLY" && options.isPartOfWorkFlow && queueSettings.FORCE_REVIEW) || isPreviewOnly) {
const nextPage = function (e) {
e.preventDefault();
gallery.next();
if (gallery.getIndex() > 0) {
$workflowTemplate.find('.button-left').removeClass('disabled').addClass('active');
$workflowTemplate.find('.button-left').find('.text-button').text(Resources.previous);
}
if (gallery.getIndex() + 1 == gallery.getNumber()) {
if (gallery.getIndex() > 0) {
$workflowTemplate.find('.button-left').removeClass('disabled').addClass('active');
$workflowTemplate.find('.button-left').find('.text-button').text(Resources.previous);
}
if (!isLimitedAccess) {
$workflowTemplate.find('.button-right.approve-reading').off('click').on('click', function (e) {
e.preventDefault();
if (!(wizardState === "READ_ONLY" && options.isPartOfWorkFlow && queueSettings.FORCE_REVIEW) || isPreviewOnly)
{
if (gallery.slides.length > 0) {
gallery.close();
}
}
if ((wizardState === "READ_ONLY" && options.isPartOfWorkFlow) || isPreviewOnly) {
onComplete();
} else {
Lightico.api.sendCoBrowseEvent(this, 'click', '');
Lightico.api.lockFile(fileId);
onComplete();
}
});
if ((wizardState === "READ_ONLY" && options.isPartOfWorkFlow) || isPreviewOnly) {
$workflowTemplate.find('.button-right.approve-reading .text-button').text(ASSETS.services.getResource(fileId, Resources.next));
$workflowTemplate.find('.button-right.approve-reading').addClass('active scale-animation');
} else if (wizardState === "READ_ONLY") {
closeOnClick();
} else {
$workflowTemplate.find('.button-right.approve-reading .text-button').text(ASSETS.services.getResource(fileId, 'approve_reading'));
$workflowTemplate.find('.button-right.approve-reading').addClass('active scale-animation');
}
} else {
closeOnClick();
}
}
};
$workflowTemplate.find('.button-left').off('click').on('click', function (e) {
e.preventDefault();
$workflowTemplate.find('.button-right.approve-reading').removeClass('scale-animation');
$workflowTemplate.find('.button-right.approve-reading .text-button').text(Resources.next);
$workflowTemplate.find('.button-right.approve-reading').off('click').on('click', nextPage);
getPreviewesStep(fileId);
});
if (!queueSettings.FORCE_REVIEW && ASSETS.services.isPreviewOnlyDocument(fileId) && gallery.getIndex() + 1 > 0) {
$workflowTemplate.find('.button-right.approve-reading .text-button').text(Resources.next);
$workflowTemplate.find('.button-right.approve-reading').off('click').on('click', function (e) {
onComplete();
});
} else {
$workflowTemplate.find('.button-right.approve-reading .text-button').text(Resources.next);
$workflowTemplate.find('.button-right.approve-reading').off('click').on('click', nextPage);
}
if (m_sessionData.direction === 'readonly') {
onComplete();
closeOnClick();
}
if (numOfPages > 1) {
if (gallery.getIndex() > 0) {
$workflowTemplate.find('.button-left').removeClass('disabled').addClass('active');
$workflowTemplate.find('.button-left').find('.text-button').text(Resources.previous);
}
} else {
$workflowTemplate.find('.button-right.approve-reading').off('click').on('click', function (e) {
onComplete();
});
}
$workflowTemplate.find('.button-right.approve-reading').addClass('active');
} else {
if (!isLimitedAccess) {
if (wizardState !== "READ_ONLY" && ASSETS.services.isPreviewOnlyDocument(fileId) == false) {
$workflowTemplate.find('.button-right.approve-reading').off('click').on('click', function (e) {
e.preventDefault();
var $approveButton = $(this);
$approveButton.removeClass('scale-animation');
function confirmEsignConsent() {
WEB_SOCKET.functions.sendEsignConsent(true, fileId);
approved();
}
function declineEsignConsent() {
WEB_SOCKET.functions.sendEsignConsent(false, fileId);
}
function approved() {
Lightico.api.sendCoBrowseEvent(this, 'click', '');
Lightico.api.lockFile(fileId);
onComplete();
if (gallery.slides.length > 0) {
gallery.close();
}
}
if (showApproveConsent) {
let consentBody = ASSETS.services.getResource(fileId, 'consent.approve.body');
if (!ASSETS.services.isTemplateResourceConfigured(fileId, 'consent.approve.body') && queueSettings.APPROVE_CONSENT && queueSettings.APPROVE_CONSENT != '') {
consentBody = COMMON.functions.escapeURL(queueSettings.APPROVE_CONSENT);
}
Lightico.api.showConfirmModal(Resources.consent.approve.title, consentBody, ASSETS.services.getResource(fileId, 'consent.approve.confirm'), ASSETS.services.getResource(fileId, 'consent.approve.decline'), true,
confirmEsignConsent, declineEsignConsent
);
} else {
approved();
}
}).addClass('scale-animation active');
} else {
if (m_sessionData.direction === 'readonly') {
onComplete();
closeOnClick();
}
else if (ASSETS.services.isPreviewOnlyDocument(fileId)) {
onComplete();
}
else if (wizardState === "READ_ONLY" && options.isPartOfWorkFlow && queueSettings.FORCE_REVIEW) {
onComplete();
} else {
closeOnClick();
}
}
} else {
if (m_sessionData.direction === 'readonly') {
onComplete();
}
else if (wizardState === "READ_ONLY" && options.isPartOfWorkFlow && queueSettings.FORCE_REVIEW) {
onComplete();
} else {
closeOnClick();
}
}
}
}
} else if (wizardState === 'READ_ONLY' || isLimitedAccess) {
closeOnClick();
onComplete();
}
}
}
function convertTextMappingsNumToLocaleFormat(textMappings) {
let fileLanguage = ASSETS.services.filesProperties[fileId] !== undefined ? ASSETS.services.filesProperties[fileId].language : undefined;
textMappings.forEach(function (textMapping) {
if (textMapping.TYPE === 2 && textMapping.TEXT.indexOf(".") !== -1 && fileLanguage === "fr-fr") {
textMapping.TEXT = ASSETS.services.convertNumToLocaleFormat(textMapping.TEXT);
}
});
}
function initializeBoundSignatureValue(textMappings, signatureMappings) {
let textMappingMapObj = {};
textMappings.forEach(function (textMapping) {
if (textMapping.CUSTOMER_ENTITY_ATTRIBUTE) {
textMappingMapObj[textMapping.CUSTOMER_ENTITY_ATTRIBUTE] = textMapping.TEXT;
}
});
signatureMappings.forEach(function (sigMap) {
if (sigMap.CUSTOMER_ENTITY_ATTRIBUTE) {
sigMap.VALUE = textMappingMapObj[sigMap.CUSTOMER_ENTITY_ATTRIBUTE] || sigMap.VALUE;
}
});
}
function getPreviewesStep(fileId) {
var currentStep = parseInt($mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step'));
if (gallery.getIndex() == 0 && currentStep !== 1) {
movePrevStep(fileId);
} else {
gallery.prev();//after getting prev step check again if prev btn should be visable
if (gallery.getIndex() == 0) {
$workflowTemplate.find('.button-left').removeClass('active').addClass('disabled');
}
}
}
function closeOnClick() {
const $rightButton = $workflowTemplate.find('.button-right');
$rightButton.find('.text-button').text(Resources.close);
$rightButton.addClass('active');
$rightButton.off('click').on('click', function (e) {
Lightico.api.showRoom();
Lightico.api.closeGallery();
$workflowTemplate.find('.form-content').empty();
COMMON.functions.cubesLoader.hide();
});
}
function getFieldNameByType(type) {
switch (type) {
case 0:
return 'signature';
case 1:
return 'text';
case 2:
return 'digits';
case 3:
return 'date';
case 4:
return 'checkbox';
case 5:
return 'corporate_stamp';
case 6:
return 'radiobutton';
case 7:
return 'signature_date';
case 8:
return 'initials';
case 9:
return 'dropdown';
case 11:
return 'boolean';
default:
return '';
}
}
function focusSignature(fileId) {
if (currentSignatureFocusData[fileId] && currentSignatureFocusData[fileId].panX && currentSignatureFocusData[fileId].panY && currentSignatureFocusData[fileId].mapping) {
gallery.slide(currentSignatureFocusData[fileId].mapping.PAGE_NUMBER - 1, 0);
panzoomObj[currentSignatureFocusData[fileId].mapping.PAGE_NUMBER - 1].reset();
panzoomObj[currentSignatureFocusData[fileId].mapping.PAGE_NUMBER - 1].pan(currentSignatureFocusData[fileId].panX, currentSignatureFocusData[fileId].panY);
panzoomObj[currentSignatureFocusData[fileId].mapping.PAGE_NUMBER - 1].zoom(1.1);
}
}
function startSigning(fileId, onComplete) {
let missingSignature = false;
COMMON.functions.cubesLoader.hide();
var totalSteps = parseInt($workflowTemplate.find('.form-step-icon span').text());
$workflowTemplate.find('.button-right').removeClass('scale-animation');
SIGNATURE_PAD.functions.initSignaturesData(m_sessionData.sessionId, fileId, m_sessionData.direction, m_sessionData.language, 'client');
$(signatureMappings).each(function (key, value) {
if (value.TEXT == null) {
missingSignature = true;
gallery.slide(value.PAGE_NUMBER - 1, 0);
let slide = $('.slides .slide[data-index=' + (value.PAGE_NUMBER - 1) + ']');
let oCanvas = $.grep(oCanvases, function (e) {
return e.pageNumber == value.PAGE_NUMBER;
});
if (oCanvas.length) {
let oCanvasObj = oCanvas[0].oCanvasObj;
let img = oCanvas[0].img;
let _$canvas = $(slide).find('canvas');
let position = value.MAPPING.split(',');
const tempX = (_$canvas.width() * position[0]) + (_$canvas.width() * value.DIMENSIONS.split(',')[0] / 2);
const tempY = (_$canvas.height() * position[1]) + (_$canvas.height() * value.DIMENSIONS.split(',')[1] / 2);
panX = position[0] < 0.5 ? (0.5 * _$canvas.width()) - tempX : -(tempX - (0.5 * _$canvas.width()));
panY = position[1] < 0.5 ? (0.5 * _$canvas.height()) - tempY : -(tempY - (0.5 * _$canvas.height()));
panzoomObj[value.PAGE_NUMBER - 1].reset();
panzoomObj[value.PAGE_NUMBER - 1].pan(panX, panY);
panzoomObj[value.PAGE_NUMBER - 1].zoom(1.1);
isSignatureFocuesd = true;
currentSignatureFocusData[fileId] = { panX: panX, panY: panY, mapping: value };
let x = position[0];
let y = position[1];
let size = value.DIMENSIONS.split(',');
let w = size[0];
let h = size[1];
var rectangle = oCanvasObj.display.rectangle({
x: (img.naturalWidth * x) + (0.5 * img.naturalWidth * w) - 70,
y: (img.naturalHeight * y) + (0.5 * img.naturalWidth * h) - 30,
width: 140,
height: 60,
fill: 'hsla(209, 91%, 46%, 0.8)'
});
var signatureText = '';
switch (value.TYPE) {
case 0: {
signatureText = Resources.signature.personal.title;
break;
}
case 5: {
signatureText = Resources.signature.corporate_stamp.title;
break;
}
case 8: {
signatureText = Resources.signature.initials.title;
break;
}
default: {
break;
}
}
var text = oCanvasObj.display.text({
width: rectangle.width,
origin: { x: "center", y: "top" },
align: 'center',
font: "bold 18px Arial",
lineHeight: rectangle.height + 'px',
fill: "#fff",
text: ' ' + signatureText + ' ',
lighticoKey: value.ID
});
rectangle.width = Math.max(text.width, rectangle.width);
text.x = rectangle.x + (rectangle.width / 2);
text.y = rectangle.y;
var adaSignMarker = oCanvasObj.display.rectangle({
x: rectangle.x,
y: rectangle.y,
width: rectangle.width,
height: rectangle.height,
stroke: 'outside 2px hsla(209, 91%, 46%, 0.5)'
});
oCanvasObj.addChild(rectangle);
oCanvasObj.addChild(text);
var skipButton = null
, skipText = null
, adaSkipMarker = null;
if (value.IS_MANDATORY == 0) {
skipButton = oCanvasObj.display.rectangle({
x: rectangle.x + (rectangle.width + 5),
y: rectangle.y + 5,
width: (rectangle.width / 2),
height: rectangle.height - 10,
fill: '#FFFFFF',
stroke: 'outside 5px hsla(209, 91%, 46%, 0.8)'
});
skipText = oCanvasObj.display.text({
origin: { x: "center", y: "middle" },
align: 'center',
font: "bold 16px Arial",
lineHeight: skipButton.height + "px",
text: ' ' + Resources.skip + ' > ',
fill: "hsla(209, 91%, 46%, 0.8)"
});
skipButton.width = skipText.width;
skipText.x = (skipButton.x + 2) + (skipButton.width / 2);
skipText.y = skipButton.y;
adaSkipMarker = oCanvasObj.display.rectangle({
x: skipButton.x,
y: skipButton.y,
width: skipButton.width,
height: skipButton.height,
stroke: 'outside 2px hsla(209, 91%, 46%, 0.5)'
});
oCanvasObj.addChild(skipButton);
oCanvasObj.addChild(skipText);
}
var signatureIndication = $.grep(oCanvasObj.children, function (e) {
return e.lighticoKey === "signature_indication";
});
if (signatureIndication.length > 0) {
oCanvasObj.removeChild(signatureIndication[0]);
}
var rotateIndication = false;
signatureIndication = oCanvasObj.display.image({
x: rectangle.x + 5,
y: rectangle.y - 80,
width: 35,
height: 35,
image: 'ux/img/signature-indicator.png',
lighticoKey: 'signature_indication'
});
if (rectangle.y < 85) { // Size of the indicator + size of bounce = 85
rotateIndication = true;
signatureIndication.rotation = 180;
signatureIndication.y = rectangle.height + 110;
signatureIndication.x = rectangle.x + 40;
}
oCanvasObj.addChild(signatureIndication);
animateSignautreIndication();
rectangle.bind("mouseenter", function () {
oCanvasObj.mouse.cursor("pointer");
panzoomObj[gallery.getIndex()].destroy();
}).bind("mouseleave", function () {
oCanvasObj.mouse.cursor("move");
panzoomObj[gallery.getIndex()].bind();
});
rectangle.unbind('click tap').bind("click tap", function (e) {
oCanvasObj.mouse.cursor("not-allowed");
e.preventDefault();
if (missingRequiredSignaturesPages.length > 1 && !(oCanvasObjects[missingRequiredSignaturesPages[1]])) {
loadPage(missingRequiredSignaturesPages[1], function () {
COMMON.functions.cubesLoader.hide();
onSignClick();
});
}
else {
onSignClick();
}
function onSignClick() {
if (value.VALUE && (value.TYPE === 0 || value.TYPE === 8 && value.VALUE.trim().length > 1)) {
if (SIGNATURE_PAD.functions.isSigningReasonFeatureOn()) {
SIGNATURE_PAD.functions.showBoundSignatureModal(function (signingReason) {
signWithBoundAttribute(value, signingReason);
});
} else {
signWithBoundAttribute(value, null);
}
} else {
SIGNATURE_PAD.functions.show(queueSettings.COPY_SIGNATURE, value.TYPE, $modalView, function (signatureObject) {
value.TEXT = 'SIGNED';
updateUISignatures(signatureObject.data);
WEB_SOCKET.functions.sendSignature(fileId, value.ID, signatureObject);
updateMissingRequiredSignaturesPages(value.PAGE_NUMBER);
});
}
};
});
$ada_sign.show();
$ada_sign.off('click').on('click', function (e) {
e.preventDefault();
rectangle.trigger('click tap');
return false;
});
$ada_sign.on('focus', function (e) {
oCanvasObj.addChild(adaSignMarker);
});
$ada_sign.on('blur', function (e) {
oCanvasObj.removeChild(adaSignMarker);
});
if (value.IS_MANDATORY == 0) {
skipButton.bind("mouseenter", function () {
oCanvasObj.mouse.cursor("pointer");
panzoomObj[gallery.getIndex()].destroy();
}).bind("mouseleave", function () {
oCanvasObj.mouse.cursor("move");
panzoomObj[gallery.getIndex()].bind();
});
skipButton.unbind('click tap').bind('click tap', function (e) {
e.preventDefault();
value.TEXT = 'SKIPPED';
if (missingRequiredSignaturesPages.length > 1 && !(oCanvasObjects[missingRequiredSignaturesPages[1]])) {
loadPage(missingRequiredSignaturesPages[1], function () {
updateUISignatures('');
updateMissingRequiredSignaturesPages(value.PAGE_NUMBER);
});
}
else {
updateUISignatures('');
updateMissingRequiredSignaturesPages(value.PAGE_NUMBER);
}
});
$ada_skip.show();
$ada_skip.off('click').on('click', function (e) {
e.preventDefault();
skipButton.trigger('click tap');
return false;
});
$ada_skip.on('focus', function (e) {
oCanvasObj.addChild(adaSkipMarker);
});
$ada_skip.on('blur', function (e) {
oCanvasObj.removeChild(adaSkipMarker);
});
}
function updateUISignatures(_signatureData, isBound) {
$ada_sign.hide();
$ada_sign.off('click focus blur');
$ada_skip.hide();
$ada_skip.off('click focus blur');
let rectWidth;
let rectHeight
if (isBound) {
rectWidth = img.naturalWidth * value.DIMENSIONS.split(',')[0];
rectHeight = img.naturalHeight * value.DIMENSIONS.split(',')[1];
} else {
rectWidth = rectangle.width;
rectHeight = rectangle.height;
}
var _image = oCanvasObj.display.image({
x: rectangle.x,
y: rectangle.y,
width: rectWidth,
height: rectHeight,
image: _signatureData,
stroke: "outside 1px hsla(192, 60%, 50%, 0.8)"
});
oCanvasObj.addChild(_image);
oCanvasObj.removeChild(text, true);
oCanvasObj.removeChild(rectangle, true);
oCanvasObj.removeChild(signatureIndication, true);
if (value.IS_MANDATORY == 0) {
oCanvasObj.removeChild(skipButton, true);
oCanvasObj.removeChild(skipText, true);
}
setTimeout(function () {
$(slide).removeClass('prevent-click');
startSigning(fileId, onComplete);
}, 500);
}
function signWithBoundAttribute(sigData, signingReason) {
var canvas = document.createElement('canvas');
canvas.width = img.naturalWidth * value.DIMENSIONS.split(',')[0];
canvas.height = img.naturalHeight * value.DIMENSIONS.split(',')[1];
var ctx = canvas.getContext('2d');
let textToFill = '';
let fontSize = value.FONT_SIZE * img.naturalHeight;
var font = fontSize + "px " + (sigData.FONT_FAMILY || "Arial");
ctx.font = font;
ctx.fillStyle = queueSettings && queueSettings.ESIGN_SIGNATURE ? queueSettings.ESIGN_SIGNATURE : '#000000';
if (value.TYPE === 0) {
textToFill = sigData.VALUE.trim();
} else if (value.TYPE === 8) {
textToFill = sigData.VALUE.trim().substr(0, 4);
}
if (value.RTL) {
ctx.textAlign = 'right';
ctx.fillText(textToFill, canvas.width, value.FONT_SIZE * img.naturalHeight);
} else {
ctx.textAlign = 'left';
ctx.fillText(textToFill, 0, value.FONT_SIZE * img.naturalHeight);
}
ctx.globalAlpha = 1;
var signImg = canvas.toDataURL();
const signatureObject = {
id: COMMON.functions.createUUID(),
type: value.TYPE,
data: signImg,
signingReason: signingReason
};
SIGNATURE_PAD.functions.uploadSignature(signatureObject.id, signatureObject.data, function () {
COMMON.functions.cubesLoader.hide();
value.TEXT = 'SIGNED';
updateUISignatures(signatureObject.data, true);
WEB_SOCKET.functions.sendSignature(fileId, value.ID, signatureObject);
updateMissingRequiredSignaturesPages(value.PAGE_NUMBER);
}, function () {
COMMON.functions.cubesLoader.hide();
$modalView.addClass("visible").addClass('signature-z-index');
$errorSignModal.addClass('active');
});
}
function updateMissingRequiredSignaturesPages(currentPage) {
$(signatureMappings).each(function (key, value) {
if (value.TEXT == null) {
if (currentPage != value.PAGE_NUMBER) {
missingRequiredSignaturesPages.splice(0, 1);
}
return false;
}
});
}
function animateSignautreIndication() {
signatureIndication.stop().animate(
{
y: rotateIndication === true ? signatureIndication.y - 30 : signatureIndication.y + 30
},
{
duration: "short",
easing: "ease-in-out-quad",
callback: function () {
signatureIndication.stop().animate(
{
y: rotateIndication === true ? signatureIndication.y + 30 : signatureIndication.y - 30
},
{
duration: "short",
easing: "ease-out-expo",
callback: function () {
animateSignautreIndication();
}
});
}
});
}
function destroyAnimation() {
var _signatureIndication = $.grep(oCanvasObj.children, function (e) {
return e.lighticoKey == "signature_indication";
});
_signatureIndication.each(function (indicationItem) {
if (e.lighticoKey === "signature_indication") {
oCanvasObj.removeChild(indicationItem);
}
});
}
}
return false;
}
});
if (missingSignature == false && onComplete) onComplete();
}
function setViewForLockFile() {
$workflowTemplate.find('.bottom.controlls').find('.button-left').removeClass('active').addClass('disabled');
$workflowTemplate.find('.bottom.controlls').find('.button-right').removeClass('active');
$workflowTemplate.find('.bottom.controlls').find('.button-right').off('click');
$workflowTemplate.find('.bottom').show();
$workflowTemplate.find('.form-content').removeClass('no-buttons');
}
};
const closeWizard = function (fileId) {
var $workflowModal = $('#work-flow-template[data-workflow-id="' + fileId + '"]');
if ($workflowModal.length > 0) {
$workflowModal.find('.form-last-page').hide().empty();
$('#blueimp-gallery').hide();
Lightico.api.showRoom();
}
};
function closePreview() {
$modalView.removeClass("visible");
$workflowTemplate.attr('data-workflow-id', '0');
$workflowTemplate.find('.start-signing').attr('data-focus', 'false');
if (gallery && gallery.slides && gallery.slides.length > 0) {
gallery.close();
}
COMMON.functions.cubesLoader.hide();
}
function moveNextStep(_fileId) {
$workflowTemplate.find('.form-page-header').hide();
var currentStep = parseInt($mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step'));
var currentForm = $('form[data-step=' + currentStep + ']');
let promise = Promise.resolve();
promise.then(function () {
return new Promise(function (resolve, reject) {
// First form is valid and may save.
if (currentForm && currentForm.length === 1) {
if (currentForm.valid()) {
//currentForm.removeData('validator');
COMMON.functions.cubesLoader.show();
FILE_TEXT_MAPPING.ApiCalls.saveFormData(currentForm, _fileId).then(function () {
WORK_FLOW.view.updateProgressBar(currentStep + 1, totalSteps, progressBarTitle);
if (currentStep + 1 <= formCount) {
WORK_FLOW.view.updatePageHeader(currentStep + 1, formCount, formTitles[currentStep + 1]);
}
$workflowTemplate.find('form').hide();
$workflowTemplate.find('form[data-step=' + (currentStep + 1) + ']').show();
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step', currentStep + 1);
$workflowTemplate.find('.button-left').removeClass('disabled').addClass('active');
$workflowTemplate.find('.button-left').find('.text-button').text(Resources.previous);
$workflowTemplate.find('.button-right').removeClass('start-signing').removeClass('approve-reading');
COMMON.functions.cubesLoader.hide();
resolve();
}).catch(function (error) {
console.log("Error - moveNextStep");
});
} else
reject();
} else
resolve();
});
}).then(function () {
return new Promise(function (resolve, reject) {
$workflowTemplate.find('form[data-step=' + (currentStep + 1) + ']').find('input').first().focus().blur();
// The next step is Signature / Approve
if ((currentStep + 1) == signatureStep || (currentStep + 1) == approveStep) {
$mainCardBox.addClass('with-out-box-shadow');
$workflowTemplate.find('.button-right').removeClass('active');
showEsign(_fileId, (currentStep + 1) == signatureStep, { wizardState: wizardState }, function () {
if (categoriesStep > 0) {
$workflowTemplate.find('.upload-files').show();
$mainCardBox.removeClass('with-out-box-shadow');
$workflowTemplate.find('.bottom').hide();
WORK_FLOW.view.updateProgressBar(categoriesStep, totalSteps, Resources.select_document);
} else if (attachmentsStep > 0) {
$workflowTemplate.find('.upload-files').show();
$mainCardBox.removeClass('with-out-box-shadow');
if (wizardState !== 'READ_ONLY') {
$workflowTemplate.find('.bottom').hide();
}
WORK_FLOW.view.updateProgressBar(attachmentsStep, totalSteps, Resources.attachments);
} else {
if (wizardState !== 'READ_ONLY') {
WORK_FLOW.view.updateProgressBar(totalSteps, totalSteps, Resources.done);
Lightico.api.lockWizard(_fileId, {
isMultiSigner: isMultiSigner,
uploadedTypes: [],
isAgentLocked: isAgentLocked
});
WORK_FLOW.view.showLastPage();
}
if (wizardState === 'READ_ONLY') {
$workflowTemplate.find('.bottom').show();
}
}
resolve();
});
} else
resolve();
});
}).then(function () {
return new Promise(function (resolve, reject) {
// The last page
if ((currentStep + 1) >= totalSteps) {
$workflowTemplate.find('.button-right').removeClass('start-signing').removeClass('approve-reading');
var uploadedTypeIds = [];
$workflowTemplate.find('.upload-files').find('button').each(function (index, item) {
uploadedTypeIds.push($(item).attr('id'));
});
Lightico.api.lockWizard(_fileId, {
isMultiSigner: isMultiSigner,
uploadedTypes: uploadedTypeIds,
isAgentLocked: isAgentLocked
});
WORK_FLOW.view.showLastPage();
resolve();
} else
resolve();
});
}).catch(function (e) {
});
}
function movePrevStep(fileId) {
$workflowTemplate.find('.button-right').removeClass('scale-animation');
Lightico.api.sendCoBrowseEvent(this, 'click', '');
var currentStep = parseInt($mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step'));
if (currentStep == 1) {
return false;
}
if ((currentStep - 1) != signatureStep || (currentStep - 1) != approveStep) {
$workflowTemplate.find('.button-right').removeClass('start-signing').removeClass('approve-reading');
$workflowTemplate.find('.button-right').find('.text-button').text(Resources.next);
$workflowTemplate.find('.button-right').off('click').on('click', { fileId: fileId }, function (e) {
e.preventDefault();
Lightico.api.sendCoBrowseEvent(this, 'click', '');
moveNextStep(e.data.fileId);
});
}
WORK_FLOW.view.updateProgressBar(currentStep - 1, totalSteps, progressBarTitle);
$workflowTemplate.find('form').hide();
$mainCardBox.removeClass('with-out-box-shadow');
$workflowTemplate.find('form[data-step=' + (currentStep - 1) + ']').show();
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').data('step', currentStep - 1);
$workflowTemplate.find('.button-right').addClass('active');
Lightico.api.closeGallery();
if ((currentStep - 1) == 1) {
$workflowTemplate.find('.button-left').removeClass('active').addClass('disabled');
}
$workflowTemplate.find('form[data-step=' + (currentStep - 1) + ']').find('input').first().focus().blur();
}
function SetDownLoadOnlyHeader(workflowTemplate, fileId) {
let Download_only_title = ASSETS.services.getResource(fileId, 'download_only_title');
$mainContainer.find('.form-header-classic .form-steps').find('.form-step').find('p').text(Download_only_title);
$('.easypie-chart').data('easyPieChart').update(0);
}
function setLastOpenAssetDetails(isWorkFlow, details, fileType) {
resetLastOpenAssetDetails();
lastOpenAssetDetails.fileType = fileType;
lastOpenAssetDetails.details = details;
lastOpenAssetDetails.isWorkFlow = isWorkFlow;
lastOpenAssetDetails.isAssetOpen = true;
if (isWorkFlow) {
lastOpenAssetDetails.openAssetId = details.workflowId;
} else {
lastOpenAssetDetails.openAssetId = details.file.id;
}
}
function resetLastOpenAssetDetails() {
lastOpenAssetDetails = {
isWorkFlow: false,
fileType: '',
details: {},
isAssetOpen: false
};
}
function onAssetStateChanges(assetId, state) {
if (lastOpenAssetDetails.isAssetOpen && assetId === lastOpenAssetDetails.openAssetId) {
$modalView.removeClass("visible");
$modalView.removeClass("desktop");
$mainCardBox.addClass('with-out-box-shadow');
$modalFillForm.removeClass('active');
if (typeof ($confirmModal) != 'undefined') {
$confirmModal.removeClass("active");
}
closePreview();
const completedWorkflow = lastOpenAssetDetails.isWorkFlow && state === "COMPLETED";
const modalText = completedWorkflow ? "The workflow has been updated" : "The document was updated. Please reopen it to continue.";
const btnTxt = completedWorkflow ? "OK" : "Reopen";
let skipFinish = true;
if (completedWorkflow) {
WORK_FLOW.services.getSettings(lastOpenAssetDetails.details.workflowId, function (res) {
if (res) {
let redirectUrl = '';
redirectUrl = res.onFinishRedirectUrl != '' ? res.onFinishRedirectUrl : '';
$workflowTemplate.find('.form-last-page').find('button[data-redirect]').attr('data-redirect', redirectUrl);
skipFinish = res.skipFinish;
$modalConfirm.find('.btn-field').off('click').on('click', function () {
$modalConfirm.removeClass("active");
$modalView.removeClass("visible");
if ($modalView.hasClass('desktop')){
$modalView.removeClass('desktop');
$('.workflow-desktop-close').hide();
}
if (!skipFinish) {
WORK_FLOW.view.showLastPage(lastOpenAssetDetails.details.workflowId);
} else {
Lightico.api.showRoom(true);
}
});
}
});
} else {
Lightico.api.showRoom(true);
}
Lightico.api.showConfirmModal(" ", modalText, btnTxt, null);
if ($('.signature-pad-form').length > 0) {
$('.signature-pad-form').hide();
}
$modalConfirm.find('.btn-field').off('click').on('click', function () {
$modalConfirm.removeClass("active");
$modalConfirm.find('.close').removeClass('hidden');
$modalConfirm.find('.title').width('');
if (!completedWorkflow) {
if (lastOpenAssetDetails.isWorkFlow) {
lastOpenAssetDetails.details.wizardState = state;
$workflowTemplate.attr('data-workflow-id-for-wizard-close', lastOpenAssetDetails.details.workflowId);
Lightico.api.hideRoom()
var event = new CustomEvent("runWorkflow", {
detail: lastOpenAssetDetails.details
});
document.dispatchEvent(event);
} else {
lastOpenAssetDetails.details.file.wizardState = state;
open(lastOpenAssetDetails.fileType, lastOpenAssetDetails.details, undefined, true);
$mainCardBox.removeClass('with-out-box-shadow');
}
} else {
$modalView.removeClass("visible");
}
});
$modalConfirm.find('.close').off('click');
$modalConfirm.find('.close').addClass('hidden');
$modalConfirm.find('.title').width('31px');
}
}
$(document).ready(function () {
});
return {
open: open,
close: close,
showEsign: showEsign,
closeWizard: closeWizard,
onAssetStateChanges: onAssetStateChanges,
setLastOpenAssetDetails: setLastOpenAssetDetails,
resetLastOpenAssetDetails: resetLastOpenAssetDetails
};
}();