[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/pkg/vtiger/modules/Projects/Project/templates/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("Project_Detail_Js",{},{
  11      
  12      detailViewRecentTicketsTabLabel : 'Trouble Tickets',
  13      detailViewRecentTasksTabLabel : 'Project Tasks',
  14      detailViewRecentMileStonesLabel : 'Project Milestones',
  15      
  16      /**
  17       * Function to register event for create related record
  18       * in summary view widgets
  19       */
  20      registerSummaryViewContainerEvents : function(summaryViewContainer){
  21          this._super(summaryViewContainer);
  22          this.registerStatusChangeEventForWidget();
  23          this.registerEventForAddingModuleRelatedRecordFromSummaryWidget();
  24      },
  25      
  26      /**
  27      * Function to get records according to ticket status
  28      */
  29      registerStatusChangeEventForWidget : function(){
  30          var thisInstance = this;
  31          jQuery('[name="ticketstatus"],[name="projecttaskstatus"],[name="projecttaskprogress"]').on('change',function(e){
  32              var picklistName = this.name;
  33              var statusCondition = {};
  34              var params = {};
  35              var currentElement = jQuery(e.currentTarget);
  36              var summaryWidgetContainer = currentElement.closest('.summaryWidgetContainer');
  37              var widgetDataContainer = summaryWidgetContainer.find('.widget_contents');
  38              var referenceModuleName = widgetDataContainer.find('[name="relatedModule"]').val();
  39              var recordId = thisInstance.getRecordId();
  40              var module = app.getModuleName();
  41              var selectedStatus = currentElement.find('option:selected').text();
  42              if(selectedStatus != "Select Status" && referenceModuleName == "HelpDesk"){
  43                  statusCondition['vtiger_troubletickets.status'] = selectedStatus;
  44                  params['whereCondition'] = statusCondition;
  45              } else if(selectedStatus != app.vtranslate('JS_LBL_SELECT_STATUS') && referenceModuleName == "ProjectTask" && picklistName == 'projecttaskstatus'){
  46                  statusCondition['vtiger_projecttask.projecttaskstatus'] = selectedStatus;
  47                  params['whereCondition'] = statusCondition;
  48              }
  49              else if(selectedStatus != app.vtranslate('JS_LBL_SELECT_PROGRESS') && referenceModuleName == "ProjectTask" && picklistName == 'projecttaskprogress'){
  50                  statusCondition['vtiger_projecttask.projecttaskprogress'] = selectedStatus;
  51                  params['whereCondition'] = statusCondition;
  52              }
  53              
  54              params['record'] = recordId;
  55              params['view'] = 'Detail';
  56              params['module'] = module;
  57              params['page'] = widgetDataContainer.find('[name="page"]').val();
  58              params['limit'] = widgetDataContainer.find('[name="pageLimit"]').val();
  59              params['relatedModule'] = referenceModuleName;
  60              params['mode'] = 'showRelatedRecords';
  61              AppConnector.request(params).then(
  62                  function(data) {
  63                      widgetDataContainer.html(data);
  64                  }
  65              );
  66         })
  67      },
  68      
  69      /**
  70       * Function to add module related record from summary widget
  71       */
  72      registerEventForAddingModuleRelatedRecordFromSummaryWidget : function(){
  73          var thisInstance = this;
  74          jQuery('#createProjectMileStone,#createProjectTask').on('click',function(e){
  75              var currentElement = jQuery(e.currentTarget);
  76              var summaryWidgetContainer = currentElement.closest('.summaryWidgetContainer');
  77              var widgetDataContainer = summaryWidgetContainer.find('.widget_contents');
  78              var referenceModuleName = widgetDataContainer.find('[name="relatedModule"]').val();
  79              var quickcreateUrl = currentElement.data('url');
  80              var parentId = thisInstance.getRecordId();
  81              var quickCreateParams = {};
  82              var relatedField = currentElement.data('parentRelatedField');
  83              var moduleName = currentElement.closest('.widget_header').find('[name="relatedModule"]').val();
  84              var relatedParams = {};
  85              relatedParams[relatedField] = parentId;
  86              
  87              var postQuickCreateSave = function(data) {
  88                  thisInstance.postSummaryWidgetAddRecord(data,currentElement);
  89                  if(referenceModuleName == "ProjectTask"){
  90                      thisInstance.loadModuleSummary();
  91                  }
  92              }
  93              
  94              if(typeof relatedField != "undefined"){
  95                  quickCreateParams['data'] = relatedParams;
  96              }
  97              quickCreateParams['noCache'] = true;
  98              quickCreateParams['callbackFunction'] = postQuickCreateSave;
  99              var progress = jQuery.progressIndicator();
 100              var headerInstance = new Vtiger_Header_Js();
 101              headerInstance.getQuickCreateForm(quickcreateUrl, moduleName,quickCreateParams).then(function(data){
 102                  headerInstance.handleQuickCreateData(data,quickCreateParams);
 103                  progress.progressIndicator({'mode':'hide'});
 104              });
 105          })
 106      },
 107      
 108      /**
 109       * Function to load module summary of Projects
 110       */
 111      loadModuleSummary : function(){
 112          var summaryParams = {};
 113          summaryParams['module'] = app.getModuleName();
 114          summaryParams['view'] = "Detail";
 115          summaryParams['mode'] = "showModuleSummaryView";
 116          summaryParams['record'] = jQuery('#recordId').val();
 117          
 118          AppConnector.request(summaryParams).then(
 119              function(data) {
 120                  jQuery('.summaryView').html(data);
 121              }
 122          );
 123      },
 124      
 125      registerEvents : function(){
 126          var detailContentsHolder = this.getContentHolder();
 127          var thisInstance = this;
 128          this._super();
 129          
 130          detailContentsHolder.on('click','.moreRecentMilestones', function(){
 131              var recentMilestonesTab = thisInstance.getTabByLabel(thisInstance.detailViewRecentMileStonesLabel);
 132              recentMilestonesTab.trigger('click');
 133          });
 134          
 135          detailContentsHolder.on('click','.moreRecentTickets', function(){
 136              var recentTicketsTab = thisInstance.getTabByLabel(thisInstance.detailViewRecentTicketsTabLabel);
 137              recentTicketsTab.trigger('click');
 138          });
 139          
 140          detailContentsHolder.on('click','.moreRecentTasks', function(){
 141              var recentTasksTab = thisInstance.getTabByLabel(thisInstance.detailViewRecentTasksTabLabel);
 142              recentTasksTab.trigger('click');
 143          });
 144      }
 145  })


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