[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/layouts/vlayout/modules/Campaigns/resources/ -> Detail.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_Detail_Js("Campaigns_Detail_Js",{},{
  11      
  12      loadRelatedList : function(pageNumber){
  13          var relatedListInstance = new Campaigns_RelatedList_Js(this.getRecordId(), app.getModuleName(), this.getSelectedTab(), this.getRelatedModuleName());
  14          var params = {'page':pageNumber};
  15          this.clearSelectedRecords();
  16          relatedListInstance.loadRelatedList(params);
  17      },
  18      
  19      /**
  20       * Function to clear selected records
  21       */
  22      clearSelectedRecords : function() {
  23          jQuery('[name="selectedIds"]').data('selectedIds',"");
  24          jQuery('[name="excludedIds"]').data('excludedIds',"");
  25      },
  26      
  27      registerEventForRelatedListPagination : function(){
  28          var thisInstance = this;
  29          var detailContentsHolder = this.getContentHolder();
  30          detailContentsHolder.on('click','#relatedListNextPageButton',function(e){
  31              var element = jQuery(e.currentTarget);
  32              if(element.attr('disabled') == "disabled"){
  33                  return;
  34              }
  35              var selectedTabElement = thisInstance.getSelectedTab();
  36              var relatedModuleName = thisInstance.getRelatedModuleName();
  37              var relatedController = new Campaigns_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
  38              relatedController.nextPageHandler().then(function(data){
  39                  var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
  40                  if(emailEnabledModule){
  41                      thisInstance.registerEmailEnabledActions();
  42                  }
  43              });
  44          });
  45          detailContentsHolder.on('click','#relatedListPreviousPageButton',function(){
  46              var selectedTabElement = thisInstance.getSelectedTab();
  47              var relatedModuleName = thisInstance.getRelatedModuleName();
  48              var relatedController = new Campaigns_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
  49              relatedController.previousPageHandler().then(function(data){
  50                  var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
  51                  if(emailEnabledModule){
  52                      thisInstance.registerEmailEnabledActions();
  53                  }
  54              });
  55          });
  56          detailContentsHolder.on('click','#relatedListPageJump',function(e){
  57              var selectedTabElement = thisInstance.getSelectedTab();
  58              var relatedModuleName = thisInstance.getRelatedModuleName();
  59              var relatedController = new Campaigns_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
  60              relatedController.getRelatedPageCount();
  61          });
  62          detailContentsHolder.on('click','#relatedListPageJumpDropDown > li',function(e){
  63              e.stopImmediatePropagation();
  64          }).on('keypress','#pageToJump',function(e){
  65              var selectedTabElement = thisInstance.getSelectedTab();
  66              var relatedModuleName = thisInstance.getRelatedModuleName();
  67              var relatedController = new Campaigns_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
  68              relatedController.pageJumpHandler(e).then(function(data){
  69                  var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
  70                  if(emailEnabledModule){
  71                      thisInstance.registerEmailEnabledActions();
  72                  }
  73              });
  74          });
  75      },
  76      
  77      /**
  78       * Function to register Event for Sorting
  79       */
  80      registerEventForRelatedList : function(){
  81          var thisInstance = this;
  82          var detailContentsHolder = this.getContentHolder();
  83          detailContentsHolder.on('click','.relatedListHeaderValues',function(e){
  84              var element = jQuery(e.currentTarget);
  85              var selectedTabElement = thisInstance.getSelectedTab();
  86              var relatedModuleName = thisInstance.getRelatedModuleName();
  87              var relatedController = new Campaigns_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
  88              relatedController.sortHandler(element).then(function(data){
  89                  var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
  90                  if(emailEnabledModule){
  91                      thisInstance.registerEmailEnabledActions();
  92                  }
  93              });
  94          });
  95          
  96          detailContentsHolder.on('click', 'button.selectRelation', function(e){
  97              var selectedTabElement = thisInstance.getSelectedTab();
  98              var relatedModuleName = thisInstance.getRelatedModuleName();
  99              var relatedController = new Campaigns_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
 100              relatedController.showSelectRelationPopup().then(function(data){
 101                  var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
 102                  if(emailEnabledModule){
 103                      thisInstance.registerEmailEnabledActions();
 104                  }
 105              });
 106          });
 107  
 108          detailContentsHolder.on('click', 'a.relationDelete', function(e){
 109              e.stopImmediatePropagation();
 110              var element = jQuery(e.currentTarget);
 111              var instance = Vtiger_Detail_Js.getInstance();
 112              var key = instance.getDeleteMessageKey();
 113              var message = app.vtranslate(key);
 114              Vtiger_Helper_Js.showConfirmationBox({'message' : message}).then(
 115                  function(e) {
 116                      var row = element.closest('tr');
 117                      var relatedRecordid = row.data('id');
 118                      var selectedTabElement = thisInstance.getSelectedTab();
 119                      var relatedModuleName = thisInstance.getRelatedModuleName();
 120                      var relatedController = new Campaigns_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
 121                      relatedController.deleteRelation([relatedRecordid]).then(function(response){
 122                          relatedController.loadRelatedList().then(function(data){
 123                              var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
 124                              var listInstance = Vtiger_List_Js.getInstance();
 125                              var selectedIds = listInstance.readSelectedIds();
 126                              if(selectedIds != 'all'){
 127                                  relatedRecordid = relatedRecordid.toString();
 128                                  var idIndex = jQuery.inArray(relatedRecordid,selectedIds);
 129                                  if(idIndex != -1){
 130                                      selectedIds.splice(idIndex,1);
 131                                      listInstance.writeSelectedIds(selectedIds);
 132                                  }
 133                              }
 134                              if(emailEnabledModule){
 135                                  thisInstance.registerEmailEnabledActions();
 136                              }
 137                          });
 138                      });
 139                  },
 140                  function(error, err){
 141                  }
 142              );
 143          });
 144      },
 145      
 146      /**
 147       * Function to register event for adding related record for module
 148       */
 149      registerEventForAddingRelatedRecord : function(){
 150          var thisInstance = this;
 151          var detailContentsHolder = this.getContentHolder();
 152          detailContentsHolder.on('click','[name="addButton"]',function(e){
 153              var element = jQuery(e.currentTarget);
 154              var selectedTabElement = thisInstance.getSelectedTab();
 155              var relatedModuleName = thisInstance.getRelatedModuleName();
 156              var quickCreateNode = jQuery('#quickCreateModules').find('[data-name="'+ relatedModuleName +'"]');
 157              if(quickCreateNode.length <= 0) {
 158                  window.location.href = element.data('url');
 159                  return;
 160              }
 161              
 162              var relatedController = new Vtiger_RelatedList_Js(thisInstance.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
 163              relatedController.addRelatedRecord(element).then(function(data){
 164                  var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
 165                  if(emailEnabledModule){
 166                      thisInstance.registerEmailEnabledActions();
 167                  }
 168              });
 169          })
 170      },
 171      
 172      /**
 173       * Function to register email enabled actions
 174       */
 175      registerEmailEnabledActions : function() {
 176          var moduleName = app.getModuleName();
 177          var className = moduleName+"_List_Js";
 178          var listInstance = new window[className]();
 179          listInstance.registerEvents();
 180          listInstance.markSelectedRecords();
 181          this.registerRelatedListEvents();
 182      },
 183      
 184      registerEventForRelatedTabClick : function(){
 185          var thisInstance = this;
 186          var detailContentsHolder = thisInstance.getContentHolder();
 187          var detailContainer = detailContentsHolder.closest('div.detailViewInfo');
 188          jQuery('.related', detailContainer).on('click', 'li', function(e, urlAttributes){
 189              var tabElement = jQuery(e.currentTarget);
 190              var element = jQuery('<div></div>');
 191              element.progressIndicator({
 192                  'position':'html',
 193                  'blockInfo' : {
 194                      'enabled' : true,
 195                      'elementToBlock' : detailContainer
 196                  }
 197              });
 198              var url = tabElement.data('url');
 199              if(typeof urlAttributes != 'undefined'){
 200                  var callBack = urlAttributes.callback;
 201                  delete urlAttributes.callback;
 202              }
 203              thisInstance.loadContents(url,urlAttributes).then(
 204                  function(data){
 205                      thisInstance.deSelectAllrelatedTabs();
 206                      thisInstance.markTabAsSelected(tabElement);
 207                      element.progressIndicator({'mode': 'hide'});
 208                      var emailEnabledModule = jQuery(data).find('[name="emailEnabledModules"]').val();
 209                      if(emailEnabledModule){
 210                          var listInstance = new Campaigns_List_Js();
 211                          listInstance.registerEvents();
 212                          thisInstance.registerRelatedListEvents();
 213                      }
 214                      if(typeof callBack == 'function'){ 
 215                          callBack(data);
 216                      }
 217                      //Summary tab is clicked
 218                      if(tabElement.data('linkKey') == thisInstance.detailViewSummaryTabLabel) {
 219                          thisInstance.loadWidgets();
 220                          thisInstance.registerSummaryViewContainerEvents(detailContentsHolder);
 221                      }
 222                  },
 223                  function (){
 224                      //TODO : handle error
 225                      element.progressIndicator({'mode': 'hide'});
 226                  }
 227              );
 228          });
 229      },
 230      
 231      /**
 232       * Function to register related list events
 233       */
 234      registerRelatedListEvents : function(){
 235          var selectedTabElement = this.getSelectedTab();
 236          var relatedModuleName = this.getRelatedModuleName();
 237          var relatedController = new Campaigns_RelatedList_Js(this.getRecordId(), app.getModuleName(), selectedTabElement, relatedModuleName);
 238          relatedController.registerEvents();
 239      },
 240      
 241      registerEvents : function(){
 242          this.registerRelatedListEvents();
 243          this._super();
 244          //Calling registerevents of campaigns list to handle checkboxs click of related records
 245          var listInstance = Vtiger_List_Js.getInstance();
 246          listInstance.registerEvents();
 247      }
 248  })


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