add site
This commit is contained in:
891
Site/JobSite/JobsiteLimitManagement.aspx
Normal file
891
Site/JobSite/JobsiteLimitManagement.aspx
Normal file
@ -0,0 +1,891 @@
|
||||
<%@ Page Title="" Language="C#" MasterPageFile="~/IronIntelMasterPage.master" AutoEventWireup="true" CodeFile="JobsiteLimitManagement.aspx.cs" Inherits="JobsiteLimitManagement" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="holder_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;
|
||||
}
|
||||
|
||||
#dialog_machinegroup {
|
||||
z-index: 500;
|
||||
width: 870px;
|
||||
top: 60px;
|
||||
left: 150px;
|
||||
}
|
||||
|
||||
.inputbox {
|
||||
width: 500px;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.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>
|
||||
var IsDealer = <%=IsDealer ?"true":"false"%>;
|
||||
var IsAdmin =<%=IsAdmin ?"true":"false"%>;
|
||||
jobsitelimitquery = function (method, param, callback, error, nolog) {
|
||||
_network.request("JobSite/JobsiteLimitManagement.aspx", -1, method, param, callback, error || function (e) {
|
||||
showAlert(GetTextByKey("P_M3_FAILEDTOLOADDATA", 'Failed to load data: {0}').replace('{0}', e.statusText), GetTextByKey("P_M3_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, "");
|
||||
}
|
||||
|
||||
|
||||
/***************************jobsite limit***************************/
|
||||
|
||||
function OnDelete(jl) {
|
||||
if (!jl) {
|
||||
return;
|
||||
}
|
||||
var contractorid = htmlencode($.trim($('#sel_contractor').val()));
|
||||
showConfirm(GetTextByKey("P_M3_DOYOUWANTTODELETETHEJOBSITELIMIT", 'Do you want to delete the Jobsite limit?'), GetTextByKey("P_M3_DELETEJOBSITELIMITCONFIGURATION", 'Delete jobsite limit configuration'), function () {
|
||||
jobsitelimitquery("DeleteJobsiteLimit", contractorid + String.fromCharCode(170) + jl.ID, function (data) {
|
||||
OnRefresh();
|
||||
}, function (err) {
|
||||
showAlert(GetTextByKey("P_M3_FAILEDTODELETETHISJOBSITELIMIT", 'Failed to delete this jobsite limit.'), GetTextByKey("P_M3_DELETEJOBSITELIMITCONFIGURATION", 'Delete jobsite limit configuration'));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function ShowDialog(type) {
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_jobsitelimit')
|
||||
.attr('act', type)
|
||||
.showDialogRight1(450);
|
||||
}
|
||||
|
||||
//执行iframe中函数
|
||||
var doIFrameFunc = function (v_mymethod, v_params, v_frmName) {
|
||||
if (document.getElementById(v_frmName)) {
|
||||
|
||||
var fn = document.getElementById(v_frmName).contentWindow[v_mymethod];
|
||||
|
||||
if (fn) {
|
||||
if (v_params == null)
|
||||
return fn();
|
||||
else {
|
||||
return fn.apply(this, v_params);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function CloseDialog(type) {
|
||||
$('#dialog_jobsitelimit').hideDialog();
|
||||
OnRefresh();
|
||||
}
|
||||
|
||||
function OnAdd() {
|
||||
var contractorid = htmlencode($.trim($('#sel_contractor').val()));
|
||||
doIFrameFunc("init", [contractorid], "iframejobsitelimit");
|
||||
ShowDialog("add");
|
||||
}
|
||||
|
||||
var jlid;
|
||||
function OnEdit() {
|
||||
var jl = grid_dt.source[grid_dt.selectedIndex].Values;
|
||||
if (!jl) {
|
||||
jlid = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
jlid = jl.ID;
|
||||
|
||||
var contractorid = htmlencode($.trim($('#sel_contractor').val()));
|
||||
doIFrameFunc("init", [contractorid, jl], "iframejobsitelimit");
|
||||
ShowDialog("edit");
|
||||
}
|
||||
|
||||
function OnDblClick(e) {
|
||||
OnEdit();
|
||||
}
|
||||
|
||||
function OnRefresh() {
|
||||
showloading(true);
|
||||
|
||||
var contractorid = htmlencode($.trim($('#sel_contractor').val()));
|
||||
var searchtxt = "";
|
||||
searchtxt = htmlencode($.trim($('#searchinputtxt').val()));
|
||||
|
||||
jobsitelimitquery("GetJobsiteLimits", contractorid + String.fromCharCode(170) + searchtxt, function (data) {
|
||||
showloading(false);
|
||||
if (typeof (data) === "string") {
|
||||
showAlert(data, GetTextByKey("P_M3_ERROR", 'Error'));
|
||||
return;
|
||||
}
|
||||
|
||||
showJobsiteLimitList(data);
|
||||
}, function (err) {
|
||||
showloading(false);
|
||||
});
|
||||
}
|
||||
|
||||
//admin用户 获取所有contractor
|
||||
function getContractors() {
|
||||
devicerequest('GetContractors', '', function (data) {
|
||||
if (typeof (data) === "string") {
|
||||
showAlert(data, GetTextByKey("P_M3_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);
|
||||
}
|
||||
}
|
||||
OnRefresh();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//普通用户 获取可操作的contractor
|
||||
function GetContractorsByUser() {
|
||||
devicerequest('GetContractorsByUser', '', function (data) {
|
||||
if (typeof (data) === "string") {
|
||||
showAlert(data, GetTextByKey("P_M3_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);
|
||||
}
|
||||
}
|
||||
|
||||
OnRefresh();
|
||||
});
|
||||
}
|
||||
|
||||
function showJobsiteLimitList(data) {
|
||||
var rows = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var r = data[i];
|
||||
for (var j in r) {
|
||||
if (j === "Active") {
|
||||
r[j] = { DisplayValue: r.Active ? "Yes" : "No", Value: r[j] };
|
||||
}
|
||||
}
|
||||
var fr = { Values: r };
|
||||
rows.push(fr);
|
||||
}
|
||||
|
||||
grid_dt.setData(rows);
|
||||
}
|
||||
var grid_dt;
|
||||
function InitGridData() {
|
||||
grid_dt = new GridView('#jobsitelimitlist');
|
||||
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: 'ID', caption: GetTextByKey("P_M3_ID", "ID"), valueIndex: 'ID', css: { 'width': 40, 'text-align': 'left' } },
|
||||
{ name: 'JobSiteName', caption: GetTextByKey("P_M3_JOBSITENAME", "Jobsite Name"), valueIndex: 'JobSiteName', css: { 'width': 200, 'text-align': 'left' } },
|
||||
{ name: 'Active', caption: GetTextByKey("P_M3_ACTIVE", "Active"), valueIndex: 'Active', allowFilter: true, css: { 'width': 70, 'text-align': 'left' } },
|
||||
{ name: 'StartTime', caption: GetTextByKey("P_M3_STARTTIME", "Start Time"), valueIndex: 'StartTime', css: { 'width': 70, 'text-align': 'left' } },
|
||||
{ name: 'EndTime', caption: GetTextByKey("P_M3_ENDTIME", "End Time"), valueIndex: 'EndTime', css: { 'width': 70, 'text-align': 'left' } },
|
||||
{ name: 'MinTrucks', caption: GetTextByKey("P_M3_ACCEPTABLEMINIMUMTRUCKS", "Acceptable Minimum Trucks"), valueIndex: 'MinTrucks', css: { 'width': 170, 'text-align': 'left' } },
|
||||
{ name: 'MaxTrucks', caption: GetTextByKey("P_M3_ACCEPTABLEMAXIMUMTRUCKS", "Acceptable Maximum Trucks"), valueIndex: 'MaxTrucks', css: { 'width': 170, 'text-align': 'left' } },
|
||||
{ name: 'AssetTypeNames', caption: GetTextByKey("P_M3_ACCEPTABLEASSETTYPES", "Acceptable Asset Types"), valueIndex: 'AssetTypeNames', css: { 'width': 200, 'text-align': 'left' } },
|
||||
{ name: 'Notes', caption: GetTextByKey("P_M3_NOTES", "Notes"), valueIndex: 'Notes', css: { 'width': 200, 'text-align': 'left' } },
|
||||
{ name: 'Subscribe', caption: "", css: { 'width': 30, 'text-align': 'center' } },
|
||||
{ name: 'Edit', caption: "", css: { 'width': 30, 'text-align': 'center' } },
|
||||
{ name: 'Delete', caption: "", 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.allowFilter = list_columns[hd].allowFilter;
|
||||
col.key = list_columns[hd].valueIndex;
|
||||
if (col.name === "Active") {
|
||||
col.filterSource = [{ Value: true, DisplayValue: 'Yes' }, { Value: false, DisplayValue: 'No' }];
|
||||
}
|
||||
else if (col.name === "Edit") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf044";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
OnEdit()
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
}
|
||||
col.attrs = { 'title': GetTextByKey("P_M3_EDIT", 'Edit') };
|
||||
}
|
||||
else if (col.name === "Delete") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf00d";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
OnDelete(this);
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
};
|
||||
col.attrs = { 'title': GetTextByKey("P_M3_DELETE", 'Delete') };
|
||||
}
|
||||
else if (col.name === "Subscribe") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf0e0";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
OnSubscribe(this);
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
};
|
||||
col.attrs = { 'title': GetTextByKey("P_M3_SUBSCRIBECONTACTS", 'Subscribe Contacts') };
|
||||
}
|
||||
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) {
|
||||
curfewid = rowdata.Values.CurfewID;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(function () {
|
||||
setPageTitle(GetTextByKey("P_OVERUNDERTRUCKINGALERTSCONFIGURATION", "Over/Under Trucking Alerts Configuration"), true);
|
||||
setFavoriteDisplay(true, 550);
|
||||
|
||||
InitGridData();
|
||||
InitGridAvailableContacts();
|
||||
InitGridSelectedContacts();
|
||||
|
||||
if (IsDealer == true) {
|
||||
$('#span_contractor').css('display', '');
|
||||
if (IsAdmin)
|
||||
getContractors();
|
||||
else {
|
||||
GetContractorsByUser();
|
||||
}
|
||||
}
|
||||
else
|
||||
OnRefresh();
|
||||
|
||||
$("#sel_contractor").change(function () {
|
||||
OnRefresh();
|
||||
});
|
||||
|
||||
$('#dialog_subscribecontacts').dialog(function () {
|
||||
$('#mask_bg').hide();
|
||||
});
|
||||
$('#btnsubscribefilter').click(getMatchAvailableContacts);
|
||||
$('#chk_showallassignedcontacts').click(getMatchSelectedContacts);
|
||||
|
||||
$('#searchinputtxt').keydown(searchEnter);
|
||||
$(window).resize(function () {
|
||||
$("#jobsitelimitlist").css("height", $(window).height() - $("#jobsitelimitlist").offset().top - 4);
|
||||
grid_dt && grid_dt.resize();
|
||||
}).resize();
|
||||
|
||||
});
|
||||
|
||||
function searchEnter(e) {
|
||||
if (e.keyCode == 13 || e.keyCode == 9) {
|
||||
OnRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
/************************** Subscribe Contacts********************************/
|
||||
/*************************************************************************/
|
||||
|
||||
var allContacts;
|
||||
var _availableContacts = [];
|
||||
var _selectedContacts = [];
|
||||
var _showSelectedContacts = [];
|
||||
function OnSubscribe(jl) {
|
||||
if (!jl) return;
|
||||
|
||||
$('#chk_showallassignedcontacts').prop('checked', false);
|
||||
$('#txt_contact_key').val('');
|
||||
jlid = jl.ID;
|
||||
|
||||
var title = GetTextByKey("P_M3_SUBSCRIBECONTACTS", "Subscribe Contacts");
|
||||
$('#dialog_subscribecontacts .dialog-title span.title').html(title);
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_subscribecontacts')
|
||||
.css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_subscribecontacts').height()) / 5,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_subscribecontacts').width()) / 2
|
||||
}).showDialog();
|
||||
|
||||
GetSelectedContacts();
|
||||
}
|
||||
|
||||
// 获取已选中的Contacts
|
||||
function GetSelectedContacts() {
|
||||
_selectedContacts = [];
|
||||
$("#subscribedialogmask").show();
|
||||
jobsitelimitquery('GetSelectedContacts', jlid, function (data) {
|
||||
if (typeof data === "string") {
|
||||
showAlert(data, GetTextByKey("P_M3_SUBSCRIBECONTACTS", "Subscribe Contacts"));
|
||||
return;
|
||||
}
|
||||
_selectedContacts = data;
|
||||
queryContacts();
|
||||
}, function (e) {
|
||||
$("#subscribedialogmask").hide();
|
||||
});
|
||||
}
|
||||
|
||||
function queryContacts() {
|
||||
$('#btnsubscribefilter').prop('disabled', true);
|
||||
setTimeout(function () {
|
||||
$('#btnsubscribefilter').prop('disabled', false);
|
||||
}, 1000);
|
||||
|
||||
_availableContacts = [];
|
||||
$("#subscribedialogmask").show();
|
||||
jobsitelimitquery('GetContactList', '', function (data) {
|
||||
if (typeof data === "string") {
|
||||
showAlert(data, GetTextByKey("P_M3_SUBSCRIBECONTACTS", "Subscribe Contacts"));
|
||||
return;
|
||||
}
|
||||
allContacts = data;
|
||||
getMatchAvailableContacts();
|
||||
$("#subscribedialogmask").hide();
|
||||
}, function (e) {
|
||||
$("#subscribedialogmask").hide();
|
||||
});
|
||||
}
|
||||
|
||||
function getMatchAvailableContacts() {
|
||||
getMatchSelectedContacts();
|
||||
|
||||
var selected = [];
|
||||
for (var i = 0; i < _showSelectedContacts.length; i++) {
|
||||
var c = _showSelectedContacts[i];
|
||||
selected.push(c.IID);
|
||||
}
|
||||
var filter = $('#txt_contact_key').val().toLowerCase();
|
||||
|
||||
_availableContacts = [];
|
||||
for (var i = 0; i < allContacts.length; i++) {
|
||||
var c = allContacts[i];
|
||||
if ((filter == "" || c.DisplayName.toLowerCase().indexOf(filter) >= 0)
|
||||
&& $.inArray(c.IID, selected) < 0) {
|
||||
_availableContacts.push(c);
|
||||
}
|
||||
}
|
||||
showAvailableContact(_availableContacts);
|
||||
}
|
||||
|
||||
function getMatchSelectedContacts() {
|
||||
var filter = $('#txt_contact_key').val().toLowerCase();
|
||||
var showallassigned = $('#chk_showallassignedcontacts').prop('checked');
|
||||
|
||||
_showSelectedContacts = [];
|
||||
var unMatched = [];
|
||||
for (var i = 0; i < _selectedContacts.length; i++) {
|
||||
var c = _selectedContacts[i];
|
||||
c.Highlight = false;
|
||||
if (filter == "" || c.DisplayName.toLowerCase().indexOf(filter) >= 0) {
|
||||
matched = true;
|
||||
c.Highlight = showallassigned && filter !== "";
|
||||
_showSelectedContacts.push(c);
|
||||
}
|
||||
else if (showallassigned)
|
||||
unMatched.push(c);
|
||||
}
|
||||
|
||||
for (var i in unMatched)
|
||||
_showSelectedContacts.push(unMatched[i]);
|
||||
|
||||
showSelectedContact(_showSelectedContacts);
|
||||
}
|
||||
|
||||
function showContacts() {
|
||||
showAvailableContact(_availableContacts);
|
||||
showSelectedContact(_showSelectedContacts);
|
||||
}
|
||||
|
||||
function showAvailableContact(data) {
|
||||
var rows = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var r = data[i];
|
||||
var fr = { Values: r };
|
||||
rows.push(fr);
|
||||
}
|
||||
|
||||
grid_dtac.setData(rows);
|
||||
}
|
||||
|
||||
function showSelectedContact(data) {
|
||||
var rows = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var r = data[i];
|
||||
var fr = { Values: r };
|
||||
rows.push(fr);
|
||||
}
|
||||
|
||||
grid_dtsc.setData(rows);
|
||||
}
|
||||
|
||||
|
||||
var grid_dtac;
|
||||
function InitGridAvailableContacts() {
|
||||
grid_dtac = new GridView('#availablecontacts');
|
||||
grid_dtac.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var list_columns = [
|
||||
{ name: 'DisplayName', caption: GetTextByKey("P_M3_CONTACTNAME", "Contact Name"), valueIndex: 'DisplayName', css: { 'width': 240, 'text-align': 'left' } },
|
||||
{ name: 'ContactTypeName', caption: GetTextByKey("P_M3_CONTACTTYPE", "Contact Type"), valueIndex: 'ContactTypeName', css: { 'width': 150, 'text-align': 'left' } },
|
||||
];
|
||||
var columns = [];
|
||||
// head
|
||||
for (var hd in list_columns) {
|
||||
var col = {};
|
||||
col.name = list_columns[hd].name;
|
||||
col.caption = list_columns[hd].caption;
|
||||
col.visible = true;
|
||||
col.sortable = true;
|
||||
col.width = list_columns[hd].css.width;
|
||||
col.align = list_columns[hd].css["text-align"]
|
||||
col.key = list_columns[hd].valueIndex;
|
||||
columns.push(col);
|
||||
}
|
||||
grid_dtac.canMultiSelect = true;
|
||||
grid_dtac.columns = columns;
|
||||
grid_dtac.init();
|
||||
grid_dtac.rowdblclick = function (rowindex) {
|
||||
var rowdata = grid_dtac.source[rowindex];
|
||||
if (rowdata) {
|
||||
var contact = rowdata.Values;
|
||||
_availableContacts.splice(_availableContacts.indexOf(contact), 1);
|
||||
_selectedContacts.push(contact);
|
||||
_showSelectedContacts.push(contact);
|
||||
|
||||
showContacts();
|
||||
}
|
||||
};
|
||||
|
||||
grid_dtac.selectedrowchanged = function (rowindex) {
|
||||
var rowdata = grid_dtac.source[rowindex];
|
||||
if (rowdata) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var grid_dtsc;
|
||||
function InitGridSelectedContacts() {
|
||||
grid_dtsc = new GridView('#selectedcontacts');
|
||||
grid_dtsc.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var list_columns = [
|
||||
{ name: 'DisplayName', caption: GetTextByKey("P_M3_CONTACTNAME", "Contact Name"), valueIndex: 'DisplayName', css: { 'width': 240, 'text-align': 'left' } },
|
||||
{ name: 'ContactTypeName', caption: GetTextByKey("P_M3_CONTACTTYPE", "Contact Type"), valueIndex: 'ContactTypeName', css: { 'width': 150, 'text-align': 'left' } },
|
||||
];
|
||||
var columns = [];
|
||||
// head
|
||||
for (var hd in list_columns) {
|
||||
var col = {};
|
||||
col.name = list_columns[hd].name;
|
||||
col.caption = list_columns[hd].caption;
|
||||
col.visible = true;
|
||||
col.sortable = true;
|
||||
col.width = list_columns[hd].css.width;
|
||||
col.align = list_columns[hd].css["text-align"]
|
||||
col.key = list_columns[hd].valueIndex;
|
||||
col.styleFilter = function (item) {
|
||||
if (item.Highlight)
|
||||
return { 'background-color': 'yellow' };
|
||||
}
|
||||
columns.push(col);
|
||||
}
|
||||
grid_dtsc.canMultiSelect = true;
|
||||
grid_dtsc.columns = columns;
|
||||
grid_dtsc.init();
|
||||
grid_dtsc.rowdblclick = function (rowindex) {
|
||||
var rowdata = grid_dtsc.source[rowindex];
|
||||
if (rowdata) {
|
||||
var contact = rowdata.Values;
|
||||
_selectedContacts.splice(_selectedContacts.indexOf(contact), 1);
|
||||
_showSelectedContacts.splice(_showSelectedContacts.indexOf(contact), 1);
|
||||
_availableContacts.push(contact);
|
||||
|
||||
showContacts();
|
||||
}
|
||||
};
|
||||
|
||||
grid_dtsc.selectedrowchanged = function (rowindex) {
|
||||
var rowdata = grid_dtsc.source[rowindex];
|
||||
if (rowdata) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function OnContactEditorAdd() {
|
||||
var indexs = grid_dtac.selectedIndexes;
|
||||
if (indexs.length <= 0)
|
||||
return;
|
||||
for (var i = 0; i < indexs.length; i++) {
|
||||
var index = indexs[i];
|
||||
var c = grid_dtac.source[index].Values;
|
||||
_availableContacts.splice(_availableContacts.indexOf(c), 1);
|
||||
_selectedContacts.push(c);
|
||||
_showSelectedContacts.push(c);
|
||||
}
|
||||
showContacts();
|
||||
}
|
||||
function OnContactEditorAddAll() {
|
||||
for (var i = 0; i < _availableContacts.length; i++) {
|
||||
var c = _availableContacts[i];
|
||||
_selectedContacts.push(c);
|
||||
_showSelectedContacts.push(c);
|
||||
}
|
||||
_availableContacts = [];
|
||||
showContacts();
|
||||
}
|
||||
function OnContactEditorRemove() {
|
||||
var indexs = grid_dtsc.selectedIndexes;
|
||||
if (indexs.length <= 0)
|
||||
return;
|
||||
for (var i = 0; i < indexs.length; i++) {
|
||||
var index = indexs[i];
|
||||
var c = grid_dtsc.source[index].Values;
|
||||
_selectedContacts.splice(_selectedContacts.indexOf(c), 1);
|
||||
_showSelectedContacts.splice(_showSelectedContacts.indexOf(c), 1);
|
||||
_availableContacts.push(c);
|
||||
}
|
||||
showContacts();
|
||||
}
|
||||
function OnContactEditorRemoveAll() {
|
||||
for (var i = 0; i < _showSelectedContacts.length; i++) {
|
||||
var c = _showSelectedContacts[i];
|
||||
_selectedContacts.splice(_selectedContacts.indexOf(c), 1);
|
||||
_availableContacts.push(c);
|
||||
}
|
||||
_showSelectedContacts = [];
|
||||
showContacts();
|
||||
}
|
||||
|
||||
function OnSaveSubscribeContacts() {
|
||||
var uids = [];
|
||||
for (var i = 0; i < _selectedContacts.length; i++) {
|
||||
var j = _selectedContacts[i];
|
||||
uids.push(j.IID);
|
||||
}
|
||||
|
||||
showloading(true);
|
||||
jobsitelimitquery("SaveSubscribeContacts", jlid + String.fromCharCode(170) + JSON.stringify(uids), function (data) {
|
||||
showloading(false);
|
||||
if (data !== 'OK') {
|
||||
showAlert(data, GetTextByKey("P_M3_SUBSCRIBECONTACTS", "Subscribe Contacts"));
|
||||
} else {
|
||||
$('#dialog_subscribecontacts').hideDialog();
|
||||
OnRefresh();
|
||||
}
|
||||
}, function (err) {
|
||||
console.log(err);
|
||||
showloading(false);
|
||||
showAlert(GetTextByKey("P_M3_FAILEDTOSAVESUBSCRIBECONTACTS", 'Failed to save subscribe contacts.'), GetTextByKey("P_M3_SUBSCRIBECONTACTS", "Subscribe Contacts"));
|
||||
});
|
||||
}
|
||||
|
||||
/**************************End Subscribe Contacts********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
</script>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="holder_content" runat="Server">
|
||||
<div style="min-width: 400px;">
|
||||
<div class="page_title" data-lgid="P_OVERUNDERTRUCKINGALERTSCONFIGURATION">Over/Under Trucking Alerts Configuration</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_M3_CONTRACTOR_COLON">Contractor:</span>
|
||||
<select id="sel_contractor"></select></span>
|
||||
<input type="text" id="searchinputtxt" autocomplete="off" />
|
||||
<input class="search" type="button" onclick="OnRefresh();" value="Search" data-lgid="P_M3_SEARCH" style="margin-left: 5px;" />
|
||||
</div>
|
||||
<div class="function_title">
|
||||
<span class="sbutton iconadd" onclick="OnAdd();" data-lgid="P_M3_ADD">Add</span>
|
||||
<span class="sbutton iconrefresh" onclick="OnRefresh();" data-lgid="P_M3_REFRESH">Refresh</span>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div id="jobsitelimitlist"></div>
|
||||
<div id="mask_bg" style="display: none;">
|
||||
<div class="loading c-spin"></div>
|
||||
</div>
|
||||
<div class="dialog" id="dialog_jobsitelimit" style="display: none; height: 100%; border-bottom: 0; border-top: 0;">
|
||||
<iframe id="iframejobsitelimit" src="AddJobsiteLimit.aspx" style="width: 100%; height: 100%; display: block; border: none;"></iframe>
|
||||
<div class="maskbg" style="display: none;"></div>
|
||||
</div>
|
||||
|
||||
<div class="dialog" id="dialog_subscribecontacts" style="display: none;">
|
||||
<div id="subscribedialogmask" class="maskbg" style="display: none; z-index: 1;">
|
||||
<div class="loading_icon icon c-spin"></div>
|
||||
</div>
|
||||
<div class="dialog-title"><span class="title" data-lgid="P_M3_SUBSCRIBECONTACTS">Subscribe Contacts</span><em class="dialog-close"></em></div>
|
||||
|
||||
<div class="machine_filter">
|
||||
<input type="text" id="txt_contact_key" style="margin-left: 8px; width: 280px;" tabindex="40" />
|
||||
<input type="button" class="ybutton" id="btnsubscribefilter" value="Filter" data-lgid="P_M3_FILTER" tabindex="42" />
|
||||
</div>
|
||||
|
||||
<div class="div_machines">
|
||||
<table class="table_holder">
|
||||
<thead>
|
||||
<tr>
|
||||
<td data-lgid="P_M3_AVAILABLECONTACTS">Available Contacts</td>
|
||||
<td></td>
|
||||
<td data-lgid="P_M3_ASSIGNEDCONTACTS">Assigned Contacts
|
||||
<input type="checkbox" id="chk_showallassignedcontacts" title="When checked, all associated or linked items will display regardless of filter. " data-title-lgid="P_M3_SHOWALLASSIGNEDCONTACTSTITLE" /><label for="chk_showallassignedcontacts" data-lgid="P_M3_SHOWALLASSIGNED">Show All Assigned</label>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="availablecontacts" style="height: 400px; width: 410px;"></div>
|
||||
</td>
|
||||
<td class="td_controller">
|
||||
<input class="ctl_button" type="button" value="" onclick="OnContactEditorAdd();" tabindex="42" />
|
||||
<input class="ctl_button" type="button" value="" onclick="OnContactEditorAddAll();" tabindex="43" />
|
||||
<input class="ctl_button" type="button" value="" onclick="OnContactEditorRemove();" tabindex="44" />
|
||||
<input class="ctl_button" type="button" value="" onclick="OnContactEditorRemoveAll();" tabindex="45" />
|
||||
</td>
|
||||
<td>
|
||||
<div id="selectedcontacts" style="height: 400px; width: 410px;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="dialog-func">
|
||||
<input type="button" value="Cancel" data-lgid="P_M3_CANCEL" class="dialog-close" tabindex="47" />
|
||||
<input type="button" onclick="OnSaveSubscribeContacts();" value="OK" data-lgid="P_M3_OK" tabindex="46" />
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Content>
|
Reference in New Issue
Block a user