/*+******************************************************************************** * 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. ********************************************************************************/ function VTEmailTask($){ var vtinst = new VtigerWebservices("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).attr('value'); textarea.insertHtml(value); }); 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).attr('value'); input.attr("value", input.attr("value")+' '+value); }); 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).attr('value'); input.attr("value", input.attr("value")+','+value); }); var selptype = document.getElementById('task-emailfields'); var selecc = document.getElementById('task-emailfieldscc'); for (ops=0;ops