flexbiz-server
Version:
Flexible Server
8 lines (7 loc) • 2.96 kB
JavaScript
'use strict';var model=global.getModel("mailschedule"),Account=global.getModel("mailaccount");const controller=require("../../controllers/controller");var schedule=require("../../libs/schedule");const underscore=require("underscore"),async=require("async");
let createSchedule=function($item$$,$next$$){let $n_item$$={};underscore.extend($n_item$$,$item$$);$n_item$$.to=[];$item$$.address&&$n_item$$.to.push({address:$item$$.address,name:$item$$.address});$item$$.cc&&$n_item$$.to.push({address:$item$$.cc,name:$item$$.cc});async.mapSeries($item$$.to,function($t$$,$fn$$){$t$$.address&&$n_item$$.to.push($t$$);if($t$$.contact&&$t$$.contact.model){let $zmodel$$=global.getModel(""+$t$$.contact.model),$field_email$$=$t$$.contact.field_email?$t$$.contact.field_email:
"email",$field_name$$=$t$$.contact.field_name?$t$$.contact.field_name:"name";$zmodel$$.find($t$$.contact.query?$t$$.contact.query:{}).lean().exec(function($e$$,$rs$$){if($e$$)return $fn$$($e$$);for(let $z$$ of $rs$$)$z$$[$field_email$$]&&$n_item$$.to.push({address:$z$$[$field_email$$],name:$z$$[$field_name$$]});$fn$$()})}else $fn$$()},function(){schedule.deleteMailJob($item$$._id,function(){schedule.createMailJob($n_item$$);$next$$(null,$n_item$$)})})};
module.exports=function($router$$){(new controller($router$$,model,"mailschedule",{sort:{date_created:-1},notNeedRight:!0,onView:function($user$$,$items$$,$next$$){$items$$.joinModel($user$$.current_id_app,Account,[{where:{_id:"account_id"},fields:[{name:"from_name",value:"fullname"},{name:"from_address",value:"username"}]}],function(){$items$$.forEach(function($item$$){$item$$.from=[{name:$item$$.from_name,address:$item$$.from_address}]});$next$$(null,$items$$)})},onFinding:function($user$$,$condition$$,
$next$$){$condition$$.user_created=$user$$.email;$next$$(null,$condition$$)},onCreating:function($text_user$$,$item$$,$next$$){$item$$.mail&&$item$$.mail.html&&($text_user$$=$item$$.mail.html.replace(/<(?:.|\n)*?>/gm,""),$item$$.mail.text=$text_user$$,$item$$.small_text=128<$item$$.mail.text.length?$item$$.mail.text.substring(0,128)+"...":$item$$.mail.text);$next$$(null,$item$$)},onCreated:function($user$$,$item$$,$next$$){createSchedule($item$$,function(){$next$$(null,$item$$)})},onUpdating:function($text$jscomp$1_user$$,
$data$$,$item$$,$next$$){if($item$$.send)return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt email n\u00e0y v\u00ec n\u00f3 \u0111\u00e3 \u0111\u01b0\u1ee3c g\u1eedi");$data$$.mail&&$data$$.mail.html&&($text$jscomp$1_user$$=$data$$.mail.html.replace(/<(?:.|\n)*?>/gm,""),$data$$.mail.text=$text$jscomp$1_user$$,$data$$.small_text=128<$data$$.mail.text.length?$data$$.mail.text.substring(0,128)+"...":$data$$.mail.text);$next$$(null,$data$$,$item$$)},onUpdated:function($user$$,$item$$,$next$$){createSchedule($item$$,
function(){$next$$(null,$item$$)})},onDeleted:function($user$$,$item$$,$next$$){schedule.deleteMailJob($item$$._id,function(){$next$$(null,$item$$)})}})).route()};