630 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			630 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| <%@ Page Title="" Language="C#" MasterPageFile="~/JobSite/JobSiteMasterPage.master" AutoEventWireup="true" CodeFile="DispatchRequests.aspx.cs" Inherits="DispatchRequests" %>
 | |
| 
 | |
| <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
 | |
|     <link href="../css/jquery.datetimepicker.css" rel="stylesheet" />
 | |
|     <style type="text/css">
 | |
|         .itemselcted {
 | |
|             background-color: #ccc;
 | |
|         }
 | |
| 
 | |
|         .itemhidden {
 | |
|             display: none;
 | |
|         }
 | |
| 
 | |
|         .itemsuggested {
 | |
|             background-color: #ffff99;
 | |
|         }
 | |
| 
 | |
|         #tbMachineTypes tbody tr:hover {
 | |
|             cursor: default;
 | |
|             background: #ddd;
 | |
|         }
 | |
| 
 | |
|         #tbodyAssigned tr:hover {
 | |
|             cursor: default;
 | |
|             background: #ddd;
 | |
|         }
 | |
| 
 | |
|         #tbodyUnassigned tr:hover {
 | |
|             cursor: default;
 | |
|             background: #ddd;
 | |
|         }
 | |
| 
 | |
|         #tbodySelected tr:hover {
 | |
|             cursor: default;
 | |
|             background: #ddd;
 | |
|         }
 | |
| 
 | |
|         #contentctrl {
 | |
|             position: absolute;
 | |
|             top: 0;
 | |
|             bottom: 0;
 | |
|             left: 0;
 | |
|             right: 0;
 | |
|         }
 | |
| 
 | |
|         .float_left {
 | |
|             float: left;
 | |
|         }
 | |
| 
 | |
|         .function_bar {
 | |
|             float: right;
 | |
|         }
 | |
| 
 | |
|         .user_main {
 | |
|             padding: 0 4px;
 | |
|         }
 | |
| 
 | |
|         .dialog .dialog-title .dialog-close {
 | |
|             float: right;
 | |
|             margin-right: 6px;
 | |
|             cursor: pointer;
 | |
|         }
 | |
| 
 | |
|             .dialog .dialog-title .dialog-close:before {
 | |
|                 content: '\e600';
 | |
|             }
 | |
| 
 | |
|         .dialog-content table {
 | |
|             border-collapse: collapse;
 | |
|             width: 100%;
 | |
|         }
 | |
| 
 | |
|             .dialog-content table td.label {
 | |
|                 width: 170px;
 | |
|                 text-align: right;
 | |
|                 padding-right: 10px;
 | |
|                 line-height: 28px;
 | |
|                 height: 24px;
 | |
|                 vertical-align: top;
 | |
|             }
 | |
| 
 | |
|         #dialog_machines .dialog-content table td input,
 | |
|         #dialog_layouts .dialog-content table td input {
 | |
|             width: auto;
 | |
|         }
 | |
| 
 | |
|         .dialog-content table td input[type="checkbox"] {
 | |
|             border: none;
 | |
|         }
 | |
| 
 | |
|         #dialog_user_randompass {
 | |
|             width: auto;
 | |
|             height: 16px;
 | |
|             margin: 3px 4px 0 4px;
 | |
|         }
 | |
| 
 | |
|         .icon {
 | |
|             font-family: CalciteWebCoreIcons;
 | |
|             cursor: default;
 | |
|         }
 | |
| 
 | |
| 
 | |
|         .ybutton {
 | |
|             width: 80px;
 | |
|             line-height: normal;
 | |
|             margin-left: 6px;
 | |
|             border: none;
 | |
|             background: rgb(249, 189, 117);
 | |
|             padding: 5px 14px;
 | |
|             cursor: pointer;
 | |
|         }
 | |
| 
 | |
|             .ybutton:hover {
 | |
|                 background: #d7690E;
 | |
|             }
 | |
| 
 | |
|         .td_controller {
 | |
|             vertical-align: middle;
 | |
|             padding: 40px 8px;
 | |
|             /*border-left: 1px solid #b0b0b0;
 | |
|                 border-right: 1px solid #b0b0b0;*/
 | |
|         }
 | |
| 
 | |
|         .ctl_button {
 | |
|             font-family: 'CalciteWebCoreIcons';
 | |
|             display: block;
 | |
|             margin: 6px auto;
 | |
|             width: 60px;
 | |
|             height: 22px;
 | |
|             line-height: 21px;
 | |
|             padding: 0;
 | |
|         }
 | |
| 
 | |
|         .subdialog {
 | |
|             width: -moz-calc(100% - 24px);
 | |
|             width: -webkit-calc(100% - 24px);
 | |
|             width: calc(100% - 24px);
 | |
|         }
 | |
| 
 | |
|         .machine_maskbg {
 | |
|             top: 0;
 | |
|             left: 0;
 | |
|             width: 100%;
 | |
|             height: 100%;
 | |
|             position: absolute;
 | |
|             background: #000;
 | |
|             opacity: 0.2;
 | |
|         }
 | |
| 
 | |
|         #machine-name {
 | |
|             margin: 10px 10px 6px;
 | |
|             /*color: gray;*/
 | |
|             font-weight: lighter;
 | |
|             font-size: 18px;
 | |
|             width: 770px;
 | |
|             overflow: hidden;
 | |
|             text-overflow: ellipsis;
 | |
|             white-space: nowrap;
 | |
|         }
 | |
| 
 | |
|         .div_filter .dropdown {
 | |
|             width: 120px;
 | |
|         }
 | |
|     </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/editableselect.js")%>"></script>
 | |
|     <script src="<%=GetFileUrlWithVersion("../js/editmultiselect.js")%>" type="text/javascript"></script>
 | |
|     <script src="<%=GetFileUrlWithVersion("js/email.js")%>" type="text/javascript"></script>
 | |
|     <script src="<%=GetFileUrlWithVersion("js/dispatchassign.js")%>" type="text/javascript"></script>
 | |
|     <script>
 | |
|         jobsitequery = function (method, param, callback, error, nolog) {
 | |
|             _network.request("JobSite/DispatchRequests.aspx?tp=ashx", -1, method, param, callback, error, nolog);
 | |
|         }
 | |
|         var jobsiteparam;
 | |
|         var regionparam;
 | |
|         var IsReadOnly = <%=IsReadOnly ?"true":"false"%>;
 | |
|         var allroadassets;
 | |
|         var _sendType = 1;
 | |
|         var _seltype;//0.print;1.email
 | |
|         var _selectdispatchids;
 | |
| 
 | |
|         /***************************Jobsites***************************/
 | |
|                 
 | |
|         function OnDelete(dis) {
 | |
|             if (!dis) {
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             var text = $('<div style="padding-right:20px;line-height:20px;">' + GetTextByKey("P_JS_DELETETHEDISPATCH", "Would you like to delete the dispatch?") + '<br/></div');
 | |
|             text.append($('<span></span>').text(GetTextByKey("P_JS_MOVEDATE_COLON", "Move Date:") + " " + dis.BeginDateStr));
 | |
|             text.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_MA_ASSETNAME_COLON", "Asset Name:") + " " + dis.AssetName));
 | |
|             text.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_JS_ASSETTYPE_COLON", "Asset Type:") + " " + dis.AssetTypeName));
 | |
|             text.append("<br/>")
 | |
|             text.append($('<span></span>').text(GetTextByKey("P_JS_FROMJOBSITE_COLON", "From Jobsite:") + " " + dis.CurrentJobSiteName));
 | |
|             text.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_JS_TOJOBSITE_COLON", "To Jobsite:") + " " + dis.RequiredJobSiteName));
 | |
|             var alerttile = GetTextByKey("P_JS_DELETEDISPATCH", "Delete Dispatch");
 | |
|             showConfirm(text, alerttile, function (e, notes) {
 | |
|                 var item = {
 | |
|                     'DispatchId': [dis.DispatchId],
 | |
|                     'DeleteNotes': notes
 | |
|                 };
 | |
|                 var p = htmlencode(JSON.stringify(item));
 | |
|                 jobsitequery("DeleteDispatch", p, function (data) {
 | |
|                     OnRefresh();
 | |
|                 }, function (err) {
 | |
|                     showAlert(GetTextByKey("P_JS_FAILEDTODELETETHISDISPATCH", "Failed to delete this dispatch."), alerttile);
 | |
|                 });
 | |
|             }, null, true);
 | |
|         }
 | |
| 
 | |
|         function OnRefresh() {
 | |
|             showloading(true);
 | |
| 
 | |
|             var jobsites = [];
 | |
|             if (jobsiteparam)
 | |
|                 jobsites = jobsiteparam.selectedvalue;
 | |
| 
 | |
|             var regions = [];
 | |
|             if (regionparam)
 | |
|                 regions = regionparam.selectedvalue;
 | |
| 
 | |
|             var p = {
 | |
|                 "LatestStartDate": $.trim($('#latesdatetxt').val()),
 | |
|                 "JobSites": jobsites,
 | |
|                 "Regions": regions,
 | |
|                 "SearchText": $.trim($('#searchinputtxt').val()),
 | |
|                 "UnScheduledOnly": $('#chk_unscheduled').prop('checked')
 | |
|             };
 | |
|             jobsitequery("GetAssetDispatchItems", htmlencode(JSON.stringify(p)), function (data) {
 | |
|                 showloading(false);
 | |
|                 if (typeof (data) === "string") {
 | |
|                     showAlert(data, GetTextByKey("P_AM_ERROR", 'Error'));
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
|                 showDispatchList(data);
 | |
|             }, function (err) {
 | |
|                 showloading(false);
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         function showDispatchList(data) {
 | |
|             var rows = [];
 | |
|             for (var i = 0; i < data.length; i++) {
 | |
|                 var r = data[i];
 | |
|                 for (var j in r) {
 | |
|                     if (j === "MoveDate")
 | |
|                         r[j] = { DisplayValue: r["BeginDateStr"], Value: r[j] };
 | |
|                     else 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 === "CompletedTime")
 | |
|                         r[j] = { DisplayValue: r["CompletedTimeStr"], Value: r[j] };
 | |
|                 }
 | |
|                 var fr = { Values: r };
 | |
|                 rows.push(fr);
 | |
|             }
 | |
| 
 | |
|             grid_dt.setData(rows);
 | |
|             grid_dt.refresh();
 | |
|         }
 | |
| 
 | |
|         var grid_dt;
 | |
|         function InitGridData() {
 | |
|             grid_dt = new GridView('#dispatchlist');
 | |
|             grid_dt.lang = {
 | |
|                 all: GetTextByKey("P_GRID_ALL", "(All)"),
 | |
|                 ok: GetTextByKey("P_GRID_OK", "OK"),
 | |
|                 reset: GetTextByKey("P_GRID_RESET", "Reset")
 | |
|             };
 | |
|             var list_columns = [
 | |
|                 //{ name: 'Selected', caption: "", valueIndex: 'Selected', type: 3, css: { 'width': 30, 'text-align': 'center' } },
 | |
|                 { name: 'BeginDate', caption: GetTextByKey("P_JS_MOVEDATE", "Move Date"), valueIndex: 'BeginDate', css: { 'width': 100, 'text-align': 'left' } },
 | |
|                 //{ 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: 'AssetName', caption: GetTextByKey("P_JS_ASSETNAME", "Asset Name"), valueIndex: 'AssetName', allowFilter: true, css: { 'width': 200, 'text-align': 'left' } },
 | |
|                 { name: 'AssetTypeName', caption: GetTextByKey("P_JS_ASSETTYPE", "Asset Type"), valueIndex: 'AssetTypeName', allowFilter: true, css: { 'width': 180, 'text-align': 'left' } },
 | |
|                 { name: 'AssetModelName', caption: GetTextByKey("P_JS_MODEL", "Model"), valueIndex: 'AssetModelName', allowFilter: true, css: { 'width': 180, 'text-align': 'left' } },
 | |
|                 { name: 'CurrentJobSiteName', caption: GetTextByKey("P_JS_FROMJOBSITE", "From Jobsite"), allowFilter: true, valueIndex: 'CurrentJobSiteName', css: { 'width': 120, 'text-align': 'left' } },
 | |
|                 { name: 'RequiredJobSiteName', caption: GetTextByKey("P_JS_TOJOBSITE", "To Jobsite"), allowFilter: true, valueIndex: 'RequiredJobSiteName', css: { 'width': 120, 'text-align': 'left' } },
 | |
|                 { name: 'Completed', caption: GetTextByKey("P_JS_MARKCOMPLETE", "Mark Complete"), valueIndex: 'Completed', type: 3, css: { 'width': 100, 'text-align': 'center' } },
 | |
|                 { name: 'CompletedTime', caption: GetTextByKey("P_JS_COMPLETEDATE", "Completed Date"), valueIndex: 'CompletedTime', css: { 'width': 120, 'text-align': 'left' } },
 | |
|                 { name: 'Notes', caption: GetTextByKey("P_JS_NOTES", "Notes"), valueIndex: 'Notes', allowFilter: true, css: { 'width': 200, 'text-align': 'left' } },
 | |
|                 { name: 'AssignedTo', caption: GetTextByKey("P_JS_ASSIGNEDTO", "Assigned To"), valueIndex: 'AssignedToAssetName', allowFilter: true, css: { 'width': 200, 'text-align': 'left' } },
 | |
|                 { name: 'PointOfContact', caption: GetTextByKey("P_JS_POINTOFCONTACT", "Point Of Contact"), valueIndex: 'PointOfContact', allowFilter: true, css: { 'width': 200, 'text-align': 'left' } },
 | |
|                 { name: 'Delete', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } },
 | |
|                 { name: 'History', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } }
 | |
|             ];
 | |
|             var columns = [
 | |
|                 {
 | |
|                     // checkbox
 | |
|                     name: 'check',
 | |
|                     key: 'Selected',
 | |
|                     width: 30,
 | |
|                     align: 'center',
 | |
|                     sortable: false,
 | |
|                     allcheck: true,
 | |
|                     type: 3
 | |
|                 }
 | |
|             ];
 | |
|             // 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.type = list_columns[hd].type;
 | |
| 
 | |
|                 col.alwaysshow = list_columns[hd].alwaysshow;
 | |
|                 if (col.name === "Completed") {
 | |
|                     col.events = {
 | |
|                         onchange: function () {
 | |
|                             var item = this;
 | |
|                             var msg = "";
 | |
|                             if (item.Completed)
 | |
|                                 msg = GetTextByKey("P_JS_DOYOUWANTTOMARKCOMPLETE", "Do you want to mark complete?");
 | |
|                             else
 | |
|                                 msg = GetTextByKey("P_JS_DOYOUWANTTOUNMARKCOMPLETION", "Do you want to unmark completion?");
 | |
| 
 | |
|                             showConfirm(msg, GetTextByKey("P_JS_MARKCOMPLATE", 'Mark Complete'), function () {
 | |
|                                 UpdateDispatchCompleted(item.DispatchId, item.Completed);
 | |
|                             }, function () {
 | |
|                                 item.Completed = !item.Completed;
 | |
|                                 grid_dt.reload();
 | |
|                                 showmaskbg(false);
 | |
|                             });
 | |
|                         }
 | |
|                     };
 | |
|                     col.enabled = !IsReadOnly;
 | |
|                 }
 | |
|                 if (col.name === "Delete") {
 | |
|                     col.sortable = false;
 | |
|                     col.isurl = true;
 | |
|                     col.text = "\uf00d";
 | |
|                     col.events = {
 | |
|                         onclick: function () {
 | |
|                             OnDelete(this);
 | |
|                         }
 | |
|                     };
 | |
|                     col.classFilter = function (e) {
 | |
|                         return "icon-col";
 | |
|                     };
 | |
|                     col.attrs = { 'title': GetTextByKey("P_JS_DELETE", 'Delete') };
 | |
|                     col.styleFilter = function (e) {
 | |
|                         if (e.Completed)
 | |
|                             return {
 | |
|                                 display: 'none'
 | |
|                             };
 | |
|                     };
 | |
|                     col.visible = !IsReadOnly;
 | |
|                 }
 | |
|                 if (col.name === "History") {
 | |
|                     col.sortable = false;
 | |
|                     col.isurl = true;
 | |
|                     col.text = "\uf06e";
 | |
|                     col.events = {
 | |
|                         onclick: function () {
 | |
|                             OnViewChangeHistory(this);
 | |
|                         }
 | |
|                     };
 | |
|                     col.classFilter = function (e) {
 | |
|                         return "icon-col";
 | |
|                     };
 | |
|                     col.attrs = { 'title': GetTextByKey("P_MR_VIEWCHANGEHIS", 'View Change History') };
 | |
|                     col.visible = !IsReadOnly;
 | |
|                 }
 | |
|                 columns.push(col);
 | |
|             }
 | |
|             grid_dt.canMultiSelect = false;
 | |
|             grid_dt.columns = columns;
 | |
|             grid_dt.init();
 | |
| 
 | |
|             grid_dt.selectedrowchanged = function (rowindex) {
 | |
|                 var rowdata = grid_dt.source[rowindex];
 | |
|                 if (rowdata) {
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         function searchEnter(e) {
 | |
|             if (e.keyCode == 13) {
 | |
|                 OnRefresh();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         var alljobsites;
 | |
|         var jobsite_editmultiselect;
 | |
|         function getJobsitesAndRegions() {
 | |
|             jobsitequery('GetJobsitesAndRegions', '', function (data) {
 | |
|                 if (typeof (data) === "string") {
 | |
|                     showAlert(data, GetTextByKey("P_AM_ERROR", 'Error'));
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
|                 alljobsites = data.Jobsites;
 | |
|                 jobsiteparam = {
 | |
|                     allitems: data.Jobsites,
 | |
|                     items: JSON.parse(JSON.stringify(data.Jobsites)),
 | |
|                     selectedvalue: [],
 | |
|                     width: 240
 | |
|                 };
 | |
|                 jobsite_editmultiselect = editmultiselect(jobsiteparam);
 | |
|                 $('#div_jobsites').append(jobsite_editmultiselect);
 | |
| 
 | |
|                 regionparam = {
 | |
|                     items: data.Regions,
 | |
|                     selectedvalue: [],
 | |
|                     width: 240,
 | |
|                     oncompleted: onregioncompleted
 | |
|                 };
 | |
|                 var ipt = editmultiselect(regionparam);
 | |
|                 $('#div_region').append(ipt);
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         function onregioncompleted() {
 | |
|             if (!jobsiteparam || !jobsiteparam.allitems) return;
 | |
|             jobsiteparam.items.length = 0;
 | |
|             for (var i in jobsiteparam.allitems) {
 | |
|                 var item = jobsiteparam.allitems[i];
 | |
|                 if (!regionparam.selectedvalue
 | |
|                     || regionparam.selectedvalue.length == 0
 | |
|                     || regionparam.selectedvalue.indexOf(item.Tag3) >= 0)
 | |
|                     jobsiteparam.items.push(item);
 | |
|             }
 | |
|             jobsite_editmultiselect.reset();
 | |
|         }
 | |
| 
 | |
|         var editableSelectAssignAsset;
 | |
|         $(function () {
 | |
|             setPageTitle(GetTextByKey("P_JS_DISPATCHREQUESTS", "Dispatch Requests"), true);
 | |
|             editableSelectAssignAsset = new $editableselect($("#dialog_assignasset"));
 | |
|             editableSelectAssignAsset.setEnable(false);
 | |
|             InitGridData();
 | |
|             InitEmailGridData();
 | |
|             getJobsitesAndRegions();
 | |
| 
 | |
|             $(window).resize(function () {
 | |
|                 $("#dispatchlist").css("height", $(window).height() - $("#dispatchlist").offset().top - 14);
 | |
|                 grid_dt && grid_dt.resize();
 | |
| 
 | |
|             }).resize();
 | |
|             OnRefresh();
 | |
| 
 | |
|             $('#searchinputtxt').keydown(searchEnter);
 | |
| 
 | |
|             $('#dialog_sendmail').dialog(function () {
 | |
|                 showmaskbg(false);
 | |
|             });
 | |
| 
 | |
|             $('#dialog_assignment').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 });
 | |
|             });
 | |
| 
 | |
|             $('#latesdatetxt').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]);
 | |
|                 }
 | |
|             });
 | |
| 
 | |
|             if (!canExport) {
 | |
|                 $('#spExport').hide();
 | |
|             }
 | |
|         });
 | |
| 
 | |
|         function UpdateDispatchCompleted(dispatchid, competed) {
 | |
|             var item = { 'Key': dispatchid, 'Value': competed };
 | |
| 
 | |
|             var p = htmlencode(JSON.stringify(item));
 | |
|             jobsitequery('UpdateDispatchCompleted', p, function (data) {
 | |
|                 if (data !== "OK") {
 | |
|                     showAlert(data, GetTextByKey("P_AM_ERROR", 'Error'));
 | |
|                 }
 | |
|                 OnRefresh();
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         function OnPrint(assignto) {
 | |
|             if (!assignto)
 | |
|                 assignto = "";
 | |
| 
 | |
|             if (_selectdispatchids.length == 0) {
 | |
|                 showAlert(GetTextByKey('P_JS_PLEASESELECTDISPATCH', 'Please select Dispatch.'), GetTextByKey('P_MR_PRINT', 'Print'));
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             window.open("../Print.aspx?pt=2&t=" + _sendType + "&assignto=" + encodeURIComponent(assignto) + "&ids=" + JSON.stringify(_selectdispatchids));
 | |
|         }
 | |
| 
 | |
|         function OnViewChangeHistory(dis) {
 | |
|             if (!dis) {
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             window.open("DispatchChangeHistory.aspx?stype=" + _sendType + "&id=" + dis.DispatchId);
 | |
|         }
 | |
| 
 | |
|         function OnExport() {
 | |
|             var jobsites = [];
 | |
|             if (jobsiteparam)
 | |
|                 jobsites = jobsiteparam.selectedvalue;
 | |
| 
 | |
|             var regions = [];
 | |
|             if (regionparam)
 | |
|                 regions = regionparam.selectedvalue;
 | |
| 
 | |
|             var p = {
 | |
|                 "LatestStartDate": $.trim($('#latesdatetxt').val()),
 | |
|                 "JobSites": jobsites,
 | |
|                 "Regions": regions,
 | |
|                 "SearchText": $.trim($('#searchinputtxt').val()),
 | |
|                 "UnScheduledOnly": $('#chk_unscheduled').prop('checked')
 | |
|             };
 | |
|             window.open("../ExportToFile.aspx?type=dispatchrequests&t=" + htmlencode(JSON.stringify(p)));
 | |
|         }
 | |
| 
 | |
|     </script>
 | |
| </asp:Content>
 | |
| <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
 | |
|     <div id="contentctrl">
 | |
|         <div class="page_title" data-lgid="P_JS_DISPATCHREQUESTS">Dispatch Requests</div>
 | |
|         <div class="search_bar">
 | |
|             <input type="password" autocomplete="new-password" style="display: none" />
 | |
|             <span data-lgid="P_JS_LATESTSTARTDATE_COLON"></span>
 | |
|             <input type="text" id="latesdatetxt" autocomplete="off" style="float: left; width: 80px; 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" onclick="OnRefresh();" />
 | |
|             <label data-lgid="P_JS_MARKCOMPLETE" for="chk_unscheduled">Mark Complete</label>
 | |
|         </div>
 | |
|         <div class="function_title">
 | |
|             <span class="sbutton iconmail" onclick="openAssignDispatch(1);" data-lgid="P_JS_EMAIL">Email</span>
 | |
|             <span class="sbutton iconprint" onclick="openAssignDispatch(0);" data-lgid="P_JS_PRIINT">Print</span>
 | |
|             <span id="spExport" class="sbutton iconexport" onclick="OnExport();" data-lgid="P_MR_EXPORTTOEXCEL">Export to Excel</span>
 | |
|             <span class="sbutton iconrefresh" onclick="OnRefresh();" data-lgid="P_JS_REFRESH"></span>
 | |
|         </div>
 | |
|         <div id="dispatchlist"></div>
 | |
|     </div>
 | |
| 
 | |
|     <div id="mask_bg" style="display: none;"><div class="loading c-spin"></div></div>
 | |
|     <div class="dialog" id="dialog_sendmail" style="display: none; width: 320px;">
 | |
|         <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" style="height: 378px;">
 | |
|             <table>
 | |
|                 <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: 440px; 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><span data-lgid="P_MV_OTHEREMAILADDRESS">Other Email Address</span>
 | |
|                     </td>
 | |
|                     <td>
 | |
|                         <input type="text" id="sendmail_otheremailaddress" style="width: 312px;" autocomplete="off" /></td>
 | |
|                 </tr>
 | |
|                 <tr style="height: 24px; display: none;">
 | |
|                     <td><span data-lgid="P_MV_OTHERTEXTADDRESS">Other Text Address</span>
 | |
|                     </td>
 | |
|                     <td>
 | |
|                         <input type="text" id="sendmail_othertextaddress" style="width: 312px;" autocomplete="off" />
 | |
|                     </td>
 | |
|                     <%--<span id="span_hepler" class='helper pointer' title='Help'></span>--%>
 | |
|                 </tr>
 | |
|                 <tr style="height: 24px;">
 | |
|                     <td colspan="2" data-lgid="P_MV_DESCRIPTION_COLON">Description:</td>
 | |
|                 </tr>
 | |
|                 <tr>
 | |
|                     <td colspan="2">
 | |
|                         <textarea id="sendmail_desc" style="width: 444px; height: 80px; resize: none; margin-left: 12px;"></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; height: 22px;"></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>
 | |
| </asp:Content>
 |