/*+********************************************************************************** * The contents of this file are subject to the vtiger CRM Public License Version 1.0 * ("License"); You may not use this file except in compliance with the License * The Original Code is: vtiger CRM Open Source * The Initial Developer of the Original Code is vtiger. * Portions created by vtiger are Copyright (C) vtiger. * All Rights Reserved. ************************************************************************************/ if (typeof(ImportJs) == 'undefined') { /* * Namespaced javascript class for Import */ ImportJs = { toogleMergeConfiguration: function() { var mergeChecked = jQuery('#auto_merge').is(':checked'); if(mergeChecked) { jQuery('#duplicates_merge_configuration').show(); } else { jQuery('#duplicates_merge_configuration').hide(); } }, checkFileType: function() { var filePath = jQuery('#import_file').val(); if(filePath != '') { var fileExtension = filePath.split('.').pop(); jQuery('#type').val(fileExtension); ImportJs.handleFileTypeChange(); } }, handleFileTypeChange: function() { var fileType = jQuery('#type').val(); if(fileType != 'csv') { jQuery('#delimiter_container').hide(); jQuery('#has_header_container').hide(); } else { jQuery('#delimiter_container').show(); jQuery('#has_header_container').show(); } }, uploadAndParse: function() { if(!ImportJs.validateFilePath()) return false; if(!ImportJs.validateMergeCriteria()) return false; return true; }, validateFilePath: function() { var filePath = jQuery('#import_file').val(); if(jQuery.trim(filePath) == '') { alert('Import File '+alert_arr.CANNOT_BE_EMPTY) jQuery('#import_file').focus(); return false; } if(!ImportJs.uploadFilter("import_file", "csv|vcf")) { return false; } return true; }, uploadFilter: function(elementId, allowedExtensions) { var obj = jQuery('#'+elementId); if(obj) { var filePath = obj.val(); var fileParts = filePath.toLowerCase().split('.'); var fileType = fileParts[fileParts.length-1]; var validExtensions = allowedExtensions.toLowerCase().split('|'); if(validExtensions.indexOf(fileType) < 0) { alert(alert_arr.PLS_SELECT_VALID_FILE+' '+validExtensions); obj.focus(); return false; } } return true; }, validateMergeCriteria: function() { $mergeChecked = jQuery('#auto_merge').is(':checked'); if($mergeChecked) { var selectedOptions = jQuery('#selected_merge_fields option'); if(selectedOptions.length == 0) { alert(alert_arr.ERR_SELECT_ATLEAST_ONE_MERGE_CRITERIA_FIELD); return false; } } convertOptionsToJSONArray('selected_merge_fields', 'merge_fields'); return true; }, sanitizeAndSubmit: function() { if(!ImportJs.sanitizeFieldMapping()) return false; if(!ImportJs.validateCustomMap()) return false; return true; }, sanitizeFieldMapping: function() { var fieldsList = jQuery('.fieldIdentifier'); var mappedFields = {}; var mappedDefaultValues = {}; for(var i=0; i 0) { alert(alert_arr.ERR_PLEASE_MAP_MANDATORY_FIELDS + ' : ' + missingMandatoryFields.join(',')); return false; } jQuery('#field_mapping').val(JSON.stringify(mappedFields)); jQuery('#default_values').val(JSON.stringify(mappedDefaultValues)); return true; }, validateCustomMap: function() { var saveMap = jQuery('#save_map').is(':checked'); if(saveMap) { var mapName = jQuery('#save_map_as').val(); if(jQuery.trim(mapName) == '') { alert(alert_arr.ERR_MAP_NAME_CANNOT_BE_EMPTY); return false; } var mapOptions = jQuery('#saved_maps option'); for(var i=0; i 0) { var copyOfDefaultValueWidget = jQuery(':first', defaultValueContainer).detach(); copyOfDefaultValueWidget.appendTo(allDefaultValuesContainer); } var selectedFieldDefValueContainer = jQuery('#'+selectedFieldName+'_defaultvalue_container', allDefaultValuesContainer); var defaultValueWidget = selectedFieldDefValueContainer.detach(); defaultValueWidget.appendTo(defaultValueContainer); }, loadDefaultValueWidgetForMappedFields: function() { var fieldsList = jQuery('.fieldIdentifier'); fieldsList.each(function(i, element) { var fieldElement = jQuery(element); var mappedFieldName = jQuery('[name=mapped_fields]', fieldElement).val(); if(mappedFieldName != '') { ImportJs.loadDefaultValueWidget(fieldElement.attr('id')); } }); } } jQuery(document).ready(function() { ImportJs.toogleMergeConfiguration(); ImportJs.loadDefaultValueWidgetForMappedFields(); }); }