[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/layouts/vlayout/modules/Campaigns/resources/ -> RelatedList.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_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  })


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