| 
<style>.tab-content>.active {
 display: block;
 /* padding: 0px; */
 /* margin-left: 10px; */
 }
 
 
 #exTab1 .tab-content {
 color : white;
 background-color: #428bca;
 padding : 5px 15px;
 }
 
 #exTab2 h3 {
 color : white;
 background-color: #428bca;
 padding : 5px 15px;
 }
 
 /* remove border radius for the tab */
 
 
 </style>
 
 <!-- Content Wrapper. Contains page content -->
 <div class="content-wrapper">
 <!-- Content Header (Page header) -->
 <div class="content-header">
 <div class="container-fluid">
 <div class="row mb-2">
 <div class="col-sm-6">
 <h1 class="m-0"><?php echo get_text_by_lang('Send new email','admin');?></h1>
 </div><!-- /.col -->
 
 </div><!-- /.row -->
 </div><!-- /.container-fluid -->
 </div>
 <!-- /.content-header -->
 
 <!-- Main content -->
 <section class="content">
 <div class="container-fluid">
 <!-- Info boxes -->
 <div class="row">
 <div class="col-12 col-md-12 col-sm-12">
 
 <div class="row">
 <div class="col-12">
 <!-- Custom Tabs -->
 <div class="card">
 <div class="card-header d-flex p-0">
 <!-- <h3 class="card-title p-3">Tabs</h3> -->
 <ul class="nav nav-pills  p-2">
 <li class="nav-item tab1"><a class="nav-link a_tab1 active" href="#tab_1" data-toggle="tab"><?php echo get_text_by_lang('New email information','admin');?></a></li>
 <li class="nav-item tab2"><a class="nav-link a_tab2" href="#tab_2" data-toggle="tab"><?php echo get_text_by_lang('Send logs','admin');?></a></li>
 
 
 
 </ul>
 </div><!-- /.card-header -->
 <div class="card-body">
 <div class="tab-content">
 <div class="tab-pane active" id="tab_1">
 
 <div class="row" style="margin-top:10px;margin-bottom:10px;">
 <div class="col-lg-12">
 <p>
 <span><?php echo get_text_by_lang('To Groups','admin');?>:</span>
 
 <select name="general[system_status]" id="groups" class="form-control groups  select2js">
 </select>
 </p>
 <p>
 <span><?php echo get_text_by_lang('From Template','admin');?>:</span>
 
 <select name="general[system_status]" id="template_id" class="form-control template_id  select2js">
 </select>
 </p>
 
 </div>
 
 
 </div>
 
 
 
 <p>
 <button type="button" name="btnSave" class="btn btn-info btnSend"><i class='fas fa-paper-plane'></i> <?php echo get_text_by_lang('Add new job','admin');?></button>
 </p>
 </div>
 <!-- /.tab-pane -->
 <div class="tab-pane" id="tab_2">
 <button type="button" name="btnSave" class="btn btn-info btnStart"><i class='fas fa-paper-plane'></i> <?php echo get_text_by_lang('Start Send','admin');?></button>
 <button type="button" name="btnSave" class="btn btn-info btnStop hide"><i class='fas fa-paper-plane'></i> <?php echo get_text_by_lang('Stop','admin');?></button>
 <p style='margin-top:10px;'>
 <span class='text-primary' style='margin-right:20px;'><?php echo get_text_by_lang('Total sended','admin');?>: <span class='job_total_sended_email' style='margin-right:5px;'>0</span>/ <span class='job_total_email' style='margin-right:10px;'>0</span></span>
 </p>
 <p><?php echo get_text_by_lang('Logs','admin');?>:</p>
 <p>
 <textarea class='form-control' style='height:500px;width:100%;'></textarea>
 </p>
 
 </div>
 <!-- /.tab-pane -->
 
 
 
 
 </div>
 <!-- /.tab-content -->
 </div><!-- /.card-body -->
 </div>
 <!-- ./card -->
 </div>
 <!-- /.col -->
 </div>
 <!-- /.row -->
 <!-- END CUSTOM TABS -->
 
 </div>
 <!-- /.col -->
 </div>
 <!-- /.row -->
 
 
 <!-- /.row -->
 </div><!--/. container-fluid -->
 </section>
 <!-- /.content -->
 </div>
 <!-- /.content-wrapper -->
 
 <script>
 
 pageData['listGroups']=<?php echo json_encode($listGroups);?>;
 pageData['listTemplates']=<?php echo json_encode($listTemplates);?>;
 pageData['theData']=<?php echo json_encode($theData);?>;
 
 pageData['email_send_list']=[];
 pageData['cur_email_index']=0;
 pageData['job_id']='';
 
 pageData['is_sending']=false;
 pageData['send_completed']=false;
 
 function prepareGroupsData()
 {
 var total=pageData['listGroups'].length;
 
 var li='';
 
 li+='<option value="" selected>Select a email group</option>';
 
 for (var i = 0; i < total; i++) {
 
 li+='<option value="'+pageData['listGroups'][i]['group_id']+'">'+pageData['listGroups'][i]['title']+'</option>';
 }
 
 $('.groups').html(li).trigger('change');
 
 prepareTemplatesData();
 
 if(typeof pageData['theData'][0]!='undefined')
 {
 prepareSendData();
 }
 }
 
 function prepareSendData()
 {
 pageData['job_id']=pageData['theData'][0]['job_id'];
 $('.job_total_sended_email').html(pageData['theData'][0]['total_sended']);
 $('.job_total_email').html(pageData['theData'][0]['total_email']);
 
 
 $('.a_tab2').trigger('click');
 }
 
 function prepareTemplatesData()
 {
 var total=pageData['listTemplates'].length;
 
 var li='';
 
 li+='<option value="" selected>Select a email template</option>';
 
 for (var i = 0; i < total; i++) {
 
 li+='<option value="'+pageData['listTemplates'][i]['template_id']+'">'+pageData['listTemplates'][i]['title']+'</option>';
 }
 
 $('.template_id').html(li).trigger('change');
 }
 
 $(document).ready(function(){
 
 $('.select2js').select2();
 
 prepareGroupsData();
 
 
 });
 
 function setSelect(id,value)
 {
 $('#'+id+' option').each(function(){
 var thisVal=$(this).val();
 
 if(thisVal==value)
 {
 $(this).attr('selected',true);
 }
 
 });
 }
 
 //btnSavePage1
 
 function email_marketing_load_email_for_send()
 {
 var sendData={};
 sendData['type']='1';
 sendData['job_id']=pageData['job_id'];
 
 pageData['email_send_list']=[];
 
 postData(API_URL+'email_marketing_load_email_for_send', sendData).then(data => {
 toastr.success("Job starting...");
 
 var total=data['data'].length;
 
 pageData['send_completed']=false;
 
 for (var i = 0; i < total; i++) {
 pageData['email_send_list'].push(data['data'][i]['to_email']);
 }
 pageData['cur_email_index']=0;
 
 setTimeout(function(){
 send_email();
 }, 2000);
 
 });
 }
 
 function updateStats()
 {
 $('.job_total_sended_email').html(pageData['cur_email_index'].toString());
 $('.job_total_email').html(pageData['email_send_list'].length.toString());
 
 }
 
 function send_email()
 {
 if(typeof pageData['email_send_list'][pageData['cur_email_index']]=='undefined')
 {
 pageData['is_sending']=false;
 $('.btnStart').addClass('hide');
 $('.btnStop').removeClass('hide');
 toastr.error("Job stopped!");
 return false;
 }
 var sendData={};
 sendData['type']='1';
 sendData['job_id']=pageData['job_id'];
 sendData['email']=pageData['email_send_list'][pageData['cur_email_index']];
 
 if(sendData['email'].length < 5)
 {
 pageData['is_sending']=false;
 $('.btnStart').addClass('hide');
 $('.btnStop').removeClass('hide');
 toastr.error("Job stopped!");
 return false;
 }
 
 pageData['send_completed']=true;
 
 toastr.success("Sending email to "+sendData['email']);
 
 postData(API_URL+'email_marketing_sendemail', sendData).then(data => {
 pageData['cur_email_index']+=1;
 updateStats();
 send_email();
 });
 }
 
 $(document).on('click','.btnSend',function(){
 var sendData={};
 
 if(pageData['is_sending']==true)
 {
 showAlert('','Email is sending, you can stop sending email then add new job!');
 return;
 }
 
 sendData['type']='1';
 sendData['group_id']=$('.groups > option:selected').val().trim();
 sendData['template_id']=$('.template_id > option:selected').val().trim();
 
 if(typeof sendData['group_id']=='undefined' || sendData['group_id']==null)
 {
 showAlert('','Select a group');
 return;
 }
 
 if(sendData['group_id'].length==0)
 {
 showAlert('','Select a group');
 return;
 }
 
 if(typeof sendData['template_id']=='undefined' || sendData['template_id']==null)
 {
 showAlert('','Select a template');
 return;
 }
 if(sendData['template_id'].length==0)
 {
 showAlert('','Select a template');
 return;
 }
 
 pageData['theData']=[];
 postData(API_URL+'email_marketing_add_new_job', sendData).then(data => {
 // console.log(data); // JSON data parsed by `data.json()` call
 
 pageData['theData']=data['data'];
 
 prepareSendData();
 $('.a_tab2').trigger('click');
 
 email_marketing_load_email_for_send();
 toastr.success("Create job completed");
 });
 
 });
 
 
 $(document).on('click','.btnStart',function(){
 pageData['is_sending']=true;
 
 email_marketing_load_email_for_send();
 
 });
 
 $(document).on('click','.btnStop',function(){
 pageData['is_sending']=false;
 
 });
 
 
 
 
 </script>
 |