[ 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 Vtiger_List_Js("Reports_List_Js",{ 10 11 listInstance : false, 12 13 addReport : function(url){ 14 var listInstance = Reports_List_Js.listInstance; 15 window.location.href=url+'&folder='+listInstance.getCurrentCvId(); 16 }, 17 18 triggerAddFolder : function(url) { 19 var params = url; 20 var progressIndicatorElement = jQuery.progressIndicator(); 21 AppConnector.request(params).then( 22 function(data) { 23 progressIndicatorElement.progressIndicator({'mode' : 'hide'}); 24 var callBackFunction = function(data){ 25 jQuery('#addFolder').validationEngine({ 26 // to prevent the page reload after the validation has completed 27 'onValidationComplete' : function(form,valid){ 28 return valid; 29 } 30 }); 31 Reports_List_Js.listInstance.folderSubmit().then(function(data){ 32 if(data.success){ 33 var result = data.result; 34 if(result.success){ 35 //TODO use pines alert for showing folder has saved 36 app.hideModalWindow(); 37 var info = result.info; 38 Reports_List_Js.listInstance.updateCustomFilter(info); 39 } else { 40 var result = result.message; 41 var folderNameElement = jQuery('#foldername'); 42 folderNameElement.validationEngine('showPrompt', result , 'error','topLeft',true); 43 } 44 } else { 45 app.hideModalWindow(); 46 var params = { 47 title : app.vtranslate('JS_ERROR'), 48 text : data.error.message 49 } 50 Vtiger_Helper_Js.showPnotify(params); 51 } 52 }); 53 }; 54 app.showModalWindow(data,function(data){ 55 if(typeof callBackFunction == 'function'){ 56 callBackFunction(data); 57 } 58 }); 59 } 60 ) 61 }, 62 63 massDelete : function(url) { 64 var listInstance = Reports_List_Js.listInstance; 65 var validationResult = listInstance.checkListRecordSelected(); 66 if(validationResult != true){ 67 // Compute selected ids, excluded ids values, along with cvid value and pass as url parameters 68 var selectedIds = listInstance.readSelectedIds(true); 69 var excludedIds = listInstance.readExcludedIds(true); 70 var cvId = listInstance.getCurrentCvId(); 71 72 var message = app.vtranslate('LBL_DELETE_CONFIRMATION'); 73 Vtiger_Helper_Js.showConfirmationBox({'message' : message}).then( 74 function(e) { 75 var deleteURL = url+'&viewname='+cvId+'&selected_ids='+selectedIds+'&excluded_ids='+excludedIds; 76 var deleteMessage = app.vtranslate('JS_RECORDS_ARE_GETTING_DELETED'); 77 var progressIndicatorElement = jQuery.progressIndicator({ 78 'message' : deleteMessage, 79 'position' : 'html', 80 'blockInfo' : { 81 'enabled' : true 82 } 83 }); 84 AppConnector.request(deleteURL).then( 85 function(data) { 86 progressIndicatorElement.progressIndicator({ 87 'mode' : 'hide' 88 }) 89 if(data){ 90 listInstance.massActionPostOperations(data); 91 } 92 }); 93 }, 94 function(error, err){ 95 } 96 ); 97 } else { 98 listInstance.noRecordSelectedAlert(); 99 } 100 101 }, 102 103 massMove : function(url){ 104 var listInstance = Reports_List_Js.listInstance; 105 var validationResult = listInstance.checkListRecordSelected(); 106 if(validationResult != true){ 107 var selectedIds = listInstance.readSelectedIds(true); 108 var excludedIds = listInstance.readExcludedIds(true); 109 var cvId = listInstance.getCurrentCvId(); 110 var postData = { 111 "selected_ids":selectedIds, 112 "excluded_ids" : excludedIds, 113 "viewname" : cvId 114 }; 115 116 var params = { 117 "url":url, 118 "data" : postData 119 }; 120 var progressIndicatorElement = jQuery.progressIndicator(); 121 AppConnector.request(params).then( 122 function(data) { 123 progressIndicatorElement.progressIndicator({'mode' : 'hide'}); 124 var callBackFunction = function(data){ 125 var reportsListInstance = new Reports_List_Js(); 126 127 reportsListInstance.moveReports().then(function(data){ 128 if(data){ 129 listInstance.massActionPostOperations(data); 130 } 131 }); 132 } 133 app.showModalWindow(data,callBackFunction); 134 } 135 ) 136 } else{ 137 listInstance.noRecordSelectedAlert(); 138 } 139 140 } 141 142 },{ 143 144 init : function(){ 145 Reports_List_Js.listInstance = this; 146 }, 147 148 folderSubmit : function(){ 149 var aDeferred = jQuery.Deferred(); 150 jQuery('#addFolder').on('submit',function(e){ 151 var validationResult = jQuery(e.currentTarget).validationEngine('validate'); 152 if(validationResult == true){ 153 var formData = jQuery(e.currentTarget).serializeFormData(); 154 AppConnector.request(formData).then( 155 function(data){ 156 aDeferred.resolve(data); 157 } 158 ); 159 } 160 e.preventDefault(); 161 }); 162 return aDeferred.promise(); 163 }, 164 165 moveReports : function(){ 166 var aDeferred = jQuery.Deferred(); 167 jQuery('#moveReports').on('submit',function(e){ 168 var formData = jQuery(e.currentTarget).serializeFormData(); 169 AppConnector.request(formData).then( 170 function(data){ 171 aDeferred.resolve(data); 172 } 173 ); 174 e.preventDefault(); 175 }); 176 return aDeferred.promise(); 177 }, 178 179 updateCustomFilter : function (info){ 180 var folderId = info.folderId; 181 var customFilter = jQuery("#customFilter"); 182 var constructedOption = this.constructOptionElement(info); 183 var optionId = 'filterOptionId_'+folderId; 184 var optionElement = jQuery('#'+optionId); 185 if(optionElement.length > 0){ 186 optionElement.replaceWith(constructedOption); 187 customFilter.trigger("liszt:updated"); 188 } else { 189 customFilter.find('#foldersBlock').append(constructedOption).trigger("liszt:updated"); 190 } 191 }, 192 193 constructOptionElement : function(info){ 194 return '<option data-editable="'+info.isEditable+'" data-deletable="'+info.isDeletable+'" data-editurl="'+info.editURL+'" data-deleteurl="'+info.deleteURL+'" class="filterOptionId_'+info.folderId+'" id="filterOptionId_'+info.folderId+'" value="'+info.folderId+'" data-id="'+info.folderId+'">'+info.folderName+'</option>'; 195 196 }, 197 198 /* 199 * Function to perform the operations after the mass action 200 */ 201 massActionPostOperations : function(data){ 202 var thisInstance = this; 203 var cvId = this.getCurrentCvId(); 204 if(data.success){ 205 var module = app.getModuleName(); 206 AppConnector.request('index.php?module='+module+'&view=List&viewname='+cvId).then( 207 function(data) { 208 jQuery('#recordsCount').val(''); 209 jQuery('#totalPageCount').text(''); 210 app.hideModalWindow(); 211 var listViewContainer = thisInstance.getListViewContentContainer(); 212 listViewContainer.html(data); 213 jQuery('#deSelectAllMsg').trigger('click'); 214 thisInstance.calculatePages().then(function(){ 215 thisInstance.updatePagination(); 216 }); 217 }); 218 } else { 219 app.hideModalWindow(); 220 var params = { 221 title : app.vtranslate('JS_LBL_PERMISSION'), 222 text : data.error.message+ ' : ' + data.error.code 223 } 224 Vtiger_Helper_Js.showPnotify(params); 225 } 226 }, 227 /* 228 * function to delete the folder 229 */ 230 deleteFolder : function(event,url){ 231 var thisInstance =this; 232 AppConnector.request(url).then( 233 function(data){ 234 if(data.success) { 235 var chosenOption = jQuery(event.currentTarget).closest('.select2-result-selectable'); 236 var selectOption = thisInstance.getSelectOptionFromChosenOption(chosenOption); 237 selectOption.remove(); 238 var customFilterElement = thisInstance.getFilterSelectElement(); 239 customFilterElement.trigger("liszt:updated"); 240 var defaultCvid = customFilterElement.find('option:first').val(); 241 customFilterElement.select2("val", defaultCvid); 242 customFilterElement.trigger('change'); 243 } else { 244 app.hideModalWindow(); 245 var params = { 246 title : app.vtranslate('JS_INFORMATION'), 247 text : data.error.message 248 } 249 Vtiger_Helper_Js.showPnotify(params); 250 } 251 } 252 ) 253 }, 254 /* 255 * Function to register the click event for edit filter 256 */ 257 registerEditFilterClickEvent : function(){ 258 var thisInstance = this; 259 var listViewFilterBlock = this.getFilterBlock(); 260 listViewFilterBlock.on('mouseup','li i.editFilter',function(event){ 261 var liElement = jQuery(event.currentTarget).closest('.select2-result-selectable'); 262 var currentOptionElement = thisInstance.getSelectOptionFromChosenOption(liElement); 263 var editUrl = currentOptionElement.data('editurl'); 264 Reports_List_Js.triggerAddFolder(editUrl); 265 event.stopPropagation(); 266 }); 267 }, 268 269 /* 270 * Function to register the click event for delete filter 271 */ 272 registerDeleteFilterClickEvent: function(){ 273 var thisInstance = this; 274 var listViewFilterBlock = this.getFilterBlock(); 275 //used mouseup event to stop the propagation of customfilter select change event. 276 listViewFilterBlock.on('mouseup','li i.deleteFilter',function(event){ 277 // To close the custom filter Select Element drop down 278 thisInstance.getFilterSelectElement().data('select2').close(); 279 var liElement = jQuery(event.currentTarget).closest('.select2-result-selectable'); 280 var message = app.vtranslate('JS_LBL_ARE_YOU_SURE_YOU_WANT_TO_DELETE'); 281 Vtiger_Helper_Js.showConfirmationBox({'message' : message}).then( 282 function(e) { 283 var currentOptionElement = thisInstance.getSelectOptionFromChosenOption(liElement); 284 var deleteUrl = currentOptionElement.data('deleteurl'); 285 thisInstance.deleteFolder(event,deleteUrl); 286 }, 287 function(error, err){ 288 } 289 ); 290 event.stopPropagation(); 291 }); 292 }, 293 294 registerEvents : function(){ 295 this._super(); 296 } 297 });
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 |