<div dir="ltr">Hi Mohan,<br><div><br></div><div>From you explanation on this issue, I can notice that you are facing issue with addNewContactToRelatedList() api in the below mentioned line</div><div><span style="font-family:Menlo,monospace;white-space:pre-wrap;color:rgb(172,5,101)"><br></span></div><div><span style="font-family:Menlo,monospace;white-space:pre-wrap;color:rgb(172,5,101)">var </span><span style="background-color:rgb(253,255,255);color:rgb(15,15,8);font-family:Menlo,monospace;white-space:pre-wrap">selectContainer </span><span style="font-family:Menlo,monospace;white-space:pre-wrap;color:rgb(172,5,101)">= </span><span style="background-color:rgb(253,255,255);color:rgb(15,15,8);font-family:Menlo,monospace;white-space:pre-wrap">jQuery(element.data(</span><span style="font-family:Menlo,monospace;white-space:pre-wrap;color:rgb(117,128,0)">'select2'</span><span style="background-color:rgb(253,255,255);color:rgb(15,15,8);font-family:Menlo,monospace;white-space:pre-wrap">)</span><span style="background-color:rgb(253,255,255);color:rgb(15,15,8);font-family:Menlo,monospace;white-space:pre-wrap">.container, form);</span></div><div><span style="background-color:rgb(253,255,255);color:rgb(15,15,8);font-family:Menlo,monospace;white-space:pre-wrap"><br></span></div><div><span style="background-color:rgb(253,255,255);color:rgb(15,15,8);font-family:Menlo,monospace;white-space:pre-wrap">As you're looking for a data object on string, Please to convert 'element' of string type to jQuery object before accessing contents.I mean you should use jQuery(element).data('select2').</span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 6, 2020 at 2:42 AM Sukhdev Mohan <<a href="mailto:s.mohan@myti.it">s.mohan@myti.it</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">Hi Uma,<div><br></div><div>So I’ve managed to select, save, edit and view a single field. I’m now facing problem to add this functionality to other 4 fields. I’m sharing the Edit.js </div><div>Since I wanted to avoid duplicating <span style="color:rgb(15,15,8);font-family:Menlo,monospace;background-color:rgb(253,255,255)">registerRelatedContactSpecificEvents</span><span style="background-color:rgba(255,255,255,0)"><span style="font-family:Menlo,monospace"> </span><span>I’ve tried to modularise by defining an array of elements and cycle on it (not the most elegant solution I recon) But as you can guess this doesn’t work: when the pop up opens it’s fine, when I select the the contacts it give me error "</span></span><span>Uncaught TypeError: element.data(...) is undefined: Im guessing the loop isn’t working as I thought. Can you (*or anybody else) help me out editing this code to work for my use case? </span></div><div><pre style="background-color:rgb(253,255,255);color:rgb(15,15,8);font-family:Menlo,monospace"><span style="color:rgb(122,142,204);font-style:italic">/*+***********************************************************************************<br></span><span style="color:rgb(122,142,204);font-style:italic"> * The contents of this file are subject to the vtiger CRM Public License Version 1.0<br></span><span style="color:rgb(122,142,204);font-style:italic"> * ("License"); You may not use this file except in compliance with the License<br></span><span style="color:rgb(122,142,204);font-style:italic"> * The Original Code is: vtiger CRM Open Source<br></span><span style="color:rgb(122,142,204);font-style:italic"> * The Initial Developer of the Original Code is vtiger.<br></span><span style="color:rgb(122,142,204);font-style:italic"> * Portions created by vtiger are Copyright (C) vtiger.<br></span><span style="color:rgb(122,142,204);font-style:italic"> * All Rights Reserved.<br></span><span style="color:rgb(122,142,204);font-style:italic"> *************************************************************************************/<br></span><span style="color:rgb(122,142,204);font-style:italic"><br></span>Vtiger_Edit_Js(<span style="color:rgb(117,128,0)">"Processi_Edit_Js"</span>,{<br><br>},{<br><br> relatedContactElement <span style="color:rgb(172,5,101)">: false</span>,<br><br> elementwithContacts<span style="color:rgb(172,5,101)">: </span>[<br> <span style="color:rgb(117,128,0)">'mbs_contact'</span>,<br> <span style="color:rgb(117,128,0)">'bsm_contact'</span>,<br> <span style="color:rgb(117,128,0)">'bi_contact'</span>,<br> <span style="color:rgb(117,128,0)">'altri_contact'</span>,<br> <span style="color:rgb(117,128,0)">'comune_contact'<br></span><span style="color:rgb(117,128,0)"> </span>],<br><br> getRelatedContactElement <span style="color:rgb(172,5,101)">: function</span>(form, element) {<br> <span style="color:rgb(172,5,101)">if</span>(<span style="color:rgb(172,5,101)">typeof </span>form <span style="color:rgb(172,5,101)">== </span><span style="color:rgb(117,128,0)">"undefined"</span>) {<br> form <span style="color:rgb(172,5,101)">= this</span>.getForm();<br> }<br> <span style="color:rgb(172,5,101)">this</span>.relatedContactElement <span style="color:rgb(172,5,101)">= </span>jQuery(<span style="color:rgb(117,128,0)">`#</span>${element}<span style="color:rgb(117,128,0)">_display`</span>, form);<br> <span style="color:rgb(172,5,101)">return this</span>.relatedContactElement;<br> },<br><br> openPopUp <span style="color:rgb(172,5,101)">: function</span>(e){<br> <span style="color:rgb(172,5,101)">var </span>thisInstance <span style="color:rgb(172,5,101)">= this</span>;<br> <span style="color:rgb(172,5,101)">var </span>parentElem <span style="color:rgb(172,5,101)">= </span>thisInstance.getParentElement(jQuery(e.target));<br><br> <span style="color:rgb(172,5,101)">var </span>params <span style="color:rgb(172,5,101)">= this</span>.getPopUpParams(parentElem);<br> params.view <span style="color:rgb(172,5,101)">= </span><span style="color:rgb(117,128,0)">'Popup'</span>;<br><br> <span style="color:rgb(172,5,101)">var </span>isMultiple <span style="color:rgb(172,5,101)">= false</span>;<br> <span style="color:rgb(172,5,101)">if</span>(params.multi_select) {<br> isMultiple <span style="color:rgb(172,5,101)">= true</span>;<br> }<br><br> <span style="color:rgb(172,5,101)">var </span>sourceFieldElement <span style="color:rgb(172,5,101)">= </span>jQuery(<span style="color:rgb(117,128,0)">'input[class="sourceField"]'</span>,parentElem);<br><br> <span style="color:rgb(172,5,101)">var </span>prePopupOpenEvent <span style="color:rgb(172,5,101)">= </span>jQuery.Event(Vtiger_Edit_Js.preReferencePopUpOpenEvent);<br> sourceFieldElement.trigger(prePopupOpenEvent);<br><br> <span style="color:rgb(172,5,101)">if</span>(prePopupOpenEvent.isDefaultPrevented()) {<br> <span style="color:rgb(172,5,101)">return </span>;<br> }<br> <span style="color:rgb(172,5,101)">var </span>popupInstance <span style="color:rgb(172,5,101)">= </span>Vtiger_Popup_Js.getInstance();<br> popupInstance.showPopup(params,<span style="color:rgb(172,5,101)">function</span>(data){<br> <span style="color:rgb(172,5,101)">var </span>responseData <span style="color:rgb(172,5,101)">= </span>JSON.parse(data);<br> <span style="color:rgb(172,5,101)">var </span>dataList <span style="color:rgb(172,5,101)">= new </span>Array();<br> <span style="color:rgb(172,5,101)">for</span>(<span style="color:rgb(172,5,101)">var </span>id <span style="color:rgb(172,5,101)">in </span>responseData){<br> <span style="color:rgb(172,5,101)">var </span>data <span style="color:rgb(172,5,101)">= </span>{<br> <span style="color:rgb(117,128,0)">'name' </span><span style="color:rgb(172,5,101)">: </span>responseData[id].name,<br> <span style="color:rgb(117,128,0)">'id' </span><span style="color:rgb(172,5,101)">: </span>id<br> }<br> dataList.push(data);<br> <span style="color:rgb(172,5,101)">if</span>(<span style="color:rgb(172,5,101)">!</span>isMultiple) {<br> thisInstance.setReferenceFieldValue(parentElem, data);<br> }<br> }<br><br> <span style="color:rgb(172,5,101)">if</span>(isMultiple) {<br> sourceFieldElement.trigger(Vtiger_Edit_Js.refrenceMultiSelectionEvent,{<span style="color:rgb(117,128,0)">'data'</span><span style="color:rgb(172,5,101)">:</span>dataList});<br> }<br> sourceFieldElement.trigger(Vtiger_Edit_Js.postReferenceSelectionEvent,{<span style="color:rgb(117,128,0)">'data'</span><span style="color:rgb(172,5,101)">:</span>responseData});<br> });<br> },<br><br> registerRelatedContactSpecificEvents <span style="color:rgb(172,5,101)">: function</span>(form) {<br> console.log(form);<br> <span style="color:rgb(172,5,101)">this</span>.elementwithContacts.forEach(element <span style="color:rgb(172,5,101)">=> </span>{<br> console.log(element);<br> <span style="color:rgb(172,5,101)">var </span>thisInstance <span style="color:rgb(172,5,101)">= this</span>;<br> <span style="color:rgb(172,5,101)">if</span>(<span style="color:rgb(172,5,101)">typeof </span>form <span style="color:rgb(172,5,101)">== </span><span style="color:rgb(117,128,0)">"undefined"</span>) {<br> form <span style="color:rgb(172,5,101)">= this</span>.getForm();<br> }<br> form.find(<span style="color:rgb(117,128,0)">`[name="</span>${element}<span style="color:rgb(117,128,0)">"]`</span>).on(Vtiger_Edit_Js.preReferencePopUpOpenEvent,<span style="color:rgb(172,5,101)">function</span>(e){<br> <span style="color:rgb(172,5,101)">var </span>parentIdElement <span style="color:rgb(172,5,101)">= </span>form.find(<span style="color:rgb(117,128,0)">`[name="</span>${element}<span style="color:rgb(117,128,0)">"]`</span>);<br> <span style="color:rgb(172,5,101)">var </span>container <span style="color:rgb(172,5,101)">= </span>parentIdElement.closest(<span style="color:rgb(117,128,0)">'td'</span>);<br> <span style="color:rgb(172,5,101)">var </span>popupReferenceModule <span style="color:rgb(172,5,101)">= </span>jQuery(<span style="color:rgb(117,128,0)">'input[name="popupReferenceModule"]'</span>,container).val();<br> })<br><br> <span style="color:rgb(172,5,101)">this</span>.getRelatedContactElement(form).select2({<br> minimumInputLength<span style="color:rgb(172,5,101)">: </span><span style="color:rgb(73,20,148)">3</span>,<br> ajax <span style="color:rgb(172,5,101)">: </span>{<br> <span style="color:rgb(117,128,0)">'url' </span><span style="color:rgb(172,5,101)">: </span><span style="color:rgb(117,128,0)">'index.php?module=Contacts&action=BasicAjax&search_module=Contacts'</span>,<br> <span style="color:rgb(117,128,0)">'dataType' </span><span style="color:rgb(172,5,101)">: </span><span style="color:rgb(117,128,0)">'json'</span>,<br> <span style="color:rgb(117,128,0)">'data' </span><span style="color:rgb(172,5,101)">: function</span>(term,page){<br> <span style="color:rgb(172,5,101)">var </span>data <span style="color:rgb(172,5,101)">= </span>{};<br> data[<span style="color:rgb(117,128,0)">'search_value'</span>] <span style="color:rgb(172,5,101)">= </span>term;<br><br> <span style="color:rgb(172,5,101)">return </span>data;<br> },<br> <span style="color:rgb(117,128,0)">'results' </span><span style="color:rgb(172,5,101)">: function</span>(data){<br> data.results <span style="color:rgb(172,5,101)">= </span>data.result;<br> <span style="color:rgb(172,5,101)">for</span>(<span style="color:rgb(172,5,101)">var </span>index <span style="color:rgb(172,5,101)">in </span>data.results ) {<br><br> <span style="color:rgb(172,5,101)">var </span>resultData <span style="color:rgb(172,5,101)">= </span>data.result[index];<br> resultData.text <span style="color:rgb(172,5,101)">= </span>resultData.label;<br> }<br> <span style="color:rgb(172,5,101)">return </span>data<br> },<br> transport <span style="color:rgb(172,5,101)">: function</span>(params){<br> <span style="color:rgb(172,5,101)">return </span>jQuery.ajax(params);<br> }<br> },<br> multiple <span style="color:rgb(172,5,101)">: true</span>,<br> <span style="color:rgb(122,142,204);font-style:italic">//To Make the menu come up in the case of quick create<br></span><span style="color:rgb(122,142,204);font-style:italic"> </span>dropdownCss <span style="color:rgb(172,5,101)">: </span>{<span style="color:rgb(117,128,0)">'z-index' </span><span style="color:rgb(172,5,101)">: </span><span style="color:rgb(117,128,0)">'10001'</span>}<br> });<br><br> <span style="color:rgb(122,142,204);font-style:italic">//To add multiple selected contact from popup<br></span><span style="color:rgb(122,142,204);font-style:italic"> </span>form.find(<span style="color:rgb(117,128,0)">`[name="</span>${element}<span style="color:rgb(117,128,0)">"]`</span>).on(Vtiger_Edit_Js.refrenceMultiSelectionEvent,<span style="color:rgb(172,5,101)">function</span>(e,result){<br> thisInstance.addNewContactToRelatedList(result,form, element);<br> });<br><br> <span style="color:rgb(172,5,101)">this</span>.fillRelatedContacts(form, element);<br> });<br> },<br> <span style="color:rgb(122,142,204);font-style:italic">/**<br></span><span style="color:rgb(122,142,204);font-style:italic"> * Function to get reference search params<br></span><span style="color:rgb(122,142,204);font-style:italic"> */<br></span><span style="color:rgb(122,142,204);font-style:italic"> </span>getReferenceSearchParams <span style="color:rgb(172,5,101)">: function</span>(element){<br> <span style="color:rgb(172,5,101)">var </span>tdElement <span style="color:rgb(172,5,101)">= </span>jQuery(element).closest(<span style="color:rgb(117,128,0)">'td'</span>);<br> <span style="color:rgb(172,5,101)">var </span>params <span style="color:rgb(172,5,101)">= </span>{};<br> <span style="color:rgb(172,5,101)">var </span>previousTd <span style="color:rgb(172,5,101)">= </span>tdElement.prev();<br> <span style="color:rgb(172,5,101)">var </span>multiModuleElement <span style="color:rgb(172,5,101)">= </span>jQuery(<span style="color:rgb(117,128,0)">'select.referenceModulesList'</span>, previousTd);<br><br> <span style="color:rgb(172,5,101)">var </span>referenceModuleElement;<br> <span style="color:rgb(172,5,101)">if</span>(multiModuleElement.length) {<br> referenceModuleElement <span style="color:rgb(172,5,101)">= </span>multiModuleElement;<br> } <span style="color:rgb(172,5,101)">else </span>{<br> referenceModuleElement <span style="color:rgb(172,5,101)">= </span>jQuery(<span style="color:rgb(117,128,0)">'input[name="popupReferenceModule"]'</span>,tdElement).length <span style="color:rgb(172,5,101)">?<br></span><span style="color:rgb(172,5,101)"> </span>jQuery(<span style="color:rgb(117,128,0)">'input[name="popupReferenceModule"]'</span>,tdElement) <span style="color:rgb(172,5,101)">: </span>jQuery(<span style="color:rgb(117,128,0)">'input.popupReferenceModule'</span>,tdElement);<br> }<br> <span style="color:rgb(172,5,101)">var </span>searchModule <span style="color:rgb(172,5,101)">= </span>referenceModuleElement.val();<br> params.search_module <span style="color:rgb(172,5,101)">= </span>searchModule;<br> <span style="color:rgb(172,5,101)">return </span>params;<br> },<br><br> initializeContactIdList <span style="color:rgb(172,5,101)">: function</span>(form, element) {<br> <span style="color:rgb(172,5,101)">var </span>relatedContactElement <span style="color:rgb(172,5,101)">= this</span>.getRelatedContactElement(form, element);<br> <span style="color:rgb(172,5,101)">if</span>(<span style="color:rgb(172,5,101)">this</span>.isEvents(form) <span style="color:rgb(172,5,101)">&& </span>relatedContactElement.length) {<br> jQuery(<span style="color:rgb(117,128,0)">`<input type="hidden" name=</span>${element}<span style="color:rgb(117,128,0)">_contactidlist />`</span>).appendTo(form).val(relatedContactElement.val().split(<span style="color:rgb(117,128,0)">','</span>).join(<span style="color:rgb(117,128,0)">';'</span>));<br> form.find(<span style="color:rgb(117,128,0)">`[name="</span>${element}<span style="color:rgb(117,128,0)">"]`</span>).attr(<span style="color:rgb(117,128,0)">'name'</span>,<span style="color:rgb(117,128,0)">''</span>);<br> }<br> },<br><br> registerRecordPreSaveEvent <span style="color:rgb(172,5,101)">: function</span>(form) {<br> <span style="color:rgb(172,5,101)">var </span>thisInstance <span style="color:rgb(172,5,101)">= this</span>;<br> <span style="color:rgb(172,5,101)">if</span>(<span style="color:rgb(172,5,101)">typeof </span>form <span style="color:rgb(172,5,101)">=== </span><span style="color:rgb(117,128,0)">"undefined"</span>) {<br> form <span style="color:rgb(172,5,101)">= this</span>.getForm();<br> }<br> <span style="color:rgb(172,5,101)">var </span>InitialFormData <span style="color:rgb(172,5,101)">= </span>form.serialize();<br> app.event.one(Vtiger_Edit_Js.recordPresaveEvent,<span style="color:rgb(172,5,101)">function</span>(e) {<br> thisInstance.registerRecurringEditOptions(e,form,InitialFormData);<br> thisInstance.addInviteesIds(form);<br> thisInstance.resetRecurringDetailsIfDisabled(form);<br> thisInstance.initializeContactIdList(form);<br> });<br> },<br><br><br> <span style="color:rgb(122,142,204);font-style:italic">/**<br></span><span style="color:rgb(122,142,204);font-style:italic"> * Function which will fill the already saved contacts on load<br></span><span style="color:rgb(122,142,204);font-style:italic"> */<br></span><span style="color:rgb(122,142,204);font-style:italic"> </span>fillRelatedContacts <span style="color:rgb(172,5,101)">: function</span>(form, element) {<br> <span style="color:rgb(172,5,101)">if</span>(<span style="color:rgb(172,5,101)">typeof </span>form <span style="color:rgb(172,5,101)">== </span><span style="color:rgb(117,128,0)">"undefined"</span>) {<br> form <span style="color:rgb(172,5,101)">= this</span>.getForm();<br> }<br> <span style="color:rgb(172,5,101)">var </span>relatedContactValue <span style="color:rgb(172,5,101)">= </span>form.find(<span style="color:rgb(117,128,0)">`[name="related_</span>${element}<span style="color:rgb(117,128,0)">_info"]`</span>).data(<span style="color:rgb(117,128,0)">'value'</span>);<br> <span style="color:rgb(172,5,101)">for</span>(<span style="color:rgb(172,5,101)">var </span>contactId <span style="color:rgb(172,5,101)">in </span>relatedContactValue) {<br> <span style="color:rgb(172,5,101)">var </span>info <span style="color:rgb(172,5,101)">= </span>relatedContactValue[contactId];<br> info.text <span style="color:rgb(172,5,101)">= </span><a href="http://info.name" target="_blank">info.name</a>;<br> relatedContactValue[contactId] <span style="color:rgb(172,5,101)">= </span>info;<br> }<br> <span style="color:rgb(172,5,101)">this</span>.getRelatedContactElement(form, element).select2(<span style="color:rgb(117,128,0)">'data'</span>,relatedContactValue);<br> },<br><br><br> addNewContactToRelatedList <span style="color:rgb(172,5,101)">: function</span>(newContactInfo, form, element){<br> <span style="color:rgb(172,5,101)">if</span>(form.length <span style="color:rgb(172,5,101)"><= </span><span style="color:rgb(73,20,148)">0</span>) {<br> form <span style="color:rgb(172,5,101)">= this</span>.getForm();<br> }<br> <span style="color:rgb(172,5,101)">var </span>resultentData <span style="color:rgb(172,5,101)">= new </span>Array();<br><br> <span style="color:rgb(172,5,101)">var </span>element <span style="color:rgb(172,5,101)">= </span>jQuery(<span style="color:rgb(117,128,0)">`#</span>${element}<span style="color:rgb(117,128,0)">_display`</span>, form);<br> <span style="color:rgb(172,5,101)">var </span>selectContainer <span style="color:rgb(172,5,101)">= </span>jQuery(element.data(<span style="color:rgb(117,128,0)">'select2'</span>).container, form);<br> <span style="color:rgb(172,5,101)">var </span>choices <span style="color:rgb(172,5,101)">= </span>selectContainer.find(<span style="color:rgb(117,128,0)">'.select2-search-choice'</span>);<br> choices.each(<span style="color:rgb(172,5,101)">function</span>(index,element){<br> resultentData.push(jQuery(element).data(<span style="color:rgb(117,128,0)">'select2-data'</span>));<br> });<br> <span style="color:rgb(172,5,101)">var </span>select2FormatedResult <span style="color:rgb(172,5,101)">= </span>newContactInfo.data;<br> <span style="color:rgb(172,5,101)">for</span>(<span style="color:rgb(172,5,101)">var </span>i<span style="color:rgb(172,5,101)">=</span><span style="color:rgb(73,20,148)">0 </span>; i <span style="color:rgb(172,5,101)">< </span>select2FormatedResult.length; i<span style="color:rgb(172,5,101)">++</span>) {<br> <span style="color:rgb(172,5,101)">var </span>recordResult <span style="color:rgb(172,5,101)">= </span>select2FormatedResult[i];<br> recordResult.text <span style="color:rgb(172,5,101)">= </span>recordResult.name;<br> resultentData.push( recordResult );<br> }<br> element.select2(<span style="color:rgb(117,128,0)">'data'</span>,resultentData);<br> <span style="color:rgb(172,5,101)">if</span>(form.find(<span style="color:rgb(117,128,0)">'.quickCreateContent'</span>).length <span style="color:rgb(172,5,101)">> </span><span style="color:rgb(73,20,148)">0</span>) {<br> form.find(<span style="color:rgb(117,128,0)">`[name="related_</span>${element}<span style="color:rgb(117,128,0)">_info"]`</span>).data(<span style="color:rgb(117,128,0)">'value'</span>, resultentData);<br> <span style="color:rgb(172,5,101)">var </span>relatedContactElement <span style="color:rgb(172,5,101)">= this</span>.getRelatedContactElement(form);<br> <span style="color:rgb(172,5,101)">if</span>(relatedContactElement.length <span style="color:rgb(172,5,101)">> </span><span style="color:rgb(73,20,148)">0</span>) {<br> jQuery(<span style="color:rgb(117,128,0)">`<input type="hidden" name=</span>${element}<span style="color:rgb(117,128,0)">_contactidlist />`</span>).appendTo(form).val(relatedContactElement.val().split(<span style="color:rgb(117,128,0)">','</span>).join(<span style="color:rgb(117,128,0)">';'</span>));<br> form.find(<span style="color:rgb(117,128,0)">`[name="</span>${element}<span style="color:rgb(117,128,0)">"]`</span>).attr(<span style="color:rgb(117,128,0)">'name'</span>,<span style="color:rgb(117,128,0)">''</span>);<br> }<br> }<br> },<br><br><br> registerBasicEvents <span style="color:rgb(172,5,101)">: function</span>(container) {<br> <span style="color:rgb(172,5,101)">this</span>._super(container);<br> <span style="color:rgb(172,5,101)">this</span>.registerRecordPreSaveEvent(container);<br> <span style="color:rgb(172,5,101)">this</span>.registerRelatedContactSpecificEvents(container);<br> }<br>});<br></pre><div><br></div><div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div>Best Regards,<br><b>Sukhdev Mohan</b> | <b>Software Developer</b><br></div></div></div></div></div></div></div><br></div></div>_______________________________________________<br>
<a href="http://www.vtiger.com/" rel="noreferrer" target="_blank">http://www.vtiger.com/</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">With<br>Best Regards<br>Uma.S<br><div>Vtiger Team</div></div></div>