bulkmail.blade.php 6.56 KB
<?php
use App\Jobs\KHRMSLib;

$wakka = new KHRMSLib();
?>

<div class="layout-app"><!-- row-app -->
    <div class="row row-app">

    <div class="col-md-12">
      
        <div class="col-separator col-separator-first col-unscrollable box">
            <div class=innerAll>
          
    
                



<!-- Tabs -->
<div id="tabsT">
	<ul>
		<li><a href="#tabsT-1">Bulk Mail</a></li>
	</ul>

  <div id=tabsT-1>
    <fieldset>
	<legend>Bulk Mail Form</legend>
	<p>
		<label>From:</label>
		<select id=valfrom><option value="system">System</option><!--<option value="<?php echo $wakka->GetUserName(); ?>"><?php echo $wakka->GetUserName(); ?></option>--></select>
		<span class="field_desc"></span><span class="validate_success"></span><span class="validate_error"></span>
	</p>
	
	
	<p>
		<label>Recepients CSV:</label>
		<textarea cols="80" rows="20" style='width:99%' id=recepients>Email</textarea>
		<span class="field_desc"></span><span class="validate_success"></span><span class="validate_error"></span>
	</p>
	
	
	<p>
		<label>Subject:</label>
		<input type=text id=valsubject class=lf placeholder="Subject">
		<span class="field_desc"></span><span class="validate_success"></span><span class="validate_error"></span>
	</p>
	
	<p>
		<label>Content:</label>
		<!-- WYSIWYG editor -->
		<textarea cols="80" rows="50" style='height:500px;width:100%' class="wysiwyg" id=mailcontent></textarea>
		<!-- End of WYSIWYG editor -->
		<span class="field_desc" id=fdattach1></span><span class="validate_success"></span><span class="validate_error"></span>
	</p>
	
	<p>
		<label>Attachment 1:</label>
		<input type=file id=attach1 name=attach1>
		<span class="field_desc"></span><span class="validate_success"></span><span class="validate_error"></span>
	</p>
	
	<p>
		<label>Attachment 2:</label>
		<input type=file id=attach2 name=attach2>
		<span class="field_desc" id=fdattach2></span><span class="validate_success"></span><span class="validate_error"></span>
	</p>
	<p>
		<label>Start Sending Mails:</label>
		<input type=button class=button value="Start Sending Mails" onclick="startMails();return false;">
		<span class="field_desc"></span><span class="validate_success"></span><span class="validate_error"></span>
	</p>
	
	</fieldset>
  </div>
</div>
<div id=mailstats></div>
<div id=mailprogress></div>
<div id=mailresults style='width:100%;height:400px;overflow:auto'></div>
<div id=tempdiv></div>

<script>
$("#mailprogress").progressbar({ value: 0 });

var mailingxhr='';
function startMails()
{
  var valasync=false;
  var threads=10;

  var frommail=$("#valfrom").val();
  var recepientsData=$("#recepients").val();
  var subject='';
  var content='';
  var tomail='';
  var attach1=$("#fdattach1").html();
  var attach2=$("#fdattach2").html();
  
  var toheaders=new Array();
  
  var recepientsLine=recepientsData.split("\n");

  if(attach1.indexOf("NOT SAVED")&&$('#fdattach1 a')[0])attach1=$('#fdattach1 a')[0].getAttribute('href');
  if(attach2.indexOf("NOT SAVED")&&$('#fdattach2 a')[0])attach2=$('#fdattach2 a')[0].getAttribute('href');
  
  for(i=0;i<recepientsLine.length;i++)
  {
	var recepients=recepientsLine[i].split(",");
	content=$("#mailcontent").val();
	subject=$("#valsubject").val();
	
	for(j=0;j<recepients.length;j++)
	{
	  if(i==0)
	  {
		toheaders[j]=recepients[j];
	  }
	  else
	  {
	    var varcomp=new RegExp("{{"+toheaders[j]+"}}",'g');
		content=content.replace(varcomp,recepients[j]);
		subject=subject.replace(varcomp,recepients[j]);
		if(toheaders[j]=="Email")tomail=recepients[j];
	  }
	}
	if(i>0&&tomail!="")
	{
	  if(i%threads==1)valasync=false;
	  else valasync=true;
	  sendmailMain("mailresults",tomail,frommail,content,subject,attach1,attach2,valasync);
	}
	tomail='';
	$("#mailprogress").progressbar("option", "value", parseInt((i+1)*100/(recepientsLine.length)));
	$("#mailstats").html("Sending "+(i+1)+" of "+(recepientsLine.length) +" ("+parseInt((i+1)*100/recepientsLine.length)+"%)");
  }
  
  //sendmailMain('tempdiv','<?php echo $wakka->GetBBBUserData("email"); ?>',"System",$("#mailresults").html(),"Mail Blasting Completed",'','',true)
}

function sendmailMain(targetDiv,tomail,frommail,content,subject,attach1,attach2,valasync)
{
  var dataStr="_token=<?php echo csrf_token(); ?>";
  dataStr+="&tomail="+encodeURIComponent(tomail);
  dataStr+="&frommail="+encodeURIComponent(frommail);
  dataStr+="&content="+encodeURIComponent(content);
  dataStr+="&subject="+encodeURIComponent(subject);
  dataStr+="&attach1="+encodeURIComponent(attach1);
  dataStr+="&attach2="+encodeURIComponent(attach2);
  
  mailingxhr = jQuery.ajax(
  {
    type:"POST",
    async: valasync,
    url:"hr?action=BulkMailSubmit",
    contentType: 'application/x-www-form-urlencoded;', 
    data:encodeURI(dataStr),
    dataType:'html',
    success:function(response)
    {
      $("#"+targetDiv).append(response);
    },
    error: function(response){$("#"+targetDiv).append("<div class=error>Network Error for "+tomail+": </div>");}
  });
}

function ajaxFileUpload2(eid,varid)
{
    var flg=1;
    var gn=$("#genericfilename").val();
    var uhandle=$('#'+eid).ajaxfileupload({
      'action': 'FileUpload2/ajax',
      'params': {
        'name': eid,
	'varid' : varid,
	'gr':gn,
	'_token':'<?php echo csrf_token(); ?>'
      },
      'onComplete': function(response) {
	if(response.status==false)
	{
	  $("#searchresults").html("<div class='message error close'><h2>Error!</h2><p>"+response.message+"</p></div>");
	  messageCloseFun();
	  $("#"+eid).val("");
	  return false;
	}

	var filename=$("#"+eid).val();
	varNS="NOT SAVED?";
	console.log('custom handler for file:'+filename+',id '+eid+',varid '+varid);

	var fpath="userfiles/templates/hrms/uploads/"+varid+"/"+filename;
	if(flg)$("#fd"+eid).html("<font color=red>"+varNS+"</font> <a href='"+fpath+"' target=_BLANK><b>"+filename+"</b></a>");
	$(".tooltip"+eid).easyTooltip();
        //alert(JSON.stringify(response));
      },
      'onStart': function() {
	if(eid=='genericfileselect'&&$("#genericfilename").val()==''){$("#searchresults").html("<div class='message error close'><h2>Error!</h2><p>Please Select File Name</p></div>");messageCloseFun();flg=0;return false;}

	flg=1;
	$("#fd"+eid).html("<font color=blue>Uploading...</font>");
	console.log('started:');
	$("#gr").val($("#genericfilename").val());
        //if(weWantedTo) return false; // cancels upload
      },
      'onCancel': function() {
        console.log('no file selected');
      }
    });

    return false;
}


ajaxFileUpload2('attach1','mailer');
ajaxFileUpload2('attach2','mailer');

</script>
               
                
                
            </div>
        </div>
    </div>
    
    </div>
</div><!-- // END row-app -->