| Line 188... |
Line 188... |
| 188 |
|
188 |
|
| 189 |
var beatMapMarkerColors = {
|
189 |
var beatMapMarkerColors = {
|
| 190 |
'PENDING': '#F4B400',
|
190 |
'PENDING': '#F4B400',
|
| 191 |
'DEFERRED': '#DB4437',
|
191 |
'DEFERRED': '#DB4437',
|
| 192 |
'CHECKIN': '#4285F4',
|
192 |
'CHECKIN': '#4285F4',
|
| - |
|
193 |
'CHECKIN_CHECKOUT': '#0F9D58',
|
| 193 |
'CHECKIN-CHECKOUT': '#0F9D58',
|
194 |
'CHECKIN-CHECKOUT': '#0F9D58',
|
| 194 |
'CHECKOUT': '#0F9D58'
|
195 |
'CHECKOUT': '#0F9D58'
|
| 195 |
};
|
196 |
};
|
| 196 |
|
197 |
|
| 197 |
function getMarkerColor(markType) {
|
198 |
function getMarkerColor(markType) {
|
| Line 344... |
Line 345... |
| 344 |
var dataLiveUserId = null;
|
345 |
var dataLiveUserId = null;
|
| 345 |
var dataLiveUsername = '';
|
346 |
var dataLiveUsername = '';
|
| 346 |
var dataLiveInterval = null;
|
347 |
var dataLiveInterval = null;
|
| 347 |
|
348 |
|
| 348 |
function dataGetMarkerColor(markType) {
|
349 |
function dataGetMarkerColor(markType) {
|
| 349 |
if (markType === 'CHECKIN-CHECKOUT' || markType === 'CHECKOUT') return '#0F9D58';
|
350 |
if (markType === 'CHECKIN-CHECKOUT' || markType === 'CHECKIN_CHECKOUT' || markType === 'CHECKOUT') return '#0F9D58';
|
| 350 |
if (markType === 'PENDING' || markType === 'CHECKIN') return '#4285F4';
|
351 |
if (markType === 'PENDING' || markType === 'CHECKIN') return '#4285F4';
|
| 351 |
if (markType === 'DEFERRED') return '#DB4437';
|
352 |
if (markType === 'DEFERRED') return '#DB4437';
|
| 352 |
if (markType === 'PUNCHIN') return '#1abc9c';
|
353 |
if (markType === 'PUNCHIN') return '#1abc9c';
|
| 353 |
if (markType === 'PUNCHOUT') return '#e74c3c';
|
354 |
if (markType === 'PUNCHOUT') return '#e74c3c';
|
| 354 |
return '#F4B400';
|
355 |
return '#F4B400';
|
| Line 602... |
Line 603... |
| 602 |
}
|
603 |
}
|
| 603 |
|
604 |
|
| 604 |
if (hasPoints) dataLiveMap.fitBounds(bounds);
|
605 |
if (hasPoints) dataLiveMap.fitBounds(bounds);
|
| 605 |
|
606 |
|
| 606 |
var totalVisits = visits.filter(function(v) { return v.markType !== 'PUNCHIN' && v.markType !== 'PUNCHOUT'; }).length;
|
607 |
var totalVisits = visits.filter(function(v) { return v.markType !== 'PUNCHIN' && v.markType !== 'PUNCHOUT'; }).length;
|
| 607 |
var completedVisits = visits.filter(function(v) { return v.markType === 'CHECKIN-CHECKOUT' || v.markType === 'CHECKOUT'; }).length;
|
608 |
var completedVisits = visits.filter(function(v) { return v.markType === 'CHECKIN-CHECKOUT' || v.markType === 'CHECKIN_CHECKOUT' || v.markType === 'CHECKOUT'; }).length;
|
| 608 |
var now = new Date();
|
609 |
var now = new Date();
|
| 609 |
var timeStr = now.getHours().toString().padStart(2,'0') + ':' + now.getMinutes().toString().padStart(2,'0') + ':' + now.getSeconds().toString().padStart(2,'0');
|
610 |
var timeStr = now.getHours().toString().padStart(2,'0') + ':' + now.getMinutes().toString().padStart(2,'0') + ':' + now.getSeconds().toString().padStart(2,'0');
|
| 610 |
var avgAccuracy = accuracyCount > 0 ? (accuracySum / accuracyCount).toFixed(0) : null;
|
611 |
var avgAccuracy = accuracyCount > 0 ? (accuracySum / accuracyCount).toFixed(0) : null;
|
| 611 |
var accuracyLabel = '', accuracyBadge = '';
|
612 |
var accuracyLabel = '', accuracyBadge = '';
|
| 612 |
if (avgAccuracy) {
|
613 |
if (avgAccuracy) {
|