diff --git a/plugins/yetiforce/compose.js b/plugins/yetiforce/compose.js index 3a395848..e4370d14 100644 --- a/plugins/yetiforce/compose.js +++ b/plugins/yetiforce/compose.js @@ -1,3 +1,4 @@ +'use strict'; /* {[The file is published on the basis of MIT License]} */ window.rcmail && rcmail.addEventListener('init', function (evt) { @@ -124,23 +125,18 @@ window.rcmail && rcmail.addEventListener('init', function (evt) { url: "?_task=mail&_action=plugin.yetiforce.getEmailTemplates&_id=" + rcmail.env.compose_id, async: false, success: function (data) { - var modules = []; - var tmp = []; + let tmp = {}; data = JSON.parse(data); $.each(data, function (index, value) { jQuery('#vtmodulemenulink').removeClass('disabled'); jQuery('#tplmenulink').removeClass('disabled'); - tmp.push({ - name: value.moduleName, - label: value.moduleName - }); - jQuery('#tplmenu #texttplsmenu').append('
  • ' + value.name + '
  • '); + tmp[value.module_name] = value.moduleTranslate; + jQuery('#tplmenu #texttplsmenu').append('
  • ' + value.name + '
  • '); }); - $.each(tmp, function (index, value) { - if (jQuery.inArray(value.name, modules) == -1) { - jQuery('#vtmodulemenu .toolbarmenu').append('
  • ' + value.label + '
  • '); - modules.push(value.name); + $.each(tmp, function (moduleName, moduleTranslate) { + if (moduleName) { + jQuery('#vtmodulemenu .toolbarmenu').append('
  • ' + moduleTranslate + '
  • '); } }); @@ -174,7 +170,7 @@ window.rcmail && rcmail.addEventListener('init', function (evt) { } jQuery.ajax({ type: 'Get', - url: "?_task=mail&_action=plugin.yetiforce.getConntentEmailTemplate&_id=" + rcmail.env.compose_id, + url: "?_task=mail&_action=plugin.yetiforce.getContentEmailTemplate&_id=" + rcmail.env.compose_id, data: { id: id, record_id: recordId, @@ -182,14 +178,15 @@ window.rcmail && rcmail.addEventListener('init', function (evt) { }, success: function (data) { data = JSON.parse(data); - var oldSubject = jQuery('[name="_subject"]').val(); - var html = jQuery("
    ").html(data.content).html(); + let oldSubject = jQuery('[name="_subject"]').val(), + html = jQuery("
    ").html(data.content).html(), + ed = ''; jQuery('[name="_subject"]').val(oldSubject + ' ' + data.subject); if (window.tinyMCE && (ed = tinyMCE.get(rcmail.env.composebody))) { - var oldBody = tinyMCE.activeEditor.getContent(); + let oldBody = tinyMCE.activeEditor.getContent(); tinymce.activeEditor.setContent(html + oldBody); } else { - var oldBody = jQuery('#composebody').val(); + let oldBody = jQuery('#composebody').val(); jQuery('#composebody').val(html + oldBody); } if (typeof data.attachments !== 'undefined' && data.attachments !== null) { diff --git a/plugins/yetiforce/compose.min.js b/plugins/yetiforce/compose.min.js index 2f72170b..1600eef7 100644 --- a/plugins/yetiforce/compose.min.js +++ b/plugins/yetiforce/compose.min.js @@ -6,5 +6,5 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -window.rcmail&&rcmail.addEventListener('init',function(){function getEmailAddresses(responseData,e,module){var aDeferred=$.Deferred(),emails=[];return 'undefined'!=typeof e.target&&('email'===$(e.target).data('type')||'multiEmail'===$(e.target).data('type'))?(emails.push($(e.target).text()),aDeferred.resolve(emails)):function(){var i=0;for(var id in responseData)window.crm.app.getRecordDetails({record:id,module:module,fieldType:['email','multiEmail']}).done(function(data){i++,emails.push(getFirstEmailAddress(data.result.data)),i===Object.keys(responseData).length&&aDeferred.resolve(emails);});}(),aDeferred.promise()}function getFirstEmailAddress(mailObj){var emails=[];for(var key in mailObj)if(mailObj[key])if(window.crm.app.isJsonString(mailObj[key])){var multiEmail=JSON.parse(mailObj[key]);for(var i in multiEmail)emails.push(multiEmail[i].e);break}else{emails.push(mailObj[key]);break}return emails}var crm=window.crm=getCrmWindow(),crmPath=rcmail.env.site_URL+'index.php?';rcmail.env.compose_commands.push('yetiforce.addFilesToMail'),rcmail.env.compose_commands.push('yetiforce.addFilesFromCRM'),rcmail.register_command('yetiforce.addFilesToMail',function(data){var ts=new Date().getTime(),frame=rcmail.async_upload_form_frame('rcmupload'+ts);data._uploadid=ts,jQuery.ajax({url:'?_task=mail&_action=plugin.yetiforce.addFilesToMail&_id='+rcmail.env.compose_id,type:'POST',data:data,success:function success(data){var doc=frame[0],body=$(doc);body.html(data);}});},!0),rcmail.register_command('yetiforce.addFilesFromCRM',function(){!1!=crm&&window.crm.app.showRecordsList({module:'Documents',src_module:'Documents',multi_select:!0,additionalInformations:!0},function(modal,instance){instance.setSelectEvent(function(responseData){rcmail.command('yetiforce.addFilesToMail',{ids:Object.keys(responseData),_uploadid:new Date().getTime()});});});},!0),$('#composeheaders #yt_adress_buttons .button').click(function(){var mailField=$(this).attr('data-input'),module=$(this).attr('data-module');window.crm.app.showRecordsList({module:module,src_module:'OSSMail',multi_select:!0,additionalInformations:!0},function(modal,instance){instance.setSelectEvent(function(responseData,e){getEmailAddresses(responseData,e,module).done(function(emails){if(emails.length){var value=$('#'+mailField).val();''!=value&&','!=value.charAt(value.length-1)&&(value+=','),$('#'+mailField).val(value+emails.join(','));}else window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate('NoFindEmailInRecord'),animation:'show'});});});});}),rcmail.env.isPermittedMailTemplates&&jQuery.ajax({type:'Get',url:'?_task=mail&_action=plugin.yetiforce.getEmailTemplates&_id='+rcmail.env.compose_id,async:!1,success:function success(data){var modules=[],tmp=[];data=JSON.parse(data),$.each(data,function(index,value){jQuery('#vtmodulemenulink').removeClass('disabled'),jQuery('#tplmenulink').removeClass('disabled'),tmp.push({name:value.moduleName,label:value.moduleName}),jQuery('#tplmenu #texttplsmenu').append('
  • '+value.name+'
  • ');}),$.each(tmp,function(index,value){-1==jQuery.inArray(value.name,modules)&&(jQuery('#vtmodulemenu .toolbarmenu').append('
  • '+value.label+'
  • '),modules.push(value.name));});}}),jQuery('#vtmodulemenu li a').on('click',function(){var selectModule=jQuery(this).data('module');selectModule==null?jQuery('#tplmenu li').show():(jQuery('#tplmenu li.'+selectModule).show(),jQuery('#tplmenu li').not('.'+selectModule).hide());}),rcmail.env.crmModule!=null&&jQuery('#vtmodulemenu li.'+rcmail.env.crmModule+' a').trigger('click'),jQuery('#tplmenu li a').on('click',function(){var id=jQuery(this).data('tplid'),recordId=rcmail.env.crmRecord,module=rcmail.env.crmModule,view=rcmail.env.crmView;if('List'==view){var chElement=jQuery(crm.document).find('.listViewEntriesCheckBox')[0];recordId=jQuery(chElement).val();}jQuery.ajax({type:'Get',url:'?_task=mail&_action=plugin.yetiforce.getConntentEmailTemplate&_id='+rcmail.env.compose_id,data:{id:id,record_id:recordId,select_module:module},success:function success(data){data=JSON.parse(data);var oldSubject=jQuery('[name="_subject"]').val(),html=jQuery('
    ').html(data.content).html();if(jQuery('[name="_subject"]').val(oldSubject+' '+data.subject),window.tinyMCE&&(ed=tinyMCE.get(rcmail.env.composebody))){var oldBody=tinyMCE.activeEditor.getContent();tinymce.activeEditor.setContent(html+oldBody);}else{var oldBody=jQuery('#composebody').val();jQuery('#composebody').val(html+oldBody);}'undefined'!=typeof data.attachments&&null!==data.attachments&&rcmail.command('yetiforce.addFilesToMail',data.attachments);}});});});function getCrmWindow(){if(null!==opener)return opener.parent;return !('object'!=_typeof(parent.app))&&parent} +window.rcmail&&rcmail.addEventListener('init',function(){function getEmailAddresses(responseData,e,module){var aDeferred=$.Deferred(),emails=[];return 'undefined'!=typeof e.target&&('email'===$(e.target).data('type')||'multiEmail'===$(e.target).data('type'))?(emails.push($(e.target).text()),aDeferred.resolve(emails)):function(){var i=0;for(var id in responseData)window.crm.app.getRecordDetails({record:id,module:module,fieldType:['email','multiEmail']}).done(function(data){i++,emails.push(getFirstEmailAddress(data.result.data)),i===Object.keys(responseData).length&&aDeferred.resolve(emails);});}(),aDeferred.promise()}function getFirstEmailAddress(mailObj){var emails=[];for(var key in mailObj)if(mailObj[key])if(window.crm.app.isJsonString(mailObj[key])){var multiEmail=JSON.parse(mailObj[key]);for(var i in multiEmail)emails.push(multiEmail[i].e);break}else{emails.push(mailObj[key]);break}return emails}var crm=window.crm=getCrmWindow(),crmPath=rcmail.env.site_URL+'index.php?';rcmail.env.compose_commands.push('yetiforce.addFilesToMail'),rcmail.env.compose_commands.push('yetiforce.addFilesFromCRM'),rcmail.register_command('yetiforce.addFilesToMail',function(data){var ts=new Date().getTime(),frame=rcmail.async_upload_form_frame('rcmupload'+ts);data._uploadid=ts,jQuery.ajax({url:'?_task=mail&_action=plugin.yetiforce.addFilesToMail&_id='+rcmail.env.compose_id,type:'POST',data:data,success:function success(data){var doc=frame[0],body=$(doc);body.html(data);}});},!0),rcmail.register_command('yetiforce.addFilesFromCRM',function(){!1!=crm&&window.crm.app.showRecordsList({module:'Documents',src_module:'Documents',multi_select:!0,additionalInformations:!0},function(modal,instance){instance.setSelectEvent(function(responseData){rcmail.command('yetiforce.addFilesToMail',{ids:Object.keys(responseData),_uploadid:new Date().getTime()});});});},!0),$('#composeheaders #yt_adress_buttons .button').click(function(){var mailField=$(this).attr('data-input'),module=$(this).attr('data-module');window.crm.app.showRecordsList({module:module,src_module:'OSSMail',multi_select:!0,additionalInformations:!0},function(modal,instance){instance.setSelectEvent(function(responseData,e){getEmailAddresses(responseData,e,module).done(function(emails){if(emails.length){var value=$('#'+mailField).val();''!=value&&','!=value.charAt(value.length-1)&&(value+=','),$('#'+mailField).val(value+emails.join(','));}else window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate('NoFindEmailInRecord'),animation:'show'});});});});}),rcmail.env.isPermittedMailTemplates&&jQuery.ajax({type:'Get',url:'?_task=mail&_action=plugin.yetiforce.getEmailTemplates&_id='+rcmail.env.compose_id,async:!1,success:function success(data){var tmp={};data=JSON.parse(data),$.each(data,function(index,value){jQuery('#vtmodulemenulink').removeClass('disabled'),jQuery('#tplmenulink').removeClass('disabled'),tmp[value.module_name]=value.moduleTranslate,jQuery('#tplmenu #texttplsmenu').append('
  • '+value.name+'
  • ');}),$.each(tmp,function(moduleName,moduleTranslate){moduleName&&jQuery('#vtmodulemenu .toolbarmenu').append('
  • '+moduleTranslate+'
  • ');});}}),jQuery('#vtmodulemenu li a').on('click',function(){var selectModule=jQuery(this).data('module');selectModule==null?jQuery('#tplmenu li').show():(jQuery('#tplmenu li.'+selectModule).show(),jQuery('#tplmenu li').not('.'+selectModule).hide());}),rcmail.env.crmModule!=null&&jQuery('#vtmodulemenu li.'+rcmail.env.crmModule+' a').trigger('click'),jQuery('#tplmenu li a').on('click',function(){var id=jQuery(this).data('tplid'),recordId=rcmail.env.crmRecord,module=rcmail.env.crmModule,view=rcmail.env.crmView;if('List'==view){var chElement=jQuery(crm.document).find('.listViewEntriesCheckBox')[0];recordId=jQuery(chElement).val();}jQuery.ajax({type:'Get',url:'?_task=mail&_action=plugin.yetiforce.getContentEmailTemplate&_id='+rcmail.env.compose_id,data:{id:id,record_id:recordId,select_module:module},success:function success(data){data=JSON.parse(data);var oldSubject=jQuery('[name="_subject"]').val(),html=jQuery('
    ').html(data.content).html(),ed='';if(jQuery('[name="_subject"]').val(oldSubject+' '+data.subject),window.tinyMCE&&(ed=tinyMCE.get(rcmail.env.composebody))){var oldBody=tinyMCE.activeEditor.getContent();tinymce.activeEditor.setContent(html+oldBody);}else{var _oldBody=jQuery('#composebody').val();jQuery('#composebody').val(html+_oldBody);}'undefined'!=typeof data.attachments&&null!==data.attachments&&rcmail.command('yetiforce.addFilesToMail',data.attachments);}});});});function getCrmWindow(){if(null!==opener)return opener.parent;return !('object'!=_typeof(parent.app))&&parent} //# sourceMappingURL=compose.min.js.map diff --git a/plugins/yetiforce/compose.min.js.map b/plugins/yetiforce/compose.min.js.map index cbd2bbd9..9929f1ce 100644 --- a/plugins/yetiforce/compose.min.js.map +++ b/plugins/yetiforce/compose.min.js.map @@ -1 +1 @@ -{"version":3,"file":"compose.min.js","sources":["compose.js"],"sourcesContent":["/* {[The file is published on the basis of MIT License]} */\n\nwindow.rcmail && rcmail.addEventListener('init', function (evt) {\n\n\tvar crm = window.crm = getCrmWindow();\n\tvar crmPath = rcmail.env.site_URL + 'index.php?';\n\n\trcmail.env.compose_commands.push('yetiforce.addFilesToMail');\n\trcmail.env.compose_commands.push('yetiforce.addFilesFromCRM');\n\n\t// Document selection\n\trcmail.register_command('yetiforce.addFilesToMail', function (data) {\n\t\tvar ts = new Date().getTime(),\n\t\t\tframe_name = 'rcmupload' + ts,\n\t\t\tframe = rcmail.async_upload_form_frame(frame_name);\n\t\tdata._uploadid = ts;\n\t\tjQuery.ajax({\n\t\t\turl: \"?_task=mail&_action=plugin.yetiforce.addFilesToMail&_id=\" + rcmail.env.compose_id,\n\t\t\ttype: \"POST\",\n\t\t\tdata: data,\n\t\t\tsuccess: function (data) {\n\t\t\t\tvar doc = frame[0];\n\t\t\t\tvar body = $(doc);\n\t\t\t\tbody.html(data);\n\t\t\t}\n\t\t});\n\t}, true);\n\n\t// Add a document to an email crm\n\trcmail.register_command('yetiforce.addFilesFromCRM', function (data) {\n\t\tif (crm != false) {\n\t\t\twindow.crm.app.showRecordsList({\n\t\t\t\tmodule: 'Documents',\n\t\t\t\tsrc_module: 'Documents',\n\t\t\t\tmulti_select: true,\n\t\t\t\tadditionalInformations: true\n\t\t\t}, (modal, instance) => {\n\t\t\t\tinstance.setSelectEvent((responseData) => {\n\t\t\t\t\trcmail.command('yetiforce.addFilesToMail', {\n\t\t\t\t\t\tids: Object.keys(responseData),\n\t\t\t\t\t\t_uploadid: new Date().getTime()\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, true);\n\t// Selection of email with popup\n\t$('#composeheaders #yt_adress_buttons .button').click(function () {\n\t\tvar mailField = $(this).attr('data-input');\n\t\tvar module = $(this).attr('data-module');\n\t\twindow.crm.app.showRecordsList({\n\t\t\tmodule: module,\n\t\t\tsrc_module: 'OSSMail',\n\t\t\tmulti_select: true,\n\t\t\tadditionalInformations: true\n\t\t}, (modal, instance) => {\n\t\t\tinstance.setSelectEvent((responseData, e) => {\n\t\t\t\tgetEmailAddresses(responseData, e, module).done((emails) => {\n\t\t\t\t\tif (emails.length) {\n\t\t\t\t\t\tlet value = $('#' + mailField).val();\n\t\t\t\t\t\tif (value != '' && value.charAt(value.length - 1) != ',') {\n\t\t\t\t\t\t\tvalue = value + ',';\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$('#' + mailField).val(value + emails.join(','));\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\t\t\t\t\ttext: window.crm.app.vtranslate('NoFindEmailInRecord'),\n\t\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tfunction getEmailAddresses(responseData, e, module) {\n\t\tlet aDeferred = $.Deferred(),\n\t\t\temails = [];\n\t\tif (typeof e.target !== 'undefined' && ($(e.target).data('type') === 'email' || $(e.target).data('type') === 'multiEmail')) {\n\t\t\temails.push($(e.target).text());\n\t\t\taDeferred.resolve(emails);\n\t\t} else {\n\t\t\tlet i = 0;\n\t\t\tfor (let id in responseData) {\n\t\t\t\twindow.crm.app.getRecordDetails({\n\t\t\t\t\trecord: id,\n\t\t\t\t\tmodule: module,\n\t\t\t\t\tfieldType: ['email', 'multiEmail']\n\t\t\t\t}).done((data) => {\n\t\t\t\t\ti++;\n\t\t\t\t\temails.push(getFirstEmailAddress(data.result.data));\n\t\t\t\t\tif (i === Object.keys(responseData).length) { //last iteration\n\t\t\t\t\t\taDeferred.resolve(emails);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn aDeferred.promise();\n\t}\n\n\tfunction getFirstEmailAddress(mailObj) {\n\t\tlet emails = [];\n\t\tfor (let key in mailObj) {\n\t\t\tif (mailObj[key]) {\n\t\t\t\tif (window.crm.app.isJsonString(mailObj[key])) {\n\t\t\t\t\tlet multiEmail = JSON.parse(mailObj[key]);\n\t\t\t\t\tfor (let i in multiEmail) {\n\t\t\t\t\t\temails.push(multiEmail[i].e);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\temails.push(mailObj[key]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn emails;\n\t}\n\n\t//Loading list of modules with templates mail\n\tif (rcmail.env.isPermittedMailTemplates) {\n\t\tjQuery.ajax({\n\t\t\ttype: 'Get',\n\t\t\turl: \"?_task=mail&_action=plugin.yetiforce.getEmailTemplates&_id=\" + rcmail.env.compose_id,\n\t\t\tasync: false,\n\t\t\tsuccess: function (data) {\n\t\t\t\tvar modules = [];\n\t\t\t\tvar tmp = [];\n\t\t\t\tdata = JSON.parse(data);\n\t\t\t\t$.each(data, function (index, value) {\n\t\t\t\t\tjQuery('#vtmodulemenulink').removeClass('disabled');\n\t\t\t\t\tjQuery('#tplmenulink').removeClass('disabled');\n\t\t\t\t\ttmp.push({\n\t\t\t\t\t\tname: value.moduleName,\n\t\t\t\t\t\tlabel: value.moduleName\n\t\t\t\t\t});\n\t\t\t\t\tjQuery('#tplmenu #texttplsmenu').append('
  • ' + value.name + '
  • ');\n\t\t\t\t});\n\n\t\t\t\t$.each(tmp, function (index, value) {\n\t\t\t\t\tif (jQuery.inArray(value.name, modules) == -1) {\n\t\t\t\t\t\tjQuery('#vtmodulemenu .toolbarmenu').append('
  • ' + value.label + '
  • ');\n\t\t\t\t\t\tmodules.push(value.name);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\t\t});\n\t}\n\t// Limit the list of templates\n\tjQuery('#vtmodulemenu li a').on('click', function () {\n\t\tvar selectModule = jQuery(this).data('module');\n\t\tif (selectModule == undefined) {\n\t\t\tjQuery('#tplmenu li').show();\n\t\t} else {\n\t\t\tjQuery('#tplmenu li.' + selectModule).show();\n\t\t\tjQuery('#tplmenu li').not(\".\" + selectModule).hide();\n\t\t}\n\t});\n\n\tif (rcmail.env.crmModule != undefined) {\n\t\tjQuery('#vtmodulemenu li.' + rcmail.env.crmModule + ' a').trigger(\"click\");\n\t}\n\n\t// Loading a template mail\n\tjQuery('#tplmenu li a').on('click', function () {\n\t\tvar id = jQuery(this).data('tplid');\n\t\tvar recordId = rcmail.env.crmRecord,\n\t\t\tmodule = rcmail.env.crmModule,\n\t\t\tview = rcmail.env.crmView;\n\t\tif (view == 'List') {\n\t\t\tvar chElement = jQuery(crm.document).find('.listViewEntriesCheckBox')[0];\n\t\t\trecordId = jQuery(chElement).val();\n\t\t}\n\t\tjQuery.ajax({\n\t\t\ttype: 'Get',\n\t\t\turl: \"?_task=mail&_action=plugin.yetiforce.getConntentEmailTemplate&_id=\" + rcmail.env.compose_id,\n\t\t\tdata: {\n\t\t\t\tid: id,\n\t\t\t\trecord_id: recordId,\n\t\t\t\tselect_module: module\n\t\t\t},\n\t\t\tsuccess: function (data) {\n\t\t\t\tdata = JSON.parse(data);\n\t\t\t\tvar oldSubject = jQuery('[name=\"_subject\"]').val();\n\t\t\t\tvar html = jQuery(\"
    \").html(data.content).html();\n\t\t\t\tjQuery('[name=\"_subject\"]').val(oldSubject + ' ' + data.subject);\n\t\t\t\tif (window.tinyMCE && (ed = tinyMCE.get(rcmail.env.composebody))) {\n\t\t\t\t\tvar oldBody = tinyMCE.activeEditor.getContent();\n\t\t\t\t\ttinymce.activeEditor.setContent(html + oldBody);\n\t\t\t\t} else {\n\t\t\t\t\tvar oldBody = jQuery('#composebody').val();\n\t\t\t\t\tjQuery('#composebody').val(html + oldBody);\n\t\t\t\t}\n\t\t\t\tif (typeof data.attachments !== 'undefined' && data.attachments !== null) {\n\t\t\t\t\trcmail.command('yetiforce.addFilesToMail', data.attachments);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n});\n\nfunction getCrmWindow() {\n\tif (opener !== null) {\n\t\treturn opener.parent;\n\t} else if (typeof parent.app == \"object\") {\n\t\treturn parent;\n\t}\n\treturn false;\n}\n"],"names":["window","rcmail","addEventListener","responseData","e","module","$","Deferred","emails","target","data","push","text","aDeferred","resolve","crm","app","getRecordDetails","record","id","fieldType","done","i","getFirstEmailAddress","result","Object","keys","length","promise","mailObj","key","isJsonString","JSON","parse","multiEmail","getCrmWindow","crmPath","env","site_URL","compose_commands","register_command","getTime","frame","async_upload_form_frame","ts","_uploadid","jQuery","ajax","url","compose_id","type","success","body","doc","html","showRecordsList","src_module","multi_select","additionalInformations","modal","instance","setSelectEvent","command","ids","click","attr","getEmailAddresses","mailField","val","charAt","value","join","Vtiger_Helper_Js","showPnotify","vtranslate","animation","isPermittedMailTemplates","async","tmp","each","index","removeClass","name","moduleName","label","append","inArray","modules","on","selectModule","show","not","hide","crmModule","trigger","recordId","crmRecord","view","crmView","document","find","chElement","record_id","select_module","content","oldSubject","subject","tinyMCE","ed","get","composebody","activeEditor","getContent","tinymce","setContent","oldBody","attachments","parent"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"compose.min.js","sources":["compose.js"],"sourcesContent":["'use strict';\n/* {[The file is published on the basis of MIT License]} */\n\nwindow.rcmail && rcmail.addEventListener('init', function (evt) {\n\n\tvar crm = window.crm = getCrmWindow();\n\tvar crmPath = rcmail.env.site_URL + 'index.php?';\n\n\trcmail.env.compose_commands.push('yetiforce.addFilesToMail');\n\trcmail.env.compose_commands.push('yetiforce.addFilesFromCRM');\n\n\t// Document selection\n\trcmail.register_command('yetiforce.addFilesToMail', function (data) {\n\t\tvar ts = new Date().getTime(),\n\t\t\tframe_name = 'rcmupload' + ts,\n\t\t\tframe = rcmail.async_upload_form_frame(frame_name);\n\t\tdata._uploadid = ts;\n\t\tjQuery.ajax({\n\t\t\turl: \"?_task=mail&_action=plugin.yetiforce.addFilesToMail&_id=\" + rcmail.env.compose_id,\n\t\t\ttype: \"POST\",\n\t\t\tdata: data,\n\t\t\tsuccess: function (data) {\n\t\t\t\tvar doc = frame[0];\n\t\t\t\tvar body = $(doc);\n\t\t\t\tbody.html(data);\n\t\t\t}\n\t\t});\n\t}, true);\n\n\t// Add a document to an email crm\n\trcmail.register_command('yetiforce.addFilesFromCRM', function (data) {\n\t\tif (crm != false) {\n\t\t\twindow.crm.app.showRecordsList({\n\t\t\t\tmodule: 'Documents',\n\t\t\t\tsrc_module: 'Documents',\n\t\t\t\tmulti_select: true,\n\t\t\t\tadditionalInformations: true\n\t\t\t}, (modal, instance) => {\n\t\t\t\tinstance.setSelectEvent((responseData) => {\n\t\t\t\t\trcmail.command('yetiforce.addFilesToMail', {\n\t\t\t\t\t\tids: Object.keys(responseData),\n\t\t\t\t\t\t_uploadid: new Date().getTime()\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, true);\n\t// Selection of email with popup\n\t$('#composeheaders #yt_adress_buttons .button').click(function () {\n\t\tvar mailField = $(this).attr('data-input');\n\t\tvar module = $(this).attr('data-module');\n\t\twindow.crm.app.showRecordsList({\n\t\t\tmodule: module,\n\t\t\tsrc_module: 'OSSMail',\n\t\t\tmulti_select: true,\n\t\t\tadditionalInformations: true\n\t\t}, (modal, instance) => {\n\t\t\tinstance.setSelectEvent((responseData, e) => {\n\t\t\t\tgetEmailAddresses(responseData, e, module).done((emails) => {\n\t\t\t\t\tif (emails.length) {\n\t\t\t\t\t\tlet value = $('#' + mailField).val();\n\t\t\t\t\t\tif (value != '' && value.charAt(value.length - 1) != ',') {\n\t\t\t\t\t\t\tvalue = value + ',';\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$('#' + mailField).val(value + emails.join(','));\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\t\t\t\t\ttext: window.crm.app.vtranslate('NoFindEmailInRecord'),\n\t\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n\n\tfunction getEmailAddresses(responseData, e, module) {\n\t\tlet aDeferred = $.Deferred(),\n\t\t\temails = [];\n\t\tif (typeof e.target !== 'undefined' && ($(e.target).data('type') === 'email' || $(e.target).data('type') === 'multiEmail')) {\n\t\t\temails.push($(e.target).text());\n\t\t\taDeferred.resolve(emails);\n\t\t} else {\n\t\t\tlet i = 0;\n\t\t\tfor (let id in responseData) {\n\t\t\t\twindow.crm.app.getRecordDetails({\n\t\t\t\t\trecord: id,\n\t\t\t\t\tmodule: module,\n\t\t\t\t\tfieldType: ['email', 'multiEmail']\n\t\t\t\t}).done((data) => {\n\t\t\t\t\ti++;\n\t\t\t\t\temails.push(getFirstEmailAddress(data.result.data));\n\t\t\t\t\tif (i === Object.keys(responseData).length) { //last iteration\n\t\t\t\t\t\taDeferred.resolve(emails);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn aDeferred.promise();\n\t}\n\n\tfunction getFirstEmailAddress(mailObj) {\n\t\tlet emails = [];\n\t\tfor (let key in mailObj) {\n\t\t\tif (mailObj[key]) {\n\t\t\t\tif (window.crm.app.isJsonString(mailObj[key])) {\n\t\t\t\t\tlet multiEmail = JSON.parse(mailObj[key]);\n\t\t\t\t\tfor (let i in multiEmail) {\n\t\t\t\t\t\temails.push(multiEmail[i].e);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\temails.push(mailObj[key]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn emails;\n\t}\n\n\t//Loading list of modules with templates mail\n\tif (rcmail.env.isPermittedMailTemplates) {\n\t\tjQuery.ajax({\n\t\t\ttype: 'Get',\n\t\t\turl: \"?_task=mail&_action=plugin.yetiforce.getEmailTemplates&_id=\" + rcmail.env.compose_id,\n\t\t\tasync: false,\n\t\t\tsuccess: function (data) {\n\t\t\t\tlet tmp = {};\n\t\t\t\tdata = JSON.parse(data);\n\t\t\t\t$.each(data, function (index, value) {\n\t\t\t\t\tjQuery('#vtmodulemenulink').removeClass('disabled');\n\t\t\t\t\tjQuery('#tplmenulink').removeClass('disabled');\n\t\t\t\t\ttmp[value.module_name] = value.moduleTranslate;\n\t\t\t\t\tjQuery('#tplmenu #texttplsmenu').append('
  • ' + value.name + '
  • ');\n\t\t\t\t});\n\n\t\t\t\t$.each(tmp, function (moduleName, moduleTranslate) {\n\t\t\t\t\tif (moduleName) {\n\t\t\t\t\t\tjQuery('#vtmodulemenu .toolbarmenu').append('
  • ' + moduleTranslate + '
  • ');\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\t\t});\n\t}\n\t// Limit the list of templates\n\tjQuery('#vtmodulemenu li a').on('click', function () {\n\t\tvar selectModule = jQuery(this).data('module');\n\t\tif (selectModule == undefined) {\n\t\t\tjQuery('#tplmenu li').show();\n\t\t} else {\n\t\t\tjQuery('#tplmenu li.' + selectModule).show();\n\t\t\tjQuery('#tplmenu li').not(\".\" + selectModule).hide();\n\t\t}\n\t});\n\n\tif (rcmail.env.crmModule != undefined) {\n\t\tjQuery('#vtmodulemenu li.' + rcmail.env.crmModule + ' a').trigger(\"click\");\n\t}\n\n\t// Loading a template mail\n\tjQuery('#tplmenu li a').on('click', function () {\n\t\tvar id = jQuery(this).data('tplid');\n\t\tvar recordId = rcmail.env.crmRecord,\n\t\t\tmodule = rcmail.env.crmModule,\n\t\t\tview = rcmail.env.crmView;\n\t\tif (view == 'List') {\n\t\t\tvar chElement = jQuery(crm.document).find('.listViewEntriesCheckBox')[0];\n\t\t\trecordId = jQuery(chElement).val();\n\t\t}\n\t\tjQuery.ajax({\n\t\t\ttype: 'Get',\n\t\t\turl: \"?_task=mail&_action=plugin.yetiforce.getContentEmailTemplate&_id=\" + rcmail.env.compose_id,\n\t\t\tdata: {\n\t\t\t\tid: id,\n\t\t\t\trecord_id: recordId,\n\t\t\t\tselect_module: module\n\t\t\t},\n\t\t\tsuccess: function (data) {\n\t\t\t\tdata = JSON.parse(data);\n\t\t\t\tlet oldSubject = jQuery('[name=\"_subject\"]').val(),\n\t\t\t\thtml = jQuery(\"
    \").html(data.content).html(),\n\t\t\t\ted = '';\n\t\t\t\tjQuery('[name=\"_subject\"]').val(oldSubject + ' ' + data.subject);\n\t\t\t\tif (window.tinyMCE && (ed = tinyMCE.get(rcmail.env.composebody))) {\n\t\t\t\t\tlet oldBody = tinyMCE.activeEditor.getContent();\n\t\t\t\t\ttinymce.activeEditor.setContent(html + oldBody);\n\t\t\t\t} else {\n\t\t\t\t\tlet oldBody = jQuery('#composebody').val();\n\t\t\t\t\tjQuery('#composebody').val(html + oldBody);\n\t\t\t\t}\n\t\t\t\tif (typeof data.attachments !== 'undefined' && data.attachments !== null) {\n\t\t\t\t\trcmail.command('yetiforce.addFilesToMail', data.attachments);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n});\n\nfunction getCrmWindow() {\n\tif (opener !== null) {\n\t\treturn opener.parent;\n\t} else if (typeof parent.app == \"object\") {\n\t\treturn parent;\n\t}\n\treturn false;\n}\n"],"names":["window","rcmail","addEventListener","responseData","e","module","$","Deferred","emails","target","data","push","text","aDeferred","resolve","crm","app","getRecordDetails","record","id","fieldType","done","i","getFirstEmailAddress","result","Object","keys","length","promise","mailObj","key","isJsonString","JSON","parse","multiEmail","getCrmWindow","crmPath","env","site_URL","compose_commands","register_command","getTime","frame","async_upload_form_frame","ts","_uploadid","jQuery","ajax","url","compose_id","type","success","body","doc","html","showRecordsList","src_module","multi_select","additionalInformations","modal","instance","setSelectEvent","command","ids","click","attr","getEmailAddresses","mailField","val","charAt","value","join","Vtiger_Helper_Js","showPnotify","vtranslate","animation","isPermittedMailTemplates","async","each","index","removeClass","tmp","module_name","moduleTranslate","append","name","moduleName","on","selectModule","show","not","hide","crmModule","trigger","recordId","crmRecord","view","crmView","document","find","chElement","record_id","select_module","content","ed","oldSubject","subject","tinyMCE","get","composebody","activeEditor","getContent","tinymce","setContent","oldBody","attachments","parent"],"mappings":";;;;;;;;AAGAA,OAAOC,MAAP,EAAiBA,OAAOC,gBAAP,CAAwB,MAAxB,CAAgC,UAAe,CAyE/D,0BAAA,CAA2BC,YAA3B,CAAyCC,CAAzC,CAA4CC,MAA5C,CAAoD,CACnD,cAAgBC,EAAEC,QAAF,EAAhB,CACCC,OAAS,EADV,CAqBA,OAnBwB,WAApB,WAASC,MAAT,GAAiE,OAA7B,KAAEL,EAAEK,MAAJ,EAAYC,IAAZ,CAAiB,MAAjB,GAAqE,YAA7B,KAAEN,EAAEK,MAAJ,EAAYC,IAAZ,CAAiB,MAAjB,CAA5E,CAmBJ,EAlBCF,OAAOG,IAAP,CAAYL,EAAEF,EAAEK,MAAJ,EAAYG,IAAZ,EAAZ,CAkBD,CAjBCC,UAAUC,OAAV,CAAkBN,MAAlB,CAiBD,aAfC,MAAQ,CAAR,CACA,IAAK,MAAL,gBAAA,CACCR,OAAOe,GAAP,CAAWC,GAAX,CAAeC,gBAAf,CAAgC,CAC/BC,OAAQC,EADuB,CAE/Bd,OAAQA,MAFuB,CAG/Be,UAAW,CAAC,OAAD,CAAU,YAAV,CAHoB,CAAhC,EAIGC,IAJH,CAIQ,SAACX,IAAD,CAAU,CACjBY,GADiB,CAEjBd,OAAOG,IAAP,CAAYY,qBAAqBb,KAAKc,MAAL,CAAYd,IAAjC,CAAZ,CAFiB,CAGbY,IAAMG,OAAOC,IAAP,CAAYvB,YAAZ,EAA0BwB,MAHnB,EAIhBd,UAAUC,OAAV,CAAkBN,MAAlB,EAED,CAVD,EAaF,IAAOK,UAAUe,OAAV,EACP,CAED,6BAAA,CAA8BC,OAA9B,CAAuC,CACtC,WAAa,EAAb,CACA,IAAK,OAAL,WAAA,CACC,GAAIA,QAAQC,GAAR,CAAJ,CACC,GAAI9B,OAAOe,GAAP,CAAWC,GAAX,CAAee,YAAf,CAA4BF,QAAQC,GAAR,CAA5B,CAAJ,CAA+C,CAC9C,eAAiBE,KAAKC,KAAL,CAAWJ,QAAQC,GAAR,CAAX,CAAjB,CACA,IAAK,KAAL,cAAA,CACCtB,OAAOG,IAAP,CAAYuB,WAAWZ,CAAX,EAAclB,CAA1B,EAED,KACA,CAND,IAMO,CACNI,OAAOG,IAAP,CAAYkB,QAAQC,GAAR,CAAZ,CADM,CAEN,KACA,CAGH,aACA,CAnH8D,QAErD9B,OAAOe,GAAP,CAAaoB,cAFwC,CAG3DC,QAAUnC,OAAOoC,GAAP,CAAWC,QAAX,CAAsB,YAH2B,CAK/DrC,OAAOoC,GAAP,CAAWE,gBAAX,CAA4B5B,IAA5B,CAAiC,0BAAjC,CAL+D,CAM/DV,OAAOoC,GAAP,CAAWE,gBAAX,CAA4B5B,IAA5B,CAAiC,2BAAjC,CAN+D,CAS/DV,OAAOuC,gBAAP,CAAwB,0BAAxB,CAAoD,SAAU9B,IAAV,CAAgB,CACnE,OAAS,QAAA,GAAW+B,OAAX,EAAT,CAECC,MAAQzC,OAAO0C,uBAAP,CADK,YAAcC,EACnB,CAFT,CAGAlC,KAAKmC,SAAL,CAAiBD,EAJkD,CAKnEE,OAAOC,IAAP,CAAY,CACXC,IAAK,2DAA6D/C,OAAOoC,GAAP,CAAWY,UADlE,CAEXC,KAAM,MAFK,CAGXxC,KAAMA,IAHK,CAIXyC,QAAS,iBAAUzC,IAAV,CAAgB,SACdgC,MAAM,CAAN,CADc,CAEpBU,KAAO9C,EAAE+C,GAAF,CAFa,CAGxBD,KAAKE,IAAL,CAAU5C,IAAV,EACA,CARU,CAAZ,EAUA,CAfD,IAT+D,CA2B/DT,OAAOuC,gBAAP,CAAwB,2BAAxB,CAAqD,UAAgB,CAChE,OADgE,EAEnExC,OAAOe,GAAP,CAAWC,GAAX,CAAeuC,eAAf,CAA+B,CAC9BlD,OAAQ,WADsB,CAE9BmD,WAAY,WAFkB,CAG9BC,eAH8B,CAI9BC,yBAJ8B,CAA/B,CAKG,SAACC,KAAD,CAAQC,QAAR,CAAqB,CACvBA,SAASC,cAAT,CAAwB,SAAC1D,YAAD,CAAkB,CACzCF,OAAO6D,OAAP,CAAe,0BAAf,CAA2C,CAC1CC,IAAKtC,OAAOC,IAAP,CAAYvB,YAAZ,CADqC,CAE1C0C,UAAW,QAAA,GAAWJ,OAAX,EAF+B,CAA3C,EAIA,CALD,EAMA,CAZD,EAcD,CAhBD,IA3B+D,CA6C/DnC,EAAE,4CAAF,EAAgD0D,KAAhD,CAAsD,UAAY,eACjD1D,EAAE,IAAF,EAAQ2D,IAAR,CAAa,YAAb,CADiD,CAE7D5D,OAASC,EAAE,IAAF,EAAQ2D,IAAR,CAAa,aAAb,CAFoD,CAGjEjE,OAAOe,GAAP,CAAWC,GAAX,CAAeuC,eAAf,CAA+B,CAC9BlD,OAAQA,MADsB,CAE9BmD,WAAY,SAFkB,CAG9BC,eAH8B,CAI9BC,yBAJ8B,CAA/B,CAKG,SAACC,KAAD,CAAQC,QAAR,CAAqB,CACvBA,SAASC,cAAT,CAAwB,SAAC1D,YAAD,CAAeC,CAAf,CAAqB,CAC5C8D,kBAAkB/D,YAAlB,CAAgCC,CAAhC,CAAmCC,MAAnC,EAA2CgB,IAA3C,CAAgD,SAACb,MAAD,CAAY,CAC3D,GAAIA,OAAOmB,MAAX,CAAmB,CAClB,UAAYrB,EAAE,IAAM6D,SAAR,EAAmBC,GAAnB,EAAZ,CACa,EAAT,SAAiD,GAAlC,QAAMC,MAAN,CAAaC,MAAM3C,MAAN,CAAe,CAA5B,CAFD,GAGjB2C,KAHiB,EAGD,GAHC,EAKlBhE,EAAE,IAAM6D,SAAR,EAAmBC,GAAnB,CAAuBE,MAAQ9D,OAAO+D,IAAP,CAAY,GAAZ,CAA/B,EACA,CAND,YAOQxD,GAAP,CAAWyD,gBAAX,CAA4BC,WAA5B,CAAwC,CACvC7D,KAAMZ,OAAOe,GAAP,CAAWC,GAAX,CAAe0D,UAAf,CAA0B,qBAA1B,CADiC,CAEvCC,UAAW,MAF4B,CAAxC,EAKD,CAbD,EAcA,CAfD,EAgBA,CAtBD,EAuBA,CA1BD,CA7C+D,CAsH3D1E,OAAOoC,GAAP,CAAWuC,wBAtHgD,EAuH9D9B,OAAOC,IAAP,CAAY,CACXG,KAAM,KADK,CAEXF,IAAK,8DAAgE/C,OAAOoC,GAAP,CAAWY,UAFrE,CAGX4B,QAHW,CAIX1B,QAAS,iBAAUzC,IAAV,CAAgB,CACxB,QAAU,EAAV,CACAA,KAAOsB,KAAKC,KAAL,CAAWvB,IAAX,CAFiB,CAGxBJ,EAAEwE,IAAF,CAAOpE,IAAP,CAAa,SAAUqE,KAAV,CAAiBT,KAAjB,CAAwB,CACpCxB,OAAO,mBAAP,EAA4BkC,WAA5B,CAAwC,UAAxC,CADoC,CAEpClC,OAAO,cAAP,EAAuBkC,WAAvB,CAAmC,UAAnC,CAFoC,CAGpCC,IAAIX,MAAMY,WAAV,EAAyBZ,MAAMa,eAHK,CAIpCrC,OAAO,wBAAP,EAAiCsC,MAAjC,CAAwC,cAAgBd,MAAMY,WAAtB,CAAoC,6BAApC,CAAoEZ,MAAMY,WAA1E,CAAwF,gBAAxF,CAA2GZ,MAAMnD,EAAjH,CAAsH,mBAAtH,CAA4ImD,MAAMe,IAAlJ,CAAyJ,WAAjM,EACA,CALD,CAHwB,CAUxB/E,EAAEwE,IAAF,CAAOG,GAAP,CAAY,SAAUK,UAAV,CAAsBH,eAAtB,CAAuC,CAC9CG,UAD8C,EAEjDxC,OAAO,4BAAP,EAAqCsC,MAArC,CAA4C,cAAgBE,UAAhB,CAA6B,6BAA7B,CAA6DA,UAA7D,CAA0E,mBAA1E,CAAgGH,eAAhG,CAAkH,WAA9J,EAED,CAJD,EAMA,CApBU,CAAZ,CAvH8D,CA+I/DrC,OAAO,oBAAP,EAA6ByC,EAA7B,CAAgC,OAAhC,CAAyC,UAAY,CACpD,iBAAmBzC,OAAO,IAAP,EAAapC,IAAb,CAAkB,QAAlB,CAAnB,CACI8E,kBAFgD,CAGnD1C,OAAO,aAAP,EAAsB2C,IAAtB,EAHmD,EAKnD3C,OAAO,eAAiB0C,YAAxB,EAAsCC,IAAtC,EALmD,CAMnD3C,OAAO,aAAP,EAAsB4C,GAAtB,CAA0B,IAAMF,YAAhC,EAA8CG,IAA9C,EANmD,EAQpD,CARD,CA/I+D,CAyJ3D1F,OAAOoC,GAAP,CAAWuD,SAAX,MAzJ2D,EA0J9D9C,OAAO,oBAAsB7C,OAAOoC,GAAP,CAAWuD,SAAjC,CAA6C,IAApD,EAA0DC,OAA1D,CAAkE,OAAlE,CA1J8D,CA8J/D/C,OAAO,gBAAP,EAAyByC,EAAzB,CAA4B,OAA5B,CAAqC,UAAY,QACvCzC,OAAO,IAAP,EAAapC,IAAb,CAAkB,OAAlB,CADuC,CAE5CoF,SAAW7F,OAAOoC,GAAP,CAAW0D,SAFsB,CAG/C1F,OAASJ,OAAOoC,GAAP,CAAWuD,SAH2B,CAI/CI,KAAO/F,OAAOoC,GAAP,CAAW4D,OAJ6B,CAKhD,GAAY,MAAR,MAAJ,CAAoB,CACnB,cAAgBnD,OAAO/B,IAAImF,QAAX,EAAqBC,IAArB,CAA0B,0BAA1B,EAAsD,CAAtD,CAAhB,CACAL,SAAWhD,OAAOsD,SAAP,EAAkBhC,GAAlB,GACX,CACDtB,OAAOC,IAAP,CAAY,CACXG,KAAM,KADK,CAEXF,IAAK,oEAAsE/C,OAAOoC,GAAP,CAAWY,UAF3E,CAGXvC,KAAM,CACLS,GAAIA,EADC,CAELkF,UAAWP,QAFN,CAGLQ,cAAejG,MAHV,CAHK,CAQX8C,QAAS,iBAAUzC,IAAV,CAAgB,CACxBA,KAAOsB,KAAKC,KAAL,CAAWvB,IAAX,CADiB,CAExB,eAAiBoC,OAAO,mBAAP,EAA4BsB,GAA5B,EAAjB,CACAd,KAAOR,OAAO,QAAP,EAAiBQ,IAAjB,CAAsB5C,KAAK6F,OAA3B,EAAoCjD,IAApC,EADP,CAEAkD,GAAK,EAFL,CAIA,GADA1D,OAAO,mBAAP,EAA4BsB,GAA5B,CAAgCqC,WAAa,GAAb,CAAmB/F,KAAKgG,OAAxD,CACA,CAAI1G,OAAO2G,OAAP,GAAmBH,GAAKG,QAAQC,GAAR,CAAY3G,OAAOoC,GAAP,CAAWwE,WAAvB,CAAxB,CAAJ,CAAkE,CACjE,YAAcF,QAAQG,YAAR,CAAqBC,UAArB,EAAd,CACAC,QAAQF,YAAR,CAAqBG,UAArB,CAAgC3D,KAAO4D,OAAvC,EACA,CAHD,IAGO,CACN,aAAcpE,OAAO,cAAP,EAAuBsB,GAAvB,EAAd,CACAtB,OAAO,cAAP,EAAuBsB,GAAvB,CAA2Bd,KAAO4D,QAAlC,EACA,CAC+B,WAA5B,cAAYC,WAAZ,EAAgE,IAArB,QAAKA,WAb5B,EAcvBlH,OAAO6D,OAAP,CAAe,0BAAf,CAA2CpD,KAAKyG,WAAhD,EAED,CAxBU,CAAZ,EA0BA,CAnCD,EAoCA,CAlMgB,EAoMjB,qBAAA,EAAwB,CACvB,GAAe,IAAX,SAAJ,CACC,cAAcC,MAAd,CAFsB,SAGS,QAArB,UAAOA,OAAOpG,GAAd,CAHY,GAIfoG,MAGR"} \ No newline at end of file diff --git a/plugins/yetiforce/preview.css b/plugins/yetiforce/preview.css index ac52a232..27a0834f 100644 --- a/plugins/yetiforce/preview.css +++ b/plugins/yetiforce/preview.css @@ -1,20 +1,20 @@ .pull-right { - float: right !important + float: right !important; } #ytActionBarContent select { - padding: 0 + padding: 0; } #ytActionBarContent .row:before { display: table; - content: " " + content: ' '; } #ytActionBarContent .row:after { clear: both; display: table; - content: " " + content: ' '; } #ytActionBarContent .ytHeader { @@ -23,43 +23,43 @@ } #ytActionBarContent .rowReletedRecord .rowActions { - display: none + display: none; } #ytActionBarContent .rowReletedRecord:hover .rowActions { - display: block + display: block; } #ytActionBarContent .noRecords { background: #70a8cb; text-align: center; color: #fff; - padding: 2px 0 + padding: 2px 0; } #ytActionBarContent .noRecords a.importMail { color: #ecf6ff; cursor: pointer; - font-weight: 800 + font-weight: 800; } #ytActionBarContent .rowReletedRecord { - margin: 3px 0 6px 0 + margin: 3px 0 6px 0; } #ytActionBarContent .rowReletedRecord { - margin: 3px 0 6px 0 + margin: 3px 0 6px 0; } #ytActionBarContent .pull-right button { line-height: 10px; margin-left: 3px; padding: 0 6px; - height: 14px + height: 14px; } #ytActionBarContent .relatedModuleIcon { - margin-right: 5px + margin-right: 5px; } #messageheader.previewheader { @@ -146,12 +146,15 @@ color: black; } -button, select, .rowRelatedRecord { - border-radius: .25rem; +button, +select, +.rowRelatedRecord { + border-radius: 0.25rem; padding: 0.1rem 0.2rem; } -button, select { +button, +select { cursor: pointer; } @@ -177,7 +180,8 @@ button { border: 1px solid transparent; padding: 0.2rem 0.3rem; border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; } button:hover { @@ -223,7 +227,7 @@ button:hover { .c-ical__card__year { font-size: 9px; - color: #888888 + color: #888888; } .c-ical__card__time { @@ -247,4 +251,9 @@ button:hover { .mr-1 { margin-right: 0.25rem; -} \ No newline at end of file +} + +.action-bar__head__message { + text-align: center !important; + display: block; +} diff --git a/plugins/yetiforce/preview.js b/plugins/yetiforce/preview.js index 7ba034f1..9b0af302 100644 --- a/plugins/yetiforce/preview.js +++ b/plugins/yetiforce/preview.js @@ -94,6 +94,11 @@ function registerRemoveRecord(content) { function registerSelectRecord(content) { let id = content.find('#mailActionBarID').val(); content.find('button.selectRecord').click(function (e) { + let relationSelect = content.find('#addRelationSelect').val(); + let getCacheModule = window.crm.app.moduleCacheGet('selectedModuleName'); + if (getCacheModule === 'undefined' || relationSelect !== getCacheModule) { + window.crm.app.moduleCacheSet('selectedModuleName', relationSelect); + } let relParams = { mailId: id }; @@ -170,18 +175,31 @@ function registerAddAttachments(content) { } function registerAddRecord(content) { var id = content.find('#mailActionBarID').val(); - content.find('button.addRecord').click(function (e) { + let getCacheModule = window.crm.app.moduleCacheGet('selectedModuleName'); + if (getCacheModule) { + content.find('#addRelationSelect').val(getCacheModule); + } + content.find('button.addRecord').click(function(e) { + var relationSelect = content.find('#addRelationSelect').val(); + if (getCacheModule === 'undefined' || relationSelect !== getCacheModule) { + window.crm.app.moduleCacheSet('selectedModuleName', relationSelect); + } var col = $(e.currentTarget).closest('.js-head-container'); let selectValue = col.find('.module').val(); if (selectValue !== null) { - showQuickCreateForm(selectValue, id); + let relatedRecords = [] + content.find('.js-data').find('.rowRelatedRecord').each((i, record) => { + let data = $(record).data() + relatedRecords.push({module: data.module, id: data.id}) + }) + showQuickCreateForm(selectValue, id, {relatedRecords: relatedRecords}); } }); } function removeRecord(crmid) { - var id = $('#mailActionBarID').val(); - var params = {} + const id = $('#mailActionBarID').val(); + let params = {} params.data = { module: 'OSSMail', action: 'ExecuteActions', @@ -194,18 +212,17 @@ function removeRecord(crmid) { params.async = false; params.dataType = 'json'; window.crm.AppConnector.request(params).done(function (data) { - var response = data['result']; + const response = data['result']; + let notifyParams = { + text: response['data'], + animation: 'show' + }; if (response['success']) { - var notifyParams = { + notifyParams = { text: response['data'], type: 'info', animation: 'show' }; - } else { - var notifyParams = { - text: response['data'], - animation: 'show' - }; } window.crm.Vtiger_Helper_Js.showPnotify(notifyParams); loadActionBar(); @@ -247,24 +264,23 @@ function showPopup(params, actionsParams) { }); } -function showQuickCreateForm(moduleName, record, params) { - var content = $('#ytActionBarContent'); - if (params == undefined) { - var params = {}; - } - var relatedParams = {}; +function showQuickCreateForm(moduleName, record, params = {}) { + const content = $('#ytActionBarContent'); + let relatedParams = {}, + sourceModule = 'OSSMailView'; if (params['sourceModule']) { - var sourceModule = params['sourceModule']; - } else { - var sourceModule = 'OSSMailView'; + sourceModule = params['sourceModule']; } - var postShown = function (data) { + const postShown = function (data) { var index, queryParam, queryParamComponents; $('').appendTo(data); $('').appendTo(data); $('').appendTo(data); } - var ids = { + const postQuickCreate = function (data) { + loadActionBar(); + } + const ids = { link: 'modulesLevel0', process: 'modulesLevel1', subprocess: 'modulesLevel2', @@ -298,21 +314,25 @@ function showQuickCreateForm(moduleName, record, params) { } relatedParams['email'] = rcmail.env.fromMail; relatedParams['email1'] = rcmail.env.fromMail; - relatedParams['description'] = $('#messagebody').text(); + let messageBody = $('#messagebody').clone() + messageBody.find('.image-attachment').remove() + relatedParams['description'] = messageBody.text() //relatedParams['related_to'] = record; - var postQuickCreate = function (data) { - loadActionBar(); + if (params.relatedRecords !== undefined) { + relatedParams['relatedRecords'] = params.relatedRecords; } relatedParams['sourceModule'] = sourceModule; relatedParams['sourceRecord'] = record; relatedParams['relationOperation'] = true; - var quickCreateParams = { - callbackFunction: postQuickCreate, + const quickCreateParams = { + callbackFunction: (data) => { + loadActionBar(); + }, callbackPostShown: postShown, data: relatedParams, noCache: true }; - var headerInstance = new window.crm.Vtiger_Header_Js(); + const headerInstance = new window.crm.Vtiger_Header_Js(); headerInstance.quickCreateModule(moduleName, quickCreateParams); } diff --git a/plugins/yetiforce/preview.min.css b/plugins/yetiforce/preview.min.css index 320569ba..b2b99161 100644 --- a/plugins/yetiforce/preview.min.css +++ b/plugins/yetiforce/preview.min.css @@ -1 +1 @@ -.pull-right{float:right !important}#ytActionBarContent select{padding:0}#ytActionBarContent .row:before{display:table;content:" "}#ytActionBarContent .row:after{clear:both;display:table;content:" "}#ytActionBarContent .ytHeader{position:relative;border-bottom:1px solid #dfdfdf}#ytActionBarContent .rowReletedRecord .rowActions{display:none}#ytActionBarContent .rowReletedRecord:hover .rowActions{display:block}#ytActionBarContent .noRecords{background:#70a8cb;text-align:center;color:#fff;padding:2px 0}#ytActionBarContent .noRecords a.importMail{color:#ecf6ff;cursor:pointer;font-weight:800}#ytActionBarContent .rowReletedRecord{margin:3px 0 6px 0}#ytActionBarContent .rowReletedRecord{margin:3px 0 6px 0}#ytActionBarContent .pull-right button{line-height:10px;margin-left:3px;padding:0 6px;height:14px}#ytActionBarContent .relatedModuleIcon{margin-right:5px}#messageheader.previewheader{padding:0 0 3px 30px}.rcmaddcontact{display:none}.d-none{display:none}.mr-5px{margin-right:5px}.mr-3px{margin-right:3px}.ml-5px{margin-left:5px}.w-100{width:100%}.flex-wrap{display:flex;flex-wrap:wrap}.flex-nowrap{display:flex;flex-wrap:nowrap}.rowRelatedRecord{background:#bbdde8;margin-left:3px;border:1px #c1c1c1 solid}.action-bar__head__container{display:flex;flex-wrap:nowrap;width:fit-content;margin-right:5px}.action-bar__head a{text-decoration:none;color:#000}.action-bar__head{color:#fff;padding:0 2px 4px;display:flex;flex-wrap:wrap}.action-bar__head>*{margin-top:4px}.action-bar__col{background-color:#4a5364;width:100%}.action-bar__select{margin-left:3px}.action-bar__select:required:invalid{color:gray}.action-bar__select optgroup{color:black}button,select,.rowRelatedRecord{border-radius:.25rem;padding:.1rem .2rem}button,select{cursor:pointer}.rowActions{display:inline-flex;align-items:center}.rowActions button{padding:.005rem .2rem;margin-left:5px}button{display:inline-block;background-color:#f8f9fa;border-color:#f8f9fa;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.2rem .3rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}button:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.c-ical{margin:2px}.c-ical__event{background:#fffdfd;margin:2px 0;border:1px solid #dedede;margin:3px auto;border-radius:6px}.c-ical__wrapper{margin:3px}.c-ical__card{width:fit-content;height:fit-content;background:white;border:1px solid #d0d0d0;border-radius:6px;color:#c51818;padding:0 2px 2px;margin:2px;text-align:center}.c-ical__card__day{font-size:15px;margin:0 auto;width:fit-content;color:black}.c-ical__card__year{font-size:9px;color:#888}.c-ical__card__time{font-size:18px;margin:auto 5px}.c-ical__card__arrow{margin:auto 5px}.c-ical__subject{margin:0 auto;text-align:center;background:#4a5364;color:white;border-top-left-radius:6px;border-top-right-radius:6px;padding-bottom:2px}.mr-1{margin-right:.25rem} \ No newline at end of file +.pull-right{float:right!important}#ytActionBarContent select{padding:0}#ytActionBarContent .row:before{display:table;content:' '}#ytActionBarContent .row:after{clear:both;display:table;content:' '}#ytActionBarContent .ytHeader{position:relative;border-bottom:1px solid #dfdfdf}#ytActionBarContent .rowReletedRecord .rowActions{display:none}#ytActionBarContent .rowReletedRecord:hover .rowActions{display:block}#ytActionBarContent .noRecords{background:#70a8cb;text-align:center;color:#fff;padding:2px 0}#ytActionBarContent .noRecords a.importMail{color:#ecf6ff;cursor:pointer;font-weight:800}#ytActionBarContent .rowReletedRecord{margin:3px 0 6px 0}#ytActionBarContent .rowReletedRecord{margin:3px 0 6px 0}#ytActionBarContent .pull-right button{line-height:10px;margin-left:3px;padding:0 6px;height:14px}#ytActionBarContent .relatedModuleIcon{margin-right:5px}#messageheader.previewheader{padding:0 0 3px 30px}.rcmaddcontact{display:none}.d-none{display:none}.mr-5px{margin-right:5px}.mr-3px{margin-right:3px}.ml-5px{margin-left:5px}.w-100{width:100%}.flex-wrap{display:flex;flex-wrap:wrap}.flex-nowrap{display:flex;flex-wrap:nowrap}.rowRelatedRecord{background:#bbdde8;margin-left:3px;border:1px #c1c1c1 solid}.action-bar__head__container{display:flex;flex-wrap:nowrap;width:fit-content;margin-right:5px}.action-bar__head a{text-decoration:none;color:#000}.action-bar__head{color:#fff;padding:0 2px 4px;display:flex;flex-wrap:wrap}.action-bar__head>*{margin-top:4px}.action-bar__col{background-color:#4a5364;width:100%}.action-bar__select{margin-left:3px}.action-bar__select:required:invalid{color:gray}.action-bar__select optgroup{color:#000}.rowRelatedRecord,button,select{border-radius:.25rem;padding:.1rem .2rem}button,select{cursor:pointer}.rowActions{display:inline-flex;align-items:center}.rowActions button{padding:.005rem .2rem;margin-left:5px}button{display:inline-block;background-color:#f8f9fa;border-color:#f8f9fa;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.2rem .3rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}button:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.c-ical{margin:2px}.c-ical__event{background:#fffdfd;margin:2px 0;border:1px solid #dedede;margin:3px auto;border-radius:6px}.c-ical__wrapper{margin:3px}.c-ical__card{width:fit-content;height:fit-content;background:#fff;border:1px solid #d0d0d0;border-radius:6px;color:#c51818;padding:0 2px 2px;margin:2px;text-align:center}.c-ical__card__day{font-size:15px;margin:0 auto;width:fit-content;color:#000}.c-ical__card__year{font-size:9px;color:#888}.c-ical__card__time{font-size:18px;margin:auto 5px}.c-ical__card__arrow{margin:auto 5px}.c-ical__subject{margin:0 auto;text-align:center;background:#4a5364;color:#fff;border-top-left-radius:6px;border-top-right-radius:6px;padding-bottom:2px}.mr-1{margin-right:.25rem}.action-bar__head__message{text-align:center!important;display:block} \ No newline at end of file diff --git a/plugins/yetiforce/preview.min.js b/plugins/yetiforce/preview.min.js index 3efcfbc8..7384c07a 100644 --- a/plugins/yetiforce/preview.min.js +++ b/plugins/yetiforce/preview.min.js @@ -6,5 +6,5 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -window.rcmail&&rcmail.addEventListener('init',function(){window.crm=getCrmWindow(),loadActionBar(),rcmail.env.message_commands.push('yetiforce.importICS'),rcmail.register_command('yetiforce.importICS',function(part,type){jQuery.ajax({type:'POST',url:'./?_task=mail&_action=plugin.yetiforce.importIcs&_mbox='+urlencode(rcmail.env.mailbox)+'&_uid='+urlencode(rcmail.env.uid)+'&_part='+part+'&_type='+type,async:!1,success:function success(data){data=JSON.parse(data),window.crm.Vtiger_Helper_Js.showPnotify({text:data.message,type:'info',animation:'show'});}});},!0);});function loadActionBar(){var content=$('#ytActionBarContent'),params={module:'OSSMail',view:'MailActionBar',uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id};window.crm.AppConnector.request(params).done(function(response){content.find('.ytHeader').html(response),$('#messagecontent').css('top',content.outerHeight()+$('#messageheader').outerHeight()+'px'),registerEvents(content);});}function registerEvents(content){registerAddRecord(content),registerAddReletedRecord(content),registerSelectRecord(content),registerRemoveRecord(content),registerImportMail(content);var block=content.find('.ytHeader .js-data');content.find('.hideBtn').click(function(){var button=$(this),icon=button.find('.glyphicon');'0'==button.data('type')?(button.data('type','1'),icon.removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down')):(button.data('type','0'),icon.removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up')),block.toggle(),$(window).trigger('resize');});}function registerImportMail(content){content.find('.importMail').click(function(){window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate('StartedDownloadingEmail'),type:'info'}),window.crm.AppConnector.request({module:'OSSMail',action:'ImportMail',uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id}).done(function(){loadActionBar(),window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate('AddFindEmailInRecord'),type:'success'});});});}function registerRemoveRecord(content){content.find('button.removeRecord').click(function(e){var row=$(e.currentTarget).closest('.rowRelatedRecord');removeRecord(row.data('id'));});}function registerSelectRecord(content){var id=content.find('#mailActionBarID').val();content.find('button.selectRecord').click(function(){var relParams={mailId:id};if(0==$(this).data('type')){var module=$(this).closest('.js-head-container').find('.module').val();if(null===module)return}else{var module=$(this).data('module');relParams.crmid=$(this).closest('.rowRelatedRecord').data('id'),relParams.mod=$(this).closest('.rowRelatedRecord').data('module'),relParams.newModule=module;}showPopup({module:module,src_module:'OSSMailView',src_record:id},relParams);});}function registerAddReletedRecord(content){content.find('#mailActionBarID').val();content.find('button.addRelatedRecord').click(function(e){var targetElement=$(e.currentTarget),row=targetElement.closest('.rowRelatedRecord'),params={sourceModule:row.data('module')};showQuickCreateForm(targetElement.data('module'),row.data('id'),params);});}function registerAddRecord(content){var id=content.find('#mailActionBarID').val();content.find('button.addRecord').click(function(e){var col=$(e.currentTarget).closest('.js-head-container'),selectValue=col.find('.module').val();null!==selectValue&&showQuickCreateForm(selectValue,id);});}function removeRecord(crmid){var id=$('#mailActionBarID').val(),params={};params.data={module:'OSSMail',action:'ExecuteActions',mode:'removeRelated',params:{mailId:id,crmid:crmid}},params.async=!1,params.dataType='json',window.crm.AppConnector.request(params).done(function(data){var response=data.result;if(response.success)var notifyParams={text:response.data,type:'info',animation:'show'};else var notifyParams={text:response.data,animation:'show'};window.crm.Vtiger_Helper_Js.showPnotify(notifyParams),loadActionBar();});}function showPopup(params,actionsParams){actionsParams.newModule=params.module,window.crm.app.showRecordsList(params,function(modal,instance){instance.setSelectEvent(function(responseData){actionsParams.newCrmId=responseData.id,window.crm.AppConnector.request({async:!1,dataType:'json',data:{module:'OSSMail',action:'ExecuteActions',mode:'addRelated',params:actionsParams}}).done(function(data){var response=data.result;if(response.success)var notifyParams={text:response.data,type:'info',animation:'show'};else var notifyParams={text:response.data,animation:'show'};window.crm.Vtiger_Helper_Js.showPnotify(notifyParams),loadActionBar();});});});}function showQuickCreateForm(moduleName,record,params){var content=$('#ytActionBarContent');var relatedParams={};if(false)var sourceModule=params.sourceModule;else var sourceModule='OSSMailView';var postShown=function(data){$('').appendTo(data),$('').appendTo(data),$('').appendTo(data);},ids={link:'modulesLevel0',process:'modulesLevel1',subprocess:'modulesLevel2',linkextend:'modulesLevel3'};for(var i in ids){var element=content.find('#'+ids[i]),value=element.length?JSON.parse(element.val()):[];0<=$.inArray(sourceModule,value)&&(relatedParams[i]=record);}'Leads'==moduleName&&(relatedParams.company=rcmail.env.fromName),('Leads'==moduleName||'Contacts'==moduleName)&&(relatedParams.lastname=rcmail.env.fromName),'Project'==moduleName&&(relatedParams.projectname=rcmail.env.subject),'HelpDesk'==moduleName&&(relatedParams.ticket_title=rcmail.env.subject),'Products'==moduleName&&(relatedParams.productname=rcmail.env.subject),'Services'==moduleName&&(relatedParams.servicename=rcmail.env.subject),relatedParams.email=rcmail.env.fromMail,relatedParams.email1=rcmail.env.fromMail,relatedParams.description=$('#messagebody').text();relatedParams.sourceModule=sourceModule,relatedParams.sourceRecord=record,relatedParams.relationOperation=!0;var headerInstance=new window.crm.Vtiger_Header_Js;headerInstance.quickCreateModule(moduleName,{callbackFunction:function postQuickCreate(){loadActionBar();},callbackPostShown:postShown,data:relatedParams,noCache:!0});}function getCrmWindow(){if(null!==opener&&'object'==opener.parent.CONFIG)return opener.parent;return 'object'==_typeof(parent.CONFIG)?parent:'object'==_typeof(parent.parent.CONFIG)?parent.parent:!('object'!=_typeof(opener.crm.CONFIG))&&opener.crm} +window.rcmail&&rcmail.addEventListener('init',function(){window.crm=getCrmWindow(),loadActionBar(),rcmail.env.message_commands.push('yetiforce.importICS'),rcmail.register_command('yetiforce.importICS',function(part,type){jQuery.ajax({type:'POST',url:'./?_task=mail&_action=plugin.yetiforce.importIcs&_mbox='+urlencode(rcmail.env.mailbox)+'&_uid='+urlencode(rcmail.env.uid)+'&_part='+part+'&_type='+type,async:!1,success:function success(data){data=JSON.parse(data),window.crm.Vtiger_Helper_Js.showPnotify({text:data.message,type:'info',animation:'show'});}});},!0);});function loadActionBar(){var content=$('#ytActionBarContent'),params={module:'OSSMail',view:'MailActionBar',uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id};window.crm.AppConnector.request(params).done(function(response){content.find('.ytHeader').html(response),$('#messagecontent').css('top',content.outerHeight()+$('#messageheader').outerHeight()+'px'),registerEvents(content);});}function registerEvents(content){registerAddRecord(content),registerAddReletedRecord(content),registerSelectRecord(content),registerRemoveRecord(content),registerImportMail(content);var block=content.find('.ytHeader .js-data');content.find('.hideBtn').click(function(){var button=$(this),icon=button.find('.glyphicon');'0'==button.data('type')?(button.data('type','1'),icon.removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down')):(button.data('type','0'),icon.removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up')),block.toggle(),$(window).trigger('resize');});}function registerImportMail(content){content.find('.importMail').click(function(){window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate('StartedDownloadingEmail'),type:'info'}),window.crm.AppConnector.request({module:'OSSMail',action:'ImportMail',uid:rcmail.env.uid,folder:rcmail.env.mailbox,rcId:rcmail.env.user_id}).done(function(){loadActionBar(),window.crm.Vtiger_Helper_Js.showPnotify({text:window.crm.app.vtranslate('AddFindEmailInRecord'),type:'success'});});});}function registerRemoveRecord(content){content.find('button.removeRecord').click(function(e){var row=$(e.currentTarget).closest('.rowRelatedRecord');removeRecord(row.data('id'));});}function registerSelectRecord(content){var id=content.find('#mailActionBarID').val();content.find('button.selectRecord').click(function(){var relParams={mailId:id};if(0==$(this).data('type')){var module=$(this).closest('.js-head-container').find('.module').val();if(null===module)return}else{var module=$(this).data('module');relParams.crmid=$(this).closest('.rowRelatedRecord').data('id'),relParams.mod=$(this).closest('.rowRelatedRecord').data('module'),relParams.newModule=module;}showPopup({module:module,src_module:'OSSMailView',src_record:id},relParams);});}function registerAddReletedRecord(content){content.find('#mailActionBarID').val();content.find('button.addRelatedRecord').click(function(e){var targetElement=$(e.currentTarget),row=targetElement.closest('.rowRelatedRecord'),params={sourceModule:row.data('module')};showQuickCreateForm(targetElement.data('module'),row.data('id'),params);});}function registerAddRecord(content){var id=content.find('#mailActionBarID').val();content.find('button.addRecord').click(function(e){var col=$(e.currentTarget).closest('.js-head-container'),selectValue=col.find('.module').val();if(null!==selectValue){var relatedRecords=[];content.find('.js-data').find('.rowRelatedRecord').each(function(i,record){var data=$(record).data();relatedRecords.push({module:data.module,id:data.id});}),showQuickCreateForm(selectValue,id,{relatedRecords:relatedRecords});}});}function removeRecord(crmid){var id=$('#mailActionBarID').val(),params={};params.data={module:'OSSMail',action:'ExecuteActions',mode:'removeRelated',params:{mailId:id,crmid:crmid}},params.async=!1,params.dataType='json',window.crm.AppConnector.request(params).done(function(data){var response=data.result,notifyParams={text:response.data,animation:'show'};response.success&&(notifyParams={text:response.data,type:'info',animation:'show'}),window.crm.Vtiger_Helper_Js.showPnotify(notifyParams),loadActionBar();});}function showPopup(params,actionsParams){actionsParams.newModule=params.module,window.crm.app.showRecordsList(params,function(modal,instance){instance.setSelectEvent(function(responseData){actionsParams.newCrmId=responseData.id,window.crm.AppConnector.request({async:!1,dataType:'json',data:{module:'OSSMail',action:'ExecuteActions',mode:'addRelated',params:actionsParams}}).done(function(data){var response=data.result;if(response.success)var notifyParams={text:response.data,type:'info',animation:'show'};else var notifyParams={text:response.data,animation:'show'};window.crm.Vtiger_Helper_Js.showPnotify(notifyParams),loadActionBar();});});});}function showQuickCreateForm(moduleName,record){var params=2').appendTo(data),$('').appendTo(data),$('').appendTo(data);},ids={link:'modulesLevel0',process:'modulesLevel1',subprocess:'modulesLevel2',subprocess_sl:'modulesLevel3',linkextend:'modulesLevel4'};for(var i in ids){var element=content.find('#'+ids[i]),value=element.length?JSON.parse(element.val()):[];0<=$.inArray(sourceModule,value)&&(relatedParams[i]=record);}'Leads'==moduleName&&(relatedParams.company=rcmail.env.fromName),('Leads'==moduleName||'Contacts'==moduleName)&&(relatedParams.lastname=rcmail.env.fromName),'Project'==moduleName&&(relatedParams.projectname=rcmail.env.subject),'HelpDesk'==moduleName&&(relatedParams.ticket_title=rcmail.env.subject),'Products'==moduleName&&(relatedParams.productname=rcmail.env.subject),'Services'==moduleName&&(relatedParams.servicename=rcmail.env.subject),relatedParams.email=rcmail.env.fromMail,relatedParams.email1=rcmail.env.fromMail;var messageBody=$('#messagebody').clone();messageBody.find('.image-attachment').remove(),relatedParams.description=messageBody.text(),params.relatedRecords!==void 0&&(relatedParams.relatedRecords=params.relatedRecords),relatedParams.sourceModule=sourceModule,relatedParams.sourceRecord=record,relatedParams.relationOperation=!0;var headerInstance=new window.crm.Vtiger_Header_Js;headerInstance.quickCreateModule(moduleName,{callbackFunction:function callbackFunction(){loadActionBar();},callbackPostShown:postShown,data:relatedParams,noCache:!0});}function getCrmWindow(){if(null!==opener&&'object'==opener.parent.CONFIG)return opener.parent;return 'object'==_typeof(parent.CONFIG)?parent:'object'==_typeof(parent.parent.CONFIG)?parent.parent:!('object'!=_typeof(opener.crm.CONFIG))&&opener.crm} //# sourceMappingURL=preview.min.js.map diff --git a/plugins/yetiforce/preview.min.js.map b/plugins/yetiforce/preview.min.js.map index 28175f24..b7e3c10c 100644 --- a/plugins/yetiforce/preview.min.js.map +++ b/plugins/yetiforce/preview.min.js.map @@ -1 +1 @@ -{"version":3,"file":"preview.min.js","sources":["preview.js"],"sourcesContent":["/* {[The file is published on the basis of MIT License]} */\nwindow.rcmail && rcmail.addEventListener('init', function (evt) {\n\t\twindow.crm = getCrmWindow();\n\t\tloadActionBar();\n\t\trcmail.env.message_commands.push('yetiforce.importICS');\n\t\trcmail.register_command('yetiforce.importICS', function (part, type) {\n\t\t\tjQuery.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: \"./?_task=mail&_action=plugin.yetiforce.importIcs&_mbox=\" + urlencode(rcmail.env.mailbox) + '&_uid=' + urlencode(rcmail.env.uid) + '&_part=' + part + '&_type=' + type,\n\t\t\t\tasync: false,\n\t\t\t\tsuccess: function (data) {\n\t\t\t\t\tdata = JSON.parse(data);\n\t\t\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\t\t\t\ttext: data['message'],\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}, true);\n\t}\n);\n\nfunction loadActionBar() {\n\tvar content = $('#ytActionBarContent');\n\tvar params = {\n\t\tmodule: 'OSSMail',\n\t\tview: 'MailActionBar',\n\t\tuid: rcmail.env.uid,\n\t\tfolder: rcmail.env.mailbox,\n\t\trcId: rcmail.env.user_id\n\t};\n\twindow.crm.AppConnector.request(params).done(function (response) {\n\t\tcontent.find('.ytHeader').html(response);\n\t\t$('#messagecontent').css('top', (content.outerHeight() + $('#messageheader').outerHeight()) + 'px');\n\t\tregisterEvents(content);\n\t});\n}\n\nfunction registerEvents(content) {\n\tregisterAddRecord(content);\n\tregisterAddReletedRecord(content);\n\tregisterSelectRecord(content);\n\tregisterRemoveRecord(content);\n\tregisterImportMail(content);\n\n\tvar block = content.find('.ytHeader .js-data');\n\tcontent.find('.hideBtn').click(function () {\n\t\tvar button = $(this);\n\t\tvar icon = button.find('.glyphicon');\n\n\t\tif (button.data('type') == '0') {\n\t\t\tbutton.data('type', '1');\n\t\t\ticon.removeClass(\"glyphicon-chevron-up\").addClass(\"glyphicon-chevron-down\");\n\t\t} else {\n\t\t\tbutton.data('type', '0');\n\t\t\ticon.removeClass(\"glyphicon-chevron-down\").addClass(\"glyphicon-chevron-up\");\n\t\t}\n\t\tblock.toggle();\n\t\t$(window).trigger(\"resize\");\n\t});\n}\n\nfunction registerImportMail(content) {\n\tcontent.find('.importMail').click(function (e) {\n\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\ttext: window.crm.app.vtranslate('StartedDownloadingEmail'),\n\t\t\ttype: 'info'\n\t\t});\n\t\twindow.crm.AppConnector.request({\n\t\t\tmodule: 'OSSMail',\n\t\t\taction: 'ImportMail',\n\t\t\tuid: rcmail.env.uid,\n\t\t\tfolder: rcmail.env.mailbox,\n\t\t\trcId: rcmail.env.user_id\n\t\t}).done(function (data) {\n\t\t\tloadActionBar();\n\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\t\ttext: window.crm.app.vtranslate('AddFindEmailInRecord'),\n\t\t\t\ttype: 'success'\n\t\t\t});\n\t\t})\n\t});\n}\n\nfunction registerRemoveRecord(content) {\n\tcontent.find('button.removeRecord').click(function (e) {\n\t\tvar row = $(e.currentTarget).closest('.rowRelatedRecord');\n\t\tremoveRecord(row.data('id'));\n\t});\n}\n\nfunction registerSelectRecord(content) {\n\tlet id = content.find('#mailActionBarID').val();\n\tcontent.find('button.selectRecord').click(function (e) {\n\t\tlet relParams = {\n\t\t\tmailId: id\n\t\t};\n\t\tif ($(this).data('type') == 0) {\n\t\t\tvar module = $(this).closest('.js-head-container').find('.module').val();\n\t\t\tif (module === null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\tvar module = $(this).data('module');\n\t\t\trelParams.crmid = $(this).closest('.rowRelatedRecord').data('id');\n\t\t\trelParams.mod = $(this).closest('.rowRelatedRecord').data('module');\n\t\t\trelParams.newModule = module;\n\t\t}\n\t\tshowPopup({\n\t\t\tmodule: module,\n\t\t\tsrc_module: 'OSSMailView',\n\t\t\tsrc_record: id,\n\t\t}, relParams);\n\t});\n}\n\nfunction registerAddReletedRecord(content) {\n\tvar id = content.find('#mailActionBarID').val();\n\tcontent.find('button.addRelatedRecord').click(function (e) {\n\t\tvar targetElement = $(e.currentTarget);\n\t\tvar row = targetElement.closest('.rowRelatedRecord');\n\t\tvar params = {sourceModule: row.data('module')};\n\t\tshowQuickCreateForm(targetElement.data('module'), row.data('id'), params);\n\t});\n}\n\nfunction registerAddRecord(content) {\n\tvar id = content.find('#mailActionBarID').val();\n\tcontent.find('button.addRecord').click(function (e) {\n\t\tvar col = $(e.currentTarget).closest('.js-head-container');\n\t\tlet selectValue = col.find('.module').val();\n\t\tif (selectValue !== null) {\n\t\t\tshowQuickCreateForm(selectValue, id);\n\t\t}\n\t});\n}\n\nfunction removeRecord(crmid) {\n\tvar id = $('#mailActionBarID').val();\n\tvar params = {}\n\tparams.data = {\n\t\tmodule: 'OSSMail',\n\t\taction: 'ExecuteActions',\n\t\tmode: 'removeRelated',\n\t\tparams: {\n\t\t\tmailId: id,\n\t\t\tcrmid: crmid\n\t\t}\n\t}\n\tparams.async = false;\n\tparams.dataType = 'json';\n\twindow.crm.AppConnector.request(params).done(function (data) {\n\t\tvar response = data['result'];\n\t\tif (response['success']) {\n\t\t\tvar notifyParams = {\n\t\t\t\ttext: response['data'],\n\t\t\t\ttype: 'info',\n\t\t\t\tanimation: 'show'\n\t\t\t};\n\t\t} else {\n\t\t\tvar notifyParams = {\n\t\t\t\ttext: response['data'],\n\t\t\t\tanimation: 'show'\n\t\t\t};\n\t\t}\n\t\twindow.crm.Vtiger_Helper_Js.showPnotify(notifyParams);\n\t\tloadActionBar();\n\t});\n}\n\nfunction showPopup(params, actionsParams) {\n\tactionsParams['newModule'] = params['module'];\n\twindow.crm.app.showRecordsList(params, (modal, instance) => {\n\t\tinstance.setSelectEvent((responseData, e) => {\n\t\t\tactionsParams['newCrmId'] = responseData.id;\n\t\t\twindow.crm.AppConnector.request({\n\t\t\t\tasync: false,\n\t\t\t\tdataType: 'json',\n\t\t\t\tdata: {\n\t\t\t\t\tmodule: 'OSSMail',\n\t\t\t\t\taction: 'ExecuteActions',\n\t\t\t\t\tmode: 'addRelated',\n\t\t\t\t\tparams: actionsParams\n\t\t\t\t}\n\t\t\t}).done(function (data) {\n\t\t\t\tlet response = data['result'];\n\t\t\t\tif (response['success']) {\n\t\t\t\t\tvar notifyParams = {\n\t\t\t\t\t\ttext: response['data'],\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tvar notifyParams = {\n\t\t\t\t\t\ttext: response['data'],\n\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify(notifyParams);\n\t\t\t\tloadActionBar();\n\t\t\t});\n\t\t});\n\t});\n}\n\nfunction showQuickCreateForm(moduleName, record, params) {\n\tvar content = $('#ytActionBarContent');\n\tif (params == undefined) {\n\t\tvar params = {};\n\t}\n\tvar relatedParams = {};\n\tif (params['sourceModule']) {\n\t\tvar sourceModule = params['sourceModule'];\n\t} else {\n\t\tvar sourceModule = 'OSSMailView';\n\t}\n\tvar postShown = function (data) {\n\t\tvar index, queryParam, queryParamComponents;\n\t\t$('').appendTo(data);\n\t\t$('').appendTo(data);\n\t\t$('').appendTo(data);\n\t}\n\tvar ids = {\n\t\tlink: 'modulesLevel0',\n\t\tprocess: 'modulesLevel1',\n\t\tsubprocess: 'modulesLevel2',\n\t\tlinkextend: 'modulesLevel3'\n\t};\n\tfor (var i in ids) {\n\t\tvar element = content.find('#' + ids[i]);\n\t\tvar value = element.length ? JSON.parse(element.val()) : [];\n\t\tif ($.inArray(sourceModule, value) >= 0) {\n\t\t\trelatedParams[i] = record;\n\t\t}\n\t}\n\tif (moduleName == 'Leads') {\n\t\trelatedParams['company'] = rcmail.env.fromName;\n\t}\n\tif (moduleName == 'Leads' || moduleName == 'Contacts') {\n\t\trelatedParams['lastname'] = rcmail.env.fromName;\n\t}\n\tif (moduleName == 'Project') {\n\t\trelatedParams['projectname'] = rcmail.env.subject;\n\t}\n\tif (moduleName == 'HelpDesk') {\n\t\trelatedParams['ticket_title'] = rcmail.env.subject;\n\t}\n\tif (moduleName == 'Products') {\n\t\trelatedParams['productname'] = rcmail.env.subject;\n\t}\n\tif (moduleName == 'Services') {\n\t\trelatedParams['servicename'] = rcmail.env.subject;\n\t}\n\trelatedParams['email'] = rcmail.env.fromMail;\n\trelatedParams['email1'] = rcmail.env.fromMail;\n\trelatedParams['description'] = $('#messagebody').text();\n\t//relatedParams['related_to'] = record;\n\tvar postQuickCreate = function (data) {\n\t\tloadActionBar();\n\t}\n\trelatedParams['sourceModule'] = sourceModule;\n\trelatedParams['sourceRecord'] = record;\n\trelatedParams['relationOperation'] = true;\n\tvar quickCreateParams = {\n\t\tcallbackFunction: postQuickCreate,\n\t\tcallbackPostShown: postShown,\n\t\tdata: relatedParams,\n\t\tnoCache: true\n\t};\n\tvar headerInstance = new window.crm.Vtiger_Header_Js();\n\theaderInstance.quickCreateModule(moduleName, quickCreateParams);\n}\n\nfunction getCrmWindow() {\n\tif (opener !== null && opener.parent.CONFIG == \"object\") {\n\t\treturn opener.parent;\n\t} else if (typeof parent.CONFIG == \"object\") {\n\t\treturn parent;\n\t} else if (typeof parent.parent.CONFIG == \"object\") {\n\t\treturn parent.parent;\n\t} else if (typeof opener.crm.CONFIG == \"object\") {\n\t\treturn opener.crm;\n\t}\n\treturn false;\n}\n"],"names":["window","rcmail","addEventListener","crm","getCrmWindow","loadActionBar","env","message_commands","push","register_command","part","type","jQuery","ajax","url","urlencode","mailbox","uid","async","success","data","JSON","parse","Vtiger_Helper_Js","showPnotify","text","animation","$","params","module","view","folder","rcId","user_id","AppConnector","request","done","response","content","find","html","css","outerHeight","registerEvents","registerAddRecord","registerAddReletedRecord","registerSelectRecord","registerRemoveRecord","registerImportMail","click","icon","button","removeClass","addClass","block","toggle","trigger","app","vtranslate","action","e","currentTarget","closest","removeRecord","row","val","mailId","id","relParams","crmid","mod","newModule","showPopup","src_module","src_record","targetElement","sourceModule","showQuickCreateForm","selectValue","col","mode","dataType","notifyParams","actionsParams","showRecordsList","modal","instance","setSelectEvent","responseData","moduleName","record","appendTo","ids","link","process","subprocess","linkextend","i","value","element","length","inArray","relatedParams","fromName","subject","fromMail","Vtiger_Header_Js","headerInstance","quickCreateModule","callbackFunction","callbackPostShown","postShown","noCache","parent","CONFIG","opener"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"preview.min.js","sources":["preview.js"],"sourcesContent":["/* {[The file is published on the basis of MIT License]} */\nwindow.rcmail && rcmail.addEventListener('init', function (evt) {\n\t\twindow.crm = getCrmWindow();\n\t\tloadActionBar();\n\t\trcmail.env.message_commands.push('yetiforce.importICS');\n\t\trcmail.register_command('yetiforce.importICS', function (part, type) {\n\t\t\tjQuery.ajax({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: \"./?_task=mail&_action=plugin.yetiforce.importIcs&_mbox=\" + urlencode(rcmail.env.mailbox) + '&_uid=' + urlencode(rcmail.env.uid) + '&_part=' + part + '&_type=' + type,\n\t\t\t\tasync: false,\n\t\t\t\tsuccess: function (data) {\n\t\t\t\t\tdata = JSON.parse(data);\n\t\t\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\t\t\t\ttext: data['message'],\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}, true);\n\t}\n);\n\nfunction loadActionBar() {\n\tvar content = $('#ytActionBarContent');\n\tvar params = {\n\t\tmodule: 'OSSMail',\n\t\tview: 'MailActionBar',\n\t\tuid: rcmail.env.uid,\n\t\tfolder: rcmail.env.mailbox,\n\t\trcId: rcmail.env.user_id\n\t};\n\twindow.crm.AppConnector.request(params).done(function (response) {\n\t\tcontent.find('.ytHeader').html(response);\n\t\t$('#messagecontent').css('top', (content.outerHeight() + $('#messageheader').outerHeight()) + 'px');\n\t\tregisterEvents(content);\n\t});\n}\n\nfunction registerEvents(content) {\n\tregisterAddRecord(content);\n\tregisterAddReletedRecord(content);\n\tregisterSelectRecord(content);\n\tregisterRemoveRecord(content);\n\tregisterImportMail(content);\n\n\tvar block = content.find('.ytHeader .js-data');\n\tcontent.find('.hideBtn').click(function () {\n\t\tvar button = $(this);\n\t\tvar icon = button.find('.glyphicon');\n\n\t\tif (button.data('type') == '0') {\n\t\t\tbutton.data('type', '1');\n\t\t\ticon.removeClass(\"glyphicon-chevron-up\").addClass(\"glyphicon-chevron-down\");\n\t\t} else {\n\t\t\tbutton.data('type', '0');\n\t\t\ticon.removeClass(\"glyphicon-chevron-down\").addClass(\"glyphicon-chevron-up\");\n\t\t}\n\t\tblock.toggle();\n\t\t$(window).trigger(\"resize\");\n\t});\n}\n\nfunction registerImportMail(content) {\n\tcontent.find('.importMail').click(function (e) {\n\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\ttext: window.crm.app.vtranslate('StartedDownloadingEmail'),\n\t\t\ttype: 'info'\n\t\t});\n\t\twindow.crm.AppConnector.request({\n\t\t\tmodule: 'OSSMail',\n\t\t\taction: 'ImportMail',\n\t\t\tuid: rcmail.env.uid,\n\t\t\tfolder: rcmail.env.mailbox,\n\t\t\trcId: rcmail.env.user_id\n\t\t}).done(function (data) {\n\t\t\tloadActionBar();\n\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify({\n\t\t\t\ttext: window.crm.app.vtranslate('AddFindEmailInRecord'),\n\t\t\t\ttype: 'success'\n\t\t\t});\n\t\t})\n\t});\n}\n\nfunction registerRemoveRecord(content) {\n\tcontent.find('button.removeRecord').click(function (e) {\n\t\tvar row = $(e.currentTarget).closest('.rowRelatedRecord');\n\t\tremoveRecord(row.data('id'));\n\t});\n}\n\nfunction registerSelectRecord(content) {\n\tlet id = content.find('#mailActionBarID').val();\n\tcontent.find('button.selectRecord').click(function (e) {\n\t\tlet relParams = {\n\t\t\tmailId: id\n\t\t};\n\t\tif ($(this).data('type') == 0) {\n\t\t\tvar module = $(this).closest('.js-head-container').find('.module').val();\n\t\t\tif (module === null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\tvar module = $(this).data('module');\n\t\t\trelParams.crmid = $(this).closest('.rowRelatedRecord').data('id');\n\t\t\trelParams.mod = $(this).closest('.rowRelatedRecord').data('module');\n\t\t\trelParams.newModule = module;\n\t\t}\n\t\tshowPopup({\n\t\t\tmodule: module,\n\t\t\tsrc_module: 'OSSMailView',\n\t\t\tsrc_record: id,\n\t\t}, relParams);\n\t});\n}\n\nfunction registerAddReletedRecord(content) {\n\tvar id = content.find('#mailActionBarID').val();\n\tcontent.find('button.addRelatedRecord').click(function (e) {\n\t\tvar targetElement = $(e.currentTarget);\n\t\tvar row = targetElement.closest('.rowRelatedRecord');\n\t\tvar params = {sourceModule: row.data('module')};\n\t\tshowQuickCreateForm(targetElement.data('module'), row.data('id'), params);\n\t});\n}\n\nfunction registerAddRecord(content) {\n\tvar id = content.find('#mailActionBarID').val();\n\tcontent.find('button.addRecord').click(function (e) {\n\t\tvar col = $(e.currentTarget).closest('.js-head-container');\n\t\tlet selectValue = col.find('.module').val();\n\t\tif (selectValue !== null) {\n\t\t\tlet relatedRecords = []\n\t\t\tcontent.find('.js-data').find('.rowRelatedRecord').each((i, record) => {\n\t\t\t\tlet data = $(record).data()\n\t\t\t\trelatedRecords.push({module: data.module, id: data.id})\n\t\t\t})\n\t\t\tshowQuickCreateForm(selectValue, id, {relatedRecords: relatedRecords});\n\t\t}\n\t});\n}\n\nfunction removeRecord(crmid) {\n\tconst id = $('#mailActionBarID').val();\n\tlet params = {}\n\tparams.data = {\n\t\tmodule: 'OSSMail',\n\t\taction: 'ExecuteActions',\n\t\tmode: 'removeRelated',\n\t\tparams: {\n\t\t\tmailId: id,\n\t\t\tcrmid: crmid\n\t\t}\n\t}\n\tparams.async = false;\n\tparams.dataType = 'json';\n\twindow.crm.AppConnector.request(params).done(function (data) {\n\t\tconst response = data['result'];\n\t\tlet notifyParams = {\n\t\t\ttext: response['data'],\n\t\t\tanimation: 'show'\n\t\t};\n\t\tif (response['success']) {\n\t\t\tnotifyParams = {\n\t\t\t\ttext: response['data'],\n\t\t\t\ttype: 'info',\n\t\t\t\tanimation: 'show'\n\t\t\t};\n\t\t}\n\t\twindow.crm.Vtiger_Helper_Js.showPnotify(notifyParams);\n\t\tloadActionBar();\n\t});\n}\n\nfunction showPopup(params, actionsParams) {\n\tactionsParams['newModule'] = params['module'];\n\twindow.crm.app.showRecordsList(params, (modal, instance) => {\n\t\tinstance.setSelectEvent((responseData, e) => {\n\t\t\tactionsParams['newCrmId'] = responseData.id;\n\t\t\twindow.crm.AppConnector.request({\n\t\t\t\tasync: false,\n\t\t\t\tdataType: 'json',\n\t\t\t\tdata: {\n\t\t\t\t\tmodule: 'OSSMail',\n\t\t\t\t\taction: 'ExecuteActions',\n\t\t\t\t\tmode: 'addRelated',\n\t\t\t\t\tparams: actionsParams\n\t\t\t\t}\n\t\t\t}).done(function (data) {\n\t\t\t\tlet response = data['result'];\n\t\t\t\tif (response['success']) {\n\t\t\t\t\tvar notifyParams = {\n\t\t\t\t\t\ttext: response['data'],\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tvar notifyParams = {\n\t\t\t\t\t\ttext: response['data'],\n\t\t\t\t\t\tanimation: 'show'\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\twindow.crm.Vtiger_Helper_Js.showPnotify(notifyParams);\n\t\t\t\tloadActionBar();\n\t\t\t});\n\t\t});\n\t});\n}\n\nfunction showQuickCreateForm(moduleName, record, params = {}) {\n\tconst content = $('#ytActionBarContent');\n\tlet relatedParams = {},\n\t\tsourceModule = 'OSSMailView';\n\tif (params['sourceModule']) {\n\t\tsourceModule = params['sourceModule'];\n\t}\n\tconst postShown = function (data) {\n\t\tvar index, queryParam, queryParamComponents;\n\t\t$('').appendTo(data);\n\t\t$('').appendTo(data);\n\t\t$('').appendTo(data);\n\t}\n\tconst postQuickCreate = function (data) {\n\t\tloadActionBar();\n\t}\n\tconst ids = {\n\t\tlink: 'modulesLevel0',\n\t\tprocess: 'modulesLevel1',\n\t\tsubprocess: 'modulesLevel2',\n\t\tsubprocess_sl: 'modulesLevel3',\n\t\tlinkextend: 'modulesLevel4'\n\t};\n\tfor (var i in ids) {\n\t\tvar element = content.find('#' + ids[i]);\n\t\tvar value = element.length ? JSON.parse(element.val()) : [];\n\t\tif ($.inArray(sourceModule, value) >= 0) {\n\t\t\trelatedParams[i] = record;\n\t\t}\n\t}\n\tif (moduleName == 'Leads') {\n\t\trelatedParams['company'] = rcmail.env.fromName;\n\t}\n\tif (moduleName == 'Leads' || moduleName == 'Contacts') {\n\t\trelatedParams['lastname'] = rcmail.env.fromName;\n\t}\n\tif (moduleName == 'Project') {\n\t\trelatedParams['projectname'] = rcmail.env.subject;\n\t}\n\tif (moduleName == 'HelpDesk') {\n\t\trelatedParams['ticket_title'] = rcmail.env.subject;\n\t}\n\tif (moduleName == 'Products') {\n\t\trelatedParams['productname'] = rcmail.env.subject;\n\t}\n\tif (moduleName == 'Services') {\n\t\trelatedParams['servicename'] = rcmail.env.subject;\n\t}\n\trelatedParams['email'] = rcmail.env.fromMail;\n\trelatedParams['email1'] = rcmail.env.fromMail;\n\tlet messageBody = $('#messagebody').clone()\n\tmessageBody.find('.image-attachment').remove()\n\trelatedParams['description'] = messageBody.text()\n\t//relatedParams['related_to'] = record;\n\tif (params.relatedRecords !== undefined) {\n\t\trelatedParams['relatedRecords'] = params.relatedRecords;\n\t}\n\trelatedParams['sourceModule'] = sourceModule;\n\trelatedParams['sourceRecord'] = record;\n\trelatedParams['relationOperation'] = true;\n\tconst quickCreateParams = {\n\t\tcallbackFunction: (data) => {\n\t\t\tloadActionBar();\n\t\t},\n\t\tcallbackPostShown: postShown,\n\t\tdata: relatedParams,\n\t\tnoCache: true\n\t};\n\tconst headerInstance = new window.crm.Vtiger_Header_Js();\n\theaderInstance.quickCreateModule(moduleName, quickCreateParams);\n}\n\nfunction getCrmWindow() {\n\tif (opener !== null && opener.parent.CONFIG == \"object\") {\n\t\treturn opener.parent;\n\t} else if (typeof parent.CONFIG == \"object\") {\n\t\treturn parent;\n\t} else if (typeof parent.parent.CONFIG == \"object\") {\n\t\treturn parent.parent;\n\t} else if (typeof opener.crm.CONFIG == \"object\") {\n\t\treturn opener.crm;\n\t}\n\treturn false;\n}\n"],"names":["window","rcmail","addEventListener","crm","getCrmWindow","loadActionBar","env","message_commands","push","register_command","part","type","jQuery","ajax","url","urlencode","mailbox","uid","async","success","data","JSON","parse","Vtiger_Helper_Js","showPnotify","text","animation","$","params","module","view","folder","rcId","user_id","AppConnector","request","done","response","content","find","html","css","outerHeight","registerEvents","registerAddRecord","registerAddReletedRecord","registerSelectRecord","registerRemoveRecord","registerImportMail","click","icon","button","removeClass","addClass","block","toggle","trigger","app","vtranslate","action","e","currentTarget","closest","removeRecord","row","val","mailId","id","relParams","crmid","mod","newModule","showPopup","src_module","src_record","targetElement","sourceModule","showQuickCreateForm","selectValue","col","each","i","record","relatedRecords","mode","dataType","notifyParams","actionsParams","showRecordsList","modal","instance","setSelectEvent","responseData","moduleName","relatedParams","appendTo","ids","link","process","subprocess","subprocess_sl","linkextend","value","element","length","inArray","fromName","subject","fromMail","clone","messageBody","remove","Vtiger_Header_Js","headerInstance","quickCreateModule","callbackFunction","callbackPostShown","postShown","noCache","parent","CONFIG","opener"],"mappings":";;;;;;;;AACAA,OAAOC,MAAP,EAAiBA,OAAOC,gBAAP,CAAwB,MAAxB,CAAgC,UAAe,CAC9DF,OAAOG,GAAP,CAAaC,cADiD,CAE9DC,eAF8D,CAG9DJ,OAAOK,GAAP,CAAWC,gBAAX,CAA4BC,IAA5B,CAAiC,qBAAjC,CAH8D,CAI9DP,OAAOQ,gBAAP,CAAwB,qBAAxB,CAA+C,SAAUC,IAAV,CAAgBC,IAAhB,CAAsB,CACpEC,OAAOC,IAAP,CAAY,CACXF,KAAM,MADK,CAEXG,IAAK,0DAA4DC,UAAUd,OAAOK,GAAP,CAAWU,OAArB,CAA5D,CAA4F,QAA5F,CAAuGD,UAAUd,OAAOK,GAAP,CAAWW,GAArB,CAAvG,CAAmI,SAAnI,CAA+IP,IAA/I,CAAsJ,SAAtJ,CAAkKC,IAF5J,CAGXO,QAHW,CAIXC,QAAS,iBAAUC,IAAV,CAAgB,CACxBA,KAAOC,KAAKC,KAAL,CAAWF,IAAX,CADiB,CAExBpB,OAAOG,GAAP,CAAWoB,gBAAX,CAA4BC,WAA5B,CAAwC,CACvCC,KAAML,YADiC,CAEvCT,KAAM,MAFiC,CAGvCe,UAAW,MAH4B,CAAxC,EAKA,CAXU,CAAZ,EAaA,CAdD,KAeA,CAnBe,EAsBjB,sBAAA,EAAyB,aACVC,EAAE,qBAAF,CADU,CAEpBC,OAAS,CACZC,OAAQ,SADI,CAEZC,KAAM,eAFM,CAGZb,IAAKhB,OAAOK,GAAP,CAAWW,GAHJ,CAIZc,OAAQ9B,OAAOK,GAAP,CAAWU,OAJP,CAKZgB,KAAM/B,OAAOK,GAAP,CAAW2B,OALL,CAFW,CASxBjC,OAAOG,GAAP,CAAW+B,YAAX,CAAwBC,OAAxB,CAAgCP,MAAhC,EAAwCQ,IAAxC,CAA6C,SAAUC,QAAV,CAAoB,CAChEC,QAAQC,IAAR,CAAa,WAAb,EAA0BC,IAA1B,CAA+BH,QAA/B,CADgE,CAEhEV,EAAE,iBAAF,EAAqBc,GAArB,CAAyB,KAAzB,CAAiCH,QAAQI,WAAR,GAAwBf,EAAE,gBAAF,EAAoBe,WAApB,EAAzB,CAA8D,IAA9F,CAFgE,CAGhEC,eAAeL,OAAf,EACA,CAJD,EAKA,CAED,uBAAA,CAAwBA,OAAxB,CAAiC,CAChCM,kBAAkBN,OAAlB,CADgC,CAEhCO,yBAAyBP,OAAzB,CAFgC,CAGhCQ,qBAAqBR,OAArB,CAHgC,CAIhCS,qBAAqBT,OAArB,CAJgC,CAKhCU,mBAAmBV,OAAnB,CALgC,CAOhC,UAAYA,QAAQC,IAAR,CAAa,oBAAb,CAAZ,CACAD,QAAQC,IAAR,CAAa,UAAb,EAAyBU,KAAzB,CAA+B,UAAY,YAC7BtB,EAAE,IAAF,CAD6B,CAEtCuB,KAAOC,OAAOZ,IAAP,CAAY,YAAZ,CAF+B,CAIf,GAAvB,SAAOnB,IAAP,CAAY,MAAZ,CAJsC,EAKzC+B,OAAO/B,IAAP,CAAY,MAAZ,CAAoB,GAApB,CALyC,CAMzC8B,KAAKE,WAAL,CAAiB,sBAAjB,EAAyCC,QAAzC,CAAkD,wBAAlD,CANyC,GAQzCF,OAAO/B,IAAP,CAAY,MAAZ,CAAoB,GAApB,CARyC,CASzC8B,KAAKE,WAAL,CAAiB,wBAAjB,EAA2CC,QAA3C,CAAoD,sBAApD,CATyC,EAW1CC,MAAMC,MAAN,EAX0C,CAY1C5B,EAAE3B,MAAF,EAAUwD,OAAV,CAAkB,QAAlB,EACA,CAbD,EAcA,CAED,2BAAA,CAA4BlB,OAA5B,CAAqC,CACpCA,QAAQC,IAAR,CAAa,aAAb,EAA4BU,KAA5B,CAAkC,UAAa,CAC9CjD,OAAOG,GAAP,CAAWoB,gBAAX,CAA4BC,WAA5B,CAAwC,CACvCC,KAAMzB,OAAOG,GAAP,CAAWsD,GAAX,CAAeC,UAAf,CAA0B,yBAA1B,CADiC,CAEvC/C,KAAM,MAFiC,CAAxC,CAD8C,CAK9CX,OAAOG,GAAP,CAAW+B,YAAX,CAAwBC,OAAxB,CAAgC,CAC/BN,OAAQ,SADuB,CAE/B8B,OAAQ,YAFuB,CAG/B1C,IAAKhB,OAAOK,GAAP,CAAWW,GAHe,CAI/Bc,OAAQ9B,OAAOK,GAAP,CAAWU,OAJY,CAK/BgB,KAAM/B,OAAOK,GAAP,CAAW2B,OALc,CAAhC,EAMGG,IANH,CAMQ,UAAgB,CACvB/B,eADuB,CAEvBL,OAAOG,GAAP,CAAWoB,gBAAX,CAA4BC,WAA5B,CAAwC,CACvCC,KAAMzB,OAAOG,GAAP,CAAWsD,GAAX,CAAeC,UAAf,CAA0B,sBAA1B,CADiC,CAEvC/C,KAAM,SAFiC,CAAxC,EAIA,CAZD,EAaA,CAlBD,EAmBA,CAED,6BAAA,CAA8B2B,OAA9B,CAAuC,CACtCA,QAAQC,IAAR,CAAa,qBAAb,EAAoCU,KAApC,CAA0C,SAAUW,CAAV,CAAa,CACtD,QAAUjC,EAAEiC,EAAEC,aAAJ,EAAmBC,OAAnB,CAA2B,mBAA3B,CAAV,CACAC,aAAaC,IAAI5C,IAAJ,CAAS,IAAT,CAAb,EACA,CAHD,EAIA,CAED,6BAAA,CAA8BkB,OAA9B,CAAuC,CACtC,OAASA,QAAQC,IAAR,CAAa,kBAAb,EAAiC0B,GAAjC,EAAT,CACA3B,QAAQC,IAAR,CAAa,qBAAb,EAAoCU,KAApC,CAA0C,UAAa,CACtD,cAAgB,CACfiB,OAAQC,EADO,CAAhB,CAGA,GAA4B,CAAxB,IAAE,IAAF,EAAQ/C,IAAR,CAAa,MAAb,CAAJ,CAA+B,CAC9B,WAAaO,EAAE,IAAF,EAAQmC,OAAR,CAAgB,oBAAhB,EAAsCvB,IAAtC,CAA2C,SAA3C,EAAsD0B,GAAtD,EAAb,CACA,GAAe,IAAX,SAAJ,CACC,MAED,CALD,IAKO,CACN,WAAatC,EAAE,IAAF,EAAQP,IAAR,CAAa,QAAb,CAAb,CACAgD,UAAUC,KAAV,CAAkB1C,EAAE,IAAF,EAAQmC,OAAR,CAAgB,mBAAhB,EAAqC1C,IAArC,CAA0C,IAA1C,CAFZ,CAGNgD,UAAUE,GAAV,CAAgB3C,EAAE,IAAF,EAAQmC,OAAR,CAAgB,mBAAhB,EAAqC1C,IAArC,CAA0C,QAA1C,CAHV,CAINgD,UAAUG,SAAV,CAAsB1C,OACtB,CACD2C,UAAU,CACT3C,OAAQA,MADC,CAET4C,WAAY,aAFH,CAGTC,WAAYP,EAHH,CAAV,CAIGC,SAJH,EAKA,CApBD,EAqBA,CAED,iCAAA,CAAkC9B,OAAlC,CAA2C,CACjCA,QAAQC,IAAR,CAAa,kBAAb,EAAiC0B,GAAjC,EADiC,CAE1C3B,QAAQC,IAAR,CAAa,yBAAb,EAAwCU,KAAxC,CAA8C,SAAUW,CAAV,CAAa,mBACtCjC,EAAEiC,EAAEC,aAAJ,CADsC,CAEtDG,IAAMW,cAAcb,OAAd,CAAsB,mBAAtB,CAFgD,CAGtDlC,OAAS,CAACgD,aAAcZ,IAAI5C,IAAJ,CAAS,QAAT,CAAf,CAH6C,CAI1DyD,oBAAoBF,cAAcvD,IAAd,CAAmB,QAAnB,CAApB,CAAkD4C,IAAI5C,IAAJ,CAAS,IAAT,CAAlD,CAAkEQ,MAAlE,EACA,CALD,EAMA,CAED,0BAAA,CAA2BU,OAA3B,CAAoC,CACnC,OAASA,QAAQC,IAAR,CAAa,kBAAb,EAAiC0B,GAAjC,EAAT,CACA3B,QAAQC,IAAR,CAAa,kBAAb,EAAiCU,KAAjC,CAAuC,SAAUW,CAAV,CAAa,SACzCjC,EAAEiC,EAAEC,aAAJ,EAAmBC,OAAnB,CAA2B,oBAA3B,CADyC,CAE/CgB,YAAcC,IAAIxC,IAAJ,CAAS,SAAT,EAAoB0B,GAApB,EAFiC,CAGnD,GAAoB,IAAhB,cAAJ,CAA0B,CACzB,mBAAqB,EAArB,CACA3B,QAAQC,IAAR,CAAa,UAAb,EAAyBA,IAAzB,CAA8B,mBAA9B,EAAmDyC,IAAnD,CAAwD,SAACC,CAAD,CAAIC,MAAJ,CAAe,CACtE,SAAWvD,EAAEuD,MAAF,EAAU9D,IAAV,EAAX,CACA+D,eAAe3E,IAAf,CAAoB,CAACqB,OAAQT,KAAKS,MAAd,CAAsBsC,GAAI/C,KAAK+C,EAA/B,CAApB,EACA,CAHD,CAFyB,CAMzBU,oBAAoBC,WAApB,CAAiCX,EAAjC,CAAqC,CAACgB,eAAgBA,cAAjB,CAArC,EACA,CACD,CAXD,EAYA,CAED,qBAAA,CAAsBd,KAAtB,CAA6B,QACjB1C,EAAE,kBAAF,EAAsBsC,GAAtB,EADiB,CAExBrC,OAAS,EAFe,CAG5BA,OAAOR,IAAP,CAAc,CACbS,OAAQ,SADK,CAEb8B,OAAQ,gBAFK,CAGbyB,KAAM,eAHO,CAIbxD,OAAQ,CACPsC,OAAQC,EADD,CAEPE,MAAOA,KAFA,CAJK,CAHc,CAY5BzC,OAAOV,KAAP,GAZ4B,CAa5BU,OAAOyD,QAAP,CAAkB,MAbU,CAc5BrF,OAAOG,GAAP,CAAW+B,YAAX,CAAwBC,OAAxB,CAAgCP,MAAhC,EAAwCQ,IAAxC,CAA6C,SAAUhB,IAAV,CAAgB,cAC3CA,WAD2C,CAExDkE,aAAe,CAClB7D,KAAMY,aADY,CAElBX,UAAW,MAFO,CAFyC,CAMxDW,gBANwD,GAO3DiD,aAAe,CACd7D,KAAMY,aADQ,CAEd1B,KAAM,MAFQ,CAGde,UAAW,MAHG,CAP4C,EAa5D1B,OAAOG,GAAP,CAAWoB,gBAAX,CAA4BC,WAA5B,CAAwC8D,YAAxC,CAb4D,CAc5DjF,gBACA,CAfD,EAgBA,CAED,kBAAA,CAAmBuB,MAAnB,CAA2B2D,aAA3B,CAA0C,CACzCA,wBAA6B3D,aADY,CAEzC5B,OAAOG,GAAP,CAAWsD,GAAX,CAAe+B,eAAf,CAA+B5D,MAA/B,CAAuC,SAAC6D,KAAD,CAAQC,QAAR,CAAqB,CAC3DA,SAASC,cAAT,CAAwB,SAACC,YAAD,CAAqB,CAC5CL,uBAA4BK,aAAazB,EADG,CAE5CnE,OAAOG,GAAP,CAAW+B,YAAX,CAAwBC,OAAxB,CAAgC,CAC/BjB,QAD+B,CAE/BmE,SAAU,MAFqB,CAG/BjE,KAAM,CACLS,OAAQ,SADH,CAEL8B,OAAQ,gBAFH,CAGLyB,KAAM,YAHD,CAILxD,OAAQ2D,aAJH,CAHyB,CAAhC,EASGnD,IATH,CASQ,SAAUhB,IAAV,CAAgB,CACvB,aAAeA,WAAf,CACA,GAAIiB,gBAAJ,CACC,iBAAmB,CAClBZ,KAAMY,aADY,CAElB1B,KAAM,MAFY,CAGlBe,UAAW,MAHO,CAAnB,CADD,sBAOoB,CAClBD,KAAMY,aADY,CAElBX,UAAW,MAFO,CAAnB,CAKD1B,OAAOG,GAAP,CAAWoB,gBAAX,CAA4BC,WAA5B,CAAwC8D,YAAxC,CAduB,CAevBjF,gBACA,CAzBD,EA0BA,CA5BD,EA6BA,CA9BD,EA+BA,CAED,4BAAA,CAA6BwF,UAA7B,CAAyCX,MAAzC,CAA8D,WAAA,wDAAJ,EAAI,CACvD5C,QAAUX,EAAE,qBAAF,CAD6C,CAEzDmE,cAAgB,EAFyC,CAG5DlB,aAAe,aAH6C,CAIzDhD,mBAJyD,GAK5DgD,aAAehD,mBAL6C,gBAO3C,SAAUR,IAAV,CAAgB,CAEjCO,EAAE,mDAAqDiD,YAArD,CAAoE,MAAtE,EAA8EmB,QAA9E,CAAuF3E,IAAvF,CAFiC,CAGjCO,EAAE,mDAAqDuD,MAArD,CAA8D,MAAhE,EAAwEa,QAAxE,CAAiF3E,IAAjF,CAHiC,CAIjCO,EAAE,+DAAF,EAAmEoE,QAAnE,CAA4E3E,IAA5E,EACA,CAZ4D,CAgBvD4E,IAAM,CACXC,KAAM,eADK,CAEXC,QAAS,eAFE,CAGXC,WAAY,eAHD,CAIXC,cAAe,eAJJ,CAKXC,WAAY,eALD,CAhBiD,CAuB7D,IAAK,KAAL,OAAA,CAAmB,aACJ/D,QAAQC,IAAR,CAAa,IAAMyD,IAAIf,CAAJ,CAAnB,CADI,CAEdqB,MAAQC,QAAQC,MAAR,CAAiBnF,KAAKC,KAAL,CAAWiF,QAAQtC,GAAR,EAAX,CAAjB,CAA6C,EAFvC,CAGoB,CAAlC,IAAEwC,OAAF,CAAU7B,YAAV,CAAwB0B,KAAxB,CAHc,GAIjBR,cAAcb,CAAd,EAAmBC,MAJF,EAMlB,CACiB,OAAd,YA9ByD,GA+B5DY,sBAA2B7F,OAAOK,GAAP,CAAWoG,QA/BsB,GAiC3C,OAAd,cAAuC,UAAd,YAjCgC,IAkC5DZ,uBAA4B7F,OAAOK,GAAP,CAAWoG,QAlCqB,EAoC3C,SAAd,YApCyD,GAqC5DZ,0BAA+B7F,OAAOK,GAAP,CAAWqG,OArCkB,EAuC3C,UAAd,YAvCyD,GAwC5Db,2BAAgC7F,OAAOK,GAAP,CAAWqG,OAxCiB,EA0C3C,UAAd,YA1CyD,GA2C5Db,0BAA+B7F,OAAOK,GAAP,CAAWqG,OA3CkB,EA6C3C,UAAd,YA7CyD,GA8C5Db,0BAA+B7F,OAAOK,GAAP,CAAWqG,OA9CkB,EAgD7Db,oBAAyB7F,OAAOK,GAAP,CAAWsG,QAhDyB,CAiD7Dd,qBAA0B7F,OAAOK,GAAP,CAAWsG,QAjDwB,CAkD7D,gBAAkBjF,EAAE,cAAF,EAAkBkF,KAAlB,EAAlB,CACAC,YAAYvE,IAAZ,CAAiB,mBAAjB,EAAsCwE,MAAtC,EAnD6D,CAoD7DjB,0BAA+BgB,YAAYrF,IAAZ,EApD8B,CAsDzDG,OAAOuD,cAAP,SAtDyD,GAuD5DW,6BAAkClE,OAAOuD,cAvDmB,EAyD7DW,2BAAgClB,YAzD6B,CA0D7DkB,2BAAgCZ,MA1D6B,CA2D7DY,kCA3D6D,oBAoEtC,WAAW3F,GAAP,CAAW6G,gBApEuB,CAqE7DC,eAAeC,iBAAf,CAAiCrB,UAAjC,CAT0B,CACzBsB,iBAAkB,2BAAU,CAC3B9G,gBACA,CAHwB,CAIzB+G,kBAAmBC,SAJM,CAKzBjG,KAAM0E,aALmB,CAMzBwB,UANyB,CAS1B,EACA,CAED,qBAAA,EAAwB,CACvB,GAAe,IAAX,WAA2C,QAAxB,SAAOC,MAAP,CAAcC,MAArC,CACC,cAAcD,MAAd,CAFsB,OAGY,QAAxB,UAAOA,OAAOC,MAAd,CAHY,CAIfD,MAJe,CAKmB,QAA/B,UAAOA,OAAOA,MAAP,CAAcC,MAArB,CALY,CAMfD,OAAOA,MANQ,GAOgB,QAA5B,UAAOE,OAAOtH,GAAP,CAAWqH,MAAlB,CAPY,GAQfC,OAAOtH,GAGf"} \ No newline at end of file diff --git a/plugins/yetiforce/yetiforce.php b/plugins/yetiforce/yetiforce.php index d8fa53ec..f43f0548 100644 --- a/plugins/yetiforce/yetiforce.php +++ b/plugins/yetiforce/yetiforce.php @@ -5,6 +5,7 @@ * * @license MIT * @author Mariusz Krzaczkowski + * @author Radosław Skrzypczak */ class yetiforce extends rcube_plugin { @@ -27,10 +28,10 @@ public function init() $this->add_hook('login_after', [$this, 'loginAfter']); $this->add_hook('startup', [$this, 'startup']); $this->add_hook('authenticate', [$this, 'authenticate']); - if ($this->rc->task == 'mail') { + if ('mail' == $this->rc->task) { $this->register_action('plugin.yetiforce.addFilesToMail', [$this, 'addFilesToMail']); $this->register_action('plugin.yetiforce.getEmailTemplates', [$this, 'getEmailTemplates']); - $this->register_action('plugin.yetiforce.getConntentEmailTemplate', [$this, 'getConntentEmailTemplate']); + $this->register_action('plugin.yetiforce.getContentEmailTemplate', [$this, 'getContentEmailTemplate']); $this->register_action('plugin.yetiforce.importIcs', [$this, 'importIcs']); $this->rc->output->set_env('site_URL', $this->rc->config->get('site_URL')); $this->include_stylesheet('../../../../../layouts/resources/icons/userIcon.css'); @@ -40,7 +41,7 @@ public function init() chdir($this->rc->config->get('root_directory')); $this->loadCurrentUser(); - if ($this->rc->action === 'compose') { + if ('compose' === $this->rc->action) { $composeAddressModules = []; foreach (\App\Config::component('Mail', 'RC_COMPOSE_ADDRESS_MODULES') as $moduleName) { if (\App\Privilege::isPermitted($moduleName)) { @@ -68,7 +69,7 @@ public function init() $this->rc->output->set_env('crmView', $_SESSION['compose_data_' . $id]['param']['crmview']); } } - if ($this->rc->action === 'preview' || $this->rc->action === 'show') { + if ('preview' === $this->rc->action || 'show' === $this->rc->action) { $this->include_script('preview.js'); $this->include_stylesheet('../../../../../libraries/@fortawesome/fontawesome-free/css/all.css'); $this->include_stylesheet('preview.css'); @@ -112,7 +113,7 @@ public function authenticate($args) if ($row = $this->getAutoLogin()) { $host = false; foreach ($this->rc->config->get('default_host') as $key => $value) { - if (strpos($key, $row['mail_host']) !== false) { + if (false !== strpos($key, $row['mail_host'])) { $host = $key; } } @@ -145,7 +146,7 @@ public function loginAfter($args) require_once 'include/main/WebUI.php'; $pass = \App\Encryption::getInstance()->encrypt($pass); chdir($currentPath); - call_user_func_array([$this->rc->db, 'query'], array_merge([$sql], [$pass, $this->rc->get_user_id()])); + \call_user_func_array([$this->rc->db, 'query'], array_merge([$sql], [$pass, $this->rc->get_user_id()])); $this->rc->db->affected_rows(); } if ($_GET['_autologin'] && !empty($_REQUEST['_composeKey'])) { @@ -182,7 +183,7 @@ public function messageLoad($args) $from = $args['object']->headers->from; $from = explode('<', rtrim($from, '>'), 2); $fromName = ''; - if (count($from) > 1) { + if (\count($from) > 1) { $fromName = $from[0]; $fromMail = $from[1]; } else { @@ -209,9 +210,9 @@ public function messageComposeHead($args) foreach ($params as $key => &$value) { $args['param'][$key] = $value; } - if ((isset($params['crmmodule']) && $params['crmmodule'] == 'Documents') || (isset($params['filePath']) && $params['filePath'])) { + if ((isset($params['crmmodule']) && 'Documents' == $params['crmmodule']) || (isset($params['filePath']) && $params['filePath'])) { $userid = $this->rc->user->ID; - list($usec, $sec) = explode(' ', microtime()); + [$usec, $sec] = explode(' ', microtime()); $dId = preg_replace('/[^0-9]/', '', $userid . $sec . $usec); foreach (self::getAttachment($params['crmrecord'], $params['filePath']) as $index => $attachment) { $attachment['group'] = $COMPOSE_ID; @@ -258,7 +259,7 @@ public function messageComposeHead($args) $subjectNumber = \App\Fields\Email::findRecordNumber($subject, $params['crmmodule']); $recordNumber = \App\Fields\Email::findRecordNumber("[{$params['recordNumber']}]", $params['crmmodule']); - if ($subject === false || ($subject !== false && $subjectNumber !== $recordNumber)) { + if (false === $subject || (false !== $subject && $subjectNumber !== $recordNumber)) { $subject = "[{$params['recordNumber']}] $subject"; } chdir($currentPath); @@ -289,7 +290,7 @@ public function messageComposeBody($args) $replyto = $row['reply_to_email']; $prefix = $suffix = ''; - if ($type === 'forward') { + if ('forward' === $type) { if (!$bodyIsHtml) { $prefix = "\n\n\n-------- " . $this->rc->gettext('originalmessage') . " --------\n"; $prefix .= $this->rc->gettext('subject') . ': ' . $subject . "\n"; @@ -376,7 +377,7 @@ public function loadSignature($response) $signatures[$identityId]['text'] = $signature['text'] . PHP_EOL . $gS['text']; $signatures[$identityId]['html'] = $signature['html'] . '
    ' . $gS['html'] . '
    '; } - if (count($MESSAGE->identities)) { + if (\count($MESSAGE->identities)) { foreach ($MESSAGE->identities as &$identity) { $identityId = $identity['identity_id']; if (!isset($signatures[$identityId])) { @@ -412,7 +413,7 @@ public function checkAddSignature() $db = $RCMAIL->get_dbh(); $sqlResult = $db->query("SELECT * FROM yetiforce_mail_config WHERE `type` = 'signature' AND `name` = 'addSignature';"); while ($sql_arr = $db->fetch_assoc($sqlResult)) { - return $sql_arr['value'] == 'false' ? true : false; + return 'false' == $sql_arr['value'] ? true : false; } return true; } @@ -434,13 +435,13 @@ public function addFilesToMail() } $this->rc = rcmail::get_instance(); $index = 0; - + $htmlAttachments = ''; $attachments = $this->getAttachment($ids, false); foreach ($attachments as $attachment) { - $index++; + ++$index; $attachment['group'] = $COMPOSE_ID; $userid = rcmail::get_instance()->user->ID; - list($usec, $sec) = explode(' ', microtime()); + [$usec, $sec] = explode(' ', microtime()); $id = preg_replace('/[^0-9]/', '', $userid . $sec . $usec) . $index; $attachment['id'] = $id; $_SESSION['plugins']['filesystem_attachments'][$COMPOSE_ID][$id] = realpath($attachment['path']); @@ -470,9 +471,9 @@ public function addFilesToMail() 'class' => 'delete', 'aria-label' => $this->rc->gettext('delete') . ' ' . $attachment['name'], ], $button); - $content = $COMPOSE['icon_pos'] == 'left' ? $delete_link . $content_link : $content_link . $delete_link; + $content = 'left' == $COMPOSE['icon_pos'] ? $delete_link . $content_link : $content_link . $delete_link; - $htmlAttachments = 'window.rcmail.add2attachment_list("rcmfile' . $id . '",{html:"' . rcube::JQ($content) . '",name:"' . $attachment['name'] . '",mimetype:"' . $attachment['mimetype'] . '",classname:"' . rcube_utils::file2class($attachment['mimetype'], $attachment['name']) . '",complete:true},"' . $uploadid . '");' . PHP_EOL; + $htmlAttachments .= 'window.rcmail.add2attachment_list("rcmfile' . $id . '",{html:"' . rcube::JQ($content) . '",name:"' . $attachment['name'] . '",mimetype:"' . $attachment['mimetype'] . '",classname:"' . rcube_utils::file2class($attachment['mimetype'], $attachment['name']) . '",complete:true},"' . $uploadid . '");' . PHP_EOL; } echo ' @@ -497,7 +498,7 @@ public function getAttachment($ids, $files) if (empty($ids) && empty($files)) { return $attachments; } - if (is_array($ids)) { + if (\is_array($ids)) { $ids = implode(',', $ids); } $this->rc = rcmail::get_instance(); @@ -508,7 +509,7 @@ public function getAttachment($ids, $files) $sql_result = $db->query("SELECT vtiger_attachments.* FROM vtiger_attachments INNER JOIN vtiger_seattachmentsrel ON vtiger_seattachmentsrel.attachmentsid=vtiger_attachments.attachmentsid WHERE vtiger_seattachmentsrel.crmid IN ($ids);"); while ($row = $db->fetch_assoc($sql_result)) { $orgFile = $this->rc->config->get('root_directory') . $row['path'] . $row['attachmentsid']; - list($usec, $sec) = explode(' ', microtime()); + [$usec, $sec] = explode(' ', microtime()); $filepath = $this->rc->config->get('temp_dir') . DIRECTORY_SEPARATOR . "{$sec}_{$userid}_{$row['attachmentsid']}_$index.tmp"; if (file_exists($orgFile)) { copy($orgFile, $filepath); @@ -520,24 +521,34 @@ public function getAttachment($ids, $files) ]; $attachments[] = $attachment; } - $index++; + ++$index; } } if ($files) { - $orgFile = $this->rc->config->get('root_directory') . $files; - list($usec, $sec) = explode(' ', microtime()); - $filepath = $this->rc->config->get('root_directory') . "cache/mail/{$sec}_{$userid}_{$index}.tmp"; - if (file_exists($orgFile)) { - copy($orgFile, $filepath); - $attachment = [ - 'path' => $filepath, - 'size' => filesize($filepath), - 'name' => basename($orgFile), - 'mimetype' => rcube_mime::file_content_type($filepath, basename($orgFile)), - ]; - $attachments[] = $attachment; - } - $index++; + if (!\is_array($files)) { + $files = [$files]; + } + foreach ($files as $file) { + $orgFileName = $file['name'] ?? basename($file); + $orgFilePath = $file['path'] ?? $file; + $orgFile = $this->rc->config->get('root_directory') . $orgFilePath; + [$usec, $sec] = explode(' ', microtime()); + $filepath = $this->rc->config->get('temp_dir') . DIRECTORY_SEPARATOR . "{$sec}_{$userid}_{$index}.tmp"; + if (file_exists($orgFile)) { + copy($orgFile, $filepath); + $attachment = [ + 'path' => $filepath, + 'size' => filesize($filepath), + 'name' => $orgFileName, + 'mimetype' => rcube_mime::file_content_type($filepath, $orgFileName), + ]; + if (0 === strpos($orgFilePath, 'cache')) { + unlink($orgFile); + } + $attachments[] = $attachment; + } + ++$index; + } } return $attachments; } @@ -550,13 +561,13 @@ public function rcmailWrapAndQuote($text, $length = 72) $out = ''; foreach ($lines as $line) { // don't wrap already quoted lines - if ($line[0] == '>') { + if ('>' == $line[0]) { $line = '>' . rtrim($line); } elseif (mb_strlen($line) > $max) { $newline = ''; foreach (explode("\n", rcube_mime::wordwrap($line, $length - 2)) as $l) { - if (strlen($l)) { + if (\strlen($l)) { $newline .= '> ' . $l . "\n"; } else { $newline .= ">\n"; @@ -644,7 +655,11 @@ public function getEmailTemplates() $currentPath = getcwd(); chdir($this->rc->config->get('root_directory')); $this->loadCurrentUser(); - $emailTemplates = App\Mail::getTempleteList(false, 'PLL_MAIL'); + $emailTemplates = App\Mail::getTemplateList('', 'PLL_MAIL'); + foreach ($emailTemplates as &$template) { + $moduleLabel = $template['module_name']; + $template['moduleTranslate'] = $moduleLabel ? \App\Language::translate($moduleLabel, $moduleLabel) : ''; + } echo App\Json::encode($emailTemplates); chdir($currentPath); exit; @@ -653,24 +668,27 @@ public function getEmailTemplates() /** * Function to get info about email template. */ - public function getConntentEmailTemplate() + public function getContentEmailTemplate() { - $templeteId = rcube_utils::get_input_value('id', rcube_utils::INPUT_GPC); + $templateId = rcube_utils::get_input_value('id', rcube_utils::INPUT_GPC); $recordId = rcube_utils::get_input_value('record_id', rcube_utils::INPUT_GPC); $moduleName = rcube_utils::get_input_value('select_module', rcube_utils::INPUT_GPC); $currentPath = getcwd(); chdir($this->rc->config->get('root_directory')); $this->loadCurrentUser(); - $mail = App\Mail::getTemplete($templeteId); - if ($recordId) { - $textParser = \App\TextParser::getInstanceById($recordId, $moduleName); - $mail['subject'] = $textParser->setContent($mail['subject'])->parse()->getContent(); - $mail['content'] = $textParser->setContent($mail['content'])->parse()->getContent(); + $mail = []; + if (\App\Privilege::isPermitted('EmailTemplates', 'DetailView', $templateId)) { + $mail = \App\Mail::getTemplate($templateId); + if ($recordId) { + $textParser = \App\TextParser::getInstanceById($recordId, $moduleName); + $mail['subject'] = $textParser->setContent($mail['subject'])->parse()->getContent(); + $mail['content'] = $textParser->setContent($mail['content'])->parse()->getContent(); + } } echo App\Json::encode([ - 'subject' => $mail['subject'], - 'content' => $mail['content'], - 'attachments' => $mail['attachments'], + 'subject' => $mail['subject'] ?? null, + 'content' => $mail['content'] ?? null, + 'attachments' => $mail['attachments'] ?? null ]); chdir($currentPath); exit; @@ -685,12 +703,12 @@ public function setIcsData(array $args) { $this->message = $args['object']; foreach ((array) $this->message->attachments as $attachment) { - if ($attachment->mimetype === 'application/ics' || $attachment->mimetype === 'text/calendar') { + if ('application/ics' === $attachment->mimetype || 'text/calendar' === $attachment->mimetype) { $this->icsParts[] = ['part' => $attachment->mime_id, 'uid' => $this->message->uid, 'type' => 'attachments']; } } foreach ((array) $this->message->parts as $part) { - if ($part->mimetype === 'application/ics' || $part->mimetype === 'text/calendar') { + if ('application/ics' === $part->mimetype || 'text/calendar' === $part->mimetype) { $this->icsParts[] = ['part' => $part->mime_id, 'uid' => $this->message->uid, 'type' => 'parts']; } } @@ -717,7 +735,7 @@ public function appendIcsPreview($args) if (!isset($ics[$key])) { $ics[$key] = [$recordModel, $icsPart]; if (isset($counterBtn[$icsPart['part']])) { - $counterBtn[$icsPart['part']]++; + ++$counterBtn[$icsPart['part']]; } else { $counterBtn[$icsPart['part']] = 1; } @@ -799,7 +817,7 @@ public function appendIcsPreview($args) $showMore = true; } if (isset($counterList[$icsPart['part']])) { - $counterList[$icsPart['part']]++; + ++$counterList[$icsPart['part']]; } else { $counterList[$icsPart['part']] = 1; } @@ -828,7 +846,8 @@ public function importIcs() $recordModel->set('assigned_user_id', $this->currentUser->getId()); $recordModel->save(); if ($recordModel->getId()) { - $status++; + $calendar->recordSaveAttendee($recordModel); + ++$status; } } chdir($currentPath); diff --git a/version.php b/version.php index 4c74cbe6..d319fa79 100644 --- a/version.php +++ b/version.php @@ -1,5 +1,6 @@ '2019.02.26', - 'version' => '0.0.67' + 'patch' => '2019.07.26', + 'version' => '0.0.77' ];