688 lines
30 KiB
Plaintext
688 lines
30 KiB
Plaintext
<%@ Page Title="" Language="C#" MasterPageFile="~/JobSite/JobSiteMasterPage.master" AutoEventWireup="true" CodeFile="JobSiteRequirements.aspx.cs" Inherits="JobSiteRequirements" %>
|
|
|
|
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
|
|
<link href="../css/jquery.datetimepicker.css" rel="stylesheet" />
|
|
<style type="text/css">
|
|
.dialog .dialog-func input {
|
|
width: unset;
|
|
}
|
|
|
|
.subdialog {
|
|
width: -moz-calc(100% - 24px);
|
|
width: -webkit-calc(100% - 24px);
|
|
width: calc(100% - 24px);
|
|
}
|
|
|
|
.requireinfo {
|
|
line-height: 30px;
|
|
margin-left: 10px;
|
|
}
|
|
|
|
.requireinfospan {
|
|
font-weight: 500;
|
|
margin-left: 20px;
|
|
}
|
|
|
|
.quantity {
|
|
padding: 3px 0 3px 10px;
|
|
margin-top: 5px;
|
|
margin-bottom: 5px;
|
|
/*color: gray;*/
|
|
font-weight: 500;
|
|
font-size: 16px;
|
|
/*width: 770px;*/
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
background-color: #f0f0f0;
|
|
}
|
|
|
|
.span-caption {
|
|
position: absolute;
|
|
}
|
|
|
|
.span-bar {
|
|
position: absolute;
|
|
height: 100%;
|
|
margin: 0;
|
|
vertical-align: bottom;
|
|
}
|
|
</style>
|
|
<link href="<%=GetFileUrlWithVersion("../css/spectrum.css")%>" rel="stylesheet" type="text/css" />
|
|
<script src="../js/spectrum.js?v=1" type="text/javascript"></script>
|
|
<script src="../js/jquery.datetimepicker.full.js"></script>
|
|
<script src="<%=GetFileUrlWithVersion("js/jobsiterequirement.js")%>" type="text/javascript"></script>
|
|
<script src="<%=GetFileUrlWithVersion("js/dispatchassign.js")%>" type="text/javascript"></script>
|
|
<script src="<%=GetFileUrlWithVersion("js/email.js")%>" type="text/javascript"></script>
|
|
|
|
<script>
|
|
jobsitequery = function (method, param, callback, error, nolog) {
|
|
_network.request("JobSite/JobSiteRequirements.aspx?tp=ashx", -1, method, param, callback, error, nolog);
|
|
}
|
|
|
|
var addrequirement = false;
|
|
var IsReadOnly = <%=IsReadOnly ?"true":"false"%>;
|
|
var IsRequestOnly = <%=IsRequestOnly ?"true":"false"%>;
|
|
var allroadassets;
|
|
var _sendType = 2;
|
|
var _seltype;//0.print;1.email
|
|
var _selectdispatchids;
|
|
var currentdate = "<%=CurrentDate %>";
|
|
|
|
/***************************Jobsites***************************/
|
|
|
|
_dialog.showRequirementConfirm = function (msg, title, fprint, femail, fsave, fcancel, fclose, iniframe, shownote) {
|
|
if (!fclose)
|
|
fclose = fcancel;
|
|
_dialog.showButtonDialog(msg, title, 'question', fclose, [{
|
|
value: GetTextByKey("P_JS_PRINTDISPATCHINSTRUCTIONS", 'Print Dispatch Instructions'),
|
|
func: fprint
|
|
}, {
|
|
value: GetTextByKey("P_JS_EMAILDISPATCHINSTRUCTIONS", 'Email Dispatch Instructions'),
|
|
func: femail
|
|
}, {
|
|
value: GetTextByKey("P_JS_CONTINUE", 'Continue'),
|
|
func: fsave
|
|
}], iniframe, shownote);
|
|
};
|
|
|
|
function showRequirementConfirm(msg, title, fprint, femai, fsave, fclose) {
|
|
showmaskbg(true);
|
|
_dialog.showRequirementConfirm(msg, title, function (e) {
|
|
showmaskbg(false);
|
|
if (typeof fprint === 'function') {
|
|
fprint(e);
|
|
}
|
|
}, function (e) {
|
|
showmaskbg(false);
|
|
if (typeof femai === 'function') {
|
|
femai(e);
|
|
}
|
|
}, function (e) {
|
|
showmaskbg(false);
|
|
if (typeof fsave === 'function') {
|
|
fsave(e);
|
|
}
|
|
}, function (e) {
|
|
showmaskbg(false);
|
|
if (typeof fclose === 'function') {
|
|
fclose(e);
|
|
}
|
|
});
|
|
}
|
|
|
|
function showConfirmIndialog(msg, title, fok, fcancel, shownote) {
|
|
$("#dialogmask").show();
|
|
_dialog.showConfirm(msg, title, function (e, notes) {
|
|
$("#dialogmask").hide();
|
|
if (typeof fok === 'function') {
|
|
fok(e, notes);
|
|
}
|
|
}, fcancel || function () {
|
|
$("#dialogmask").hide();
|
|
}, null, null, shownote);
|
|
}
|
|
|
|
function OnDelete(req) {
|
|
if (!req) {
|
|
return;
|
|
}
|
|
var text = $('<div style="padding-right:20px;line-height:20px;">' + GetTextByKey("P_JS_DELETETHEREQUIREMENT", "Would you like to delete the requirement?") + '<br/></div');
|
|
text.append($('<span></span>').text(GetTextByKey("P_JS_JOBSITE_COLON", "Jobsite:") + " " + req.JobSiteName));
|
|
text.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_JS_ASSETTYPE_COLON", "Asset Type:") + " " + req.AssetTypeName));
|
|
text.append("<br/>")
|
|
text.append($('<span></span>').text(GetTextByKey("P_JS_BEGINDATE_COLON", "Begin Date:") + " " + req.BeginDateStr));
|
|
text.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_JS_ENDDATE_COLON", "Begin Date:") + " " + req.EndDateStr));
|
|
var alerttile = GetTextByKey("P_JS_DELETEREQUIREMENT", "Delete Requirement");
|
|
showConfirm(text, alerttile, function (e, notes) {
|
|
var item = {
|
|
'Key': req.Id,
|
|
'Value': notes
|
|
};
|
|
var p = htmlencode(JSON.stringify(item));
|
|
jobsitequery("DeleteRequirment", p, function (data) {
|
|
OnRefresh();
|
|
}, function (err) {
|
|
showAlert(GetTextByKey("P_JS_FAILEDTODELETETHISREQUIREMENT", "Failed to delete this requirement."), alerttile);
|
|
});
|
|
}, null, true);
|
|
}
|
|
|
|
|
|
function CloseDialog(msg) {
|
|
if (msg) {
|
|
var alerttitle = GetTextByKey("P_WO_SENDEMAIL", 'Send Email');
|
|
if (msg !== 'OK') {
|
|
showAlert(msg, alerttitle);
|
|
}
|
|
else {
|
|
showAlert(GetTextByKey("P_WO_MESSAGESENT", 'Message sent'), alerttitle);
|
|
}
|
|
}
|
|
$('#dialog_requirements').hideDialog();
|
|
OnRefresh();
|
|
}
|
|
|
|
function ShowDialog(type) {
|
|
showmaskbg(true);
|
|
$('#dialog_requirements')
|
|
.attr('act', type)
|
|
.showDialogRight();
|
|
}
|
|
|
|
|
|
function OnAdd() {
|
|
execIframeFunc("init", [alljobsites], "iframerequirements");
|
|
ShowDialog("add");
|
|
}
|
|
|
|
var requireid;
|
|
|
|
function OnRefresh(keepmasg) {
|
|
var jobsites = $('#div_jobsites').dropdownVals();
|
|
var regions = $('#div_region').dropdownVals();
|
|
|
|
var lateststartdate = $.trim($('#latesdatetxt').val());
|
|
if (lateststartdate && !$('#latesdatetxt').is(':valid')) {
|
|
showAlert(GetTextByKey('P_COMMON_THELATESTSTARTDATEISINVALID', "The latest start date is invalid."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
showloading(false);
|
|
return;
|
|
}
|
|
var p = {
|
|
"LatestStartDate": lateststartdate,
|
|
"JobSites": jobsites,
|
|
"Regions": regions,
|
|
"SearchText": $.trim($('#searchinputtxt').val()),
|
|
"UnScheduledOnly": $('#chk_unscheduled').prop('checked')
|
|
};
|
|
showloading(true);
|
|
jobsitequery("GetRequirements", htmlencode(JSON.stringify(p)), function (data) {
|
|
if (typeof (data) === "string") {
|
|
showAlert(data, GetTextByKey("P_AM_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
|
|
showRequirementList(data);
|
|
|
|
if (!keepmasg)
|
|
showloading(false);
|
|
}, function (err) {
|
|
if (!keepmasg)
|
|
showloading(false);
|
|
});
|
|
}
|
|
|
|
function showRequirementList(data) {
|
|
var rows = [];
|
|
for (var i = 0; i < data.length; i++) {
|
|
var r = data[i];
|
|
for (var j in r) {
|
|
if (j === "BeginDate")
|
|
r[j] = { DisplayValue: r["BeginDateStr"], Value: r[j] };
|
|
else if (j === "EndDate")
|
|
r[j] = { DisplayValue: r["EndDateStr"], Value: r[j] };
|
|
else if (j === "FulfilledByName")
|
|
r[j] = r[j].split(',');
|
|
}
|
|
rows.push(r);
|
|
}
|
|
|
|
grid_dt.setData(rows);
|
|
grid_dt.refresh();
|
|
}
|
|
|
|
var grid_dt;
|
|
function InitGridData() {
|
|
grid_dt = createGridView('#jobsitelist');
|
|
var list_columns = [
|
|
{ name: 'BeginDate', caption: GetTextByKey("P_JS_BEGINDATE", "Begin Date"), valueIndex: 'BeginDate', css: { 'width': 100, 'text-align': 'left' } },
|
|
{ name: 'EndDate', caption: GetTextByKey("P_JS_ENDDATE", "End Date"), valueIndex: 'EndDate', css: { 'width': 100, 'text-align': 'left' } },
|
|
{ name: 'AssetTypeName', caption: GetTextByKey("P_JS_ASSETTYPE", "Asset Type"), valueIndex: 'AssetTypeName', allowFilter: true, css: { 'width': 180, 'text-align': 'left' } },
|
|
{ name: 'Quantity', caption: GetTextByKey("P_JS_QUANTITY", "Quantity"), valueIndex: 'Quantity', css: { 'width': 80, 'text-align': 'right' } },
|
|
{ name: 'ScheduledQuantity', caption: GetTextByKey("P_JS_SCHEDULED", "Scheduled"), valueIndex: 'ScheduledQuantity', allowFilter: true, css: { 'width': 80, 'text-align': 'right' } },
|
|
{ name: 'JobSiteName', caption: GetTextByKey("P_JOBSITE", "Jobsite"), valueIndex: 'JobSiteName', allowFilter: true, css: { 'width': 200, 'text-align': 'left' } },
|
|
{ name: 'NumberOfDays', caption: GetTextByKey("P_JS_NUMBEROFDAYS", "Number of Days"), valueIndex: 'NumberOfDays', allowFilter: true, css: { 'width': 120, 'text-align': 'right' } },
|
|
{ name: 'Notes', caption: GetTextByKey("P_JS_NOTES", "Notes"), valueIndex: 'Notes', allowFilter: true, css: { 'width': 200, 'text-align': 'left' } },
|
|
{ name: 'PointOfContact', caption: GetTextByKey("P_JS_POINTOFCONTACT", "Point Of Contact"), allowFilter: true, valueIndex: 'PointOfContact', css: { 'width': 200, 'text-align': 'left' } },
|
|
{ name: 'AddedByName', caption: GetTextByKey("P_JS_CREATOR", "Creator"), valueIndex: 'AddedByName', allowFilter: true, css: { 'width': 150, 'text-align': 'left' } },
|
|
{ name: 'FulfilledByName', caption: GetTextByKey("P_JS_FULFILLEDBY", "Fulfilled By"), allowFilter: true, valueIndex: 'FulfilledByName', css: { 'width': 150, 'text-align': 'left' } },
|
|
{ name: 'ManageAssets', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } },
|
|
{ name: 'Delete', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } },
|
|
{ name: 'History', 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 = list_columns[hd].visible === false ? false : 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 (col.name === "ManageAssets") {
|
|
col.sortable = false;
|
|
col.resizable = false;
|
|
col.type = GridView.ColumnTypes.Icon;
|
|
col.text = 'truck-pickup';
|
|
col.events = {
|
|
onclick: function () {
|
|
onManageAssets(this);
|
|
}
|
|
};
|
|
col.attrs = { 'title': GetTextByKey("P_JS_MANAGEASSETS", "Manage Assets") };
|
|
col.visible = !IsReadOnly && !IsRequestOnly;
|
|
}
|
|
else if (col.name === "Delete") {
|
|
col.sortable = false;
|
|
col.resizable = false;
|
|
col.type = GridView.ColumnTypes.Icon;
|
|
col.text = 'times';
|
|
col.events = {
|
|
onclick: function () {
|
|
OnDelete(this);
|
|
}
|
|
};
|
|
col.attrs = { 'title': GetTextByKey("P_JS_DELETE", 'Delete') };
|
|
col.visible = !IsReadOnly && !IsRequestOnly;
|
|
}
|
|
if (col.name === "History") {
|
|
col.sortable = false;
|
|
col.resizable = false;
|
|
col.type = GridView.ColumnTypes.Icon;
|
|
col.text = 'eye';
|
|
col.events = {
|
|
onclick: function () {
|
|
OnViewChangeHistory(this);
|
|
}
|
|
};
|
|
col.attrs = { 'title': GetTextByKey("P_MR_VIEWCHANGEHIS", 'View Change History') };
|
|
col.visible = !IsReadOnly && !IsRequestOnly;
|
|
}
|
|
columns.push(col);
|
|
}
|
|
grid_dt.canMultiSelect = false;
|
|
grid_dt.columns = columns;
|
|
grid_dt.init();
|
|
grid_dt.onRowDblClicked = function (rowindex) {
|
|
if (!IsReadOnly && !IsRequestOnly) {
|
|
var rowdata = grid_dt.source[rowindex];
|
|
if (rowdata) {
|
|
onManageAssets(rowdata);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function searchEnter(e) {
|
|
if (e.keyCode == 13) {
|
|
OnRefresh();
|
|
}
|
|
}
|
|
|
|
var alljobsites;
|
|
function getJobsitesAndRegions() {
|
|
showmaskbg(true);
|
|
jobsitequery('GetJobsitesAndRegions', '1', function (data) {
|
|
if (typeof (data) === "string") {
|
|
showAlert(data, GetTextByKey("P_AM_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
|
|
alljobsites = data.Jobsites;
|
|
$("#div_jobsites").dropdownSource(data.Jobsites);
|
|
|
|
$('#div_region').dropdownSource(data.Regions);
|
|
|
|
getRequirmentsDefault();
|
|
}, function () {
|
|
showmaskbg(false);
|
|
});
|
|
}
|
|
|
|
function onregioncompleted() {
|
|
if (!alljobsites) return;
|
|
var regions = $('#div_region').dropdownVals();
|
|
var jss = [...alljobsites];
|
|
if (regions && regions.length > 0)
|
|
jss = jss.filter(t => regions.indexOf(t.Tag3) >= 0);
|
|
var seljss = $("#div_jobsites").dropdownVals();
|
|
$("#div_jobsites").dropdownSource(jss).dropdownVals(seljss);
|
|
}
|
|
|
|
var editableSelectAssignAsset;
|
|
$(function () {
|
|
setPageTitle(GetTextByKey("P_JS_JOBSITEREQUIREMENTS", "Jobsite Requirements"), true);
|
|
|
|
$('#dialog_assignasset').dropdown([], {
|
|
search: true,
|
|
valueKey: 'Id',
|
|
textKey: 'DisplayName'
|
|
});
|
|
$('#dialog_assignasset').dropdownDisabled(false);
|
|
InitGridData();
|
|
InitAssetGridData();
|
|
InitAllAssetGridData();
|
|
InitEmailGridData();
|
|
InitAttachedAssetGridData();
|
|
|
|
getJobsitesAndRegions();
|
|
|
|
$("#div_region").css('width', 120).dropdown([], {
|
|
search: true,
|
|
multiselect: true,
|
|
allowselectall: true,
|
|
textKey: 'Value',
|
|
valueKey: 'Key'
|
|
}).on('collapsed', onregioncompleted);
|
|
|
|
$("#div_jobsites").css('width', 120).dropdown([], {
|
|
search: true,
|
|
multiselect: true,
|
|
allowselectall: true,
|
|
textKey: 'Value',
|
|
valueKey: 'Key'
|
|
});
|
|
|
|
$(window).resize(function () {
|
|
$("#jobsitelist").css("height", $(window).height() - $("#jobsitelist").offset().top - 14);
|
|
grid_dt && grid_dt.resize();
|
|
$("#allmachinelist").css("height", 500);
|
|
grid_allassetdt && grid_allassetdt.resize();
|
|
|
|
}).resize();
|
|
|
|
$('#searchinputtxt').keydown(searchEnter);
|
|
|
|
$('#dialog_managemahchine').dialog(function () {
|
|
OnRefresh();
|
|
showmaskbg(false);
|
|
})
|
|
|
|
$('#dialog_allmahchine').dialog(function () {
|
|
$('#dialogmask').hide();
|
|
})
|
|
|
|
$('#dialog_attachedassets').dialog(function () {
|
|
$('#dialog_allassetmask').hide();
|
|
$('#dialogmask').hide();
|
|
})
|
|
|
|
$('#dialog_assignment').dialog(function () {
|
|
showmaskbg(false);
|
|
$('#dialogmask').hide();
|
|
});
|
|
|
|
$('#dialog_sendmail').dialog(function () {
|
|
showmaskbg(false);
|
|
});
|
|
|
|
$('#sendmail_othertextaddress').focus(function (e) {
|
|
var left = $('#dialog_sendmail').offset().left + $('#dialog_sendmail').width() + 2;
|
|
var top = $('#dialog_sendmail').offset().top + $("#dialog_sendmail").height() - $("#div_tooltip").height() - 9;
|
|
$('#div_tooltip').css({ 'display': '', 'left': left, 'top': top });
|
|
});
|
|
|
|
if (!canExport) {
|
|
$('#spExport').hide();
|
|
}
|
|
});
|
|
|
|
function searchEnter(e) {
|
|
if (e.keyCode == 13 || e.keyCode == 9) {
|
|
OnRefresh();
|
|
}
|
|
}
|
|
|
|
function OnExport() {
|
|
var jobsites = $('#div_jobsites').dropdownVals();
|
|
var regions = $('#div_region').dropdownVals();
|
|
var lateststartdate = $.trim($('#latesdatetxt').val());
|
|
if (lateststartdate && !$('#latesdatetxt').is(':valid')) {
|
|
showAlert(GetTextByKey('P_COMMON_THELATESTSTARTDATEISINVALID', "The latest start date is invalid."), GetTextByKey("P_FR_ERROR", 'Error'));
|
|
return;
|
|
}
|
|
var p = {
|
|
"LatestStartDate": lateststartdate,
|
|
"JobSites": jobsites,
|
|
"Regions": regions,
|
|
"SearchText": $.trim($('#searchinputtxt').val()),
|
|
"UnScheduledOnly": $('#chk_unscheduled').prop('checked')
|
|
};
|
|
|
|
var param = JSON.stringify(p);
|
|
window.open("../ExportToFile.aspx?type=requirements¶m=" + param);
|
|
}
|
|
|
|
function getRequirmentsDefault() {
|
|
jobsitequery("GetRequirmentsDefault", '', function (data) {
|
|
if (typeof (data) === "string") {
|
|
showAlert(data, GetTextByKey('P_JS_ERROR', 'Error'));
|
|
return;
|
|
}
|
|
if (data) {
|
|
|
|
$('#div_region').dropdownVals(data.Regions);
|
|
onregioncompleted();
|
|
$("#div_jobsites").dropdownVals(data.Jobsites);
|
|
}
|
|
OnRefresh();
|
|
}, function (err) {
|
|
showmaskbg(false);
|
|
});
|
|
}
|
|
|
|
function onSaveDefault() {
|
|
var jobsites = $('#div_jobsites').dropdownVals();
|
|
var regions = $('#div_region').dropdownVals();
|
|
|
|
var item = {
|
|
'JobSites': jobsites,
|
|
'Regions': regions
|
|
};
|
|
var alerttitle = GetTextByKey("P_JS_SAVEDEFAULT", "Save Default");
|
|
var param = JSON.stringify(item);
|
|
param = htmlencode(param);
|
|
jobsitequery("SetRequirmentsDefault", param, function (data) {
|
|
if (data !== 'OK') {
|
|
showAlert(data, alerttitle);
|
|
}
|
|
else {
|
|
showAlert(GetTextByKey("P_JS_SAVSUCCESSFULLY", 'Saved successfully.'), alerttitle);
|
|
}
|
|
|
|
}, function (err) {
|
|
});
|
|
}
|
|
|
|
function OnViewChangeHistory(req) {
|
|
if (!req) {
|
|
return;
|
|
}
|
|
window.open("DispatchChangeHistory.aspx?stype=0&id=" + req.Id);
|
|
}
|
|
|
|
function OnViewDeleteHistory() {
|
|
window.open("RequirementChangeHistory.aspx");
|
|
}
|
|
|
|
function OnPrint(assignto) {
|
|
if (!assignto)
|
|
assignto = "";
|
|
|
|
window.open("../Print.aspx?pt=2&t=" + _sendType + "&assignto=" + encodeURIComponent(assignto) + "&ids=" + JSON.stringify(_selectdispatchids));
|
|
}
|
|
|
|
|
|
</script>
|
|
</asp:Content>
|
|
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
|
|
<div id="contentctrl">
|
|
<div class="page_title" data-lgid="P_JS_JOBSITEREQUIREMENTS"></div>
|
|
<div class="search_bar">
|
|
<input type="password" autocomplete="new-password" style="display: none" />
|
|
<span data-lgid="P_JS_LATESTSTARTDATE_COLON"></span>
|
|
<input type="date" class="type-date" required min="1900-01-01" id="latesdatetxt" autocomplete="off" style="width: 90px; margin-left: 5px;" value="<%=LatestStartDate %>" />
|
|
<span data-lgid="P_JS_REGION_COLON">Region:</span>
|
|
<div id="div_region"></div>
|
|
<span data-lgid="P_JS_JOBSITES_COLON">Jobsites:</span>
|
|
<div id="div_jobsites"></div>
|
|
<input type="text" id="searchinputtxt" autocomplete="off" style="margin-left: 5px; display: none;" />
|
|
<input class="search" type="button" onclick="OnRefresh();" value="Search" data-lgid="P_CM_SEARCH" style="margin-left: 5px;" />
|
|
<input id="chk_unscheduled" type="checkbox" checked="checked" onclick="OnRefresh();" />
|
|
<label data-lgid="P_JS_UNSCHEDULEDREQUIREMENTSONLY" for="chk_unscheduled">Unscheduled Requirements Only</label>
|
|
<span class="sbutton iconsave" onclick="onSaveDefault();" style="margin-left: 20px; padding: 0px 0px 0px 7px;" data-title-lgid="P_JS_SAVEJOBSITEANDREGIONSELECTIONASDEFAULT"></span>
|
|
</div>
|
|
<div class="function_title">
|
|
<%if (!IsReadOnly)
|
|
{ %>
|
|
<span class="sbutton iconadd" onclick="OnAdd();" data-lgid="P_JS_ADD"></span>
|
|
<%} %>
|
|
<span class="sbutton iconrefresh" onclick="OnRefresh();" data-lgid="P_JS_REFRESH"></span>
|
|
<span id="spExport" class="sbutton iconexport" onclick="OnExport();" data-lgid="P_MR_EXPORTTOEXCEL">Export to Excel</span>
|
|
<span class="sbutton iconview" onclick="OnViewDeleteHistory();" data-lgid="P_JS_VIEWDELETEDRECORDS">View Deleted Records</span>
|
|
|
|
</div>
|
|
<div id="jobsitelist"></div>
|
|
</div>
|
|
<div id="mask_bg" style="display: none;">
|
|
<div class="loading c-spin"></div>
|
|
</div>
|
|
<div class="dialog subdialog" id="dialog_requirements" style="display: none; border-bottom: 0; border-top: 0;">
|
|
<%--<div class="dialog-title"><span class="title">Add Work Order</span></div>--%>
|
|
<iframe id="iframerequirements" src="AddRequirements.aspx" style="width: 100%; height: 100%; display: block; border: none;"></iframe>
|
|
<div class="maskbg" style="display: none;"></div>
|
|
</div>
|
|
|
|
<div class="dialog" id="dialog_managemahchine" style="display: none;">
|
|
<div class="dialog-title"><span id="spTitle" class="title" data-lgid="P_JS_MANAGEASSETS"></span><em class="dialog-close"></em></div>
|
|
<div class="requireinfo">
|
|
<span class="requireinfospan" data-lgid="P_JS_JOBSITE_COLON" style="margin-left: 0px;">Jobsite:</span>
|
|
<span id="span_jobsite"></span>
|
|
<span class="requireinfospan" data-lgid="P_JS_BEGINDATE_COLON">Begin Date:</span>
|
|
<span id="span_begindate"></span>
|
|
<span class="requireinfospan" data-lgid="P_JS_ENDDATE_COLON">End Date:</span>
|
|
<span id="span_enddate"></span>
|
|
<span class="requireinfospan" data-lgid="P_JS_ASSETTYPE_COLON">Asset Type:</span>
|
|
<span id="span_assettypes"></span>
|
|
</div>
|
|
<div class="quantity">
|
|
<span data-lgid="P_JS_QUANTITY_COLON">Quantity:</span>
|
|
<span id="span_quantity"></span>
|
|
<span class="sbutton iconadd" onclick="OnMachineAdd()" data-lgid="P_UM_ADD" style="margin-left: 20px; font-weight: lighter;">Add</span>
|
|
<span class="sbutton icondelete" onclick="onDeleteDispatch()" data-lgid="P_UM_DELETE" style="font-weight: lighter;">Delete</span>
|
|
</div>
|
|
<div id="selectedmachinelist" style="height: 500px; width: 100%;"></div>
|
|
|
|
<div class="dialog-func">
|
|
<input type="button" value="Close" data-lgid="P_JS_CLOSE" class="dialog-close" tabindex="28" />
|
|
<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_allmahchine" style="display: none;">
|
|
<div class="dialog-title"><span class="title" data-lgid="P_MA_SELECTASSET"></span><em class="dialog-close"></em></div>
|
|
<div id="allmachinelist" style="height: 500px; width: 100%;"></div>
|
|
|
|
<div class="dialog-func">
|
|
<input type="button" value="Close" data-lgid="P_JS_CANCEL" class="dialog-close" tabindex="28" />
|
|
<input type="button" onclick="onAddDispatch();" data-lgid="P_JS_OK" value="OK" tabindex="27" />
|
|
<div class="clear"></div>
|
|
</div>
|
|
<div id="dialog_allassetmask" class="maskbg" style="display: none;">
|
|
<div class="loading_icon icon c-spin"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="dialog" id="dialog_sendmail" style="display: none; width: 510px;">
|
|
<div class="dialog-title"><span class="title" data-lgid="P_JS_SENDDISPATCHREQUEST">Send Dispatch Request</span><em class="dialog-close"></em></div>
|
|
<div class="dialog-content">
|
|
<table style="line-height: 24px;">
|
|
<tr>
|
|
<td colspan="2" data-lgid="P_MV_SENDTHISTO">Who do you want to send this to? Select from existing relationships or manual entry.</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<div id="contactlist" style="height: 168px; width: 470px; margin-left: 10px; margin-right: 10px;"></div>
|
|
</td>
|
|
</tr>
|
|
<tr style="height: 24px;">
|
|
<td colspan="2" data-lgid="P_MV_EMAILORTEXTADDRESSESTIPS">Separate multiple manually entered email or text addresses with a semi-colon (;).</td>
|
|
</tr>
|
|
<tr style="height: 24px;">
|
|
<td style="text-align: right; padding-right: 5px;"><span data-lgid="P_MV_OTHEREMAILADDRESS">Other Email Address</span>
|
|
</td>
|
|
<td>
|
|
<input type="text" id="sendmail_otheremailaddress" style="width: 350px;" autocomplete="off" /></td>
|
|
</tr>
|
|
<tr style="height: 24px; display: none;">
|
|
<td style="text-align: right; padding-right: 5px;"><span data-lgid="P_MV_OTHERTEXTADDRESS">Other Text Address</span>
|
|
</td>
|
|
<td>
|
|
<input type="text" id="sendmail_othertextaddress" style="width: 350px;" autocomplete="off" />
|
|
</td>
|
|
<%--<span id="span_hepler" class='helper pointer' title='Help'></span>--%>
|
|
</tr>
|
|
<tr style="height: 24px;">
|
|
<td style="text-align: right; padding-right: 5px;" data-lgid="P_MV_DESCRIPTION_COLON">Description:</td>
|
|
<td>
|
|
<textarea id="sendmail_desc" style="width: 350px; height: 80px; resize: none;"></textarea></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="dialog-func">
|
|
<input type="button" value="Cancel" data-lgid="P_MV_CANCEL" class="dialog-close" tabindex="12" />
|
|
<input type="button" onclick="onSendEmails();" value="OK" data-lgid="P_MV_OK" tabindex="11" />
|
|
<div class="clear"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="dialog" id="dialog_assignment" style="display: none;">
|
|
<div class="dialog-title"><span class="title" data-lgid="P_JS_DISPATCHASSIGNMENT">Dispatch Assignment</span><em class="dialog-close"></em></div>
|
|
<div class="dialog-content">
|
|
<table style="line-height: 30px; margin-left: 30px;">
|
|
<tr>
|
|
<td data-lgid="P_JS_SELECTASSETFORDISPATCH">Select Asset for Dispatch</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div id="dialog_assignasset" style="width: 320px;" class="dropdown"></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="dialog-func">
|
|
<input type="button" onclick="onAssignContinue();" value="Continue" data-lgid="P_JS_CONTINUE" tabindex="12" />
|
|
<input type="button" onclick="onAssignSkip();" value="Skip" data-lgid="P_JS_SKIP" tabindex="11" />
|
|
<div class="clear"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="dialog" id="dialog_attachedassets" style="display: none;">
|
|
<div class="dialog-title"><span class="title" data-lgid="P_JS_ATTACHEDASSETS">Attached Assets</span><em class="dialog-close"></em></div>
|
|
<div class="dialog-content">
|
|
<div style="text-align: center; line-height: 20px; margin-bottom: 10px;">
|
|
<span id="span_attachedasset_tips1"></span>
|
|
<br />
|
|
<span id="span_attachedasset_tips2"></span>
|
|
</div>
|
|
<div id="dialog_attachedassetlist" style="height: 300px; width: 100%;"></div>
|
|
</div>
|
|
<div class="dialog-func">
|
|
<input type="button" value="Close" data-lgid="P_JS_CANCEL" class="dialog-close" tabindex="2" />
|
|
<input type="button" id="btn_addattasset" onclick="OnAddAttachedAssets();" data-lgid="P_JS_OK" value="OK" tabindex="1" />
|
|
<input type="button" id="btn_removeattasset" onclick="OnRemoveAttachedAssets();" style="display: none;" data-lgid="P_JS_REMOVE" value="Remove" tabindex="1" />
|
|
<div class="clear"></div>
|
|
</div>
|
|
</div>
|
|
|
|
</asp:Content>
|