[ 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 Vtiger_RelatedList_Js("Campaigns_RelatedList_Js",{ 11 12 /* 13 * function to trigger send Email 14 * @params: send email url , module name. 15 */ 16 triggerSendEmail : function(massActionUrl, module){ 17 var params = {"relatedLoad" : true}; 18 //To get the current module 19 params['sourceModule'] = app.getModuleName(); 20 //to get current campaign id 21 params['sourceRecord'] = jQuery('#recordId').val(); 22 Vtiger_List_Js.triggerSendEmail(massActionUrl, module, params); 23 } 24 },{ 25 26 loadRelatedList : function(params){ 27 var aDeferred = jQuery.Deferred(); 28 var thisInstance = this; 29 this._super(params).then(function(data){ 30 thisInstance.registerEvents(); 31 var moduleName = app.getModuleName(); 32 var className = moduleName+"_List_Js"; 33 var listInstance = new window[className](); 34 listInstance.registerEvents(); 35 aDeferred.resolve(data); 36 }); 37 return aDeferred.promise(); 38 }, 39 40 getCompleteParams : function(){ 41 var params = {}; 42 params['view'] = "Detail"; 43 params['module'] = this.parentModuleName; 44 params['record'] = this.getParentId(), 45 params['relatedModule'] = this.relatedModulename, 46 params['sortorder'] = this.getSortOrder(), 47 params['orderby'] = this.getOrderBy(), 48 params['page'] = this.getCurrentPageNum(); 49 params['mode'] = "showRelatedList", 50 params['selectedIds'] = jQuery('#selectedIds').data('selectedIds'); 51 params['excludedIds'] = jQuery('#excludedIds').data('excludedIds'); 52 53 return params; 54 }, 55 56 changeCustomFilterElementView : function() { 57 var filterSelectElement = jQuery('#recordsFilter'); 58 if(filterSelectElement.length > 0){ 59 app.showSelect2ElementView(filterSelectElement,{ 60 formatSelection : function(data){ 61 var resultContainer = jQuery('<span></span>'); 62 resultContainer.append(jQuery(jQuery('.filterImage').clone().get(0)).show()); 63 resultContainer.append(data.text); 64 return resultContainer; 65 } 66 }); 67 68 var select2Instance = filterSelectElement.data('select2'); 69 select2Instance.dropdown.append(jQuery('span.filterActionsDiv')); 70 } 71 }, 72 /** 73 * Function to register change event for custom filter 74 */ 75 76 registerChangeCustomFilterEvent : function(){ 77 var filterSelectElement = jQuery('#recordsFilter'); 78 filterSelectElement.change(function(e){ 79 var element = jQuery(e.currentTarget); 80 var cvId = element.find('option:selected').data('id'); 81 var relatedModuleName = jQuery('.relatedModuleName').val(); 82 var params = { 83 'sourceRecord' : jQuery('#recordId').val(), 84 'relatedModule' :relatedModuleName, 85 'viewId' : cvId, 86 'module' : app.getModuleName(), 87 'action': "RelationAjax", 88 'mode' : 'addRelationsFromRelatedModuleViewId' 89 } 90 91 var progressIndicatorElement = jQuery.progressIndicator({ 92 'position' : 'html', 93 'blockInfo' : { 94 'enabled' : true 95 } 96 }); 97 AppConnector.request(params).then( 98 function(responseData){ 99 progressIndicatorElement.progressIndicator({ 100 'mode' : 'hide' 101 }) 102 if(responseData != null){ 103 var message = app.vtranslate('JS_NO_RECORDS_RELATED_TO_THIS_FILTER'); 104 var params = { 105 text: message, 106 type: 'info' 107 }; 108 Vtiger_Helper_Js.showMessage(params); 109 } else { 110 Vtiger_Detail_Js.reloadRelatedList(); 111 } 112 }, 113 114 function(textStatus, errorThrown){ 115 } 116 ); 117 }) 118 119 }, 120 121 /** 122 * Function to edit related status for email enabled modules of campaigns 123 */ 124 registerEventToEditRelatedStatus : function(){ 125 var thisInstance = this; 126 jQuery('.currentStatus').on('click',function(e){ 127 e.stopImmediatePropagation(); 128 var element = jQuery(e.currentTarget); 129 element.addClass('open'); 130 }); 131 var statusDropdown = jQuery('.currentStatus').find('.dropdown-menu'); 132 statusDropdown.on('click','a',function(e){ 133 e.stopImmediatePropagation(); 134 var element = jQuery(e.currentTarget); 135 var liContainer = element.closest('li'); 136 var currentStatus = element.closest('.currentStatus'); 137 var selectedStatusId = liContainer.attr('id'); 138 var selectedStatusValue = liContainer.data('status'); 139 var relatedRecordId = element.closest('tr').data('id'); 140 var params = { 141 'relatedModule' : thisInstance.relatedModulename, 142 'relatedRecord' : relatedRecordId, 143 'status' : selectedStatusId, 144 'module' : app.getModuleName(), 145 'action' : 'RelationAjax', 146 'sourceRecord' : thisInstance.parentRecordId, 147 'mode' : 'updateStatus' 148 } 149 element.progressIndicator({}); 150 AppConnector.request(params).then( 151 function(responseData){ 152 if(responseData.result[0]){ 153 element.progressIndicator({'mode': 'hide'}); 154 currentStatus.find('.statusValue').text(selectedStatusValue); 155 currentStatus.removeClass('open'); 156 } 157 }, 158 159 function(textStatus, errorThrown){ 160 } 161 ); 162 }); 163 }, 164 165 registerEvents : function(){ 166 this.changeCustomFilterElementView(); 167 this.registerChangeCustomFilterEvent(); 168 this.registerEventToEditRelatedStatus(); 169 } 170 })
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 |