[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/layouts/vlayout/modules/Reports/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  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  });


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