| Server IP : 104.21.21.239 / Your IP : 216.73.217.99 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/connectionsdev/mod/ |
Upload File : |
<?php
use classes\lib\BatchJob;
include('_mod_security.php');
$sql = '';
switch ($_GET['func']):
case 'grid' :
require_once('classes/lcs_db_grid.php');
$dbg = new lcs_db_grid;
$dbg->start_header_section();
$dbg->start_header();
$dbg->add_column(['label' => 'Job Type', 'dbcol' => 'bj.job_type', 'width' => '100px']);
$dbg->add_column(['label' => 'Status', 'dbcol' => 'bj.status', 'width' => '120px']);
$dbg->add_column(['label' => 'Start Time', 'dbcol' => 'bj.start_time', 'width' => '130px']);
$dbg->add_column(['label' => 'End Time', 'dbcol' => 'bj.end_time', 'width' => '130px']);
$dbg->add_column(['label' => 'Total Items', 'dbcol' => 'bj.total_recs', 'width' => '100px', 'sortable'=> false, 'searchable'=>false, 'align'=>'right']);
$dbg->add_column(['label' => 'Processed Items', 'dbcol' => 'bj.processed_recs', 'width' => '100px', 'sortable'=> false, 'searchable'=>false, 'align'=>'right']);
$dbg->add_column(['label' => '% Complete', 'width' => '100px', 'sortable'=> false, 'searchable'=>false, 'align'=>'right']);
$dbg->add_column(['label' => 'View Output', 'width' => '120px', 'sortable'=> false, 'searchable'=>false]);
$dbg->add_column(['label' => 'Cancel', 'sortable' => false, 'searchable' => false, 'width' => '85px', 'align' => 'center']);
$dbg->end_header();
$dbg->end_header_section();
$sql = "SELECT bj.*, IF(COALESCE(bj.total_recs, 0) = 0, 0, round(COALESCE(bj.processed_recs, 0) / bj.total_recs * 100)) AS percent_complete FROM batch_jobs bj ".
"WHERE ".$dbg->search_spec()." ".$_GET['parm1']." ".$_GET['parm2']." ".$_GET['parm3']." ".
"ORDER BY ".$dbg->sort_spec();
//echo ' === '.$sql.' === ';
$xls_sql = $sql;
$xls_sql_encoded = xls_sql_encrypt($xls_sql);
$result = $db->query($sql) or die('Database Error!');
$dbg->start_data_section();
if ($result->rowCount() > 0) :
while ($row = $result->fetch(PDO::FETCH_OBJ)) :
$dbg->start_row($row->id);
$dbg->add_cell($row->job_type);
$dbg->add_cell($row->status, 'status_' . $row->id);
$dbg->add_cell($row->start_time);
$dbg->add_cell($row->end_time, 'end_time_' . $row->id);
$dbg->add_cell($row->total_recs, 'total_recs_' . $row->id);
$dbg->add_cell($row->processed_recs, 'processed_recs_' . $row->id);
//$dbg->add_cell(empty($row->total_recs) ? 0 : (int)($row->processed_recs / $row->total_recs * 100), 'precent_' . $row->id);
$dbg->add_cell($row->percent_complete, 'percent_' . $row->id);
$dbg->add_cell('<a href="javascript:show_job_output('.$row->id.');" >'.substr(strip_tags($row->output), 0, 50).'</a>', 'output_' . $row->id);
if ($row->status == 'running') :
$dbg->add_cell('<a href="javascript:confirm_cancel('.$row->id.');"><img src="img/delete_icon.gif" style="border:none;" /></a>', 'cancel_' . $row->id);
else :
$dbg->add_cell('');
endif;
$dbg->end_row();
endwhile;
else :
$dbg->start_row();
$dbg->add_cell('No records found');
$dbg->end_row();
endif;
$dbg->end_data_section();
echo json_encode(['row_count' => $result->rowCount(), 'html' => $dbg->get_html(), 'xls_sql' => $xls_sql_encoded, 'extra_data'=> '']);
return;
break;
case 'get_job_status' :
$sql = "SELECT *, IF(COALESCE(bj.total_recs, 0) = 0, 0, round(COALESCE(bj.processed_recs, 0) / bj.total_recs * 100)) AS percent_complete FROM batch_jobs bj WHERE bj.job_type = 'batch_email' AND
(
status IN ('not_started', 'running') OR
status IN ('completed', 'cancelled') AND end_time > DATE_SUB(NOW(), INTERVAL 2 MINUTE)
)
AND bj.reference_id = ".nz(trim($_GET['id']), '0');
$result = $db->query($sql);
$data = [];
if ($result->rowCount() > 0) :
while ($row = $result->fetch(PDO::FETCH_ASSOC)) :
$row['output'] = substr(strip_tags($row['output']), 0, 50);
foreach($row as $index => $value) :
if ($value === NULL) :
$row[$index] = '';
endif;
endforeach;
$data[] = $row;
endwhile;
endif;
$msg = 'Success';
echo json_encode(['result' => $msg, 'data' => $data]);
return;
break;
case 'cancel_job' :
$batch_job = new BatchJob((int)nz(trim($_GET['id']), '0'));
$batch_job->request_cancellation();
$msg = 'Success';
echo json_encode(['result' => $msg]);
return;
break;
case 'get_output' :
$batch_job = new BatchJob((int)nz(trim($_GET['id']), '0'));
$html = $batch_job->get_output();
$msg = 'Success';
echo json_encode(['result' => $msg, 'html' => $html]);
return;
break;
case 'load_email_contacts' :
require_once('classes/lcs_db_grid.php');
$dbg = new lcs_db_grid;
$dbg->start_header_section();
$dbg->start_header();
$dbg->add_column(['label' => 'Select', 'sortable' => false, 'searchable' => false, 'width' => '50px', 'align' => 'center']);
$dbg->add_column(['label' => 'First Name', 'dbcol' => 'c.first_name', 'width' => '80px']);
$dbg->add_column(['label' => 'Last Name', 'dbcol' => 'c.last_name', 'width' => '80px']);
$dbg->add_column(['label' => 'Venue', 'dbcol' => 'v.name', 'width' => '120px']);
$dbg->end_header();
$dbg->end_header_section();
$sql = "SELECT c.id, c.first_name, c.last_name, v.name FROM contacts c INNER JOIN venues v ON (v.id = c.venue_id) ".
"WHERE ".$dbg->search_spec()." ".$_GET['parm1']." ".$_GET['parm2']." ".$_GET['parm3']." ".
"ORDER BY ".$dbg->sort_spec();
//echo ' === '.$sql.' === ';
$xls_sql = $sql;
$xls_sql_encoded = xls_sql_encrypt($xls_sql);
$result = $db->query($sql) or die('Database Error!');
$dbg->start_data_section();
if ($result->rowCount() > 0) :
while ($row = $result->fetch(PDO::FETCH_OBJ)) :
$dbg->start_row();
$dbg->add_cell('<input id="contact_selected_'.$row->id.'" name="contact_selected['.$row->id.']" class="no_dirty contact_selected" type="checkbox" value="1" onclick="click_email_selection(this, ' . $row->id . ')" />');
$dbg->add_cell($row->first_name);
$dbg->add_cell($row->last_name);
$dbg->add_cell($row->name);
$dbg->end_row();
endwhile;
else :
$dbg->start_row();
$dbg->add_cell('No records found');
$dbg->end_row();
endif;
$dbg->end_data_section();
echo json_encode(['row_count' => $result->rowCount(), 'html' => $dbg->get_html(), 'xls_sql' => $xls_sql_encoded, 'extra_data'=> '']);
return;
break;
endswitch;