<%@ Page Title="" Language="C#" MasterPageFile="~/MachineDeviceManagement/DeviceManagementBase.master" AutoEventWireup="true" CodeFile="ManageMachines.aspx.cs" Inherits="ManageMachines" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> <style type="text/css"> ::-ms-clear, ::-ms-reveal { display: none; } .selectinput { width: 150px; margin-right: 10px; } .dialog-content table { border-collapse: collapse; width: 100%; } .dialog-content table td.label { width: 184px; text-align: right; padding-right: 10px; line-height: 24px; height: 24px; vertical-align: top; } .dialog-content table td input, .dialog-content table td textarea { border: 1px solid #a9a9a9; width: 200px; height: 18px; padding: 1px; } .dialog-content table td input[type="checkbox"] { border: none; width: 13px; } .dialog-content table td input[type="radio"] { border: none; width: unset; } .dialog-content table td textarea { height: 100px; } #dialogdatatb td { padding-top: 30px; } .a { text-decoration: none; color: #2140fb; } .categoryname { cursor: default; font-size: 20px; font-weight: bold; padding-top: 5px; } .plus:before { font-size: 10px; font-weight: normal; font-family: 'CalciteWebCoreIcons', 'Fontawesome'; content: '\e620'; } .minus:before { font-size: 10px; font-weight: normal; font-family: 'CalciteWebCoreIcons', 'Fontawesome'; content: '\e621'; } .dialogedit:before { font-size: 14px; font-weight: normal; font-family: 'CalciteWebCoreIcons', 'Fontawesome'; content: '\e61b'; cursor: pointer; background: rgb(249, 189, 117); padding: 2px; } .dialogok:before { font-size: 14px; font-weight: normal; font-family: 'CalciteWebCoreIcons', 'Fontawesome'; content: '\e605'; cursor: pointer; background: rgb(249, 189, 117); padding: 2px; } .dialogcancel:before { font-size: 14px; font-weight: normal; font-family: 'CalciteWebCoreIcons', 'Fontawesome'; content: '\e600'; cursor: pointer; background: rgb(249, 189, 117); padding: 2px; } .dialogbtn { height: 24px; cursor: pointer; background: rgb(249, 189, 117); padding: 2px; } .machinetd { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .popus-close { float: right; margin-right: 6px; cursor: pointer; } .popus-close:before { content: '\e600'; } textarea { resize: none; } #machinelist { height: 490px; width: 100%; } .dulpicatetd { font-weight: 700; width: 190px; text-align: right; padding-right: 20px; } </style> <link href="<%=GetFileUrlWithVersion("../css/panel.css")%>" rel="stylesheet" /> <link href="<%=GetFileUrlWithVersion("../Security/css/controls.css")%>" rel="stylesheet" /> <link href="<%=GetFileUrlWithVersion("../css/jquery.datetimepicker.css")%>" rel="stylesheet" /> <link href="<%=GetFileUrlWithVersion("../css/tabcontrol.css")%>" rel="stylesheet" /> <script type="text/javascript" src="<%=GetFileUrlWithVersion("../js/vue.min.js")%>"></script> <script>Vue.config.productionTip = false; Vue.config.silent = true;</script> <script type="text/javascript" src="<%=GetFileUrlWithVersion("../js/components/datagrid.js")%>"></script> <script src="<%=GetFileUrlWithVersion("../Maintenance/js/inputdatactr.js")%>" type="text/javascript"></script> <script src="<%=GetFileUrlWithVersion("../js/jquery.datetimepicker.full.js")%>"></script> <script src="<%=GetFileUrlWithVersion("../js/editableselect.js")%>" type="text/javascript"></script> <script src="<%=GetFileUrlWithVersion("../js/controls.js")%>" type="text/javascript"></script> <script src="<%=GetFileUrlWithVersion("../fic/js/utility.js")%>" type="text/javascript"></script> <script src="<%=GetFileUrlWithVersion("../js/gridlayout.js")%>" type="text/javascript"></script> <script src="<%=GetFileUrlWithVersion("js/mergeasset.js")%>"></script> <script type="text/javascript"> var IsDealer = <%=IsDealer ?"true":"false"%>; var IsAdmin =<%=IsAdmin ?"true":"false"%>; var IsSupperAdmin =<%=IsSupperAdmin ?"true":"false"%>; var CheckRight =<%=CheckRight ?"true":"false"%>; var IsReadOnly = <%=IsReadOnly ?"true":"false"%>; var gridLayoutID = "ManageAssets"; var machineID; var indexInEdit = -1; function devicerequest(method, param, callback, error) { _network.request("MachineDeviceManagement/ManageMachines.aspx", -1, method, param, callback, error || function (e) { showmaskbg(false, true); showAlert(GetTextByKey('P_MA_PAGEERROR', 'An unknown error occurred. Please refresh page.'), GetTextByKey('P_MA_QUERY', 'Query')); }); } function worequest(method, param, callback, error) { _network.request("Maintenance/AddWorkOrder.aspx", -1, method, param, callback, error || function (e) { console.log(e); showmaskbg(false, true); showAlert(GetTextByKey('P_WO_PAGEERROR', 'An unknown error occurred. Please refresh page.'), GetTextByKey('P_WO_QUERY', 'Query')); }); } function assetrequest(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_MA_PAGEERROR', 'An unknown error occurred. Please refresh page.'), GetTextByKey('P_MA_QUERY', 'Query')); }); } function CloseDialog(type) { $('#dialog_machine1').hideDialog(); if (type == 1) { OnRefresh(); } else { showmaskbg(false); } } function ShowMachineDialog(type) { showmaskbg(true); $('#dialog_machine1') .attr('act', type) .showDialogRight(); } function closePopupView(type) { $('#dialog_assetview').hideDialog(); showmaskbg(false); } function ShowAssetViewDialog() { showmaskbg(true); $('#dialog_assetview').showDialogRight(); } function OnAdd() { var contractorid = htmlencode($.trim($('#sel_contractor').val())); ShowMachineDialog("add"); execIframeFunc("init", [contractorid], "iframemachine"); } function OnEdit() { indexInEdit = grid_dt.selectedIndex; if (indexInEdit < 0) { showAlert(GetTextByKey("P_MA_XXXXXX", "Please select an asset."), GetTextByKey("P_MA_EDITASSET", "Edit Asset")); return; } var machine = grid_dt.source[indexInEdit].Values; if (!machine) { machineID = undefined; return; } var contractorid = htmlencode($.trim($('#sel_contractor').val())); ShowMachineDialog("edit"); execIframeFunc("init", [contractorid, grid_dt.source, indexInEdit], "iframemachine"); return; } var lastContractorID = "-1"; function OnRefresh() { var contractorid = htmlencode($.trim($('#sel_contractor').val())); if (IsDealer && !contractorid) return; var searchtxt = htmlencode($.trim($('#searchinputtxt').val())); var showHidden = $('#chkShowHidden').prop("checked") ? 1 : 0; var attachment = $('#chkAttachment').prop("checked") ? 1 : 0; showloading(true); assetrequest("GetMachinesByCompany", contractorid + String.fromCharCode(170) + showHidden + String.fromCharCode(170) + searchtxt + String.fromCharCode(170) + attachment, function (data) { if (typeof (data) === "string") { showAlert(data, GetTextByKey("P_MA_ERROR", 'Error')); showloading(false); return; } showMachines(data); showloading(false); }, function (err) { showloading(false); }); } //admin用户 获取所有contractor function getContractors() { devicerequest('GetContractors', '', function (data) { if (typeof (data) === "string") { showAlert(data, GetTextByKey("P_MA_ERROR", 'Error')); return; } if (data && data.length > 0) { var sel_search = $('#sel_contractor').empty(); for (var i = 0; i < data.length; i++) { var kv = data[i]; var op_search = $('<option></option>').val(kv.Key).text(kv.Value); sel_search.append(op_search); } } var contractorid = htmlencode($.trim($('#sel_contractor').val())); if (!contractorid || contractorid == "") $("#btnAdd").hide(); $("#iframemachine").attr("src", "AddMachine.aspx?cid=" + contractorid); OnRefresh(); }); } //普通用户 获取可操作的contractor function GetContractorsByUser() { devicerequest('GetContractorsByUser', '', function (data) { if (typeof (data) === "string") { showAlert(data, GetTextByKey("P_MA_ERROR", 'Error')); return; } if (data && data.length > 0) { var sel_search = $('#sel_contractor').empty(); for (var i = 0; i < data.length; i++) { var kv = data[i]; var op_search = $('<option></option>').val(kv.Key).text(kv.Value); sel_search.append(op_search); } } var contractorid = htmlencode($.trim($('#sel_contractor').val())); if (!contractorid || contractorid == "") $("#btnAdd").hide(); $("#iframemachine").attr("src", "AddMachine.aspx?cid=" + contractorid); OnRefresh(); }); } function UpLoadMachineIcon(type, mid) { var file = $('<input type="file" style="display: none;" accept="image/png,image/jpeg" />') file.change(function () { if (!/image\/\w+/.test(this.files[0].type)) { showAlert(GetTextByKey("P_MA_UPLOADASSETICONTIPS", 'The file type for the asset icon is invalid. The file must be JPG or PNG.'), GetTextByKey("P_MA_SAVEASSET", 'Save Asset')); return; } var iconfile = this.files[0]; if (type == 1) { ChangeMachineIconFile(mid, iconfile, type); } else ChangeMachineIconFile(machineID, iconfile, type); }).click(); } function ChangeMachineIconFile(mid, file, type) { var ContractorID = $('#sel_contractor').val(); var item = { 'Key': ContractorID, 'Value': mid, }; var machine = grid_dt.source[grid_dt.selectedIndex].Values; var formData = new FormData(); formData.append("iconFile", file); formData.append("MethodName", "ChangeMachineIconFile"); formData.append("ClientData", JSON.stringify(item)); $.ajax({ url: 'ManageMachines.aspx', type: 'POST', dataType: 'json', processData: false, contentType: false, data: formData, async: true, success: function (data) { if (data !== 'OK') { showAlert(data, GetTextByKey("P_MA_ICONFILE", 'Icon File')); } else { if (type == 1) { if (file) { machine.MachineIconFileName = file.name; } else { machine.MachineIconFileName = ""; } grid_dt.refresh(); } else { if (file) $('#dialog_iconfilename').val(file.name); else $('#dialog_iconfilename').val(''); } } }, error: function (err) { showAlert(err.statusText, GetTextByKey("P_MA_ICONFILE", 'Icon File')); } }); } function RemoveMachineIcon1(mid) { showConfirm(GetTextByKey("P_MA_DELETETHEICON", 'Do you want to delete this icon?'), GetTextByKey("P_MA_DELETEICON", 'Delete icon'), function () { ChangeMachineIconFile(mid, undefined, 1); }); } function DeleteMachine(mid) { var mids = []; if (!mid) { for (var i = 0; i < grid_dt.source.length; i++) { var machine = grid_dt.source[i].Values; if (machine.Selected && machine.ShareStatus !== 2) mids.push(machine.ID); } } else mids.push(mid); if (mids.length <= 0) { showAlert(GetTextByKey("P_MA_XXXXXX", "Please select an asset."), GetTextByKey("P_MA_XXXXXX", "Delete Asset")); return; } showConfirm(GetTextByKey("P_MA_XXXXXX", 'WARNING: This will delete the asset(s). Are you sure you want to proceed?'), GetTextByKey("P_MA_XXXXX", 'Delete Asset'), function (e) { doDeleteMachine(mids); }); } function doDeleteMachine(mids) { var contractorid = $.trim($('#sel_contractor').val()); if (IsDealer && !contractorid) return; showmaskbg(true); assetrequest("DeleteAssets", htmlencode(JSON.stringify([contractorid, JSON.stringify(mids), ""])), function (data) { showmaskbg(false); if (data != "") { showAlert(data, GetTextByKey("P_MA_ERROR", 'Error')); } else { //showAlert(GetTextByKey("P_MA_XXXXXX", 'Deleted Successfully.'), GetTextByKey("P_MA_ERROR", 'Error')); OnRefresh(); } }, function (err) { showmaskbg(false); }); } function showMachines(data) { var rows = []; for (var i = 0; i < data.length; i++) { var r = data[i]; for (var j in r) { if (j === "EngineHoursDate") r[j] = { DisplayValue: r["EngineHoursDateStr"], Value: r[j] }; if (j === "OdometerDate") r[j] = { DisplayValue: r["OdometerDateStr"], Value: r[j] }; if (j === "AddedTime") r[j] = { DisplayValue: r["AddedTimeStr"], Value: r[j] }; if (j === "CustomStatus") { var text = ""; if (r["CustomStatus"] == 0) text = GetTextByKey("P_MA_XXXXXX", "In Use"); else if (r["CustomStatus"] == 1) text = GetTextByKey("P_MA_XXXXXX", "Available"); else if (r["CustomStatus"] == 2) text = GetTextByKey("P_MA_XXXXXX", "Standby"); else if (r["CustomStatus"] == 10) text = GetTextByKey("P_MA_XXXXXX", "Down"); r[j] = { DisplayValue: text, Value: r["CustomStatus"] }; } else if (j === "MakeYear") r[j] = r[j] === 0 ? "" : r[j]; else if (j === "EngineHours") r[j] = { DisplayValue: r[j] === 0 ? "" : r[j].toLocaleString(), Value: r[j] }; else if (j === "Odometer") r[j] = { DisplayValue: r[j] === 0 ? "" : (r[j].toLocaleString() + " " + r["OdometerUOM"]), Value: r[j] }; } //r.CanEdit = !IsReadOnly && r.ShareStatus != 2 var fr = { Values: r }; rows.push(fr); } grid_dt.setData(rows); } var grid_dt; function InitGridData() { $('#btnEdit').attr("disabled", "disabled"); grid_dt = new GridView('#machinelist'); grid_dt.lang = { all: GetTextByKey("P_GRID_ALL", "(All)"), ok: GetTextByKey("P_GRID_OK", "OK"), reset: GetTextByKey("P_GRID_RESET", "Reset") }; //grid_dt.lang.all; //grid_dt.lang.ok = "Apply"; //grid_dt.lang.reset; var list_columns = [ { name: 'Selected', caption: "", valueIndex: 'Selected', alwaysshow: true, css: { 'width': 40, 'text-align': 'center' }, type: 3 }, { name: 'VIN', caption: GetTextByKey("P_MA_VINSN", "SN/VIN"), valueIndex: 'VIN', css: { 'width': 180, 'text-align': 'left' } }, { name: 'Name', caption: GetTextByKey("P_MA_ASSETNAME", "Asset Name"), valueIndex: 'Name', css: { 'width': 180, 'text-align': 'left' } }, { name: 'Name2', caption: GetTextByKey("P_MA_ASSETNAME2", "Asset Name(Custom)"), valueIndex: 'Name2', css: { 'width': 180, 'text-align': 'left' } }, { name: 'Make', caption: GetTextByKey("P_MA_MAKE", "Make"), valueIndex: 'MakeName', allowFilter: true, css: { 'width': 120, 'text-align': 'left' } }, { name: 'Model', caption: GetTextByKey("P_MA_MODEL", "Model"), valueIndex: 'ModelName', allowFilter: true, css: { 'width': 120, 'text-align': 'left' } }, { name: 'MachineType', caption: GetTextByKey("P_MA_TYPE", "Asset Type"), valueIndex: 'TypeName', allowFilter: true, css: { 'width': 120, 'text-align': 'left' } }, { name: 'MakeYear', caption: GetTextByKey("P_MA_YEAR", "Year"), valueIndex: 'MakeYear', allowFilter: true, css: { 'width': 80, 'text-align': 'left' } }, { name: 'EngineHours', caption: GetTextByKey("P_MA_ENGINEHOURS", "Engine Hours"), valueIndex: 'EngineHours', css: { 'width': 120, 'text-align': 'left' } }, { name: 'EngineHoursDate', caption: GetTextByKey("P_MA_ENGINEHOURSDATE", "Engine Hours Date"), valueIndex: 'EngineHoursDate', css: { 'width': 150, 'text-align': 'left' } }, { name: 'Odometer', caption: GetTextByKey("P_MA_ODOMETER", "Odometer"), valueIndex: 'Odometer', css: { 'width': 120, 'text-align': 'left' } }, { name: 'OdometerDate', caption: GetTextByKey("P_MA_ODOMETERDATE", "Odometer Date"), valueIndex: 'OdometerDate', css: { 'width': 150, 'text-align': 'left' } }, { name: 'Description', caption: GetTextByKey("P_MA_DESCRIPTION", "Description"), valueIndex: 'Description', css: { 'width': 160, 'text-align': 'left' } }, { name: 'Jobsite', caption: GetTextByKey("P_MA_XXXXXX", "Jobsite"), valueIndex: 'Jobsites', css: { 'width': 160, 'text-align': 'left' } }, { name: 'GpsDeviceSN', caption: GetTextByKey("P_MA_PAIREDDEVICESN", "Paired Device SN"), valueIndex: 'CalampDeviceAirID', css: { 'width': 150, 'text-align': 'left' } }, { name: 'AcquisitionType', caption: GetTextByKey("P_MA_XXXXXX", "AcquisitionType"), valueIndex: 'AcquisitionType', allowFilter: true, css: { 'width': 160, 'text-align': 'left' } }, { name: 'AddedOn', caption: GetTextByKey("P_MA_ADDEDON", "Added On"), valueIndex: 'AddedTime', css: { 'width': 130, 'text-align': 'left' } }, { name: 'CustomStatus', caption: GetTextByKey("P_MA_XXXXXX", "Availability"), valueIndex: 'CustomStatus', css: { 'width': 120, 'text-align': 'left' } }, { name: 'PMPlan', caption: GetTextByKey("P_MA_XXXXXX", "PM Plan"), valueIndex: 'PMPlans', css: { 'width': 160, 'text-align': 'left' } }, { name: 'AssetGroups', caption: GetTextByKey("P_JS_ASSETGROUP", "Asset Group"), valueIndex: 'AssetGroups', css: { 'width': 160, 'text-align': 'left' } }, { name: 'OnRoad', caption: GetTextByKey("P_MA_ONROAD", "On-Road"), valueIndex: 'OnRoad', type: 3, allowFilter: true, css: { 'width': 90, 'text-align': 'center' } }, { name: 'Attachment', caption: GetTextByKey("P_MA_ATTACHMENT", "Attachment"), valueIndex: 'Attachment', type: 3, allowFilter: true, css: { 'width': 96, 'text-align': 'center' } }, { name: 'Hide', caption: GetTextByKey("P_MA_HIDE", "Hide"), valueIndex: 'Hide', type: 3, allowFilter: true, css: { 'width': 70, 'text-align': 'center' } }, { name: 'TelematicsEnabled', caption: GetTextByKey("P_MA_TELEMATICSENABLED", "Telematics Enabled"), valueIndex: 'TelematicsEnabled', allowFilter: true, type: 3, css: { 'width': 140, 'text-align': 'center' } }, { name: 'Preloaded', caption: GetTextByKey("P_MA_PRELOADED", "Preloaded"), valueIndex: 'Preloaded', type: 3, allowFilter: true, css: { 'width': 90, 'text-align': 'center' } }, { name: 'UploadAssetIcon', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } }, { name: 'DeleteAssetIcon', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } }, { name: 'Detail', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } }, { name: 'DeleteAsset', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } } ]; 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; col.alwaysshow = list_columns[hd].alwaysshow; if (list_columns[hd].type) { col.type = list_columns[hd].type; } if (!IsSupperAdmin && (col.name === "DeleteAsset" || col.name === "Selected" || col.name === "Preloaded")) continue; if (col.name === "Selected") { col.allcheck = true; col.sortable = false; col.styleFilter = function (e) { return { display: e.ShareStatus === 2 ? 'none' : '' }; }; col.attrs = { 'title': GetTextByKey("P_MA_XXXXXX", 'Select for deleteing asset') }; } if (IsReadOnly && (col.name === "UploadAssetIcon" || col.name === "DeleteAssetIcon")) continue; if (col.name === "Hide" || col.name === "OnRoad" || col.name === "TelematicsEnabled" || col.name === "Attachment" || col.name === "Preloaded") { col.onchanged = function (e) { e.ValueChanged = true; } col.filterSource = [{ Value: true, DisplayValue: 'Yes' }, { Value: false, DisplayValue: 'No' }]; col.events = { onchange: function () { if (grid_dt.selectedColumnIndex >= 0) { var name = grid_dt.columns[grid_dt.selectedColumnIndex].name; ChangeAssetProperty(this, name); } } }; //col.enabled = "CanEdit"; if (IsReadOnly) { col.enabled = false; } } else if (col.name === "UploadAssetIcon") { col.sortable = false; col.isurl = true; col.text = "\uf093"; col.events = { onclick: function () { UpLoadMachineIcon(1, this.ID); } }; col.classFilter = function () { return 'icon-col'; } col.attrs = { 'title': GetTextByKey("P_MA_UPLOADASSETICON", 'Upload Asset Icon') }; } else if (col.name === "DeleteAssetIcon") { col.sortable = false; col.isurl = true; col.text = "\uf317"; //col.filter = function (e) { // return e.MachineIconFileName === "" ? "" : "\uf00d"; //} col.events = { onclick: function () { if (this.MachineIconFileName !== "") RemoveMachineIcon1(this.ID); } }; col.classFilter = function (e) { return "icon-col"; }; col.styleFilter = function (e) { return { display: e.MachineIconFileName === "" ? 'none' : '' }; }; col.attrs = { 'title': GetTextByKey("P_MA_DELETEASSETICON", 'Delete Asset Icon') }; } else if (col.name === "DeleteAsset") { col.sortable = false; col.isurl = true; col.text = "\uf00d"; col.events = { onclick: function () { DeleteMachine(this.ID); } }; col.classFilter = function (e) { return "icon-col"; }; col.styleFilter = function (e) { return { display: e.ShareStatus === 2 ? 'none' : '' }; }; col.attrs = { 'title': GetTextByKey("P_MA_XXXXXX", 'Delete Asset') }; } else if (col.name === "Detail") { col.sortable = false; col.isurl = true; col.text = "\uf05a"; col.events = { onclick: function () { showMachineDetail(this.ID, this.VIN); } }; col.classFilter = function (e) { return "icon-col"; }; col.attrs = { 'title': GetTextByKey("P_MA_SHOWASSETDETAIL", 'Show Asset Detail') }; } columns.push(col); } grid_dt.canMultiSelect = false; //grid_dt.columns = columns; //grid_dt.init(); grid_dt.rowdblclick = OnEdit; grid_dt.selectedrowchanged = function (rowindex) { var rowdata = grid_dt.source[rowindex]; if (rowdata) { machineID = rowdata.Values.ID; $('#btnDelete').removeAttr("disabled"); $('#btnEdit').removeAttr("disabled"); } } grid_dt.allcolumns = columns; getGridLayout(gridLayoutID, grid_dt, OnRefresh); } function changeGridSelectIndex(index) { grid_dt.selectedIndexes = [index]; grid_dt.scrollToIndex(index); } function showMachineDetail(mid, vin) { ShowAssetViewDialog(); var ctr = $("#sel_contractor").val(); if (!ctr) ctr = ""; execIframeFunc("loadAsset", [ctr, mid, vin, 1], "iframeassetview"); } function setReadOnly() { $('#btnAdd').hide(); } var editableSelectFromAsset; var editableSelectToAsset; $(function () { setPageTitle(GetTextByKey("P_MANAGEASSETS", "Manage Assets"), true); $('.iconlayout').on('click', function (ev) { CreateLayoutMenus(ev.target, gridLayoutID, grid_dt); return false; }); editableSelectFromAsset = new $editableselect($("#dialog_fromasset")); editableSelectFromAsset.tabIndex(1); editableSelectFromAsset.setEnable(false); editableSelectFromAsset.change(function () { var asset = editableSelectFromAsset.selecteditem(); if (!asset) return; showAssetDetail(asset.Id, 1); }); editableSelectToAsset = new $editableselect($("#dialog_toasset")); editableSelectToAsset.tabIndex(1); editableSelectToAsset.setEnable(false); editableSelectToAsset.change(function () { var asset = editableSelectToAsset.selecteditem(); if (!asset) return; showAssetDetail(asset.Id, 2); }); if (!CheckRight) { $('#btnAdd').hide(); } InitGridData(); if (IsReadOnly) setReadOnly(); if (IsDealer == true) { $('#span_contractor').css('display', ''); if (IsAdmin) getContractors(); else { GetContractorsByUser(); } } else { $("#iframemachine").attr("src", "AddMachine.aspx"); //OnRefresh(); } $("#sel_contractor").change(function () { var contractorid = htmlencode($.trim($('#sel_contractor').val())); $("#iframemachine").attr("src", "AddMachine.aspx?cid=" + contractorid); OnRefresh(); }); $('#searchinputtxt').keydown(searchEnter); $('#dialog_mergeassets').dialog(function () { showmaskbg(false); }) $('#dialog_import').dialog(function () { showmaskbg(false); }); $('#dialog_import_result').dialog(function () { showmaskbg(false); }); $(window).resize(function () { $("#machinelist").css("height", $(window).height() - $("#machinelist").offset().top - 4); grid_dt && grid_dt.resize(); }).resize(); if (!canExport) { $('#spExport').hide(); } }); function searchEnter(e) { if (e.keyCode == 13 || e.keyCode == 9) { OnRefresh(); } } function ChangeAssetProperty(asset, name, value) { var contractorid = ""; if (IsDealer) contractorid = htmlencode($.trim($('#sel_contractor').val())); var ps = []; ps.push(contractorid); ps.push(asset.ID); ps.push(name); var value = asset.Hide; if (name === "OnRoad") value = asset.OnRoad; else if (name === "TelematicsEnabled") value = asset.TelematicsEnabled; else if (name === "Attachment") value = asset.Attachment; else if (name === "Preloaded") value = asset.Preloaded; ps.push(value); assetrequest('ChangeAssetProperty', JSON.stringify(ps), function (data) { if (data) { //showAlert('Saved successfully.', 'Save'); if ((name == "Hide" && value && !$('#chkShowHidden').prop("checked")) || (name == "Attachment" && value && !$('#chkAttachment').prop("checked"))) OnRefresh(); } else { showAlert(data, GetTextByKey("P_MA_ERROR", 'Error')); } }); } function OnExport() { var contractorid = htmlencode($.trim($('#sel_contractor').val())); var searchtxt = htmlencode($.trim($('#searchinputtxt').val())); var showHidden = $('#chkShowHidden').prop("checked") ? 1 : 0; var attachment = $('#chkAttachment').prop("checked") ? 1 : 0; var p = [contractorid, showHidden, searchtxt, attachment]; var layout = getLayoutOnGrid(grid_dt); var ps = ["manageassets", JSON.stringify(p), JSON.stringify(layout)]; var data = new FormData(); data.append('type', 'set'); data.append('ClientData', JSON.stringify(ps)); $.ajax({ url: "../ExportToFile.aspx", type: 'POST', dataType: 'json', processData: false, contentType: false, data: data, success: function (data) { if (data && data != "") window.open("../ExportToFile.aspx?type=exp&key=" + data); }, error: function (err) { } }); } function CreateImportColumns(excelcolumns) { var tb = $('#tb_import'); tb.empty(); var columnsdata = getcolumnsdata(); for (var i = 0; i < columnsdata.length; i++) { var col = columnsdata[i]; var tr = $('<tr></tr>'); tb.append(tr); var td = $('<td class="label" style="width:150px;">' + col.Name + '</td>'); if (i < 1) { var sp = $('<span style="color:red;">*</span>'); td.append(sp); } tr.append(td); td = $('<td></td>'); tr.append(td); var sel = CreateSelect(excelcolumns, col.Id); td.append(sel); } } function CreateSelect(excelcolumns, colid) { var sel = $('<select style="width:180px;" name="sel_import"></select>').data('id', colid); sel.append('<option></option>'); if (excelcolumns && excelcolumns.length > 0) { for (var i = 0; i < excelcolumns.length; i++) { var op = $('<option></option>').text(excelcolumns[i]).val(excelcolumns[i]); sel.append(op); } sel.val(colid); } return sel; } function getcolumnsdata() { var columnsdata = [ { Id: "VIN/SN", Name: GetTextByKey("P_MA_VINSN", "VIN/SN"), Width: 120, Key: 'VIN' }, { Id: "Asset Name", Name: GetTextByKey("P_MA_ASSETNAME", "Asset Name"), Width: 120, Key: 'Name' }, { Id: "Asset Name(Custom)", Name: GetTextByKey("P_MA_ASSETNAME2", "Asset Name(Custom)"), Width: 120, Key: 'Name2' }, { Id: "Year", Name: GetTextByKey("P_MA_YEAR", "Year"), Width: 120, Key: 'MakeYear' }, { Id: "Asset Type", Name: GetTextByKey("P_MA_TYPE", "Asset Type"), Width: 120, Key: 'TypeName' }, { Id: "Make", Name: GetTextByKey("P_MA_MAKE", "Make"), Width: 120, Key: 'MakeName' }, { Id: "Model", Name: GetTextByKey("P_MA_MODEL", "Model"), Width: 120, Key: 'ModelName' }, { Id: "Eq.Class", Name: GetTextByKey("P_MA_EQCLASS", "Eq.Class"), Width: 120, Key: 'EQClass' }, { Id: "Description", Name: GetTextByKey("P_MA_DESCRIPTION", "Description"), Width: 120, Key: 'Description' }, { Id: "Undercarriage Replacement Interval(Hours)", Name: GetTextByKey("P_MA_URINTERVAL", "Undercarriage Replacement Interval(Hours)"), Width: 120, Key: 'UnderCarriageHours' }, { Id: "Acquisition Type", Name: GetTextByKey("P_MA_ACQUISITIONTYPE", "Acquisition Type"), Width: 120, Key: 'AquisitionType' }, { Id: "Cost Center", Name: GetTextByKey("P_MA_COSTCENTER", "Cost Center"), Width: 120, Key: 'CostCenter' }, { Id: "Hide/Hidden", Name: GetTextByKey("P_MA_HIDEHIDDEN", "Hide/Hidden"), Width: 120, Key: 'Hidden' }, { Id: "On-Road", Name: GetTextByKey("P_MA_ONROAD", "On-Road"), Width: 120, Key: 'OnRoad' }, { Id: "Telematics Enabled", Name: GetTextByKey("P_MA_TELEMATICSENABLED", "Telematics Enabled"), Width: 120, Key: 'TelematicsEnabled' }, { Id: "Attachment", Name: GetTextByKey("P_MA_ATTACHMENT", "Attachment"), Width: 120, Key: 'Attachment' }, ]; if (IsSupperAdmin) { columnsdata.push({ Id: "Preloaded", Name: GetTextByKey("P_MA_PRELOADED", "Preloaded"), Width: 120, Key: 'Preloaded' }); } return columnsdata; } var grid_import_result = null; function CreateImportResultGrid(data, t) { if (grid_import_result == null) { grid_import_result = new GridView('#div_import_grid'); } if (t == 0 && data.length == 0) { $('#btnOk').hide(); } var columnsdata = getcolumnsdata(); var columns = []; if (t == 0) { columns.push({ type: 3, key: 'checked', allcheck: true, width: 30, align: 'center' }); } var styleFilter = function (item) { if ($.nullOrEmpty(item.VIN)) { return { 'color': 'red' }; } }; for (var i = 0; i < columnsdata.length; i++) { var col = {}; col.name = columnsdata[i].Id; col.caption = columnsdata[i].Name; col.visible = true; col.sortable = false; col.width = columnsdata[i].Width; col.key = columnsdata[i].Key; col.allowFilter = false; if (t == 0) { col.styleFilter = styleFilter; } columns.push(col); } grid_import_result.canMultiSelect = false; grid_import_result.columns = columns; grid_import_result.init(); var rows = []; for (var i = 0; i < data.length; i++) { var r = data[i]; r.checked = true; for (var j in r) { if (j === "MakeYear") r[j] = { DisplayValue: r["MakeYear"] === -1 ? "" : r["MakeYear"], Value: r[j] }; else if (j === "UnderCarriageHours") r[j] = { DisplayValue: r["UnderCarriageHours"] >= 0 ? r["UnderCarriageHours"] : "", Value: r[j] }; else if (j == "Hidden") { r[j] = { DisplayValue: r[j] == 1 ? "Yes" : "No", Value: r[j] }; } else if (j == "OnRoad") { r[j] = { DisplayValue: r[j] == 1 ? "Yes" : "No", Value: r[j] }; } else if (j == "TelematicsEnabled") { r[j] = { DisplayValue: r[j] == 1 ? "Yes" : "No", Value: r[j] }; } else if (j == "Attachment") { r[j] = { DisplayValue: r[j] == 1 ? "Yes" : "No", Value: r[j] }; } else if (j == "Preloaded") { r[j] = { DisplayValue: r[j] == 1 ? "Yes" : "No", Value: r[j] }; } } var fr = { Values: r }; rows.push(fr); } grid_import_result.setData(rows); grid_import_result.resize(); } var errordata; function OnExportInImport() { var d = JSON.stringify(errordata); var data = new FormData(); data.append('type', 'set'); data.append('ClientData', d); $.ajax({ url: "../ExportToFile.aspx", type: 'POST', dataType: 'json', processData: false, contentType: false, data: data, success: function (data) { if (data && data != "") window.open("../ExportToFile.aspx?type=assetsexcel&key=" + data); }, error: function (err) { } }); } var importing = false; var importCount = 0; function OnImportMachines(t) { if (!fildata) return; if (importing) return; importing = true; var item = []; var sels = $("select[name='sel_import']"); var tmp = ''; for (var i = 0; i < sels.length; i++) { var sel = sels[i]; var id = $(sel).data('id'); var value = $(sel).val(); switch (id) { case "VIN/SN": if ($.nullOrEmpty(value)) { tmp += GetTextByKey("P_MA_VINSN", "VIN/SN"); } break; } var kv = { Key: id, Value: value }; item.push(kv); } if (tmp.length > 0) { var s = GetTextByKey("P_MA_NOTBEEMPTY", "{0} cannot be empty.").replace('{0}', tmp); showAlert(s, GetTextByKey("P_JS_IMPORT", 'Import')); importing = false; return; } var selected = []; if (t == 1) { for (var i in grid_import_result.source) { selected.push(grid_import_result.source[i].Values.checked); } grid_import_result.setData([]); } $('#dialog_import_result').hideDialog(); var param = JSON.stringify(item); param = htmlencode(param); var contractorid = htmlencode($.trim($('#sel_contractor').val())); var formData = new FormData(); formData.append("iconFile", fildata); formData.append("MethodName", "ImportMachines"); formData.append("ClientData", param); formData.append("ContractorID", contractorid); formData.append("Get", t == 1 ? false : true); if (t == 1) { formData.append("SelectedData", selected.join(',')); } showloading(true); $.ajax({ url: 'ManageMachines.aspx', type: 'POST', dataType: 'json', processData: false, contentType: false, data: formData, async: true, success: function (data) { importing = false; try { var d = JSON.parse(data); $('#dialog_import').hideDialog(); if (d.Count != -1) { grid_import_result.setData([]); $('#sp_import_result').show(); $('#sp_import_f').show(); $('#btnClose').show(); $('#btnOk').hide(); $('#btnCancel').hide(); var str = d.Count + GetTextByKey("P_MA_MACHINESIMPORTEDSUCCESSFULLY", ' Asset(s) imported successfully.'); if (d.Datas.length > 0 || (d.Count == 0 && d.Datas.length == 0)) { importCount = d.Count; if (d.Datas.length > 0) { errordata = $.cloneObject(d.Datas); $('#div_import_export').show(); } else { $('#div_import_export').hide(); } $('#sp_import_result').text(str); $('#sp_import_f').text(d.Datas.length + " Failed."); $('#dialog_import_result') .css({ 'top': (document.documentElement.clientHeight - $('#dialog_import_result').height()) / 3, 'left': (document.documentElement.clientWidth - $('#dialog_import_result').width()) / 2 }) .showDialogfixed(); CreateImportResultGrid(d.Datas, t); } else { showAlert(str, GetTextByKey("P_JS_IMPORT", 'Import'), null, function () { if (d.Count > 0) { window.location.reload(); } }); showloading(false); } } else { $('#dialog_import_result') .css({ 'top': (document.documentElement.clientHeight - $('#dialog_import_result').height()) / 3, 'left': (document.documentElement.clientWidth - $('#dialog_import_result').width()) / 2 }) .showDialogfixed(); $('#sp_import_result').hide(); $('#div_import_export').hide(); $('#sp_import_f').show(); $('#btnClose').hide(); $('#btnOk').show(); $('#btnCancel').show(); CreateImportResultGrid(d.Datas, t); $('#sp_import_f').text(GetTextByKey("P_WO_COUNT", 'Count') + ": " + d.Datas.length); } } catch (e) { showAlert(data, GetTextByKey("P_JS_IMPORT", 'Import')); showloading(false); } }, error: function (err) { importing = false; showloading(false); showAlert(err.statusText, GetTextByKey("P_JS_IMPORT", 'Import')); } }); } var fildata; function OnImport() { var file = $('<input type="file" style="display: none;" accept=".xlsx" />'); file.change(function () { fildata = this.files[0]; var formData = new FormData(); formData.append("iconFile", fildata); formData.append("MethodName", "GetImportMachineColumns"); formData.append("ClientData", ''); showloading(true); $.ajax({ url: 'ManageMachines.aspx', type: 'POST', dataType: 'json', processData: false, contentType: false, data: formData, async: true, success: function (data) { if (typeof (data) === "string") { showAlert(data, GetTextByKey("P_JS_IMPORT", 'Import')); showloading(false); } else { CreateImportColumns(data); $('#dialog_import') .attr('act', 'add') .css({ 'top': (document.documentElement.clientHeight - $('#dialog_import').height()) / 3, 'left': (document.documentElement.clientWidth - $('#dialog_import').width()) / 2 }) .showDialogfixed(); } }, error: function (err) { showloading(false); showAlert(err.statusText, GetTextByKey("P_JS_IMPORT", 'Import')); } }); }).click(); } function EndImportMachines() { $('#dialog_import_result').hideDialog(); if (importCount > 0) { window.location.reload(); } showloading(false); } </script> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <div id="recordcontent" style="padding: 0px; margin: 0px;"> <div class="page_title" data-lgid="P_MANAGEASSETS"></div> <div class="search_bar"> <input type="password" autocomplete="new-password" style="display: none" /> <span id="span_contractor" style="display: none;"> <span data-lgid="P_MA_CONTRACTOR_COLON">Contractor:</span> <select id="sel_contractor"></select></span> <input id="searchinputtxt" type="text" autocomplete="off" /> <input class="search" type="button" onclick="OnRefresh();" value="Search" style="margin-left:5px;" data-lgid="P_MA_SEARCH" /> <input id="chkShowHidden" type="checkbox" onclick="OnRefresh();" style="margin-left: 20px;" /><label for="chkShowHidden" data-lgid="P_MA_SHOWHIDDEN">Show Hidden</label> <input id="chkAttachment" type="checkbox" onclick="OnRefresh();" checked="checked" style="margin-left: 20px;" /><label for="chkAttachment" data-lgid="P_MA_SHOWATTACHMENTS">Show Attachments</label> </div> <div class="function_title"> <span class="sbutton iconadd" id="btnAdd" onclick="OnAdd();" data-lgid="P_MA_ADD">Add</span> <span class="sbutton iconedit" id="btnEdit" onclick="OnEdit();" data-lgid="P_MA_EDIT">Edit</span> <span class="sbutton iconrefresh" onclick="OnRefresh();" data-lgid="P_MA_REFRESH">Refresh</span> <%if (IsSupperAdmin && !IsDealer) { %> <span class="sbutton icondelete" onclick="DeleteMachine();" data-lgid="P_MA_XXXXX">Delete Asset(s)</span> <%} %> <span id="spExport" class="sbutton iconexport" onclick="OnExport();" data-lgid="P_UTILITY_EXPORTTOEXCEL">Export to Excel</span> <span class="sbutton iconimport" onclick="OnImport();" data-lgid="P_JS_IMPORT">Import</span> <span class="sbutton iconlayout iconmenu" data-lgid="P_MR_LAYOUT">Layout</span> </div> <div class="clear"></div> <div id="machinelist"> </div> </div> <div id="mask_bg" style="display: none;"><div class="loading c-spin"></div></div> <div class="dialog" id="dialog_machine1" style="display: none; height: 100%; border-bottom: 0; border-top: 0; z-index: 2;"> <%--<div class="dialog-title"><span class="title">Add Work Order</span></div>--%> <iframe id="iframemachine" style="width: 100%; height: 100%; display: block; border: none;"></iframe> <div class="maskbg" style="display: none;"></div> </div> <div class="dialog" id="dialog_assetview" style="display: none; height: 100%; border-bottom: 0; border-top: 0; z-index: 2;"> <%--<div class="dialog-title"><span class="title">Add Work Order</span></div>--%> <iframe id="iframeassetview" src="../AssetView/SingleAssetView.aspx" style="width: 100%; height: 100%; display: block; border: none;"></iframe> <div class="maskbg" style="display: none;"></div> </div> <div class="dialog" id="dialog_mergeassets" style="display: none; min-width: 620px; max-width: 900px;"> <div class="dialog-title"><span class="title" data-lgid="P_MA_MERGEASSET">Merge Assets</span><em class="dialog-close"></em></div> <div class="clear"></div> <div class="dialog-content" style="padding-left: 20px; padding-right: 20px; width: 800px; height: 520px;"> <table id="tab_assetinfo"> <tr> <td> <div style="float: left; position: relative;"> <table> <tr> <td colspan="2"><span style="font-weight: 700; font-size: 14px;" data-lgid="P_MA_ASSETFROM_COLON">Asset from:</span></td> </tr> <tr> <td colspan="2"> <div id="dialog_fromasset" style="width: 290px; height: 22px;"></div> </td> </tr> <tr> <td colspan="2"> <div style="padding-top: 5px; padding-bottom: 5px;"> <input type="checkbox" id="dialog_newhide" disabled="disabled" class="chk" /><span data-lgid="P_MA_HIDEHIDDEN">Hide/Hidden</span> <input type="checkbox" id="dialog_newonroad" disabled="disabled" class="chk" /><span data-lgid="P_MA_ONROAD">On-Road</span> <input type="checkbox" id="dialog_newtelematics" disabled="disabled" class="chk" /><span data-lgid="P_MA_TELEMATICSENABLED">Telematics Enabled</span> <input type="checkbox" id="dialog_newattachment" disabled="disabled" class="chk" /><span data-lgid="P_MA_ATTACHMENT">Attachment</span> <input type="checkbox" id="dialog_newpreloaded" disabled="disabled" class="chk" /><span data-lgid="P_MA_PRELOADED">Preloaded</span> </div> </td> </tr> <tr> <td class="label label1" data-lgid="P_MA_VINSN_COLON">VIN/SN:</td> <td style="width: 200px;"><span id="dialog_newsn"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ASSETNAME_COLON">Asset Name:</td> <td><span id="dialog_newname"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ASSETNAME2_COLON">Asset Name(Custom):</td> <td><span id="dialog_newname2"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_DEVICESN_COLON">Paired Device SN:</td> <td><span id="dialog_newdevicesn"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_YEAR_COLON">Year:</td> <td><span id="dialog_newyear"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_MAKE_COLON">Make:</td> <td><span id="dialog_newmake"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_MODEL_COLON">Model:</td> <td><span id="dialog_newmodel"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_EQCLASS_COLON">Eq.Class:</td> <td><span id="dialog_neweqclass"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_TYPE_COLON">Asset Type:</td> <td><span id="dialog_newtype"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_DESCRIPTION_COLON">Description:</td> <td> <textarea id="dialog_newdescription" disabled="disabled" style="height: 60px; width: 200px;"></textarea> </td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ENGINEHOURS_COLON">Engine Hours:</td> <td><span id="dialog_newenginehours"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ODOMETER_COLON">Odometer:</td> <td><span id="dialog_newodometer"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ADDEDON_COLON">Added On:</td> <td><span id="dialog_newaddedon"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ADDEDBY_COLON">Added By:</td> <td><span id="dialog_newaddedby"></span></td> </tr> </table> </div> </td> <td style="padding-left: 10px; padding-right: 10px;"> <div style="height: 500px; width: 1px; border-left: solid 1px #9A9A9A;"></div> </td> <td> <div style="float: left; position: relative;"> <table> <tr> <td colspan="2"><span style="font-weight: 700; font-size: 14px;" data-lgid="P_MA_ASSETTO_COLON">Asset to:</span></td> </tr> <tr> <td colspan="2"> <div id="dialog_toasset" style="width: 290px; height: 22px;"></div> </td> </tr> <tr> <td colspan="2"> <div style="padding-top: 5px; padding-bottom: 5px;"> <input type="checkbox" id="dialog_oldhide" disabled="disabled" class="chk" /><span data-lgid="P_MA_HIDEHIDDEN">Hide/Hidden</span> <input type="checkbox" id="dialog_oldonroad" disabled="disabled" class="chk" /><span data-lgid="P_MA_ONROAD">On-Road</span> <input type="checkbox" id="dialog_oldtelematics" disabled="disabled" class="chk" /><span data-lgid="P_MA_TELEMATICSENABLED">Telematics Enabled</span> <input type="checkbox" id="dialog_oldattachment" disabled="disabled" class="chk" /><span data-lgid="P_MA_ATTACHMENT">Attachment</span> <input type="checkbox" id="dialog_oldpreloaded" disabled="disabled" class="chk" /><span data-lgid="P_MA_PRELOADED">Preloaded</span> </div> </td> </tr> <tr> <td class="label label1" data-lgid="P_MA_VINSN_COLON">VIN/SN:</td> <td style="width: 200px;"><span id="dialog_oldsn"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ASSETNAME_COLON">Asset Name:</td> <td><span id="dialog_oldname"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ASSETNAME2_COLON">Asset Name(Custom):</td> <td><span id="dialog_oldname2"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_DEVICESN_COLON">Paired Device SN:</td> <td><span id="dialog_olddevicesn"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_YEAR_COLON">Year:</td> <td><span id="dialog_oldyear"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_MAKE_COLON">Make:</td> <td><span id="dialog_oldmake"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_MODEL_COLON">Model:</td> <td><span id="dialog_oldmodel"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_EQCLASS_COLON">Eq.Class:</td> <td><span id="dialog_oldeqclass"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_TYPE_COLON">Asset Type:</td> <td><span id="dialog_oldtype"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_DESCRIPTION_COLON">Description:</td> <td> <textarea id="dialog_olddescription" disabled="disabled" style="height: 60px; width: 200px;"></textarea> </td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ENGINEHOURS_COLON">Engine Hours:</td> <td><span id="dialog_oldenginehours"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ODOMETER_COLON">Odometer:</td> <td><span id="dialog_oldodometer"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ADDEDON_COLON">Added On:</td> <td><span id="dialog_oldaddedon"></span></td> </tr> <tr> <td class="label label1" data-lgid="P_MA_ADDEDBY_COLON">Added By:</td> <td><span id="dialog_oldaddedby"></span></td> </tr> </table> </div> </td> </tr> </table> <table id="tab_mergeassets" style="display: none; line-height: 35px;"> <tr> <td colspan="4"><span id="span_mergetips" style="font-size: 16px; font-weight: 600;">Please select the data to be merged from machine a to machine B</span></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_ODOMETERDATA">Odometer Data</td> <td style="width: 100px;"> <input type="radio" id="radio_odometer0" name="radio_odometer" class="radio_both" value="0" checked="checked" /><label for="radio_odometer0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_odometer1" name="radio_odometer" value="1" /><label for="radio_odometer1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_odometer2" name="radio_odometer" value="2" /><label for="radio_odometer2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_ENGINEHOURSDATA">Engine Hours Data</td> <td> <input type="radio" id="radio_enginehours0" name="radio_enginehours" class="radio_both" value="0" checked="checked" /><label for="radio_enginehours0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_enginehours1" name="radio_enginehours" value="1" /><label for="radio_enginehours1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_enginehours2" name="radio_enginehours" value="2" /><label for="radio_enginehours2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_LOCATIONDATA">Location Data</td> <td> <input type="radio" id="radio_location0" name="radio_location" class="radio_both" value="0" checked="checked" /><label for="radio_location0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_location1" name="radio_location" value="1" /><label for="radio_location1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_location2" name="radio_location" value="2" /><label for="radio_location2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_IDLEHOURSDATA">Idle Hours Data</td> <td> <input type="radio" id="radio_idlehours0" name="radio_idlehours" class="radio_both" value="0" checked="checked" /><label for="radio_idlehours0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_idlehours1" name="radio_idlehours" value="1" /><label for="radio_idlehours1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_idlehours2" name="radio_idlehours" value="2" /><label for="radio_idlehours2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_FUELUSEDDATA">Fuel Used Data</td> <td> <input type="radio" id="radio_fuelused0" name="radio_fuelused" class="radio_both" value="0" checked="checked" /><label for="radio_fuelused0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_fuelused1" name="radio_fuelused" value="1" /><label for="radio_fuelused1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_fuelused2" name="radio_fuelused" value="2" /><label for="radio_fuelused2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_FUELREMAINING">Fuel Remaining</td> <td> <input type="radio" id="radio_fuelremaining0" name="radio_fuelremaining" class="radio_both" value="0" checked="checked" /><label for="radio_fuelremaining0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_fuelremaining1" name="radio_fuelremaining" value="1" /><label for="radio_fuelremaining1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_fuelremaining2" name="radio_fuelremaining" value="2" /><label for="radio_fuelremaining2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_ATTRIBUTEDATA">Attribute Data</td> <td> <input type="radio" id="radio_attribute0" name="radio_attribute" class="radio_both" value="0" checked="checked" /><label for="radio_attribute0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_attribute1" name="radio_attribute" value="1" /><label for="radio_attribute1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_attribute2" name="radio_attribute" value="2" /><label for="radio_attribute2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_BATTERYDATA">Battery Data</td> <td> <input type="radio" id="radio_battery0" name="radio_battery" class="radio_both" value="0" checked="checked" /><label for="radio_battery0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_battery1" name="radio_battery" value="1" /><label for="radio_battery1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_battery2" name="radio_battery" value="2" /><label for="radio_battery2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_FPREVENTATIVEMAINTENANCEPLANS">Preventative Maintenance Plans</td> <td> <input type="radio" id="radio_pmplans0" name="radio_pmplans" class="radio_both" value="0" checked="checked" /><label for="radio_pmplans0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_pmplans1" name="radio_pmplans" value="1" /><label for="radio_pmplans1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_pmplans2" name="radio_pmplans" value="2" /><label for="radio_pmplans2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" data-lgid="P_MA_JOBSITEATA">Jobsite Data</td> <td> <input type="radio" id="radio_jobsite0" name="radio_jobsite" class="radio_both" value="0" checked="checked" /><label for="radio_jobsite0" data-lgid="P_MA_BOTH">Both</label></td> <td> <input type="radio" id="radio_jobsite1" name="radio_jobsite" value="1" /><label for="radio_jobsite1" class="span_asseta"></label></td> <td> <input type="radio" id="radio_jobsite2" name="radio_jobsite" value="2" /><label for="radio_jobsite2" class="span_assetb"></label></td> </tr> <tr> <td class="dulpicatetd" style="vertical-align: top;" data-lgid="P_MA_NOTES">Notes</td> <td colspan="3"> <textarea id="dialog_mergenotes" maxlength="2000" style="margin-top: 12px; width: 500px; height: 90px;"></textarea></td> </tr> </table> </div> <div class="dialog-func"> <input type="button" value="Cancel" data-lgid="P_MA_CANCEL" class="dialog-close" tabindex="500" /> <input type="button" value="OK" data-lgid="P_MA_OK" onclick="SaveMergeAsset();" tabindex="500" /> <input type="button" value="Next" data-lgid="P_MA_NEXT" id="btn_mergenext" onclick="OnNext();" tabindex="500" /> <input type="button" value="Previous" data-lgid="P_MA_PREVIOUS" id="btn_mergeprevious" style="display: none;" onclick="OnPrevious();" tabindex="500" /> <div class="clear"></div> </div> <div id="dialogmask" class="maskbg" style="display: none;"> <div class="loading_icon icon c-spin"></div> </div> </div> <div class="dialog" id="dialog_import" style="display: none;"> <div class="dialog-title"><span class="title" data-lgid="P_MA_IMPORTMACHINESFIELDMAPPING"></span><em class="dialog-close"></em></div> <div class="machine_filter" style="margin: 9px 6px 7px; display: none;"> <span class="sbutton iconimport" onclick="OnImport()" data-lgid="P_JS_IMPORT">Add</span> </div> <div class="dialog-content adjust-content" style="height: 450px; overflow: auto;"> <table id="tb_import" class="table_holder"> </table> </div> <div class="dialog-func"> <input type="button" value="Close" data-lgid="P_JS_CANCEL" class="dialog-close" tabindex="28" /> <input type="button" onclick="OnImportMachines(0);" value="OK" tabindex="27" /> <div class="clear"></div> </div> </div> <div class="dialog" id="dialog_import_result" style="display: none;"> <div class="dialog-title"><span class="title" data-lgid="P_JS_IMPORT"></span></div> <div id="div_import_export" class="machine_filter" style="margin: 9px 6px 7px; display: none;"> <span class="sbutton iconexport" onclick="OnExportInImport()" data-lgid="P_UTILITY_EXPORTTOEXCEL">Export to Excel</span> </div> <div style="margin: 9px 6px 7px; padding-left: 20px"> <div id="sp_import_result" style="font-weight: bold;"></div> </div> <div id="sp_import_f" style="margin: 9px 6px 7px; padding-left: 20px; font-weight: bold;">Failed</div> <div id="div_import_grid" style="padding-left: 20px; padding-right: 20px; height: 400px; width: 700px"> </div> <div class="dialog-func"> <input id="btnCancel" type="button" value="Close" data-lgid="P_JS_CANCEL" class="dialog-close" tabindex="28" /> <input id="btnOk" type="button" onclick="OnImportMachines(1);" data-lgid="P_JS_IMPORT" tabindex="27" /> <input id="btnClose" type="button" onclick="EndImportMachines();" data-lgid="P_FR_CLOSE" tabindex="27" /> <div class="clear"></div> </div> </div> </asp:Content>