This commit is contained in:
2024-03-26 15:56:31 +08:00
parent 634e8b71ab
commit 0855ae42cd
547 changed files with 94818 additions and 60463 deletions

View File

@ -563,8 +563,7 @@
<link rel="stylesheet" href="<%=GetFileUrlWithVersion("js/contextmenu/jquery.contextMenu.min.css")%>" />
<link rel="stylesheet" href="<%=GetFileUrlWithVersion("css/split_sub.css")%>" />
<link rel="stylesheet" href="<%=GetFileUrlWithVersion("css/mapview.css")%>" />
<link rel="stylesheet" href="<%=GetFileUrlWithVersion("css/editmultiselect.css")%>" />
<link rel="stylesheet" href="https://js.arcgis.com/3.40/esri/css/esri.css" />
<link rel="stylesheet" href="https://js.arcgis.com/3.44/esri/css/esri.css" />
<link rel="stylesheet" href="<%=GetFileUrlWithVersion("css/jquery.datetimepicker.css")%>" />
<link rel="stylesheet" href="<%=GetFileUrlWithVersion("css/playbar.css")%>" />
<link rel="stylesheet" href="<%=GetFileUrlWithVersion("fic/fic/css/form.css")%>" />
@ -594,32 +593,23 @@
<script src="<%=GetFileUrlWithVersion("js/vue.min.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/echarts.min.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/compass.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/editableselect.js")%>"></script>
<script>Vue.config.productionTip = false; Vue.config.silent = true;</script>
<script src="https://js.arcgis.com/3.40"></script>
<script src="https://js.arcgis.com/3.44"></script>
<%--<script src="<%=GetFileUrlWithVersion("js/mapinit3.19.js")%>"></script>--%>
<script src="<%=GetFileUrlWithVersion("js/mapview/asset.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/jobsite.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/maphelper.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/machinealertview.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/mapview.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/assetview.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/playbar.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/mapviewsearch.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/mapviewshape.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/mapmenu.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/mapview.min.js")%>"></script>
<%--mapview.min.js 不能包含clusterlayer.js--%>
<script src="<%=GetFileUrlWithVersion("fic/js/utility.js")%>" type="text/javascript"></script>
<script src="<%=GetFileUrlWithVersion("fic/fic/js/controls/form.js") %>"></script>
<script src="<%=GetFileUrlWithVersion("js/language.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/adj_enginehours.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/mapview/adj_odometer.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/assetsummary.js")%>"></script>
<script src="<%=GetFileUrlWithVersion("js/jobsitesummary.js")%>"></script>
<script type="text/javascript">
var companyids = "";
var IsDealer = <%=IsDealer?"true":"false"%>;
var companyid = "<%=CompanyID%>";//当前公司id,调API时需传入CompanyId
var companyids = "";//选中的公司idContractor站点为空
var leftCtrlWidth = 420;
var rightCtrlWidth = 280;
var rightCtrlWidth = 320;
var mapHelper;
var isMapLoaded = false;
var hasContractor = false;
@ -647,6 +637,9 @@
var canViewPM = <%=CanViewPM?"true":"false"%>;
var showTooltipIcons = true;
var MSGWebSocketURL = "<%=MSGWebSocketURL%>";
var AiNotifyAddress = "<%=AiNotifyAddress%>";
var MapViewSearchAssetsApiAddress = "<%=MapViewSearchAssetsApiAddress%>";
var MapViewQueryViewAssetsApiAddress = "<%=MapViewQueryViewAssetsApiAddress%>";
var IsSupperAdmin =<%=IsSupperAdmin ?"true":"false"%>;
var isAllowed = <%=CanAjdustAttr ?"true":"false"%>;
@ -701,11 +694,10 @@
_dialog.close(machineAlert);
machineAlert = null;
}
assetObject.searchMachine(isauto);
assetObject.searchMachine1(isauto);
}
catch (e) {
machineAlert = _dialog.showAlert(GetTextByKey("P_MV_UNABLETOOBTAINASSETDATAATTEMPTINGTORECONNECT", 'Unable to obtain asset data. Attempting to reconnect...'), GetTextByKey("P_MV_REFRESHASSETDATA", 'Refresh asset data'));
writeexlog("assetObject.searchMachine", e);
}
getShapeFileInfos();
@ -722,12 +714,16 @@
var emailUrl = void 0;
$(function () {
setPageTitle(GetTextByKey("P_MODULE_MAPVIEW", 'Map View'), true);
setPageTitle(GetTextByKey("P_MODULE_MAPVIEW", 'Map View'), false);
setFavoriteDisplay(true, 100);
GetSystemUnitOfOdometer();
InitGridData();
$(window).resize(function () {
resiezrightCtrl();
});
var tabs = ["tabMachines", "tabJobSiets", "tabAssetGroups", "tabShapes"];
init();
@ -744,6 +740,7 @@
companyids = cids.join(",");
else
companyids = "";
BasicAssetsExpire = true;
$("#selMapAlertLayer").empty();
$("#tbLegend").empty();
@ -752,6 +749,7 @@
clearLocationHistory();
$("#locationhistoryDiv").hide();
resiezrightCtrl();
$("#tripDiv").hide();
refreshData(false);
@ -791,7 +789,7 @@
if (isMapLoaded) {
if (PopupViewShowing)//手动刷新数据关闭AssetView
closePopupView();
assetObject.searchMachine(false);
assetObject.searchMachine1(false);
}
});
@ -917,6 +915,7 @@
clearLocationHistory();//关闭历史记录
$("#locationhistoryDiv").hide();
resiezrightCtrl();
$("#tripDiv").hide();
});
@ -965,20 +964,23 @@
refreshData(false);
});
$("#btnLoadLocationHistory").click(null, function (e) {
getLocationHistory();
});
$('#btnQuickLoadLocationHistory').click(null, function () {
getLocationHistory(true);
});
$('#btnLoadTrip').click(null, function () {
openTrips();
getLocationHistory(true);
});
$('#selLocDatasource').on('change', function () {
changeLocDatasource();
userParams.BreadcrumbLocationSource = $("#selLocDatasource").val();
setUserParams();
});
$('#btnTheftModeReload').on('click', function () {
getLocationHistory(true);
});
$("#btnClearLocationHistory").click(null, function (e) {
clearLocationHistory();
$("#locationhistoryDiv").hide();
resiezrightCtrl();
$("#tripDiv").hide();
if (selectedAsset)
@ -990,6 +992,13 @@
$("#tbTrips").empty();
});
//$('#btnClearTheft').on('click', function () {
// exitTheftMode(true);
// if ($.playBar.onPlayClick) {
// $.playBar.onPlayClick(true);
// }
//});
$("#selOnroad").change(null, function (e) {
refreshData(false);
});
@ -1814,11 +1823,11 @@
function setJSTooltip(on) {
if (on) {
$("#jsTooltipDiv").attr("state", "1").attr("title", GetTextByKey("P_MV_XXXXXX", "Turn off visibility of Jobsite Tooltip during mouse hover"));
$("#jsTooltipDiv").attr("state", "1").attr("title", GetTextByKey("P_MV_TURNOFFVISIBILITYOFJOBSITETOOLTIPDURINGMOUSEHOVER", "Turn off visibility of Jobsite Tooltip during mouse hover"));
$("#jsTooltipPanel").css("background-color", "#ffffff");
}
else {
$("#jsTooltipDiv").attr("state", "0").attr("title", GetTextByKey("P_MV_XXXXXX", "Turn on visibility of Jobsite Tooltip during mouse hover"));
$("#jsTooltipDiv").attr("state", "0").attr("title", GetTextByKey("P_MV_TURNONVISIBILITYOFJOBSITETOOLTIPDURINGMOUSEHOVER", "Turn on visibility of Jobsite Tooltip during mouse hover"));
$("#jsTooltipPanel").css("background-color", "#cbcbcb");
}
}
@ -1905,6 +1914,7 @@
setExclude00(data.ExcludeNoLocation);
setJSTooltip(data.ShowJSTooltip);
setAutoRecenter(data.AutoRecenterMap);
$("#selLocDatasource").val(data.BreadcrumbLocationSource).change();
}
loadMap();
});
@ -1964,6 +1974,9 @@
refreshData(true);
setInterval(function () { refreshData(true) }, userParams.MapRefreshInterval * 1000);//开启定时刷新
setTimeout(checkServerVersion, 60000);
if (typeof initaiwebsocket != 'undefined')//屏蔽aisocket
initaiwebsocket();
}
function checkServerVersion() {//检查服务端版本号,如果服务端已经更新,刷新当前页面
@ -2016,6 +2029,7 @@
imgc.attr("src", "img/right.png");
}
$("#contentCtrl").css("top", $("#divleft1").height() + $("#divleft2").height() + 10);
displayFilerIcon();
showOtherIcons();
});
@ -2134,7 +2148,7 @@
function setExclude00(on) {
if (on) {
$("#exclude00Div").attr("state", "1").attr("title", GetTextByKey("P_MV_XXXXXX", "Include assets with no reported location(0, 0)"));
$("#exclude00Div").attr("state", "1").attr("title", GetTextByKey("P_MV_INCLUDEASSETSWITHNOREPORTEDLOCATION", "Include assets with no reported location(0, 0)"));
$("#exclude00Panel").css("background-color", "#ffffff");
}
else {
@ -2248,13 +2262,9 @@
var rows = [];
for (var i = 0; i < data.length; i++) {
var r = data[i];
for (var j in r) {
var a = r[j];
}
r.Text = false;
r.Email = false;
var fr = { Values: r };
rows.push(fr);
rows.push(r);
}
grid_dt.setData(rows);
@ -2262,12 +2272,7 @@
var grid_dt;
function InitGridData() {
grid_dt = new GridView('#contactlist');
grid_dt.lang = {
all: GetTextByKey("P_GRID_ALL", "(All)"),
ok: GetTextByKey("P_GRID_OK", "OK"),
reset: GetTextByKey("P_GRID_RESET", "Reset")
};
grid_dt = createGridView('#contactlist');
var list_columns = [
{ name: 'DisplayName', caption: GetTextByKey("P_MV_CONTACTNAME", "Contact Name"), valueIndex: 'DisplayName', css: { 'width': 148, 'text-align': 'left' } },
{ name: 'ContactTypeName', caption: GetTextByKey("P_MV_CONTACTTYPE", "Contact Type"), valueIndex: 'ContactTypeName', css: { 'width': 148, 'text-align': 'left' } },
@ -2303,12 +2308,6 @@
grid_dt.canMultiSelect = false;
grid_dt.columns = columns;
grid_dt.init();
grid_dt.selectedrowchanged = function (rowindex) {
var rowdata = grid_dt.source[rowindex];
if (rowdata) {
}
}
}
function CheckEmail(mail) {
@ -2348,7 +2347,6 @@
$('#dialog_sendlocation').data("cid", cid)
.attr('act', 'edit')
.css({
'width': 500,
'top': (document.documentElement.clientHeight - $('#dialog_sendlocation').height()) / 4,
'left': (document.documentElement.clientWidth - $('#dialog_sendlocation').width()) / 2
}).showDialogfixed();
@ -2391,16 +2389,16 @@
var address = othertextaddressstr.split(';');
for (var i = 0; i < address.length; i++) {
if (!checkPhoneNumber($.trim(address[i]))) {
_dialog.showAlert(GetTextByKey("P_MV_XXXXXX", 'The other phone number {0} is invalid.').replace('{0}', address[i]), title);
_dialog.showAlert(GetTextByKey("P_MV_THEOTHERPHONENUMBERISINVALID", 'The other phone number {0} is invalid.').replace('{0}', address[i]), title);
return;
}
textaddress.push({ 'Key': '', 'Value': address[i] });
}
}
for (var i = 0; i < grid_dt.source.length; i++) {
var ct = grid_dt.source[i].Values;
var tempsource = grid_dt.source;
for (var i = 0; i < tempsource.length; i++) {
var ct = tempsource[i];
if (ct.Email) {
emailaddress.push({ 'Key': ct.IID, 'Value': ct.ID });
}
@ -2495,6 +2493,7 @@
$('#dialog_machine1').hideDialog();
execIframeFunc("refresh", [], "ifassetview");
showmaskbg(false);
setPageTitle(GetTextByKey("P_MODULE_MAPVIEW", 'Map View'), false);
}
function ShowMachineDialog(type) {
@ -2534,6 +2533,7 @@
$('#dialog_jobsite').hideDialog();
jobsiteObject && jobsiteObject.searchJobSite(true);
showmaskbg(false);
setPageTitle(GetTextByKey("P_MODULE_MAPVIEW", 'Map View'), false);
}
function ShowJobsiteDialog() {
@ -2566,6 +2566,7 @@
function CloseWorkOrderDialog() {
$('#dialog_workorder').hideDialog();
showmaskbg(false);
setPageTitle(GetTextByKey("P_MODULE_MAPVIEW", 'Map View'), false);
}
function ShowWorkOrderDialog() {
@ -2587,6 +2588,7 @@
function CloseAlertsManagementDialog() {
$('#dialog_alertsmanagement').hideDialog();
showmaskbg(false);
setPageTitle(GetTextByKey("P_MODULE_MAPVIEW", 'Map View'), false);
}
function ShowAlertsManagementDialog() {
@ -2608,6 +2610,7 @@
function CloseFuelRecordsDialog() {
$('#dialog_fuelrecords').hideDialog();
showmaskbg(false);
setPageTitle(GetTextByKey("P_MODULE_MAPVIEW", 'Map View'), false);
}
function ShowFuelRecordsDialog() {
@ -2669,12 +2672,12 @@
<div id="layout">
<div id="leftCtrl" class="leftCtrl">
<div style="margin-top: 5px;">
<div>
<div id="divleft1">
<div>
<div id="contractorCtrl" style="margin-left: 5px; display: none;">
<span style="font-weight: bold;" data-lgid="P_MA_CONTRACTORS_COLON">Contractors: </span>
<%--<select id="selContractor" style="width: 160px;"></select>--%>
<div id="selContractor" style="width: 160px;margin-left:5px;"></div>
<div id="selContractor" style="width: 160px; margin-left: 5px;"></div>
</div>
</div>
<div style="margin-top: 6px;">
@ -2686,10 +2689,10 @@
<input type="button" id="btnLoadSearchDetault" value="Load Default" data-lgid="P_MV_LOADDEFAULT" title="Load Default Search" data-title-lgid="P_MV_LOADDEFAULTSEARCH" style="margin-left: 3px; width: 95px;" />
<input type="button" id="btnSavedSearches" value="Saved Searches" data-lgid="P_MV_SAVEDSEARCHES" title="Saved Searches" data-title-lgid="P_MV_SAVEDSEARCHES" style="margin-left: 3px; width: 107px;" />
<input type="button" id="btnSaveSearchDetault" value="Save Search" data-lgid="P_MV_SAVESEARCH" title="Save Search as Default" data-title-lgid="P_MV_SAVESEARCHASDEFAULT" style="margin-left: 3px; width: 85px;" />
<input type="button" id="btnToggleTimeline" value="&#xf622;" title="Click to toggle the timeline panel display." data-title-lgid="P_MV_TOGGLE_TIMELINES" style="margin-left: 3px;display:none;" />
<input type="button" id="btnToggleTimeline" value="&#xf622;" title="Click to toggle the timeline panel display." data-title-lgid="P_MV_TOGGLE_TIMELINES" style="margin-left: 3px; display: none;" />
</div>
<div id="machineHeader" style="margin-left: 10px;">
<input type="password" style="display: none" autocomplete="new-password"/>
<input type="password" style="display: none" autocomplete="new-password" />
<input type="text" id="txtMachineSearchText" style="margin-left: 5px; width: 210px;" autocomplete="off" />
<input type="button" id="btnMachineSearch" value="Search" data-lgid="P_MV_SEARCH" style="margin-left: 3px; width: 70px;" />
<input type="button" class="showall" value="Show All" data-lgid="P_MV_SHOWALL" style="margin-left: 3px; width: 80px;" />
@ -2710,14 +2713,14 @@
<input type="button" class="showall" value="Show All" data-lgid="P_MV_SHOWALL" style="margin-left: 3px; width: 80px;" />
</div>
<div style="margin-left: 10px;">
<select id="selAttachment" style="width: 120px;margin-left: 5px;">
<select id="selAttachment" style="width: 120px; margin-left: 5px;">
<option value="-1" data-lgid="P_SELECT_ALL">All</option>
<option value="1" data-lgid="P_MV_ATTACHMENTSONLY">Attachments Only</option>
<option value="0" data-lgid="P_MV_NOATTACHMENTS">No Attachments</option>
</select>
</div>
</div>
<div>
<div id="divleft2">
<table style="border-collapse: collapse; border-spacing: 0; width: 100%; line-height: 20px; margin-top: 3px; font-size: 16px; font-weight: bold;">
<tr style="height: 24px;">
<td style="border-bottom: 1px solid black; width: 10px;">&nbsp;</td>
@ -2737,7 +2740,7 @@
<input type='checkbox' v-model="machine.State.Selected" class='machineitemchk' v-on:change="chkMachineClick(machine)" />
<a href='javascript:void(0);' v-on:click="linkMachineClick(machine)" v-on:mouseover="assetSummaryMouseover(machine,$event)">{{machine.DisplayName}}</a>
<span class="icondetail1 pointer" style="margin-left: 10px;" v-on:click="machineDetailClick(machine)" data-title-lgid="P_MV_DETAIL"></span>
<span class="hisicon pointer" style='margin-left: 10px;' v-on:click="locationHistoryClick(machine,$event)" title="Location History" data-title-lgid="P_MA_LOCATIONHISTORY"></span>
<span class="hisicon pointer" style='margin-left: 10px;' v-on:click="locationHistoryClick(machine,$event)" v-bind:title="HistoryTitle"></span>
<div class='otherinfo' v-bind:style="{display: machine.State.ShowSummary ?'none': ''}">
<label data-lgid="P_MV_SN_COLON">SN:</label>{{machine.VIN}}&emsp;
<label data-lgid="P_MV_MAKE_COLON">Make:</label>
@ -2761,7 +2764,7 @@
<div class='machineitem' style="height: 26px;" v-for="machine in innerJobsiteMachines">
<template v-if="machine.__isJobsite">
<span v-bind:class="machine.Collapsed ?'treeiconc': 'treeicone'" v-on:click="treeIconClick($event,machine)"></span>
<input type='checkbox' v-model="machine.Selected" :indeterminate.prop="machine.__indeterminate" class='machineitemchk jobsite' v-on:change="chkJobsiteClick($event,machine)" title="Select All Assets" data-title-lgid="P_MA_SELECTALLASSETS" />
<input type='checkbox' v-model="machine.Selected" v-bind:indeterminate.prop="machine.__indeterminate" class='machineitemchk jobsite' v-on:change="chkJobsiteClick($event,machine)" title="Select All Assets" data-title-lgid="P_MA_SELECTALLASSETS" />
<span v-bind:class="machine.Shown ?'unselectable switchon': 'unselectable switchoff'" style='margin-right: 5px;' v-show="machine.ID>=0" v-on:click="showJobsiteClick($event,machine)" title="Job Fence On" data-title-lgid="P_MA_JOBFENCEON"></span>
<a v-on:click="linkJobSiteClick($event,machine)" href='javascript:void(0);'>{{machine.Name}}</a>
</template>
@ -2769,7 +2772,7 @@
<div style="margin-left: 24px" v-bind:class="machine.State.Highlight ?'subul selectedmachine': 'subul'">
<input type='checkbox' v-model="machine.State.Selected" class='machineitemchk' v-on:change="chkMachineClick(machine)" />
<a href='javascript:void(0);' v-on:click="linkMachineClick(machine)">{{machine.DisplayName}}</a>
<span class="hisicon pointer" style='margin-left: 20px;' v-on:click="locationHistoryClick(machine,$event)" title="Location History" data-title-lgid="P_MA_LOCATIONHISTORY"></span>
<span class="hisicon pointer" style='margin-left: 20px;' v-on:click="locationHistoryClick(machine,$event)" v-bind:title="HistoryTitle"></span>
</div>
</template>
</div>
@ -2785,14 +2788,14 @@
<div class='machineitem' style="height: 26px;" v-for="machine in innerAssetgroupMachines">
<template v-if="machine.__isGroup">
<span v-bind:class="machine.Collapsed ?'treeiconc': 'treeicone'" v-on:click="treeIconClick($event,machine)"></span>
<input type='checkbox' v-model="machine.Selected" :indeterminate.prop="machine.__indeterminate" class='machineitemchk assetgroup' v-on:change="chkAssetGroupClick($event,machine)" title="Select All Assets" data-title-lgid="P_MA_SELECTALLASSETS" />
<input type='checkbox' v-model="machine.Selected" v-bind:indeterminate.prop="machine.__indeterminate" class='machineitemchk assetgroup' v-on:change="chkAssetGroupClick($event,machine)" title="Select All Assets" data-title-lgid="P_MA_SELECTALLASSETS" />
<a v-on:click="linkAssetGroupClick($event,machine)" href='javascript:void(0);'>{{machine.Name}}</a>&emsp;
</template>
<template v-else>
<div style="margin-left: 24px" v-bind:class="machine.State.Highlight ?'subul selectedmachine': 'subul'">
<input type='checkbox' v-model="machine.State.Selected" class='machineitemchk' v-on:change="chkMachineClick(machine)" />
<a href='javascript:void(0);' v-on:click="linkMachineClick(machine)">{{machine.DisplayName}}</a>
<span class="hisicon pointer" style='margin-left: 20px;' v-on:click="locationHistoryClick(machine,$event)" title="Location History" data-title-lgid="P_MA_LOCATIONHISTORY"></span>
<span class="hisicon pointer" style='margin-left: 20px;' v-on:click="locationHistoryClick(machine,$event)" v-bind:title="HistoryTitle"></span>
</div>
</template>
</div>
@ -2805,14 +2808,14 @@
<td>
<input type="checkbox" id="chkSelectAllShape" /><span data-lgid="P_MA_SELECTALL">Select All</span></td>
<td style="text-align: right;">
<input type="button" id="btnImportShapeFile" style="display:none;" value="Import Shape File" data-lgid="P_MV_IMPORTSHAPEFILE" onclick="openImportShapeFile();" /></td>
<input type="button" id="btnImportShapeFile" style="display: none;" value="Import Shape File" data-lgid="P_MV_IMPORTSHAPEFILE" onclick="openImportShapeFile();" /></td>
</tr>
</table>
<div id="shapeList">
<div class='machineitem' v-for="shape in shapes">
<input type='checkbox' v-model="shape.Selected" class='machineitemchk' v-on:change="chkShapeClick($event,shape)" />
<a href='javascript:void(0);' v-on:click="linkShapeClick(shape)" class="machineitemlink" style="max-width: 300px;" v-bind:title="shape.Name">{{shape.Name}}</a>
<span class="deleteicon pointer" style='margin-left: 20px; font-size: 12px;' v-on:click="deleteShapeClick(shape,$event)" title="Delete" data-title-lgid="P_MV_DELETE"></span>
<span class="deleteicon pointer" style='margin-left: 20px; font-size: 12px;' v-on:click="deleteShapeClick(shape,$event)" v-bind:title="DeleteTitle"></span>
</div>
</div>
</div>
@ -2997,10 +3000,89 @@
</div>
<div id="rightCtrl" class="rightCtrl">
<div style="margin-left: 5px; font-size: 20px; font-weight: bold; text-align: center; margin-top: 5px; margin-bottom: 5px;" data-lgid="P_MV_LEGEND">Legend</div>
<div style="position: absolute; top: 35px; bottom: 0; right: 0; overflow: auto; width: 250px;">
<table id="tbLegend" style="margin-left: 0px; border-collapse: collapse; border-spacing: 0;">
</table>
<div class="rightitem">
<div class="subtitle contactinfo">
<span class="sbutton iconchevrondown" target="divLegend" onclick="OnRightExpend(this)"></span>
<span data-lgid="P_MV_LEGEND" style="font-size: 20px; font-weight: bold;">Legend</span>
</div>
<div id="divLegend" style="width: 100%; overflow: auto;">
<table id="tbLegend" style="margin-left: 0px; border-collapse: collapse; border-spacing: 0;">
</table>
</div>
</div>
<div id="locationhistoryDiv" style="position: fixed; bottom: 0; display: none;">
<div class="rightitem" id="theftDiv" style="position: relative;">
<div class="subtitle contactinfo">
<span class="sbutton iconchevrondown" target="divTheft" onclick="OnRightExpend(this)"></span>
<span data-lgid="P_MV_LOCATIONSOURCES" style="font-size: 20px; font-weight: bold;">Location Source(s)</span>
<%--<span class="clearbtn" id="btnClearTheft" style="position: absolute; padding: 5px; right: 0; top: 0"></span>--%>
</div>
<div id="divTheft" style="width: 250px; padding-left: 20px;">
<div id="containerTheft"></div>
<div>
<select id="selLocDatasource">
<option value="0" data-lgid="P_MV_PRIMARYONLY">Primary Only</option>
<option value="1" data-lgid="P_MV_THEFTMODEMULTIPLELINES">Theft Mode (Multiple Lines)</option>
<option value="2" data-lgid="P_MV_COMBINEDSINGLELINE">Combined (Single Line)</option>
</select>
</div>
</div>
<div id="theftLoading" style="display: none;"><span class="QuickLoading c-spin"></span></div>
</div>
<div class="rightitem">
<table style="line-height: 25px; width: 100%; table-layout: fixed;">
<tr>
<td style="padding-left: 5px; width: 75px;" data-lgid="P_MV_ASSET_COLON">Asset:</td>
<td><span id="spMachineName" data-lgid="P_MV_NOASSETSELECTED" style="font-weight: bold; word-break: break-word;">No asset selected.</span></td>
</tr>
<tr>
<td style="padding-left: 5px;" data-lgid="P_MV_TIMEPERIOD_COLON">Time Period:</td>
<td>
<select id="dialog_timeperiod" tabindex="12" style="width: 90px; height: 22px;">
<option value="1" selected="selected" data-lgid="P_MV_TODAY">Today</option>
<option value="5" data-lgid="P_MV_LAST24HOURS">Last 24 Hours</option>
<option value="2" data-lgid="P_MV_PRIORDAY">Prior Day</option>
<option value="3" data-lgid="P_MV_LAST7DAYS">Last 7 Days</option>
<option value="4" data-lgid="P_MV_CUSTOM">Custom</option>
</select></td>
</tr>
<tr>
<td style="padding-left: 5px;" data-lgid="P_MV_FROM_COLON">From:</td>
<td>
<input type="text" id="dateFrom" maxlength="12" tabindex="27" style="width: 70px;" autocomplete="off" />
<select id="dialog_starttimehour" style="width: 48px; margin-left: 3px;" tabindex="3"></select><span style="font-weight: bold;">&nbsp;:&nbsp;</span>
<select id="dialog_starttimeminute" style="width: 48px; margin-left: 0;" tabindex="4"></select>
</td>
</tr>
<tr>
<td style="padding-left: 5px;" data-lgid="P_MV_TO_COLON">To:</td>
<td>
<input type="text" id="dateTo" maxlength="12" tabindex="27" style="width: 70px;" autocomplete="off" />
<select id="dialog_endtimehour" style="width: 48px; margin-left: 3px;" tabindex="5"></select><span style="font-weight: bold;">&nbsp;:&nbsp;</span>
<select id="dialog_endtimeminute" style="width: 48px; margin-left: 0;" tabindex="6"></select>
</td>
</tr>
<tr>
<td id="playBarContainer" colspan="2" style="text-align: center; width: 240px;">
<div id="divPlayBar" style="background-color: #C0C0C0;"></div>
</td>
</tr>
<tr>
<td colspan="2" style="text-align: right;">
<input id="chkExclude00Loc" checked="checked" type="checkbox" style="display: none" /><span style="margin-right: 10px; display: none" data-lgid="P_MV_TO_EXCLUDE00LOCATIONS">Exclude 0,0 Locations</span>
<span id="btnHisLoading" class="QuickLoading" style="margin-left: 6px; display: none;"></span>
<span id="btnLoadTrip" class="TripReport" style="margin-left: 6px;" title="Trip Report" data-title-lgid="P_MV_TRIPREPORT"></span>
<%--<span id="btnTheftMode" class="TheftMode" style="margin-left: 6px;" title="Theft Mode" data-title-lgid="P_MV_THEFTMODE"></span>--%>
<span id="btnTheftModeReload" class="BarPlayEnd" style="margin-left: 6px; display: none" title="Quick Load/Skip to End" data-title-lgid="P_MV_QUICKLOADSKIPTOEND"></span>
<span class="clearbtn" id="btnClearLocationHistory" style="margin-left: 6px;" title="Clear" data-title-lgid="P_MV_CLEAR"></span>
<%--<input type="button" value="Clear" id="btnClearLocationHistory" />--%>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
@ -3021,57 +3103,13 @@
<span class="clearbtn" id="btnClearTrip" style="float: right; padding: 5px;"></span>
</div>
<div style="position: absolute; top: 30px; bottom: 0; right: 0; overflow: auto; width: 100%;">
<table id="tbTrips" style="line-height: 24px; border-collapse: collapse; border-spacing: 0; width: 100%;">
<table id="tbTrips" style="line-height: 24px; border-collapse: collapse; border-spacing: 0; width: 100%;table-layout:fixed;">
</table>
</div>
</div>
<div id="locationhistoryDiv" style="display: none;">
<table style="line-height: 25px;">
<tr>
<td style="padding-left: 5px;" data-lgid="P_MV_ASSET_COLON">Asset:</td>
<td><span id="spMachineName" data-lgid="P_MV_NOASSETSELECTED">No asset selected.</span></td>
<td style="padding-left: 5px;" data-lgid="P_MV_TIMEPERIOD_COLON">Time Period:</td>
<td>
<select id="dialog_timeperiod" tabindex="12" style="width: 90px; height: 22px;">
<option value="1" selected="selected" data-lgid="P_MV_TODAY">Today</option>
<option value="5" data-lgid="P_MV_LAST24HOURS">Last 24 Hours</option>
<option value="2" data-lgid="P_MV_PRIORDAY">Prior Day</option>
<option value="3" data-lgid="P_MV_LAST7DAYS">Last 7 Days</option>
<option value="4" data-lgid="P_MV_CUSTOM">Custom</option>
</select></td>
<td style="padding-left: 5px;" data-lgid="P_MV_FROM_COLON">From:</td>
<td>
<input type="text" id="dateFrom" maxlength="12" tabindex="27" style="width: 70px;" autocomplete="off" />
<select id="dialog_starttimehour" style="width: 48px; margin-left: 3px;" tabindex="3"></select><span style="font-weight: bold;">&nbsp;:&nbsp;</span>
<select id="dialog_starttimeminute" style="width: 48px; margin-left: 0;" tabindex="4"></select>
</td>
<td style="padding-left: 5px;" data-lgid="P_MV_TO_COLON">To:</td>
<td>
<input type="text" id="dateTo" maxlength="12" tabindex="27" style="width: 70px;" autocomplete="off" />
<select id="dialog_endtimehour" style="width: 48px; margin-left: 3px;" tabindex="5"></select><span style="font-weight: bold;">&nbsp;:&nbsp;</span>
<select id="dialog_endtimeminute" style="width: 48px; margin-left: 0;" tabindex="6"></select>
</td>
<td style="text-align: right;"></td>
<td style="text-align: center; width: 240px;">
<div id="divPlayBar" style="background-color: #C0C0C0;"></div>
</td>
<td colspan="2" style="text-align: right;">
<input id="chkExclude00Loc" checked="checked" type="checkbox" style="display: none" /><span style="margin-right: 10px; display: none" data-lgid="P_MV_TO_EXCLUDE00LOCATIONS">Exclude 0,0 Locations</span>
<%--<input type="button" value="Quick Load" data-lgid="P_MV_QUICKLOAD" id="btnQuickLoadLocationHistory" />--%>
<%--<input type="button" value="Playback" data-lgid="P_MV_PLAYBACK" id="btnLoadLocationHistory" />--%>
<%--<input type="button" value="Trip" data-lgid="P_MV_TRIP" id="btnLoadTrip" style="display: none;" />--%>
<%--<span id="btnQuickLoadLocationHistory" class="QuickLoad" style="margin-left: 6px;" title="Quick Load/Skip to End" data-title-lgid="P_MV_QUICKLOADSKIPTOEND"></span>--%>
<span id="btnHisLoading" class="QuickLoading" style="margin-left: 6px; display: none;"></span>
<span id="btnLoadTrip" class="TripReport" style="margin-left: 6px;" title="Trip Report" data-title-lgid="P_MV_TRIPREPORT"></span>
<span class="clearbtn" id="btnClearLocationHistory" style="margin-left: 6px;" title="Clear" data-title-lgid="P_MV_CLEAR"></span>
<%--<input type="button" value="Clear" id="btnClearLocationHistory" />--%>
</td>
</tr>
</table>
</div>
<%--<div id="locationhistoryDiv" style="display: none;">
</div>--%>
<div id="assetsummary" style="display: none;"></div>
<div id="assetsummarytrigle" class="assetsummarytrigle" style="display: none;"></div>
</div>
@ -3082,7 +3120,9 @@
</ul>
</div>
<div id="mask_bg" style="display: none;"><div class="loading c-spin"></div></div>
<div id="mask_bg" style="display: none;">
<div class="loading c-spin"></div>
</div>
<div class="dialog" id="dialog_parameter" style="display: none; width: 320px;">
<div class="dialog-title"><span class="title" data-lgid="P_MV_SETPARAMETERS">Set Parameter(s)</span><em class="dialog-close"></em></div>
<div class="dialog-content" style="height: 300px;">
@ -3100,7 +3140,7 @@
</div>
</div>
<div class="dialog" id="dialog_sendlocation" style="display: none; width: 320px;">
<div class="dialog" id="dialog_sendlocation" style="display: none; width: 510px;">
<div class="dialog-title"><span class="title" data-lgid="P_MV_SENDLOCATION">Send Location</span><em class="dialog-close"></em></div>
<div class="dialog-content" style="height: 378px;">
<table>
@ -3109,32 +3149,30 @@
</tr>
<tr>
<td colspan="2">
<div id="contactlist" style="height: 168px; width: 440px; margin-left: 10px; margin-right: 10px;"></div>
<div id="contactlist" style="height: 168px; width: 470px; margin-left: 10px; margin-right: 10px;"></div>
</td>
</tr>
<tr style="height: 24px;">
<td colspan="2" data-lgid="P_MV_XXXXXX">Separate multiple manually entered email or phone numbers with a semi-colon (;).</td>
<td colspan="2" data-lgid="P_MV_SEPARATEMULTIPLEMANUALLYENTEREDEMAILORPHONENUMBERSWITHASEMICOLON">Separate multiple manually entered email or phone numbers with a semi-colon (;).</td>
</tr>
<tr style="height: 24px;">
<td><span data-lgid="P_MV_OTHEREMAILADDRESS">Other Email Address</span>
<td style="text-align: right; padding-right: 5px;"><span data-lgid="P_MV_OTHEREMAILADDRESS">Other Email Address</span>
</td>
<td>
<input type="text" id="sendlocation_otheremailaddress" style="width: 312px;" autocomplete="off" /></td>
<input type="text" id="sendlocation_otheremailaddress" style="width: 350px;" autocomplete="off" /></td>
</tr>
<tr id="tr_textaddr" style="height: 24px;">
<td><span data-lgid="P_MV_XXXXXX">Other Text Numbers</span>
<td style="text-align: right; padding-right: 5px;"><span data-lgid="P_MV_OTHERTEXTNUMBERS">Other Text Numbers</span>
</td>
<td>
<input type="text" id="sendlocation_othertextaddress" style="width: 312px;" autocomplete="off" />
<input type="text" id="sendlocation_othertextaddress" style="width: 350px;" autocomplete="off" />
</td>
<%--<span id="span_hepler" class='helper pointer' title='Help'></span>--%>
</tr>
<tr style="height: 24px;">
<td colspan="2" data-lgid="P_MV_DESCRIPTION_COLON">Description:</td>
</tr>
<tr>
<td colspan="2">
<textarea id="sendlocation_desc" style="width: 444px; height: 80px; resize: none; margin-left: 12px;">
<td style="text-align: right; padding-right: 5px;" data-lgid="P_MV_DESCRIPTION">Description</td>
<td>
<textarea id="sendlocation_desc" style="width: 350px; height: 80px; resize: none;">
Fleet Intelligence on behalf of [site name]. [User Name] sent directions to [asset name]. Please do not reply to this text.
</textarea></td>
</tr>
@ -3312,7 +3350,7 @@
<div class="dialog-content adjust-content">
<table style="line-height: 25px; width: 100%;">
<tr>
<td class="label" title="Odometer at time of reading" style="width: 130px;" data-titlt-lgid="P_MV_ODOMETERATTIMEOFREADING" data-lgid="P_MV_ODOMETER_COLON">Odometer:</td>
<td class="label" title="Odometer at time of reading" style="width: 130px;" data-title-lgid="P_MV_ODOMETERATTIMEOFREADING" data-lgid="P_MV_ODOMETER_COLON">Odometer:</td>
<td>
<input type="text" id="dialogadd_odometer" maxlength="8" tabindex="151" /></td>
</tr>
@ -3325,17 +3363,17 @@
</select></td>
</tr>
<tr>
<td class="label" title="Time zone of asset reading" data-titlt-lgid="P_MV_TIMEZONEOFASSETREADING" data-lgid="P_MV_TIMEZON_COLON">Time Zone:</td>
<td class="label" title="Time zone of asset reading" data-title-lgid="P_MV_TIMEZONEOFASSETREADING" data-lgid="P_MV_TIMEZON_COLON">Time Zone:</td>
<td>
<select id="dialogadd_odometertimezone" tabindex="153" /></td>
</tr>
<tr>
<td class="label" title="Date of reading" data-titlt-lgid="P_MV_DATEOFREADING" data-lgid="P_MV_ODOMETERDATE_COLON">Odometer Date:</td>
<td class="label" title="Date of reading" data-title-lgid="P_MV_DATEOFREADING" data-lgid="P_MV_ODOMETERDATE_COLON">Odometer Date:</td>
<td>
<input type="text" id="dialogadd_odometerdate" maxlength="8" tabindex="154" /></td>
</tr>
<tr>
<td class="label" title="Time of reading (military)" data-titlt-lgid="P_MV_TIMEOFREADINGMILITARY" data-lgid="P_MV_ODOMETERTIME_COLON">Odometer Time:</td>
<td class="label" title="Time of reading (military)" data-title-lgid="P_MV_TIMEOFREADINGMILITARY" data-lgid="P_MV_ODOMETERTIME_COLON">Odometer Time:</td>
<td>
<select id="dialogadd_timehour" style="width: 48px;" tabindex="155"></select><span style="font-weight: bold;">&nbsp;&nbsp;:&nbsp;&nbsp;</span>
<select id="dialogadd_timeminute" style="width: 48px;" tabindex="156"></select></td>
@ -3365,17 +3403,17 @@
<input type="text" id="dialogaddgenginehours_enginehours" maxlength="8" tabindex="171" /></td>
</tr>
<tr>
<td class="label" title="Time zone of asset reading" data-titlt-lgid="P_MV_TIMEZONEOFASSETREADING" data-lgid="P_MV_TIMEZON_COLON">Time Zone:</td>
<td class="label" title="Time zone of asset reading" data-title-lgid="P_MV_TIMEZONEOFASSETREADING" data-lgid="P_MV_TIMEZON_COLON">Time Zone:</td>
<td>
<select id="dialogadd_enginehourstimezone" tabindex="172" /></td>
</tr>
<tr>
<td class="label" title="Date of reading" data-titlt-lgid="P_MV_DATEOFREADING" data-lgid="P_MV_ENGINEHOURSDATE_COLON">Engine Hours Date:</td>
<td class="label" title="Date of reading" data-title-lgid="P_MV_DATEOFREADING" data-lgid="P_MV_ENGINEHOURSDATE_COLON">Engine Hours Date:</td>
<td>
<input type="text" id="dialogaddenginehours_date" maxlength="8" tabindex="173" /></td>
</tr>
<tr>
<td class="label" title="Time of reading (military)" data-titlt-lgid="P_MV_TIMEOFREADINGMILITARY" data-lgid="P_MV_ENGINEHOURSTIME_COLON">Engine Hours Time:</td>
<td class="label" title="Time of reading (military)" data-title-lgid="P_MV_TIMEOFREADINGMILITARY" data-lgid="P_MV_ENGINEHOURSTIME_COLON">Engine Hours Time:</td>
<td>
<select id="dialogaddenginehours_timehour" style="width: 48px;" tabindex="174"></select><span style="font-weight: bold;">&nbsp;&nbsp;:&nbsp;&nbsp;</span>
<select id="dialogaddenginehours_timeminute" style="width: 48px;" tabindex="175"></select></td>
@ -3397,7 +3435,7 @@
<div class="dialog" id="dialog_assetattachments" style="display: none; width: 600px;">
<div class="dialog-title"><span class="title" data-lgid="P_WO_ATTACHMENTS">Attachments</span><em class="dialog-close"></em></div>
<div class="dialog-content">
<div id="divassetattachments" style="height:320px;overflow-y:auto;"></div>
<div id="divassetattachments" style="height: 320px; overflow-y: auto;"></div>
</div>
<div class="dialog-func">
<input type="button" value="Close" data-lgid="P_MV_CLOSE" class="dialog-close" tabindex="178" />
@ -3406,4 +3444,4 @@
<div id="attachmentsmask" class="maskbg" style="display: none;"></div>
</div>
</asp:Content>
</asp:Content>