/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
Settings_Vtiger_Detail_Js('Settings_Webforms_Detail_Js', {
/*
* function to trigger delete record action
* @params: delete record url.
*/
deleteRecord : function(deleteRecordActionUrl) {
app.helper.showConfirmationBox({
message:app.vtranslate('LBL_DELETE_CONFIRMATION')
}).then(function() {
app.request.post({'url':deleteRecordActionUrl}).then(
function(e,res){
if(!e) {
window.location.href = res;
} else {
app.helper.showErrorNotification({
'message' : e
});
}
});
});
},
/**
* Function to trigger show webform record action
* @params: show webform record url
*/
showForm : function(record){
var self = this;
var params = {
'module' : 'Webforms',
'record' : record,
'view' : 'ShowForm',
'parent' : 'Settings'
}
app.request.get({data:params}).then(
function(error, data){
var callback = function(container){
//show html without rendering
var allowedAllFilesSize = container.find('.allowedAllFilesSize').val();
var showFormContents = container.find('pre').html();
showFormContents = showFormContents + '';
}
//Html contents should be placed inside textarea element
container.find('#showFormContent').text(showFormContents);
//Rendering content has been removed from container
container.find('pre').remove();
container.find('code').remove();
self.registerCopyToClipboard();
};
app.helper.showModal(data, {
'cb' : callback
});
}
)
},
registerCopyToClipboard: function () {
jQuery('#webformCopyClipboard').click(function (e) {
e.preventDefault();
try {
document.getElementById('showFormContent').select();
var success = document.execCommand("copy");
if (success) {
app.helper.showSuccessNotification({message: app.vtranslate('JS_COPIED_SUCCESSFULLY')});
} else {
app.helper.showErrorNotification({message: app.vtranslate('JS_COPY_FAILED')});
}
if (window.getSelection) {
if (window.getSelection().empty) {
window.getSelection().empty();
} else if (window.getSelection().removeAllRanges) {
window.getSelection().removeAllRanges();
}
} else if (document.selection) {
document.selection.empty();
}
} catch (err) {
app.helper.showErrorNotification({message: app.vtranslate('JS_COPY_FAILED')});
}
});
},
/**
* Function get Captcha Code
* @param showFormContents
* @return showFormContents
*/
getCaptchaCode : function(showFormContents) {
var captchaContents = ''+
''+
'';
showFormContents = showFormContents.replace('',captchaContents);
showFormContents = showFormContents +
'var recaptchaValidationValue = document.getElementById("recaptcha_validation_value").value;'+
'if (recaptchaValidationValue!= true){'+
'var recaptchaResponseElement = document.getElementsByName("recaptcha_response_field")[0].value;'+
'var recaptchaChallengeElement = document.getElementsByName("recaptcha_challenge_field")[0].value;'+
'var captchaUrl = document.getElementById("captchaUrl").value;'+
'var url = captchaUrl+"?recaptcha_response_field="+recaptchaResponseElement;'+
'url = url + "&recaptcha_challenge_field="+recaptchaChallengeElement+"&callback=JSONPCallback";'+
'jsonp.fetch(url);'+
'return false;'+
'}'+
'}; '+
'};'+
'var jsonp = {' +
'callbackCounter: 0,'+
'fetch: function(url) {'+
'url = url +"&callId="+this.callbackCounter;'+
'var scriptTag = document.createElement("SCRIPT");'+
'scriptTag.src = url;'+
'scriptTag.async = true;'+
'scriptTag.id = "JSONPCallback_"+this.callbackCounter;'+
'scriptTag.type = "text/javascript";'+
'document.getElementsByTagName("HEAD")[0].appendChild(scriptTag);'+
'this.callbackCounter++;'+
'}'+
'};'+
'function JSONPCallback(data) {'+
'if(data.result.success == true) {'+
'document.getElementById("recaptcha_validation_value").value = true;'+
'var form = document.getElementById("__vtigerWebForm");'+
'form.submit();'+
'} else {'+
'document.getElementById("recaptcha_reload").click();'+
'alert("you entered wrong captcha");'+
'}'+
'var element = document.getElementById("JSONPCallback_"+data.result.callId);'+
'element.parentNode.removeChild(element);'+
'}'+
'';
return showFormContents;
}
}, {
/**
* Function which will handle the registrations for the elements
*/
registerEvents : function() {
this._super();
}
})