/********************************************************************************* * The content of this file is subject to the PDF Maker license. * ("License"); You may not use this file except in compliance with the License * The Initial Developer of the Original Code is IT-Solutions4You s.r.o. * Portions created by IT-Solutions4You s.r.o. are Copyright(C) IT-Solutions4You s.r.o. * All Rights Reserved. ********************************************************************************/ Vtiger.Class('PDFMaker_CustomLabels_Js',{ getInstance: function(){ return new PDFMaker_CustomLabels_Js(); }, },{ duplicateCheckCache: [], registerSaveCustomLabel : function(form,currentTrElement) { var thisInstance = this; jQuery('#js-save-cl', form).on('click', function() { if(form.valid()) { thisInstance.saveCustomLabelDetails(form, currentTrElement); } }); }, editCustomLabel : function(url, currentTrElement) { var aDeferred = jQuery.Deferred(); var thisInstance = this; app.helper.showProgress(); app.request.get({'url' : url}).then( function(err,response) { app.helper.hideProgress(); if(err === null){ var callback = function() { var form = jQuery('#editCustomLabel'); thisInstance.registerSaveCustomLabel(form,currentTrElement); }; var data = {}; data['cb'] = callback; app.helper.hideProgress(); app.helper.showModal(response,data); } } ); return aDeferred.promise(); }, deleteCustomLabel : function(url, currentTrElement) { var message = app.vtranslate('LBL_DELETE_CONFIRMATION'); app.helper.showConfirmationBox({'message': message}).then(function () { app.helper.showProgress(); app.request.get({'url' : url}).then( function(err) { app.helper.hideProgress(); if(err === null){ currentTrElement.hide(); app.helper.showSuccessNotification({"message": ''}); } } ); }); }, registerSaveCustomLabelValues : function(container, form) { var thisInstance = this; jQuery('#js-save-cl', container).on('click', function() { if(form.valid()) { thisInstance.saveCustomLabelValues(form); } }); }, showCustomLabelValues : function(url) { var thisInstance = this; app.helper.showProgress(); app.request.get({'url':url}).then( function(err,response) { app.helper.hideProgress(); if(err === null){ var callback = function(container) { //cache should be empty when modal opened var form = jQuery('#showCustomLabelValues'); thisInstance.registerSaveCustomLabelValues(container,form); }; var data = {}; data['cb'] = callback; app.helper.hideProgress(); app.helper.showModal(response,data); } } ); }, addCustomLabelDetails: function (details) { let container = jQuery('#CustomLabelsContainer'), CustomLabelTable = jQuery('.CustomLabelTable', container), total_tr = jQuery('#CustomLabelTable tr').length, next_chid = total_tr - 1, trElementForCustomLabel = jQuery('
 
' + app.vtranslate('LBL_OTHER_VALS', 'PDFMaker') + ''); CustomLabelTable.append(trElementForCustomLabel); $('#noItemFountTr').remove(); }, updateCustomLabelDetails : function(data, currentTrElement) { currentTrElement.find('.CustomLabelValue').text(data['lblval']); }, saveCustomLabelValues : function(form) { var params = form.serializeFormData(); if(typeof params == 'undefined' ) { params = {}; } app.hideModalWindow(); app.helper.showProgress(); params.module = app.getModuleName(); params.action = 'IndexAjax'; params.mode = 'SaveCustomLabelValues'; app.request.post({'data' : params}).then( function(err) { app.helper.hideProgress(); if(err === null){ app.helper.showSuccessNotification({"message":app.vtranslate('JS_CUSTOM_LABEL_VALUES_SAVED_SUCCESSFULLY')}); } } ); }, saveCustomLabelDetails : function(form, currentTrElement) { var aDeferred = jQuery.Deferred(); var thisInstance = this; var params = form.serializeFormData(); if(typeof params == 'undefined' ) { params = {}; } var editViewForm = jQuery('#editCustomLabel'); this.formValidatorInstance = editViewForm.vtValidate({ submitHandler : function() { thisInstance.checkDuplicateKey(params).then( function(result) { if (result.success) { app.helper.showErrorNotification({"message":result.message}); } else { app.helper.showProgress(); params.module = app.getModuleName(); params.action = 'IndexAjax'; params.mode = 'SaveCustomLabel'; app.request.post({'data' : params}).then( function(err,response) { app.helper.hideProgress(); app.helper.hideModal(); if(err === null){ if(form.find('.addCustomLabelView').val() == "true") { thisInstance.addCustomLabelDetails(response); } else { thisInstance.updateCustomLabelDetails(response, currentTrElement); } app.helper.showSuccessNotification({"message":app.vtranslate('JS_CUSTOM_LABEL_SAVED_SUCCESSFULLY')}); } } ); } } ); } }); return aDeferred.promise(); }, checkDuplicateKey : function(details) { var aDeferred = jQuery.Deferred(); var LblKey = details.LblKey; var params = { 'module' : 'PDFMaker', 'action' : 'IndexAjax', 'mode' : 'checkDuplicateKey', 'lblkey' : LblKey }; app.request.get({'data' : params}).then( function(err,response) { if (err === null) { aDeferred.resolve(response); } } ); return aDeferred.promise(); }, registerActions : function() { var thisInstance = this; var container = jQuery('#CustomLabelsContainer'); container.find('.addCustomLabel').click(function(e) { var addTaxButton = jQuery(e.currentTarget); var createTaxUrl = addTaxButton.data('url')+'&type='+addTaxButton.data('type'); thisInstance.editCustomLabel(createTaxUrl); }); container.on('click', '.editCustomLabel', function(e) { var editTaxButton = jQuery(e.currentTarget); var currentTrElement = editTaxButton.closest('tr'); thisInstance.editCustomLabel(editTaxButton.data('url'), currentTrElement); }); container.on('click', '.deleteCustomLabel', function(e) { var deleteButton = jQuery(e.currentTarget); var currentTrElement = deleteButton.closest('tr'); thisInstance.deleteCustomLabel(deleteButton.data('url'), currentTrElement); }); container.on('click', '.showCustomLabelValues', function(e) { var editTaxButton = jQuery(e.currentTarget); thisInstance.showCustomLabelValues(editTaxButton.data('url')); }); }, registerEvents: function() { this.registerActions(); } });