[ 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_Edit_Js("SalesOrder_Edit_Js",{},{ 11 12 /** 13 * Function which will register event for Reference Fields Selection 14 */ 15 registerReferenceSelectionEvent : function(container) { 16 this._super(container); 17 var thisInstance = this; 18 19 jQuery('input[name="account_id"]', container).on(Vtiger_Edit_Js.referenceSelectionEvent, function(e, data){ 20 thisInstance.referenceSelectionEventHandler(data, container); 21 }); 22 }, 23 24 /** 25 * Function to get popup params 26 */ 27 getPopUpParams : function(container) { 28 var params = this._super(container); 29 var sourceFieldElement = jQuery('input[class="sourceField"]',container); 30 31 if(sourceFieldElement.attr('name') == 'contact_id' || sourceFieldElement.attr('name') == 'potential_id') { 32 var form = this.getForm(); 33 var parentIdElement = form.find('[name="account_id"]'); 34 if(parentIdElement.length > 0 && parentIdElement.val().length > 0 && parentIdElement.val() != 0) { 35 var closestContainer = parentIdElement.closest('td'); 36 params['related_parent_id'] = parentIdElement.val(); 37 params['related_parent_module'] = closestContainer.find('[name="popupReferenceModule"]').val(); 38 } else if(sourceFieldElement.attr('name') == 'potential_id') { 39 parentIdElement = form.find('[name="contact_id"]'); 40 if(parentIdElement.length > 0 && parentIdElement.val().length > 0) { 41 closestContainer = parentIdElement.closest('td'); 42 params['related_parent_id'] = parentIdElement.val(); 43 params['related_parent_module'] = closestContainer.find('[name="popupReferenceModule"]').val(); 44 } 45 } 46 } 47 return params; 48 }, 49 50 /** 51 * Function to search module names 52 */ 53 searchModuleNames : function(params) { 54 var aDeferred = jQuery.Deferred(); 55 56 if(typeof params.module == 'undefined') { 57 params.module = app.getModuleName(); 58 } 59 if(typeof params.action == 'undefined') { 60 params.action = 'BasicAjax'; 61 } 62 63 if (params.search_module == 'Contacts' || params.search_module == 'Potentials') { 64 var form = this.getForm(); 65 var parentIdElement = form.find('[name="account_id"]'); 66 if(parentIdElement.length > 0 && parentIdElement.val().length > 0) { 67 var closestContainer = parentIdElement.closest('td'); 68 params.parent_id = parentIdElement.val(); 69 params.parent_module = closestContainer.find('[name="popupReferenceModule"]').val(); 70 } else if(params.search_module == 'Potentials') { 71 parentIdElement = form.find('[name="contact_id"]'); 72 if(parentIdElement.length > 0 && parentIdElement.val().length > 0) { 73 closestContainer = parentIdElement.closest('td'); 74 params.parent_id = parentIdElement.val(); 75 params.parent_module = closestContainer.find('[name="popupReferenceModule"]').val(); 76 } 77 } 78 } 79 80 AppConnector.request(params).then( 81 function(data){ 82 aDeferred.resolve(data); 83 }, 84 function(error){ 85 aDeferred.reject(); 86 } 87 ) 88 return aDeferred.promise(); 89 }, 90 91 /** 92 * Function to register event for enabling recurrence 93 * When recurrence is enabled some of the fields need 94 * to be check for mandatory validation 95 */ 96 registerEventForEnablingRecurrence : function(){ 97 var thisInstance = this; 98 var form = this.getForm(); 99 var enableRecurrenceField = form.find('[name="enable_recurring"]'); 100 var fieldsForValidation = new Array('recurring_frequency','start_period','end_period','payment_duration','invoicestatus'); 101 enableRecurrenceField.on('change',function(e){ 102 var element = jQuery(e.currentTarget); 103 var addValidation; 104 if(element.is(':checked')){ 105 addValidation = true; 106 }else{ 107 addValidation = false; 108 } 109 110 //If validation need to be added for new elements,then we need to detach and attach validation 111 //to form 112 if(addValidation){ 113 form.validationEngine('detach'); 114 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,addValidation); 115 //For attaching validation back we are using not using attach,because chosen select validation will be missed 116 form.validationEngine(app.validationEngineOptions); 117 //As detach is used on form for detaching validationEngine,it will remove any actions on form submit, 118 //so events that are registered on form submit,need to be registered again after validationengine detach and attach 119 thisInstance.registerSubmitEvent(); 120 }else{ 121 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,addValidation); 122 } 123 }) 124 if(!enableRecurrenceField.is(":checked")){ 125 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,false); 126 }else if(enableRecurrenceField.is(":checked")){ 127 thisInstance.AddOrRemoveRequiredValidation(fieldsForValidation,true); 128 } 129 }, 130 131 /** 132 * Function to add or remove required validation for dependent fields 133 */ 134 AddOrRemoveRequiredValidation : function(dependentFieldsForValidation,addValidation){ 135 var form = this.getForm(); 136 jQuery(dependentFieldsForValidation).each(function(key,value){ 137 var relatedField = form.find('[name="'+value+'"]'); 138 if(addValidation){ 139 var validationValue = relatedField.attr('data-validation-engine'); 140 if(validationValue.indexOf('[f') > 0){ 141 relatedField.attr('data-validation-engine','validate[required,funcCall[Vtiger_Base_Validator_Js.invokeValidation]]'); 142 } 143 if(relatedField.is("select")){ 144 relatedField.attr('disabled',false).trigger("liszt:updated"); 145 }else{ 146 relatedField.removeAttr('disabled'); 147 } 148 }else if(!addValidation){ 149 if(relatedField.is("select")){ 150 relatedField.attr('disabled',true).trigger("liszt:updated"); 151 }else{ 152 relatedField.attr('disabled',"disabled"); 153 } 154 relatedField.validationEngine('hide'); 155 if(relatedField.is('select') && relatedField.hasClass('chzn-select')){ 156 var parentTd = relatedField.closest('td'); 157 parentTd.find('.chzn-container').validationEngine('hide'); 158 } 159 } 160 }) 161 }, 162 163 registerEvents: function(){ 164 this._super(); 165 this.registerEventForEnablingRecurrence(); 166 this.registerForTogglingBillingandShippingAddress(); 167 this.registerEventForCopyAddress(); 168 } 169 }); 170 171
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 |