[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/layouts/vlayout/modules/Settings/Webforms/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  
  10  Settings_Vtiger_List_Js("Settings_Webforms_List_Js",{
  11      
  12      /**
  13       * Function to hadle showform
  14       * @params: show form url
  15       */
  16      showForm : function(event,showFormUrl){
  17          event.stopPropagation();
  18          AppConnector.request(showFormUrl).then(
  19              function(data){
  20                  var callback = function(container){
  21                      var showFormContents = container.find('pre').html();
  22                      showFormContents = showFormContents + '<script  type="text/javascript">'+
  23                      'window.onload = function() { '+
  24                      'var N=navigator.appName, ua=navigator.userAgent, tem;'+
  25                      'var M=ua.match(/(opera|chrome|safari|firefox|msie)\\/?\\s*(\\.?\\d+(\\.\\d+)*)/i);'+
  26                      'if(M && (tem= ua.match(/version\\/([\\.\\d]+)/i))!= null) M[2]= tem[1];'+
  27                       'M=M? [M[1], M[2]]: [N, navigator.appVersion, "-?"];'+
  28                      'var browserName = M[0];'+
  29  
  30                          'var form = document.forms[0], '+
  31                          'inputs = form.elements; '+
  32                          'form.onsubmit = function() { '+
  33                              'var required = [], att, val; '+
  34                              'for (var i = 0; i < inputs.length; i++) { '+
  35                                  'att = inputs[i].getAttribute("required"); '+
  36                                  'val = inputs[i].value; '+
  37                                  'type = inputs[i].type; '+
  38                                  'if(type == "email") {'+
  39                                      'if(val != "") {'+
  40                                          'var elemLabel = inputs[i].getAttribute("label");'+
  41                                          'var emailFilter = /^[_/a-zA-Z0-9]+([!"#$%&()*+,./:;<=>?\\^_`{|}~-]?[a-zA-Z0-9/_/-])*@[a-zA-Z0-9]+([\\_\\-\\.]?[a-zA-Z0-9]+)*\\.([\\-\\_]?[a-zA-Z0-9])+(\\.?[a-zA-Z0-9]+)?$/;'+
  42                                          'var illegalChars= /[\\(\\)\\<\\>\\,\\;\\:\\\"\\[\\]]/ ;'+
  43                                          'if (!emailFilter.test(val)) {'+
  44                                              'alert("For "+ elemLabel +" field please enter valid email address"); return false;'+
  45                                          '} else if (val.match(illegalChars)) {'+
  46                                              'alert(elemLabel +" field contains illegal characters");return false;'+
  47                                          '}'+
  48                                      '}'+
  49                                  '}'+
  50                                  'if (att != null) { '+
  51                                          'if (val.replace(/^\\s+|\\s+$/g, "") == "") { '+
  52                                                  'required.push(inputs[i].getAttribute("label")); '+
  53                                          '} '+
  54                                  '} '+
  55                              '} '+
  56                              'if (required.length > 0) { '+
  57                                  'alert("The following fields are required: " + required.join()); '+
  58                                  'return false; '+
  59                              '} '+
  60                              'var numberTypeInputs = document.querySelectorAll("input[type=number]");'+
  61                              'for (var i = 0; i < numberTypeInputs.length; i++) { '+
  62                                  'val = numberTypeInputs[i].value;'+
  63                                  'var elemLabel = numberTypeInputs[i].getAttribute("label");'+
  64                                  'if(val != "") {'+
  65                                      'var intRegex = /^[+-]?\\d+$/;'+ 
  66                                      'if (!intRegex.test(val)) {'+
  67                                          'alert("For "+ elemLabel +" field please enter valid number"); return false;'+
  68                                      '}'+
  69                                  '}'+
  70                              '}';
  71                      if(container.find('[name=isCaptchaEnabled]').val() == true) {
  72                          showFormContents = Settings_Webforms_List_Js.getCaptchaCode(showFormContents);
  73                      } else {
  74                          showFormContents = showFormContents +
  75                          '}; '+
  76                          '}'+
  77                      '</script>';
  78                      }
  79                      container.find('#showFormContent').text(showFormContents);
  80                      container.find('pre').remove();
  81                      container.find('code').remove();
  82                      app.showScrollBar(container.find('#showFormContent'), {'height':'350px'});
  83                  }
  84                  app.showModalWindow(data,callback);
  85              },
  86              function(error){
  87              }
  88          )
  89      },
  90      
  91      /**
  92       * Function get Captcha Code
  93       * @param <string> showFormContents
  94       * @return <string> showFormContents
  95       */
  96      getCaptchaCode : function(showFormContents) {
  97          var captchaContents = '<script type="text/javascript">'+
  98          'var RecaptchaOptions = { theme : "clean" };' +
  99          '</script>'+
 100          '<script type="text/javascript"'+
 101          'src="http://www.google.com/recaptcha/api/challenge?k=6Lchg-wSAAAAAIkV51_LSksz6fFdD2vgy59jwa38">'+
 102          '</script>'+
 103          '<noscript>'+
 104              '<iframe src="http://www.google.com/recaptcha/api/noscript?k=6Lchg-wSAAAAAIkV51_LSksz6fFdD2vgy59jwa38"'+
 105                  'height="300" width="500" frameborder="0"></iframe><br>'+
 106              '<textarea name="recaptcha_challenge_field" rows="3" cols="40">'+
 107              '</textarea>'+
 108              '<input type="hidden" name="recaptcha_response_field" value="manual_challenge">'+
 109          '</noscript>';
 110          showFormContents = showFormContents.replace('<div id="captchaField"></div>',captchaContents);
 111          showFormContents = showFormContents +
 112                  'var recaptchaValidationValue = document.getElementById("recaptcha_validation_value").value;'+
 113                  'if (recaptchaValidationValue!= true){'+
 114                      'var recaptchaResponseElement = document.getElementsByName("recaptcha_response_field")[0].value;'+
 115                      'var recaptchaChallengeElement = document.getElementsByName("recaptcha_challenge_field")[0].value;'+
 116                      'var captchaUrl = document.getElementById("captchaUrl").value;'+
 117                      'var url = captchaUrl+"?recaptcha_response_field="+recaptchaResponseElement;'+
 118                      'url = url + "&recaptcha_challenge_field="+recaptchaChallengeElement+"&callback=JSONPCallback";'+
 119                      'jsonp.fetch(url);'+
 120                      'return false;'+
 121                  '}'+
 122              '}; '+
 123          '};'+
 124          'var jsonp = {' +
 125              'callbackCounter: 0,'+
 126  
 127              'fetch: function(url) {'+
 128                  'url = url +"&callId="+this.callbackCounter;'+
 129                  'var scriptTag = document.createElement("SCRIPT");'+
 130                  'scriptTag.src = url;'+
 131                  'scriptTag.async = true;'+
 132                  'scriptTag.id = "JSONPCallback_"+this.callbackCounter;'+
 133                  'scriptTag.type = "text/javascript";'+
 134                  'document.getElementsByTagName("HEAD")[0].appendChild(scriptTag);'+
 135                  'this.callbackCounter++;'+
 136              '}'+
 137          '};'+
 138          'function JSONPCallback(data) {'+
 139              'if(data.result.success == true) {'+
 140                  'document.getElementById("recaptcha_validation_value").value = true;'+
 141                  'var form = document.forms[0];'+
 142                  'form.submit();'+
 143              '} else {'+
 144                  'document.getElementById("recaptcha_reload").click();'+
 145                  'alert("you entered wrong captcha");'+
 146              '}'+
 147              'var element = document.getElementById("JSONPCallback_"+data.result.callId);'+
 148              'element.parentNode.removeChild(element);'+
 149          '}'+
 150          '</script>';
 151    
 152          return showFormContents;
 153      }
 154  },{
 155      
 156      /*
 157       * function to trigger delete record action
 158       * @params: delete record url.
 159       */
 160      DeleteRecord : function(deleteRecordActionUrl) {
 161          var thisInstance = this;
 162          var message = app.vtranslate('LBL_DELETE_CONFIRMATION');
 163          Vtiger_Helper_Js.showConfirmationBox({'message' : message}).then(function(data) {
 164                  AppConnector.request(deleteRecordActionUrl+'&ajaxDelete=true').then(
 165                  function(data){
 166                      if(data.success == true){
 167                          var params = {
 168                          text: app.vtranslate('JS_WEBFORM_DELETED_SUCCESSFULLY')
 169                      };
 170                      Settings_Vtiger_Index_Js.showMessage(params);
 171                      jQuery('#recordsCount').val('');
 172                      jQuery('#totalPageCount').text('');
 173                      thisInstance.getListViewRecords().then(function(){
 174                          thisInstance.updatePagination();
 175                      });
 176                      }else{
 177                          Vtiger_Helper_Js.showPnotify(data.error.message);
 178                      }
 179                  });
 180              },
 181              function(error, err){
 182              }
 183          );
 184      },
 185      
 186      /*
 187       * function to load the contents from the url through pjax
 188       */
 189      loadContents : function(url) {
 190          var aDeferred = jQuery.Deferred();
 191          AppConnector.requestPjax(url).then(
 192              function(data){
 193                  jQuery('.contentsDiv').html(data);
 194                  aDeferred.resolve(data);
 195              },
 196              function(error, err){
 197                  aDeferred.reject();
 198              }
 199          );
 200          return aDeferred.promise();
 201      },
 202      
 203      /**
 204       * Function to register events
 205       */
 206      registerEvents : function(){
 207          this._super();
 208      }
 209  })


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