[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 /*+*********************************************************************************** 2 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 3 * ("License"); You may not use this file except in compliance with the License 4 * The Original Code is: vtiger CRM Open Source 5 * The Initial Developer of the Original Code is vtiger. 6 * Portions created by vtiger are Copyright (C) vtiger. 7 * All Rights Reserved. 8 *************************************************************************************/ 9 10 Inventory_Detail_Js("SalesOrder_Detail_Js",{},{ 11 12 /** 13 * Function to register recordpresave event 14 */ 15 registerRecordPreSaveEvent : function(form){ 16 if(typeof form == 'undefined') { 17 form = this.getForm(); 18 } 19 20 var fieldsForRecurrence = new Array("start_period","end_period","recurring_frequency","payment_duration","invoicestatus"); 21 form.on(this.fieldPreSave,'[name="enable_recurring"]', function(e) { 22 var currentElement = jQuery(e.currentTarget); 23 jQuery(fieldsForRecurrence).each(function(key,value){ 24 var relatedFieldSavedValue = form.find('[value="'+value+'"]').data('prevValue'); 25 if((currentElement.is(':checked')) && (relatedFieldSavedValue == '')){ 26 form.removeData('submit'); 27 e.preventDefault(); 28 } 29 }); 30 }) 31 }, 32 33 /** 34 * Function to register event for enabling recurrence 35 * When recurrence is enabled some of the fields need 36 * to be check for mandatory validation 37 */ 38 registerEventForEnablingRecurrence : function(){ 39 var thisInstance = this; 40 var form = this.getForm(); 41 var enableRecurrenceField = form.find('[name="enable_recurring"]'); 42 var fieldsForValidation = new Array('recurring_frequency','start_period','end_period','payment_duration','invoicestatus'); 43 enableRecurrenceField.on('change',function(e){ 44 var element = jQuery(e.currentTarget); 45 var addValidation; 46 if(element.is(':checked')){ 47 addValidation = true; 48 }else{ 49 addValidation = false; 50 } 51 if(addValidation){ 52 form.validationEngine('detach'); 53 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,addValidation); 54 form.validationEngine(app.validationEngineOptions); 55 jQuery(fieldsForValidation).each(function(key,value){ 56 form.find('[name="'+value+'"]').trigger('click'); 57 }); 58 }else{ 59 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,addValidation); 60 } 61 }) 62 if(!enableRecurrenceField.is(":checked")){ 63 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,false); 64 }else if(enableRecurrenceField.is(":checked")){ 65 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,true); 66 } 67 }, 68 69 /** 70 * Function to add or remove required validation for dependent fields 71 */ 72 AddOrRemoveRequiredValidation : function(dependentFieldsForValidation,addValidation){ 73 var form = this.getForm(); 74 jQuery(dependentFieldsForValidation).each(function(key,value){ 75 var relatedField = form.find('[name="'+value+'"]'); 76 if(addValidation){ 77 var validationValue = relatedField.attr('data-validation-engine'); 78 if(validationValue.indexOf('[f') > 0){ 79 relatedField.attr('data-validation-engine','validate[required,funcCall[Vtiger_Base_Validator_Js.invokeValidation]]'); 80 } 81 if(relatedField.is("select")){ 82 relatedField.attr('disabled',false).trigger("liszt:updated"); 83 }else{ 84 relatedField.removeAttr('disabled'); 85 } 86 }else if(!addValidation){ 87 if(relatedField.is("select")){ 88 relatedField.attr('disabled',true).trigger("liszt:updated"); 89 }else{ 90 relatedField.attr('disabled','disabled'); 91 } 92 relatedField.closest('td').find('.edit').addClass('hide'); 93 } 94 }) 95 }, 96 97 getCustomFieldNameValueMap : function(fieldNameValueMap){ 98 var fieldName = fieldNameValueMap['field']; 99 if(fieldName == "enable_recurring"){ 100 var fieldsForValidation = new Array('recurring_frequency','start_period','end_period','payment_duration','invoicestatus'); 101 var form = this.getForm(); 102 jQuery(fieldsForValidation).each(function(key,value){ 103 var relatedFieldSavedValue = jQuery('[value="'+value+'"]',form).data('prevValue'); 104 fieldNameValueMap[value] = relatedFieldSavedValue; 105 }) 106 } 107 return fieldNameValueMap; 108 }, 109 110 /** 111 * Function which will regiter all events for this page 112 */ 113 registerEvents : function(){ 114 this._super(); 115 var form = this.getForm(); 116 this.registerRecordPreSaveEvent(form); 117 this.registerEventForEnablingRecurrence(); 118 } 119 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |