function showbtn1(id) {
$('#on' + id).hide();
$('#off' + id).show();
}
function showbtn2(id) {
$('#on' + id).show();
$('#off' + id).hide();
}
function formatTime(time) {
return time < 10 ? '0' + time : time;
}
<?php
if(isset($time_track)){
$from=$time_track->start_time;
$to=date('Y-m-d h:i:s');
$datetime1 = new DateTime($from);
$datetime2 = new DateTime($to);
$diff = $datetime2->diff($datetime1);
$seconds = $diff->s + ($diff->i * 60) + ($diff->h * 3600) + ($diff->days * 86400);
$taskid=$time_track->task_id; ?>
startTimer(0, 0, <?= $seconds ?>, <?= $taskid ?>);
$('#tracking-times').addClass("btn btn-success");
<?php }
?>
var timerInterval;
function startTimer(hours, minutes, seconds, id) {
var tseconds = hours * 3600 + minutes * 60 + seconds;
timerInterval = setTimeout(function() {
var hours = formatTime(Math.floor(tseconds / 3600));
var minutes = formatTime(Math.floor((tseconds % 3600) / 60));
var seconds = formatTime(tseconds % 60);
var timeString = hours + ':' + minutes + ':' + seconds;
tseconds++;
$('#tracking-times').text(timeString)
startTimer(Math.floor(tseconds / 3600), Math.floor((tseconds % 3600) / 60), tseconds % 60);
}, 1000);
}
function startTask(id, time) {
$.ajax({
type: "POST",
url: "{{ route('task.start-task') }}",
data: {
id: id,
_token: '{{csrf_token()}}'
},
success: function(data) {
startTimer(0, 0, 1, id);
$('#tracking-times').addClass("btn btn-success");
},
error: function(data, textStatus, errorThrown) {},
});
}
function endTask(id) {
$.ajax({
type: "POST",
url: "{{ route('task.end-task') }}",
data: {
id: id,
_token: '{{csrf_token()}}'
},
success: function(data) {
clearTimeout(timerInterval);
},
error: function(data, textStatus, errorThrown) {},
});
}
</script>
public function viewTask(){
$time_track=Track::where('tracker_on','1')
->Where('user_id',Auth::user()->id)
->first();
$task=Task::WHERE('assigned_to',Auth::user()->id)->get();
$today=date('Y-m-d');
$taskArr=array();
foreach($task as $key=>$row){
$users=DB::select("select GROUP_CONCAT(u.name) as names from users u WHERE id IN($row->assigned_to)");
$times=DB::select("SELECT SUM(TIMESTAMPDIFF(SECOND, start_time, end_time)) AS difference,tracker_on FROM `track` WHERE task_id='$row->id' GROUP BY task_id");
$track=DB::select("SELECT tracker_on FROM `task_track` WHERE tracker_on='1' AND task_id='$row->id'");
$taskArr[$key]['due_date']=date('d-m-Y',strtotime($row->due_date));
if($row->due_date < $today && $row->status<4 ){
$exp=1;
}else{ $exp=0;}
$taskArr[$key]['expired']=$exp;
$taskArr[$key]['due']=$row->due_time;
$taskArr[$key]['id']=$row->id;
$taskArr[$key]['summary']=$row->task_summary;
$taskArr[$key]['description']=$row->task_description;
$taskArr[$key]['recurring']=$row->recurring;
$taskArr[$key]['assigned']=isset($users) ? $users:'N/A';
$taskArr[$key]['recurring_options']=$row->recurring_options;
$taskArr[$key]['status']=$row->status;
$taskArr[$key]['date_recurring']=$row->date_recurring;
$taskArr[$key]['comment']=$row->comment;
$taskArr[$key]['user']=$row->assigned_to;
$taskArr[$key]['times']=isset($times[0]->difference) ? $times[0]->difference:"00:00:00";
$taskArr[$key]['track']=isset($track[0]->tracker_on) ? $track[0]->tracker_on:0;
}
return view('task.view-task',compact('taskArr','time_track'));
}
<style>
#track-btn {
position: fixed;
height: 38px;
bottom: 40px;
right: 218px;
background-color: #0C9;
font-weight: 600;
border-radius: 6pxpx;
text-align: center;
box-shadow: 2px 2px 3px #999;
}
</style>