[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
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 })
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |