237 lines
8.4 KiB
PHP
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;
|
|
}
|
|
}
|