[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/layouts/vlayout/modules/Settings/Vtiger/resources/ -> CustomRecordNumbering.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  jQuery.Class('Settings_CustomRecordNumbering_Js', {}, {
  11      
  12      form : false,
  13      getForm : function(){
  14          if(this.form == false){
  15              this.form = jQuery('#EditView');
  16          }
  17          return this.form;
  18      },
  19      
  20      /**
  21       * Function to register change event for source module field
  22       */
  23      registerOnChangeEventOfSourceModule :function(){
  24          var editViewForm = this.getForm();
  25          editViewForm.find('[name="sourceModule"]').on('change',function(e){
  26              jQuery('.saveButton').removeAttr('disabled');
  27              var element = jQuery(e.currentTarget);
  28              var params = {};
  29              var sourceModule = element.val();
  30  
  31              params = {
  32                  'module' : app.getModuleName(),
  33                  'parent' : app.getParentModuleName(),
  34                  'action' : "CustomRecordNumberingAjax",
  35                  'mode' : "getModuleCustomNumberingData",
  36                  'sourceModule' : sourceModule
  37              }
  38              
  39              AppConnector.request(params).then(
  40                      function(data){
  41                          if(data){
  42                              editViewForm.find('[name="prefix"]').val(data.result.prefix);
  43                              editViewForm.find('[name="sequenceNumber"]').val(data.result.sequenceNumber);
  44                              editViewForm.find('[name="sequenceNumber"]').data('oldSequenceNumber',data.result.sequenceNumber);
  45                          }
  46                      },
  47                      function(jqXHR,textStatus, errorThrown){
  48              })
  49          })
  50      },
  51      
  52      /**
  53       * Function to register event for saving module custom numbering
  54       */
  55      saveModuleCustomNumbering : function(){
  56          if(jQuery('.saveButton').attr("disabled")){
  57              return;
  58          }
  59          var editViewForm = this.getForm();
  60          var params = {}
  61          var sourceModule = editViewForm.find('[name="sourceModule"]').val();
  62          var sourceModuleLabel = editViewForm.find('option[value="'+sourceModule+'"]').text();
  63          var prefix = editViewForm.find('[name="prefix"]');
  64          var currentPrefix = jQuery.trim(prefix.val());
  65          var oldPrefix = prefix.data('oldPrefix');
  66          var sequenceNumberElement = editViewForm.find('[name="sequenceNumber"]');
  67          var sequenceNumber = sequenceNumberElement.val();
  68          var oldSequenceNumber = sequenceNumberElement.data('oldSequenceNumber');
  69  
  70          if((sequenceNumber < oldSequenceNumber) && (currentPrefix == oldPrefix)){
  71              var errorMessage = app.vtranslate('JS_SEQUENCE_NUMBER_MESSAGE')+" "+oldSequenceNumber;
  72              sequenceNumberElement.validationEngine('showPrompt', errorMessage , 'error','topLeft',true);
  73              return;
  74          }
  75  
  76          params = {
  77              'module' : app.getModuleName(),
  78              'parent' : app.getParentModuleName(),
  79              'action' : "CustomRecordNumberingAjax",
  80              'mode' : "saveModuleCustomNumberingData",
  81              'sourceModule' : sourceModule,
  82              'prefix' : currentPrefix,
  83              'sequenceNumber' : sequenceNumber
  84          }
  85          
  86          jQuery('.saveButton').attr("disabled","disabled");
  87          AppConnector.request(params).then(
  88                  function(data){
  89                      var params;
  90                      var successfullSaveMessage = app.vtranslate('JS_RECORD_NUMBERING_SAVED_SUCCESSFULLY_FOR')+" "+sourceModuleLabel;
  91                      if(data.success == true){
  92                          params = {
  93                              text: successfullSaveMessage
  94                          };
  95                          Settings_Vtiger_Index_Js.showMessage(params);
  96                      }else{
  97                          var errorMessage = currentPrefix+" "+app.vtranslate(data.error.message);
  98                          params = {
  99                              text: errorMessage,
 100                              type: 'error'
 101                          };
 102                          Settings_Vtiger_Index_Js.showMessage(params);
 103                      }
 104                  },
 105                  function(jqXHR,textStatus, errorThrown){
 106          })
 107      },
 108      
 109      /**
 110       * Function to handle update record with the given sequence number
 111       */
 112      registerEventToUpdateRecordsWithSequenceNumber : function(){
 113          var editViewForm = this.getForm();
 114          editViewForm.find('[name="updateRecordWithSequenceNumber"]').on('click',function(){
 115              var params = {};
 116              var sourceModule = editViewForm.find('[name="sourceModule"]').val();
 117              var sourceModuleLabel = editViewForm.find('option[value="'+sourceModule+'"]').text();
 118              
 119              params = {
 120                  'module' : app.getModuleName(),
 121                  'parent' : app.getParentModuleName(),
 122                  'action' : "CustomRecordNumberingAjax",
 123                  'mode' : "updateRecordsWithSequenceNumber",
 124                  'sourceModule' : sourceModule
 125              }
 126              
 127              AppConnector.request(params).then(
 128                      function(data){
 129                          var successfullSaveMessage = app.vtranslate('JS_RECORD_NUMBERING_UPDATED_SUCCESSFULLY_FOR')+" "+sourceModuleLabel;
 130                          if(data.success == true){
 131                              var params = {
 132                                  text: successfullSaveMessage
 133                              };
 134                              Settings_Vtiger_Index_Js.showMessage(params);
 135                          }else{
 136                              Settings_Vtiger_Index_Js.showMessage(data.error.message);
 137                          }
 138                      },
 139                      function(jqXHR,textStatus, errorThrown){
 140              })
 141          })
 142      },
 143      
 144      /**
 145       * Function to register change event for prefix and sequence number
 146       */
 147      registerChangeEventForPrefixAndSequenceNumber : function() {
 148          var editViewForm = this.getForm();
 149          editViewForm.find('[name="prefix"],[name="sequenceNumber"]').on('change',function(){
 150              jQuery('.saveButton').removeAttr('disabled');
 151          })
 152      },
 153      
 154      /**
 155       * Function to register events
 156       */
 157      registerEvents : function(){
 158          var thisInstance = this;
 159          var editViewForm = this.getForm();
 160          this.registerOnChangeEventOfSourceModule();
 161          this.registerEventToUpdateRecordsWithSequenceNumber();
 162          this.registerChangeEventForPrefixAndSequenceNumber();
 163      
 164          var params = app.validationEngineOptions;
 165          params.onValidationComplete = function(editViewForm, valid){
 166              if(valid) {
 167                  thisInstance.saveModuleCustomNumbering();
 168              }
 169              return false;
 170          }
 171          editViewForm.validationEngine('detach');
 172          editViewForm.validationEngine('attach',params);
 173      }
 174  })
 175  jQuery(document).ready(function() {
 176      var customRecordNumberingInstance = new Settings_CustomRecordNumbering_Js();
 177      customRecordNumberingInstance.registerEvents();
 178  });


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