| Line 298... |
Line 298... |
| 298 |
var lng = parseFloat(parts[1].trim());
|
298 |
var lng = parseFloat(parts[1].trim());
|
| 299 |
if (isNaN(lat) || isNaN(lng) || (lat === 0 && lng === 0)) return null;
|
299 |
if (isNaN(lat) || isNaN(lng) || (lat === 0 && lng === 0)) return null;
|
| 300 |
return { lat: lat, lng: lng };
|
300 |
return { lat: lat, lng: lng };
|
| 301 |
}
|
301 |
}
|
| 302 |
|
302 |
|
| - |
|
303 |
// Fragment is re-injected with .html(), which re-runs this script; clear the
|
| - |
|
304 |
// namespace first so handlers replace rather than stack.
|
| - |
|
305 |
$(document).off('.beatreportdata');
|
| 303 |
$(document).on('click', '.beat-map-link', function () {
|
306 |
$(document).on('click.beatreportdata', '.beat-map-link', function () {
|
| 304 |
var rowIndex = $(this).data('row');
|
307 |
var rowIndex = $(this).data('row');
|
| 305 |
var data = window.beatReportData[rowIndex];
|
308 |
var data = window.beatReportData[rowIndex];
|
| 306 |
if (!data) return;
|
309 |
if (!data) return;
|
| 307 |
|
310 |
|
| 308 |
var items = data.total || [];
|
311 |
var items = data.total || [];
|
| Line 383... |
Line 386... |
| 383 |
}
|
386 |
}
|
| 384 |
}
|
387 |
}
|
| 385 |
}, 400);
|
388 |
}, 400);
|
| 386 |
});
|
389 |
});
|
| 387 |
|
390 |
|
| 388 |
$(document).on('click', '.beat-detail-link', function () {
|
391 |
$(document).on('click.beatreportdata', '.beat-detail-link', function () {
|
| 389 |
var rowIndex = $(this).data('row');
|
392 |
var rowIndex = $(this).data('row');
|
| 390 |
var type = $(this).data('type');
|
393 |
var type = $(this).data('type');
|
| 391 |
var data = window.beatReportData[rowIndex];
|
394 |
var data = window.beatReportData[rowIndex];
|
| 392 |
if (!data) return;
|
395 |
if (!data) return;
|
| 393 |
|
396 |
|
| Line 729... |
Line 732... |
| 729 |
}
|
732 |
}
|
| 730 |
function dataStopAutoRefresh() {
|
733 |
function dataStopAutoRefresh() {
|
| 731 |
if (dataLiveInterval) { clearInterval(dataLiveInterval); dataLiveInterval = null; }
|
734 |
if (dataLiveInterval) { clearInterval(dataLiveInterval); dataLiveInterval = null; }
|
| 732 |
}
|
735 |
}
|
| 733 |
|
736 |
|
| 734 |
$(document).on('click', '.data-live-tracking-btn', function() {
|
737 |
$(document).on('click.beatreportdata', '.data-live-tracking-btn', function() {
|
| 735 |
dataLiveUserId = $(this).data('userid');
|
738 |
dataLiveUserId = $(this).data('userid');
|
| 736 |
dataLiveUsername = $(this).data('username');
|
739 |
dataLiveUsername = $(this).data('username');
|
| 737 |
$('#dataLiveTitle').html('<img src="${rc.contextPath}/resources/images/Bike-Icon-SD.png" style="height:24px; vertical-align:middle; margin-right:6px;"> Live Tracking - ' + dataLiveUsername);
|
740 |
$('#dataLiveTitle').html('<img src="${rc.contextPath}/resources/images/Bike-Icon-SD.png" style="height:24px; vertical-align:middle; margin-right:6px;"> Live Tracking - ' + dataLiveUsername);
|
| 738 |
$('#dataLiveInfo').html('<div class="text-center"><i class="fa fa-spinner fa-spin"></i> Loading...</div>');
|
741 |
$('#dataLiveInfo').html('<div class="text-center"><i class="fa fa-spinner fa-spin"></i> Loading...</div>');
|
| 739 |
$('#dataLiveModal').modal('show');
|
742 |
$('#dataLiveModal').modal('show');
|
| Line 749... |
Line 752... |
| 749 |
document.head.appendChild(s);
|
752 |
document.head.appendChild(s);
|
| 750 |
}
|
753 |
}
|
| 751 |
}, 300);
|
754 |
}, 300);
|
| 752 |
});
|
755 |
});
|
| 753 |
|
756 |
|
| 754 |
$(document).on('click', '#dataRefreshBtn', function() {
|
757 |
$(document).on('click.beatreportdata', '#dataRefreshBtn', function() {
|
| 755 |
if (dataLiveUserId) {
|
758 |
if (dataLiveUserId) {
|
| 756 |
$('#dataLiveInfo').html('<div class="text-center"><i class="fa fa-spinner fa-spin"></i> Refreshing...</div>');
|
759 |
$('#dataLiveInfo').html('<div class="text-center"><i class="fa fa-spinner fa-spin"></i> Refreshing...</div>');
|
| 757 |
dataLoadLiveTracking(dataLiveUserId, dataLiveUsername);
|
760 |
dataLoadLiveTracking(dataLiveUserId, dataLiveUsername);
|
| 758 |
}
|
761 |
}
|
| 759 |
});
|
762 |
});
|
| 760 |
$(document).on('change', '#dataAutoRefresh', function() {
|
763 |
$(document).on('change.beatreportdata', '#dataAutoRefresh', function() {
|
| 761 |
$(this).is(':checked') ? dataStartAutoRefresh() : dataStopAutoRefresh();
|
764 |
$(this).is(':checked') ? dataStartAutoRefresh() : dataStopAutoRefresh();
|
| 762 |
});
|
765 |
});
|
| 763 |
$('#dataLiveModal').on('hidden.bs.modal', function() { dataStopAutoRefresh(); dataLiveUserId = null; });
|
766 |
$('#dataLiveModal').on('hidden.bs.modal', function() { dataStopAutoRefresh(); dataLiveUserId = null; });
|
| 764 |
</script>
|
767 |
</script>
|
| 765 |
|
768 |
|
| Line 802... |
Line 805... |
| 802 |
</div>
|
805 |
</div>
|
| 803 |
</div>
|
806 |
</div>
|
| 804 |
</div>
|
807 |
</div>
|
| 805 |
|
808 |
|
| 806 |
<script>
|
809 |
<script>
|
| 807 |
$(document).on('click', '.beat-view-calendar', function () {
|
810 |
$(document).on('click.beatreportdata', '.beat-view-calendar', function () {
|
| 808 |
var userId = $(this).data('userid');
|
811 |
var userId = $(this).data('userid');
|
| 809 |
var userName = $(this).data('username') || '';
|
812 |
var userName = $(this).data('username') || '';
|
| 810 |
var url = context + '/beatPlanWindow?autoUserId=' + userId
|
813 |
var url = context + '/beatPlanWindow?autoUserId=' + userId
|
| 811 |
+ '&autoUserName=' + encodeURIComponent(userName);
|
814 |
+ '&autoUserName=' + encodeURIComponent(userName);
|
| 812 |
$('#reportBeatCalendarTitle').text('Calendar - ' + userName);
|
815 |
$('#reportBeatCalendarTitle').text('Calendar - ' + userName);
|
| 813 |
$('#reportBeatCalendarFrame').attr('src', url);
|
816 |
$('#reportBeatCalendarFrame').attr('src', url);
|
| 814 |
$('#reportBeatCalendarModal').modal('show');
|
817 |
$('#reportBeatCalendarModal').modal('show');
|
| 815 |
});
|
818 |
});
|
| 816 |
|
819 |
|
| 817 |
$(document).on('click', '.beat-edit-on-date', function () {
|
820 |
$(document).on('click.beatreportdata', '.beat-edit-on-date', function () {
|
| 818 |
var userId = $(this).data('userid');
|
821 |
var userId = $(this).data('userid');
|
| 819 |
var userName = $(this).data('username') || '';
|
822 |
var userName = $(this).data('username') || '';
|
| 820 |
var beatId = $(this).data('beatid');
|
823 |
var beatId = $(this).data('beatid');
|
| 821 |
var date = $(this).data('date');
|
824 |
var date = $(this).data('date');
|
| 822 |
var url = context + '/beatPlanWindow?autoUserId=' + userId
|
825 |
var url = context + '/beatPlanWindow?autoUserId=' + userId
|
| Line 923... |
Line 926... |
| 923 |
$('#rAvPartyList').html(html);
|
926 |
$('#rAvPartyList').html(html);
|
| 924 |
rInitRowMultiselects();
|
927 |
rInitRowMultiselects();
|
| 925 |
rUpdateAvSelectedCount();
|
928 |
rUpdateAvSelectedCount();
|
| 926 |
}
|
929 |
}
|
| 927 |
|
930 |
|
| 928 |
$(document).on('click', '.beat-assign-visit', function () {
|
931 |
$(document).on('click.beatreportdata', '.beat-assign-visit', function () {
|
| 929 |
rAvContext.authUserId = $(this).data('userid');
|
932 |
rAvContext.authUserId = $(this).data('userid');
|
| 930 |
rAvContext.userName = $(this).data('username') || '';
|
933 |
rAvContext.userName = $(this).data('username') || '';
|
| 931 |
rAvContext.date = $(this).data('date');
|
934 |
rAvContext.date = $(this).data('date');
|
| 932 |
rAvContext.beatId = $(this).data('beatid');
|
935 |
rAvContext.beatId = $(this).data('beatid');
|
| 933 |
rAvContext.allParties = [];
|
936 |
rAvContext.allParties = [];
|
| Line 968... |
Line 971... |
| 968 |
$('#rAvPartyList').html('<div style="padding:20px; color:#c62828; text-align:center;">'
|
971 |
$('#rAvPartyList').html('<div style="padding:20px; color:#c62828; text-align:center;">'
|
| 969 |
+ 'Error loading parties: ' + (xhr.responseText || xhr.statusText) + '</div>');
|
972 |
+ 'Error loading parties: ' + (xhr.responseText || xhr.statusText) + '</div>');
|
| 970 |
});
|
973 |
});
|
| 971 |
});
|
974 |
});
|
| 972 |
|
975 |
|
| 973 |
$(document).on('input', '#rAvSearch', function () {
|
976 |
$(document).on('input.beatreportdata', '#rAvSearch', function () {
|
| 974 |
var q = $(this).val().toLowerCase().trim();
|
977 |
var q = $(this).val().toLowerCase().trim();
|
| 975 |
if (!q) {
|
978 |
if (!q) {
|
| 976 |
rRenderAvParties(rAvContext.allParties);
|
979 |
rRenderAvParties(rAvContext.allParties);
|
| 977 |
return;
|
980 |
return;
|
| 978 |
}
|
981 |
}
|
| Line 982... |
Line 985... |
| 982 |
|| (p.city || '').toLowerCase().indexOf(q) !== -1;
|
985 |
|| (p.city || '').toLowerCase().indexOf(q) !== -1;
|
| 983 |
});
|
986 |
});
|
| 984 |
rRenderAvParties(filtered);
|
987 |
rRenderAvParties(filtered);
|
| 985 |
});
|
988 |
});
|
| 986 |
|
989 |
|
| 987 |
$(document).on('change', '#rAvSelectAll', function () {
|
990 |
$(document).on('change.beatreportdata', '#rAvSelectAll', function () {
|
| 988 |
$('.r-av-party-chk').prop('checked', this.checked);
|
991 |
$('.r-av-party-chk').prop('checked', this.checked);
|
| 989 |
rUpdateAvSelectedCount();
|
992 |
rUpdateAvSelectedCount();
|
| 990 |
});
|
993 |
});
|
| 991 |
$(document).on('change', '.r-av-party-chk', rUpdateAvSelectedCount);
|
994 |
$(document).on('change.beatreportdata', '.r-av-party-chk', rUpdateAvSelectedCount);
|
| 992 |
|
995 |
|
| 993 |
$(document).on('click', '#rAvApplyAgenda', function () {
|
996 |
$(document).on('click.beatreportdata', '#rAvApplyAgenda', function () {
|
| 994 |
var defValues = $('#rAvDefaultAgenda').val() || [];
|
997 |
var defValues = $('#rAvDefaultAgenda').val() || [];
|
| 995 |
if (defValues.length === 0) {
|
998 |
if (defValues.length === 0) {
|
| 996 |
alert('Pick at least one agenda above first');
|
999 |
alert('Pick at least one agenda above first');
|
| 997 |
return;
|
1000 |
return;
|
| 998 |
}
|
1001 |
}
|
| Line 1010... |
Line 1013... |
| 1010 |
} catch (e) {
|
1013 |
} catch (e) {
|
| 1011 |
}
|
1014 |
}
|
| 1012 |
});
|
1015 |
});
|
| 1013 |
});
|
1016 |
});
|
| 1014 |
|
1017 |
|
| 1015 |
$(document).on('click', '#rAvSubmit', function () {
|
1018 |
$(document).on('click.beatreportdata', '#rAvSubmit', function () {
|
| 1016 |
var picks = [];
|
1019 |
var picks = [];
|
| 1017 |
var missing = 0;
|
1020 |
var missing = 0;
|
| 1018 |
$('.r-av-party-chk:checked').each(function () {
|
1021 |
$('.r-av-party-chk:checked').each(function () {
|
| 1019 |
var fid = parseInt($(this).data('fofoid'));
|
1022 |
var fid = parseInt($(this).data('fofoid'));
|
| 1020 |
var agendas = $('.r-av-party-agenda[data-fofoid="' + fid + '"]').val() || [];
|
1023 |
var agendas = $('.r-av-party-agenda[data-fofoid="' + fid + '"]').val() || [];
|