[ 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_List_Js("Documents_List_Js", { 11 12 triggerAddFolder : function(url) { 13 var params = url; 14 var progressIndicatorElement = jQuery.progressIndicator(); 15 AppConnector.request(params).then( 16 function(data) { 17 progressIndicatorElement.progressIndicator({'mode' : 'hide'}); 18 var callBackFunction = function(data){ 19 jQuery('#addDocumentsFolder').validationEngine({ 20 // to prevent the page reload after the validation has completed 21 'onValidationComplete' : function(form,valid){ 22 return valid; 23 } 24 }); 25 Vtiger_List_Js.getInstance().folderSubmit().then(function(data){ 26 app.hideModalWindow(); 27 if(data.success){ 28 var result = data.result; 29 if(result.success){ 30 var info = result.info; 31 Vtiger_List_Js.getInstance().updateCustomFilter(info); 32 var params = { 33 title : app.vtranslate('JS_NEW_FOLDER'), 34 text : result.message, 35 delay: '2000', 36 type: 'success' 37 } 38 Vtiger_Helper_Js.showPnotify(params); 39 } else { 40 var result = result.message; 41 var folderNameElement = jQuery('#documentsFolderName'); 42 folderNameElement.validationEngine('showPrompt', result , 'error','topLeft',true); 43 } 44 } else { 45 var params = { 46 title : app.vtranslate('JS_ERROR'), 47 text : data.error.message, 48 type: 'error' 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 massMove : function(url){ 64 var listInstance = Vtiger_List_Js.getInstance(); 65 var validationResult = listInstance.checkListRecordSelected(); 66 if(validationResult != true){ 67 var selectedIds = listInstance.readSelectedIds(true); 68 var excludedIds = listInstance.readExcludedIds(true); 69 var cvId = listInstance.getCurrentCvId(); 70 var postData = { 71 "selected_ids":selectedIds, 72 "excluded_ids" : excludedIds, 73 "viewname" : cvId 74 }; 75 76 var searchValue = listInstance.getAlphabetSearchValue(); 77 78 if(searchValue.length > 0) { 79 postData['search_key'] = listInstance.getAlphabetSearchField(); 80 postData['search_value'] = searchValue; 81 postData['operator'] = "s"; 82 } 83 84 var params = { 85 "url":url, 86 "data" : postData 87 }; 88 var progressIndicatorElement = jQuery.progressIndicator(); 89 AppConnector.request(params).then( 90 function(data) { 91 progressIndicatorElement.progressIndicator({'mode' : 'hide'}); 92 var callBackFunction = function(data){ 93 94 listInstance.moveDocuments().then(function(data){ 95 if(data){ 96 var result = data.result; 97 if(result.success){ 98 app.hideModalWindow(); 99 var params = { 100 title : app.vtranslate('JS_MOVE_DOCUMENTS'), 101 text : result.message, 102 delay: '2000', 103 type: 'success' 104 } 105 Vtiger_Helper_Js.showPnotify(params); 106 var urlParams = listInstance.getDefaultParams(); 107 listInstance.getListViewRecords(urlParams); 108 } else { 109 var params = { 110 title : app.vtranslate('JS_OPERATION_DENIED'), 111 text : result.message, 112 delay: '2000', 113 type: 'error' 114 } 115 Vtiger_Helper_Js.showPnotify(params); 116 } 117 } 118 }); 119 } 120 app.showModalWindow(data,callBackFunction); 121 } 122 ) 123 } else{ 124 listInstance.noRecordSelectedAlert(); 125 } 126 127 } 128 129 } ,{ 130 131 132 folderSubmit : function() { 133 var aDeferred = jQuery.Deferred(); 134 jQuery('#addDocumentsFolder').on('submit',function(e){ 135 var validationResult = jQuery(e.currentTarget).validationEngine('validate'); 136 if(validationResult == true){ 137 var formData = jQuery(e.currentTarget).serializeFormData(); 138 var foldername = jQuery.trim(formData.foldername); 139 formData.foldername = foldername; 140 AppConnector.request(formData).then( 141 function(data){ 142 aDeferred.resolve(data); 143 } 144 ); 145 } 146 e.preventDefault(); 147 }); 148 return aDeferred.promise(); 149 }, 150 151 updateCustomFilter : function (info){ 152 var folderId = info.folderId; 153 var customFilter = jQuery("#customFilter"); 154 var constructedOption = this.constructOptionElement(info); 155 var optionId = 'filterOptionId_'+folderId; 156 var optionElement = jQuery('#'+optionId); 157 if(optionElement.length > 0){ 158 optionElement.replaceWith(constructedOption); 159 customFilter.trigger("liszt:updated"); 160 } else { 161 customFilter.find('#foldersBlock').append(constructedOption).trigger("liszt:updated"); 162 } 163 }, 164 165 constructOptionElement : function(info){ 166 var cvId = this.getCurrentCvId(); 167 return '<option data-deletable="1" data-folderid="'+info.folderid+'" data-foldername="'+info.folderName+'" class="filterOptionId_folder'+info.folderid+' folderOption" id="filterOptionId_folder'+info.folderid+'" data-id="'+cvId+'" >'+info.folderName+'</option>'; 168 169 }, 170 171 moveDocuments : function(){ 172 var aDeferred = jQuery.Deferred(); 173 jQuery('#moveDocuments').on('submit',function(e){ 174 var formData = jQuery(e.currentTarget).serializeFormData(); 175 AppConnector.request(formData).then( 176 function(data){ 177 aDeferred.resolve(data); 178 } 179 ); 180 e.preventDefault(); 181 }); 182 return aDeferred.promise(); 183 }, 184 185 getDefaultParams : function() { 186 var search_value = jQuery('#customFilter').find('option:selected').data('foldername'); 187 var customParams = { 188 'folder_id' : 'folderid', 189 'folder_value' : search_value 190 } 191 var params = this._super(); 192 jQuery.extend(params,customParams); 193 return params; 194 }, 195 196 registerDeleteFilterClickEvent: function(){ 197 var thisInstance = this; 198 var listViewFilterBlock = this.getFilterBlock(); 199 if(listViewFilterBlock != false){ 200 //used mouseup event to stop the propagation of customfilter select change event. 201 listViewFilterBlock.on('mouseup','li i.deleteFilter',function(event){ 202 //to close the dropdown 203 thisInstance.getFilterSelectElement().data('select2').close(); 204 var liElement = jQuery(event.currentTarget).closest('.select2-result-selectable'); 205 var message = app.vtranslate('JS_LBL_ARE_YOU_SURE_YOU_WANT_TO_DELETE'); 206 if(liElement.hasClass('folderOption')){ 207 if(liElement.find('.deleteFilter').hasClass('dull')){ 208 Vtiger_Helper_Js.showPnotify(app.vtranslate('JS_FOLDER_IS_NOT_EMPTY')); 209 return; 210 } else { 211 Vtiger_Helper_Js.showConfirmationBox({'message' : message}).then( 212 function(e) { 213 var currentOptionElement = thisInstance.getSelectOptionFromChosenOption(liElement); 214 var folderId = currentOptionElement.data('folderid'); 215 var params = { 216 module : app.getModuleName(), 217 mode : 'delete', 218 action : 'Folder', 219 folderid : folderId 220 } 221 AppConnector.request(params).then(function(data) { 222 if(data.success) { 223 currentOptionElement.remove(); 224 thisInstance.getFilterSelectElement().trigger('change'); 225 } 226 }) 227 }, 228 function(error, err){ 229 } 230 ); 231 } 232 233 } else { 234 Vtiger_Helper_Js.showConfirmationBox({'message' : message}).then( 235 function(e) { 236 var currentOptionElement = thisInstance.getSelectOptionFromChosenOption(liElement); 237 var deleteUrl = currentOptionElement.data('deleteurl'); 238 window.location.href = deleteUrl; 239 }, 240 function(error, err){ 241 } 242 ); 243 } 244 }); 245 } 246 }, 247 248 performFilterImageActions : function(liElement) { 249 jQuery('.filterActionImages').clone(true,true).removeClass('filterActionImages').addClass('filterActionImgs').appendTo(liElement.find('.select2-result-label')).show(); 250 var currentOptionElement = this.getSelectOptionFromChosenOption(liElement); 251 var deletable = currentOptionElement.data('deletable'); 252 if(deletable != '1'){ 253 if(liElement.hasClass('folderOption')){ 254 liElement.find('.deleteFilter').addClass('dull'); 255 }else{ 256 liElement.find('.deleteFilter').remove(); 257 } 258 } 259 if(liElement.hasClass('defaultFolder')) { 260 liElement.find('.deleteFilter').remove(); 261 } 262 var editable = currentOptionElement.data('editable'); 263 if(editable != '1'){ 264 liElement.find('.editFilter').remove(); 265 } 266 var pending = currentOptionElement.data('pending'); 267 if(pending != '1'){ 268 liElement.find('.approveFilter').remove(); 269 } 270 var approve = currentOptionElement.data('public'); 271 if(approve != '1'){ 272 liElement.find('.denyFilter').remove(); 273 } 274 } 275 276 }); 277 278 Vtiger_Base_Validator_Js("Vtiger_FolderName_Validator_Js",{ 279 280 /** 281 *Function which invokes field validation 282 *@param accepts field element as parameter 283 * @return error if validation fails true on success 284 */ 285 invokeValidation: function(field, rules, i, options){ 286 var instance = new Vtiger_FieldLabel_Validator_Js(); 287 instance.setElement(field); 288 var response = instance.validate(); 289 if(response != true){ 290 return instance.getError(); 291 } 292 } 293 294 },{ 295 /** 296 * Function to validate the field label 297 * @return true if validation is successfull 298 * @return false if validation error occurs 299 */ 300 validate: function(){ 301 var fieldValue = this.getFieldValue(); 302 return this.validateValue(fieldValue); 303 }, 304 305 validateValue : function(fieldValue){ 306 var specialChars = /[&\<\>\:\'\"\,\_]/ ; 307 308 if (specialChars.test(fieldValue)) { 309 var errorInfo = app.vtranslate('JS_SPECIAL_CHARACTERS')+" & < > ' \" : , _ "+app.vtranslate('JS_NOT_ALLOWED'); 310 this.setError(errorInfo); 311 return false; 312 } 313 return true; 314 } 315 }); 316 317
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 |