1758 lines
74 KiB
Plaintext
1758 lines
74 KiB
Plaintext
<%@ Page Title="" Language="C#" MasterPageFile="~/AssetView/AssetViewBase.master" AutoEventWireup="true" CodeFile="SingleAssetView.aspx.cs" Inherits="SingleAssetView" %>
|
||
|
||
|
||
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
|
||
<style type="text/css">
|
||
::-ms-clear, ::-ms-reveal {
|
||
display: none;
|
||
}
|
||
|
||
.a {
|
||
text-decoration: none;
|
||
color: #2140fb;
|
||
}
|
||
|
||
.machinetd {
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.div-wsp {
|
||
/*position: fixed;
|
||
top: 300px;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;*/
|
||
border-top: 1px solid #000;
|
||
margin-left: 1px;
|
||
}
|
||
|
||
.iframe-wsp {
|
||
border: none;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.div-timeline {
|
||
border-top: 1px solid #a9a9a9;
|
||
padding-top: 4px;
|
||
}
|
||
|
||
.iframe-timeline {
|
||
border: none;
|
||
width: 100%;
|
||
height: 100px;
|
||
}
|
||
|
||
|
||
.sizer {
|
||
position: relative;
|
||
width: 270px;
|
||
z-index: 1;
|
||
}
|
||
|
||
|
||
|
||
.titlePane {
|
||
background-color: #444444;
|
||
color: #FFFFFF;
|
||
line-height: 24px;
|
||
padding-left: 6px;
|
||
border-radius: 5px 5px 0px 0px;
|
||
-webkit-border-radius: 5px 5px 0px 0px;
|
||
cursor: default;
|
||
}
|
||
|
||
.titleButton {
|
||
position: absolute;
|
||
top: 2px;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.titleButton:before {
|
||
padding-right: 8px;
|
||
font-family: 'FontAwesome';
|
||
}
|
||
|
||
.titleButton.prev {
|
||
right: 64px;
|
||
background-position: -29px 0;
|
||
width: 9px;
|
||
height: 17px;
|
||
}
|
||
|
||
.titleButton.next {
|
||
right: 46px;
|
||
background-position: -16px 0;
|
||
width: 9px;
|
||
height: 17px;
|
||
}
|
||
|
||
.titleButton.close {
|
||
right: 3px;
|
||
background-position: 0 0;
|
||
width: 12px;
|
||
height: 17px;
|
||
font-size: 15px;
|
||
}
|
||
|
||
.assetlable {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.assetblanklines {
|
||
height: 12px;
|
||
}
|
||
|
||
.dialogbtn {
|
||
height: 24px;
|
||
cursor: pointer;
|
||
background: rgb(249, 189, 117);
|
||
padding: 2px;
|
||
}
|
||
|
||
.adjust-content table td.label {
|
||
width: 130px;
|
||
text-align: right;
|
||
padding-right: 10px;
|
||
line-height: 24px;
|
||
height: 24px;
|
||
vertical-align: top;
|
||
}
|
||
|
||
.adjust-content table td input {
|
||
width: 200px;
|
||
}
|
||
|
||
.adjust-content table td select {
|
||
width: 204px;
|
||
}
|
||
|
||
.function-title {
|
||
float: left;
|
||
font-weight: bold;
|
||
margin: 6px 0 0 26px;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.function-bar {
|
||
height: 30px;
|
||
line-height: 30px;
|
||
/*text-align: right;*/
|
||
float: right;
|
||
}
|
||
|
||
#text-date {
|
||
width: 100px;
|
||
}
|
||
|
||
|
||
.iconworkorder:before {
|
||
font-family: FontAwesome;
|
||
content: '\f732';
|
||
font-size: 2.0em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconmaintenancerecord:before {
|
||
font-family: FontAwesome;
|
||
content: '\f073';
|
||
font-size: 2.0em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.icondirection:before {
|
||
content: '\f5eb';
|
||
font-family: FontAwesome;
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconmail:before {
|
||
font-family: FontAwesome;
|
||
content: '\f0e0';
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconweather:before {
|
||
font-family: FontAwesome;
|
||
content: '\f746';
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconasset:before {
|
||
font-family: FontAwesome;
|
||
content: '\f7d2';
|
||
font-size: 2.0em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconmapworkorder:before {
|
||
font-family: FontAwesome;
|
||
content: '\f732';
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconlochis:before {
|
||
font-family: FontAwesome;
|
||
content: '\f1da';
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconmapmanagealerts:before {
|
||
font-family: FontAwesome;
|
||
content: '\f071';
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconmapfuelrecord:before {
|
||
font-family: FontAwesome;
|
||
content: '\f52f';
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.iconatta:before {
|
||
font-family: FontAwesome;
|
||
content: '\f0c6';
|
||
font-size: 2.4em;
|
||
font-weight: bold;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.div_titlte {
|
||
width: 100%;
|
||
background: <%=MenuBackgroundColor%>;
|
||
position: relative;
|
||
text-align: center;
|
||
line-height: 24px;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.assetsummaryplus:before {
|
||
font-size: 12px;
|
||
font-weight: normal;
|
||
font-family: 'CalciteWebCoreIcons', 'Fontawesome';
|
||
content: '\e620';
|
||
margin-right: 5px;
|
||
color: #0079c1;
|
||
}
|
||
|
||
.td_pm {
|
||
vertical-align: top;
|
||
white-space: nowrap;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.divicon {
|
||
/*position: absolute;*/
|
||
width: 40px;
|
||
background-color: #EFEFEF;
|
||
text-align: center;
|
||
line-height: 35px;
|
||
padding: 5px 5px;
|
||
float: left;
|
||
margin-left: 22px;
|
||
}
|
||
|
||
.divattp {
|
||
width: 300px;
|
||
margin-right: 10px;
|
||
float: left;
|
||
position: relative;
|
||
}
|
||
|
||
.divatt {
|
||
width: 120px;
|
||
height: 120px;
|
||
margin-top: 5px;
|
||
margin-bottom: 5px;
|
||
margin-right: 10px;
|
||
cursor: pointer;
|
||
border: 1px solid #b0b0b0;
|
||
border-radius: 2px;
|
||
box-shadow: rgba(0, 0, 0, 0.4);
|
||
text-align: center;
|
||
float: left;
|
||
position: relative;
|
||
}
|
||
|
||
.picture {
|
||
max-height: 100%;
|
||
max-width: 100%;
|
||
margin: auto;
|
||
position: absolute;
|
||
top: 0;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
}
|
||
</style>
|
||
|
||
<link href="<%=GetFileUrlWithVersion("../css/jquery.datetimepicker.css")%>" rel="stylesheet" />
|
||
<script src="<%=GetFileUrlWithVersion("../Maintenance/js/inputdatactr.js")%>" type="text/javascript"></script>
|
||
<script src="<%=GetFileUrlWithVersion("../js/jquery.datetimepicker.full.js")%>"></script>
|
||
<script src="<%=GetFileUrlWithVersion("../js/vue.min.js")%>"></script>
|
||
<script src="<%=GetFileUrlWithVersion("js/adj_odometer.js")%>"></script>
|
||
<script src="<%=GetFileUrlWithVersion("js/adj_enginehours.js")%>"></script>
|
||
<script src="<%=GetFileUrlWithVersion("js/assetpm.js")%>"></script>
|
||
<script src="<%=GetFileUrlWithVersion("../js/echarts.min.js")%>"></script>
|
||
|
||
<script type="text/javascript">
|
||
_network.root = '<%=Page.ResolveUrl("~/")%>';
|
||
|
||
var currentdate = "<%=CurrentDate %>";
|
||
var IsSupperAdmin =<%=IsSupperAdmin ?"true":"false"%>;
|
||
var isAllowed = false;
|
||
var IsDealer = <%=IsDealer ?"true":"false"%>;
|
||
var CanEditPM = <%=CanEditPM ?"true":"false"%>;
|
||
var canEditAsset = <%=CanEditAsset ?"true":"false"%>;
|
||
var canViewWorkOrder = <%=CanViewWorkOrder ?"true":"false"%>;
|
||
var canViewMR = <%=CanViewMR ?"true":"false"%>;
|
||
var canViewAlertsManagement = <%=CanViewAlertsManagement ?"true":"false"%>;
|
||
var canViewFuelRecords = <%=CanViewFuelRecords ?"true":"false"%>;
|
||
var enableSmartWitness = <%=EnableSmartWitness?"true":"false"%>;
|
||
var canViewInspection = <%=CanViewInspection?"true":"false"%>;
|
||
var canViewPM = <%=CanViewPM?"true":"false"%>;
|
||
|
||
function resizeBoard(width, height) {
|
||
$('#div_wsp').css({
|
||
width: width,
|
||
height: height
|
||
})
|
||
}
|
||
|
||
var contractorid = undefined;
|
||
var assetid = undefined;
|
||
var vin = undefined;
|
||
|
||
var rentalsdata = [];
|
||
var machines;
|
||
var vm;
|
||
|
||
function assetrequest(method, param, callback, error) {
|
||
_network.request("AssetView/SingleAssetView.aspx", -1, method, param, callback, error || function (e) {
|
||
console.log(e);
|
||
showmaskbg(false, true);
|
||
showAlert(GetTextByKey("P_MV_PAGEERROR", 'An unknown error occurred. Please refresh page.'), GetTextByKey("P_MV_QUERY", 'Query'));
|
||
});
|
||
}
|
||
function assetrequest1(method, param, callback, error) {
|
||
_network.request("MachineDeviceManagement/AddMachine.aspx", -1, method, param, callback, error || function (e) {
|
||
console.log(e);
|
||
showmaskbg(false, true);
|
||
showAlert(GetTextByKey("P_MV_PAGEERROR", 'An unknown error occurred. Please refresh page.'), GetTextByKey("P_MV_QUERY", 'Query'));
|
||
});
|
||
}
|
||
|
||
function devicerequest(method, param, callback, error) {
|
||
_network.request("MachineDeviceManagement/ManageMachines.aspx", -1, method, param, callback, error || function (e) {
|
||
console.log(e);
|
||
showmaskbg(false, true);
|
||
showAlert(GetTextByKey("P_MV_PAGEERROR", 'An unknown error occurred. Please refresh page.'), GetTextByKey("P_MV_QUERY", 'Query'));
|
||
});
|
||
}
|
||
|
||
function showConfirm1(msg, title, fok, fcancel) {
|
||
$('#addodomask').show();
|
||
$('#addenginehoursmask').show();
|
||
_dialog.showConfirm(msg, title, function (e) {
|
||
$('#addodomask').hide();
|
||
$('#addenginehoursmask').hide();
|
||
if (typeof fok === 'function') {
|
||
fok(e);
|
||
}
|
||
}, function () {
|
||
$('#addodomask').hide();
|
||
$('#addenginehoursmask').hide();
|
||
});
|
||
}
|
||
|
||
function loadAsset(cid, aid, avin, type) {//type 0.mapview 1.manageasset
|
||
if (type === 1) {
|
||
$('#div_icon').hide();
|
||
$('#div_assetcontent').css('padding-left', 0);
|
||
}
|
||
$('#dialog_addodometer').hideDialog();
|
||
$('#addodomask').hide();
|
||
$('#dialog_addenginehours').hideDialog();
|
||
$('#addenginehoursmask').hide();
|
||
_dialog.close($(".popupmsg"));
|
||
|
||
$("#assetspeeddiv").hide();
|
||
$("#assetfuelleveldiv").hide();
|
||
|
||
contractorid = cid;
|
||
assetid = aid;
|
||
vin = avin;
|
||
GetUserPermission();
|
||
getCustomerTimeZone();
|
||
if (assetid) {
|
||
$('#div_icon').empty();
|
||
$('#dialog_assetattachments').hideDialog();
|
||
loadAssetInfo();
|
||
loadMapView();
|
||
loadWorkspace();
|
||
|
||
$('#div_timeline').hide();
|
||
timelineLoaded = false;
|
||
assetrequest('IsCalampPrimaryLocation', contractorid + String.fromCharCode(170) + assetid, function (data) {
|
||
if (data == '1') {
|
||
var dt = new Date(currentdate);
|
||
var text_date = $('#text-date');
|
||
var m = dt.getMonth() + 1;
|
||
var d = dt.getDate();
|
||
text_date.val((m < 10 ? '0' : '') + m + '/' + (d < 10 ? '0' : '') + d + '/' + dt.getFullYear());
|
||
$('#iftimeline').attr('src', 'AssetTimeline.aspx?id=' + assetid + '&cid=' + contractorid).on('load', function () {
|
||
setTimeout(function () {
|
||
timelineLoaded = true;
|
||
OnRefresh();
|
||
}, 100);
|
||
});
|
||
$('#div_timeline').show();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
function refresh() {
|
||
if (!IsSupperAdmin)
|
||
GetUserPermission();
|
||
if (assetid) {
|
||
loadAssetInfo();
|
||
loadMapView();
|
||
loadWorkspace();
|
||
}
|
||
}
|
||
|
||
function loadMapView() {
|
||
if ($("#ifmapview").prop("src"))
|
||
execIframeFunc("reloaddata", [assetid, vin], "ifmapview");
|
||
else
|
||
$("#ifmapview").prop("src", "AssetMapView.aspx?machineid=" + assetid + "&vin=" + vin);
|
||
}
|
||
|
||
var workspaceConfig = undefined;
|
||
function loadWorkspace() {
|
||
//加了个resetPivot(pivots)方法,传进来[{iid:'...',vals:['..']},...]的对象就行
|
||
var wspivots = [{ "iid": "BDFAE7E6-9E1F-4BE5-8B98-3BCF227C5DB7", "vals": [vin] }];
|
||
//var wspivots = [{ "iid": "e64de7da-539e-471f-afd7-80e5bd298167", "vals": [assetid] }];
|
||
if (!$("#ifwsp").attr("src")) {
|
||
assetrequest("GetAssetDetailWorkspaceConfig", "", function (data) {
|
||
if (typeof (data) === "string") {
|
||
return;
|
||
}
|
||
workspaceConfig = data;
|
||
var p = generatewspparam();
|
||
$("#ifwsp").attr("src", "AssetSingleWorkspace.aspx?" + p);
|
||
});
|
||
}
|
||
else {
|
||
execIframeFunc("resetPivot", [getwspparam()], "ifwsp");
|
||
}
|
||
// src="AssetSingleWorkspace.aspx?iid=be9860fa-c718-41b6-8d48-b734ceca8fd0&wspivots=%22%5B%7B%5C%22iid%5C%22%3A%5C%22e64de7da-539e-471f-afd7-80e5bd298167%5C%22%2C%5C%22vals%5C%22%3A%5B%5C%2290%5C%22%5D%7D%5D%22&lgid=en-us"
|
||
//IID=07336716-614E-4B6B-BF2A-4917A4D1370F&wspivots=[{"iid":"00000000-0000-0000-0000-00000000","vals":["1152600"]},{"iid":"3BD3EFB4-B134-1395-D6E5-E2D8CA762A3A","vals":["072919httest2"]}]
|
||
}
|
||
|
||
function generatewspparam() {
|
||
var wspivots = [];
|
||
var p = "iid=";
|
||
if (workspaceConfig) {
|
||
p += workspaceConfig.WorkspaceIID;
|
||
var wspivots = getwspparam();
|
||
p += "&wspivots=" + encodeURIComponent(JSON.stringify(wspivots)) + "&lgid=en-us";
|
||
}
|
||
return p;
|
||
}
|
||
|
||
function getwspparam() {
|
||
var wspivots = [];
|
||
if (workspaceConfig) {
|
||
if (workspaceConfig.MachineIDPivotIID) {
|
||
wspivots.push({ "iid": workspaceConfig.MachineIDPivotIID, "vals": ["" + assetid] });
|
||
}
|
||
if (workspaceConfig.VINPivotIID) {
|
||
wspivots.push({ "iid": workspaceConfig.VINPivotIID, "vals": [vin] });
|
||
}
|
||
}
|
||
return wspivots;
|
||
}
|
||
|
||
$(function () {
|
||
initTime();
|
||
initTimeZone();
|
||
|
||
$('#dialog_addodometer').dialog(function () {
|
||
showmaskbg(false);
|
||
});
|
||
$('#dialog_addenginehours').dialog(function () {
|
||
showmaskbg(false);
|
||
});
|
||
|
||
$('#dialog_assetattachments').dialog(function () {
|
||
showmaskbg(false);
|
||
});
|
||
|
||
$('#dialogadd_odometerdate').datetimepicker({
|
||
timepicker: false,
|
||
format: 'm/d/Y',
|
||
enterLikeTab: false,
|
||
onSelectDate: function (v, inp) {
|
||
var date = new DateFormatter().formatDate(v, 'm/d/Y 00:00:00');
|
||
inp.parent().data('val', [date]);
|
||
}
|
||
});
|
||
$('#dialogaddenginehours_date').datetimepicker({
|
||
timepicker: false,
|
||
format: 'm/d/Y',
|
||
enterLikeTab: false,
|
||
onSelectDate: function (v, inp) {
|
||
var date = new DateFormatter().formatDate(v, 'm/d/Y 00:00:00');
|
||
inp.parent().data('val', [date]);
|
||
}
|
||
});
|
||
|
||
function resizeContent() {
|
||
//$('#divcontent').css('height', $(window).height() - $('#divcontent').offset().top - 4);
|
||
//$('.content_main').css('min-height', 0);
|
||
}
|
||
|
||
vm = new Vue({
|
||
el: '#assetinfo',
|
||
data: {
|
||
asset: {
|
||
CurrentLocation: {},
|
||
CurrentHours: {},
|
||
CurrentIdleHours: {},
|
||
CurrentOdometer: {}
|
||
}
|
||
},
|
||
methods: {
|
||
reload: function (data) {
|
||
this.asset = data;
|
||
}
|
||
}
|
||
});
|
||
|
||
window.onresize = resizeContent;
|
||
resizeContent();
|
||
|
||
var dt = new Date(currentdate);
|
||
var text_date = $('#text-date');
|
||
var m = dt.getMonth() + 1;
|
||
var d = dt.getDate();
|
||
text_date.val((m < 10 ? '0' : '') + m + '/' + (d < 10 ? '0' : '') + d + '/' + dt.getFullYear());
|
||
//window.parent.OnTimelineLoaded(text_date[0]);
|
||
text_date.datetimepicker({
|
||
timepicker: false,
|
||
format: 'm/d/Y',
|
||
enterLikeTab: false,
|
||
onSelectDate: function (v, inp) {
|
||
var date = new DateFormatter().formatDate(v, 'm/d/Y 00:00:00');
|
||
inp.parent().data('val', [date]);
|
||
}
|
||
});
|
||
});
|
||
|
||
var timelineLoaded = false;
|
||
function OnRefresh() {
|
||
if (!timelineLoaded) {
|
||
return;
|
||
}
|
||
var date = $('#text-date').val();
|
||
$('#iftimeline')[0].contentWindow.OnRefresh(date);
|
||
}
|
||
|
||
function OnClose() {
|
||
window.parent.closePopupView();
|
||
}
|
||
|
||
var assetdata;
|
||
function loadAssetInfo() {
|
||
showloading(true);
|
||
$('#td_scheduledmaintenance').empty();
|
||
$('#td_rental').empty();
|
||
$('#td_alerts').empty();
|
||
$('#td_assetstatus').empty();
|
||
$('#td_utilization').empty();
|
||
$('#span_location').hide();
|
||
$('#span_currentoperator').hide();
|
||
$('#btnodometeradd').hide();
|
||
$('#btnenginehoursadd').hide();
|
||
assetdata = undefined;
|
||
getNowFormatDate();
|
||
assetrequest("GetAssetDetailInfo", contractorid + String.fromCharCode(170) + assetid, function (data) {
|
||
showloading(false);
|
||
if (typeof (data) === "string") {
|
||
return;
|
||
}
|
||
assetdata = data;
|
||
|
||
if (!isNaN(assetdata.FuelLevel) && assetdata.FuelLevel > 0) {
|
||
showFuelLevelChart(60, assetdata.FuelLevel);
|
||
}
|
||
|
||
if (!data.CurrentLocation) {
|
||
$('#span_location').hide();
|
||
data.CurrentLocation = {};
|
||
}
|
||
else {
|
||
$('#span_location').show();
|
||
showLocationInfo(data);
|
||
}
|
||
if (data.CurrentOperator)
|
||
$('#span_currentoperator').show();
|
||
else
|
||
$('#span_currentoperator').hide();
|
||
|
||
if (!data.CurrentHours)
|
||
data.CurrentHours = { 'IsEmpty': true };
|
||
else
|
||
data.CurrentHours.IsEmpty = false;
|
||
if (!data.CurrentIdleHours)
|
||
data.CurrentIdleHours = {};
|
||
if (!data.CurrentOdometer)
|
||
data.CurrentOdometer = { 'IsEmpty': true };
|
||
else
|
||
data.CurrentOdometer.IsEmpty = false;
|
||
|
||
vm.reload(data);
|
||
|
||
createAssetIcon(data);
|
||
GetAssetRental();
|
||
|
||
if (data.Description && data.Description !== "") {
|
||
//data.Description = replaceHtmlText(data.Description);
|
||
$("#tddesc").text(data.Description);
|
||
}
|
||
else
|
||
$("#tddesc").text("");
|
||
|
||
if ((IsSupperAdmin || isAllowed) && canAddReading() && canEditAsset) {
|
||
if (data.OnRoad) {
|
||
$('#btnodometeradd').show();
|
||
$('#btnenginehoursadd').hide();
|
||
}
|
||
else {
|
||
$('#btnodometeradd').hide();
|
||
$('#btnenginehoursadd').show();
|
||
}
|
||
}
|
||
}, function (err) {
|
||
showloading(false);
|
||
});
|
||
}
|
||
|
||
function createScheduledMaintenanceTd() {
|
||
$('#td_scheduledmaintenance').empty();
|
||
var ttd = $('#td_scheduledmaintenance');
|
||
var div = $('<div class="div_titlte">' + GetTextByKey("P_MV_SCHEDULEDMAINTENANCE", "Scheduled Maintenance") + '</div>');
|
||
var tab = $('<table style="width: 100%;"></table>');
|
||
ttd.append(div);
|
||
ttd.append(tab);
|
||
var tr = $('<tr></tr>');
|
||
tab.append(tr);
|
||
var td = $('<td colspan="2" id="td_lastinspection" style="display: none;"></td>');
|
||
tr.append(td);
|
||
var b = $('<b>' + GetTextByKey("P_MV_LASTINSPECTION_COLON", "Last Inspection:") + ' </b>');
|
||
td.append(b);
|
||
b = $('<b><a href="#" id="a_lastinspection"></a></b>');
|
||
td.append(b);
|
||
|
||
tr = $('<tr></tr>');
|
||
tab.append(tr);
|
||
td = $('<td class="td_pm">' + GetTextByKey("P_MV_REVENTATIVEMAINTENANCEPLAN_COLON", "PM Plan: ") + '</td>');
|
||
tr.append(td);
|
||
td = $('<td><span id="sppmplan"></span></td>');
|
||
tr.append(td);
|
||
td = $('<td></td>');
|
||
tr.append(td);
|
||
var span = $('<span id="btnaddplan" class="iconasset" style="cursor: pointer; margin-left: 8px;width:30px;" onclick="showPMSchedules();"></span>').attr('title', GetTextByKey("P_MV_EDITPLAN", "Edit Plan"));
|
||
td.append(span);
|
||
|
||
tr = $('<tr id="tr_nextservice" style="display: none;"></tr>');
|
||
tab.append(tr);
|
||
td = $('<td class="td_pm" style="font-weight:unset;">' + GetTextByKey("P_MV_NEXTSERVICE_COLON", "Next Service: ") + '</td>');
|
||
tr.append(td);
|
||
td = $('<td colspan="2" id="td_nextservice"></span></td>');
|
||
tr.append(td);
|
||
|
||
tr = $('<tr></tr>');
|
||
tab.append(tr);
|
||
td = $('<td colspan="3" id="td_maintenancerecord" style="display: none;"></td>');
|
||
tr.append(td);
|
||
}
|
||
|
||
function createRentalInfomationTd() {
|
||
$('#td_rental').empty();
|
||
var ttd = $('#td_rental');
|
||
var div = $('<div class="div_titlte">' + GetTextByKey("P_MV_RENTALINFORMATION", "Rental Information") + '</div>');
|
||
var tab = $('<table style="width: 100%;"></table>');
|
||
ttd.append(div);
|
||
ttd.append(tab);
|
||
var tr = $('<tr></tr>');
|
||
tab.append(tr);
|
||
var td = $('<td style="width: 80px;">' + GetTextByKey("P_MV_STARTDATE_COLON", "Start Date:") + '</td>');
|
||
tr.append(td);
|
||
var span = $('<span style="margin-left: 5px;" id="rental_startdate"></span>');
|
||
td.append(span);
|
||
|
||
tr = $('<tr></tr>');
|
||
tab.append(tr);
|
||
td = $('<td style="width: 110px;" >' + GetTextByKey("P_MV_PROJECTRETURNDATE_COLON", "Proj Return Date:") + '</td>');
|
||
tr.append(td);
|
||
var span = $('<span style="margin-left: 5px;" id="rental_projreturndate"></span>');
|
||
td.append(span);
|
||
|
||
tr = $('<tr></tr>');
|
||
tab.append(tr);
|
||
td = $('<td style="width: 110px;"> ' + GetTextByKey("P_MV_RENTALSTATUS_COLON", "Rental Status:") + '</td>');
|
||
tr.append(td);
|
||
var span = $('<span style="margin-left: 5px;" id="rental_rentalstatus"></span>');
|
||
td.append(span);
|
||
}
|
||
|
||
function createGridTd(type) {
|
||
var width = 400;
|
||
var title = "";
|
||
if (type === "alerts") {
|
||
width = 450;
|
||
title = GetTextByKey("P_MV_ALERTLAST14DAYS", "Alerts Last 14 Days");
|
||
}
|
||
else if (type === "assetstatus") {
|
||
width = 400;
|
||
title = GetTextByKey("P_MV_ASSETSTATUS", "Asset Status");
|
||
}
|
||
else if (type === "utilization") {
|
||
width = 500;
|
||
title = GetTextByKey("P_MV_UTILIZATION", "Utilization");
|
||
}
|
||
|
||
var td = $('#td_' + type);
|
||
td.empty();
|
||
var div = $('<div class="div_titlte">' + title + '</div>');
|
||
//div.css('width', width);
|
||
td.append(div);
|
||
div = $('<div style="height: 150px;" id="div' + type + '"></div>');
|
||
//div.css('width', width);
|
||
td.append(div);
|
||
}
|
||
function showFuelLevelChart(height, value) {
|
||
// 基于准备好的dom,初始化echarts实例
|
||
var p = $("#assetfuelleveldiv");
|
||
p.empty().show();
|
||
|
||
p.append($("<div></div>").text(GetTextByKey("P_MV_FUEL", "Fuel")));
|
||
var bar = $("<div></div>").css("height", height).css("width", 30).css("border", "2px #0079c1 solid").css("position", "relative");
|
||
p.append(bar);
|
||
|
||
var topbar = $("<div></div>").css("height", height * (1 - value / 100));
|
||
bar.append(topbar);
|
||
var bottombar = $("<div></div>").css("height", height * (value / 100));
|
||
bar.append(bottombar);
|
||
if (value > 40)
|
||
bottombar.css("background-color", "#91c7ae");
|
||
else if (value > 25)
|
||
bottombar.css("background-color", "#ffc000");
|
||
else
|
||
bottombar.css("background-color", "#ff0000");
|
||
|
||
for (var i = 0; i < 10; i++) {
|
||
var cell = $("<div></div>").css("height", height / 10).css("border-bottom", "1px #0079c1 solid")
|
||
.css("width", "100%").css("position", "absolute").css("top", i * height / 10);
|
||
bar.append(cell);
|
||
}
|
||
p.append($("<div></div>").text(value + "%"));
|
||
}
|
||
|
||
function showLocationInfo(asset) {
|
||
var loc = asset.CurrentLocation;
|
||
if (asset.OnRoad && (loc.Speed > 0 || (loc.Speed == 0 && asset.MoveStatus != 0))) {
|
||
var speedtext = "";
|
||
if (loc.Speed == 0) {
|
||
if (asset.MoveStatus == 2)
|
||
speedtext = "Stopped On";
|
||
else if (asset.MoveStatus == 3)
|
||
speedtext = "Stopped Off";
|
||
}
|
||
showSpeedChart(loc.Speed, loc.PostedSpeedLimit, loc.SpeedUnits, speedtext);
|
||
}
|
||
}
|
||
|
||
var speedChart;
|
||
function showSpeedChart(speed, postspeed, units, speedtext) {
|
||
var max = Math.max(speed, postspeed);
|
||
max = (parseInt(max / 25) + 1) * 25;
|
||
if (postspeed <= 0)
|
||
postspeed = max;
|
||
$("#assetspeeddiv").show();
|
||
// 基于准备好的dom,初始化echarts实例
|
||
if (!speedChart)
|
||
speedChart = echarts.init(document.getElementById("assetspeeddiv"));
|
||
|
||
option = {
|
||
tooltip: {
|
||
formatter: '{c} {b}'
|
||
},
|
||
toolbox: {
|
||
},
|
||
//backgroundColor: 'black',
|
||
series: [
|
||
{
|
||
name: units,
|
||
type: 'gauge',
|
||
max: max,
|
||
detail: {
|
||
//formatter: '{value}',
|
||
formatter: function (value) {
|
||
var v = value + " " + units
|
||
if (speedtext != "")
|
||
v += "\r\n\r\n" + speedtext
|
||
return v;
|
||
},
|
||
offsetCenter: speedtext != "" ? ["0", "60%"] : ["0", "40%"],
|
||
fontSize: 10,
|
||
color: speedtext != "" ? "black" : "auto"
|
||
},
|
||
data: [{ value: speed.toFixed(0)/*, name: units*/ }],
|
||
radius: "98%",
|
||
axisLine: {
|
||
show: true,
|
||
lineStyle: {
|
||
width: 10,
|
||
//color: [[postspeed / max, '#91c7ae'], [1, '#c23531']]
|
||
color: [[postspeed / max, '#91c7ae'], [1, '#ff0000']]
|
||
}
|
||
},
|
||
splitLine: {
|
||
show: true,
|
||
length: 12
|
||
},
|
||
axisTick: {
|
||
splitNumber: 2
|
||
},
|
||
axisLabel: {
|
||
show: true,
|
||
fontSize: 9,
|
||
//fontWeight: "bold",
|
||
distance: 3,
|
||
formatter: function (value) {
|
||
return value.toFixed(0);
|
||
},
|
||
},
|
||
title: {
|
||
fontSize: 9,
|
||
offsetCenter: ["0", -15]
|
||
}
|
||
}
|
||
]
|
||
};
|
||
speedChart.setOption(option, true);
|
||
}
|
||
|
||
function canAddReading() {
|
||
if (!assetdata)
|
||
return false;
|
||
if (assetdata.ShareStatus == 2)
|
||
return false;
|
||
if (!assetdata.TelematicsEnabled)
|
||
return true;
|
||
else {
|
||
if (assetdata.OnRoad)
|
||
return assetdata.CurrentOdometer.IsEmpty ||
|
||
assetdata.CurrentOdometer.DataSource.toLowerCase() == "calamp" ||
|
||
assetdata.CurrentOdometer.DataSource.toLowerCase() == "pedigree";
|
||
|
||
else
|
||
return assetdata.CurrentHours.IsEmpty ||
|
||
assetdata.CurrentHours.DataSource.toLowerCase() == "calamp" ||
|
||
assetdata.CurrentHours.DataSource.toLowerCase() == "pedigree";
|
||
}
|
||
}
|
||
|
||
var PMAlertMessages = undefined;
|
||
|
||
function GetPMInfo() {
|
||
showloading(true);
|
||
$('#sppmplan').text("");
|
||
//$('#pm_description').text("");
|
||
$("#btnPMMsgExp").hide();
|
||
assetrequest("GetPMInfo", contractorid + String.fromCharCode(170) + assetid, function (data) {
|
||
showloading(false);
|
||
if (typeof (data) === "string") {
|
||
;
|
||
return;
|
||
}
|
||
var pmstr = GetTextByKey("P_MV_NOPLANASSIGNED", "No Plan Assigned.");
|
||
if (data.ScheduleNames && data.ScheduleNames.length > 0)
|
||
pmstr = data.ScheduleNames;
|
||
$('#sppmplan').text(pmstr);
|
||
|
||
SetDivIconHeight();
|
||
}, function (err) {
|
||
showloading(false);
|
||
});
|
||
}
|
||
|
||
function showPMAlertMessages() {
|
||
var pmdesc = ""
|
||
if (PMAlertMessages && PMAlertMessages.length > 0) {
|
||
var max = PMAlertMessages.length;
|
||
if ($("#btnPMMsgExp").hasClass("iconchevronleft"))
|
||
max = 3;
|
||
for (var i = 0; i < PMAlertMessages.length && i < max; i++) {
|
||
var msg = PMAlertMessages[i];
|
||
if (msg.indexOf("OVERDUE") == 0)
|
||
pmdesc += "<font color='#FF0000'>" + msg + "</font><br/>";
|
||
else
|
||
pmdesc += msg + "<br/>";
|
||
}
|
||
$('#pm_description').html(pmdesc);
|
||
}
|
||
}
|
||
|
||
function showPMAlertExpend() {
|
||
var btn = $("#btnPMMsgExp");
|
||
if (btn.hasClass("iconchevrondown")) {
|
||
btn.removeClass("iconchevrondown").addClass("iconchevronleft");
|
||
}
|
||
else {
|
||
btn.removeClass("iconchevronleft").addClass("iconchevrondown");
|
||
}
|
||
|
||
showPMAlertMessages();
|
||
};
|
||
|
||
function GetAssetExtInfo(rentaldata) {
|
||
showloading(true);
|
||
assetrequest("GetAssetExtInfo", contractorid + String.fromCharCode(170) + assetid + String.fromCharCode(170) + "", function (data) {
|
||
showloading(false);
|
||
if (typeof (data) === "string") {
|
||
return;
|
||
}
|
||
CreateScheduledMaintenance(data);
|
||
if (rentaldata) {
|
||
createRentalInfomationTd();
|
||
ShowAssetRental(rentaldata);
|
||
}
|
||
createGrid(data);
|
||
SetDivIconHeight();
|
||
}, function (err) {
|
||
showloading(false);
|
||
});
|
||
}
|
||
|
||
function GetAssetRental() {
|
||
assetrequest("GetAssetRental", contractorid + String.fromCharCode(170) + assetid, function (data) {
|
||
if (typeof (data) === "string") {
|
||
return;
|
||
}
|
||
|
||
GetAssetExtInfo(data);
|
||
}, function (err) {
|
||
});
|
||
}
|
||
|
||
function ShowAssetRental(rental) {
|
||
$('#tab_rentalinformation').show();
|
||
$('#rental_startdate').text(rental.RentalDateStr);
|
||
$('#rental_projreturndate').text(rental.ProjectReturnDateStr);
|
||
if (rental.ProjectReturnDateStr !== "" && rental.ReturnDateStr === "")
|
||
$('#rental_projreturndate').css('color', 'red');
|
||
else
|
||
$('#rental_projreturndate').css('color', 'black');
|
||
$('#rental_rentalstatus').text(rental.RentalStatus);
|
||
if (rental.RentalStatus.toLowerCase() === "overdue")
|
||
$('#rental_rentalstatus').css('color', 'red');
|
||
else
|
||
$('#rental_rentalstatus').css('color', 'black');
|
||
}
|
||
|
||
function CreateScheduledMaintenance(data) {
|
||
if (canViewPM) {
|
||
createScheduledMaintenanceTd();
|
||
if (canViewInspection && data.InspectReportItem && data.InspectReportItem.Id !== "") {
|
||
$('#td_lastinspection').show();
|
||
$('#a_lastinspection').text(data.InspectReportItem.CommitTimeStr);
|
||
$('#a_lastinspection').click(function () {
|
||
window.open("../Inspection/Report.aspx?rid=" + data.InspectReportItem.Id, "_blank");
|
||
});
|
||
}
|
||
else {
|
||
$('#td_lastinspection').hide();
|
||
$('#a_lastinspection').text('');
|
||
}
|
||
|
||
if (canViewPM && data.PMPlanItems && data.PMPlanItems.length > 0) {
|
||
var tr = $("#tr_nextservice");
|
||
tr.show();
|
||
var td = $('#td_nextservice');
|
||
td.empty();
|
||
for (var i = 0; i < data.PMPlanItems.length; i++) {
|
||
var pmplan = data.PMPlanItems[i];
|
||
var label = $('<label></label>').text(pmplan.NextPlanDetail);
|
||
if (pmplan.LastAlertUnAddressed)
|
||
label.css('color', 'red');
|
||
td.append(label);
|
||
td.append('<br />');
|
||
}
|
||
}
|
||
else {
|
||
$('#tr_nextservice').hide();
|
||
$('#td_nextservice').empty();
|
||
}
|
||
|
||
if (canViewPM && data.MaintenanceRecordItem && data.MaintenanceRecordItem.ID) {
|
||
var item = data.MaintenanceRecordItem;
|
||
var td = $('#td_maintenancerecord');
|
||
td.show();
|
||
td.empty();
|
||
var b = $('<lable>' + GetTextByKey("P_MV_LASTCOMPLETED_COLON", "Last Completed:") + ' </lable>');
|
||
td.append(b);
|
||
var label = $('<label></label>').text(item.LastCompletedText);
|
||
td.append(label).append('<br />');
|
||
}
|
||
else {
|
||
$('#td_maintenancerecord').hide();
|
||
$('#td_maintenancerecord').empty();
|
||
}
|
||
|
||
GetPMInfo();
|
||
}
|
||
}
|
||
|
||
function createGrid(data) {
|
||
if ((canViewInspection || canViewAlertsManagement)
|
||
&& data.AlertItems && data.AlertItems.length > 0) {
|
||
createGridTd("alerts");
|
||
$('#divalerts').show();
|
||
InitAlertsGridData();
|
||
showAlertsList(data.AlertItems);
|
||
}
|
||
|
||
if (data.AssetStatusItems && data.AssetStatusItems.length > 0) {
|
||
createGridTd("assetstatus");
|
||
InitAssetStatusGridData();
|
||
showAssetStatusList(data.AssetStatusItems);
|
||
}
|
||
}
|
||
|
||
function OnEditAsset() {
|
||
window.parent.OnEditAsset(contractorid, assetid);
|
||
}
|
||
|
||
function OnViewWorkOrder() {
|
||
window.parent.OnViewWorkOrder(contractorid, assetid);
|
||
}
|
||
|
||
function OnViewMaintenanceRecord() {
|
||
window.parent.OnViewMaintenanceRecord(contractorid, assetid);
|
||
}
|
||
|
||
function OnViewMaintenanceRecord() {
|
||
window.parent.OnViewMaintenanceRecord(contractorid, assetid);
|
||
}
|
||
|
||
function doDirections(lat, lng) {
|
||
window.parent.doDirections(lat, lng);
|
||
}
|
||
|
||
function doWeather(lat, lng) {
|
||
window.parent.doWeather(lat, lng);
|
||
}
|
||
|
||
function openSendLocation(cid, assetid) {
|
||
window.parent.openSendEmails(cid, assetid, 0);
|
||
}
|
||
|
||
function doLocationHistory(cid, assetid, name) {
|
||
window.parent.doLocationHistory(cid, assetid, name);
|
||
}
|
||
|
||
function OnViewAlertsManagement(ctrid, assetid) {
|
||
window.parent.OnViewAlertsManagement(ctrid, assetid);
|
||
}
|
||
|
||
function OnViewFuelRecords(ctrid, assetid) {
|
||
window.parent.OnViewFuelRecords(ctrid, assetid);
|
||
}
|
||
|
||
function SetDivIconHeight() {
|
||
var ah = $('#assetinfo').height();
|
||
if (ah)
|
||
$('#div_icon').css('height', ah - 10);
|
||
|
||
//var imgw = $('#td_img').width();
|
||
//if (imgw)
|
||
// $('#div_img').css('width', imgw);
|
||
|
||
}
|
||
|
||
//************************Add Reading**************************************//
|
||
|
||
function GetUserPermission() {
|
||
devicerequest("GetUserPermission", contractorid, function (data) {
|
||
if (typeof (data) === "string") {
|
||
showAlert(data, 'Error');
|
||
return;
|
||
}
|
||
isAllowed = data;
|
||
}, function (err) {
|
||
})
|
||
}
|
||
|
||
function initTime() {
|
||
var c = $('#dialogadd_timehour');
|
||
for (var i = 0; i < 24; i++) {
|
||
if (i < 10)
|
||
c.append($("<option></option>").val("0" + i).text("0" + i))
|
||
else
|
||
c.append($("<option></option>").val(i).text(i))
|
||
}
|
||
c = $('#dialogadd_timeminute');
|
||
for (var i = 0; i < 60; i++) {
|
||
if (i < 10)
|
||
c.append($("<option></option>").val("0" + i).text("0" + i))
|
||
else
|
||
c.append($("<option></option>").val(i).text(i))
|
||
}
|
||
c = $('#dialogaddenginehours_timehour');
|
||
for (var i = 0; i < 24; i++) {
|
||
if (i < 10)
|
||
c.append($("<option></option>").val("0" + i).text("0" + i))
|
||
else
|
||
c.append($("<option></option>").val(i).text(i))
|
||
}
|
||
c = $('#dialogaddenginehours_timeminute');
|
||
for (var i = 0; i < 60; i++) {
|
||
if (i < 10)
|
||
c.append($("<option></option>").val("0" + i).text("0" + i))
|
||
else
|
||
c.append($("<option></option>").val(i).text(i))
|
||
}
|
||
}
|
||
|
||
function initTimeZone() {
|
||
devicerequest("GetTimeZones", "", function (data) {
|
||
if (data) {
|
||
var sel2 = $("#dialogadd_odometertimezone");
|
||
sel2.empty();
|
||
var sel3 = $("#dialogadd_enginehourstimezone");
|
||
sel3.empty();
|
||
if (data && data.length > 0) {
|
||
for (var i = 0; i < data.length; i++) {
|
||
sel2.append($("<option></option>").val(data[i].Key).text("(" + data[i].Value + ")" + data[i].Key).attr("offset", data[i].Tag1));
|
||
sel3.append($("<option></option>").val(data[i].Key).text("(" + data[i].Value + ")" + data[i].Key).attr("offset", data[i].Tag1));
|
||
}
|
||
}
|
||
sel2.val("UTC");
|
||
sel3.val("UTC");
|
||
}
|
||
}, function (err) {
|
||
});
|
||
}
|
||
|
||
function getCustomerTimeZone() {
|
||
assetrequest1("GetCustomerTimeZone", contractorid, function (data) {
|
||
if (data) {
|
||
customertimezone = data.Key;
|
||
customerdatetime = data.Value;
|
||
|
||
var datetime = customerdatetime.split(' ');
|
||
var time = datetime[0];
|
||
var st = datetime[1].split(':');
|
||
var hours = st[0].length == 1 ? "0" + st[0] : st[0];
|
||
var minutes = st[1];
|
||
|
||
$("#dialogadd_odometertimezone").val(customertimezone);
|
||
$('#dialogadd_odometerdate').val(time);
|
||
$('#dialogadd_timehour').val(hours);
|
||
$('#dialogadd_timeminute').val(minutes);
|
||
|
||
$("#dialogadd_enginehourstimezone").val(customertimezone);
|
||
$('#dialogaddenginehours_date').val(time);
|
||
$('#dialogaddenginehours_timehour').val(hours);
|
||
$('#dialogaddenginehours_timeminute').val(minutes);
|
||
}
|
||
}, function (err) {
|
||
});
|
||
}
|
||
|
||
|
||
function setIconBr(div_icon) {
|
||
var br = '<br />';
|
||
//if (_this.type == 0)
|
||
div_icon.append(br);
|
||
}
|
||
|
||
function createAssetIcon(asset) {
|
||
var loc = asset.CurrentLocation;
|
||
var div_icon = $('#div_icon');
|
||
div_icon.empty();
|
||
var span = $('<span class="icondirection" style="cursor: pointer;" onclick="doDirections(' + loc.Latitude + ',\'' + loc.Longitude + '\')" title="' + GetTextByKey("P_MV_DIRECTIONS", "Directions") + '"></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
if (loc.FromSmartWitness && enableSmartWitness) {
|
||
span = $("<span class='iconvideo' style='cursor:pointer;' onclick='openRequestVideoDialog(" + asset.ID + ")' title='" + GetTextByKey("P_MV_VIDEOREQUEST", "Video Request") + "'></span>");
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
}
|
||
span = $("<span class='iconmail' style='cursor:pointer;' onclick='openSendLocation(\"" + contractorid + "\"," + asset.ID + ")' title='" + GetTextByKey("P_MV_SENDLOCATION", "Send Location") + "'></span>");
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
//assetLocations[asset.ID] = loc;
|
||
|
||
span = $('<span class="iconweather" style="cursor: pointer; " onclick="doWeather(' + loc.Latitude + ',\'' + loc.Longitude + '\')" title="' + GetTextByKey("P_MV_WEATHER", "Weather") + '"></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
if (canEditAsset) {
|
||
span = $('<span class="iconasset" style="cursor: pointer; " onclick="OnEditAsset(\'' + contractorid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_MV_EDITASSET", "Edit Asset") + '"></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
}
|
||
if (canViewWorkOrder) {
|
||
span = $('<span class="iconmapworkorder" style="cursor: pointer; " onclick="OnViewWorkOrder(\'' + contractorid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_MV_WORKORDERS", "Work Orders") + '"></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
}
|
||
if (canViewMR) {
|
||
span = $('<span class="iconmaintenancerecord" style="cursor: pointer; " onclick="OnViewMaintenanceRecord(\'' + contractorid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_MV_MAINTENANCERECORD", "Maintenance Record") + '"></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
}
|
||
span = $('<span class="iconlochis" style="cursor: pointer; " onclick="doLocationHistory(\'' + contractorid + '\',' + asset.ID + ', \'' + encodeURIComponent(asset.DisplayName).replace("'", "\\'") + '\')" title="' + GetTextByKey("P_MA_LOCATIONHISTORY", "Location History") + '" data-asset=' + asset + '></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
|
||
if (canViewAlertsManagement) {
|
||
span = $('<span class="iconmapmanagealerts" style="cursor: pointer; " onclick="OnViewAlertsManagement(\'' + contractorid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_ALERTSMANAGEMENT", "Alerts Management") + '"></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
}
|
||
if (canViewFuelRecords) {
|
||
span = $('<span class="iconmapfuelrecord" style="cursor: pointer; " onclick="OnViewFuelRecords(\'' + contractorid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_FUELRECORDS", "Fuel Records") + '"></span>');
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
}
|
||
|
||
if (asset.AttachmentCount > 0) {
|
||
span = $('<span class="iconatta" style="cursor: pointer;" title="' + GetTextByKey("P_WO_ATTACHMENTS", "Attachments") + '"></span>');
|
||
span.click(asset.ID, function (e) {
|
||
getAssetMapAttachments(e.data);
|
||
});
|
||
div_icon.append(span);
|
||
setIconBr(div_icon);
|
||
}
|
||
}
|
||
|
||
var grid_alertsdt;
|
||
function showAlertsList(data) {
|
||
var rows = [];
|
||
for (var i = 0; i < data.length; i++) {
|
||
var r = data[i];
|
||
for (var j in r) {
|
||
if (j === "AlertLocalTime")
|
||
r[j] = { DisplayValue: r["AlertLocalTimeStr"], Value: r[j] };
|
||
}
|
||
rows.push(r);
|
||
}
|
||
|
||
grid_alertsdt.setData(rows);
|
||
}
|
||
|
||
function InitAlertsGridData() {
|
||
grid_alertsdt = createGridView('#divalerts');
|
||
var list_columns = [
|
||
{ name: 'AlertLocalDateStr', caption: GetTextByKey("P_MV_DATE", "Date"), valueIndex: 'AlertLocalDateStr', css: { 'width': 70, 'text-align': 'left' } },
|
||
{ name: 'AlertLocalTimeStr', caption: GetTextByKey("P_MV_TIME", "Time"), valueIndex: 'AlertLocalTimeStr', css: { 'width': 75, 'text-align': 'left' } },
|
||
{ name: 'Level', caption: GetTextByKey("P_MV_LEVEL", "Level"), valueIndex: 'Level', css: { 'width': 60, 'text-align': 'left' } },
|
||
{ name: 'Description', caption: GetTextByKey("P_MV_DESCRIPTION", "Description"), valueIndex: 'Description', css: { 'width': 200, 'text-align': 'left' } }
|
||
];
|
||
var columns = [];
|
||
// head
|
||
for (var hd in list_columns) {
|
||
var col = {};
|
||
col.name = list_columns[hd].name;
|
||
col.caption = list_columns[hd].caption;
|
||
col.visible = true;
|
||
col.sortable = true;
|
||
col.width = list_columns[hd].css.width;
|
||
col.align = list_columns[hd].css["text-align"]
|
||
col.key = list_columns[hd].valueIndex;
|
||
col.allowFilter = list_columns[hd].allowFilter;
|
||
columns.push(col);
|
||
}
|
||
grid_alertsdt.canMultiSelect = false;
|
||
grid_alertsdt.columns = columns;
|
||
grid_alertsdt.init();
|
||
}
|
||
|
||
var grid_assetstatusdt;
|
||
function showAssetStatusList(data) {
|
||
var rows = [];
|
||
for (var i = 0; i < data.length; i++) {
|
||
var r = data[i];
|
||
for (var j in r) {
|
||
if (j === "EventLocalTime")
|
||
r[j] = { DisplayValue: r["EventLocalTimeStr"], Value: r[j] };
|
||
}
|
||
rows.push(r);
|
||
}
|
||
|
||
grid_assetstatusdt.setData(rows);
|
||
}
|
||
|
||
function InitAssetStatusGridData() {
|
||
grid_assetstatusdt = createGridView('#divassetstatus');
|
||
var list_columns = [
|
||
{ name: 'EventLocalTime', caption: GetTextByKey("P_MV_DATE", "Date"), valueIndex: 'EventLocalTime', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'AttributeName', caption: GetTextByKey("P_MV_READING", "Reading"), valueIndex: 'AttributeName', css: { 'width': 120, 'text-align': 'left' } },
|
||
{ name: 'Result', caption: GetTextByKey("P_MV_RESULT", "Result"), valueIndex: 'Result', css: { 'width': 150, 'text-align': 'left' } }
|
||
];
|
||
var columns = [];
|
||
// head
|
||
for (var hd in list_columns) {
|
||
var col = {};
|
||
col.name = list_columns[hd].name;
|
||
col.caption = list_columns[hd].caption;
|
||
col.visible = true;
|
||
col.sortable = true;
|
||
col.width = list_columns[hd].css.width;
|
||
col.align = list_columns[hd].css["text-align"]
|
||
col.key = list_columns[hd].valueIndex;
|
||
col.allowFilter = list_columns[hd].allowFilter;
|
||
columns.push(col);
|
||
}
|
||
grid_assetstatusdt.canMultiSelect = false;
|
||
grid_assetstatusdt.columns = columns;
|
||
grid_assetstatusdt.init();
|
||
}
|
||
|
||
|
||
var grid_utilizationdt;
|
||
function showUtilizationList(data) {
|
||
var rows = [];
|
||
for (var i = 0; i < data.length; i++) {
|
||
var r = data[i];
|
||
for (var j in r) {
|
||
if (j === "AlertLocalTime")
|
||
r[j] = { DisplayValue: r["AlertLocalTimeStr"], Value: r[j] };
|
||
}
|
||
rows.push(r);
|
||
}
|
||
|
||
grid_utilizationdt.setData(rows);
|
||
}
|
||
|
||
function InitUtilizationGridData() {
|
||
grid_utilizationdt = createGridView('#divutilization');
|
||
var list_columns = [
|
||
{ name: 'AlertLocalTime', caption: "", valueIndex: 'AlertLocalTime', css: { 'width': 70, 'text-align': 'left' } },
|
||
{ name: 'TotalHours', caption: GetTextByKey("P_MV_TOTALHOURS", "Total Hours"), TotalHours: 'Level', css: { 'width': 80, 'text-align': 'left' } },
|
||
{ name: 'WorkingHours', caption: GetTextByKey("P_MV_TOTALHOURS", "Working Hours"), TotalHours: 'WorkingHours', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'IdleHours', caption: GetTextByKey("P_MV_IDLEHOURS", "Idle Hours"), TotalHours: 'IdleHours', css: { 'width': 80, 'text-align': 'left' } },
|
||
{ name: 'IdleHours', caption: GetTextByKey("P_MV_IDLEHOURS", "Idle %"), TotalHours: 'IdleHours', css: { 'width': 80, 'text-align': 'left' } }
|
||
];
|
||
var columns = [];
|
||
// head
|
||
for (var hd in list_columns) {
|
||
var col = {};
|
||
col.name = list_columns[hd].name;
|
||
col.caption = list_columns[hd].caption;
|
||
col.visible = true;
|
||
col.sortable = true;
|
||
col.width = list_columns[hd].css.width;
|
||
col.align = list_columns[hd].css["text-align"]
|
||
col.key = list_columns[hd].valueIndex;
|
||
col.allowFilter = list_columns[hd].allowFilter;
|
||
columns.push(col);
|
||
}
|
||
grid_utilizationdt.canMultiSelect = false;
|
||
grid_utilizationdt.columns = columns;
|
||
grid_utilizationdt.init();
|
||
}
|
||
|
||
function getNowFormatDate() {
|
||
assetrequest("GetNowFormatDate", '', function (data) {
|
||
$("#refreshTimeDiv").text(GetTextByKey("P_MV_LASTREFRESHED", "Last Refreshed: ") + data);
|
||
|
||
}, function (err) {
|
||
});
|
||
}
|
||
|
||
/** Assets Attachment **/
|
||
var imgTypes = [".jfif", ".jpg", ".jpeg", ".bmp", ".png", ".tiff", ".gif"];
|
||
var printTypes = ['.pdf', ".jfif", ".jpg", ".jpeg", ".bmp", ".png", ".tiff", ".gif"];//types to be loaded to print
|
||
function getAssetMapAttachments(assetid) {
|
||
showmaskbg(true);
|
||
$('#dialog_assetattachments').css({
|
||
'top': (document.documentElement.clientHeight - $('#dialog_assetattachments').height()) / 4,
|
||
'left': (document.documentElement.clientWidth - $('#dialog_assetattachments').width()) / 2
|
||
}).showDialogfixed();
|
||
|
||
var div_aatts = $("#divassetattachments").empty();
|
||
div_aatts.find(".attachmentsmask").show();
|
||
assetrequest("GetAssetMapAttachments", JSON.stringify([contractorid, assetid]), function (data) {
|
||
div_aatts.find(".attachmentsmask").hide();
|
||
if (data && data.length > 0) {
|
||
for (var i = 0; i < data.length; i++) {
|
||
var att = data[i];
|
||
if (imgTypes.indexOf(att.FileType.toLowerCase()) >= 0)
|
||
att.ThumbnailUrl = att.Url + "&thumb=1";
|
||
var div = createAttaDiv(att);
|
||
|
||
if ($.inArray(att.FileType.toLowerCase(), printTypes) >= 0) {
|
||
var sprint = $('<span class="attaprint"></span>').attr('title', GetTextByKey("P_WO_PRINT", 'Print')).click(att, function (e) {
|
||
openPrintFrame(e.data.AttachmentType, e.data.AttachmentIdStr);
|
||
});
|
||
div.append(sprint);
|
||
}
|
||
|
||
if (att.FileType.toLowerCase() != "url") {
|
||
var sdownload = $('<span class="attadownload"></span>').attr('title', GetTextByKey("P_WO_DOWNLOAD", 'Download')).click(att, function (e) {
|
||
openDownloadFrame(e.data.Url + "&d=1");
|
||
});
|
||
div.append(sdownload);
|
||
}
|
||
|
||
div_aatts.append(div);
|
||
}
|
||
}
|
||
}, function () {
|
||
div_aatts.find(".attachmentsmask").hide();
|
||
});
|
||
}
|
||
|
||
function createAttaDiv(att, iswoatta) {
|
||
var div = $('<div class="divatt"></div>').attr('title', att.Name);
|
||
|
||
if (!att.FileType || att.FileType == "") att.FileType = ".jpg";
|
||
if (imgTypes.indexOf(att.FileType.toLowerCase()) >= 0) {
|
||
var pic = $('<img class="picture"></img>').attr('src', att.ThumbnailUrl);
|
||
pic.click(att, function (e) {
|
||
window.open(e.data.Url, "_blank")
|
||
});
|
||
div.append(pic);
|
||
}
|
||
else {
|
||
var sdown = $('<img class="picture" />').click(att, function (e) {
|
||
window.open(e.data.Url);
|
||
});
|
||
setAttachemntIcon(att.FileType, sdown);
|
||
div.append(sdown);
|
||
}
|
||
return div
|
||
}
|
||
|
||
function setAttachemntIcon(filetype, sdown) {
|
||
if ([".doc", ".docx"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/word.jpg')
|
||
} else if ([".xls", ".xlsx"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/excel.jpg')
|
||
} else if ([".ppt", ".pptx"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/ppt.jpg')
|
||
} else if ([".pdf", ".xps"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/pdf.jpg')
|
||
} else if ([".mp4", ".mov", ".avi", ".mkv", ".3gp", ".ts", ".m2ts"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/vedio.jpg')
|
||
} else if ([".zip", ".rar", ".7z"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/zip.jpg')
|
||
} else if ([".msg"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/msg.jpg')
|
||
} else if ([".xml"].indexOf(filetype) >= 0) {
|
||
sdown.attr('src', '../img/icon/xml.jpg')
|
||
} else {
|
||
sdown.attr('src', '../img/icon/txt.jpg')
|
||
}
|
||
}
|
||
/** End Assets Attachment **/
|
||
</script>
|
||
</asp:Content>
|
||
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
|
||
<div>
|
||
<div class="clear"></div>
|
||
<div id="divcontent" style="overflow: auto; font-size: 13px;">
|
||
<div class="titlePane">
|
||
<span> </span>
|
||
<%--<span class="iconprevious titleButton prev" id="btnNext" onclick="OnPrevious();"></span>
|
||
<span class="iconnext titleButton next" id="btnPrevious" onclick="OnNext();"></span>--%>
|
||
<span class="iconclose titleButton close" onclick="OnClose();"></span>
|
||
</div>
|
||
<div>
|
||
<div id="div_icon" class="divicon">
|
||
</div>
|
||
<div id="div_assetcontent" style="padding-left: 72px;">
|
||
<table style="width: 100%;" id="assetinfo">
|
||
<tr>
|
||
<%--<td style="width: 30%; padding: 10px; border: 1px solid black; text-align:center;">--%>
|
||
<td style="width: 30%; padding: 10px;">
|
||
<div id="div_img" style="border: 1px solid black; min-width: 320px; width: 100%; height: 250px; text-align: center; vertical-align: middle;">
|
||
<img v-bind:src="asset.AssetIconUrl" style="height: 248px; max-width: 100%; max-height: 100%;" />
|
||
</div>
|
||
</td>
|
||
<td style="width: 35%; vertical-align: top; min-width: 300px;">
|
||
<table>
|
||
<tr>
|
||
<td style="width: 60%; line-height: 20px;">
|
||
<b style="font-size: 16px;">{{asset.DisplayName}}</b>
|
||
<br />
|
||
<label data-lgid="P_MA_ASSETTYPE_COLON">Asset Type:</label>
|
||
<label>{{asset.TypeName}}</label>
|
||
<br />
|
||
<b class="assetlable" data-lgid="P_MV_MAKE_COLON">Make:</b>
|
||
<label>{{asset.MakeName}}</label>
|
||
<b class="assetlable" data-lgid="P_MV_MODEL_COLON">Model:</b>
|
||
<label>{{asset.ModelName}}</label>
|
||
<br />
|
||
<label data-lgid="P_MV_VINSN_COLON">VIN/SN:</label>
|
||
<label>{{asset.VIN}}</label>
|
||
<br />
|
||
<label data-lgid="P_MV_YEAR_COLON">Year:</label>
|
||
<label>{{asset.MakeYear>0?asset.MakeYear:""}}</label>
|
||
<br />
|
||
<b data-lgid="P_MV_GROUPS_COLON">Group(s):</b>
|
||
<label>{{asset.GroupNames}}</label>
|
||
<br />
|
||
<br />
|
||
<span id="span_currentoperator" style="display: none;">
|
||
<label data-lgid="P_MV_CURRENTOPERATOR_COLON">Current Operator:</label>
|
||
<label>{{asset.CurrentOperator}}</label>
|
||
<br />
|
||
<br />
|
||
</span>
|
||
<b data-lgid="P_MV_DESCRIPTION_COLON">Description:</b>
|
||
<label id="tddesc"></label>
|
||
</td>
|
||
<td style="width: 40%; text-align: right; vertical-align: top;">
|
||
<br />
|
||
<b style="font-size: 14px;" data-lgid="P_MV_ODOMETER_COLON" v-bind:style="{display: asset.OnRoad?'': 'none'}">Odometer:</b>
|
||
<b style="font-size: 14px;" data-lgid="P_MV_HOURS_COLON" v-bind:style="{display: asset.OnRoad?'none': ''}">Hours:</b>
|
||
<b style="font-size: 14px;">{{asset.OnRoad?formatNumber(asset.CurrentOdometer.Corrected): formatNumber(asset.CurrentHours.Corrected)}} </b>
|
||
<span id="btnodometeradd" class="assetsummaryplus" style="display: none; cursor: pointer;" onclick="openAddOdometer();"></span>
|
||
<span id="btnenginehoursadd" class="assetsummaryplus" style="display: none; cursor: pointer;" onclick="openAddEnginHours();"></span>
|
||
<br />
|
||
<label v-bind:style="{color: (asset.OnRoad?asset.CurrentOdometer.AsofTimeOverdue: asset.CurrentHours.AsofTimeOverdue)?'red': 'black'}">(as of {{asset.OnRoad?asset.CurrentOdometer.AsofTimeLocalStr: asset.CurrentHours.AsofTimeLocalStr}})</label>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
<table>
|
||
<tr id="tr_alerts" style="display: none;">
|
||
<td><span title="Idle hours for last 14 calendar days." data-title-lgid="P_MV_IDLEHOURSFORLAST14CALENDARDAYS" data-lgid="P_MV_LDLEHOURS">ldle Hours:</span></td>
|
||
<td>{{asset.CurrentIdleHours.Hours}}</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td style="width: 35%; vertical-align: top;">
|
||
<table style="width: 100%;">
|
||
<tr>
|
||
<td style="vertical-align: top; position: relative;">
|
||
<iframe id="ifmapview" style="width: 100%; min-width: 320px; height: 260px; border: 1px;"></iframe>
|
||
<div id="assetfuelleveldiv" style="position: absolute; top: 5px; right: 20px;"></div>
|
||
<div id="assetspeeddiv" style="position: absolute; top: 105px; right: 10px; width: 130px; height: 135px; background-color: white;"></div>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr style="vertical-align: top; height: 150px;">
|
||
<td id="td_scheduledmaintenance" style="padding: 0px 10px;"></td>
|
||
<td id="td_rental" style="padding: 0px 10px;"></td>
|
||
<td id="td_locationinformation" style="padding: 0px 10px;">
|
||
<div class="div_titlte" data-lgid="P_MV_LOCATIONASSIGNMENTINFORMATION">Location Assignment Information</div>
|
||
<b class="assetlable" style="width: 140px;" data-lgid="P_MV_LOCATION_COLON">Location:</b>
|
||
<b>{{asset.CurrentLocation.Address}}</b>
|
||
<br />
|
||
<span id="span_location" style="display: none;">
|
||
<label v-bind:style="{color: asset.CurrentLocation.AsofTimeOverdue?'red': 'black'}">(as of {{asset.CurrentLocation.AsofTimeLocalStr}} )</label>
|
||
<br />
|
||
<br />
|
||
</span>
|
||
<b id="refreshTimeDiv"></b>
|
||
<br />
|
||
<br />
|
||
<b data-lgid="P_MV_JOBSITE_COLON">Jobsite:</b>
|
||
<label>{{asset.CurrentJobSiteNames}}</label>
|
||
</td>
|
||
</tr>
|
||
<tr style="vertical-align: top;">
|
||
<td id="td_alerts" style="padding: 0px 10px;"></td>
|
||
<td id="td_assetstatus" style="padding: 0px 10px;"></td>
|
||
<td id="td_utilization" style="padding: 0px 10px;"></td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div style="text-align: center; font-weight: 600; font-size: 16px; display: none;">
|
||
<table style="width: 100%;">
|
||
<tr>
|
||
<td data-lgid="P_MV_TOTALHOURS_COLON">Total Hours:</td>
|
||
<td></td>
|
||
<td>|</td>
|
||
<td data-lgid="P_MV_WORKINGHOURS_COLON">Working Hours:</td>
|
||
<td></td>
|
||
<td>|</td>
|
||
<td data-lgid="P_MV_LDLEHOURS">Idle Hours:</td>
|
||
<td></td>
|
||
<td>|</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div id="div_timeline" class="div-timeline" style="display: none">
|
||
<div class="function-title" data-lgid="P_MV_TIMELINE">Timeline</div>
|
||
<div class="function-bar">
|
||
<input id="text-date" type="text" />
|
||
<span class="sbutton iconrefresh" onclick="OnRefresh();" data-lgid="P_MV_REFRESH">Refresh</span>
|
||
</div>
|
||
<div style="clear: both"></div>
|
||
<iframe id="iftimeline" class="iframe-timeline"></iframe>
|
||
</div>
|
||
<div id="div_wsp" class="div-wsp">
|
||
<iframe id="ifwsp" class="iframe-wsp"></iframe>
|
||
</div>
|
||
<div id="mask_bg" style="display: none;">
|
||
<div class="loading c-spin"></div>
|
||
</div>
|
||
|
||
<div class="dialog" id="dialog_addodometer" style="display: none; width: 600px;">
|
||
<div id="addodomask" class="maskbg" style="display: none; z-index: 1;"></div>
|
||
<div class="dialog-title"><span class="title" data-lgid="P_MV_ADDODOMETER">Add Odometer</span><em class="dialog-close"></em></div>
|
||
<div class="dialog-content adjust-content">
|
||
<table style="line-height: 25px; width: 100%;">
|
||
<tr>
|
||
<td class="label" title="Odometer at time of reading" 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>
|
||
<tr>
|
||
<td class="label" data-lgid="P_MV_ODOMETERUOM_COLON">Odometer UOM:</td>
|
||
<td>
|
||
<select id="dialogadd_sel_odometeruom" tabindex="152" style="width: 204px; height: 22px;">
|
||
<option value="Mile" data-lgid="P_MV_MILE">Mile</option>
|
||
<option value="Kilometre" data-lgid="P_MV_KILOMETER">Kilometer</option>
|
||
</select></td>
|
||
</tr>
|
||
<tr>
|
||
<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-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-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;"> : </span>
|
||
<select id="dialogadd_timeminute" style="width: 48px;" tabindex="156"></select></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="label" data-lgid="P_MV_NOTES_COLON">Notes:</td>
|
||
<td>
|
||
<textarea id="dialogadd_notes" maxlength="1000" tabindex="157" style="width: 420px; height: 100px; margin-top: 3px;"></textarea></td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="dialog-func">
|
||
<input type="button" value="Cancel" data-lgid="P_MV_CANCEL" class="dialog-close" tabindex="159" />
|
||
<input type="button" onclick="OnAddOdometer();" value="Submit" data-lgid="P_MV_SUBMIT" tabindex="158" />
|
||
<div class="clear"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="dialog" id="dialog_addenginehours" style="display: none; width: 600px;">
|
||
<div id="addenginehoursmask" class="maskbg" style="display: none; z-index: 1;"></div>
|
||
<div class="dialog-title"><span class="title" data-lgid="P_MV_ADDOENGINEHOURS">Add Engine Hours</span><em class="dialog-close"></em></div>
|
||
<div class="dialog-content adjust-content">
|
||
<table style="line-height: 28px; width: 100%;">
|
||
<tr>
|
||
<td class="label" title="Engine Hours at time of reading" data-title-lgid="P_MV_ENGINEHOURSATTIMEOFREADING" data-lgid="P_MV_ENGINEHOURS_COLON">Engine Hours:</td>
|
||
<td>
|
||
<input type="text" id="dialogaddgenginehours_enginehours" maxlength="8" tabindex="171" /></td>
|
||
</tr>
|
||
<tr>
|
||
<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-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-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;"> : </span>
|
||
<select id="dialogaddenginehours_timeminute" style="width: 48px;" tabindex="175"></select></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="label" data-lgid="P_MV_NOTES_COLON">Notes:</td>
|
||
<td>
|
||
<textarea id="dialogaddenginehours_Notes" maxlength="1000" tabindex="176" style="width: 420px; height: 100px; margin-top: 3px;"></textarea></td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="dialog-func">
|
||
<input type="button" value="Cancel" data-lgid="P_MV_CANCEL" class="dialog-close" tabindex="178" />
|
||
<input type="button" onclick="OnAddEngineHours();" value="Submit" data-lgid="P_MV_SUBMIT" tabindex="177" />
|
||
<div class="clear"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="dialog" id="dialog_pmschedulelist" style="display: none; width: 640px;">
|
||
<div id="pmschedulelistmask" class="maskbg" style="display: none;"></div>
|
||
<div class="dialog-title"><span class="title" data-lgid="P_MV_EDITPLAN">Edit Plan</span><em class="dialog-close"></em></div>
|
||
<div class="dialog-content">
|
||
<div id="pmschedulelist" style="height: 300px;"></div>
|
||
</div>
|
||
<div class="dialog-func">
|
||
<input type="button" value="OK" data-lgid="P_MV_OK" class="dialog-close" tabindex="178" />
|
||
<%--<input type="button" onclick="OnAddEngineHours();" value="Submit" tabindex="177" />--%>
|
||
<div class="clear"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="dialog" id="dialog_pm" style="display: none; min-width: 540px; max-width: 720px;">
|
||
<div class="dialog-title"><span class="title" data-lgid="P_MV_ADDASSETTOSCHEDULE">Add Asset To Schedule</span><em class="dialog-close"></em></div>
|
||
<div class="dialog-content" style="line-height: 24px; padding-left: 20px; padding-right: 20px;">
|
||
</div>
|
||
<div class="dialog-func">
|
||
<input type="button" value="Cancel" data-lgid="P_MV_CANCEL" class="dialog-close" tabindex="201" />
|
||
<input type="button" id="btnSetPMSchedule" value="OK" data-lgid="P_MV_OK" tabindex="200" />
|
||
<div class="clear"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<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>
|
||
<div class="dialog-func">
|
||
<input type="button" value="Close" data-lgid="P_MV_CLOSE" class="dialog-close" tabindex="178" />
|
||
<div class="clear"></div>
|
||
</div>
|
||
<div id="attachmentsmask" class="maskbg" style="display: none;"></div>
|
||
</div>
|
||
</asp:Content>
|