456 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			456 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| <%@ Page Title="" Language="C#" MasterPageFile="~/Security/Security.master" AutoEventWireup="true" CodeFile="CurfewMovementTolerance.aspx.cs" Inherits="CurfewMovementTolerance" %>
 | |
| 
 | |
| <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
 | |
|     <style type="text/css">
 | |
|         .selectinput {
 | |
|             width: 150px;
 | |
|             margin-right: 10px;
 | |
|         }
 | |
| 
 | |
|         .no_wrap th {
 | |
|             white-space: nowrap;
 | |
|             overflow: hidden;
 | |
|             text-overflow: ellipsis;
 | |
|         }
 | |
| 
 | |
|         .max160 {
 | |
|             max-width: 160px;
 | |
|             overflow: hidden;
 | |
|             text-overflow: ellipsis;
 | |
|             white-space: nowrap;
 | |
|         }
 | |
| 
 | |
|         .dialog-content table {
 | |
|             border-collapse: collapse;
 | |
|             width: 100%;
 | |
|             line-height: 32px;
 | |
|         }
 | |
| 
 | |
|             .dialog-content table td.label {
 | |
|                 width: 124px;
 | |
|                 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: 250px;
 | |
|                 height: 18px;
 | |
|                 padding: 1px;
 | |
|             }
 | |
| 
 | |
|             .dialog-content table td select {
 | |
|                 width: 254px;
 | |
|                 height: 24px;
 | |
|             }
 | |
| 
 | |
|             .dialog-content table td input[type="checkbox"] {
 | |
|                 border: none;
 | |
|             }
 | |
| 
 | |
|             .dialog-content table td textarea {
 | |
|                 height: 100px;
 | |
|                 max-width: 200px;
 | |
|             }
 | |
| 
 | |
|         #dialog_user_randompass {
 | |
|             width: auto;
 | |
|             height: 16px;
 | |
|             margin: 3px 4px 0 4px;
 | |
|         }
 | |
| 
 | |
|         .ctl_button {
 | |
|             font-family: 'CalciteWebCoreIcons';
 | |
|             display: block;
 | |
|             margin: 6px auto;
 | |
|             width: 60px;
 | |
|             height: 22px;
 | |
|             line-height: 21px;
 | |
|             padding: 0;
 | |
|         }
 | |
| 
 | |
|         .group_table .main_table {
 | |
|             table-layout: fixed;
 | |
|         }
 | |
| 
 | |
|             .group_table .main_table thead tr {
 | |
|                 display: block;
 | |
|             }
 | |
| 
 | |
|             .group_table .main_table tbody {
 | |
|                 height: 280px;
 | |
|                 display: block;
 | |
|                 overflow-y: auto;
 | |
|             }
 | |
| 
 | |
|             .group_table .main_table th {
 | |
|                 width: 165px;
 | |
|             }
 | |
| 
 | |
|             .group_table .main_table td {
 | |
|                 width: 165px;
 | |
|                 white-space: nowrap;
 | |
|                 word-break: keep-all;
 | |
|             }
 | |
| 
 | |
|                 .group_table .main_table td div {
 | |
|                     width: 165px;
 | |
|                     overflow: hidden;
 | |
|                     white-space: nowrap;
 | |
|                     word-break: keep-all;
 | |
|                     text-overflow: ellipsis;
 | |
|                 }
 | |
| 
 | |
| 
 | |
|         .table_holder {
 | |
|             border-collapse: collapse;
 | |
|             height: 400px;
 | |
|         }
 | |
| 
 | |
|             .table_holder thead th {
 | |
|                 text-align: left;
 | |
|             }
 | |
| 
 | |
|             .table_holder tbody tr {
 | |
|                 line-height: 28px;
 | |
|                 height: 28px;
 | |
|             }
 | |
| 
 | |
|             .table_holder td {
 | |
|                 vertical-align: top;
 | |
|             }
 | |
| 
 | |
|             .table_holder .td_controller {
 | |
|                 vertical-align: middle;
 | |
|                 padding: 40px 8px;
 | |
|             }
 | |
| 
 | |
|             .table_holder .scroller {
 | |
|                 height: 400px;
 | |
|                 overflow-y: auto;
 | |
|                 width: 410px;
 | |
|             }
 | |
| 
 | |
|         .ctl_button {
 | |
|             font-family: 'CalciteWebCoreIcons';
 | |
|             display: block;
 | |
|             margin: 6px auto;
 | |
|             width: 60px;
 | |
|             height: 22px;
 | |
|             line-height: 21px;
 | |
|             padding: 0;
 | |
|         }
 | |
| 
 | |
|         .machine_filter {
 | |
|             height: 32px;
 | |
|             line-height: 32px;
 | |
|         }
 | |
| 
 | |
|             .machine_filter select {
 | |
|                 height: 23px;
 | |
|                 min-width: 100px;
 | |
|                 max-width: 300px;
 | |
|             }
 | |
| 
 | |
|             .machine_filter span {
 | |
|                 margin-left: 8px;
 | |
|             }
 | |
| 
 | |
|         .ybutton {
 | |
|             width: auto;
 | |
|             line-height: normal;
 | |
|             margin-left: 6px;
 | |
|             border: none;
 | |
|             background: rgb(249, 189, 117);
 | |
|             padding: 5px 14px;
 | |
|             cursor: pointer;
 | |
|         }
 | |
| 
 | |
|             .ybutton:hover {
 | |
|                 background: #d7690E;
 | |
|             }
 | |
| 
 | |
|         .machines {
 | |
|             /*table-layout: fixed;*/
 | |
|             word-break: keep-all;
 | |
|         }
 | |
| 
 | |
|             .machines td {
 | |
|                 padding-right: 5px;
 | |
|                 white-space: nowrap;
 | |
|             }
 | |
| 
 | |
|         .middlechk {
 | |
|             width: auto;
 | |
|             height: 13px;
 | |
|             margin-top: 0px;
 | |
|             margin-bottom: 1px;
 | |
|             vertical-align: middle;
 | |
|         }
 | |
|     </style>
 | |
|     <script src="<%=GetFileUrlWithVersion("../js/vue.min.js")%>" type="text/javascript"></script>
 | |
|     <script>Vue.config.productionTip = false; Vue.config.silent = true;</script>
 | |
|     <script src="<%=GetFileUrlWithVersion("../js/components/datagrid.js")%>" type="text/javascript"></script>
 | |
|     <script>
 | |
| 
 | |
|         var jobsitetoleranceCtrl;
 | |
| 
 | |
|         curfewquery = function (method, param, callback, error, nolog) {
 | |
|             _network.request("Security/CurfewMovementTolerance.aspx", -1, method, param, callback, error || function (e) {
 | |
|                 showAlert(GetTextByKey("P_CMT_FAILEDTOLOADDATA", 'Failed to load data: ') + e.statusText, GetTextByKey("P_CMT_SCHEDULEASSETS", 'Schedule Assets'));
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         function getText(s, flag) {
 | |
|             return (s == null)
 | |
|                 ? (flag ? '<i>null</i>' : '')
 | |
|                 : htmlencode(s, $('#span_text_holder')).replace(/ /g, ' ');
 | |
|         }
 | |
| 
 | |
|         function trim_str(s) {
 | |
|             if (s == null)
 | |
|                 return "";
 | |
|             else
 | |
|                 return s.replace(/(^\s*)|(\s*$)/g, "");
 | |
|         }
 | |
| 
 | |
| 
 | |
|         var _tolerancedata;
 | |
| 
 | |
|         if (typeof jobsitetoleranceCtrl !== 'function') {
 | |
|             $jobsitetoleranceCtrl = function jobsitetoleranceCtrl() {
 | |
|                 this.tmpobj = {
 | |
|                     typeformat: undefined,
 | |
|                     paramsTable: null,
 | |
|                     table: null,
 | |
|                     pivotFields: null,
 | |
|                     pluginDT: null,
 | |
|                     pluginColumns: null,
 | |
|                     chart: null,
 | |
|                     tableList: null
 | |
|                 };
 | |
|                 this.wizardCtrl = null;
 | |
|                 this.vue = null;
 | |
|             };
 | |
| 
 | |
|             (function () {
 | |
|                 'use strict';
 | |
|                 setPageTitle(GetTextByKey("P_CURFEWMOVEMENTTOLERANCE", 'Curfew Movement Tolerance'), true);
 | |
| 
 | |
|                 var dataGrid = window.DataGrid || window['g5-datagrid'];
 | |
| 
 | |
|                 $jobsitetoleranceCtrl.prototype.getData = function (/*dataObj, tmpdata*/) {
 | |
|                     return this.vue.source;
 | |
|                 };
 | |
| 
 | |
|                 $jobsitetoleranceCtrl.prototype.setData = function (jobsitedata) {
 | |
|                     if (jobsitedata) {
 | |
|                         for (var i = 0; i < jobsitedata.length; i++) {
 | |
|                             var a = jobsitedata[i];
 | |
|                             //a.Selected = false;
 | |
|                             if (a.Highlight == undefined)
 | |
|                                 a.Highlight = false;
 | |
|                         }
 | |
|                     }
 | |
|                     this.vue.source = jobsitedata ? jobsitedata : [];
 | |
|                 };
 | |
| 
 | |
|                 $jobsitetoleranceCtrl.prototype.reload = function () {
 | |
|                     this.vue.$refs.grid.reload()
 | |
|                 };
 | |
| 
 | |
|                 $jobsitetoleranceCtrl.prototype.Init = function (parent, isassigned) {
 | |
|                     var ethis = this;
 | |
|                     var defaultPivot = function () {
 | |
|                         //this.InnerID = $.newGuid();
 | |
|                     };
 | |
|                     //加载子页面模版
 | |
|                     parent.load('../template/JobsiteToleranceCtrl.html?v=7&sn' + Math.random(), function () {
 | |
|                         ethis.vue = new Vue({
 | |
|                             el: parent.find('.JobsiteToleranceCtrl')[0],
 | |
|                             components: {
 | |
|                                 'data-grid': dataGrid
 | |
|                             },
 | |
|                             data: {
 | |
|                                 //tableResult: tableResult,
 | |
|                                 wnd: window.parent,
 | |
|                                 editable: true,
 | |
|                                 columns: [],
 | |
|                                 pivotLinkage: false,
 | |
|                                 source: [],
 | |
|                                 showLinkPivot: false,
 | |
|                                 defaultConstructor: defaultPivot,
 | |
|                                 defaultItemProps: {
 | |
|                                 }
 | |
|                             },
 | |
|                             computed: {
 | |
|                                 btUpTitle: function () {
 | |
|                                     return "Move selected line up";
 | |
|                                 },
 | |
|                                 btDownTitle: function () {
 | |
|                                     return "Move selected line down";
 | |
|                                 },
 | |
|                                 btDelTitle: function () {
 | |
|                                     return 'Delete selected lines';
 | |
|                                 }
 | |
|                             },
 | |
|                             watch: {
 | |
|                                 source: function (val) {
 | |
|                                 }
 | |
|                             },
 | |
|                             methods: {
 | |
|                                 cellvaluechanged: function (item, key) {
 | |
|                                 },
 | |
|                                 rowdblclick: function (e) {
 | |
|                                 }
 | |
|                             }
 | |
|                         });
 | |
|                         ethis.vue.columns = createGridColumn(ethis, isassigned);
 | |
|                         if (_tolerancedata && jobsitetoleranceCtrl) {
 | |
|                             jobsitetoleranceCtrl.setData(_tolerancedata.JobSites);
 | |
|                         }
 | |
|                     });
 | |
| 
 | |
|                 };
 | |
| 
 | |
|                 function createGridColumn(ethis, isassigned) {
 | |
|                     var editable = false;
 | |
|                     var columns = [
 | |
|                         {
 | |
|                             key: 'JobSiteName',
 | |
|                             caption: GetTextByKey("P_CMT_JOBSITES", 'Jobsite'),
 | |
|                             type: dataGrid.COLUMN_TYPE.lable,
 | |
|                             width: 800,
 | |
|                             orderable: false,
 | |
|                             resizable: false,
 | |
|                             enabled: editable
 | |
|                         },
 | |
|                         {
 | |
|                             key: 'Tolerance',
 | |
|                             caption: GetTextByKey("P_CMT_TOLERANCE", 'Tolerance'),
 | |
|                             type: dataGrid.COLUMN_TYPE.input,
 | |
|                             width: 150,
 | |
|                             orderable: false,
 | |
|                             resizable: false,
 | |
|                             visible: true,
 | |
|                             attrs: { 'maxlength': 8 }
 | |
|                         }
 | |
|                     ];
 | |
| 
 | |
|                     return columns;
 | |
|                 }
 | |
|             }());
 | |
|         }
 | |
| 
 | |
|         function OnRefresh() {
 | |
|             showloading(true);
 | |
| 
 | |
|             curfewquery("GetCurfewMovementTolerance", '', function (data) {
 | |
|                 showloading(false);
 | |
|                 if (typeof (data) === "string") {
 | |
|                     showAlert(data, GetTextByKey("P_CMT_ERROR", 'Error'));
 | |
|                     return;
 | |
|                 }
 | |
|                 _tolerancedata = data;
 | |
|                 $('#dialog_defaulttolerance').val(_tolerancedata.DefaultTolerance);
 | |
|                 if (jobsitetoleranceCtrl && jobsitetoleranceCtrl.vue) {
 | |
|                     jobsitetoleranceCtrl.setData(_tolerancedata.JobSites);
 | |
|                 }
 | |
|             }, function (err) {
 | |
|                 showloading(false);
 | |
|             });
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
|         function OnSave() {
 | |
|             var defaulttolerance = $.trim($('#dialog_defaulttolerance').val());
 | |
|             var alerttitle = GetTextByKey("P_CMT_SAVESAVECURFEWMOVEMENTTOLERANCE", "Save Curfew Movement Tolerance");
 | |
| 
 | |
|             if (defaulttolerance !== "" && isNaN(defaulttolerance)) {
 | |
|                 showAlert(GetTextByKey("P_CMT_DEFAULTTOLERANCEFORMATERROR", 'Default Tolerance format error.'), alerttitle);
 | |
|                 return;
 | |
|             }
 | |
|             var jobsite = [];
 | |
|             if (_tolerancedata.JobSites && _tolerancedata.JobSites.length > 0) {
 | |
|                 for (var i = 0; i < _tolerancedata.JobSites.length; i++) {
 | |
|                     var js = _tolerancedata.JobSites[i];
 | |
|                     if (js.Tolerance !== "" && isNaN(js.Tolerance)) {
 | |
|                         showAlert(GetTextByKey("P_CMT_JOBSITETOLERANCEFORMATERROR", 'Jobsite Tolerance format error.'), alerttitle);
 | |
|                         return;
 | |
|                     }
 | |
|                     else {
 | |
|                         var jsitem = {
 | |
|                             'JobSiteId': js.JobSiteId,
 | |
|                             'Tolerance': js.Tolerance
 | |
|                         };
 | |
|                         if (jsitem.Tolerance === "")
 | |
|                             jsitem.Tolerance = 0;
 | |
|                         jobsite.push(jsitem);
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             var item = {
 | |
|                 'DefaultTolerance': defaulttolerance,
 | |
|                 'JobSites': jobsite
 | |
|             };
 | |
|             if (item.DefaultTolerance === "")
 | |
|                 item.DefaultTolerance = 0;
 | |
| 
 | |
|             var param = JSON.stringify(item);
 | |
|             param = htmlencode(param);
 | |
|             curfewquery('UpdateCurfewMovementTolerance', param, function (data) {
 | |
|                 if (data !== 'OK') {
 | |
|                     showAlert(data, alerttitle);
 | |
|                 } else {
 | |
|                     showAlert(GetTextByKey("P_CMT_SAVSUCCESSFULLY", 'Saved Successfully.'), alerttitle);
 | |
|                     //OnRefresh();
 | |
|                 }
 | |
|             }, function (err) {
 | |
|                 showAlert(GetTextByKey("P_CMT_FAILEDTOSAVECURFEWMOVEMENTTOLERANCE", 'Failed to save curfew movement tolerance.'), alerttitle);
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         $(function () {
 | |
|             jobsitetoleranceCtrl = new $jobsitetoleranceCtrl();
 | |
|             jobsitetoleranceCtrl.Init($("#tolerancelist"), false);
 | |
| 
 | |
|             OnRefresh();
 | |
| 
 | |
|             $(window).resize(function () {
 | |
|                 $("#tolerancelist").css("height", $(window).height() - $("#tolerancelist").offset().top - 10);
 | |
|             }).resize();
 | |
| 
 | |
|         });
 | |
| 
 | |
|     </script>
 | |
| </asp:Content>
 | |
| <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
 | |
|     <div style="min-width: 400px;">
 | |
|         <div class="page_title" data-lgid="P_CURFEWMOVEMENTTOLERANCE">Curfew Movement Tolerance</div>
 | |
|         <div class="function_title">
 | |
|             <span class="sbutton iconsave" onclick="OnSave();" data-lgid="P_CMT_SAVE">Save</span>
 | |
|             <span class="sbutton iconrefresh" onclick="OnRefresh();" data-lgid="P_CMT_REFRESH">Refresh</span>
 | |
|         </div>
 | |
|         <div class="clear"></div>
 | |
|         <div>
 | |
|             <table style="margin-top: 3px; margin-bottom: 3px;">
 | |
|                 <tr>
 | |
|                     <td class="label" data-lgid="P_CMT_DEFAULTTOILERANCE">Default Tolerance:</td>
 | |
|                     <td>
 | |
|                         <input type="text" id="dialog_defaulttolerance" maxlength="8" autocomplete="off" /></td>
 | |
|                 </tr>
 | |
|             </table>
 | |
|         </div>
 | |
|         <div id="tolerancelist"></div>
 | |
|         <div id="mask_bg" style="display: none;">
 | |
|             <div class="loading c-spin"></div>
 | |
|         </div>
 | |
|     </div>
 | |
| </asp:Content>
 |