Files
dev-chiefworks f76abffdcd first commit
2022-05-31 16:21:53 -04:00

237 lines
8.4 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Tracking extends Admin_Controller {
var $template = array(
'table_open' => "<table class='table table-striped table-hover table-bordered table-condensed'>",
'thead_open' => '<thead class=\'bg-indigo\'>',
'thead_close' => '</thead>',
'heading_row_start' => '<tr>',
'heading_row_end' => '</tr>',
'heading_cell_start' => '<th>',
'heading_cell_end' => '</th>',
'tbody_open' => '<tbody>',
'tbody_close' => '</tbody>',
'row_start' => '<tr>',
'row_end' => '</tr>',
'cell_start' => '<td>',
'cell_end' => '</td>',
'row_alt_start' => '<tr>',
'row_alt_end' => '</tr>',
'cell_alt_start' => '<td>',
'cell_alt_end' => '</td>',
'table_close' => '</table>'
);
public function index() {
$this->load->helper('url');
$data = array();
/*
$this->load->model('admindash_model');
$out = $this->admindash_model->getAdminDashData($data);
$data['recent_signup'] = $out['recent_signup'];
$this->load->model('service_model');
$outx = $this->service_model->getServiceRequestList(100);
$data['transport_request'] = $outx['service_request_list'];
$this->load->library('googlemaps');
$config['center'] = 'atalnta,GA,USA';
$config['zoom'] = 'auto';
$config['directions'] = TRUE;
$config['directionsStart'] = '4201 defoors farm trail, powder springs, GA 30127, USA';
$config['directionsEnd'] = '2324 stancrest ln, lawrenceville, 30044, GA, USA';
$config['directionsDivID'] = 'directionsDiv';
$this->googlemaps->initialize($config);
$data['map'] = $this->googlemaps->create_map();
*/
$this->load->library('table');
$this->table->set_template($this->template);
$mysql = "SELECT id,username,firstname,lastname,'<button type=\"button\" class=\"btn btn-info\">View</button>' As action FROM members";
$query = $this->read_replica->query($mysql);
$this->table->set_heading(array('data' => 'ID', 'style' => 'width:10px'), 'USERNAME', 'FIRSTNAME', 'LASTNAME', array('data' => 'ACTION', 'style' => 'width:90px'));
$data['member_table'] = $this->table->generate($query);
//$data['js'] = array('https://maps.googleapis.com/maps/api/js?key=AIzaSyDvjiRTxngOQyBP4zpqFlZuiquc0ROvo9c&callback=initMap');
$this->renderAdminPage('view_dash', $data);
// echo 'Ameye Olu';
}
protected function renderAdminPage($page_name, $data) {
$this->load->view('admin/view_admin_header', $data);
$this->load->view('admin/' . $page_name, $data);
$this->load->view('admin/view_admin_footer', $data);
}
public function gpsdata() {
$data = array();
/*
$this->load->model('admindash_model');
$out = $this->admindash_model->getAdminDashData($data);
$data['recent_signup'] = $out['recent_signup'];
$this->load->model('service_model');
$outx = $this->service_model->getServiceRequestList(100);
$data['transport_request'] = $outx['service_request_list'];
$this->load->library('googlemaps');
$config['center'] = 'atalnta,GA,USA';
$config['zoom'] = 'auto';
$config['directions'] = TRUE;
$config['directionsStart'] = '4201 defoors farm trail, powder springs, GA 30127, USA';
$config['directionsEnd'] = '2324 stancrest ln, lawrenceville, 30044, GA, USA';
$config['directionsDivID'] = 'directionsDiv';
$this->googlemaps->initialize($config);
$data['map'] = $this->googlemaps->create_map();
*/
ob_start();
$this->load->library('table');
$this->table->set_template($this->template);
$data['page_title'] = "Recent Tracking Data";
$mysql = "SELECT m.id,m.firstname,'<button type=\"button\" class=\"btn btn-info\">View</button>' As action FROM members m";
$query = $this->read_replica->query($mysql);
// $this->table->set_heading(array('data' => 'ID', 'style' => 'width:10px'), 'USERNAME','FIRSTNAME','LASTNAME', array('data' => 'ACTION', 'style' => 'width:90px'));
$res = array(array('First Name','Action','ID','Member ID','Tracked Group','Speed','Latitude','Longitude','Time','Location','Created'));
$gps = $this->load->database('gps', TRUE);
$dummy = new stdClass;
$dummy->id = "";
$dummy->member_id = "";
$dummy->traked_group = "";
$dummy->speed = "";
$dummy->lat = "";
$dummy->lng = "";
$dummy->ttime = "";
$dummy->loc = "";
$dummy->created = "";
foreach ($query->result() as $row) {
$q = "SELECT * FROM members_tracking WHERE member_id=".$row->id." ORDER BY id DESC LIMIT 1";
$r = $gps->query($q);
$d = $r->result();
if (is_array($d) && count($d)>0 && is_object($d[0])) {
list($f) = $d;
$res[] = array($row->firstname,$row->action,$f->id,$f->member_id,$f->traked_group,$f->speed,$f->lat,$f->lng,$f->ttime,$f->loc,$f->created);
}
}
$data['member_table'] = $this->table->generate($res);
ob_get_clean();
//$data['js'] = array('https://maps.googleapis.com/maps/api/js?key=AIzaSyDvjiRTxngOQyBP4zpqFlZuiquc0ROvo9c&callback=initMap');
$this->renderAdminPage('view_gpstrack', $data);
}
public function crashlog() {
$this->load->model('crash_log_model');
$data = [];
$params = [];
$params = $this->input->get();
$query = $this->crash_log_model->getLogQuery($params);
$tableData = $this->returnAdminTable(
[
'count_query' => $query,
'query' => $query,
],
'/tracking/crashlog',
[
'per_page' => 20,
'reuse_query_string' => TRUE,
]
);
$data['filterData'] = $params;
$data['links'] = $tableData['links'];
$data['crashlog_table'] = $tableData['output_table'];
$this->renderAdminPage('view_crashlog', $data);
}
public function crashlogentry() {
$id = (int)$this->input->get('id');
if ($id>0) {
$q = "SELECT * FROM crash_log WHERE id=${id}";
$r = $this->read_replica->query($q);
$f = $r->result_array();
if (is_array($f) and count($f)>0) {
$data['entry'] = $f[0];
$data['entry']['data'] = Tracking::prettyPrint($data['entry']['data']);
$this->load->view('admin/view_crashlog_entry', $data);
} else {
echo "Record was not found";
return;
}
} else {
echo "Invalid ID";
return;
}
}
public static function prettyPrint( $json ) {
$result = '';
$level = 0;
$in_quotes = false;
$in_escape = false;
$ends_line_level = NULL;
$json_length = strlen( $json );
for( $i = 0; $i < $json_length; $i++ ) {
$char = $json[$i];
$new_line_level = NULL;
$post = "";
if( $ends_line_level !== NULL ) {
$new_line_level = $ends_line_level;
$ends_line_level = NULL;
}
if ( $in_escape ) {
$in_escape = false;
} else if( $char === '"' ) {
$in_quotes = !$in_quotes;
} else if( ! $in_quotes ) {
switch( $char ) {
case '}': case ']':
$level--;
$ends_line_level = NULL;
$new_line_level = $level;
break;
case '{': case '[':
$level++;
case ',':
$ends_line_level = $level;
break;
case ':':
$post = " ";
break;
case " ": case "\t": case "\n": case "\r":
$char = "";
$ends_line_level = $new_line_level;
$new_line_level = NULL;
break;
}
} else if ( $char === '\\' ) {
$in_escape = true;
}
if( $new_line_level !== NULL ) {
$result .= "\n".str_repeat( "\t", $new_line_level );
}
$result .= $char.$post;
}
return $result;
}
}