/************************************* * SPDX-FileCopyrightText: 2009-2020 Vtenext S.r.l. * SPDX-License-Identifier: AGPL-3.0-only ************************************/ function VTEmailTask($){ var vtinst = new VtenextWebservices("webservice.php"); var desc = null; var accessibleModulesInfo = null; var map = fn.map; var dict = fn.dict; var filter = fn.filter; var reduceR = fn.reduceR; var parallelExecuter = fn.parallelExecuter; var contains = fn.contains; var concat = fn.concat; function diff(reflist, list) { var out = []; $.each(list, function(i, v) { if(contains(reflist, v)) { out.push(v); } }); return out; } //Display an error message. function errorDialog(message){ alert(message); } //This is a wrapper to handle webservice errors. function handleError(fn){ return function(status, result){ if(status){ fn(result); }else{ errorDialog('Failure:'+result); } }; } //Insert text at the cursor function insertAtCursor(element, value){ //http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript if (document.selection) { element.focus(); var sel = document.selection.createRange(); sel.text = value; element.focus(); }else if (element.selectionStart || element.selectionStart == '0') { var startPos = element.selectionStart; var endPos = element.selectionEnd; var scrollTop = element.scrollTop; element.value = element.value.substring(0, startPos) + value + element.value.substring(endPos, element.value.length); element.focus(); element.selectionStart = startPos + value.length; element.selectionEnd = startPos + value.length; element.scrollTop = scrollTop; } else { element.value += value; element.focus(); } } //Convert user type into reference for consistency in describe objects //This is done inplace function referencify(desc){ var fields = desc['fields']; for(var i=0; i' + v + ''); }); } $(document).ready(function(){ vtinst.extendSession(handleError(function(result){ vtinst.listTypes(handleError(function(accessibleModules) { accessibleModulesInfo = accessibleModules; getDescribeObjects(accessibleModules, moduleName, handleError(function(modules){ fillSelectBox('task-fieldnames', modules, moduleName); $('#task-fieldnames-busyicon').hide(); $('#task-fieldnames').show(); $('#task-fieldnames').change(function(){ var textarea = CKEDITOR.instances.save_content; var value = '$'+jQuery(this).val(); textarea.insertHtml(value); }); //crmv@36510 fillSelectBox('task-subjectfields', modules, moduleName, function(e){return (e['type']['name']!='file' && e['type']['name']!='text' );}); $('#task-subjectfields-busyicon').hide(); $('#task-subjectfields').show(); $('#task-subjectfields').change(function(){ var input = $($('#save_subject').get()); var value = '$'+$(this).val(); input.val(input.val()+' '+value); }); //crmv@36510 e // crmv@84131 fillSelectBox('task-emailfields', modules, moduleName, function(e){return e['type']['name']=='email';}); $('#task-emailfields-busyicon').hide(); $('#task-emailfields').show(); $('#task-emailfields').change(function(){ var input = $($('#save_recepient').get()); var value = '$'+$(this).val(); var oldvalue = input.val().trim(); input.val((oldvalue ? oldvalue+',' : '')+value); }); var selptype = document.getElementById('task-emailfields'); //crmv@36510 fillSelectBox('task-emailfields_sender', modules, moduleName, function(e){return e['type']['name']=='email';}); $('#task-emailfields_sender-busyicon').hide(); $('#task-emailfields_sender').show(); $('#task-emailfields_sender').change(function(){ var input = $($('#save_sender').get()); var value = '$'+$(this).val(); var oldvalue = input.val().trim(); input.val((oldvalue ? oldvalue+',' : '')+value); }); var selptype_sender = document.getElementById('task-emailfields_sender'); //crmv@36510 e var selecc = document.getElementById('task-emailfieldscc'); for (ops=0;ops