[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/layouts/vlayout/modules/Documents/resources/ -> List.js (source)

   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  


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1