let map; function initMap() { map = new google.maps.Map(document.getElementById('map'), { center: { lat: 3.397, lng: 10.644 }, zoom: 3 }); } let loaded_data = new Array(); function showTranspModal(service_request_id) { if (typeof event !== 'undefined') { event.preventDefault(); } // alert(service_request_id); // collect data - either from forms or from data variables let id = $(this).data('id'); // load the modal content with a loader gif and message $('#modal-content').html('Loading...'); msg //alert(6); $.ajax({ url: "/transp/transp_modal?service_request_id=" + service_request_id }).done(function(data) { //alert(data); //alert(7); $('#modal-content').html(data); //initialize_map(); let myLatlng = new google.maps.LatLng(33.7489954, -84.3879824); let myOptions = { zoom: 13, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); directionsDisplay.setMap(map); directionsDisplay.setPanel(document.getElementById("directionsDiv")); fitMapToBounds_map(); calcRoute(loaded_data[0], loaded_data[1]); //alert(loaded_data[0]); }); } function plotMarkers(locations) { let n = parseInt('' + locations.length / 2, 10) - 1; if (n < 0) n = 0; let map = new google.maps.Map(document.getElementById('map'), { zoom: 11, center: new google.maps.LatLng(locations[n].lat, locations[0].lng), mapTypeId: google.maps.MapTypeId.ROADMAP }); let flightPath = new google.maps.Polyline({ path: locations, geodesic: true, strokeColor: '#FF0000', strokeOpacity: 1.0, strokeWeight: 4 }); flightPath.setMap(map); } function viewTracked(traked_group, page_no, render = false) { $('#member_tracking_form').find('#traked_group').val(traked_group); if (render) { $('#trackgroup_list').html('Processing...'); $('#acc' + traked_group).prop('disabled', true); } let filters = { 'traked_group': traked_group } $.ajax({ url: '/member/viewtrackedgroup', type: 'post', dataType: 'json', data: { 'row_no': page_no, 'proc': 'PROCESS', 'filters': filters }, success: function(data) { $('#pagination-member-tracking').html(data.pagination); createMemberTrackingTable(data.result); if (render) { plotMarkers(data.locations); $('#acc' + traked_group).prop('disabled', false); } }, complete: function() { } }); return false; } function createMemberTrackingTable(result) { $('#member-tracking-list tbody').empty(); for (index in result) { let id = result[index].id; let member_id = result[index].member_id; let tracked_group = result[index].traked_group; let speed = result[index].speed; let lat = result[index].lat; let lng = result[index].lng; let gps = result[index].gps; let ttime = result[index].ttime; let loc = result[index].loc; let dev_id = result[index].device_id; let prev_id = result[index].previous_id; let dis = result[index].distance; let dur = result[index].duration; let tr = ` ${id} ${member_id} ${tracked_group} ${speed} ${lat} ${lng} ${gps} ${ttime} ${loc} ${dev_id} ${prev_id} ${dis} ${dur} `; $('#member-tracking-list tbody').append(tr); } } $(document).ready(() => { // Datepicker $( "#traked_group_form #start_date" ).datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 3, format: 'yyyy-mm-dd', onClose: function( selectedDate ) { $( "#traked_group_form #start_date" ).datepicker( "option", "minDate", selectedDate ); } }); $( "#traked_group_form #end_date" ).datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 3, format: 'yyyy-mm-dd', onClose: function( selectedDate ) { $( "#traked_group_form #end_date" ).datepicker( "option", "maxDate", selectedDate ); } }); $( "#member_tracking_form #start_date" ).datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 3, format: 'yyyy-mm-dd', onClose: function( selectedDate ) { $( "#member_tracking_form #start_date" ).datepicker( "option", "minDate", selectedDate ); } }); $( "#member_tracking_form #end_date" ).datepicker({ defaultDate: "+1w", changeMonth: true, numberOfMonths: 3, format: 'yyyy-mm-dd', onClose: function( selectedDate ) { $( "#member_tracking_form #end_date" ).datepicker( "option", "maxDate", selectedDate ); } }); $('#export_csv').click(function() { window.open("/member/export_member_tracking",'_blank'); }) $('#search').click(function() { let form = $('#traked_group_form'); let filters = { 'start_date': form.find('#start_date').val(), 'end_date': form.find('#end_date').val(), 'member_id':form.find('#member_id').val(), }; let pageno = $(this).attr('data-ci-pagination-page'); loadTrackedGroupRecord(pageno, filters, $(this)); }) // Detect pagination click $('#pagination_tracked_group').on('click', 'a', function(e) { e.preventDefault(); let form = $('#traked_group_form'); let pageno = $(this).attr('data-ci-pagination-page'); let filters = { 'start_date': form.find('#start_date').val(), 'end_date': form.find('#end_date').val(), 'member_id':form.find('#member_id').val(), }; loadTrackedGroupRecord(pageno, filters); }); // Prevent submit form by press the enter button $(window).keydown(function(event) { if (event.keyCode == 13) { event.preventDefault(); let form = $('#traked_group_form'); let filters = { 'start_date': form.find('#start_date').val(), 'end_date': form.find('#end_date').val(), 'member_id':form.find('#member_id').val(), }; loadTrackedGroupRecord(0, filters); } }); function createTrackedGroupTable(result) { $('#tracked-group-list tbody').empty(); for (index in result) { let tracked_group = result[index].traked_group; let count = result[index].count; let tr = ` ${tracked_group} ${count} `; $('#tracked-group-list tbody').append(tr); } } // Load Page Tracked Group When Initialize loadTrackedGroupRecord(0, { 'member_id': $('#traked_group_form').find('#member_id').val() }); function loadTrackedGroupRecord(pagno, filters, btnSearch = null) { loadingButton(btnSearch); $.ajax({ url: '/member/loadTrackedGroupRecord', type: 'post', dataType: 'json', data: { 'row_no': pagno, 'filters': filters }, success: function(response) { if (response.hasOwnProperty("error")) { $('#error-msg').html(response.error); $('#print-error-msg').show(); $('#pagination_tracked_group, #tracked-group-list').hide(); } else { $('#pagination_tracked_group').html(response.pagination); createTrackedGroupTable(response.result); $('#pagination_tracked_group, #tracked-group-list').show(); } }, complete: function() { stopLoadingButton(btnSearch); } }); } // Detect member tracking pagination click $('#pagination-member-tracking').on('click', 'a', function(e) { e.preventDefault(); let pageno = $(this).attr('data-ci-pagination-page'); let url = $(this).attr('href'); viewTracked(getURLParameter(url, 'traked_group'), pageno); }); function getURLParameter(url, name) { return (RegExp(name + '=' + '(.+?)(&|$)').exec(url) || [, null])[1]; } $('#search_member_tracking').on('click', function(event) { event.preventDefault(); let form = $('#member_tracking_form'); let traked_group = form.find('#traked_group').val(); if (!traked_group) { alert('Please choose a tracked group !!!'); return; } let filters = { 'start_date': form.find('#start_date').val(), 'end_date': form.find('#end_date').val(), 'device_id': form.find('#device_id').val(), 'radius': form.find('#radius').val(), 'lat': form.find('#lat').val(), 'lng': form.find('#lng').val(), 'traked_group': traked_group } let btnSearch = $(this); loadingButton(btnSearch); $.ajax({ url: '/member/viewtrackedgroup', type: 'post', dataType: 'json', data: { 'proc': 'PROCESS', 'filters': filters }, success: function(data) { $('#pagination-member-tracking').html(data.pagination); createMemberTrackingTable(data.result); if (data.hasOwnProperty("error")) { $('#member-tracking-error-msg').html(data.error); $('#print-member-tracking-error-msg').show(); $('#pagination-member-tracking, #member-tracking-list').hide(); } else { $('#print-member-tracking-error-msg').hide(); $('#pagination-member-tracking').html(data.pagination); createMemberTrackingTable(data.result); $('#pagination-member-tracking, #member-tracking-list').show(); } }, complete: function() { stopLoadingButton(btnSearch); } }); }) // close errror message $('.close').on('click', function(e) { e.preventDefault(); $(this).parent().hide(); }) function loadingButton(btn) { if (btn !== null) btn.button('loading'); } function stopLoadingButton(btn) { if (btn !== null) btn.button('reset'); } });