add site
This commit is contained in:
1 parent
88e0a25ecd
commit
c9723008af
1047 files changed
+443540
-1
No files matched your search
@@ -0,0 +1,63 @@
|
||||
var $assetalertfilter = function (id) {
|
||||
this.containerId = id;
|
||||
this.title = GetTextByKey("P_XXX", 'Asset Alert Filter Templates');
|
||||
this.onOK = null;
|
||||
this.onDialogClosed = null;
|
||||
this.includechild = true;
|
||||
};
|
||||
|
||||
(function () {
|
||||
var __proto = $assetalertfilter.prototype;
|
||||
|
||||
function createDialog() {
|
||||
var dialog = $('<div class="dialog" style="display: none; width: 1300px; height: 800px">').attr('id', this.containerId);
|
||||
|
||||
var title = $('<div class="dialog-title"></div>').appendTo(dialog);
|
||||
title.append($('<span class="title"></span>').text(this.title));
|
||||
title.append('<em class="dialog-close"></em>');
|
||||
|
||||
var content = $('<div class="dialog-content" style="width: 98%; height: 90%; "></div>').appendTo(dialog);
|
||||
$('<div style="clear: both"></div>').appendTo(content);
|
||||
|
||||
this.iframeFilter = $('<iframe style="width: 100%; height: 100%; display: block; border: none;"></iframe>').appendTo(content);
|
||||
this.iframeFilter.attr("src", _network.root + "SystemSettings/AssetAertFilter.aspx");
|
||||
var dialogFunction = $('<div class="dialog-func"></div>').appendTo(dialog);
|
||||
$('<input type="button" value="' + GetTextByKey("P_CP_CLOSE", "Close") + '" class="dialog-close" />').appendTo(dialogFunction).css("height", 26);//height与Workspace.css冲突
|
||||
$('<input type="button" value="' + GetTextByKey("P_IPT_SAVE", "Save") + '" />').click(onOKClick.bind(this)).appendTo(dialogFunction);
|
||||
$('<div class="clear"></div>').appendTo(dialogFunction);
|
||||
|
||||
$('<div class="maskbg" style="display: none"><div class="loading_icon icon c-spin"></div></div>').appendTo(dialog);
|
||||
|
||||
// init
|
||||
$(document.body).append(dialog);
|
||||
|
||||
dialog.dialog(this.onDialogClosed);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
__proto.showAssetAlertFilter = function (topRatio, force) {
|
||||
var dialog;
|
||||
if (force) {
|
||||
$('#' + this.containerId).remove();
|
||||
dialog = createDialog.call(this);
|
||||
} else {
|
||||
dialog = $('#' + this.containerId);
|
||||
if (!dialog.length) {
|
||||
dialog = createDialog.call(this);
|
||||
}
|
||||
}
|
||||
this.dialog = dialog;
|
||||
dialog.attr('init', '1').showDialog().css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_assetalertfilter').height()) / (topRatio || 3),
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_assetalertfilter').width()) / 2
|
||||
});
|
||||
//this.gridAssets.setData([]);
|
||||
};
|
||||
|
||||
|
||||
function onOKClick() {
|
||||
execIframeFunc("onSaveAssetAlertFilter", [], this.iframeFilter);
|
||||
//this.iframeFilter.onSaveAssetAlertFilter();
|
||||
this.dialog.hideDialog();
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,418 @@
|
||||
var $assetselector = function (id) {
|
||||
this.containerId = id;
|
||||
this.title = GetTextByKey("P_SELECTASSETS", 'Select Assets');
|
||||
this.companyId = null;
|
||||
this.jobsiteId = null;
|
||||
this.forceSingle = false;
|
||||
this.exceptSource = null;
|
||||
this.exceptShareAsset = false;
|
||||
this.onOK = null;
|
||||
this.onDialogClosed = null;
|
||||
this.includechild = true;
|
||||
this.allowhidden = true;
|
||||
this.allowotherfilter = true;
|
||||
this.uid = null;
|
||||
};
|
||||
|
||||
(function () {
|
||||
var __proto = $assetselector.prototype;
|
||||
|
||||
function initMachinesGrid(parent) {
|
||||
var grid = new GridView(parent);
|
||||
grid.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var styleFilter = function (item) {
|
||||
if (item.Suggested) {
|
||||
return {
|
||||
//'background-color': 'yellow',
|
||||
'display': 'block',
|
||||
'margin': 0,
|
||||
'box-sizing': 'border-box',
|
||||
'padding': '0 4px',
|
||||
'height': '27px',
|
||||
'line-height': '27px',
|
||||
'overflow': 'hidden',
|
||||
'text-overflow': 'ellipsis'
|
||||
};
|
||||
}
|
||||
};
|
||||
var bgFilter = function (item) {
|
||||
if (item.Suggested)
|
||||
return 'yellow';
|
||||
};
|
||||
var columns = [];
|
||||
if (!this.forceSingle) {
|
||||
columns.push({
|
||||
// checkbox
|
||||
name: 'check',
|
||||
key: 'Selected',
|
||||
width: 30,
|
||||
align: 'center',
|
||||
sortable: false,
|
||||
allcheck: true,
|
||||
type: 3
|
||||
});
|
||||
}
|
||||
columns.push({
|
||||
key: 'VIN',
|
||||
caption: GetTextByKey("P_SELECTASSETS_VIN", 'VIN'),
|
||||
width: 160,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
},
|
||||
{
|
||||
key: 'Name',
|
||||
caption: GetTextByKey("P_SELECTASSETS_NAME", 'Name'),
|
||||
width: 160,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
});
|
||||
if (this.jobsiteId != null) {
|
||||
columns.push(
|
||||
{
|
||||
key: 'Suggested',
|
||||
caption: GetTextByKey("P_SELECTASSETS_CURRENTSTATE", 'Current State'),
|
||||
width: 110,
|
||||
allowFilter: true,
|
||||
filter: function (item) {
|
||||
return item.Suggested ? GetTextByKey("P_SELECTASSETS_SUGGESTED", 'SUGGESTED') : GetTextByKey("P_SELECTASSETS_UNASSIGNED", 'UNASSIGNED');
|
||||
},
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
},
|
||||
{
|
||||
key: 'DistanceFromSite',
|
||||
caption: GetTextByKey("P_SELECTASSETS_DISTANCEFROMSITE", 'Distance From Site'),
|
||||
align: 'right',
|
||||
width: 130,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
},
|
||||
{
|
||||
key: 'DistanceUnits',
|
||||
caption: GetTextByKey("P_SELECTASSETS_UNITS", 'Units'),
|
||||
width: 80,
|
||||
allowFilter: true,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
}
|
||||
);
|
||||
}
|
||||
columns.push(
|
||||
{
|
||||
key: 'MakeName',
|
||||
caption: GetTextByKey("P_SELECTASSETS_MAKE", 'Make'),
|
||||
width: 120,
|
||||
allowFilter: true,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
},
|
||||
{
|
||||
key: 'ModelName',
|
||||
caption: GetTextByKey("P_SELECTASSETS_MODEL", 'Model'),
|
||||
width: 120,
|
||||
allowFilter: true,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
},
|
||||
{
|
||||
key: 'TypeName',
|
||||
caption: GetTextByKey("P_SELECTASSETS_TYPE", 'Type'),
|
||||
width: 120,
|
||||
allowFilter: true,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
},
|
||||
{
|
||||
key: 'AcquisitionType',
|
||||
caption: GetTextByKey("P_MA_ACQUISITIONTYPE", "Acquisition Type"),
|
||||
width: 120,
|
||||
allowFilter: true,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter
|
||||
},
|
||||
{
|
||||
key: 'AssetGroups',
|
||||
caption: GetTextByKey("P_JS_ASSETGROUP", "Asset Group"),
|
||||
width: 160,
|
||||
allowFilter: false,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter,
|
||||
filter: function (item) {
|
||||
if (item.AssetGroups)
|
||||
return item.AssetGroups.join(", ");
|
||||
else
|
||||
return "";
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'Jobsites',
|
||||
caption: GetTextByKey("P_JOBSITE", "Jobsite"),
|
||||
width: 160,
|
||||
allowFilter: false,
|
||||
styleFilter: styleFilter,
|
||||
bgFilter: bgFilter,
|
||||
filter: function (item) {
|
||||
if (item.Jobsites && item.Jobsites.length > 0) {
|
||||
var r = "";
|
||||
for (var i = 0; i < item.Jobsites.length; i++) {
|
||||
r += item.Jobsites[i].Key;
|
||||
if (item.Jobsites[i].Value && item.Jobsites[i].Value != "")
|
||||
r += "(" + item.Jobsites[i].Value + ")";
|
||||
r += ", ";
|
||||
}
|
||||
r = r.substring(0, r.length - 2);
|
||||
return r;
|
||||
}
|
||||
else
|
||||
return "";
|
||||
}
|
||||
}
|
||||
);
|
||||
//grid.canMultiSelect = true;
|
||||
grid.columns = columns;
|
||||
grid.init();
|
||||
|
||||
this.gridAssets = grid;
|
||||
}
|
||||
|
||||
function createDialog() {
|
||||
var dialog = $('<div class="dialog" style="display: none; width: 1210px; height: 520px">').attr('id', this.containerId);
|
||||
|
||||
var title = $('<div class="dialog-title"></div>').appendTo(dialog);
|
||||
title.append($('<span class="title"></span>').text(this.title));
|
||||
title.append('<em class="dialog-close"></em>');
|
||||
|
||||
var content = $('<div class="dialog-content"></div>').appendTo(dialog);
|
||||
var searchdiv = $('<div style="position: relative; width: 280px; margin-top: 4px; float: left"></div>').appendTo(content);
|
||||
this.machineSearch = $('<input type="text" placeholder="' + GetTextByKey("P_SELECTASSETS_SEARCH", "Search") + '" />')
|
||||
.css({
|
||||
width: '100%',
|
||||
paddingRight: 28,
|
||||
height: 25,
|
||||
lineHeight: '25px',
|
||||
boxSizing: 'border-box',
|
||||
textIndent: '4px'
|
||||
})
|
||||
.keypress(onKeyPress.bind(this)).appendTo(searchdiv);
|
||||
$('<div></div>').css({
|
||||
position: 'absolute',
|
||||
top: 0, right: 0, height: 25, width: 28,
|
||||
textAlign: 'center',
|
||||
lineHeight: '25px',
|
||||
fontSize: '1.2em',
|
||||
fontFamily: 'FontAwesome',
|
||||
fontWeight: 900,
|
||||
color: 'rgb(123,28,33)',
|
||||
cursor: 'pointer'
|
||||
}).click(onSearch.bind(this)).appendTo(searchdiv);
|
||||
|
||||
var labeldiv = $('<div style="margin: 4px 0 0 10px; float: left; line-height: 25px"></div>').appendTo(content);
|
||||
if (this.jobsiteId == null && this.allowhidden) {
|
||||
this.showHidden = $('<input type="checkbox" id="checkShowHidden"/>').click(onSearch.bind(this)).appendTo(labeldiv);
|
||||
$('<label for="checkShowHidden"></label>').text(GetTextByKey("P_SELECTASSETS_SHOWHIDDEN", 'Show Hidden')).appendTo(labeldiv);
|
||||
}
|
||||
|
||||
if (this.allowotherfilter) {
|
||||
var filterdiv = $('<div style="margin: 4px 0 0 10px; float: left; line-height: 25px"></div>').appendTo(content);
|
||||
$('<label style="margin-left:5px;margin-right:5px;"></label>').text(GetTextByKey("P_JS_ASSETGROUP", 'Asset Group')).appendTo(filterdiv);
|
||||
this.selgroup = $('<select style="width:120px;height:22px;"></select>').change(onSearch.bind(this)).appendTo(filterdiv);
|
||||
getAssetGroups(this.selgroup);
|
||||
$('<label style="margin-left:5px;margin-right:5px;"></label>').text(GetTextByKey("P_XXXXXX", 'Jobsite')).appendTo(filterdiv);
|
||||
this.seljs = $('<select style="width:120px;height:22px;"></select>').change(onSearch.bind(this)).appendTo(filterdiv);
|
||||
$('<label style="margin-left:5px;margin-right:5px;"></label>').text(GetTextByKey("P_XXXXXX", 'Jobsite Code')).appendTo(filterdiv);
|
||||
this.seljscode = $('<select style="width:120px;height:22px;"></select>').change(onSearch.bind(this)).appendTo(filterdiv);
|
||||
getJobSites(this.seljs, this.seljscode);
|
||||
}
|
||||
|
||||
$('<div style="clear: both"></div>').appendTo(content);
|
||||
|
||||
this.machineList = $('<div style="width: 1188px; height: 400px; margin: 10px 0 4px"></div>').appendTo(content);
|
||||
|
||||
var dialogFunction = $('<div class="dialog-func"></div>').appendTo(dialog);
|
||||
$('<input type="button" value="' + GetTextByKey("P_SELECTASSETS_CANCEL", "Cancel") + '" class="dialog-close" />').appendTo(dialogFunction).css("height", 26);//height与Workspace.css冲突
|
||||
$('<input type="button" value="' + GetTextByKey("P_SELECTASSETS_OK", "OK") + '" />').click(onOKClick.bind(this)).appendTo(dialogFunction);
|
||||
$('<div class="clear"></div>').appendTo(dialogFunction);
|
||||
|
||||
$('<div class="maskbg" style="display: none"><div class="loading_icon icon c-spin"></div></div>').appendTo(dialog);
|
||||
|
||||
// init
|
||||
initMachinesGrid.call(this, this.machineList);
|
||||
$(document.body).append(dialog);
|
||||
|
||||
dialog.dialog(this.onDialogClosed);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
__proto.showSelector = function (topRatio, force) {
|
||||
var dialog;
|
||||
if (force) {
|
||||
$('#' + this.containerId).remove();
|
||||
dialog = createDialog.call(this);
|
||||
} else {
|
||||
dialog = $('#' + this.containerId);
|
||||
if (!dialog.length) {
|
||||
dialog = createDialog.call(this);
|
||||
}
|
||||
}
|
||||
this.dialog = dialog;
|
||||
this.machineSearch.val('');
|
||||
if (this.jobsiteId == null && this.allowhidden) {
|
||||
this.showHidden.prop('checked', false);
|
||||
}
|
||||
dialog.attr('init', '1').showDialog().css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_machines').height()) / (topRatio || 3),
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_machines').width()) / 2
|
||||
});
|
||||
this.gridAssets.setData([]);
|
||||
onSearch.call(this);
|
||||
};
|
||||
|
||||
function onKeyPress(e) {
|
||||
if (e.keyCode === 13) {
|
||||
onSearch.call(this);
|
||||
}
|
||||
};
|
||||
|
||||
function devicerequest(method, param, callback, error) {
|
||||
var path = "";
|
||||
if (_network.root != null && _network.root.length > 0) {
|
||||
path = "MachineDeviceManagement/";
|
||||
}
|
||||
_network.request(path + "ManageMachines.aspx", -1, method, param, callback, error || function (e) {
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
|
||||
function jobsiterequest(method, param, callback, error) {
|
||||
var path = "";
|
||||
if (_network.root != null && _network.root.length > 0) {
|
||||
path = "JobSite/";
|
||||
}
|
||||
_network.request(path + "JobSite.aspx", -1, method, param, callback, error || function (e) {
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
|
||||
function hasMachine(id, source) {
|
||||
for (var i = 0; i < source.length; i++) {
|
||||
if (source[i] === id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function onSearch() {
|
||||
var maskbg = this.dialog.find('.maskbg');
|
||||
maskbg.show();
|
||||
var search = this.machineSearch;
|
||||
search.blur();
|
||||
var excepts = this.exceptSource;
|
||||
var exceptShareAsset = this.exceptShareAsset;
|
||||
var gridAssets = this.gridAssets;
|
||||
var title = this.title;
|
||||
var companyId = this.companyId || '';
|
||||
|
||||
var assetgroup = this.selgroup && this.selgroup.val();
|
||||
if (!assetgroup) assetgroup = "-1";
|
||||
var js = this.seljs && this.seljs.val();
|
||||
if (!js) js = "-1";
|
||||
var jscode = this.seljscode && this.seljscode.val();
|
||||
if (!jscode) jscode = "-1";
|
||||
|
||||
var params = [
|
||||
companyId,
|
||||
search.val(),
|
||||
this.jobsiteId || !this.allowhidden || (this.showHidden.prop('checked') ? '1' : '0'),
|
||||
this.includechild ? '1' : '0',
|
||||
assetgroup,
|
||||
js,
|
||||
jscode,
|
||||
this.uid
|
||||
];
|
||||
|
||||
var method = "GetAssetList";
|
||||
if (this.jobsiteId != null)
|
||||
method = "GetJobsiteAssetList";
|
||||
else if (this.uid != null)
|
||||
method = "GetUserAssignedAssets";
|
||||
|
||||
devicerequest(method, params.join(String.fromCharCode(170)), function (data) {
|
||||
if (typeof data === 'string') {
|
||||
showAlert(GetTextByKey("P_SELECTASSETS_FAILEDGETLIST", 'Failed to get the machine list: ') + data, title);
|
||||
maskbg.hide();
|
||||
return;
|
||||
}
|
||||
var items = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var it = data[i];
|
||||
if (exceptShareAsset && it.ShareStatus == 2)
|
||||
continue;
|
||||
if (excepts == null || !hasMachine(it.Id, excepts)) {
|
||||
items.push({ Values: it });
|
||||
}
|
||||
}
|
||||
gridAssets.setData(items);
|
||||
maskbg.hide();
|
||||
search.focus();
|
||||
}, function () {
|
||||
showAlert(GetTextByKey("P_SELECTASSETS_FAILEDGETLIST1", 'Failed to get the machine list.'), title);
|
||||
maskbg.hide();
|
||||
});
|
||||
}
|
||||
|
||||
function onOKClick() {
|
||||
var index = this.gridAssets.selectedIndex;
|
||||
if (this.forceSingle && index < 0) {
|
||||
showAlert(GetTextByKey("P_SELECTASSETS_SELECTASSET", 'Please select an asset.'), this.title);
|
||||
return;
|
||||
}
|
||||
this.onOK && this.onOK(this.gridAssets.source, index);
|
||||
this.dialog.hideDialog();
|
||||
}
|
||||
|
||||
function getAssetGroups(ctrl) {
|
||||
devicerequest('GetMachineGroups', '' + String.fromCharCode(170) + '', function (data) {
|
||||
if (typeof data === 'string') {
|
||||
return;
|
||||
}
|
||||
ctrl.empty();
|
||||
ctrl.append($("<option value='-1'> </option>"));
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var it = data[i];
|
||||
ctrl.append($("<option></option>").val(it.GroupID).text(it.GroupName));
|
||||
}
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
function getJobSites(ctrl, ctrl1) {
|
||||
jobsiterequest('GetJobSiteDataSource', '', function (data) {
|
||||
if (typeof data === 'string') {
|
||||
return;
|
||||
}
|
||||
ctrl.empty();
|
||||
ctrl.append($("<option value='-1'> </option>"));
|
||||
if (data.Jobsites) {
|
||||
for (var i = 0; i < data.Jobsites.length; i++) {
|
||||
var it = data.Jobsites[i];
|
||||
ctrl.append($("<option></option>").val(it.ID).text(it.Name));
|
||||
}
|
||||
}
|
||||
|
||||
ctrl1.empty();
|
||||
ctrl1.append($("<option value='-1'> </option>"));
|
||||
if (data.Codes) {
|
||||
for (var i = 0; i < data.Codes.length; i++) {
|
||||
var it = data.Codes[i];
|
||||
ctrl1.append($("<option></option>").val(it).text(it));
|
||||
}
|
||||
}
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,766 @@
|
||||
|
||||
if (typeof ($assetsummary) != "function") {
|
||||
var ctrlindex = 0;
|
||||
var assetIconCollapsed = false;
|
||||
var alertsCollapsed = false;
|
||||
var infowindowScrollTop = 0;
|
||||
$assetsummary = function (p, cid, assetid, alerttips, type, assets) {//type 0.left;1.bottom
|
||||
if (typeof p === "string")
|
||||
p = $("#" + p);
|
||||
if (!p)
|
||||
p = document;
|
||||
this.companyid = cid || "";
|
||||
this.assetid = assetid;
|
||||
this.alerttips = alerttips;
|
||||
this.type = type;
|
||||
this.assets = assets;
|
||||
this.asset = undefined;
|
||||
this.assetext = undefined;
|
||||
this.status = 0;
|
||||
this.ctrlindex = ctrlindex++;
|
||||
this.grid_alertsdt;
|
||||
this.assetchanged = null;
|
||||
var _this = this;
|
||||
|
||||
this.basectrl = $('<div></div>');
|
||||
|
||||
//if (this.assets && this.assets.length > 1) {
|
||||
// this.basectrl.css('margin-top', 10);
|
||||
|
||||
// var div_assets = $('<div style="width: 450px;margin-left:46px;"></div>');
|
||||
// div_assets.dropdown(this.assets, {
|
||||
// search: true,
|
||||
// valueKey: 'ID',
|
||||
// textKey: 'DisplayName'
|
||||
// });
|
||||
// div_assets.find(".dropdown-wrapper").css("border", "1px solid #b9b9b9");
|
||||
// if (this.assetid)
|
||||
// div_assets.dropdownVal(this.assetid);
|
||||
|
||||
// div_assets.on('select', function (_e, item) {
|
||||
// if (item.ID != _this.assetid) {
|
||||
// var temps = _this.assets.filter(function (a) { return a.ID == item.ID })
|
||||
// if (_this.assetchanged && temps && temps.length > 0)
|
||||
// _this.assetchanged(_this.assets.indexOf(temps[0]));
|
||||
// }
|
||||
// });
|
||||
|
||||
// p.append(div_assets);
|
||||
//}
|
||||
|
||||
p.append(this.basectrl);
|
||||
|
||||
this.maskbgctrl = $('<div class="maskbg"><div class="loading_icon icon c-spin"></div></div>');
|
||||
p.append(this.maskbgctrl);
|
||||
|
||||
this.refresh = function () {
|
||||
p.parent(".contentPane").unbind();
|
||||
_this.basectrl.empty();
|
||||
loadAssetInfo();
|
||||
loadAssetExtInfo();
|
||||
}
|
||||
|
||||
|
||||
if (this.assetid) {
|
||||
loadAssetInfo();
|
||||
loadAssetExtInfo();
|
||||
}
|
||||
|
||||
function setIconBr(div_icon) {
|
||||
var br = '<br />';
|
||||
//if (_this.type == 0)
|
||||
div_icon.append(br);
|
||||
}
|
||||
|
||||
function showAssetIcon() {
|
||||
var asset = _this.asset;
|
||||
var loc = asset.Location;
|
||||
var div_icon = $('<div></div>');
|
||||
var iconheight = p.height();
|
||||
if (iconheight == 0)
|
||||
iconheight = p.parent().height();
|
||||
if (_this.type == 0) {
|
||||
div_icon.css({ 'height': iconheight - 4, 'margin-top': -20 });
|
||||
}
|
||||
else {
|
||||
div_icon.css({ 'height': iconheight + 5 });
|
||||
//if (_this.assets && _this.assets.length > 1) {
|
||||
// div_icon.css({ 'height': p.parent().height() + 5, 'margin-top': -42 });
|
||||
//}
|
||||
div_icon.removeClass("divicon_left");
|
||||
div_icon.addClass("divicon_bottom");
|
||||
}
|
||||
div_icon.removeClass("divicon_bottom");
|
||||
div_icon.addClass("divicon_left");
|
||||
|
||||
var span = $('<span class="icondetail" style="cursor: pointer; " onclick="showMachineDetail(\'' + _this.companyid + '\',' + asset.Id + ', \'' + encodeURIComponent(asset.VIN).replace("'", "\\'") + '\')" title="' + GetTextByKey("P_MV_DETAIL", "Detail") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
span = $('<span class="icondirection" style="cursor: pointer;" onclick="doDirections(' + loc.Latitude + ',' + loc.Longitude + ')" title="' + GetTextByKey("P_MV_DIRECTIONS", "Directions") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
if (loc.FromSmartWitness && enableSmartWitness) {
|
||||
span = $("<span class='iconvideo' style='cursor:pointer;' onclick='openRequestVideoDialog(\"" + _this.companyid + "\"," + asset.Id + ")' title='" + GetTextByKey("P_MV_VIDEOREQUEST", "Video Request") + "'></span>");
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
span = $("<span class='iconmail' style='cursor:pointer;' onclick='openSendEmails(\"" + _this.companyid + "\"," + asset.Id + ",0)' title='" + GetTextByKey("P_MV_SENDLOCATION", "Send Location") + "'></span>");
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
assetLocations[asset.Id] = loc;
|
||||
|
||||
span = $('<span class="iconweather" style="cursor: pointer; " onclick="doWeather(' + loc.Latitude + ',' + loc.Longitude + ')" title="' + GetTextByKey("P_MV_WEATHER", "Weather") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
if (canEditAsset) {
|
||||
span = $('<span class="iconasset" style="cursor: pointer; " onclick="OnEditAsset(\'' + _this.companyid + '\',\'' + asset.Id + '\')" title="' + GetTextByKey("P_MV_EDITASSET", "Edit Asset") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
if (canViewWorkOrder) {
|
||||
span = $('<span class="iconmapworkorder" style="cursor: pointer; " onclick="OnViewWorkOrder(\'' + _this.companyid + '\',\'' + asset.Id + '\')" title="' + GetTextByKey("P_MV_WORKORDERS", "Work Orders") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
if (canViewMR) {
|
||||
span = $('<span class="iconmaintenancerecord" style="cursor: pointer; " onclick="OnViewMaintenanceRecord(\'' + _this.companyid + '\',\'' + asset.Id + '\')" title="' + GetTextByKey("P_MV_MAINTENANCERECORD", "Maintenance Record") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
span = $('<span class="iconlochis" style="cursor: pointer; " onclick="doLocationHistory(\'' + _this.companyid + '\',' + asset.Id + ', \'' + encodeURIComponent(asset.DisplayName).replace("'", "\\'") + '\')" title="' + GetTextByKey("P_MA_LOCATIONHISTORY", "Location History") + '" data-asset=' + asset + '></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
|
||||
if (canViewAlertsManagement) {
|
||||
span = $('<span class="iconmapmanagealerts" style="cursor: pointer; " onclick="OnViewAlertsManagement(\'' + _this.companyid + '\',\'' + asset.Id + '\')" title="' + GetTextByKey("P_ALERTSMANAGEMENT", "Alerts Management") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
if (canViewFuelRecords) {
|
||||
span = $('<span class="iconmapfuelrecord" style="cursor: pointer; " onclick="OnViewFuelRecords(\'' + _this.companyid + '\',\'' + asset.Id + '\')" title="' + GetTextByKey("P_FUELRECORDS", "Fuel Records") + '"></span>');
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
if (canEditJobsite) {
|
||||
span = $('<span class="iconjobsite" style="cursor: pointer;" title="' + GetTextByKey("P_JS_ADDJOBSITE", "Add Jobsite") + '"></span>');
|
||||
span.click(asset.Id, function (e) {
|
||||
OnAddJobsite(e.data);
|
||||
});
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
|
||||
if (asset.AttachmentCount > 0) {
|
||||
span = $('<span class="iconatta" style="cursor: pointer;" title="' + GetTextByKey("P_WO_ATTACHMENTS", "Attachments") + '"></span>');
|
||||
span.click(asset.Id, function (e) {
|
||||
getAssetMapAttachments(_this.companyid, e.data);
|
||||
});
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
|
||||
if (type == 0) {
|
||||
div_icon.find("span").click(function (e) {
|
||||
p.hide();
|
||||
$('#assetsummarytrigle').hide();
|
||||
});
|
||||
}
|
||||
|
||||
return div_icon;
|
||||
}
|
||||
|
||||
function showAssetInfo() {
|
||||
if (!_this.asset) return;
|
||||
var asset = _this.asset;
|
||||
var loc = asset.Location;
|
||||
var br = '<br />';
|
||||
|
||||
if (_this.type == 0) {
|
||||
var div_close = $('<div style="height:20px;"></div>');
|
||||
_this.basectrl.append(div_close);
|
||||
var span_close = $('<span class="clearbtn" style="float: right; padding: 5px;cursor:pointer;"></span>').click(function () {
|
||||
p.hide();
|
||||
$('#assetsummarytrigle').hide();
|
||||
});
|
||||
div_close.append(span_close);
|
||||
}
|
||||
|
||||
if (showTooltipIcons) {
|
||||
var div_icon = showAssetIcon();
|
||||
_this.basectrl.append(div_icon);
|
||||
}
|
||||
|
||||
var div_summary = $('<div class="assetsummaryinfo_div"></div>');
|
||||
if (!showTooltipIcons)
|
||||
div_summary.css("margin-left", 10);
|
||||
_this.basectrl.append(div_summary);
|
||||
|
||||
if (asset.AssetIconUrl) {
|
||||
var div_assetpic = $('<div style="text-align:center;"></div>');
|
||||
var pic = $('<img style="max-width: 98%;max-height:60px;" />').attr('src', asset.AssetIconUrl);
|
||||
div_assetpic.append(pic);
|
||||
var span_picfold = $('<span class="iconpicup" style="float: right; padding: 5px;cursor:pointer;"></span>').click(function () {
|
||||
if ($(this).hasClass('iconpicup')) {
|
||||
$(this).removeClass("iconpicup");
|
||||
$(this).addClass("iconpicdown");
|
||||
div_assetpic.hide();
|
||||
assetIconCollapsed = true;
|
||||
}
|
||||
else {
|
||||
$(this).removeClass("iconpicdown");
|
||||
$(this).addClass("iconpicup");
|
||||
div_assetpic.show();
|
||||
assetIconCollapsed = false;
|
||||
}
|
||||
});
|
||||
if (assetIconCollapsed) {
|
||||
span_picfold.removeClass("iconpicup");
|
||||
span_picfold.addClass("iconpicdown");
|
||||
div_assetpic.hide();
|
||||
}
|
||||
div_summary.append(span_picfold);
|
||||
|
||||
div_summary.append(div_assetpic);
|
||||
}
|
||||
|
||||
var b = $('<b style="font-weight:700;font-size:16px;"></b>').text(asset.DisplayName);
|
||||
div_summary.append(b).append(br);
|
||||
b = $('<b>' + GetTextByKey("P_MV_SN_COLON", "SN:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(asset.VIN);
|
||||
div_summary.append(label);
|
||||
b = $('<b style="margin-left:10px;">' + GetTextByKey("P_MV_TYPE_COLON", "Type:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').text(asset.TypeName);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_MV_MAKE_COLON", "Make:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').text(asset.MakeName);
|
||||
div_summary.append(label);
|
||||
b = $('<b style="margin-left:10px;">' + GetTextByKey("P_MV_MODEL_COLON", "Model:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').text(asset.ModelName);
|
||||
div_summary.append(label).append(br).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_MV_GROUPS_COLON", "Group(s):") + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').text(asset.Groups);
|
||||
div_summary.append(label).append(br).append(br);
|
||||
|
||||
var text = ""
|
||||
var value = "";
|
||||
var timevalue = "";
|
||||
if (asset.OnRoad) {
|
||||
text = GetTextByKey("P_MV_ODOMETER_COLON", "Odometer:");
|
||||
if (asset.Odometer && asset.Odometer.Corrected >= 0)
|
||||
value = asset.Odometer.Corrected.toFixed(2) + " " + asset.Odometer.UOM
|
||||
timevalue = asset.OdometerAsofTimeLocalStr;
|
||||
}
|
||||
else {
|
||||
text = GetTextByKey("P_MV_HOURS_COLON", "Hours:");
|
||||
if (asset.EngineHours && asset.EngineHours.Corrected >= 0)
|
||||
value = asset.EngineHours.Corrected.toFixed(2);
|
||||
timevalue = asset.EngineHoursAsofTimeLocalStr;
|
||||
}
|
||||
|
||||
b = $('<b>' + text + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').text(value);
|
||||
div_summary.append(label);
|
||||
if ((IsSupperAdmin || isAllowed) && canAddReading() && canEditAsset) {
|
||||
var span = $('<span class="assetsummaryplus" style="margin-left:15px;cursor:pointer;"></span>').click(openAddDialog);
|
||||
span.attr("title", GetTextByKey("P_MV_ADDREADING", "Add Reading"));
|
||||
div_summary.append(span);
|
||||
}
|
||||
div_summary.append(br);
|
||||
if (timevalue !== "") {
|
||||
label = $('<label></label>').text("(" + GetTextByKey("P_MV_ASOF", "as of ") + timevalue + ")");
|
||||
if ((asset.OnRoad && asset.IsOdometerRed) || (!asset.OnRoad && asset.IsEngineHoursRed))
|
||||
label.css('color', 'red');
|
||||
div_summary.append(label).append(br);
|
||||
}
|
||||
div_summary.append(br);
|
||||
|
||||
if (canViewPM) {
|
||||
var tb = $('<table style="width: 100%;display:none;" id="pmtable' + _this.ctrlindex + '"></table>');
|
||||
div_summary.append(tb);
|
||||
}
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_MV_JOBSITES_COLON", "Jobsite(s):") + ' </b>');
|
||||
div_summary.append(b);
|
||||
if (asset.Jobsites && asset.Jobsites !== "")
|
||||
label = $('<label></label>').text(asset.Jobsites);
|
||||
else
|
||||
label = $('<label></label>').text(GetTextByKey("P_MV_NOJOBSITEASSIGNED", "No Jobsite Assigned"));
|
||||
div_summary.append(label).append(br);
|
||||
if (asset.LocationAddress && asset.LocationAddress != "") {
|
||||
b = $('<b>' + GetTextByKey("P_MV_LOCATION_COLON", "Location:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').text(asset.LocationAddress);
|
||||
div_summary.append(label).append(br);
|
||||
if (asset.LocationAsofTimeLocalStr !== "") {
|
||||
label = $('<label></label>').text("(" + GetTextByKey("P_MV_ASOF", "as of ") + asset.LocationAsofTimeLocalStr + ")");
|
||||
if (asset.IsLocationRed)
|
||||
label.css('color', 'red');
|
||||
div_summary.append(label).append(br);
|
||||
}
|
||||
}
|
||||
|
||||
if (canViewInspection) {
|
||||
var div_inspection = $('<div style="min-width:450px;display:none;" id="divinspection_' + _this.ctrlindex + '"></div>');
|
||||
div_summary.append(div_inspection);
|
||||
}
|
||||
|
||||
var tb = $('<table style="width:100%;"></table>');
|
||||
div_summary.append(tb);
|
||||
var tr = $('<tr></tr>');
|
||||
tb.append(tr);
|
||||
//asset.FuelLevel = 25;
|
||||
if (!isNaN(asset.FuelLevel) && asset.FuelLevel > 0) {
|
||||
var td_fuellevel = $('<td></td>');
|
||||
tr.append(td_fuellevel);
|
||||
var fuellevel_div = $('<div id="fuelleveldiv' + _this.ctrlindex + '" style="width:40px;height:120px;display:inline-block;padding-left:10px;padding-right:10px;"></div>');
|
||||
td_fuellevel.append(fuellevel_div);
|
||||
showFuelLevelChart1("fuelleveldiv" + _this.ctrlindex, 120, asset.FuelLevel);
|
||||
}
|
||||
if (loc) {
|
||||
if (asset.OnRoad && (loc.Speed > 0 || (loc.Speed == 0 && asset.MoveStatus != 0))) {
|
||||
var isspeeding = false;
|
||||
if (loc.PostedSpeedLimit > 0 && loc.Speed != 0 && loc.Speed > loc.PostedSpeedLimit)
|
||||
isspeeding = true;
|
||||
|
||||
var td_speed = $('<td></td>');
|
||||
tr.append(td_speed);
|
||||
|
||||
var speedtext = "";
|
||||
if (loc.Speed == 0) {
|
||||
if (asset.MoveStatus == 2)
|
||||
speedtext = "Stopped On";
|
||||
else if (asset.MoveStatus == 3)
|
||||
speedtext = "Stopped Off";
|
||||
}
|
||||
|
||||
var speed_div = $('<div id="speeddiv' + _this.ctrlindex + '" style="width:160px;height:160px;display:inline-block;"></div>');
|
||||
td_speed.append(speed_div);
|
||||
showSpeedChart("speeddiv" + _this.ctrlindex, loc.Speed, loc.PostedSpeedLimit, loc.SpeedUnits, speedtext);
|
||||
|
||||
if (loc.Heading > 0) {
|
||||
var td_heading = $('<td></td>');
|
||||
tr.append(td_heading);
|
||||
var compass_div = $('<div id="compass_' + _this.ctrlindex + '" style="display:inline-block;"></div>');
|
||||
td_heading.append(compass_div);
|
||||
createCompass(compass_div, loc.Heading);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div_summary.append(br);
|
||||
if (asset.Description && asset.Description !== "") {
|
||||
asset.Description = replaceHtmlText(asset.Description);
|
||||
b = $('<b>' + GetTextByKey("P_MV_DESCRIPTION_COLON", "Description:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').html(asset.Description);
|
||||
div_summary.append(label).append(br).append(br);
|
||||
}
|
||||
|
||||
if (_this.alerttips && _this.alerttips !== "") {
|
||||
var atips = replaceHtmlText(_this.alerttips)
|
||||
label = $('<label></label>').html(atips);
|
||||
div_summary.append(label).append(br);
|
||||
}
|
||||
if (canViewAlertsManagement) {
|
||||
var div_alerts = $('<div style="height:150px;min-width:450px;display:none;" id="divalerts_' + _this.ctrlindex + '"></div>');
|
||||
div_summary.append(div_alerts);
|
||||
}
|
||||
|
||||
if (_this.assetext)
|
||||
showAssetExtInfo(_this.assetext);
|
||||
}
|
||||
|
||||
function showAssetExtInfo(assetext) {
|
||||
var br = '<br />';
|
||||
if (canViewPM) {
|
||||
var tb = $('#pmtable' + _this.ctrlindex).empty().show();
|
||||
if (assetext.PMPlanItems && assetext.PMPlanItems.length > 0) {
|
||||
for (var i = 0; i < assetext.PMPlanItems.length; i++) {
|
||||
var pmplan = assetext.PMPlanItems[i];
|
||||
var tr = $('<tr></tr>');
|
||||
tb.append(tr);
|
||||
var td = $('<td style="width:100px;vertical-align:top;"></td>');
|
||||
tr.append(td);
|
||||
if (i == 0) {
|
||||
td.append($('<b>' + GetTextByKey("P_MV_NEXTSERVICE_COLON", "Next Service:") + ' </b>'));
|
||||
}
|
||||
td = $('<td style="text-align:left;"></td>').text(pmplan.NextPlanDetail);
|
||||
tr.append(td);
|
||||
}
|
||||
}
|
||||
|
||||
if (assetext.MaintenanceRecordItem && assetext.MaintenanceRecordItem.ID) {
|
||||
var item = assetext.MaintenanceRecordItem;
|
||||
var tr = $('<tr></tr>');
|
||||
tb.append(tr);
|
||||
var td = $('<td style="width:100px;vertical-align:top;"></td>');
|
||||
tr.append(td);
|
||||
td.append($('<b>' + GetTextByKey("P_MV_LASTCOMPLETED_COLON", "Last Completed:") + ' </b>'));
|
||||
td = $('<td style="text-align:left;"></td>').text(item.LastCompletedText);
|
||||
tr.append(td);
|
||||
}
|
||||
}
|
||||
|
||||
if (canViewInspection && assetext.InspectReportItem && assetext.InspectReportItem.Id !== "") {
|
||||
var divinspection = $('#divinspection_' + _this.ctrlindex).empty().show();
|
||||
b = $('<b>' + GetTextByKey("P_MV_LASTINSPECTION_COLON", "Last Inspection:") + ' </b>');
|
||||
divinspection.append(b);
|
||||
label = $('<a href="#"></a>').text(assetext.CommitTimeStr).click(openInspectionReport);
|
||||
divinspection.append(label).append(br).append(br);
|
||||
}
|
||||
|
||||
if (canViewAlertsManagement && assetext.AlertItems && assetext.AlertItems.length > 0) {
|
||||
var divalerts = $('#divalerts_' + _this.ctrlindex).empty().show();
|
||||
var div_alertgrid = $('<div style="height:150px;min-width:450px;" id="divalertgrid_' + _this.ctrlindex + '"></div>');
|
||||
var div_alertstitle = $('<div style="min-width:450px;background-color:#0079c1;position:relative;"></div>');
|
||||
var span_alertstitle = $('<span></span>').text(GetTextByKey("P_MV_ALERTLAST14DAYS", "Alerts Last 14 Days"));
|
||||
div_alertstitle.append(span_alertstitle);
|
||||
var span_alertsicon = $('<span class="iconalertsup" style=right:10px;position:absolute;"></span>').click(function () {
|
||||
if ($(this).hasClass('iconalertsup')) {
|
||||
$(this).removeClass("iconalertsup");
|
||||
$(this).addClass("iconalerts");
|
||||
div_alertgrid.hide();
|
||||
alertsCollapsed = true;
|
||||
}
|
||||
else {
|
||||
$(this).removeClass("iconalerts");
|
||||
$(this).addClass("iconalertsup");
|
||||
div_alertgrid.show();
|
||||
alertsCollapsed = false;
|
||||
}
|
||||
});
|
||||
if (alertsCollapsed) {
|
||||
span_alertsicon.removeClass("iconalertsup");
|
||||
span_alertsicon.addClass("iconalerts");
|
||||
div_alertgrid.hide();
|
||||
}
|
||||
div_alertstitle.append(span_alertsicon);
|
||||
divalerts.append(div_alertstitle);
|
||||
divalerts.append(div_alertgrid);
|
||||
|
||||
InitAlertsGridData();
|
||||
showAlertsList(assetext.AlertItems);
|
||||
}
|
||||
srcollInfowindow();
|
||||
}
|
||||
|
||||
function showAlertsList(data) {
|
||||
var rows = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var r = data[i];
|
||||
for (var j in r) {
|
||||
if (j === "AlertLocalTime")
|
||||
r[j] = { DisplayValue: r["AlertLocalTimeStr"], Value: r[j] };
|
||||
}
|
||||
var fr = { Values: r };
|
||||
rows.push(fr);
|
||||
}
|
||||
|
||||
_this.grid_alertsdt.setData(rows);
|
||||
}
|
||||
|
||||
function InitAlertsGridData() {
|
||||
_this.grid_alertsdt = new GridView('#divalertgrid_' + _this.ctrlindex);
|
||||
_this.grid_alertsdt.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var list_columns = [
|
||||
{ name: 'AlertLocalDateStr', caption: GetTextByKey("P_MV_DATE", "Date"), valueIndex: 'AlertLocalDateStr', css: { 'width': 70, 'text-align': 'left' } },
|
||||
{ name: 'AlertLocalTimeStr', caption: GetTextByKey("P_MV_TIME", "Time"), valueIndex: 'AlertLocalTimeStr', css: { 'width': 75, 'text-align': 'left' } },
|
||||
{ name: 'Level', caption: GetTextByKey("P_MV_LEVEL", "Level"), valueIndex: 'Level', css: { 'width': 60, 'text-align': 'left' } },
|
||||
{ name: 'Description', caption: GetTextByKey("P_MV_DESCRIPTION", "Description"), valueIndex: 'Description', css: { 'width': 200, '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.allowFilter = list_columns[hd].allowFilter;
|
||||
columns.push(col);
|
||||
}
|
||||
_this.grid_alertsdt.canMultiSelect = false;
|
||||
_this.grid_alertsdt.columns = columns;
|
||||
_this.grid_alertsdt.init();
|
||||
|
||||
_this.grid_alertsdt.selectedrowchanged = function (rowindex) {
|
||||
var rowdata = _this.grid_alertsdt.source[rowindex];
|
||||
if (rowdata) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function devicerequest(method, param, callback, error) {
|
||||
var path = "";
|
||||
if (_network.root != null && _network.root.length > 0) {
|
||||
path = "MachineDeviceManagement/";
|
||||
}
|
||||
_network.request(path + "ManageMachines.aspx", -1, method, param, callback, error || function (e) {
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
|
||||
function createCompass(container, heading) {
|
||||
var options = {
|
||||
lineColor: '#8cc8ad',
|
||||
pointerColor: '#cc3735',
|
||||
lineWidth: 10,
|
||||
circleWidth: 10,
|
||||
radius: 50,
|
||||
//font: 'Verdana',
|
||||
fontSize: 14
|
||||
}
|
||||
var compass = new $compass(container, options);
|
||||
compass.draw(heading);
|
||||
}
|
||||
|
||||
function loadAssetInfo() {
|
||||
_this.maskbgctrl.show();
|
||||
devicerequest('GetAssetSummaryInfo', _this.companyid + String.fromCharCode(170) + _this.assetid, function (data) {
|
||||
if (typeof data === 'string') {
|
||||
_dialog.showAlert(GetTextByKey("P_SELECTASSETS_FAILEDGETLIST", 'Failed to get the machine list: ') + data, "Asset Summary");
|
||||
return;
|
||||
}
|
||||
_this.asset = data;
|
||||
if (_this.status == 0)
|
||||
showAssetInfo();
|
||||
_this.maskbgctrl.hide();
|
||||
}, function () {
|
||||
_this.maskbgctrl.hide();
|
||||
});
|
||||
}
|
||||
|
||||
function loadAssetExtInfo() {
|
||||
//_this.maskbgctrl.show();
|
||||
devicerequest('GetAssetExtInfo', _this.companyid + String.fromCharCode(170) + _this.assetid, function (data) {
|
||||
if (typeof data === 'string') {
|
||||
return;
|
||||
}
|
||||
_this.assetext = data;
|
||||
if (_this.status == 0 && _this.asset)
|
||||
showAssetExtInfo(_this.assetext);
|
||||
//_this.maskbgctrl.hide();
|
||||
}, function () {
|
||||
//_this.maskbgctrl.hide();
|
||||
});
|
||||
}
|
||||
|
||||
function canAddReading() {
|
||||
if (!_this.asset)
|
||||
return false;
|
||||
if (_this.asset.ShareStatus == 2)
|
||||
return false;
|
||||
if (!_this.asset.TelematicsEnabled)
|
||||
return true;
|
||||
else {
|
||||
if (_this.asset.OnRoad)
|
||||
return _this.asset.Odometer && (_this.asset.Odometer.IsEmpty ||
|
||||
_this.asset.Odometer.DataSource.toLowerCase() == "calamp" ||
|
||||
_this.asset.Odometer.DataSource.toLowerCase() == "pedigree");
|
||||
|
||||
else
|
||||
return _this.asset.EngineHours && (_this.asset.EngineHours.IsEmpty ||
|
||||
_this.asset.EngineHours.DataSource.toLowerCase() == "calamp" ||
|
||||
_this.asset.EngineHours.DataSource.toLowerCase() == "pedigree");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function openAddDialog() {
|
||||
if (_this.asset.OnRoad) {
|
||||
openAddOdometer(_this.asset);
|
||||
}
|
||||
else {
|
||||
openAddEnginHours(_this.asset, _this.companyid);
|
||||
}
|
||||
}
|
||||
|
||||
function openInspectionReport() {
|
||||
window.open("inspection/report.aspx?rid=" + _this.assetext.InspectReportItem.Id, "_blank");
|
||||
}
|
||||
|
||||
function showSpeedChart(id, speed, postspeed, units, speedtext) {
|
||||
var max = Math.max(speed, postspeed);
|
||||
max = (parseInt(max / 25) + 1) * 25;
|
||||
if (postspeed <= 0)
|
||||
postspeed = max;
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var dom = document.getElementById(id);
|
||||
if (!dom)
|
||||
return;
|
||||
var myChart = echarts.init(dom);
|
||||
|
||||
option = {
|
||||
tooltip: {
|
||||
formatter: '{c} {b}'
|
||||
},
|
||||
toolbox: {
|
||||
},
|
||||
//backgroundColor: 'black',
|
||||
series: [
|
||||
{
|
||||
name: units,
|
||||
type: 'gauge',
|
||||
max: max,
|
||||
detail: {
|
||||
//formatter: '{value}',
|
||||
formatter: function (value) {
|
||||
var v = value + " " + units
|
||||
if (speedtext != "")
|
||||
v += "\r\n\r\n" + speedtext
|
||||
return v;
|
||||
},
|
||||
offsetCenter: speedtext != "" ? ["0", "60%"] : ["0", "40%"],
|
||||
fontSize: 12,
|
||||
color: speedtext != "" ? "black" : "auto"
|
||||
},
|
||||
data: [{ value: speed.toFixed(0)/*, name: units*/ }],
|
||||
radius: "98%",
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
width: 12,
|
||||
//color: [[postspeed / max, '#91c7ae'], [1, '#c23531']]
|
||||
color: [[postspeed / max, '#91c7ae'], [1, '#ff0000']]
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
length: 12
|
||||
},
|
||||
axisTick: {
|
||||
splitNumber: 2
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
fontSize: 10,
|
||||
//fontWeight: "bold",
|
||||
distance: 3,
|
||||
formatter: function (value) {
|
||||
return value.toFixed(0);
|
||||
},
|
||||
},
|
||||
title: {
|
||||
fontSize: 11,
|
||||
offsetCenter: ["0", -15]
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function showFuelLevelChart1(id, height, value) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var p = $("#" + id);
|
||||
|
||||
p.append($("<div></div>").text("Fuel"));
|
||||
var bar = $("<div></div>").css("height", height).css("border", "2px #0079c1 solid").css("position", "relative");
|
||||
p.append(bar);
|
||||
|
||||
var topbar = $("<div></div>").css("height", height * (1 - value / 100));
|
||||
bar.append(topbar);
|
||||
var bottombar = $("<div></div>").css("height", height * (value / 100));
|
||||
bar.append(bottombar);
|
||||
if (value > 40)
|
||||
bottombar.css("background-color", "#91c7ae");
|
||||
else if (value > 25)
|
||||
bottombar.css("background-color", "#ffc000");
|
||||
else
|
||||
bottombar.css("background-color", "#ff0000");
|
||||
|
||||
for (var i = 0; i < 10; i++) {
|
||||
var cell = $("<div></div>").css("height", height / 10).css("border-bottom", "1px #0079c1 solid")
|
||||
.css("width", "100%").css("position", "absolute").css("top", i * height / 10);
|
||||
bar.append(cell);
|
||||
}
|
||||
p.append($("<div></div>").text(value + "%"));
|
||||
}
|
||||
|
||||
function showFuelLevelChart(id, value) {
|
||||
// 基于准备好的dom,初始化echarts实例
|
||||
var myChart = echarts.init(document.getElementById(id));
|
||||
|
||||
option = {
|
||||
tooltip: {
|
||||
formatter: '{b} : {c}%'
|
||||
},
|
||||
toolbox: {
|
||||
//feature: {
|
||||
// restore: {},
|
||||
// saveAsImage: {}
|
||||
//}
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'Fuel level',
|
||||
type: 'gauge',
|
||||
detail: {
|
||||
formatter: '{value}',
|
||||
fontSize: 15
|
||||
},
|
||||
data: [{ value: value.toFixed(0), name: 'Fuel level' }],
|
||||
radius: "98%",
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
width: 12,
|
||||
//color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']] default
|
||||
color: [[0.2, '#ff0000'], [0.4, '#ffc000'], [1, '#91c7ae']]
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
length: 12
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
fontSize: 10,
|
||||
distance: 3
|
||||
},
|
||||
title: {
|
||||
fontSize: 11,
|
||||
offsetCenter: ["0", -15]
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
|
||||
//setInterval(function () {
|
||||
// option.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
|
||||
// myChart.setOption(option, true);
|
||||
//}, 2000);
|
||||
}
|
||||
|
||||
this.setInfowindowScrollTop = function (top) {
|
||||
infowindowScrollTop = top;
|
||||
}
|
||||
|
||||
function srcollInfowindow() {
|
||||
var infowindow = p.parent(".contentPane");
|
||||
if (infowindow.length > 0) {
|
||||
infowindow.unbind();
|
||||
infowindow.scrollTop(infowindowScrollTop);
|
||||
infowindow.scroll(function () {
|
||||
infowindowScrollTop = infowindow.scrollTop();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
var $compass = function (parent, option) {
|
||||
if (typeof parent === 'string') {
|
||||
parent = $(parent);
|
||||
}
|
||||
this.parent = parent;
|
||||
this.option = option;
|
||||
};
|
||||
|
||||
(function () {
|
||||
var __proto = $compass.prototype;
|
||||
|
||||
var $defcolors = {
|
||||
line: '#8cc8ad',
|
||||
pointer: '#cc3735',
|
||||
background: null
|
||||
};
|
||||
var $widths = {
|
||||
line: 10,
|
||||
circle: 10
|
||||
};
|
||||
var $vars = {
|
||||
radius: 50,
|
||||
font: 'Verdana',
|
||||
fontSize: 14
|
||||
};
|
||||
|
||||
function round(num) { return (num + 0.5) << 0; }
|
||||
function radians(degress) { return degress * Math.PI / 180; }
|
||||
|
||||
__proto.draw = function (value) {
|
||||
var r = this.option.radius || $vars.radius;
|
||||
var line = this.option.lineWidth || $widths.line;
|
||||
var canvas = $('<canvas></canvas>');
|
||||
var size = (r + line) * 2;
|
||||
canvas.css({
|
||||
'width': size,
|
||||
'height': size
|
||||
}).appendTo(this.parent.empty());
|
||||
|
||||
try {
|
||||
var ctx = canvas[0].getContext('2d');
|
||||
canvas[0].width = size;
|
||||
canvas[0].height = size;
|
||||
this.startDraw(ctx, size, value);
|
||||
} catch (e) {
|
||||
console.error('failed when init context: ' + e);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
__proto.startDraw = function (ctx, size, value) {
|
||||
var background = this.option.background || $defcolors.background;
|
||||
if (background != null) {
|
||||
ctx.fillStyle = background;
|
||||
ctx.fillRect(0, 0, size, size);
|
||||
}
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
|
||||
var lineColor = this.option.lineColor || $defcolors.line;
|
||||
var lineWidth = this.option.lineWidth || $widths.line;
|
||||
var radius = this.option.radius || $vars.radius;
|
||||
var pos = size / 2;
|
||||
ctx.translate(pos, pos);
|
||||
ctx.strokeStyle = lineColor;
|
||||
ctx.lineWidth = lineWidth;
|
||||
ctx.beginPath();
|
||||
ctx.arc(0, 0, radius, 0, radians(360), false);
|
||||
ctx.stroke();
|
||||
|
||||
if (background != null) {
|
||||
ctx.fillStyle = background;
|
||||
} else {
|
||||
ctx.fillStyle = '#fff';
|
||||
}
|
||||
var drawSegment = function () {
|
||||
ctx.beginPath();
|
||||
ctx.fillRect(radius - lineWidth / 2, -1, lineWidth, 2);
|
||||
ctx.rotate(radians(9));
|
||||
for (var i = 0; i < 9; i++) {
|
||||
ctx.beginPath();
|
||||
ctx.fillRect(radius - lineWidth / 6, 0, lineWidth * 2 / 3, 1);
|
||||
ctx.rotate(radians(9));
|
||||
}
|
||||
};
|
||||
for (var i = 0; i < 4; i++) {
|
||||
drawSegment();
|
||||
}
|
||||
|
||||
var font = 'bold ' + (this.option.fontSize || $vars.fontSize) + 'px ' + (this.option.font || $vars.font);
|
||||
ctx.fillStyle = '#000';
|
||||
ctx.font = font;
|
||||
ctx.fillText('E', radius - lineWidth - 4, 0);
|
||||
ctx.fillText('S', 0, radius - lineWidth - 4);
|
||||
ctx.fillText('W', lineWidth + 6 - radius, 0);
|
||||
ctx.fillText('N', 0, lineWidth + 6 - radius);
|
||||
|
||||
// value
|
||||
var rc = (this.option.circleWidth || $widths.circle) / 2;
|
||||
ctx.rotate(radians(value - 90));
|
||||
ctx.save();
|
||||
ctx.fillStyle = this.option.pointerColor || $defcolors.pointer;
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(0, -rc);
|
||||
ctx.lineTo(radius > 20 ? (radius - 20) : 1, 0);
|
||||
ctx.lineTo(0, rc);
|
||||
ctx.fill();
|
||||
ctx.restore();
|
||||
|
||||
ctx.fillStyle = lineColor;
|
||||
ctx.beginPath();
|
||||
ctx.arc(0, 0, rc, 0, radians(360), false);
|
||||
ctx.fill();
|
||||
};
|
||||
})();
|
||||
@@ -0,0 +1 @@
|
||||
:root{--hover-bg-color: lightyellow;--header-border-color: #edebe9;--header-bg-color: #fafafa;--header-color: #000;--cell-color: #333;--cell-border-color: #f0f0f0;--dark-border-color: #666;--split-border-color: #b3b3b3;--dragger-bg-color: #fff;--row-bg-color: #fff;--row-hover-bg-color: #fafafa;--row-selected-bg-color: #e6f2fb;--text-disabled-color: gray;--total-split-color: #e0e0e0;--total-border-color: #ccc;--total-bg-color: #aaa;--cell-link-color: #0000ff;--loading-bg-color: hsla(0, 0%, 100%, .4);--loading-fore-color: rgba(0, 0, 0, .2);--font-size: .8125rem;--font-family: "Franklin Gothic Book", "San Francisco", "Segoe UI", "Open Sans", "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei UI", sans-serif;--line-height: 40px;--cell-line-height: 1.8em;--text-indent: 2px;--header-line-height: 36px;--total-line-height: 1.8em;--loading-transition: visibility 0s linear .12s, opacity .12s ease;--loading-size: 80px;--loading-border-radius: 20px;--arrow-size: 4px;--filter-top: 20%;--filter-width: 10px;--filtered-width: 14px;--filtered-right: 12px;--filtered-arrow-size: 12px;--split-width: 8px;--dragger-size: 20px;--dragger-opacity: 0.4;--dragger-cursor-size: 4px;--dragger-cursor-opacity: 0.6;--header-padding: 4px 12px 4px 8px;--header-filtered-padding-right: 28px;--spacing-s: 4px;--spacing-cell: 5px 4px 5px 8px;--spacing-header: 27px;--cell-button-padding: 6px 10px;--cell-button-color: #0078d4;--cell-button-border-bottom: 1px solid lightgray;--group-padding-left: 6px;--group-line-height: 22px;--group-icon-size: 24px;--group-icon-hover-color: #ccc;--ml-icon-size: 14px;--ml-icon-right: 4px;--ml-icon-margin-top: -8px}.data-grid-fixed{position:absolute;top:0;border-bottom:none}.data-grid-fixed .data-grid-body{overflow:hidden}.data-grid{position:relative;box-sizing:border-box}.data-grid:focus{outline:none}.data-grid,.data-grid input[type=text]{font-size:var(--font-size);font-family:var(--font-family)}.data-grid .data-grid-size-holder{position:absolute;white-space:nowrap;font-weight:bold;visibility:hidden}.data-grid .data-grid-hover-holder{box-sizing:border-box;position:absolute;min-height:var(--line-height);line-height:var(--cell-line-height);padding:var(--spacing-cell);background-color:var(--hover-bg-color);border:none;white-space:pre;display:flex;align-items:center}.data-grid .data-grid-table-header,.data-grid .data-grid-table-total,.data-grid .data-grid-table-total-row{width:100%;min-width:100%;margin:0;border:none;border-collapse:collapse;border-spacing:0;table-layout:fixed;position:relative}.data-grid .data-grid-table-header{table-layout:auto}.data-grid .data-grid-table-header th div{line-height:var(--header-line-height);min-height:var(--line-height)}.data-grid .data-grid-table-header th,.data-grid .data-grid-table-total th{padding:0;margin:0;word-wrap:break-word;white-space:normal}.data-grid .data-grid-table-total{width:auto;min-width:100%;float:left}.data-grid .data-grid-table-total th{font-weight:bold}.data-grid .data-grid-table-total-row>tr{line-height:var(--total-line-height)}.data-grid,.data-grid .data-grid-header{overflow:hidden}.data-grid .data-grid-header{border-bottom:1px solid var(--header-border-color);background-color:var(--header-bg-color);color:var(--header-color);-moz-user-select:none;user-select:none;-webkit-user-select:none;height:var(--header-line-height);white-space:nowrap}.data-grid .data-grid-header .data-column-header{font-weight:bold;position:relative;padding:0}.data-grid .data-grid-header .data-column-header-text{padding:var(--header-padding);box-sizing:border-box}.data-grid .data-grid-header .data-column-sub-header-text{height:100%;float:left;padding:var(--spacing-s);box-sizing:border-box;text-align:center}.data-grid .data-grid-header .arrow{width:0;height:0;top:50%;margin-top:calc(0px - var(--arrow-size)/2);right:calc(var(--arrow-size)/2);position:absolute}.data-grid .data-grid-header .arrow.asc{border-bottom:var(--arrow-size) solid var(--dark-border-color)}.data-grid .data-grid-header .arrow.desc{border-top:var(--arrow-size) solid var(--dark-border-color)}.data-grid .data-grid-header .arrow.asc,.data-grid .data-grid-header .arrow.desc{border-left:var(--arrow-size) solid rgba(0,0,0,0);border-right:var(--arrow-size) solid rgba(0,0,0,0)}.data-grid .data-grid-header .data-column-header-filter{position:absolute;top:var(--filter-top);right:0;height:100%;width:var(--filter-width)}.data-grid .data-grid-header .data-column-header-filter.filtered .no-filter,.data-grid .data-grid-header .data-column-header-filter.no-filter .filtered{display:none}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-filter{top:0;right:var(--filtered-right);width:var(--filtered-width)}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-filter .arrow{width:var(--filtered-arrow-size);height:100%;margin-top:0;top:0;border:none}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-text{padding-right:var(--header-filtered-padding-right)}Line truncated
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
.d-grid{border:1px solid #a2adb8;position:relative;font-size:.75rem;font-family:Tahoma,Geneva,Verdana,sans-serif;overflow:hidden}.d-grid .d-grid-table-header{width:100%;margin:0;padding:0;border:none;border-collapse:collapse;border-spacing:0;table-layout:fixed;position:relative;border-bottom:1px solid #bababa}.d-grid .d-grid-table-header th{margin:0;padding:0;word-wrap:break-word;white-space:normal}.d-grid .d-grid-table-header th div{overflow:hidden;line-height:18px}.d-grid .d-grid-header{overflow:hidden;background-color:#e0e0e0;white-space:nowrap}.d-grid .d-grid-header .d-column-header{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-khtml-user-select:none;user-select:none;cursor:default;border-right:1px solid #bababa;font-weight:400;position:relative}.d-grid .d-grid-header .d-column-header:first-child{width:30px;min-width:30px;max-width:30px}.d-grid .d-grid-header .d-column-selected{background-color:#ccc}.d-grid .d-grid-header .d-column-header-text{margin:4px;box-sizing:border-box}.d-grid .d-grid-header .d-column-header-text>span>input{margin-left:0;margin-right:4px}.d-grid .d-grid-header .d-column-header-split{position:absolute;height:100%;top:0;right:-4px;width:8px;z-index:1;cursor:ew-resize}.d-grid .d-grid-body{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;position:absolute;top:27px;bottom:0}.d-grid .d-grid-body .d-grid-body-content{position:absolute;min-width:100%;table-layout:fixed;border-collapse:collapse}.d-grid .d-grid-body .d-grid-row{white-space:nowrap;background-color:#fff;border-bottom:1px solid #cacaca;min-width:100%}.d-grid .d-grid-body .d-grid-row:nth-child(2n){background-color:#f4f4f4}.d-grid .d-grid-body .d-grid-row:hover,.d-grid .d-grid-body .d-grid-row:hover>td>input[type=text]{background-color:#f0f0f0}.d-grid .d-grid-body .d-grid-row.d-grid-row-selected{background-color:#e6e6e6}.d-grid .d-grid-body .d-grid-row.d-grid-row-selected>td:first-child>div{background-color:#ccc}.d-grid .d-grid-body .d-grid-row.d-grid-row-selected>td>input[type=text]{background-color:#e6e6e6}.d-grid .d-grid-body .d-grid-row.d-grid-row-selected .d-grid-cell-selected,.d-grid .d-grid-body .d-grid-row.d-grid-row-selected .d-grid-cell-selected>input[type=text]{background-color:#fff}.d-grid .d-grid-body .d-grid-row .d-grid-cell-selected,.d-grid .d-grid-body .d-grid-row .d-grid-cell-selected>input[type=text]{background-color:#e6e6e6}.d-grid .d-grid-body .d-grid-row>td{border-right:1px solid #cacaca;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0}.d-grid .d-grid-body .d-grid-row>td:first-child{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-khtml-user-select:none;user-select:none;cursor:default;text-align:center;position:relative;width:30px;min-width:30px;max-width:30px}.d-grid .d-grid-body .d-grid-row>td:first-child>div{background-color:#e0e0e0}.d-grid .d-grid-body .d-grid-row>td:first-child .d-row-header-split{position:absolute;width:100%;left:0;bottom:0;height:6px;z-index:1;cursor:ns-resize}.d-grid .d-grid-body .d-grid-row>td:last-child{border-right:none}.d-grid .d-grid-body .d-grid-row>td>div{height:inherit;box-sizing:border-box}.d-grid .d-grid-body .d-grid-row>td>div>div{height:inherit;box-sizing:border-box;overflow:hidden;position:relative}.d-grid .d-grid-body .d-grid-row>td>div>div>input[type=text]{padding:0 4px;vertical-align:top;border:none;height:100%;width:100%;box-sizing:border-box}.d-grid .d-grid-body .d-grid-row>td>div>div>input[type=text]::-ms-clear,.d-grid .d-grid-body .d-grid-row>td>div>div>input[type=text]::-ms-reveal{display:none}.d-grid .d-grid-body .d-grid-row>td>div>div>input[type=text].readonly-input{color:gray;background-color:#ebebe4}.d-grid .d-grid-body .d-grid-row>td>div>div>.fi-multilangs{position:absolute;height:14px;top:50%;right:4px;margin-top:-8px;font-size:14px;font-weight:300;cursor:pointer}.d-grid .d-grid-body .d-grid-row>td>div>div>.fi-multilangs:before{content:"\F022"}
|
||||
/*# sourceMappingURL=design-grid.min.css.map*/
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///./src/src/design-grid.scss"],"names":[],"mappings":"AAwDA,QACE,yBACA,kBACA,iBACA,6CACA,eAAgB,CALlB,6BAOI,WAtCF,SACA,UAuCE,YACA,yBACA,iBACA,mBACA,kBACA,+BApEmB,CAsDvB,gCA/BE,SACA,UA+CI,qBACA,kBAAmB,CAlBzB,oCAoBQ,gBACA,gBAAiB,CArBzB,uBA0BI,gBACA,yBApDF,kBAAmB,CAyBrB,wCAxCE,sBACA,yBACA,qBACA,wBACA,iBACA,eAkEI,+BACA,gBACA,iBAAkB,CAjCxB,oDAPE,WACA,eACA,cAxCqB,CA6CvB,0CAuCM,qBA3FkB,CAoDxB,6CA0CM,WACA,qBAAsB,CA3C5B,wDA8CU,cACA,gBAAiB,CA/C3B,8CAoDM,kBACA,YACA,MACA,WACA,UACA,UACA,gBAAiB,CA1DvB,qBA8DI,WACA,cACA,iCACA,kBACA,SACA,QAAS,CAnEb,0CAqEM,kBACA,eACA,mBACA,wBAAyB,CAxE/B,iCAzBE,mBAqGI,sBACA,gCACA,cAAe,CA9ErB,+CAgFQ,wBAnIS,CAmDjB,kGAqFU,wBAtIQ,CAiDlB,qDAyFQ,wBAzIa,CAgDrB,wEA2FU,qBA/Ic,CAoDxB,yEA8FU,wBA9IW,CAgDrB,uKAmGY,qBAlJI,CA+ChB,+HA6GU,wBA7JW,CAgDrB,oCAiHQ,+BACA,gBACA,uBAlJN,SACA,SAAU,CA8BZ,gDAxCE,sBACA,yBACA,qBACA,wBACA,iBACA,eA0JQ,kBACA,kBA/HR,WACA,eACA,cAxCqB,CA6CvB,oDA8HY,wBAnLO,CAqDnB,oEAiIY,kBACA,WACA,OACA,SACA,WACA,UACA,gBAAiB,CAvI7B,+CA2IU,iBAAkB,CA3I5B,wCA8IU,eACA,qBAAsB,CA/IhC,4CAiJY,eACA,sBACA,gBACA,iBAAkB,CApJ9B,6DApBE,cACA,mBACA,YACA,YACA,WACA,qBAAsB,CACtB,iJAEE,YAAa,CACd,4EAmKa,WACA,wBAAoC,CAzJpD,2DA6Jc,kBACA,YACA,QACA,UACA,gBACA,eACA,gBACA,cAAe,CApK7B,kEAsKgB,eAAgB","file":"design-grid.min.css","sourcesContent":["// define variables\n//\n$header-border: #bababa;\n$header-bg: #e0e0e0;\n$header-selectd-bg: #ccc;\n$even-bg: #f4f4f4;\n$disabled-bg: gray;\n$hover-bg: #f0f0f0;\n$selected-bg: #e6e6e6;\n$active-bg: #fff;\n$body-border: #cacaca;\n$row-header-width: 30px;\n//\n// mixins\n//\n@mixin non-selectable {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n -khtml-user-select: none;\n user-select: none;\n cursor: default;\n}\n\n@mixin no-padding-margin {\n margin: 0;\n padding: 0;\n}\n\n@mixin nowrap-one-row {\n // line-height: 26px;\n white-space: nowrap;\n}\n\n@mixin text-one-row {\n // text-indent: 4px;\n padding: 0 4px;\n vertical-align: top;\n border: none;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n}\n\n@mixin fixed-width($width) {\n width: $width;\n min-width: $width;\n max-width: $width;\n}\n\n// start the content\n//\n.d-grid {\n border: 1px solid rgb(162, 173, 184);\n position: relative;\n font-size: .75rem;\n font-family: Tahoma, Geneva, Verdana, sans-serif, 'PingFang SC', 'Microsoft YaHei UI';\n overflow: hidden;\n .d-grid-table-header {\n width: 100%;\n @include no-padding-margin;\n border: none;\n border-collapse: collapse;\n border-spacing: 0;\n table-layout: fixed;\n position: relative;\n border-bottom: 1px solid $header-border;\n th {\n @include no-padding-margin;\n word-wrap: break-word;\n white-space: normal;\n div {\n overflow: hidden;\n line-height: 18px;\n }\n }\n }\n .d-grid-header {\n overflow: hidden;\n background-color: $header-bg;\n @include nowrap-one-row;\n .d-column-header {\n @include non-selectable;\n border-right: 1px solid $header-border;\n font-weight: normal;\n position: relative;\n &:first-child {\n @include fixed-width($row-header-width);\n }\n }\n .d-column-selected {\n background-color: $header-selectd-bg;\n }\n .d-column-header-text {\n margin: 4px;\n box-sizing: border-box;\n >span {\n >input {\n margin-left: 0;\n margin-right: 4px;\n }\n }\n }\n .d-column-header-split {\n position: absolute;\n height: 100%;\n top: 0;\n right: -4px;\n width: 8px;\n z-index: 1;\n cursor: ew-resize;\n }\n }\n .d-grid-body {\n width: 100%;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n position: absolute;\n top: 27px;\n bottom: 0;\n .d-grid-body-content {\n position: absolute;\n min-width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n }\n .d-grid-row {\n @include nowrap-one-row;\n background-color: #fff;\n border-bottom: 1px solid $body-border;\n min-width: 100%;\n &:nth-child(even) {\n background-color: $even-bg;\n }\n &:hover {\n background-color: $hover-bg;\n >td>input[type=\"text\"] {\n background-color: $hover-bg;\n }\n }\n &.d-grid-row-selected {\n background-color: $selected-bg;\n >td:first-child>div {\n background-color: $header-selectd-bg;\n }\n >td>input[type=\"text\"] {\n background-color: $selected-bg;\n }\n .d-grid-cell-selected {\n background-color: $active-bg;\n >input[type=\"text\"] {\n background-color: $active-bg;\n }\n // >input[type=\"text\"]:disabled {\n // background-color: rgb(235, 235, 228);\n // }\n }\n }\n .d-grid-cell-selected {\n background-color: $selLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
:root{--hover-bg-color: lightyellow;--header-border-color: #edebe9;--header-bg-color: #fafafa;--header-color: #000;--cell-color: #333;--cell-border-color: #f0f0f0;--dark-border-color: #666;--split-border-color: #b3b3b3;--dragger-bg-color: #fff;--row-bg-color: #fff;--row-hover-bg-color: #fafafa;--row-selected-bg-color: #e6f2fb;--text-disabled-color: gray;--total-split-color: #e0e0e0;--total-border-color: #ccc;--total-bg-color: #aaa;--cell-link-color: #0000ff;--loading-bg-color: hsla(0, 0%, 100%, .4);--loading-fore-color: rgba(0, 0, 0, .2);--font-size: .8125rem;--font-family: "Franklin Gothic Book", "San Francisco", "Segoe UI", "Open Sans", "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei UI", sans-serif;--line-height: 40px;--cell-line-height: 1.8em;--text-indent: 2px;--header-line-height: 36px;--total-line-height: 1.8em;--loading-transition: visibility 0s linear .12s, opacity .12s ease;--loading-size: 80px;--loading-border-radius: 20px;--arrow-size: 4px;--filter-top: 20%;--filter-width: 10px;--filtered-width: 14px;--filtered-right: 12px;--filtered-arrow-size: 12px;--split-width: 8px;--dragger-size: 20px;--dragger-opacity: 0.4;--dragger-cursor-size: 4px;--dragger-cursor-opacity: 0.6;--header-padding: 4px 12px 4px 8px;--header-filtered-padding-right: 28px;--spacing-s: 4px;--spacing-cell: 5px 4px 5px 8px;--spacing-header: 27px;--cell-button-padding: 6px 10px;--cell-button-color: #0078d4;--cell-button-border-bottom: 1px solid lightgray;--group-padding-left: 6px;--group-line-height: 22px;--group-icon-size: 24px;--group-icon-hover-color: #ccc;--ml-icon-size: 14px;--ml-icon-right: 4px;--ml-icon-margin-top: -8px}.data-grid-fixed{position:absolute;top:0;border-bottom:none}.data-grid-fixed .data-grid-body{overflow:hidden}.data-grid{position:relative;box-sizing:border-box}.data-grid:focus{outline:none}.data-grid,.data-grid input[type=text]{font-size:var(--font-size);font-family:var(--font-family)}.data-grid .data-grid-size-holder{position:absolute;white-space:nowrap;font-weight:bold;visibility:hidden}.data-grid .data-grid-hover-holder{box-sizing:border-box;position:absolute;min-height:var(--line-height);line-height:var(--cell-line-height);padding:var(--spacing-cell);background-color:var(--hover-bg-color);border:none;white-space:pre;display:flex;align-items:center}.data-grid .data-grid-table-header,.data-grid .data-grid-table-total,.data-grid .data-grid-table-total-row{width:100%;min-width:100%;margin:0;border:none;border-collapse:collapse;border-spacing:0;table-layout:fixed;position:relative}.data-grid .data-grid-table-header{table-layout:auto}.data-grid .data-grid-table-header th div{line-height:var(--header-line-height);min-height:var(--line-height)}.data-grid .data-grid-table-header th,.data-grid .data-grid-table-total th{padding:0;margin:0;word-wrap:break-word;white-space:normal}.data-grid .data-grid-table-total{width:auto;min-width:100%;float:left}.data-grid .data-grid-table-total th{font-weight:bold}.data-grid .data-grid-table-total-row>tr{line-height:var(--total-line-height)}.data-grid,.data-grid .data-grid-header{overflow:hidden}.data-grid .data-grid-header{border-bottom:1px solid var(--header-border-color);background-color:var(--header-bg-color);color:var(--header-color);-moz-user-select:none;user-select:none;-webkit-user-select:none;height:var(--header-line-height);white-space:nowrap}.data-grid .data-grid-header .data-column-header{font-weight:bold;position:relative;padding:0}.data-grid .data-grid-header .data-column-header-text{padding:var(--header-padding);box-sizing:border-box}.data-grid .data-grid-header .data-column-sub-header-text{height:100%;float:left;padding:var(--spacing-s);box-sizing:border-box;text-align:center}.data-grid .data-grid-header .arrow{width:0;height:0;top:50%;margin-top:calc(0px - var(--arrow-size)/2);right:calc(var(--arrow-size)/2);position:absolute}.data-grid .data-grid-header .arrow.asc{border-bottom:var(--arrow-size) solid var(--dark-border-color)}.data-grid .data-grid-header .arrow.desc{border-top:var(--arrow-size) solid var(--dark-border-color)}.data-grid .data-grid-header .arrow.asc,.data-grid .data-grid-header .arrow.desc{border-left:var(--arrow-size) solid rgba(0,0,0,0);border-right:var(--arrow-size) solid rgba(0,0,0,0)}.data-grid .data-grid-header .data-column-header-filter{position:absolute;top:var(--filter-top);right:0;height:100%;width:var(--filter-width)}.data-grid .data-grid-header .data-column-header-filter.filtered .no-filter,.data-grid .data-grid-header .data-column-header-filter.no-filter .filtered{display:none}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-filter{top:0;right:var(--filtered-right);width:var(--filtered-width)}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-filter .arrow{width:var(--filtered-arrow-size);height:100%;margin-top:0;top:0;border:none}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-text{padding-right:var(--header-filtered-padding-right)}Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
:root{--hover-bg-color: lightyellow;--header-border-color: #edebe9;--header-bg-color: #fafafa;--header-color: #000;--cell-color: #333;--cell-border-color: #f0f0f0;--dark-border-color: #666;--split-border-color: #b3b3b3;--dragger-bg-color: #fff;--row-bg-color: #fff;--row-hover-bg-color: #fafafa;--row-selected-bg-color: #e6f2fb;--text-disabled-color: gray;--total-split-color: #e0e0e0;--total-border-color: #ccc;--total-bg-color: #aaa;--cell-link-color: #0000ff;--loading-bg-color: hsla(0, 0%, 100%, .4);--loading-fore-color: rgba(0, 0, 0, .2);--font-size: .8125rem;--font-family: "Franklin Gothic Book", "San Francisco", "Segoe UI", "Open Sans", "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei UI", sans-serif;--line-height: 40px;--cell-line-height: 1.8em;--text-indent: 2px;--header-line-height: 36px;--total-line-height: 1.8em;--loading-transition: visibility 0s linear .12s, opacity .12s ease;--loading-size: 80px;--loading-border-radius: 20px;--arrow-size: 4px;--filter-top: 20%;--filter-width: 10px;--filtered-width: 14px;--filtered-right: 12px;--filtered-arrow-size: 12px;--split-width: 8px;--dragger-size: 20px;--dragger-opacity: 0.4;--dragger-cursor-size: 4px;--dragger-cursor-opacity: 0.6;--header-padding: 4px 12px 4px 8px;--header-filtered-padding-right: 28px;--spacing-s: 4px;--spacing-cell: 5px 4px 5px 8px;--spacing-header: 27px;--cell-button-padding: 6px 10px;--cell-button-color: #0078d4;--cell-button-border-bottom: 1px solid lightgray;--group-padding-left: 6px;--group-line-height: 22px;--group-icon-size: 24px;--group-icon-hover-color: #ccc;--ml-icon-size: 14px;--ml-icon-right: 4px;--ml-icon-margin-top: -8px}.data-grid-fixed{position:absolute;top:0;border-bottom:none}.data-grid-fixed .data-grid-body{overflow:hidden}.data-grid{position:relative;box-sizing:border-box}.data-grid:focus{outline:none}.data-grid,.data-grid input[type=text]{font-size:var(--font-size);font-family:var(--font-family)}.data-grid .data-grid-size-holder{position:absolute;white-space:nowrap;font-weight:bold;visibility:hidden}.data-grid .data-grid-hover-holder{box-sizing:border-box;position:absolute;min-height:var(--line-height);line-height:var(--cell-line-height);padding:var(--spacing-cell);background-color:var(--hover-bg-color);border:none;white-space:pre;display:flex;align-items:center}.data-grid .data-grid-table-header,.data-grid .data-grid-table-total,.data-grid .data-grid-table-total-row{width:100%;min-width:100%;margin:0;border:none;border-collapse:collapse;border-spacing:0;table-layout:fixed;position:relative}.data-grid .data-grid-table-header{table-layout:auto}.data-grid .data-grid-table-header th div{line-height:var(--header-line-height);min-height:var(--line-height)}.data-grid .data-grid-table-header th,.data-grid .data-grid-table-total th{padding:0;margin:0;word-wrap:break-word;white-space:normal}.data-grid .data-grid-table-total{width:auto;min-width:100%;float:left}.data-grid .data-grid-table-total th{font-weight:bold}.data-grid .data-grid-table-total-row>tr{line-height:var(--total-line-height)}.data-grid,.data-grid .data-grid-header{overflow:hidden}.data-grid .data-grid-header{border-bottom:1px solid var(--header-border-color);background-color:var(--header-bg-color);color:var(--header-color);-moz-user-select:none;user-select:none;-webkit-user-select:none;height:var(--header-line-height);white-space:nowrap}.data-grid .data-grid-header .data-column-header{font-weight:bold;position:relative;padding:0}.data-grid .data-grid-header .data-column-header-text{padding:var(--header-padding);box-sizing:border-box}.data-grid .data-grid-header .data-column-sub-header-text{height:100%;float:left;padding:var(--spacing-s);box-sizing:border-box;text-align:center}.data-grid .data-grid-header .arrow{width:0;height:0;top:50%;margin-top:calc(0px - var(--arrow-size)/2);right:calc(var(--arrow-size)/2);position:absolute}.data-grid .data-grid-header .arrow.asc{border-bottom:var(--arrow-size) solid var(--dark-border-color)}.data-grid .data-grid-header .arrow.desc{border-top:var(--arrow-size) solid var(--dark-border-color)}.data-grid .data-grid-header .arrow.asc,.data-grid .data-grid-header .arrow.desc{border-left:var(--arrow-size) solid rgba(0,0,0,0);border-right:var(--arrow-size) solid rgba(0,0,0,0)}.data-grid .data-grid-header .data-column-header-filter{position:absolute;top:var(--filter-top);right:0;height:100%;width:var(--filter-width)}.data-grid .data-grid-header .data-column-header-filter.filtered .no-filter,.data-grid .data-grid-header .data-column-header-filter.no-filter .filtered{display:none}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-filter{top:0;right:var(--filtered-right);width:var(--filtered-width)}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-filter .arrow{width:var(--filtered-arrow-size);height:100%;margin-top:0;top:0;border:none}.data-grid .data-grid-header .data-column-header-has-filter .data-column-header-text{padding-right:var(--header-filtered-padding-right)}Line truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
.modal-form-mask{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:table;transition:opacity .2s ease}.modal-form-wrapper{display:table-cell;vertical-align:middle}.modal-form-container{width:400px;margin:0 auto;padding:0 10px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.33);transition:all .3s ease;font-family:Helvetica,Arial,sans-serif}.modal-form-header{padding:12px 10px;padding-bottom:6px;line-height:24px;border-bottom:1px solid #e6e6e6}.modal-form-header h3{margin-top:0;color:#000;margin:0;font-size:1.2em;line-height:24px}.modal-form-header .modal-form-close-button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAK9JREFUeNpi/P//PwMtARMDjcGoBQNvAQsuCUZGRhiTA4h/4FAGl8OVGgn5wAyIpwGxJRY5E6icNV4TQDZjw0DADsSzQEqA+BwQmyNpMwLiE1C5xUDMidMcPBbAXAkz6CzUEkM0MUu8DiVgAbprrwDxRTQLGSi1gAHq6gtQg0H4KlqQ4TSH5sl0wIOIppFMl2QKymjz8GS0ebCMhsscRlxZnFpFBeNojTZqAcUAIMAAjOpcBVc9iyoAAAAASUVORK5CYII=);cursor:pointer;float:right;height:24px;width:24px}.modal-form-body{margin:20px 10px;min-height:60px}.modal-form-body .modal-form-body-icon{height:64px;width:64px;float:left;margin-right:20px;background-size:64px;background-repeat:no-repeat}.modal-form-body .modal-form-body-icon.information{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAEsNJREFUeNrsXQtwVEW67plMJjN5v8mDJCYEJQm5QEIiBFQsAkYi3uWhV2p13RvW3RgFlMUttcpaKaooKXHFxbtF3SWoLD6usoIWICvXXRcIj6jAIiQsYtxESCBPEvJ+zfY304c0h0lyzsyEnHNy/qquZDJnJqf/7+v/1X26DTabjegydsWgE0AngK4FnQC66ATQRSeALjoBdNEJoItOAF10AugyxglgMBg000cPfIcmRokzrLVEAAP304s1E/e7UdQMInLYWOsXtT7WernfbWokhtYIYODA9hZaTEyM7zPPPJOalJSUHB4eHh8YGBjr5+cXabVaQy0WS5CPj4+/2Wy2mkwmH6PR6E2bsd8hPb29vV3d3d0dXV1drZ2dnc0dHR2NbW1ttS0tLZfq6+urKioqLmzatKmsurq6nf6vHq71cQTSCTDCoAuAm2mzbty4cUpqampmVFRUWlhYWHJwcHACBX3cSN0AJcOVq1evVjY0NFy4fPny2bKysm/WrFnzD/pWB23dIkLoBPAg6ADcUlhYmJCXlzcnPj4+m4KeHhERkYzRPFo3B6tRV1cHMnxbVVVVun///i+3bNlSSd/qZIRQDBnURgAjG+nWgoKChKVLl96XkJBwd3R09NSQkJBYpZrZpqamSzU1NacqKysP7ty58y/btm2rZNahh8UUOgGGGe0AHiPaf8eOHfNTUlLy4uLiZtKRnqS2qJRahooff/zxaHl5+f5HH330c/qnVtq6GBFsSiCA/Y/O2iiZeb+0tLT4ffv2/eb8+fN/o8FYu00Dgn6gP+gX+od+sv4abjUBbsJZAQSwA5+dnZ144MCB3/7www+lNg0L+od+or8cEcYkAWDqLbSNo4HTb2iKdcw2hgT9Rb/Rf6YH41ghgIEFd6Hvvvvuz6h//EtfX1+PbQwK+o3+Qw/QB9OLQcsEAMv9Vq9ePe3o0aN/bG5uvmLTxQY9QB/QC3MLRq0RwMDKsqG7du16kpq/4zrsTt3CceiHWQOTp63BaBEAnfDJyclJKCkp+R/K9jod6iGtQR30BH2xdNigZgLYTf6mTZvmnT17dq8Or3SBvqA3T7oEZziPZCEIN+3//vvvL6VsLoqPj89UUpGmpqaGnD59mtTW1tpf+/r6kilTppDk5GTF3GNVVdU3R44c+cOyZct2siJSv7sEuFWVQOS2gXv37v3F9OnTCyMjIxVTxbtw4QLZtm0b+e6774i3t/cN/ezp6bEToKCgQDFEoASt+Prrr7fk5+dvxVwUm1tQNAEAftDnn3++Kjs7+5dBQUFRSgH/1KlT5PXXX7f3zWQyDTa5Q9rb28nKlSvJ7NmzFXHfNC64XFpa+r/z589/Ay9dJcGtIIAd/C+++GJ1VlZWYUBAQJhSwL927RopKioiZrN52L5BJ7AGGzZsINHR0Uq5/4avvvpqy9y5c3/nKgmcYe3JfBPfFYiRT8F/UkngQ3bv3k36+/slEVu4hsYvirl/6BN6hX6hZ09hZ/Qg+AHw+dTs/4rebKjSZuYOHTpEfHykLxtAfHDy5ElF9QF6hX6hZ7z0BH6eIACGixXRPg34nqQ+fxxRoDQ0NBCjUXp3YQU6Ozvt2YKSBPqFnqFv6N3dOoEnCGDeuHFjzsyZM4totJ+oRPAR+Xt5yZ90w2euXLmiuP5Az9A39E4cK6VGjQBeEyZMiLzvvvtWJSQkZBCFSmtrq6zRrwaBvqF36J+4MaVsdJM8QTSnXjN58uR8JStr3LhxpK+vj2hNoHfoHzi4iqWrBIDfsbz33nv/mZ6e/rDSFYVUDhmAXEFNgI4wRfcN+gcOxLGmwHCrCGDMycmJzszM/HlISEgU0aggb6aRt6LvEfoHDsDDFTyNLo5+/3Xr1hXefvvtd6sFzDvuuMM+oqUKLEZYWJgq+gYcgAdwkWsFXCGAee3atdNTU1N/oqbRjMkeObOcIEB4eLhq+gc8gIvcrMDowuj3mzdv3k9pYJU82FSyEhuNmmVZAJSCU1JSVNM/4AFciGP62DBSBDBv2LAhe+LEiblq8+eJiYmyMgEoNSIiQlV9BC7AR44VMMoc/b402FhCfWOc2giAVFBOJoBr8Rk1CXABPsBJqhWQQwBTQUEBzYomzFFjRI/5fTkWQA0poDMBPsCJONYUepQAlkWLFj0YFRWVTFQq48ePl0wCNaSAzgT4ACdWF/AYAVBq9KfsupuoWKRmAhj9NLVSbT8ZTv5EQolYKgFML7/8cgYdQVPVFPmLG02V7NH9cNfB/wtkUWMDTsBLihuQQgD7su6srKy7/fz8gtRsAaxWqyQLADdx2223qbafwAl4EQnLyqUSwBoXF5dJVC5JSUmSYgC1FYGcCcPL6gkCGGkOHUxToklqJ4DUWUE1poBO+joJuA2HsVHC6DcXFRVl0RwzVs3+H41GyJJqAYgT8IyAmvsKvIAbKwoZ3LEAZhpVphGNCKL7oUrCUB4CQC0Iw83sjgXA+2bqD5O0QoDhUkG4CNQLtCAMN/NQOBuHMf/2p3qDg4NjtUIARPdDxQFaCAAFYbiZyM2bYg7k9xJiAO+AgIAIrewpDHBBgMH6g/cwCaSF/gI3MsymE5KCQJo/B2vFAgw3KQQCYOZQC8JwczkIvL4VK/WbflohwHC1AJAjMjJSK/EOvxuZwVUL4GU2m320QgBM8FgsliFdgJIeEXdHGG5DbkcnJQbAfsomLZ0rgCgfT/yInxAW1gFqpa/AjQzsjO5yHcBAR0Uv0ZAgyHMWB+BvoaGhmuknw82tUjA+bOvu7u4aCwSA+cfaQa0Iw83mThBoHxhtbW3tWiLAYLUAmH4/P83Eu4Th1i/CU1YMIBCghfrGCK0oZrBqIErEWDOglRgAuJFh9hWSEgP0NTc312vJAmCix9l8gBZmAXlhuPW5SgBhGPTV19dfJhoTZ6kgCIAZQ60Iw61PhKcsFwDz0VNdXV2ltePlxKkgYoKYmBiipX4CNzLMQRVSXEDPP6lozQIg2ucDQS1NAwvCcOtxJwbAcOguLi4+XVtbqyk3IA4EERPgUTCtCPACbsRxbpHNHQL0U1/SXFVVVaElAqSlpd0QCGrNAgAv4EaGOZ7GNAz4NhZEdJ4/f/5MZmZmjlYUhHyftwDCSmCtxADAizhOLhvyTEMpFgBf0HHw4MHjLS0trVohAB774mMA/I6ZQi0IcAJexHFaWZ/bLgB+5O233z5TUVFRriU3EBsbe31xCNJCNT4K5kyAE/Bi/r/fVQLwZ+nii1pPnTr1tZYIsGTJEvu+wNhFLDc3VzP9Yji1igjgUh1AIADMSPuOHTv+eu+99+bHU9GCombMmHF9DwC4BC34fxr8VQEn4MVwc9kCiOOAzpKSkh9Onz79lZasAIBX42PggwnwAU6iANCtOoBgAWBOru3Zs+fA5cuXrxBdFCfABfgAJzJwbrHHLACS5vbt27efOnHixDFd3coT4AJ8mPnvlWIBTBK/u599IVjV8sEHH+xJTU3NSEhIiFOjonB2AB0pUBi5dOnS9YwgIyODPPDAA6rMBiorKLine truncated
|
||||
/*# sourceMappingURL=modal.css.map?77e42eace3ddaf9279a0d03b4a25a70b*/
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///./src/components/modal/modal.css"],"names":[],"mappings":"AAAA,iBACI,eAEA,MACA,OACA,WACA,YACA,gCACA,cACA,2BAA6B,CAGjC,oBACI,mBACA,qBAAuB,CAG3B,sBACI,YACA,cACA,eACA,sBACA,kBACA,qCACA,wBACA,sCAA0C,CAG9C,mBACI,kBACA,mBACA,iBACA,+BAAiC,CAErC,sBACI,aAEA,WACA,SACA,gBACA,gBAAkB,CAEtB,4CACI,+CACA,eACA,YACA,YACA,UAAY,CAGhB,iBACI,iBACA,eAAiB,CAErB,uCACI,YACA,WACA,WACA,kBACA,qBACA,2BAA6B,CAEjC,mDACI,8CAAiD,CAErD,6CACI,8CAA2C,CAE/C,gDACI,8CAA8C,CAElD,+CACI,8CAA6C,CAGjD,mBACI,aACA,mBACA,yBACA,wBAGA,aAAe,CAEnB,yBACI,kBAAoB,CAGxB,2BACI,YACA,eAAiB,CAgBrB,2CACI,SAAW,CAGf,uFAEI,6BACA,oBAAsB,CACzB","file":"css/modal.css?77e42eace3ddaf9279a0d03b4a25a70b","sourcesContent":[".modal-form-mask {\r\n position: fixed;\r\n /*z-index: 9998;*/\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, .5);\r\n display: table;\r\n transition: opacity .2s ease;\r\n}\r\n\r\n.modal-form-wrapper {\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.modal-form-container {\r\n width: 400px;\r\n margin: 0px auto;\r\n padding: 0 10px;\r\n background-color: #fff;\r\n border-radius: 2px;\r\n box-shadow: 0 2px 8px rgba(0, 0, 0, .33);\r\n transition: all .3s ease;\r\n font-family: Helvetica, Arial, sans-serif;\r\n}\r\n\r\n.modal-form-header {\r\n padding: 12px 10px;\r\n padding-bottom: 6px;\r\n line-height: 24px;\r\n border-bottom: 1px solid #e6e6e6;\r\n}\r\n.modal-form-header h3 {\r\n margin-top: 0;\r\n /*color: #42b983;*/\r\n color: #000;\r\n margin: 0;\r\n font-size: 1.2em;\r\n line-height: 24px;\r\n}\r\n.modal-form-header .modal-form-close-button {\r\n background-image: url('./assets/close.png');\r\n cursor: pointer;\r\n float: right;\r\n height: 24px;\r\n width: 24px;\r\n}\r\n\r\n.modal-form-body {\r\n margin: 20px 10px;\r\n min-height: 60px;\r\n}\r\n.modal-form-body .modal-form-body-icon {\r\n height: 64px;\r\n width: 64px;\r\n float: left;\r\n margin-right: 20px;\r\n background-size: 64px;\r\n background-repeat: no-repeat;\r\n}\r\n.modal-form-body .modal-form-body-icon.information {\r\n background-image: url('./assets/information.png')\r\n}\r\n.modal-form-body .modal-form-body-icon.error {\r\n background-image: url('./assets/error.png')\r\n}\r\n.modal-form-body .modal-form-body-icon.question {\r\n background-image: url('./assets/question.png')\r\n}\r\n.modal-form-body .modal-form-body-icon.warning {\r\n background-image: url('./assets/warning.png')\r\n}\r\n\r\n.modal-form-footer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n padding: 4px 10px 16px 0;\r\n}\r\n.modal-form-footer {\r\n height: 26px\\0;\r\n}\r\n.modal-form-footer::after {\r\n box-sizing: inherit;\r\n}\r\n\r\n.modal-form-default-button {\r\n float: right;\r\n margin-left: 8px;\r\n}\r\n\r\n/*\r\n * The following styles are auto-applied to elements with\r\n * transition=\"modal\" when their visibility is toggled\r\n * by Vue.js.\r\n *\r\n * You can easily play with the modal transition by editing\r\n * these styles.\r\n */\r\n\r\n.modal-form-enter {\r\n opacity: 0;\r\n}\r\n\r\n.modal-form-leave-active {\r\n opacity: 0;\r\n}\r\n\r\n.modal-form-enter .modal-form-container,\r\n.modal-form-leave-active .modal-form-container {\r\n -webkit-transform: scale(1.1);\r\n transform: scale(1.1);\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/modal/modal.css"],"sourceRoot":""}
|
||||
@@ -0,0 +1,68 @@
|
||||
label {
|
||||
margin-bottom: 0.1rem;
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding: .25rem .5rem;
|
||||
font-size: .875rem;
|
||||
border-radius: .2rem
|
||||
}
|
||||
|
||||
.btn+.dropdown-toggle-split {
|
||||
padding-right: .375rem;
|
||||
padding-left: .375rem
|
||||
}
|
||||
|
||||
.form-control {
|
||||
font-size: .875rem;
|
||||
padding: .25rem .45rem;
|
||||
display: inline-block;
|
||||
display: initial;
|
||||
}
|
||||
|
||||
.data-grid {
|
||||
border: none;
|
||||
border-top: 1px solid #a0a0a0;
|
||||
}
|
||||
.dialog .data-grid {
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
}
|
||||
.data-grid .data-grid-body-content,
|
||||
.data-grid .data-grid-total table,
|
||||
.data-grid .data-grid-hover-holder,
|
||||
.data-grid .data-grid-body .data-grid-row .fi-input-wrapper > input[type="text"],
|
||||
.data-grid .data-grid-body .data-grid-row .data-select > select {
|
||||
font-size: 11px;
|
||||
font-family: Verdana, 'PingFang SC', 'Microsoft YaHei UI';
|
||||
}
|
||||
.data-grid .data-grid-table-header {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.data-grid .data-grid-body .data-grid-row .alert-icon {
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
width: 16px;
|
||||
height: 26px;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
cursor: pointer;
|
||||
transition: ease-in-out .2s;
|
||||
}
|
||||
.data-grid .data-grid-body .data-grid-row .alert-lock-check {
|
||||
background-image: url('../../../../image/lock_check.png');
|
||||
}
|
||||
.data-grid .data-grid-body .data-grid-row .alert-lock-normal {
|
||||
background-image: url('../../../../image/lock_normal.png');
|
||||
}
|
||||
.data-grid .data-grid-body .data-grid-row .alert-lock-check:hover,
|
||||
.data-grid .data-grid-body .data-grid-row .alert-lock-normal:hover {
|
||||
background-image: url('../../../../image/lock_hover.png');
|
||||
}
|
||||
.data-grid .data-grid-body .data-grid-row .alert-delete {
|
||||
background-image: url('../../../../image/del_normal.png');
|
||||
}
|
||||
.data-grid .data-grid-body .data-grid-row .alert-delete:hover {
|
||||
background-image: url('../../../../image/del_hover.png');
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
div[data-v-9fe03e78]{height:24px;border-bottom:1px solid #a0a0a0}.fi-input-wrapper[data-v-9fe03e78]{width:30%;position:relative;display:inline-block}.caption[data-v-9fe03e78]{height:24px;width:100%;padding-right:22px;box-sizing:border-box}.fi-multilangs[data-v-9fe03e78]{position:absolute;height:14px;top:50%;right:4px;margin-top:-8px;font-size:14px;font-weight:300;cursor:pointer}.fi-multilangs[data-v-9fe03e78]:before{content:"\F022"}.type[data-v-9fe03e78]{width:30%;border-left:1px solid #a0a0a0;border-right:1px solid #a0a0a0}.expr[data-v-9fe03e78]{width:40%}input[data-v-9fe03e78]{text-indent:2px}input[data-v-9fe03e78],select[data-v-9fe03e78]{border:none;height:100%;padding:0;margin:0;vertical-align:top;outline:none}input.readonly[data-v-9fe03e78]{background:#d3d3d3}.selector[data-v-2b1cb026]{display:inline-block;vertical-align:bottom;height:20px;line-height:20px;border:1px solid #aaa;border-radius:2px;position:relative;cursor:default;background-color:#fff}.selector[data-v-2b1cb026]:hover{border-color:#7f7f7f}.color-block[data-v-2b1cb026]{float:left;width:28px;height:100%;box-sizing:border-box;padding:4px 6px}.color-block>div[data-v-2b1cb026]{position:absolute;width:16px;top:4px;bottom:4px}.color-block .color-block-bg[data-v-2b1cb026]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAMAAABcOc2zAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF5ubm////MURL2QAAAAJ0Uk5T/wDltzBKAAAAGElEQVR42mJggAJGKGCgiQBtTYcCgAADACcMAGFqutcTAAAAAElFTkSuQmCC)}.color-block .color-block-cell[data-v-2b1cb026]{border:1px solid hsla(0,0%,50%,.2);margin-top:-1px;margin-left:-1px;bottom:3px}.color-label[data-v-2b1cb026]{margin-right:16px}.color-drop[data-v-2b1cb026]{position:absolute;top:50%;right:4px;margin-top:-2px;width:0;height:0;border-top:4px solid #000;border-left:4px solid transparent;border-right:4px solid transparent}.wrapper[data-v-2b1cb026]{position:fixed;left:0;top:0;right:0;bottom:0;z-index:1000}.wrapper-color[data-v-2b1cb026]{margin-top:6px;position:absolute;z-index:1001}
|
||||
/*# sourceMappingURL=vue-ctrls.css.map?654b88473f5b50ce7bb77553ba8b7aa1*/
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///./src/components/vue-ctrls/aggregateItem.vue","webpack:///./src/components/vue-ctrls/colorbox.vue"],"names":[],"mappings":"AACA,qBACI,YACA,+BAAiC,CAErC,mCACI,UACA,kBACA,oBAAsB,CAE1B,0BACI,YACA,WACA,mBACA,qBAAuB,CAE3B,gCACI,kBACA,YACA,QACA,UACA,gBACA,eACA,gBACA,cAAgB,CAEpB,uCACI,eAAiB,CAErB,uBACI,UAEA,8BACA,8BAAgC,CAEpC,uBAAyB,SAAW,CAEpC,uBACI,eAAiB,CAErB,+CACI,YACA,YACA,UACA,SACA,mBACA,YAAc,CAElB,gCACI,kBAAsB,CChD1B,2BACI,qBACA,sBACA,YACA,iBACA,sBACA,kBACA,kBACA,eACA,qBAAwB,CAE5B,iCACI,oBAAsB,CAE1B,8BACI,WACA,WACA,YACA,sBACA,eAAiB,CAErB,kCACI,kBACA,WACA,QACA,UAAY,CAEhB,8CACI,8CAA0C,CAE9C,gDACI,mCACA,gBACA,iBACA,UAAY,CAEhB,8BAGI,iBAAmB,CAEvB,6BACI,kBACA,QACA,UACA,gBACA,QACA,SACA,0BACA,kCACA,kCAAoC,CAExC,0BACI,eACA,OACA,MACA,QACA,SACA,YAAc,CAElB,gCACI,eACA,kBACA,YAAc,CACjB","file":"css/vue-ctrls.css?654b88473f5b50ce7bb77553ba8b7aa1","sourcesContent":["\ndiv[data-v-9fe03e78] {\n height: 24px;\n border-bottom: 1px solid #a0a0a0;\n}\n.fi-input-wrapper[data-v-9fe03e78] {\n width: 30%;\n position: relative;\n display: inline-block;\n}\n.caption[data-v-9fe03e78] {\n height: 24px;\n width: 100%;\n padding-right: 22px;\n box-sizing: border-box;\n}\n.fi-multilangs[data-v-9fe03e78] {\n position: absolute;\n height: 14px;\n top: 50%;\n right: 4px;\n margin-top: -8px;\n font-size: 14px;\n font-weight: 300;\n cursor: pointer;\n}\n.fi-multilangs[data-v-9fe03e78]::before {\n content: '\\f022';\n}\n.type[data-v-9fe03e78] {\n width: 30%;\n /*margin-left: -1px;*/\n border-left: 1px solid #a0a0a0;\n border-right: 1px solid #a0a0a0;\n}\n.expr[data-v-9fe03e78] { width: 40%;\n}\ninput[data-v-9fe03e78] {\n text-indent: 2px;\n}\ninput[data-v-9fe03e78], select[data-v-9fe03e78] {\n border: none;\n height: 100%;\n padding: 0;\n margin: 0;\n vertical-align: top;\n outline: none;\n}\ninput.readonly[data-v-9fe03e78] {\n background: lightgray;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/vue-ctrls/aggregateItem.vue","\n.selector[data-v-2b1cb026] {\r\n display: inline-block;\r\n vertical-align: bottom;\r\n height: 20px;\r\n line-height: 20px;\r\n border: 1px solid #aaa;\r\n border-radius: 2px;\r\n position: relative;\r\n cursor: default;\r\n background-color: white;\n}\n.selector[data-v-2b1cb026]:hover {\r\n border-color: #7f7f7f;\n}\n.color-block[data-v-2b1cb026] {\r\n float: left;\r\n width: 28px;\r\n height: 100%;\r\n box-sizing: border-box;\r\n padding: 4px 6px;\n}\n.color-block > div[data-v-2b1cb026] {\r\n position: absolute;\r\n width: 16px;\r\n top: 4px;\r\n bottom: 4px;\n}\n.color-block .color-block-bg[data-v-2b1cb026] {\r\n background-image: url('assets/alpha.png');\n}\n.color-block .color-block-cell[data-v-2b1cb026] {\r\n border: 1px solid rgba(127, 127, 127, 0.2);\r\n margin-top: -1px;\r\n margin-left: -1px;\r\n bottom: 3px;\n}\n.color-label[data-v-2b1cb026] {\r\n /* font-size: 0.875em; */\r\n /* vertical-align: top; */\r\n margin-right: 16px;\n}\n.color-drop[data-v-2b1cb026] {\r\n position: absolute;\r\n top: 50%;\r\n right: 4px;\r\n margin-top: -2px;\r\n width: 0;\r\n height: 0;\r\n border-top: 4px solid #000;\r\n border-left: 4px solid transparent;\r\n border-right: 4px solid transparent;\n}\n.wrapper[data-v-2b1cb026] {\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 1000;\n}\n.wrapper-color[data-v-2b1cb026] {\r\n margin-top: 6px;\r\n position: absolute;\r\n z-index: 1001;\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/vue-ctrls/colorbox.vue"],"sourceRoot":""}
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["g5-datagrid"]=e():t["g5-datagrid"]=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var s=n[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,e),s.l=!0,s.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=66)}([function(t,e){t.exports=function(t,e,n,i,s){var o,l=t=t||{},r=typeof t.default;"object"!==r&&"function"!==r||(o=t,l=t.default);var u="function"==typeof l?l.options:l;e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns),i&&(u._scopeId=i);var a;if(s?(a=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},u._ssrRegister=a):n&&(a=n),a){var c=u.functional,d=c?u.render:u.beforeCreate;c?u.render=function(t,e){return a.call(e),d(t,e)}:u.beforeCreate=d?[].concat(d,a):[a]}return{esModule:o,exports:l,options:u}}},function(t,e){t.exports={value:function(t,e,n,i){if(null==e)return"";var s=n[t||"filter"],o=void 0;return o="function"==typeof s?s(e,i):e&&e[n.key],null==o?"":""+o},style:function(t,e,n){if(null==e)return null;var i=n[t||"styleFilter"];return"function"==typeof i?i(e):null}}},function(t,e){t.exports={math:{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}},ui:{getClientX:function(t){if(null==t)return null;null!=t.originalEvent&&(t=t.originalEvent);var e=t.touches&&t.touches[0]&&t.touches[0].clientX;return void 0===e?t.clientX:e},getOffsetLeft:function(t){for(var e=0;t;)e+=t.offsetLeft,t=t.offsetParent;return e}},func:{debounce:function(t){for(var e=arguments.length,n=Array(e>3?e-3:0),i=3;i<e;i++)n[i-3]=arguments[i];var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;clearTimeout(t.tiid),t.tiid=setTimeout(function(){return t.apply(o,n)},s)},throttle:function(t){for(var e=arguments.length,n=Array(e>3?e-3:0),i=3;i<e;i++)n[i-3]=arguments[i];var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;clearTimeout(t.tiid);var l=new Date;void 0===t.tdate||l-t.tdate>s?(t.apply(o,n),t.tdate=l):t.tiid=setTimeout(function(){return t.apply(o,n)},s)}}}},function(t,e){function n(t){null!=t.preventDefault?t.preventDefault():t.returnValue=!1}function i(t){if(!t)return-1;if(null!=t.selectionStart)return t.selectionStart;try{var e=document.selection.createRange();return e.moveStart("character",-t.value.length),e.text.length}catch(t){return 0}}function s(t){return function(e){8===e.keyCode||9===e.keyCode||46===e.keyCode||e.keyCode>=35&&e.keyCode<=40||65===e.keyCode&&e.ctrlKey||("float"!==t||110!==e.keyCode&&190!==e.keyCode?173===e.keyCode||189===e.keyCode||109===e.keyCode?"noneg"===t?n(e):this.value.indexOf("-")>=0?n(e):0!==i(e.target)&&n(e):(e.keyCode<48||e.keyCode>57)&&(e.keyCode<96||e.keyCode>105)?n(e):e.shiftKey&&n(e):this.value.indexOf(".")>=0&&n(e))}}t.exports={install:function(t){t.directive("fic-number",{bind:function(t,e){t.addEventListener("keydown",s(e.arg))}})},options:{bind:function(t,e){!0===e.value&&t.addEventListener("keydown",s(e.arg))}}}},,function(t,e){},function(t,e,n){var i=n(1);t.exports={props:{item:[Object,Array],column:Object,istotal:Boolean,istotalrow:Boolean,index:Number},computed:{ishtml:function(){return"function"==typeof this.column.html},html:function(){return this.ishtml?this.column.html(this.item,this.index,this.column):null},htmlStyle:function(){var t=void 0;return"function"==typeof this.column.htmlStyle&&(t=this.column.htmlStyle(this.item,this.index,this.column)),null==t&&(t={}),t.position="relative",t},value:function(){if(this.istotalrow){var t=this.item[this.column.key];return"function"==typeof t?t(this.item):t}var e=i.value(this.istotal&&"totalRowFilter",this.item,this.column,this.index);if(null==e||""===e||" "===e)e=" ";else if(!this.item.__isheader&&this.column.shownumber){"string"==typeof e&&(e=e.replace(/[,\s]/g,""));var n=Number(e);if(!isNaN(n)){var s=this.column.decimalPoints;n=null!=s?n.toFixed(s).split("."):String(n).split(".");var o=void 0;return o=2===n.length?"."+n[1]:"",n[0].replace(/(\d)(?=(\d{3})+(?:$|\.))/g,"$1,")+o}}return e},title:function(){return i.style("titleFilter",this.item,this.column)},customStyle:function(){return i.style(null,this.item,this.column)},customClass:function(){return i.style("classFilter",this.item,this.column)}}}},function(t,e,n){var i=n(0)(n(6),n(8),null,null,null);t.exporLine truncated
|
||||
//# sourceMappingURL=datagrid.js.map?5d96aa6dd99bbb2265bb
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap fd5ed7fe0f7e920a14ce","webpack:///js/datagrid.js","webpack:///./~/vue-loader/lib/component-normalizer.js","webpack:///./src/components/datagrid/utils.js","webpack:///./src/components/shim_math.js","webpack:///./src/components/vue-ctrls/directives.js","webpack:///column-text.vue","webpack:///./src/components/datagrid/column-text.vue","webpack:///./src/components/datagrid/column-text.vue?9a4d","webpack:///datagrid.vue","webpack:///./src/components/datagrid/datagrid.vue?db63","webpack:///column-account-budget.vue","webpack:///column-account.vue","webpack:///column-between.vue","webpack:///column-button.vue","webpack:///column-checkbox.vue","webpack:///column-combobox.vue","webpack:///column-datepicker-between.vue","webpack:///column-datepicker.vue","webpack:///column-image.vue","webpack:///column-input.vue","webpack:///column-link.vue","webpack:///datagrid-header.vue","webpack:///dataselect.vue","webpack:///./src/components/datagrid/column-account-budget.vue","webpack:///./src/components/datagrid/column-account.vue","webpack:///./src/components/datagrid/column-between.vue?a1d2","webpack:///./src/components/datagrid/column-button.vue?4366","webpack:///./src/components/datagrid/column-checkbox.vue","webpack:///./src/components/datagrid/column-combobox.vue","webpack:///./src/components/datagrid/column-datepicker-between.vue?a5e3","webpack:///./src/components/datagrid/column-datepicker.vue","webpack:///./src/components/datagrid/column-image.vue","webpack:///./src/components/datagrid/column-input.vue","webpack:///./src/components/datagrid/column-link.vue","webpack:///./src/components/datagrid/datagrid-header.vue","webpack:///./src/components/datagrid/datagrid.vue","webpack:///./src/components/dataselect/dataselect.vue?a83c","webpack:///./src/components/datagrid/column-checkbox.vue?781b","webpack:///./src/components/datagrid/column-link.vue?42a5","webpack:///./src/components/datagrid/column-input.vue?bc27","webpack:///./src/components/datagrid/column-account-budget.vue?9940","webpack:///./src/components/dataselect/dataselect.vue?991d","webpack:///./src/components/datagrid/datagrid-header.vue?3586","webpack:///./src/components/datagrid/column-button.vue?2c26","webpack:///./src/components/datagrid/column-combobox.vue?7604","webpack:///./src/components/datagrid/column-account.vue?846f","webpack:///./src/components/datagrid/column-datepicker.vue?dc09","webpack:///./src/components/datagrid/column-datepicker-between.vue?1f81","webpack:///./src/components/datagrid/column-between.vue?1a8f","webpack:///./src/components/datagrid/column-image.vue?aca5"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","rawScriptExports","compiledTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","type","default","options","render","staticRenderFns","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","functional","existing","beforeCreate","h","concat","filtername","item","column","index","filter","v","key","style","math","trunc","val","Math","floor","ceil","ui","getClientX","e","originalEvent","cx","touches","clientX","undefined","getOffsetLeft","el","left","offsetLeft","offsetParent","func","debounce","method","args","delay","window","clearTimeout","tiid","setTimeout","apply","throttle","current","Date","tdate","prevent","preventDefault","returnValue","selectionStart","input","range","document","selection","createRange","moveStart","length","text","onNumberKeydown","flag","keyCode","ctrlKey","indexOf","target","shiftKey","install","Vue","directive","bind","binding","addEventListener","arg","props","Array","istotal","Boolean","istotalrow","Number","computed","ishtml","html","htmlStyle","position","replace","isNaN","decimals","title","utils","customStyle","customClass","Component","_vm","_h","$createElement","_c","_self","domProps","_s","class","attrs","_v","clearGridWidth","objectid","next","_network","query","applyGridWidth","columns","datagrid","prefix","management","Result","tmpColumns","j","gridwidth","ColumnKey","width","Width","sort","sortKey","sortDirection","tmpcol","push","saveColumnInfo","$type","autoResize","OrderIndex","Sort","columnWidths","columnwidth","$values","sortItems","sorter","sortFilter","innerSource","a","b","__calculateStyle","source","hasAutoNewRow","height","ROW_HEIGHT","hasTotalRow","_data","__bodyContainerHeight","__bodyContainerStyle","setColumnStyle","columnStyle","$set","w","minWidth","maxWidth","backgroundColor","textAlign","align","verticalAlign","updateBodyTop","$refs","headerTable","showHeader","gridbody","offsetTop","top","getSelectedColumnIndLine truncated
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["design-grid"]=t():e["design-grid"]=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=7)}([function(e,t,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.a={DEFAULT_LINE_HEIGHT:26,assign:function(e,t){if(null==t)return e;if("function"==typeof Object.assign)return Object.assign(e,t);if(e=Object(e),null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},set:function(e,t,n){Object.prototype.hasOwnProperty.call(e,t)?e[t]=n:Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0,enumerable:!1})},value:function(e,t,n,i){if(null==t)return"";var o=n[e||"filter"],s=void 0;return s="function"==typeof o?o.call(this,t,i):t&&t["string"==typeof o?o:n.key],null==s?"":String(s)},style:function(e,t,n,o){if(null==t)return null;var s=n[e||"style"];switch(void 0===s?"undefined":i(s)){case"function":return s.call(this,t,o);case"string":return t&&t[s];default:return s}},math:{trunc:function(e){var t=Number(e);return isNaN(t)?e:(t>0?Math.floor:Math.ceil)(t)}},ui:{getClientX:function(e){if(null==e)return null;null!=e.originalEvent&&(e=e.originalEvent);var t=e.touches&&e.touches[0]&&e.touches[0].clientX;return void 0===t?e.clientX:t},getClientY:function(e){if(null==e)return null;null!=e.originalEvent&&(e=e.originalEvent);var t=e.touches&&e.touches[0]&&e.touches[0].clientY;return void 0===t?e.clientY:t},getOffsetLeft:function(e){for(var t=0;e;)t+=e.offsetLeft,e=e.offsetParent;return t}},func:{debounce:function(e){for(var t=arguments.length,n=Array(t>3?t-3:0),i=3;i<t;i++)n[i-3]=arguments[i];var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;"function"==typeof e&&(clearTimeout(e.tiid),e.tiid=setTimeout(function(){return e.apply(s,n)},o))},throttle:function(e){for(var t=arguments.length,n=Array(t>3?t-3:0),i=3;i<t;i++)n[i-3]=arguments[i];var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;if("function"==typeof e){clearTimeout(e.tiid);var l=new Date;null==e.tdate||l-e.tdate>o?(e.apply(s,n),e.tdate=l):e.tiid=setTimeout(function(){return e.apply(s,n)},o)}}}}},function(e,t,n){"use strict";function i(e,t,n,i,o,s,l,r){e=e||{};var u=typeof e.default;"object"!==u&&"function"!==u||(e=e.default);var d="function"==typeof e?e.options:e;t&&(d.render=t,d.staticRenderFns=n,d._compiled=!0),i&&(d.functional=!0),s&&(d._scopeId=s);var a;if(l?(a=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(l)},d._ssrRegister=a):o&&(a=r?function(){o.call(this,this.$root.$options.shadowRoot)}:o),a)if(d.functional){d._injectStyles=a;var c=d.render;d.render=function(e,t){return a.call(t),c(e,t)}}else{var h=d.beforeCreate;d.beforeCreate=h?[].concat(h,a):[a]}return{exports:e,options:d}}t.a=i},function(e,t,n){"use strict";function i(e,t){if(t===e)return!0;if(null!=t&&null!=e&&t.length===e.length){var n=[];t.forEach(function(e){return n[e]=1}),e.forEach(function(e){return n[e]--});var i=!1;if(n.forEach(function(e){return i=i&&0!==n[e]}),!i)return!0}return!1}var o=n(8),s=n(10),l=n(12),r=n(0),u=n(4),d=n(14);n.n(d);t.a={name:"design-grid",components:{"d-column-header":o.a,"d-grid-row-header":l.a,"d-column-input":s.a},props:{enabled:{type:Boolean,default:function(){return!0}},columns:{type:Array,default:function(){return[]},required:!0},source:{type:Array,default:function(){return[]}},window:{default:function(){return window}},defaultHeight:{type:Number,default:function(){return r.a.DEFAULT_LINE_HEIGHT}}},data:function(){return{selectedIndexes:[],selectedColIndexes:[]}},watch:{selectedIndexes:function(e){i(e,this._oldSelectedIndexes)||(this.$emit("selected-indexes-changed",e,this._oldSelectedIndexes),this._oldSelectedIndexes=e)},selectedColIndexes:function(e){i(e,this._oldSelectedColIndexes)||(this.$emit("selected-col-indexes-changed",e,this._oldSelectedColIndexes),this._oldSelectedColIndexes=e)}},mounted:function(){u.a.wrapColumns.call(this,this.columns),this.__window.addEventLiLine truncated
|
||||
//# sourceMappingURL=design-grid.min.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///design-grid.min.js","webpack:///webpack/bootstrap aa04cb035f4562a3cf8e","webpack:///./src/utils/index.js","webpack:///./node_modules/vue-loader/lib/runtime/component-normalizer.js","webpack:///src/design-grid.vue","webpack:///src/design-grid-header.vue","webpack:///./src/design-grid-func.js","webpack:///src/design-grid-column-input.vue","webpack:///src/design-grid-row-header.vue","webpack:///./src/design-grid.vue","webpack:///./src/design-grid-header.vue","webpack:///./src/design-grid-header.vue?3fb4","webpack:///./src/design-grid-column-input.vue","webpack:///./src/design-grid-column-input.vue?b36e","webpack:///./src/design-grid-row-header.vue","webpack:///./src/design-grid-row-header.vue?db60","webpack:///./src/design-grid.vue?cde2"],"names":["root","factory","exports","module","define","amd","self","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","_typeof","Symbol","iterator","obj","constructor","DEFAULT_LINE_HEIGHT","assign","target","key","set","value","writable","filtername","item","column","index","filter","v","String","style","math","trunc","val","Number","isNaN","Math","floor","ceil","ui","getClientX","e","originalEvent","cx","touches","clientX","undefined","getClientY","cy","clientY","getOffsetLeft","el","left","offsetLeft","offsetParent","func","debounce","method","_len","arguments","length","args","Array","_key","delay","context","window","clearTimeout","tiid","setTimeout","apply","throttle","_len2","_key2","current","Date","tdate","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","type","default","options","_compiled","functional","_scopeId","hook","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","checkIfSame","indexes","olds","tmp","forEach","changed","__WEBPACK_IMPORTED_MODULE_0__design_grid_header_vue__","__WEBPACK_IMPORTED_MODULE_1__design_grid_column_input_vue__","__WEBPACK_IMPORTED_MODULE_2__design_grid_row_header_vue__","__WEBPACK_IMPORTED_MODULE_3__utils__","__WEBPACK_IMPORTED_MODULE_4__design_grid_func__","__WEBPACK_IMPORTED_MODULE_5__design_grid_scss__","components","d-column-header","d-grid-row-header","d-column-input","props","enabled","Boolean","columns","required","source","defaultHeight","data","selectedIndexes","selectedColIndexes","watch","_oldSelectedIndexes","$emit","_oldSelectedColIndexes","mounted","wrapColumns","__window","addEventListener","__window_on_resize","beforeDestroy","removeEventListener","updated","updateBodyTop","computed","selectedIndex","count","selectedColIndex","methods","windowResizing","__column_header_on_mouse_down","__column_header_on_dblclick","__column_header_on_width_changing","width","widthChanging","__column_header_on_width_changed","resizeColumn","__row_header_on_height_changing","height","heightChanging","__row_header_on_height_changed","__contains_index","indexOf","__mixin_style","__height","display","__grid_body_on_scroll","scrollLeft","_scrollLeft","$refs","header","parentElement","marginLeft","__row_on_mousedown","colIndex","cancel","getSelectedColumnIndex","className","__row_header_on_dblclick","_row_on_dblclick","columnIndex","__row_on_value_changed","__WEBPACK_IMPORTED_MODULE_0__utils__","__WEBPACK_IMPORTED_MODULE_1__design_grid_func__","headerClass","setColumnStyle","textAlign","onMouseDown","onDblClick","onResizeStart","_cX","_width","_index","onResizeMove","onResizeEnd","_isResizing","minWidth","_innerWidth","_this","w","columnStyle","$set","maxWidth","align","_data","__bodyClientHeight","gridbody","clientHeight","offsetHeight","offsetTop","top","rows","gridrows","change","cell","children","row","td","autoResize","caption","visible","innerEnabled","enabledKey","isMultiLanguages","multilangs","ismultilangs","customStyle","contentStyle","paddingRight","attributes","attrs","onUpdateValue","old","onchanged","onChangeValue","onMultiLangs","getHeight","divStyle","lineHeight","_cY","_height","_innerHeight","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_design_grid_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_18fde9d9_hasScoped_false_optionsId_0_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_design_grid_vue__","__WEBPACK_IMPORTED_MODULE_2__node_modules_vue_loader_lib_runtime_component_normalizer__","Component","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_design_grid_header_vue__","__WEBPACK_IMPORTED_MODULE_1__node_mLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["g5-entrygrid"]=e():t["g5-entrygrid"]=e()}(this,function(){return function(t){function e(n){if(i[n])return i[n].exports;var o=i[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var i={};return e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=69)}({0:function(t,e){t.exports=function(t,e,i,n,o){var s,r=t=t||{},l=typeof t.default;"object"!==l&&"function"!==l||(s=t,r=t.default);var u="function"==typeof r?r.options:r;e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns),n&&(u._scopeId=n);var a;if(o?(a=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},u._ssrRegister=a):i&&(a=i),a){var c=u.functional,d=c?u.render:u.beforeCreate;c?u.render=function(t,e){return a.call(e),d(t,e)}:u.beforeCreate=d?[].concat(d,a):[a]}return{esModule:s,exports:r,options:u}}},1:function(t,e){t.exports={value:function(t,e,i,n){if(null==e)return"";var o=i[t||"filter"],s=void 0;return s="function"==typeof o?o(e,n):e&&e[i.key],null==s?"":""+s},style:function(t,e,i){if(null==e)return null;var n=i[t||"styleFilter"];return"function"==typeof n?n(e):null}}},14:function(t,e,i){function n(t){var e=t&&t.filter(function(t){return!1!==t.__visible}).length;this.fixedRows>0&&(e-=this.fixedRows);var i=e*f;this._data.__bodyContainerHeight=i,this._data.__bodyContainerStyle.height=i&&i+"px"}function o(t){var e=t.width+"px";if(void 0===t.columnStyle)this.$set(t,"columnStyle",{width:e,minWidth:e,maxWidth:e,textAlign:t.align});else{var i=t.columnStyle;this.$set(i,"width",e),this.$set(i,"minWidth",e),this.$set(i,"maxWidth",e),this.$set(i,"textAlign",t.align)}}function s(t){for(var e=0;e<t.length;e+=1){var i=t[e];void 0===i.key&&this.$set(i,"key",null),void 0===i.caption&&this.$set(i,"caption",""),void 0===i.type&&this.$set(i,"type",0),void 0===i.enabled&&this.$set(i,"enabled",!0),void 0===i.visible&&this.$set(i,"visible",!0),void 0===i.isinput&&this.$set(i,"isinput",!1),(void 0===i.width||i.width<=0)&&(this.$set(i,"width",h),this.$set(i,"autoResize",!0)),void 0===i.align&&this.$set(i,"align","left"),void 0===i.filter&&this.$set(i,"filter",null),void 0===i.defaultValue&&this.$set(i,"defaultValue",null),o.call(this,i)}}function r(){this._data.__bodyClientHeight=this.$refs.entrybody.clientHeight}var l=i(2),u=l.math,a=l.func;i(5),i(47);var c=i(68),d=i(7),f=26,h=100;t.exports={components:{"column-text":d},props:{columns:{type:Array,default:function(){return[]},required:!0},defaultItemProps:null,defaultConstructor:null,source:{type:Array,default:function(){return[]}},height:Number,bodyClass:String,fixedRows:Number,fixedColumns:Number},data:function(){return{__source:null,__bodyClientHeight:this.height||0,__bodyStyle:{height:null,left:0,top:0},__bodyContainerHeight:0,__bodyContainerStyle:{height:null},__bodyContentTop:0,__bodyContentStyle:{top:null}}},mounted:function(){if(r.call(this),n.call(this,this.innerSource),s.call(this,this.columns),this.fixedRows>0){for(var t=0,e=0;e<this.fixedRows&&e<this.innerSource.length;e+=1){var i=this.innerSource[e].__underline;i>0&&(t+=2===i?3:1)}this._data.__bodyStyle.top=this.fixedRows*f+t+"px"}this.fixedColumns>0&&(this._data.__bodyStyle.left=this.fixedColumnsWidth)},beforeDestroy:function(){},watch:{height:function(t){(isNaN(t)||t<=0)&&(this.$refs.entrybody.style.height="",t=this.$refs.entrybody.clientHeight),this._data.__bodyClientHeight=t,this._data.__bodyStyle.height=t+"px"},innerSource:function(t){n.call(this,t)},columns:function(t){null!=t&&s.call(this,t)},fixedRows:function(t){if(t>0){for(var e=0,i=0;i<t&&i<this.innerSource.length;i+=1){var n=this.innerSource[i].__underline;n>0&&(e+=2===n?3:1)}this._data.__bodyStyle.top=t*f+e+"px"}else this._data.__bodyStyle.top="0"},fixedColumns:function(t){this._data.__bodyStyle.left=t>0?this.fixedColumnsWidth:"0"}},computed:{fixedColumnsWidth:function(){for(var t=0,e=0;e<this.fixedColumns;e+=1)!1!==this.columns[e].visible&&(t+=this.columns[e].width);return t+"px"},editingIndex:function(){return!0},innerSource:{get:function(){var t=this._data.__source||this.source;return t&&t.filter(function(t){return!1!==t.__visible})},set:function(t){this._data.__source=t}},fixedRowSource:function(){return this.innerSource.slice(0,this.fixedRows)},fixedColumnSource:function(){return this.columns.slice(0,this.fixedColumns)},bodyColumnSource:function(){return this.columns.slice(this.fixedColumns>0?this.fixedColumnsLine truncated
|
||||
//# sourceMappingURL=entrygrid.js.map?f3ea8374831021f744f9
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap fd5ed7fe0f7e920a14ce?5c9f","webpack:///js/entrygrid.js","webpack:///./~/vue-loader/lib/component-normalizer.js?d4f3","webpack:///./src/components/datagrid/utils.js?660e","webpack:///entrygrid.vue","webpack:///./src/components/shim_math.js?f16c","webpack:///./src/components/entrygrid/entrygrid.vue?7fb5","webpack:///./src/components/vue-ctrls/directives.js?c0fc","webpack:///entry-input.vue","webpack:///column-text.vue?7271","webpack:///./src/components/entrygrid/entry-input.vue","webpack:///./src/components/entrygrid/entrygrid.vue","webpack:///./src/components/datagrid/column-text.vue?b89d","webpack:///./src/components/entrygrid/entry-input.vue?997a","webpack:///./src/components/datagrid/column-text.vue?9a4d*"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","rawScriptExports","compiledTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","type","default","options","render","staticRenderFns","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","functional","existing","beforeCreate","h","concat","1","filtername","item","column","index","filter","v","key","style","14","__calculateStyle","source","fixedRows","length","_data","__bodyContainerHeight","height","__bodyContainerStyle","setColumnStyle","undefined","columnStyle","$set","width","w","minWidth","maxWidth","textAlign","align","wrapColumns","columns","caption","enabled","visible","isinput","DEFAULT_WIDTH","defaultValue","windowResizing","__bodyClientHeight","$refs","entrybody","clientHeight","_require","components","columnText","props","Array","required","defaultItemProps","defaultConstructor","Number","bodyClass","String","fixedColumns","data","__source","__bodyStyle","left","top","__bodyContentTop","__bodyContentStyle","mounted","innerSource","__underline","underlines","fixedColumnsWidth","beforeDestroy","watch","isNaN","val","computed","editingIndex","set","fixedRowSource","slice","fixedColumnSource","bodyColumnSource","startIndex","ROW_HEIGHT","__window","window","__bodyClientRowCount","math","trunc","__isVirtual","virtual","__virtualList","start","end","methods","scrollToIndex","last","scrollTop","createNewObject","Ctor","resize","__window_onresize","__rowStyle","borderBottom","fontWeight","__bold","__isColumnType","t","__getColumnType","columnInput","__calc_colspan","cs","padding","colspan","func","throttle","__entrygrid_row_changedValue","$emit","__entrygrid_cell_pressArrow","target","isdown","nextElementSibling","previousElementSibling","el","tagName","focus","__entrygrid_body_onscroll","entryrows","marginLeft","entrycolumns","marginTop","bottomTop","_scrollTop","_isScrolling","2","Math","floor","ceil","ui","getClientX","e","originalEvent","cx","touches","clientX","getOffsetLeft","offsetLeft","offsetParent","debounce","method","args","delay","clearTimeout","tiid","setTimeout","apply","current","Date","tdate","20","_vm","_h","$createElement","_c","_self","staticClass","_l","rowidx","directives","rawName","__visible","expression","col","cidx","attrs","_e","tag","on","_v","ref","class","$event","arguments","staticStyle","3","prevent","preventDefault","returnValue","selectionStart","input","range","document","selection","createRange","moveStart","text","onNumberKeydown","flag","keyCode","ctrlKey","indexOf","shiftKey","install","Vue","directive","bind","binding","addEventListener","arg","42","_typeof","Symbol","iterator","obj","constructor","bold","displayValue","getDisplayValue","decimalPoints","isNumbering","numberkey","isEditing","isMultiLanguages","multilangs","enabledkey","customStyle","paddingRight","attributes","onKeyUp","inputer","onFocused","__focused","autofocus","select","updateValue","isnumber","__ob__","dep","notify","onchanged","old","changeValue","shownumber","replace","round","EPSILON","decimals","toFixed","split","onMultiLangs","47","5","6","istotal","Boolean","istotalrow","ishtml","html","htmlStyle","position","title","utils","customClass","68","Component","69","7","74","_g","_b","domProps","events","_s","8"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,UAAWH,GACe,gBAAZC,SACdA,QAAQ,gBAAkBD,IAE1BD,EAAK,gBAAkBC,KACtBK,KAAM,WACT,M,aCNE,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUN,OAGnC,IAAIC,GAASM,EAAiBD,IAC7BE,EAAGF,EACHG,GAAG,EACHT,WAUD,OANAU,GAAQJ,GAAUK,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASK,GAG/DJ,EAAOQ,GAAI,EAGJR,EAAOD,QAvBf,GAAIO,KA+DJ,OAnCAF,GAAoBO,EAAIF,EAGxBL,EAAoBQ,EAAIN,EAGxBF,EAAoBG,EAAI,SAASM,GAAS,MAAOA,IAGjDT,EAAoBU,EAAI,SAASf,EAASgB,EAAMC,GAC3CZ,EAAoBa,EAAElB,EAASgB,IAClCG,OAAOC,eAAeLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("$")):"function"==typeof define&&define.amd?define(["$"],t):"object"==typeof exports?exports["g5-gridview"]=t(require("$")):e["g5-gridview"]=t(e.$)}(this,function(e){return function(e){function t(r){if(i[r])return i[r].exports;var s=i[r]={i:r,l:!1,exports:{}};return e[r].call(s.exports,s,s.exports,t),s.l=!0,s.exports}var i={};return t.m=e,t.c=i,t.i=function(e){return e},t.d=function(e,i,r){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=24)}({11:function(e,t){e.exports={userAgent:navigator.userAgent.toLowerCase(),isMobile:function(){return/mobile/.test(this.userAgent)},isChrome:function(){return/chrom(e|ium)/.test(this.userAgent)}}},2:function(e,t){e.exports={math:{trunc:function(e){return(e>0?Math.floor:Math.ceil)(e)}},ui:{getClientX:function(e){if(null==e)return null;null!=e.originalEvent&&(e=e.originalEvent);var t=e.touches&&e.touches[0]&&e.touches[0].clientX;return void 0===t?e.clientX:t},getOffsetLeft:function(e){for(var t=0;e;)t+=e.offsetLeft,e=e.offsetParent;return t}},func:{debounce:function(e){for(var t=arguments.length,i=Array(t>3?t-3:0),r=3;r<t;r++)i[r-3]=arguments[r];var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;clearTimeout(e.tiid),e.tiid=setTimeout(function(){return e.apply(n,i)},s)},throttle:function(e){for(var t=arguments.length,i=Array(t>3?t-3:0),r=3;r<t;r++)i[r-3]=arguments[r];var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;clearTimeout(e.tiid);var l=new Date;void 0===e.tdate||l-e.tdate>s?(e.apply(n,i),e.tdate=l):e.tiid=setTimeout(function(){return e.apply(n,i)},s)}}}},24:function(e,t,i){function r(e){this.columns=[],this._source=[],this.source=this._source,this.lang={all:"( All )",ok:"OK",reset:"Reset"},this.virtualCount=U,this.rowHeight=27,this.filterRowHeight=26,this.total=null,this.height=null,this.virtual=!1,this.startIndex=0,this.sortIndex=-1,this.sortDirection=1,this.selectedColumnIndex=-1,this.selectedIndexes=[],this.canMultiSelect=!1,this.allowHtml=!1,this.oddStyle=!1,this.$parent=e,this.$el=null,this.$refs={},this.$elems={},this.$window=window,this.willselect=null,this.selectedrowchanged=null,this.celldblclick=null,this.cellclick=null,this.rowdblclick=null,this.columnchanged=null}function s(e){return Array.prototype.slice.call(e.parentNode.children).indexOf(e)}function n(e,t){(t||!this._innerwidth&&!this._isdragging&&this._istouchdown)&&(delete this._istouchdown,this.sortable&&"INPUT"!==e.target.tagName&&"data-column-header-filter"!==e.target.className&&!e.target.classList.contains("arrow")&&"use"!==e.target.tagName.toLowerCase()&&_.call(e.data,this))}function l(e,t){if(null==e)return"";var i=e[t];return void 0===i&&(i=e),i}function o(e,t){var i=l(e,t);return Array.isArray(i)?i.join(","):i}function a(e,t){for(var i={},r=0;r<this.length;r+=1){var s=this[r],n=s.Values||s,l=null==e?n:n[e],a=o(l,t);null==i[a]&&(i[a]=l)}return null==Object.values&&(Object.values=function(e){var t=[];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.push(e[i]);return t}),Object.values(i)}function d(e){return null==e?String(null):String(e).toLowerCase()}function h(e,t){return function(i){if(null!=i){var r=L(i.target);r.data("item").__checked=r.prop("checked")}for(var s=e.find(".data-filter-items-item input"),n=0;n<s.length;n+=1)if(!L(s[n]).prop("checked"))return void t.prop("checked",!1);t.prop("checked",!0)}}function c(e,t,i){for(var r=h(e,i),s=0;s<t.length;s+=1){var n=t[s],o=L('<div class="data-filter-items-item"></div>'),a=L("<label></label>"),d=L('<input type="checkbox"></input>').data("item",n),c=void 0;if(this.filterCustom||"function"!=typeof this.filter)c=l(n,"DisplayValue");else{var f={};f[this.key]=n,c=this.filter(f)}d.data("text",c).prop("checked",n.__checked).on("change",r),a.append(d),a.append(L('<layer class="check-box-inner"><svg><use xlink:href="#gridview-check"></use></svg></layer>'));var u=L("<span></span>").text(c);a.append(u),o.append(a),e.append(o)}}function f(e,t,i,r){t.children(".data-filter-items-sizeholder").remove(),t.children(".data-filter-items-contentholder").remove();var s=e.filterRowHeight,n=i.length*s;this.__filterHeight=n;var l=L('<div class="data-filter-items-sizeholder"></div>').css("height",n);t.append(l);var a=L('<div class="data-filter-items-contentholder"></div>').css("top",s);t.data("items",i);for(var d=0;d<i.length;d+=1){var h=i[d];h.__checked=null==this.filterValues||this.filterValues.indexOf(o(h,"Value"))>=0}var f=void 0;f=i.length>12?i.slice(0,12):i,c.call(this,a,f,r),t.append(a)}function u(e,t){var i=e.filterRowHeight;if((t-=t%(2*i)+i)<0)t=0;else{var r=this.__filterHeight-12*i;rLine truncated
|
||||
//# sourceMappingURL=gridview.js.map?ab92a4cdb00c256beafb
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6***","webpack:///webpack/bootstrap e3bd17c0d0c15192fc59?223a***","webpack:///js/gridview.js","webpack:///./src/components/browser.js","webpack:///./src/components/shim_math.js?f16c*","webpack:///./src/components/datagrid/gridview.js","webpack:///external \"$\"?57aa"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","11","userAgent","navigator","toLowerCase","isMobile","test","isChrome","2","math","trunc","val","Math","floor","ceil","ui","getClientX","e","originalEvent","cx","touches","clientX","undefined","getOffsetLeft","el","left","offsetLeft","offsetParent","func","debounce","method","args","delay","context","window","clearTimeout","tiid","setTimeout","apply","throttle","current","Date","tdate","24","GridView","columns","_source","source","lang","all","ok","reset","virtualCount","VIRTUAL_COUNT","rowHeight","filterRowHeight","total","height","virtual","startIndex","sortIndex","sortDirection","selectedColumnIndex","selectedIndexes","canMultiSelect","allowHtml","oddStyle","$parent","$el","$refs","$elems","$window","willselect","selectedrowchanged","celldblclick","cellclick","rowdblclick","columnchanged","indexOfColumn","target","Array","slice","parentNode","children","indexOf","headerClick","force","_innerwidth","_isdragging","_istouchdown","sortable","tagName","className","classList","contains","sortColumn","data","getDefault","obj","prop","v","getSpecialDefault","def","isArray","join","distinct","key","ckey","dict","length","item","Values","values","k","push","str","String","onFilterChecked","holder","cball","$","__checked","cbs","find","doFillFilterItem","array","onchecked","itemdiv","wrapper","checkbox","displayValue","filterCustom","filter","on","append","label","text","fillFilterItem","grid","items","remove","__filterHeight","sizeHolder","css","itemsHolder","filterValues","filterOnScroll","top","bottomTop","__filterTop","__filterStartIndex","__itemHolder","empty","__checkboxAll","style","filterClick","parent","document","body","closePanel","e1","removeClass","off","divpanel","stopPropagation","th","currentTarget","offset","width","itemHolder","onFillItems","hasSearch","onFillSearch","search","searchHolder","searchbox","allowSearch","searchiconClick","e2","focus","searchicon","addEventListener","REFRESH_INTERVAL","scrollTop","passive","itemdivall","checkboxall","filterSource","innerSource","sort","a","b","citems","Value","DisplayValue","column","boxes","checked","filterFunctions","functionBar","buttonReset","onFilterReset","refreshGrid","afterFilter","addClass","buttonOk","onFilterOK","filters","map","dragStart","orderable","isfixed","_cx","_index","dragmove","isdragging","MINI_DRAG_OFFSET","_offset","columnDragging","dragend","columnDragstop","bindDragmove","bind","resizeStart","preventDefault","_width","baseWidth","fixedColumns","visible","_baseWidth","resizemove","MINI_COLUMN_WIDTH","widthChanging","resizeend","autoResize","widthChanged","bindResizemove","changeColumnWidth","index","isFixed","oldWidth","w","element","header","maxWidth","minWidth","header_fixed","$el_fixed","rows","gridbodyContent","gridbodyContainer","offsetWidth","gridbodyContent_fixed","gridbodyContainer_fixed","gridtotalbody","gridtotalbody_fixed","resize","columnchanging","COLUMN_CHANGED_TYPE","RESIZE","col","dragger","show","draggerCursor","idx","count","_orderIndex","hide","targetIndex","headers","totals","tmp","insertAfter","j","insertBefore","hd","REORDER","keyid","MAX_COLUMN_BIT","_overflows","auto","reload","fixedHeaders","fixedHd","comparer","sortFilter","ta","tb","refresh","SORT","checkAllColumn","check","itemEnabled","enabled","onchanged","checkall","__internal_changed","checkRow","scrollToTop","flag","ROW_HEIGHT","REDUN_NUM","_containerHeight","_bodyRowCount","_scrollTop","gridonscroll","resetScroll","getColumnIndex","istotal","max","rowOnClick","colindex","selectedIndex","selected","ctrlKey","splice","shiftKey","start","end","isEditable","__selected","changes","__changed","fixedRows","colIndex","allowFullrowClick","buttons","TouchEvent","rowOnDblClick","columnIndex","parents","adjustRows","gridcontent","cols","cnt","jGridContent","childrencount","onrowdblclick","onrowclick","row","cell","isurl","type","COLUMN_TYPE","checkit","box","checkinner","lastRow","last","hasClass","gridbodyMouseMove","nowKeyid","display","oldkeyid","overflow","targetContent","scrollWidth","innerText","offsetTop","holderWidth","_bodyClientWidth","maxleft","_scrollLeft","offsetHeight","cssText","tableHeaderMouseEnter","gridbody","gridbody_fixed","createHeader","prefix","table","sortclick","attr","isShrink","_needAutoResize","caption","headerWidth","align","click","draLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("Vue")):"function"==typeof define&&define.amd?define(["Vue"],e):"object"==typeof exports?exports["g5-modal"]=e(require("Vue")):t["g5-modal"]=e(t.Vue)}(this,function(t){return function(t){function e(n){if(o[n])return o[n].exports;var s=o[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,e),s.l=!0,s.exports}var o={};return e.m=t,e.c=o,e.i=function(t){return t},e.d=function(t,o,n){e.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(o,"a",o),o},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=16)}({0:function(t,e){t.exports=function(t,e,o,n,s){var r,a=t=t||{},i=typeof t.default;"object"!==i&&"function"!==i||(r=t,a=t.default);var l="function"==typeof a?a.options:a;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns),n&&(l._scopeId=n);var c;if(s?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):o&&(c=o),c){var d=l.functional,u=d?l.render:l.beforeCreate;d?l.render=function(t,e){return c.call(e),u(t,e)}:l.beforeCreate=u?[].concat(u,c):[c]}return{esModule:r,exports:a,options:l}}},10:function(t,e,o){var n=o(0)(o(29),o(54),null,null,null);t.exports=n.exports},14:function(e,o){e.exports=t},16:function(t,e,o){function n(t,e,o,n){var s=n.$mount();return s.message=t,s.header=e,s.icon=o,s.$on("close",function(){s.show=!1,setTimeout(function(){s.$destroy(),document.body.removeChild(s.$el),s=null},0)}),document.body.appendChild(s.$el),s.show=!0,s}var s=o(14),r=o(10),a=o(9),i=s.extend(r),l=s.extend(a);t.exports={vueModal:r,showMessage:function(t,e,o,s){var r=n(t,e,o||"information",new i);null!=s&&r.$on("close",s)},showConfirm:function(t,e,o,s){var r=n(t,e,"question",new l);null==o&&null==s||r.$on("close",function(t){t&&null!=o&&o(),t||null==s||s()})}}},28:function(t,e,o){var n=o(4);o(5);var s=n();s.methods={close:function(t){this.$emit("close",t)}},t.exports=s},29:function(t,e,o){var n=o(4);o(5);var s=n();s.methods={close:function(){this.$emit("close",this)}},t.exports=s},4:function(t,e){var o=1e3;t.exports=function(){return{props:{show:{type:Boolean,default:!1},message:String,header:String,icon:String},data:function(){return{zindex:0}},watch:{show:function(t){t?(o+=1,this.zindex=o):o-=1}},computed:{zindexStyle:function(){return{zIndex:this.zindex}},dialogHeader:function(){return this.header||"Header"}}}}},5:function(t,e){},50:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("transition",{attrs:{name:"modal-form"}},[t.show?o("div",{ref:"mask",staticClass:"modal-form-mask",style:t.zindexStyle},[o("div",{staticClass:"modal-form-wrapper"},[o("div",{staticClass:"modal-form-container"},[o("div",{staticClass:"modal-form-header"},[o("em",{staticClass:"modal-form-close-button",on:{click:t.close}}),t._v(" "),t._t("header",[o("h3",[t._v(t._s(t.dialogHeader))])])],2),t._v(" "),o("div",{staticClass:"modal-form-body"},[t._t("default",[t.icon?o("em",{staticClass:"modal-form-body-icon",class:t.icon}):t._e(),t._v(" "),o("span",{staticClass:"modal-form-body-message"},[t._v(t._s(t.message))])])],2),t._v(" "),o("div",{staticClass:"modal-form-footer"},[t._t("footer",[o("button",{staticClass:"modal-form-default-button",on:{click:function(e){t.close(!0)}}},[t._v("Yes")]),t._v(" "),o("button",{staticClass:"modal-form-default-button",on:{click:function(e){t.close(!1)}}},[t._v("No")])])],2)])])]):t._e()])},staticRenderFns:[]}},54:function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("transition",{attrs:{name:"modal-form"}},[t.show?o("div",{ref:"mask",staticClass:"modal-form-mask",style:t.zindexStyle},[o("div",{staticClass:"modal-form-wrapper"},[o("div",{staticClass:"modal-form-container"},[o("div",{staticClass:"modal-form-header"},[o("em",{staticClass:"modal-form-close-button",on:{click:t.close}}),t._v(" "),t._t("header",[o("h3",[t._v(t._s(t.dialogHeader))])])],2),t._v(" "),o("div",{staticClass:"modal-form-body"},[t._t("default",[t.icon?o("em",{staticClass:"modal-form-body-icon",class:t.icon}):t._e(),t._v(" "),o("span",{staticClass:"modal-form-body-message"},[t._v(t._s(t.message))])])],2),t._v(" "),o("div",{staticClass:"modal-form-footer"},[t._t("footer",[o("button",{staticClass:"btn btn-primary modal-form-default-button",on:{click:t.close}},[t._v("OK")])])],2)])])]):t._e()])},staticRenderFns:[]}},9:function(t,e,o){var n=o(0)(o(28),o(50),null,null,null);t.exports=n.exports}})});
|
||||
//# sourceMappingURL=modal.js.map?82c05412763fe0ccff3b
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///js/modal.js","webpack:///webpack/bootstrap 0b8831948b51b91436a5?9459","webpack:///./~/vue-loader/lib/component-normalizer.js?d4f3","webpack:///./src/components/modal/modal.vue","webpack:///external \"Vue\"","webpack:///./src/components/modal/modal.js","webpack:///modal-confirm.vue","webpack:///modal.vue","webpack:///./src/components/modal/store.js","webpack:///./src/components/modal/modal-confirm.vue?5476","webpack:///./src/components/modal/modal.vue?edad","webpack:///./src/components/modal/modal-confirm.vue"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_14__","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","rawScriptExports","compiledTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","type","default","options","render","staticRenderFns","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","functional","existing","beforeCreate","h","concat","10","Component","14","16","showDialog","message","title","icon","instance","vm","$mount","header","$on","show","setTimeout","$destroy","document","body","removeChild","$el","appendChild","Vue","modal","modalConfirm","VueModal","extend","ConfirmModal","vueModal","showMessage","onclose","showConfirm","onyes","onno","flag","28","store","props","methods","close","$emit","29","4","zindex","Boolean","String","data","watch","val","computed","zindexStyle","zIndex","dialogHeader","5","50","_vm","_h","$createElement","_c","_self","attrs","ref","staticClass","style","on","click","_v","_t","_s","class","_e","$event","54","9"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,EAAAG,QAAA,QACA,kBAAAC,gBAAAC,IACAD,QAAA,OAAAJ,GACA,gBAAAC,SACAA,QAAA,YAAAD,EAAAG,QAAA,QAEAJ,EAAA,YAAAC,EAAAD,EAAA,MACCO,KAAA,SAAAC,GACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAT,OAGA,IAAAC,GAAAS,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAZ,WAUA,OANAO,GAAAE,GAAAI,KAAAZ,EAAAD,QAAAC,IAAAD,QAAAQ,GAGAP,EAAAW,GAAA,EAGAX,EAAAD,QAvBA,GAAAU,KA+DA,OAnCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAG,EAAA,SAAAK,GAA2C,MAAAA,IAG3CR,EAAAS,EAAA,SAAAjB,EAAAkB,EAAAC,GACAX,EAAAY,EAAApB,EAAAkB,IACAG,OAAAC,eAAAtB,EAAAkB,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAX,EAAAkB,EAAA,SAAAzB,GACA,GAAAkB,GAAAlB,KAAA0B,WACA,WAA2B,MAAA1B,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAO,GAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,EAAAC,IAGtDrB,EAAAwB,EAAA,SAGAxB,IAAAyB,EAAA,MDgBMC,EACA,SAAUjC,EAAQD,GE5ExBC,EAAAD,QAAA,SACAmC,EACAC,EACAC,EACAC,EACAC,GAEA,GAAAC,GACAC,EAAAN,QAGAO,QAAAP,GAAAQ,OACA,YAAAD,GAAA,aAAAA,IACAF,EAAAL,EACAM,EAAAN,EAAAQ,QAIA,IAAAC,GAAA,kBAAAH,GACAA,EAAAG,QACAH,CAGAL,KACAQ,EAAAC,OAAAT,EAAAS,OACAD,EAAAE,gBAAAV,EAAAU,iBAIAR,IACAM,EAAAG,SAAAT,EAGA,IAAAU,EA4BA,IA3BAT,GACAS,EAAA,SAAAC,GAEAA,EACAA,GACA5C,KAAA6C,QAAA7C,KAAA6C,OAAAC,YACA9C,KAAA+C,QAAA/C,KAAA+C,OAAAF,QAAA7C,KAAA+C,OAAAF,OAAAC,WAEAF,GAAA,mBAAAI,uBACAJ,EAAAI,qBAGAhB,GACAA,EAAAxB,KAAAR,KAAA4C,GAGAA,KAAAK,uBACAL,EAAAK,sBAAAC,IAAAhB,IAKAK,EAAAY,aAAAR,GACGX,IACHW,EAAAX,GAGAW,EAAA,CACA,GAAAS,GAAAb,EAAAa,WACAC,EAAAD,EACAb,EAAAC,OACAD,EAAAe,YACAF,GAOAb,EAAAC,OAAA,SAAAe,EAAAX,GAEA,MADAD,GAAAnC,KAAAoC,GACAS,EAAAE,EAAAX,IAPAL,EAAAe,aAAAD,KACAG,OAAAH,EAAAV,IACAA,GAUA,OACAR,WACAxC,QAAAyC,EACAG,aF0FMkB,GACA,SAAU7D,EAAQD,EAASQ,GGnLjC,GAAAuD,GAAAvD,EAAA,GAEAA,EAAA,IAEAA,EAAA,IAEA,KAEA,KAEA,KAGAP,GAAAD,QAAA+D,EAAA/D,SH0LMgE,GACA,SAAU/D,EAAQD,GIxMxBC,EAAAD,QAAAM,GJ8MM2D,GACA,SAAUhE,EAAQD,EAASQ,GKxMjC,QAAS0D,GAAWC,EAASC,EAAOC,EAAMC,GACtC,GAAIC,GAAKD,EAASE,QAelB,OAdAD,GAAGJ,QAAUA,EACbI,EAAGE,OAASL,EACZG,EAAGF,KAAOA,EAEVE,EAAGG,IAAI,QAAS,WACZH,EAAGI,MAAO,EACVC,WAAW,WACPL,EAAGM,WACHC,SAASC,KAAKC,YAAYT,EAAGU,KAC7BV,EAAK,MACN,KAEPO,SAASC,KAAKG,YAAYX,EAAGU,KAC7BV,EAAGI,MAAO,EACHJ,EAvBX,GAAMY,GAAM3E,EAAQ,IACd4E,EAAQ5E,EAAQ,IAChB6E,EAAe7E,EAAQ,GAEvB8E,EAAWH,EAAII,OAAOH,GACtBI,EAAeL,EAAII,OAAOF,EAqBhCpF,GAAOD,SACHyF,SAAUL,EAEVM,YAHa,SAGDvB,EAASC,EAAOC,EAAMsB,GAC9B,GAAMpB,GAAKL,EAAWC,EAASC,EAAOC,GAAQ,cAAe,GAAIiB,GAClD,OAAXK,GACApB,EAAGG,IAAI,QAASiB,IAIxBC,YAVa,SAUDzB,EAASC,EAAOyB,EAAOC,GAC/B,GAAMvB,GAAKL,EAAWC,EAASC,EAAO,WAAY,GAAIoB,GACzC,OAATK,GAAyB,MAARC,GACjBvB,EAAGG,IAAI,QAAS,SAACqB,GACTA,GAAiB,MAATF,GACRA,IAECE,GAAgB,MAARD,GACTA,SLyNdE,GACA,SAAU/F,EAAQD,EAASQ,GM1OjC,GAAAyF,GAAAzF,EAAA,EACAA,GAAA,EAEA,IAAA0F,GAAAD,GACAC,GAAAC,SN+OIC,MAAO,SAAeL,GAClB1F,KAAKgG,MAAM,QM7OnBN,KAGA9F,EAAAD,QAAAkG,GNkPMI,GACA,SAAUrG,EAAQD,EAASQ,GO9PjC,GAAAyF,GAAAzF,EAAA,EACAA,GAAA,EAEA,IAAA0F,GAAAD,GACAC,GAAAC,SPmQIC,MAAO,WACH/F,KAAKgG,MAAM,QOjQnBhG,QAGAJ,EAAAD,QAAAkG,GPsQMK,EACA,SAAUtG,EAAQD,GQ5SxB,GAAIwG,GAAS,GAEbvG,GAAOD,QAAU,WACb,OACIkG,OACIvB,MACIjC,KAAM+D,QACN9D,SAAS,GAEbwB,QAASuC,OACTjC,OAAQiC,Line truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("$"),require("VueColor")):"function"==typeof define&&define.amd?define(["$","VueColor"],t):"object"==typeof exports?exports["g5-vue-ctrls"]=t(require("$"),require("VueColor")):e["g5-vue-ctrls"]=t(e.$,e.VueColor)}(this,function(e,t){return function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=28)}({0:function(e,t){e.exports=function(e,t,n,o,r){var i,s=e=e||{},a=typeof e.default;"object"!==a&&"function"!==a||(i=e,s=e.default);var c="function"==typeof s?s.options:s;t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns),o&&(c._scopeId=o);var l;if(r?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},c._ssrRegister=l):n&&(l=n),l){var u=c.functional,p=u?c.render:c.beforeCreate;u?c.render=function(e,t){return l.call(t),p(e,t)}:c.beforeCreate=p?[].concat(p,l):[l]}return{esModule:i,exports:s,options:c}}},12:function(e,t){function n(){this._dictionary={}}n.prototype.get=function(e){return this._dictionary[e]},n.prototype.clear=function(){this._dictionary={}},n.prototype.add=function(e,t){this._dictionary[e]=t},e.exports=n},17:function(e,t,n){function o(e){n(52)}var r=n(0)(n(45),n(85),o,"data-v-9fe03e78",null);e.exports=r.exports},18:function(e,t,n){function o(e){n(48)}var r=n(0)(n(46),n(71),o,"data-v-2b1cb026",null);e.exports=r.exports},28:function(e,t,n){var o=n(17),r=n(18),i=n(12),s=n(3);e.exports={aggregateItem:o,colorbox:r,Dictionary:i,directives:s}},3:function(e,t){function n(e){null!=e.preventDefault?e.preventDefault():e.returnValue=!1}function o(e){if(!e)return-1;if(null!=e.selectionStart)return e.selectionStart;try{var t=document.selection.createRange();return t.moveStart("character",-e.value.length),t.text.length}catch(e){return 0}}function r(e){return function(t){8===t.keyCode||9===t.keyCode||46===t.keyCode||t.keyCode>=35&&t.keyCode<=40||65===t.keyCode&&t.ctrlKey||("float"!==e||110!==t.keyCode&&190!==t.keyCode?173===t.keyCode||189===t.keyCode||109===t.keyCode?"noneg"===e?n(t):this.value.indexOf("-")>=0?n(t):0!==o(t.target)&&n(t):(t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)?n(t):t.shiftKey&&n(t):this.value.indexOf(".")>=0&&n(t))}}e.exports={install:function(e){e.directive("fic-number",{bind:function(e,t){e.addEventListener("keydown",r(t.arg))}})},options:{bind:function(e,t){!0===t.value&&e.addEventListener("keydown",r(t.arg))}}}},4:function(t,n){t.exports=e},45:function(e,t){e.exports={props:{field:String,item:Object,source:Array},data:function(){return{itemReadonly:!0}},computed:{innerItem:function(){return this.item||{}}},mounted:function(){this.typeChanged(this.$refs.type,!0)},methods:{typeChanged:function(e,t){if(this.innerItem.type=e.value,this.itemReadonly=!/^expression$/i.test(e.value),this.itemReadonly)if(null==this.innerItem.type||/^\s*$/.test(this.innerItem.type))this.innerItem.expression="";else{var n=Array.prototype.filter.call(e.children,function(e){return e.selected});n.length>0&&(this.innerItem.expression=n[0].innerText+"()")}else t&&null!=this.innerItem.expression&&0!==this.innerItem.expression.length||(this.innerItem.expression="Count(["+this.field+"])")},valueChanged:function(e){this.innerItem.expression=e.value},onMultiLangs:function(){"function"==typeof this.innerItem.onMultiLangs&&this.innerItem.onMultiLangs()}}}},46:function(e,t,n){function o(e){return e.getBoundingClientRect()}function r(e){var t=/^#([\dA-Fa-f]{2})([\dA-Fa-f]{2})([\dA-Fa-f]{2})$/.exec(e);return null==t?{r:0,g:0,b:0,a:1}:{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16),a:1}}var i=n(88),s=n(4);null==i&&(i=window.VueColor),null==i&&null!=window.parent&&(i=window.parent.VueColor);var a=i.Sketch,c=a.data().presetColors;e.exports={props:{value:[String,Object],presets:Array,transparent:Boolean,enabled:null,window:null},data:function(){if(this.transparent&&(null==this.value||0===this.value.length))return{colorPanelVisible:!1,colorObject:{hex:"None",rgba:{r:0,g:0,b:0,a:0}}};var e=this.value||"#000000";return e.length>7&&(e="#"+e.substring(3)),{colorPanelVisible:!1,colorObject:{hex:e,rgba:r(e)}}},computed:{hexColor:function(){var e=this.colorObject.rgba||{r:0,g:0,b:0,a:1};return"rgba("+e.r+", "+e.g+", "+e.b+", "+e.a+")"},colorLabel:function(){var e=this.colorObject.hex,t=this.presets.filter(function(t){return t.color===e});return t&&t.length>0?t[0].text:e}},componentsLine truncated
|
||||
//# sourceMappingURL=vue-ctrls.js.map?ee21d614aa0b2fb92c7c
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6*","webpack:///js/vue-ctrls.js","webpack:///webpack/bootstrap a865c44c237f210181de?cd09*","webpack:///./~/vue-loader/lib/component-normalizer.js?d4f3*","webpack:///./src/components/vue-ctrls/dictionary.js","webpack:///./src/components/vue-ctrls/aggregateItem.vue?6e25","webpack:///./src/components/vue-ctrls/colorbox.vue?1c1b","webpack:///./src/components/vue-ctrls/ctrls.js","webpack:///./src/components/vue-ctrls/directives.js?c0fc*","webpack:///external \"$\"","webpack:///aggregateItem.vue","webpack:///colorbox.vue","webpack:///./src/components/vue-ctrls/colorbox.vue?a528","webpack:///./src/components/vue-ctrls/aggregateItem.vue?cbfb","webpack:///external \"VueColor\""],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_88__","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","rawScriptExports","compiledTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","type","default","options","render","staticRenderFns","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","functional","existing","beforeCreate","h","concat","12","Dictionary","_dictionary","key","clear","17","injectStyle","Component","18","28","aggregateItem","colorbox","directives","3","prevent","e","preventDefault","returnValue","selectionStart","input","range","document","selection","createRange","moveStart","length","text","onNumberKeydown","flag","keyCode","ctrlKey","indexOf","target","shiftKey","install","Vue","directive","bind","el","binding","addEventListener","arg","4","45","props","field","String","item","source","Array","data","itemReadonly","computed","innerItem","mounted","typeChanged","$refs","methods","firstload","test","expression","items","filter","children","selected","innerText","valueChanged","onMultiLangs","46","offsetPosition","getBoundingClientRect","getRgba","hex","r","exec","g","b","a","parseInt","vueColor","$","window","VueColor","sketch","Sketch","defaultPresetColors","presetColors","presets","transparent","Boolean","enabled","colorPanelVisible","colorObject","rgba","val","substring","hexColor","colorLabel","color","v","components","sketch-color","colorpicker","map","colorpicker_wrapper","detach","body","append","$el","watch","onColorChanged","$emit","onclickPanel","pos","panel","style","left","screenHeight","height","top","offsetHeight","panelHeight","onmousedownWrapper","48","52","71","_vm","_h","$createElement","_c","_self","staticClass","background","staticStyle","on","click","_v","backgroundColor","_s","_e","rawName","ref","mousedown","$event","currentTarget","attrs","85","domProps","focus","composing","$set","mouseup","change","_l","idx","class","readOnly","88"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,EAAAG,QAAA,KAAAA,QAAA,aACA,kBAAAC,gBAAAC,IACAD,QAAA,gBAAAJ,GACA,gBAAAC,SACAA,QAAA,gBAAAD,EAAAG,QAAA,KAAAA,QAAA,aAEAJ,EAAA,gBAAAC,EAAAD,EAAA,EAAAA,EAAA,WACCO,KAAA,SAAAC,EAAAC,GACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAV,OAGA,IAAAC,GAAAU,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAb,WAUA,OANAQ,GAAAE,GAAAI,KAAAb,EAAAD,QAAAC,IAAAD,QAAAS,GAGAR,EAAAY,GAAA,EAGAZ,EAAAD,QAvBA,GAAAW,KA+DA,OAnCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAG,EAAA,SAAAK,GAA2C,MAAAA,IAG3CR,EAAAS,EAAA,SAAAlB,EAAAmB,EAAAC,GACAX,EAAAY,EAAArB,EAAAmB,IACAG,OAAAC,eAAAvB,EAAAmB,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAX,EAAAkB,EAAA,SAAA1B,GACA,GAAAmB,GAAAnB,KAAA2B,WACA,WAA2B,MAAA3B,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAQ,GAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,EAAAC,IAGtDrB,EAAAwB,EAAA,SAGAxB,IAAAyB,EAAA,MDgBMC,EACA,SAAUlC,EAAQD,GE5ExBC,EAAAD,QAAA,SACAoC,EACAC,EACAC,EACAC,EACAC,GAEA,GAAAC,GACAC,EAAAN,QAGAO,QAAAP,GAAAQ,OACA,YAAAD,GAAA,aAAAA,IACAF,EAAAL,EACAM,EAAAN,EAAAQ,QAIA,IAAAC,GAAA,kBAAAH,GACAA,EAAAG,QACAH,CAGAL,KACAQ,EAAAC,OAAAT,EAAAS,OACAD,EAAAE,gBAAAV,EAAAU,iBAIAR,IACAM,EAAAG,SAAAT,EAGA,IAAAU,EA4BA,IA3BAT,GACAS,EAAA,SAAAC,GAEAA,EACAA,GACA7C,KAAA8C,QAAA9C,KAAA8C,OAAAC,YACA/C,KAAAgD,QAAAhD,KAAAgD,OAAAF,QAAA9C,KAAAgD,OAAAF,OAAAC,WAEAF,GAAA,mBAAAI,uBACAJ,EAAAI,qBAGAhB,GACAA,EAAAxB,KAAAT,KAAA6C,GAGAA,KAAAK,uBACAL,EAAAK,sBAAAC,IAAAhB,IAKAK,EAAAY,aAAAR,GACGX,IACHW,EAAAX,GAGAW,EAAA,CACA,GAAAS,GAAAb,EAAAa,WACAC,EAAAD,EACAb,EAAAC,OACAD,EAAAe,YACAF,GAOAb,EAAAC,OAAA,SAAAe,EAAAX,GAEA,MADAD,GAAAnC,KAAAoC,GACAS,EAAAE,EAAAX,IAPAL,EAAAe,aAAAD,KACAG,OAAAH,EAAAV,IACAA,GAUA,OACAR,WACAzC,QAAA0C,EACAG,aF0FMkB,GACA,SAAU9D,EAAQD,GGlLxB,QAASgE,KACL3D,KAAK4D,eAGTD,EAAWjC,UAAUL,IAAM,SAAUwC,GACjC,MAAO7D,MAAK4D,YAAYC,IAE5BF,EAAWjC,UAAUoC,MAAQ,WACzB9D,KAAK4D,gBAETD,EAAWjC,UAAUyB,IAAM,SAAUU,EAAKjD,GACtCZ,KAAK4D,YAAYC,GAAOjD,GAG5BhB,EAAOD,QLine truncated
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+16
@@ -0,0 +1,16 @@
|
||||
@charset "UTF-8";/*!
|
||||
* jQuery contextMenu - Plugin for simple contextMenu handling
|
||||
*
|
||||
* Version: v2.9.2
|
||||
*
|
||||
* Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)
|
||||
* Web: http://swisnl.github.io/jQuery-contextMenu/
|
||||
*
|
||||
* Copyright (c) 2011-2020 SWIS BV and contributors
|
||||
*
|
||||
* Licensed under
|
||||
* MIT License http://www.opensource.org/licenses/mit-license
|
||||
*
|
||||
* Date: 2020-05-13T13:55:37.023Z
|
||||
*/@-webkit-keyframes cm-spin{0%{-webkit-transform:translateY(-50%) rotate(0);transform:translateY(-50%) rotate(0)}100%{-webkit-transform:translateY(-50%) rotate(359deg);transform:translateY(-50%) rotate(359deg)}}@-o-keyframes cm-spin{0%{-webkit-transform:translateY(-50%) rotate(0);-o-transform:translateY(-50%) rotate(0);transform:translateY(-50%) rotate(0)}100%{-webkit-transform:translateY(-50%) rotate(359deg);-o-transform:translateY(-50%) rotate(359deg);transform:translateY(-50%) rotate(359deg)}}@keyframes cm-spin{0%{-webkit-transform:translateY(-50%) rotate(0);-o-transform:translateY(-50%) rotate(0);transform:translateY(-50%) rotate(0)}100%{-webkit-transform:translateY(-50%) rotate(359deg);-o-transform:translateY(-50%) rotate(359deg);transform:translateY(-50%) rotate(359deg)}}@font-face{font-family:context-menu-icons;font-style:normal;font-weight:400;src:url(font/context-menu-icons.eot?33lxn);src:url(font/context-menu-icons.eot?33lxn#iefix) format("embedded-opentype"),url(font/context-menu-icons.woff2?33lxn) format("woff2"),url(font/context-menu-icons.woff?33lxn) format("woff"),url(font/context-menu-icons.ttf?33lxn) format("truetype")}.context-menu-icon-add:before{content:"\EA01"}.context-menu-icon-copy:before{content:"\EA02"}.context-menu-icon-cut:before{content:"\EA03"}.context-menu-icon-delete:before{content:"\EA04"}.context-menu-icon-edit:before{content:"\EA05"}.context-menu-icon-loading:before{content:"\EA06"}.context-menu-icon-paste:before{content:"\EA07"}.context-menu-icon-quit:before{content:"\EA08"}.context-menu-icon::before{position:absolute;top:50%;left:0;width:2em;font-family:context-menu-icons;font-size:1em;font-style:normal;font-weight:400;line-height:1;color:#2980b9;text-align:center;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.context-menu-icon.context-menu-hover:before{color:#fff}.context-menu-icon.context-menu-disabled::before{color:#bbb}.context-menu-icon.context-menu-icon-loading:before{-webkit-animation:cm-spin 2s infinite;-o-animation:cm-spin 2s infinite;animation:cm-spin 2s infinite}.context-menu-icon.context-menu-icon--fa{display:list-item;font-family:inherit;line-height:inherit}.context-menu-icon.context-menu-icon--fa::before{position:absolute;top:50%;left:0;width:2em;font-family:FontAwesome;font-size:1em;font-style:normal;font-weight:400;line-height:1;color:#2980b9;text-align:center;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.context-menu-icon.context-menu-icon--fa.context-menu-hover:before{color:#fff}.context-menu-icon.context-menu-icon--fa.context-menu-disabled::before{color:#bbb}.context-menu-icon.context-menu-icon--fa5{display:list-item;font-family:inherit;line-height:inherit}.context-menu-icon.context-menu-icon--fa5 i,.context-menu-icon.context-menu-icon--fa5 svg{position:absolute;top:.3em;left:.5em;color:#2980b9}.context-menu-icon.context-menu-icon--fa5.context-menu-hover>i,.context-menu-icon.context-menu-icon--fa5.context-menu-hover>svg{color:#fff}.context-menu-icon.context-menu-icon--fa5.context-menu-disabled i,.context-menu-icon.context-menu-icon--fa5.context-menu-disabled svg{color:#bbb}.context-menu-list{position:absolute;display:inline-block;min-width:13em;max-width:26em;padding:.25em 0;margin:.3em;font-family:inherit;font-size:inherit;list-style-type:none;background:#fff;border:1px solid #bebebe;border-radius:.2em;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.5);box-shadow:0 2px 5px rgba(0,0,0,.5)}.context-menu-item{position:relative;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;padding:.2em 2em;color:#2f2f2f;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.context-menu-separator{padding:0;margin:.35em 0;border-bottom:1px solid #e6e6e6}.context-menu-item>label>input,.context-menu-item>label>textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.context-menu-item.context-menu-hover{color:#fff;cursor:pointer;background-color:#2980b9}.context-menu-item.context-menu-disabled{color:#bbb;cursor:default;background-color:#fff}.context-menu-input.context-menu-hover{color:#2f2f2f;cursor:default}.context-menu-submenu:after{position:absolute;top:50%;right:.5em;z-index:1;width:0;height:0;content:'';border-color:transparent transparent transparent #2f2f2f;border-style:solid;border-width:.25em 0 .25em .25em;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.context-menu-item.context-menu-input{padding:.3em .6em}.context-menu-input>label>*{vertical-align:top}.context-menu-input>label>input[type=checkbox],.context-menu-input>label>input[type=radio]{position:relative;top:.12em;margin-right:.4Line truncated
|
||||
/*# sourceMappingURL=jquery.contextMenu.min.css.map */
|
||||
@@ -0,0 +1,2 @@
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(jQuery)}(function(m){"use strict";var a;m.support.htmlMenuitem="HTMLMenuItemElement"in window,m.support.htmlCommand="HTMLCommandElement"in window,m.support.eventSelectstart="onselectstart"in document.documentElement,m.ui&&m.widget||(m.cleanData=(a=m.cleanData,function(e){var t,n,o;for(o=0;null!=e[o];o++){n=e[o];try{(t=m._data(n,"events"))&&t.remove&&m(n).triggerHandler("remove")}catch(e){}}a(e)}));var c=null,d=!1,p=m(window),f=0,h={},x={},v={},g={selector:null,appendTo:null,trigger:"right",autoHide:!1,delay:200,reposition:!0,hideOnSecondTrigger:!1,selectableSubMenu:!1,classNames:{hover:"context-menu-hover",disabled:"context-menu-disabled",visible:"context-menu-visible",notSelectable:"context-menu-not-selectable",icon:"context-menu-icon",iconEdit:"context-menu-icon-edit",iconCut:"context-menu-icon-cut",iconCopy:"context-menu-icon-copy",iconPaste:"context-menu-icon-paste",iconDelete:"context-menu-icon-delete",iconAdd:"context-menu-icon-add",iconQuit:"context-menu-icon-quit",iconLoadingClass:"context-menu-icon-loading"},determinePosition:function(e){if(m.ui&&m.ui.position)e.css("display","block").position({my:"center top",at:"center bottom",of:this,offset:"0 5",collision:"fit"}).css("display","none");else{var t=this.offset();t.top+=this.outerHeight(),t.left+=this.outerWidth()/2-e.outerWidth()/2,e.css(t)}},position:function(e,t,n){var o;if(t||n){if("maintain"===t&&"maintain"===n)o=e.$menu.position();else{var a=e.$menu.offsetParent().offset();o={top:n-a.top,left:t-a.left}}var s=p.scrollTop()+p.height(),i=p.scrollLeft()+p.width(),c=e.$menu.outerHeight(),l=e.$menu.outerWidth();o.top+c>s&&(o.top-=c),o.top<0&&(o.top=0),o.left+l>i&&(o.left-=l),o.left<0&&(o.left=0),e.$menu.css(o)}else e.determinePosition.call(this,e.$menu)},positionSubmenu:function(e){if(void 0!==e)if(m.ui&&m.ui.position)e.css("display","block").position({my:"left top-5",at:"right top",of:this,collision:"flipfit fit"}).css("display","");else{var t={top:-9,left:this.outerWidth()-5};e.css(t)}},zIndex:1,animation:{duration:50,show:"slideDown",hide:"slideUp"},events:{preShow:m.noop,show:m.noop,hide:m.noop,activated:m.noop},callback:null,items:{}},s={timer:null,pageX:null,pageY:null},b={abortevent:function(e){e.preventDefault(),e.stopImmediatePropagation()},contextmenu:function(e){var t=m(this);if(!1!==e.data.events.preShow(t,e)&&("right"===e.data.trigger&&(e.preventDefault(),e.stopImmediatePropagation()),!("right"!==e.data.trigger&&"demand"!==e.data.trigger&&e.originalEvent||!(void 0===e.mouseButton||!e.data||"left"===e.data.trigger&&0===e.mouseButton||"right"===e.data.trigger&&2===e.mouseButton)||t.hasClass("context-menu-active")||t.hasClass("context-menu-disabled")))){if(c=t,e.data.build){var n=e.data.build(c,e);if(!1===n)return;if(e.data=m.extend(!0,{},g,e.data,n||{}),!e.data.items||m.isEmptyObject(e.data.items))throw window.console&&(console.error||console.log).call(console,"No items specified to show in contextMenu"),new Error("No Items specified");e.data.$trigger=c,$.create(e.data)}$.show.call(t,e.data,e.pageX,e.pageY)}},click:function(e){e.preventDefault(),e.stopImmediatePropagation(),m(this).trigger(m.Event("contextmenu",{data:e.data,pageX:e.pageX,pageY:e.pageY}))},mousedown:function(e){var t=m(this);c&&c.length&&!c.is(t)&&c.data("contextMenu").$menu.trigger("contextmenu:hide"),2===e.button&&(c=t.data("contextMenuActive",!0))},mouseup:function(e){var t=m(this);t.data("contextMenuActive")&&c&&c.length&&c.is(t)&&!t.hasClass("context-menu-disabled")&&(e.preventDefault(),e.stopImmediatePropagation(),(c=t).trigger(m.Event("contextmenu",{data:e.data,pageX:e.pageX,pageY:e.pageY}))),t.removeData("contextMenuActive")},mouseenter:function(e){var t=m(this),n=m(e.relatedTarget),o=m(document);n.is(".context-menu-list")||n.closest(".context-menu-list").length||c&&c.length||(s.pageX=e.pageX,s.pageY=e.pageY,s.data=e.data,o.on("mousemove.contextMenuShow",b.mousemove),s.timer=setTimeout(function(){s.timer=null,o.off("mousemove.contextMenuShow"),(c=t).trigger(m.Event("contextmenu",{data:s.data,pageX:s.pageX,pageY:s.pageY}))},e.data.delay))},mousemove:function(e){s.pageX=e.pageX,s.pageY=e.pageY},mouseleave:function(e){var t=m(e.relatedTarget);if(!t.is(".context-menu-list")&&!t.closest(".context-menu-list").length){try{clearTimeout(s.timer)}catch(e){}s.timer=null}},layerClick:function(a){var s,i,c=m(this).data("contextMenuRoot"),l=a.button,r=a.pageX,u=a.pageY,d=void 0===r;a.preventDefault(),setTimeout(function(){if(d)null!=c&&null!==c.$menu&&void 0!==c.$menu&&c.$menu.trigger("contextmenu:hide");else{var e,t="left"===c.trigger&&0===l||"right"===c.trigger&&2===l;if(document.elementFromPoint&&c.$layer){if(c.$layer.hide(),null!==(s=document.elementFromPoint(r-p.scrollLeft(),u-p.scrollTop()))&&s.isContentEditable){var n=document.createRange(),o=window.getSelection();n.selectNode(s),n.collapse(!0),o.removeAllRanges(),o.addRange(n)}m(s).trigger(a),c.$layerLine truncated
|
||||
//# sourceMappingURL=jquery.contextMenu.min.js.map
|
||||
@@ -0,0 +1,6 @@
|
||||
/*! jQuery UI - v1.12.1 - 2016-09-16
|
||||
* http://jqueryui.com
|
||||
* Includes: position.js
|
||||
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
||||
|
||||
(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1",function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):l.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=l.test(i[1])?i[1]:"center",t=h.exec(i[0]),e=h.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,l=t(this),h=l.outerWidth(),c=l.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=h+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight());"right"===n.my[0]?D.left-=h:"center"===n.my[0]&&(D.left-=h/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.Line truncated
|
||||
Vendored
+50
@@ -0,0 +1,50 @@
|
||||
/// <reference path="../js/jquery-3.6.0.min.js" />
|
||||
/// <reference path="../js/utility.js" />
|
||||
|
||||
$.fn.tab = function (obj) {
|
||||
obj = obj || {};
|
||||
|
||||
return this.each(function () {
|
||||
var _this = $(this);
|
||||
_this.data('tabparam', obj);
|
||||
|
||||
function switchPage(page) {
|
||||
_this.children('div[data-page]').hide();
|
||||
_this.children('div[data-page="' + page + '"]').show();
|
||||
}
|
||||
|
||||
var titles = _this.children('.tab_header').children('[data-href]');
|
||||
titles.each(function () {
|
||||
var n_li = $(this);
|
||||
if (n_li.attr('data-disabled') != null) {
|
||||
return;
|
||||
}
|
||||
if (_this.data('inited'))
|
||||
n_li.unbind('click');
|
||||
n_li.click(function (e) {
|
||||
var dfor = n_li.attr('data-href');
|
||||
// invoke function
|
||||
function next() {
|
||||
if (typeof obj.onnext === 'function') {
|
||||
obj.onnext(dfor);
|
||||
}
|
||||
titles.removeClass('selected');
|
||||
n_li.addClass('selected');
|
||||
//var dfor = n_li.addClass('selected').attr('data-href');
|
||||
switchPage(dfor);
|
||||
}
|
||||
if (typeof obj.onclick === 'function') {
|
||||
obj.onclick(n_li, next, _this.children('div[data-page="' + dfor + '"]'), dfor);
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
});
|
||||
});
|
||||
//var datafor = titles.removeClass('selected').first().addClass('selected').attr('data-href');
|
||||
// 由默认选中第一页修改为默认选中页面中指定的页,cl,2017/4/20
|
||||
var datafor = _this.children('.tab_header').children('.selected').attr('data-href');
|
||||
switchPage(datafor);
|
||||
|
||||
_this.data('inited', true);
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,36 @@
|
||||
function setCookie(cname, cvalue, exdays) {
|
||||
if (exdays === undefined) {
|
||||
document.cookie = cname + "=" + cvalue + "; path=/" + "; document=" + document.domain;
|
||||
} else {
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
|
||||
var expires = "expires=" + d.toUTCString();
|
||||
document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/" + "; document=" + document.domain;
|
||||
}
|
||||
}
|
||||
|
||||
function setCookieSeconds(cname, cvalue, seconds) {
|
||||
if (seconds === undefined) {
|
||||
document.cookie = cname + "=" + cvalue + "; path=/" + "; document=" + document.domain;
|
||||
} else {
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime() + (seconds * 1000));
|
||||
var expires = "expires=" + d.toUTCString();
|
||||
document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/" + "; document=" + document.domain;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getCookie(name) {
|
||||
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
|
||||
if (arr = document.cookie.match(reg))
|
||||
return unescape(decodeURI(arr[2]));
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
function SetClientTimeoffset() {
|
||||
var d = new Date();
|
||||
var offset = d.getTimezoneOffset();
|
||||
setCookie("clienttimeoffset", offset, 360);
|
||||
}
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
/*!
|
||||
* Datepicker v1.0.8
|
||||
* https://fengyuanchen.github.io/datepicker
|
||||
*
|
||||
* Copyright 2014-present Chen Fengyuan
|
||||
* Released under the MIT license
|
||||
*
|
||||
* Date: 2019-06-23T08:07:40.545Z
|
||||
*/
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e((t=t||self).jQuery)}(this,function(D){"use strict";function a(t,e){for(var i=0;i<e.length;i++){var a=e[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}D=D&&D.hasOwnProperty("default")?D.default:D;var s={autoShow:!1,autoHide:!1,autoPick:!1,inline:!1,container:null,trigger:null,language:"",format:"mm/dd/yyyy",date:null,startDate:null,endDate:null,startView:0,weekStart:0,yearFirst:!1,yearSuffix:"",days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],itemTag:"li",mutedClass:"muted",pickedClass:"picked",disabledClass:"disabled",highlightedClass:"highlighted",template:'<div class="datepicker-container"><div class="datepicker-panel" data-view="years picker"><ul><li data-view="years prev">‹</li><li data-view="years current"></li><li data-view="years next">›</li></ul><ul data-view="years"></ul></div><div class="datepicker-panel" data-view="months picker"><ul><li data-view="year prev">‹</li><li data-view="year current"></li><li data-view="year next">›</li></ul><ul data-view="months"></ul></div><div class="datepicker-panel" data-view="days picker"><ul><li data-view="month prev">‹</li><li data-view="month current"></li><li data-view="month next">›</li></ul><ul data-view="week"></ul><ul data-view="days"></ul></div></div>',offset:10,zIndex:1e3,filter:null,show:null,hide:null,pick:null},t="undefined"!=typeof window,e=t?window:{},i=t&&"ontouchstart"in e.document.documentElement,c="datepicker",n="click.".concat(c),r="focus.".concat(c),h="hide.".concat(c),o="keyup.".concat(c),l="pick.".concat(c),d="resize.".concat(c),u="scroll.".concat(c),p="show.".concat(c),f="touchstart.".concat(c),g="".concat(c,"-hide"),y={},m=0,v=1,w=2,k=Object.prototype.toString;function b(t){return"string"==typeof t}var C=Number.isNaN||e.isNaN;function $(t){return"number"==typeof t&&!C(t)}function x(t){return void 0===t}function F(t){return"date"===function(t){return k.call(t).slice(8,-1).toLowerCase()}(t)&&!C(t.getTime())}function M(a,s){for(var t=arguments.length,n=new Array(2<t?t-2:0),e=2;e<t;e++)n[e-2]=arguments[e];return function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return a.apply(s,n.concat(e))}}function Y(t){return'[data-view="'.concat(t,'"]')}function G(t,e){return[31,function(t){return t%4==0&&t%100!=0||t%400==0}(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}function V(t,e,i){return Math.min(i,G(t,e))}var T=/(y|m|d)+/g;function S(t,e){var i=1<arguments.length&&void 0!==e?e:1,a=String(Math.abs(t)),s=a.length,n="";for(t<0&&(n+="-");s<i;)s+=1,n+="0";return n+a}var I=/\d+/g,P={show:function(){this.built||this.build(),this.shown||this.trigger(p).isDefaultPrevented()||(this.shown=!0,this.$picker.removeClass(g).on(n,D.proxy(this.click,this)),this.showView(this.options.startView),this.inline||(this.$scrollParent.on(u,D.proxy(this.place,this)),D(window).on(d,this.onResize=M(this.place,this)),D(document).on(n,this.onGlobalClick=M(this.globalClick,this)),D(document).on(o,this.onGlobalKeyup=M(this.globalKeyup,this)),i&&D(document).on(f,this.onTouchStart=M(this.touchstart,this)),this.place()))},hide:function(){this.shown&&(this.trigger(h).isDefaultPrevented()||(this.shown=!1,this.$picker.addClass(g).off(n,this.click),this.inline||(this.$scrollParent.off(u,this.place),D(window).off(d,this.onResize),D(document).off(n,this.onGlobalClick),D(document).off(o,this.onGlobalKeyup),i&&D(document).off(f,this.onTouchStart))))},toggle:function(){this.shown?this.hide():this.show()},update:function(){var t=this.getValue();t!==this.oldValue&&(this.setDate(t,!0),this.oldValue=t)},pick:function(t){var e=this.$element,i=this.date;this.trigger(l,{view:t||"",date:i}).isDefaultPrevented()||(i=this.formatDate(this.date),this.setValue(i),this.isInput&&(e.trigger("input"),e.trigger("change")))},reset:function(){this.setDate(this.initialDate,!0),this.setValue(this.initialValue),this.shown&&this.showView(this.options.startView)},getMonthName:function(t,e){var i=this.options,a=i.monthsShort,s=i.months;return D.isNumeric(t)?t=Number(t):x(e)&&(e=t),!0===e&&(s=a),s[$(t)?t:this.date.getMonth()]},getDayName:function(t,e,i){var a=this.options,s=a.days;return D.isNumeric(t)?t=Number(t):(x(i)&&(i=e),x(e)&&(e=t)),i?s=a.daysMin:e&&(s=a.daysShort),s[$(t)?t:this.date.getDay()]},getDate:function(t){var e=this.date;return t?this.formatDate(e):new Date(e)},setDate:function(t,e){var i=this.options.filter;if(F(t)||b(t)){if(t=this.parseDate(t),D.isFunction(i)&&!1===i.call(this.$element,t,"daLine truncated
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";var e=2311,n=function(){return e++},v="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:function(t){var e={},i=t.match(/Firefox\/([\d.]+)/),n=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(e.firefox=!0,e.version=i[1]);n&&(e.ie=!0,e.version=n[1]);o&&(e.edge=!0,e.version=o[1]);a&&(e.weChat=!0);return{browser:e,os:{},node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!e.ie&&!e.edge,pointerEventsSupported:"onpointerdown"in window&&(e.edge||e.ie&&11<=e.version),domSupported:"undefined"!=typeof document}}(navigator.userAgent);var s={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},l={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},u=Object.prototype.toString,i=Array.prototype,r=i.forEach,h=i.filter,o=i.slice,c=i.map,d=i.reduce,a={};function f(t,e){"createCanvas"===t&&(g=null),a[t]=e}function k(t){if(null==t||"object"!=typeof t)return t;var e=t,i=u.call(t);if("[object Array]"===i){if(!$(t)){e=[];for(var n=0,o=t.length;n<o;n++)e[n]=k(t[n])}}else if(l[i]){if(!$(t)){var a=t.constructor;if(t.constructor.from)e=a.from(t);else{e=new a(t.length);for(n=0,o=t.length;n<o;n++)e[n]=k(t[n])}}}else if(!s[i]&&!$(t)&&!G(t))for(var r in e={},t)t.hasOwnProperty(r)&&(e[r]=k(t[r]));return e}function m(t,e,i){if(!z(e)||!z(t))return i?k(e):t;for(var n in e)if(e.hasOwnProperty(n)){var o=t[n],a=e[n];!z(a)||!z(o)||L(a)||L(o)||G(a)||G(o)||B(a)||B(o)||$(a)||$(o)?!i&&n in t||(t[n]=k(e[n])):m(o,a,i)}return t}function p(t,e){for(var i=t[0],n=1,o=t.length;n<o;n++)i=m(i,t[n],e);return i}function P(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function D(t,e,i){for(var n in e)e.hasOwnProperty(n)&&(i?null!=e[n]:null==t[n])&&(t[n]=e[n]);return t}function y(){return a.createCanvas()}var g;function x(){return g=g||y().getContext("2d")}function _(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var i=0,n=t.length;i<n;i++)if(t[i]===e)return i}return-1}function w(t,e){var i=t.prototype;function n(){}for(var o in n.prototype=e.prototype,t.prototype=new n,i)i.hasOwnProperty(o)&&(t.prototype[o]=i[o]);(t.prototype.constructor=t).superClass=e}function b(t,e,i){D(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,i)}function N(t){if(t)return"string"!=typeof t&&"number"==typeof t.length}function R(t,e,i){if(t&&e)if(t.forEach&&t.forEach===r)t.forEach(e,i);else if(t.length===+t.length)for(var n=0,o=t.length;n<o;n++)e.call(i,t[n],n,t);else for(var a in t)t.hasOwnProperty(a)&&e.call(i,t[a],a,t)}function O(t,e,i){if(t&&e){if(t.map&&t.map===c)return t.map(e,i);for(var n=[],o=0,a=t.length;o<a;o++)n.push(e.call(i,t[o],o,t));return n}}function S(t,e,i,n){if(t&&e){if(t.reduce&&t.reduce===d)return t.reduce(e,i,n);for(var o=0,a=t.length;o<a;o++)i=e.call(n,i,t[o],o,t);return i}}function M(t,e,i){if(t&&e){if(t.filter&&t.filter===h)return t.filter(e,i);for(var n=[],o=0,a=t.length;o<a;o++)e.call(i,t[o],o,t)&&n.push(t[o]);return n}}function I(t,e,i){if(t&&e)for(var n=0,o=t.length;n<o;n++)if(e.call(i,t[n],n,t))return t[n]}function A(t,e){var i=o.call(arguments,2);return function(){return t.apply(e,i.concat(o.call(arguments)))}}function T(t){var e=o.call(arguments,1);return function(){return t.apply(this,e.concat(o.call(arguments)))}}function L(t){return"[object Array]"===u.call(t)}function C(t){return"function"==typeof t}function E(t){return"[object String]"===u.call(t)}function z(t){var e=typeof t;return"function"==e||!!t&&"object"==e}function B(t){return!!s[u.call(t)]}function V(t){return!!l[u.call(t)]}function G(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function F(t){return t!=t}function W(t){for(var e=0,i=arguments.length;e<i;e++)if(null!=arguments[e])return arguments[e]}function H(t,e){return null!=t?t:e}function Z(t,e,i){return null!=t?t:null!=e?e:i}function U(){return Function.call.apply(o,arguments)}function X(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function Y(t,e){if(!t)throw new Error(e)}funcLine truncated
|
||||
@@ -0,0 +1,278 @@
|
||||
|
||||
if (typeof ($editableselect) != "function") {
|
||||
|
||||
$(document).mousedown(function (e) {
|
||||
var drop = $('#dropdowndiv');
|
||||
if (drop.length > 0) {
|
||||
var editselctrl = drop.parent();
|
||||
var t = $(e.target);
|
||||
if (!t.is(editselctrl)
|
||||
&& !t.parent().is(editselctrl)
|
||||
&& !t.parent().parent().is(editselctrl)
|
||||
&& !t.parent().parent().parent().is(editselctrl))
|
||||
$('#dropdowndiv').remove();
|
||||
}
|
||||
});
|
||||
$(window).resize(function (e) {
|
||||
$('#dropdowndiv').remove();
|
||||
});
|
||||
|
||||
$editableselect = function (parent, maxlength, maxwidth) {
|
||||
this.datasource = undefined;
|
||||
this.valuepath = undefined;
|
||||
this.displaypath = undefined;
|
||||
this.changedhandler = undefined;
|
||||
this.isEnabled = true;
|
||||
this.maxshowncount = 2000;
|
||||
this.maxlength = maxlength > 0 ? maxlength : 50;
|
||||
|
||||
var basectrl = undefined;
|
||||
var inputctrl = undefined;
|
||||
var iconctrl = undefined;
|
||||
var _this = this;
|
||||
|
||||
this.val = function (value) {
|
||||
if (arguments.length === 0)
|
||||
return inputctrl.data("val");
|
||||
else {
|
||||
inputctrl.data("val", value);
|
||||
if (this.datasource) {
|
||||
for (var i = 0, j = 0; i < this.datasource.length; i++) {
|
||||
var obj = this.datasource[i];
|
||||
var v = "";
|
||||
if (this.valuepath)
|
||||
v += obj[this.valuepath];
|
||||
else
|
||||
v += obj;
|
||||
if (v.toLowerCase() == ("" + value).toLowerCase()) {
|
||||
var text = "";
|
||||
if (this.displaypath)
|
||||
text = obj[this.displaypath];
|
||||
else
|
||||
text += obj;
|
||||
inputctrl.val(text);
|
||||
inputctrl.data("obj", obj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
inputctrl.val("");
|
||||
inputctrl.data("obj", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.text = function (text) {
|
||||
if (arguments.length === 0)
|
||||
return inputctrl.val();
|
||||
else {
|
||||
inputctrl.val(text);
|
||||
if (this.datasource) {
|
||||
for (var i = 0, j = 0; i < this.datasource.length; i++) {
|
||||
var obj = this.datasource[i];
|
||||
var t = "";
|
||||
if (this.displaypath)
|
||||
t += obj[this.displaypath];
|
||||
else
|
||||
t += obj;
|
||||
|
||||
if (t.toLowerCase() == ("" + text).toLowerCase()) {
|
||||
var value = "";
|
||||
if (this.valuepath)
|
||||
value = obj[this.valuepath];
|
||||
else
|
||||
value += obj;
|
||||
inputctrl.data("val", value);
|
||||
inputctrl.data("obj", obj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
inputctrl.data("val", "");
|
||||
inputctrl.data("obj", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.selecteditem = function () {
|
||||
return inputctrl.data("obj");
|
||||
}
|
||||
this.selectedindex = function () {
|
||||
return _this.datasource.indexOf(inputctrl.data("obj"));
|
||||
}
|
||||
|
||||
this.change = function (func) {
|
||||
this.changedhandler = func;
|
||||
}
|
||||
|
||||
this.tabIndex = function (tabindex) {
|
||||
inputctrl.attr("tabIndex", tabindex);
|
||||
}
|
||||
|
||||
this.setEnable = function (enable) {
|
||||
this.isEnabled = enable;
|
||||
inputctrl.attr("disabled", !enable);
|
||||
}
|
||||
|
||||
this.reload = function () {
|
||||
setTimeout(function () {
|
||||
inputctrl.css("width", parent.width() - 22);
|
||||
});
|
||||
}
|
||||
|
||||
basectrl = $('<div class="editseldiv"></div>');
|
||||
inputctrl = $('<input class="editselinput" autocomplete="off" style="padding-top:0;padding-bottom:0;" />').attr("maxlength", this.maxlength)
|
||||
.css("width", parent.width() - 22)
|
||||
.css("border", "none").css("height", 20)
|
||||
.bind('input propertychange', function () { changeSearchvalue(this); });
|
||||
inputctrl.keydown(onkeydown);
|
||||
iconctrl = $('<div class="dropdownicon"></div>')
|
||||
.css("line-height", "normal").click(iconClick);
|
||||
basectrl.append(inputctrl).append(iconctrl);
|
||||
parent.append(basectrl);
|
||||
|
||||
function onkeydown(e) {
|
||||
if (e.keyCode == 13 || e.keyCode == 38 || e.keyCode == 40) {//Enter Up Down键
|
||||
var drop = $('#dropdowndiv');
|
||||
if (e.keyCode == 13) {
|
||||
if (drop.length > 0) {
|
||||
drop.find("li.itemselected").click();
|
||||
}
|
||||
}
|
||||
else {//Up
|
||||
var selectedIndex = -1;
|
||||
var lis = drop.find("li");
|
||||
lis.each(function () {
|
||||
var li = $(this);
|
||||
if (li.hasClass("itemselected")) {
|
||||
selectedIndex = $(this).attr("index");
|
||||
li.removeClass("itemselected");
|
||||
}
|
||||
});
|
||||
|
||||
if (e.keyCode == 38)
|
||||
selectedIndex--;
|
||||
else if (e.keyCode == 40)
|
||||
selectedIndex++;
|
||||
if (selectedIndex < 0)
|
||||
selectedIndex = lis.length - 1;
|
||||
if (selectedIndex > lis.length - 1)
|
||||
selectedIndex = 0;
|
||||
|
||||
var next = drop.find("li[index=" + selectedIndex + "]");
|
||||
if (next.length > 0) {
|
||||
$(next[0]).addClass("itemselected");
|
||||
var offsetTop = next[0].offsetTop;
|
||||
if (offsetTop >= drop.height() - drop.scrollTop() - 20) {
|
||||
drop.scrollTop(offsetTop - drop.height() + 20);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function iconClick(e) {
|
||||
if (_this.isEnabled) {
|
||||
var drop = $('#dropdowndiv');
|
||||
if (drop.length > 0) {
|
||||
$('#dropdowndiv').remove();
|
||||
}
|
||||
else {
|
||||
createDropdown(_this, undefined);
|
||||
inputctrl.select();
|
||||
inputctrl.focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//搜索
|
||||
function changeSearchvalue(obj) {
|
||||
var inp = $(obj);
|
||||
var text = $.trim(inp.val());
|
||||
var matched = false;
|
||||
for (var i = 0, j = 0; i < _this.datasource.length; i++) {
|
||||
var obj = _this.datasource[i];
|
||||
var t = "";
|
||||
if (_this.displaypath)
|
||||
t += obj[_this.displaypath];
|
||||
else
|
||||
t += obj;
|
||||
|
||||
if (t.toLowerCase() == ("" + text).toLowerCase()) {
|
||||
var value = "";
|
||||
if (_this.valuepath)
|
||||
value = obj[_this.valuepath];
|
||||
else
|
||||
value += obj;
|
||||
inp.data("val", value);
|
||||
inputctrl.data("obj", obj);
|
||||
matched = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!matched) {
|
||||
inp.data("val", "");
|
||||
inputctrl.data("obj", null);
|
||||
}
|
||||
|
||||
if (_this.changedhandler)
|
||||
_this.changedhandler();
|
||||
createDropdown(_this, text);
|
||||
}
|
||||
|
||||
function createDropdown(selctrl, searchtext) {
|
||||
$("#dropdowndiv").remove();//移除已创建的下拉框
|
||||
|
||||
var dropdiv = $('<div id="dropdowndiv" class="editseldorp"></div>');
|
||||
dropdiv.css("min-width", basectrl.width());
|
||||
if (maxwidth != undefined)
|
||||
dropdiv.css("max-width", maxwidth);
|
||||
var ul = $('<ul style="padding:0px;list-style:none;margin:0px;"></ul>');
|
||||
|
||||
if (!selctrl.datasource) return;
|
||||
|
||||
if (basectrl.css("position") !== "relative") {
|
||||
dropdiv.css('top', basectrl.position().top + 22);
|
||||
dropdiv.css('left', basectrl.position().left);
|
||||
}
|
||||
|
||||
var index = 0;
|
||||
for (var i = 0, j = 0; i < selctrl.datasource.length && j < selctrl.maxshowncount; i++) {
|
||||
var obj = selctrl.datasource[i];
|
||||
var text = "";
|
||||
if (selctrl.displaypath)
|
||||
text = obj[selctrl.displaypath];
|
||||
else
|
||||
text += obj;
|
||||
|
||||
var value = "";
|
||||
if (selctrl.valuepath)
|
||||
value = obj[selctrl.valuepath];
|
||||
else
|
||||
value += obj;
|
||||
|
||||
if (!searchtext || text.toLowerCase().indexOf(searchtext.toLowerCase()) >= 0) {
|
||||
var item = $('<li class="editselitem"></li>').data("obj", obj).data("val", value).text(text).attr("index", index++)
|
||||
.click(function () { itemClick(this) });
|
||||
ul.append(item);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
ul.appendTo(dropdiv);
|
||||
basectrl.append(dropdiv);
|
||||
}
|
||||
|
||||
//drop选中
|
||||
function itemClick(item) {
|
||||
item = $(item);
|
||||
inputctrl.val(item.text());
|
||||
var oldValue = inputctrl.data("val");
|
||||
var newValue = item.data("val");
|
||||
inputctrl.data("val", newValue);
|
||||
inputctrl.data("obj", item.data("obj"));
|
||||
|
||||
if (_this.changedhandler && newValue != oldValue)
|
||||
_this.changedhandler();
|
||||
|
||||
$('#dropdowndiv').remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
|
||||
var ALL_TEXT = "(All)";
|
||||
var paramindex = -1;
|
||||
function editmultiselect(param) {
|
||||
var divcontrol = $('<div class="div_filter"></div>');
|
||||
var seldiv = $('<div class="left dropdown"></div>');
|
||||
var span = $('<span class="text_span"></span>');
|
||||
var spanimg = $('<span class="fa dropdown_button"></span>');
|
||||
var divpanel = $('<div class="div_panel" style="display: none;z-index:10;margin-top:20px;margin-left:-1px;"></div>');
|
||||
divpanel.data("self", divpanel);
|
||||
if (param.width && param.width > 0)
|
||||
divpanel.css('width', param.width);
|
||||
|
||||
$(document).mousedown(function (e) {
|
||||
var t = $(e.target);
|
||||
$('.div_panel').each(function () {
|
||||
if (!t.is(divpanel)
|
||||
&& !t.parent().is(divpanel)
|
||||
&& !t.parent().parent().is(divpanel)
|
||||
&& !t.parent().parent().parent().is(divpanel)) {
|
||||
var v = divpanel.is(":visible");
|
||||
divpanel.hide();
|
||||
if (v && param.oncompleted)
|
||||
param.oncompleted();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
divpanel.completed = function () {
|
||||
if (param.oncompleted)
|
||||
param.oncompleted();
|
||||
}
|
||||
|
||||
var inputctrl;
|
||||
//if (param.allowsearch === true) {
|
||||
var inputdiv = $('<div style="margin:3px;"></div>');
|
||||
divpanel.append(inputdiv);
|
||||
inputctrl = $('<input maxlength="100" style="padding-top:0;padding-bottom:0;width:96%;" />');
|
||||
inputctrl.bind('input propertychange', function () { changeSearchvalue(this); });
|
||||
inputdiv.append(inputctrl);
|
||||
//}
|
||||
|
||||
var ul = $('<ul></ul>');
|
||||
divpanel.append(ul);
|
||||
ul.mousedown(false);
|
||||
seldiv.append(span).append(spanimg).append(divpanel);
|
||||
divcontrol.append(seldiv);
|
||||
|
||||
var ctrlclick = function () {
|
||||
$('.div_panel').each(function (e) {
|
||||
var t = $(this);
|
||||
var v = t.is(":visible");
|
||||
if (!t.is(divpanel)) {
|
||||
t.css('display', 'none');
|
||||
if (v)
|
||||
t.data("self").completed();
|
||||
}
|
||||
});
|
||||
|
||||
var display = divpanel.css('display');
|
||||
if (display == 'none') {
|
||||
divpanel.css({ 'display': 'block' });
|
||||
} else {
|
||||
divpanel.css('display', 'none');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
span.mousedown(ctrlclick);
|
||||
spanimg.mousedown(ctrlclick);
|
||||
|
||||
var itemclick = function (isall, checked) {
|
||||
var chks = ul.find('input');
|
||||
if (isall) {
|
||||
chks.prop('checked', checked);
|
||||
if (checked) {
|
||||
span.attr('title', ALL_TEXT).text(ALL_TEXT);
|
||||
}
|
||||
else {
|
||||
span.attr('title', "").text("");
|
||||
}
|
||||
param.selectedvalue = [];
|
||||
param.selecteditems = [];
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (chkall)
|
||||
chkall.prop('checked', false);//(ALL)取消选中
|
||||
}
|
||||
|
||||
var texts = [];
|
||||
var paramvalues = [];
|
||||
var paramitems = [];
|
||||
for (var i = 0; i < chks.length; i++) {
|
||||
var c = $(chks[i]);
|
||||
if (c.prop('checked')) {
|
||||
var text = c.next('label').text();
|
||||
if (!text) text = c.data("value");
|
||||
texts.push(text);
|
||||
paramvalues.push(c.data("value"));
|
||||
paramitems.push(c);
|
||||
}
|
||||
}
|
||||
texts = texts.join(', ');
|
||||
span.attr('title', texts).text(texts);
|
||||
param.selectedvalue = paramvalues;
|
||||
param.selecteditems = paramitems;
|
||||
};
|
||||
|
||||
divcontrol.setValues = function (values) {
|
||||
var chks = ul.find('input');
|
||||
|
||||
for (var i = 0; i < chks.length; i++) {
|
||||
var chk = $(chks[i]);
|
||||
if (values.indexOf(chk.data("value")) >= 0)
|
||||
chk.prop('checked', true);
|
||||
else
|
||||
chk.prop('checked', false);
|
||||
}
|
||||
|
||||
var texts = [];
|
||||
var paramvalues = [];
|
||||
var paramitems = [];
|
||||
for (var i = 0; i < chks.length; i++) {
|
||||
var c = $(chks[i]);
|
||||
if (c.prop('checked')) {
|
||||
var text = c.next('label').text();
|
||||
if (!text) text = c.data("value");
|
||||
texts.push(text);
|
||||
paramvalues.push(c.data("value"));
|
||||
paramitems.push(c);
|
||||
}
|
||||
}
|
||||
texts = texts.join(', ');
|
||||
span.attr('title', texts).text(texts);
|
||||
param.selectedvalue = paramvalues;
|
||||
param.selecteditems = paramitems;
|
||||
}
|
||||
|
||||
var chkall = undefined;
|
||||
var showItems = function (searchtext) {
|
||||
ul.empty();
|
||||
if (param.allowall !== false) {
|
||||
var liall = $('<li></li>');
|
||||
chkall = $('<input type="checkbox" style="width:16px;"/>');
|
||||
chkall.change(function () {//全选
|
||||
itemclick(true, $(this).prop('checked'));
|
||||
});
|
||||
liall.append(chkall);
|
||||
liall.append($('<label for="chkall"></label>').text(ALL_TEXT));
|
||||
ul.append(liall);
|
||||
}
|
||||
|
||||
if (param && param.items) {
|
||||
var texts = [];
|
||||
for (var s = 0; s < param.items.length; s++) {
|
||||
var item = param.items[s];
|
||||
var value = item[param.valuepath || "Key"];
|
||||
var txt = item[param.textpath || "Value"];
|
||||
var li = $('<li></li>').data("item", item);
|
||||
var chk = $('<input type="checkbox" style="width:16px;"/>').data("value", value).attr("id", "chkp" + ++paramindex);
|
||||
if (item.sublevel > 0)
|
||||
chk.css("margin-left", "" + (20 * item.sublevel) + "px");
|
||||
chk.change(function () {
|
||||
itemclick(false, $(this).prop('checked'));
|
||||
});
|
||||
li.append(chk);
|
||||
var lbl = $('<label for=' + ("chkp" + paramindex) + '></label>').text(txt)
|
||||
li.append(lbl);
|
||||
ul.append(li);
|
||||
}
|
||||
texts = texts.join(', ');
|
||||
span.attr('title', texts).text(texts);
|
||||
|
||||
divcontrol.setValues(param.selectedvalue);
|
||||
}
|
||||
}
|
||||
|
||||
var filterItems = function (searchtext) {
|
||||
if (!searchtext)
|
||||
searchtext = "";
|
||||
searchtext = $.trim(searchtext);
|
||||
ul.find("li").each(function () {
|
||||
var li = $(this);
|
||||
var item = li.data("item");
|
||||
if (item) {
|
||||
var txt = item[param.textpath || "Value"];
|
||||
if (searchtext != "" && txt.toLowerCase().indexOf(searchtext.toLowerCase()) < 0)
|
||||
li.hide();
|
||||
else
|
||||
li.show();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//搜索
|
||||
function changeSearchvalue(obj) {
|
||||
var inp = $(obj);
|
||||
var text = inp.val();
|
||||
filterItems(text);
|
||||
}
|
||||
|
||||
divcontrol.reset = function () {
|
||||
if (inputctrl)
|
||||
inputctrl.val("");
|
||||
showItems();
|
||||
itemclick(true, false);
|
||||
}
|
||||
|
||||
showItems();
|
||||
|
||||
return divcontrol;
|
||||
}
|
||||
@@ -0,0 +1,990 @@
|
||||
|
||||
var userfavorates = [];
|
||||
var navigate;
|
||||
|
||||
$(function () {
|
||||
$('#dialog_favorite').dialog(function () {
|
||||
$('#mask_bg').hide();
|
||||
$('.maskbg').hide();
|
||||
});
|
||||
});
|
||||
|
||||
function refreshFavorites() {
|
||||
getFavoriteItems(onInitFavorites);
|
||||
}
|
||||
|
||||
function setFavoriteDisplay(isshow, mouduleid, name, type) {
|
||||
//$('#button_fav').removeClass('fav').removeClass('nofav').addClass('unfav');
|
||||
if (isshow)
|
||||
$('#button_fav').show();
|
||||
else
|
||||
$('#button_fav').hide();
|
||||
if (mouduleid)
|
||||
navigate = setAppMoudule(mouduleid, name, type);
|
||||
|
||||
//if (!navigate)
|
||||
// $('#button_fav').removeClass('fav').removeClass('unfav').addClass('nofav');
|
||||
|
||||
getFavoriteItems();
|
||||
}
|
||||
|
||||
function getFavoriteItems(oninit) {
|
||||
_network.mainpagequery("GetFavoriteItems", "", function (data) {
|
||||
if (typeof data === 'string') {
|
||||
_dialog.showAlert(data, GetTextByKey("P_FAV_GETFAVORITES", 'Get Favorites'));
|
||||
} else {
|
||||
userfavorates = data;
|
||||
if (navigate)
|
||||
setFavorateStyle();
|
||||
if (oninit)
|
||||
oninit();
|
||||
showFavoritesGridList(userfavorates);
|
||||
if (typeof showChartFavorite === "function")
|
||||
showChartFavorite(isUserFavorate(chartiid));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function setFavorateStyle(id, name) {
|
||||
if (id) {
|
||||
var navid = id.substring(1);
|
||||
if (navid === "nav_manageharshdriving") {
|
||||
navid = "600";
|
||||
}
|
||||
navigate = setNavigate(navid, name);
|
||||
}
|
||||
$('#divfavadd').hide();
|
||||
$('#divfav').hide();
|
||||
//$('#button_fav').removeClass('fav').removeClass('nofav').addClass('unfav');
|
||||
var isfav = false;
|
||||
if (userfavorates && navigate) {
|
||||
for (var i = 0; i < userfavorates.length; i++) {
|
||||
if (userfavorates[i].ID === navigate.ID) {
|
||||
//$('#button_fav').addClass('fav').removeClass('unfav').removeClass('nofav');
|
||||
$('#divfav').show();
|
||||
isfav = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isfav)
|
||||
$('#divfavadd').show();
|
||||
}
|
||||
}
|
||||
|
||||
function isUserFavorate(id) {
|
||||
if (userfavorates && navigate) {
|
||||
for (var i = 0; i < userfavorates.length; i++) {
|
||||
if (userfavorates[i].ID === id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function setFavorate(isdelete) {
|
||||
if (!navigate)
|
||||
return;
|
||||
if (navigate.ID === "nav_manageharshdriving")
|
||||
navigate = setNavigate("600", "OTR Config");
|
||||
|
||||
if (isdelete) {
|
||||
isdelete = true;
|
||||
$('#divfavadd').show();
|
||||
$('#divfav').hide();
|
||||
}
|
||||
else {
|
||||
$('#divfavadd').hide();
|
||||
$('#divfav').show();
|
||||
}
|
||||
|
||||
setFavoritesData(isdelete, navigate);
|
||||
}
|
||||
|
||||
function setFavoritesData(isdelete, nav) {
|
||||
if (isdelete) {
|
||||
if (userfavorates) {
|
||||
for (var i = 0; i < userfavorates.length; i++) {
|
||||
if (userfavorates[i].ID === nav.ID) {
|
||||
userfavorates.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
userfavorates.push(nav);
|
||||
|
||||
saveFavorites(userfavorates);
|
||||
}
|
||||
|
||||
function saveFavorites(data, issort) {
|
||||
_network.mainpagequery("SetFavorites", JSON.stringify(data), function (data) {
|
||||
if (data !== 'OK') {
|
||||
_dialog.showAlert(data, GetTextByKey("P_FAV_SETFAVORITES", 'Set Favorites'));
|
||||
}
|
||||
else {
|
||||
if (issort) {
|
||||
$('#dialog_favorite').hideDialog();
|
||||
$('#mask_bg').hide();
|
||||
}
|
||||
refreshFavorites();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function onInitFavorites() {
|
||||
var ids = ['100', '250', '500', '550', '650', '700', '600'];
|
||||
var favdiv = $('#favorite_panel');
|
||||
favdiv.empty();
|
||||
if (userfavorates && userfavorates.length > 0) {
|
||||
var div = $('<div class="panel_favorites"></div>')
|
||||
.css("max-height", $(window).height() - 180).appendTo(favdiv);
|
||||
var ulFavorites = $('<ul class="lefttitlemenu_ul" style="line-height:32px;"></ul>');
|
||||
div.append(ulFavorites);
|
||||
for (var i = 0; i < userfavorates.length; i++) {
|
||||
var fav = userfavorates[i];
|
||||
if (!fav) continue;
|
||||
if (fav.FavoriteType == 10) {
|
||||
createChartFavorite(fav, ulFavorites);
|
||||
continue;
|
||||
}
|
||||
|
||||
for (var j = 0; j < appmoudulesdata.length; j++) {
|
||||
var m = appmoudulesdata[j];
|
||||
if (m.ModuleType == 0)//Features
|
||||
{
|
||||
if (ids.indexOf(fav.ID) >= 0) {
|
||||
if (fav.ID.toLowerCase() === m.ID.toLowerCase()) {
|
||||
createMenuItem(m, ulFavorites);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (m.SubItems) {//有子项
|
||||
for (var k = 0; k < m.SubItems.length; k++) {
|
||||
var sub = m.SubItems[k];
|
||||
if (sub.ID.toLowerCase() === fav.ID.toLowerCase()) {
|
||||
createMenuItem(m, ulFavorites, sub);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (m.ModuleType == 1) {//WSP
|
||||
var id = "wsp" + m.ID;
|
||||
if (fav.ID.toLowerCase() === id.toLowerCase()) {
|
||||
createMenuItem(m, ulFavorites);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var editfav = $('<div class="viewall" style="height: 32px;text-align: center; margin-top: 10px;"><span class="sbutton iconedit">' + GetTextByKey("P_FAV_EDITFAVORITES", "Edit Favorites") + '</span</div>');
|
||||
favdiv.append(editfav);
|
||||
editfav.click(function () {
|
||||
openFavoriteDialog();
|
||||
});
|
||||
favdiv.append('<div class="trigle"></div>') // trigle
|
||||
favdiv.append('<div class="trigle white"></div>');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function getFavoriteNavInfoByID(id, text, icon) {
|
||||
var title = text;
|
||||
$(icon).addClass("lefttitlemenu_icon");
|
||||
if (id === "nav_credential") {
|
||||
title = GetTextByKey("P_CREDENTIALS", title);
|
||||
$(icon).addClass("iconcredentail");
|
||||
}
|
||||
else if (id === "nav_jdlink") {
|
||||
title = GetTextByKey("P_JDLINK", title);
|
||||
$(icon).addClass("iconjdlink");
|
||||
}
|
||||
else if (id === "nav_jdnotification") {
|
||||
title = GetTextByKey("P_JOHNDEERENOTIFICATIONS", title);
|
||||
$(icon).addClass("iconjdnotification");
|
||||
}
|
||||
else if (id === "nav_apicredential") {
|
||||
title = GetTextByKey("P_APICREDENTIALS", title);
|
||||
$(icon).addClass("iconcredentail");
|
||||
}
|
||||
else if (id === "nav_users") {
|
||||
title = GetTextByKey("P_USERS", title);
|
||||
$(icon).addClass("iconusers");
|
||||
}
|
||||
else if (id === "nav_user_group") {
|
||||
title = GetTextByKey("P_USERSGROUP", title);
|
||||
$(icon).addClass("iconusergroup");
|
||||
}
|
||||
else if (id === "nav_dts") {
|
||||
title = GetTextByKey("P_DATATABLEPERMISSION", title);
|
||||
$(icon).addClass("icondatatablepermission");
|
||||
}
|
||||
else if (id === "nav_filters") {
|
||||
title = GetTextByKey("P_DASHBOARDFILTERS", title);
|
||||
$(icon).addClass("icondashboardfilters");
|
||||
}
|
||||
else if (id === "nav_curfew") {
|
||||
title = GetTextByKey("P_CURFEWCONFIGURATION", title);
|
||||
$(icon).addClass("iconcurfew");
|
||||
}
|
||||
else if (id === "nav_curfewmt") {
|
||||
title = GetTextByKey("P_CURFEWMOVEMENTTOLERANCE", title);
|
||||
$(icon).addClass("iconcurfewmt");
|
||||
}
|
||||
else if (id === "nav_usertocontractor") {
|
||||
title = GetTextByKey("P_USERTOCONTRACTOR", title);
|
||||
$(icon).addClass("iconusertocontractor");
|
||||
}
|
||||
else if (id === "nav_alertsmanagement") {
|
||||
title = GetTextByKey("P_ALERTSMANAGEMENTNEW", title);
|
||||
$(icon).addClass("iconmanagealerts");
|
||||
}
|
||||
else if (id === "nav_workorder") {
|
||||
title = GetTextByKey("P_WORKORDERNEW", title);
|
||||
$(icon).addClass("iconworkorder");
|
||||
}
|
||||
else if (id === "nav_workorderhis") {
|
||||
title = GetTextByKey("P_XXX", title);
|
||||
$(icon).addClass("iconhistory");
|
||||
}
|
||||
else if (id === "nav_maintenanceschedule") {
|
||||
title = GetTextByKey("P_PM_MAINTENANCESCHEDULES", title);
|
||||
$(icon).addClass("iconmaintenanceschedule");
|
||||
}
|
||||
else if (id === "nav_record") {
|
||||
title = GetTextByKey("P_MAINTENANCERECORDLEGACY", title);
|
||||
$(icon).addClass("iconrecord");
|
||||
}
|
||||
else if (id === "nav_fuelrecord") {
|
||||
title = GetTextByKey("P_FUELRECORDS", title);
|
||||
$(icon).addClass("iconfuelrecord");
|
||||
}
|
||||
else if (id === "nav_manageharshdriving") {
|
||||
title = GetTextByKey("P_MANAGEHARSHDRIVING", title);
|
||||
$(icon).addClass("iconotrconfig");
|
||||
}
|
||||
else if (id === "nav_managmachines") {
|
||||
title = GetTextByKey("P_MANAGEASSETS", title);
|
||||
$(icon).addClass("iconmanageasset");
|
||||
}
|
||||
else if (id === "nav_managrentals") {
|
||||
title = GetTextByKey("P_MANAGERENTALS", title);
|
||||
$(icon).addClass("iconmanagerentals");
|
||||
}
|
||||
else if (id === "nav_machinegroups") {
|
||||
title = GetTextByKey("P_ASSETGROUPS", title);
|
||||
$(icon).addClass("iconassetgroups");
|
||||
}
|
||||
else if (id === "nav_managegpsdevices") {
|
||||
title = GetTextByKey("P_MANAGEDEVICES", title);
|
||||
$(icon).addClass("iconmanagegpsdevices");
|
||||
}
|
||||
else if (id === "nav_managmodels") {
|
||||
title = GetTextByKey("P_MANAGEMODELS", title);
|
||||
$(icon).addClass("iconmanagmodels");
|
||||
}
|
||||
else if (id === "nav_managmodels") {
|
||||
title = GetTextByKey("P_MANAGEMODELS", title);
|
||||
$(icon).addClass("iconmanagmodels");
|
||||
}
|
||||
else if (id === "nav_managmodels") {
|
||||
title = GetTextByKey("P_MANAGEMODELS", title);
|
||||
$(icon).addClass("iconmanagmodels");
|
||||
}
|
||||
else if (id === "nav_jobsiterequirements") {
|
||||
title = GetTextByKey("P_JS_JOBSITEREQUIREMENTS", title);
|
||||
}
|
||||
else if (id === "nav_dispatchrequests") {
|
||||
title = GetTextByKey("P_JS_DISPATCHREQUESTS", title);
|
||||
}
|
||||
else if (id === "nav_jobsitemanage") {
|
||||
title = GetTextByKey("P_JOBSITES", title);
|
||||
}
|
||||
else if (id === "nav_scheduler") {
|
||||
title = GetTextByKey("P_JS_SCHEDULER", title);
|
||||
}
|
||||
return title;
|
||||
}
|
||||
|
||||
function createMenuItem(m, ul, sub) {
|
||||
var name = m.ModuleType === 1 ? m.Name : m.CurrentName;
|
||||
var title = name;
|
||||
var sm = JSON.parse(JSON.stringify(m));
|
||||
if (sm.ID == '150' && sm.Url.indexOf("#") < 0)
|
||||
sm.Url += "#nav_jobsitemanage";
|
||||
|
||||
var icon = $('<button class="lefttitlemenu_icon titleicon" style="line-height:normal;"></button>');
|
||||
if (sub) {
|
||||
name = sub.Title;
|
||||
title = getFavoriteNavInfoByID(sub.ID, name, icon);
|
||||
sm.Url = sub.Url;
|
||||
if (sm.ID === "350" && !sub.IconPath)
|
||||
sub.IconPath = 'img/none.png';
|
||||
sm.IconPath = sm.Url.split('/')[0] + "/" + sub.IconPath;
|
||||
|
||||
if ([100, 120, 130, 140, 210, 235].indexOf(sub.FeatureID) >= 0) {//nav_jobsitemanage/nav_jobsiterequirements/nav_dispatchrequests/nav_scheduler/nav_workorder/nav_customerrecord
|
||||
icon = createMouduleIcon(sm, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
icon = createMouduleIcon(sm, 1);
|
||||
title = getFavoriteNavInfoByID(sm.ID, name, icon);
|
||||
}
|
||||
var li = $('<li></li>').click(function () {
|
||||
onOpenSite(sm);
|
||||
});
|
||||
var a = $('<a style="padding-left:0;"></a>');
|
||||
li.append(a);
|
||||
a.append($('<div></div>').append(icon));
|
||||
a.append($('<span></span>').text(title));
|
||||
ul.append(li);
|
||||
}
|
||||
|
||||
function createFullMenuSite(m, ul) {
|
||||
var name = m.ModuleType === 1 ? m.Name : m.CurrentName;
|
||||
var sm = JSON.parse(JSON.stringify(m));
|
||||
var icon = createMouduleIcon(sm, 1);
|
||||
var li = $('<li></li>').click(function () {
|
||||
onOpenSite(sm);
|
||||
});
|
||||
var a = $('<a style="padding-left:0;"></a>');
|
||||
li.append(a);
|
||||
a.append($('<div></div>').append(icon));
|
||||
a.append($('<span></span>').text(name));
|
||||
ul.append(li);
|
||||
}
|
||||
|
||||
function createChartFavorite(fav, ulFavorites) {
|
||||
var li = $('<li></li>').click(function () {
|
||||
openFleetChart(fav.ID, fav.Name);
|
||||
});
|
||||
var fav_a = $('<a style="padding-left:0;"></a>');
|
||||
li.append(fav_a);
|
||||
icon = $('<img class="lefttitlemenu_icon"/>').attr('src', _network.root + "img/modules/chart.png");
|
||||
fav_a.append($('<div></div>').append(icon));
|
||||
fav_a.append($('<span></span>').text(fav.Name));
|
||||
ulFavorites.append(li);
|
||||
}
|
||||
|
||||
function onOpenSite(m) {
|
||||
if (!m)
|
||||
return;
|
||||
|
||||
//if (m.ModuleType === 1) //Workspace保存最近打开
|
||||
// setRecentOpenedDashboard(m.ID);
|
||||
|
||||
var url = m.Url.toLowerCase();
|
||||
if (url.length > 4 && url.substring(0, 4) == 'http') {
|
||||
} else if (url.length > 0 && url[0] == '/') {
|
||||
} else {
|
||||
url = _network.root + url;
|
||||
}
|
||||
if (m.OpenInNewWindow) {
|
||||
window.open(url, "_blank");
|
||||
} else {
|
||||
window.location = url;
|
||||
}
|
||||
}
|
||||
|
||||
function setAppMoudule(mouduleid, name, type) {
|
||||
if (!name) {
|
||||
if (mouduleid === 100)
|
||||
name = "Map View";
|
||||
else if (mouduleid === 150)
|
||||
name = "Jobsites";
|
||||
else if (mouduleid === 250)
|
||||
name = "FilterQ";
|
||||
else if (mouduleid === 500)
|
||||
name = "M3";
|
||||
else if (mouduleid === 550)
|
||||
name = "Over/Under Trucking Alerts";
|
||||
else if (mouduleid === 650)
|
||||
name = "Inspection";
|
||||
else if (mouduleid === 700)
|
||||
name = "Team Intelligence";
|
||||
}
|
||||
|
||||
return setNavigate(mouduleid + '', name, type);
|
||||
}
|
||||
|
||||
function setNavigate(id, name, type) {
|
||||
var obj = { "ID": id, "Name": name };
|
||||
if (type != undefined)
|
||||
obj.FavoriteType = type;
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
||||
/*****************************Edit*************************************/
|
||||
|
||||
|
||||
function showFavConfirm(msg, title, fok, fcancel) {
|
||||
$('#favorites_mask_bg').show();
|
||||
_dialog.showConfirm(msg, title, function (e) {
|
||||
if (typeof fok === 'function') {
|
||||
$('#favorites_mask_bg').hide();
|
||||
fok(e);
|
||||
}
|
||||
}, function () {
|
||||
$('#favorites_mask_bg').hide();
|
||||
});
|
||||
}
|
||||
|
||||
var grid_favoritedt;
|
||||
function InitFavoriteGrid() {
|
||||
grid_favoritedt = new GridView('#favoritelist');
|
||||
grid_favoritedt.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var list_columns = [
|
||||
{ name: 'Name', caption: GetTextByKey("P_FAV_FAVORITE", "Favorite"), valueIndex: 'Name', css: { 'width': 400, 'text-align': 'left' } },
|
||||
{ name: 'Delete', caption: "", css: { 'width': 32, 'text-align': 'center' } },
|
||||
{ name: 'Up', caption: "", css: { 'width': 32, 'text-align': 'center' } },
|
||||
{ name: 'Down', caption: "", css: { 'width': 32, 'text-align': 'center' } }
|
||||
];
|
||||
var columns = [];
|
||||
// head
|
||||
for (var hd in list_columns) {
|
||||
var col = {};
|
||||
col.name = list_columns[hd].name;
|
||||
col.caption = list_columns[hd].caption;
|
||||
col.visible = true;
|
||||
col.sortable = true;
|
||||
col.width = list_columns[hd].css.width;
|
||||
col.align = list_columns[hd].css["text-align"]
|
||||
col.key = list_columns[hd].valueIndex;
|
||||
if (list_columns[hd].type) {
|
||||
col.type = list_columns[hd].type;
|
||||
}
|
||||
if (col.name === "Delete") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf00d";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
OnDeleteFavorite(this);
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
};
|
||||
col.attrs = { 'title': GetTextByKey("P_FAV_DELETE", 'Delete') };
|
||||
}
|
||||
else if (col.name === "Up") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf062";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
onSortFavorite(true, this);
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
};
|
||||
col.attrs = { 'title': GetTextByKey("P_FAV_UP", 'Up') };
|
||||
}
|
||||
else if (col.name === "Down") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf063";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
onSortFavorite(false, this);
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
};
|
||||
col.attrs = { 'title': GetTextByKey("P_FAV_DOWN", 'Down') };
|
||||
}
|
||||
columns.push(col);
|
||||
}
|
||||
grid_favoritedt.canMultiSelect = false;
|
||||
grid_favoritedt.columns = columns;
|
||||
grid_favoritedt.init();
|
||||
|
||||
grid_favoritedt.selectedrowchanged = function (rowindex) {
|
||||
var rowdata = grid_favoritedt.source[rowindex];
|
||||
if (rowdata) {
|
||||
}
|
||||
};
|
||||
|
||||
grid_favoritedt.rowdblclick = function (rowindex) {
|
||||
var rowdata = grid_favoritedt.source[rowindex];
|
||||
if (rowdata) {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var favgridinited = false;
|
||||
function showFavoritesGridList(data) {
|
||||
if (!favgridinited) {
|
||||
favgridinited = true;
|
||||
InitFavoriteGrid();
|
||||
}
|
||||
grid_favoritedt.setData([]);
|
||||
if (!data || data.length === 0)
|
||||
return;
|
||||
var rows = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var r = data[i];
|
||||
var fr = { Values: r };
|
||||
rows.push(fr);
|
||||
}
|
||||
|
||||
grid_favoritedt.setData(rows);
|
||||
}
|
||||
|
||||
function openFavoriteDialog() {
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_favorite .dialog-title span.title').text(GetTextByKey("P_FAV_EDITFAVORITES", 'Edit Favorites'));
|
||||
|
||||
$('#dialog_favorite')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 540,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_favorite').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_favorite').width()) / 2
|
||||
}).showDialogfixed();
|
||||
$("#btnfavsave").focus();
|
||||
|
||||
if (userfavorates)
|
||||
showFavoritesGridList(userfavorates);
|
||||
}
|
||||
|
||||
function OnDeleteFavorite(fav) {
|
||||
if (!fav)
|
||||
return;
|
||||
|
||||
showFavConfirm(GetTextByKey("P_FAV_DELETEFAVORITECONTINUE", 'Favorite {0} will be deleted.Do you want to continue?').replace('{0}', fav.Name), GetTextByKey("P_FAV_DELETEFAVORITE", 'Delete Favorite'), function () {
|
||||
setFavoritesData(true, fav);
|
||||
});
|
||||
}
|
||||
|
||||
function onSortFavorite(isasc, fav) {
|
||||
if (!fav || !userfavorates)
|
||||
return;
|
||||
|
||||
var index;
|
||||
var currentfavs = [];
|
||||
for (var i = 0; i < grid_favoritedt.source.length; i++) {
|
||||
var userfav = grid_favoritedt.source[i].Values;
|
||||
if (fav.ID === userfav.ID)
|
||||
index = i;
|
||||
else
|
||||
currentfavs.push(userfav);
|
||||
}
|
||||
if (isasc) {
|
||||
if (index == 0)
|
||||
index = currentfavs.length;
|
||||
else
|
||||
index = index - 1;
|
||||
}
|
||||
else {
|
||||
if (index == currentfavs.length)
|
||||
index = 0;
|
||||
else
|
||||
index = index + 1;
|
||||
}
|
||||
currentfavs.splice(index, 0, fav);
|
||||
showFavoritesGridList(currentfavs);
|
||||
}
|
||||
|
||||
function onSaveFavoriteSort() {
|
||||
if (!grid_favoritedt)
|
||||
return;
|
||||
var data = [];
|
||||
for (var i = 0; i < grid_favoritedt.source.length; i++) {
|
||||
data.push(grid_favoritedt.source[i].Values);
|
||||
}
|
||||
|
||||
saveFavorites(data, true);
|
||||
}
|
||||
|
||||
|
||||
/*****************************Title Sites**************************************/
|
||||
|
||||
function onInitTitleSites() {
|
||||
if (appmoudulesdata) {
|
||||
var menudiv = $("#divfavmenu");
|
||||
var syssetli = $("#lisyssetting");
|
||||
var liversion = $("#liVersion");
|
||||
|
||||
menudiv.parent().find(".dynamicmenu").remove();
|
||||
syssetli.parent().find(".dynamicmenu").remove();
|
||||
|
||||
var mids = ['150', '650', '200', '400', 'dashboards', '100'];
|
||||
var smids = ['350', '150', '350', '300', '600', '650', '700'];
|
||||
for (var i = 0; i < mids.length; i++) {
|
||||
var id = mids[i];
|
||||
if (id === "dashboards") {
|
||||
if (!isReadonlyUser)
|
||||
createDashboardTitle(menudiv);
|
||||
}
|
||||
else {
|
||||
for (var j = 0; j < appmoudulesdata.length; j++) {
|
||||
var m = appmoudulesdata[j];
|
||||
if (!m.Visible) continue;
|
||||
if (id == parseInt(m.ID)) {
|
||||
if (id == '150') {
|
||||
for (var k = 0; k < m.SubItems.length; k++) {
|
||||
var sub = m.SubItems[k];
|
||||
if (sub.ID == "nav_jobsiterequirements"
|
||||
|| sub.ID == "nav_dispatchrequests"
|
||||
|| sub.ID == "nav_scheduler") {
|
||||
m = $.extend(true, {}, m);
|
||||
m.CurrentName = GetTextByKey("P_JS_ASSETSCHEDULINGANDDISPATCHING", "Asset Scheduling and Dispatching");
|
||||
m.IconPath = m.Url.split('/')[0] + "/img/dispatch.png";
|
||||
createTitleSite(m, menudiv);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
createTitleSite(m, menudiv);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < smids.length; i++) {
|
||||
var id = parseInt(smids[i]);
|
||||
for (var j = 0; j < appmoudulesdata.length; j++) {
|
||||
var m = appmoudulesdata[j];
|
||||
if (!m.Visible) continue;
|
||||
if (id == parseInt(m.ID)) {
|
||||
if (id == 350 && i == 0 && m.SubItems) {
|
||||
for (var k = 0; k < m.SubItems.length; k++) {
|
||||
var sub = m.SubItems[k];
|
||||
if (sub.ID === "nav_users") {
|
||||
createSettingSite(m, syssetli, sub);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (id == 350 && i == 2 && m.SubItems) {
|
||||
for (var k = 0; k < m.SubItems.length; k++) {
|
||||
var sub = m.SubItems[k];
|
||||
if (sub.ID === "nav_curfew") {
|
||||
createSettingSite(m, liversion, sub);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (id == 150) {
|
||||
m = $.extend(true, {}, m);
|
||||
m.Url += "#nav_jobsitemanage";
|
||||
createSettingSite(m, syssetli);
|
||||
} else {
|
||||
createSettingSite(m, liversion);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function createTitleSite(m, menudiv) {
|
||||
var name = m.CurrentName;
|
||||
var sm = JSON.parse(JSON.stringify(m));
|
||||
var mctrl = $("<div class='button dynamicmenu'></div>").click(function () {
|
||||
onOpenSite(sm);
|
||||
});
|
||||
|
||||
var icon;
|
||||
icon = $('<div class="titleicon"></div>').append($('<img class="titleimgicon"/>').attr('src', _network.root + m.IconPath));
|
||||
|
||||
mctrl.append(icon);
|
||||
|
||||
mctrl.attr("title", name);
|
||||
menudiv.after(mctrl);
|
||||
}
|
||||
|
||||
function createSettingSite(m, syssetli, sub) {
|
||||
var name = m.CurrentName;
|
||||
if (m.ID === "650")
|
||||
name = GetTextByKey("P_MODULE_INSPECTIONTEMPLATES", "Inspection Templates");
|
||||
var sm = JSON.parse(JSON.stringify(m));
|
||||
var icon = $('<button class="lefttitlemenu_icon"></button>');
|
||||
if (sub) {
|
||||
if (sub.ID === "nav_users")
|
||||
name = GetTextByKey("P_USERSETUP", "User Setup");
|
||||
else if (sub.ID === "nav_curfew")
|
||||
name = GetTextByKey("P_CURFEWCONFIGURATION", sub.Title);
|
||||
sm.Url = sub.Url;
|
||||
sm.IconPath = sm.Url.split('/')[0] + "/" + sub.IconPath;
|
||||
}
|
||||
icon = createMouduleIcon(sm, 1);
|
||||
|
||||
var li = $('<li class="dynamicmenu"></li>').click(function () {
|
||||
onOpenSite(sm);
|
||||
});
|
||||
var fav_a = $('<a style="padding-left:0;"></a>');
|
||||
li.append(fav_a);
|
||||
fav_a.append($('<div></div>').append(icon));
|
||||
fav_a.append($('<span></span>').text(name));
|
||||
|
||||
syssetli.before(li);
|
||||
}
|
||||
|
||||
//*************************************Dashboards**********************************//
|
||||
var dashboarddata;
|
||||
var grid_dbdt;
|
||||
function InitDBGridData() {
|
||||
grid_dbdt = new GridView('#dashboardslist');
|
||||
grid_dbdt.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var list_columns = [
|
||||
{ name: 'Name', caption: GetTextByKey("P_DASHBOARDS_NAME", "Name"), valueIndex: 'Name', css: { 'width': 240, 'text-align': 'left' } },
|
||||
{ name: 'Type', caption: GetTextByKey("P_DASHBOARDS_CHARTTYPE", "Chart Type"), valueIndex: 'Type', css: { 'width': 140, 'text-align': 'left' } },
|
||||
{ name: 'Notes', caption: GetTextByKey("P_DASHBOARDS_NOTES", "Notes"), valueIndex: 'NoteTag', css: { 'width': 80, 'text-align': 'left' } },
|
||||
{ name: 'IsChart', caption: GetTextByKey("P_DASHBOARDS_TYPE", "Type"), valueIndex: 'IsChart', css: { 'width': 80, '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.allowFilter = list_columns[hd].allowFilter;
|
||||
if (list_columns[hd].type) {
|
||||
col.type = list_columns[hd].type;
|
||||
}
|
||||
if (col.name == "Notes") {
|
||||
col.css = { 'text-align': 'center' };
|
||||
col.styleFilter = function () {
|
||||
return {
|
||||
color: 'blue', cursor: 'pointer', 'text-decoration': 'underline'
|
||||
};
|
||||
};
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
showChartNotes(this.ID, this.Notes);
|
||||
}
|
||||
}
|
||||
}
|
||||
columns.push(col);
|
||||
}
|
||||
grid_dbdt.canMultiSelect = false;
|
||||
grid_dbdt.columns = columns;
|
||||
grid_dbdt.init();
|
||||
grid_dbdt.rowdblclick = openDashboard;
|
||||
|
||||
grid_dbdt.selectedrowchanged = function (rowindex) {
|
||||
var rowdata = grid_dbdt.source[rowindex];
|
||||
if (rowdata) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function showChartNotes(iid, notes) {
|
||||
$("#prechartnotes").text(notes);
|
||||
$('#mask_bgcn').show();
|
||||
$('#dialog_chartnotes .dialog-title span.title').text(GetTextByKey("P_MAIN_CHARTNOTES", 'Chart Notes'));
|
||||
|
||||
$('#dialog_chartnotes')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 400,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_chartnotes').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_chartnotes').width()) / 2
|
||||
}).showDialogfixed();
|
||||
//_network.ficquery('GetChartNote', [iid], function (r) {
|
||||
// if (r != null) {
|
||||
// if (r.ErrorCode != 0) {
|
||||
// $("#prechartnotes").text(r.ErrorMessage);
|
||||
// } else {
|
||||
// $("#prechartnotes").html(unescape(r.Result));
|
||||
// }
|
||||
// }
|
||||
//});
|
||||
};
|
||||
|
||||
function requestFIC(service, method, param, callback, error) {
|
||||
$.ajax({
|
||||
url: _network.root + 'fic/fic/FICSvc.ashx?fmt=json&SN=' + Math.random(),
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
cache: false,
|
||||
data: encodeURIComponent(JSON.stringify({
|
||||
LanguageID: _fleet.currentLang,
|
||||
UtcOffset: new Date().getTimezoneOffset(),
|
||||
Flag: 0,
|
||||
AppName: '',
|
||||
ServiceType: service,
|
||||
MethodName: method,
|
||||
Parameters: param
|
||||
})),
|
||||
async: true,
|
||||
success: callback,
|
||||
error: error || function (e) {
|
||||
console.log(e);
|
||||
showmaskbg(false, true);
|
||||
showAlert(GetTextByKey('P_UM_PAGEERROR', 'An unknown error occurred. Please refresh page.'), GetTextByKey('P_UM_QUERY', 'Query'));
|
||||
}
|
||||
});
|
||||
}
|
||||
_network.ficquery = function (method, param, callback, error) {
|
||||
requestFIC('FI.FIC.IFICQuery', method, param, callback, error);
|
||||
};
|
||||
|
||||
function showDashboards(data) {
|
||||
var rows = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var r = data[i];
|
||||
r.NoteTag = (r.Notes && r.Notes != "") ? "?" : "";
|
||||
for (var j in r) {
|
||||
if (j === "IsChart")
|
||||
r[j] = { DisplayValue: r["IsChart"] ? "Chart" : "Dashboard", Value: r[j] };
|
||||
}
|
||||
|
||||
var fr = { Values: r };
|
||||
rows.push(fr);
|
||||
}
|
||||
|
||||
grid_dbdt.setData(rows);
|
||||
}
|
||||
|
||||
function createDashboardTitle(menudiv) {
|
||||
var mctrl = $("<div class='button dynamicmenu'></div>").click(function () {
|
||||
openDashboardsDialog();
|
||||
});
|
||||
//var icon = $('<button class="reportsdashboard"></button>');
|
||||
var icon = $('<div class="titleicon"></div>').append($('<img class="titleimgicon"/>').attr('src', _network.root + "img/modules/dashboards.png?t=7"));
|
||||
mctrl.append(icon);
|
||||
|
||||
mctrl.attr("title", GetTextByKey("P_MAIN_REPORTSDASHBOARDS", "Reports & Dashboards"));
|
||||
menudiv.after(mctrl);
|
||||
}
|
||||
|
||||
function openDashboardsDialog() {
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_dashboards .dialog-title span.title').text(GetTextByKey("P_MAIN_REPORTSDASHBOARDS", 'Reports & Dashboards'));
|
||||
|
||||
$('#dialog_dashboards')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 850,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_dashboards').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_dashboards').width()) / 2
|
||||
}).showDialogfixed(false);//参数为了兼容inspection页面
|
||||
|
||||
getDashboardList();
|
||||
}
|
||||
|
||||
function openDashboard() {
|
||||
var index = grid_dbdt.selectedIndex;
|
||||
if (index < 0) {
|
||||
_dialog.showAlert(GetTextByKey("P_DASHBOARDS_SELECTWSPORCHART", "Please select a Workspace or Chart."), GetTextByKey("P_MAIN_DASHBOARDS", 'Dashboards'));
|
||||
return;
|
||||
}
|
||||
|
||||
var dah = grid_dbdt.source[index].Values;
|
||||
if (dah.IsChart.Value) {
|
||||
setRecentOpenedDashboard(dah.ID);
|
||||
$('#dialog_dashboards').hideDialog();
|
||||
$('#mask_bg').hide();
|
||||
openFleetChart(dah.ID, dah.Name);
|
||||
}
|
||||
else {
|
||||
var m = {
|
||||
'ID': dah.ID,
|
||||
'ModuleType': 1,
|
||||
'OpenInNewWindow': false,
|
||||
'Url': "fic/Workspace.aspx?IID=" + dah.ID
|
||||
};
|
||||
onOpenSite(m);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getDashboardList() {
|
||||
var flag;
|
||||
if ($('#ipt_charts_only').prop('checked')) {
|
||||
flag = '1';
|
||||
} else if ($('#ipt_notes_only').prop('checked')) {
|
||||
flag = '2';
|
||||
} else {
|
||||
flag = '0';
|
||||
}
|
||||
var filter = JSON.stringify({
|
||||
'$type': 'System.String[], mscorlib',
|
||||
'$values': [htmlencode($.trim($('#ipt_dashboardfilter').val())), flag]
|
||||
});
|
||||
_network.mainpagequery("GetDashboardList", filter, function (data) {
|
||||
if (typeof data === 'string') {
|
||||
_dialog.showAlert(data, GetTextByKey("P_MAIN_DASHBOARDS", 'Dashboards'));
|
||||
} else {
|
||||
dashboarddata = data;
|
||||
showDashboards(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function setRecentOpenedDashboard(id) {
|
||||
_network.mainpagequery("SetRecentOpenedDashboard", id, function (data) {
|
||||
if (typeof data === 'string') {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function createMouduleIcon(m, type) {//type 0.moudule;1.fav/settings
|
||||
var icon = $('<img/>').attr('src', _network.root + m.IconPath);
|
||||
//if (m.ID === "100")//Map View
|
||||
// icon = $("<button class='iconmapview'></button>");
|
||||
//else if (m.ID === "150")//Jobsites
|
||||
// icon = $("<button class='iconjobsite'></button>");
|
||||
//else if (m.ID === "200")//Asset Health
|
||||
// icon = $("<button class='iconassethealth'></button>");
|
||||
//else if (m.ID === "250")//FilterQ
|
||||
// icon = $("<button class='iconassethealth'></button>");
|
||||
//else if (m.ID === "300")//Credentials
|
||||
// icon = $("<button class='iconcredentails'></button>");
|
||||
//if (m.ID === "350")//Security Setting
|
||||
// icon = $("<button class='iconsecuritysetting'></button>");
|
||||
//if (m.ID === "400")//Manage Assets
|
||||
// icon = $("<button class='iconmanageasset'></button>");
|
||||
//else if (m.ID === "450")//FIC Management
|
||||
// icon = $("<button class='iconficmanagement'></button>");
|
||||
//else if (m.ID === "500")//M3
|
||||
// icon = $("<button class='iconficmanagement'></button>");
|
||||
//else if (m.ID === "550")//Over/Under Trucking Alerts
|
||||
// icon = $("<button class='icontruck'></button>");
|
||||
//else if (m.ID === "600")//OTR Config
|
||||
// icon = $("<button class='iconotrconfig'></button>");
|
||||
//else if (m.ID === "650")//Inspection
|
||||
// icon = $("<button class='iconinspection'></button>");
|
||||
//else if (m.ID === "700")//Team Intelligence
|
||||
// icon = $("<button class='iconteamintelligence'></button>");
|
||||
|
||||
//if (m.ModuleType == 1)
|
||||
// //icon = $("<button class='iconworkspace'></button>");
|
||||
// icon = $('<img/>').attr('src', _network.root + "img/modules/dashboard.png");
|
||||
|
||||
if (type == 0)
|
||||
icon.addClass("moduleicon");
|
||||
else if (type == 1)
|
||||
icon.addClass("lefttitlemenu_icon");
|
||||
|
||||
return icon;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,734 @@
|
||||
/// <reference path="jquery-3.6.0.min.js" />
|
||||
/// <reference path="utility.js" />
|
||||
|
||||
var colspan = 16;
|
||||
|
||||
// FilterQ
|
||||
function filterQuery(method, param, callback, error) {
|
||||
_network.request("FilterQ.aspx?tp=ashx&method=" + method, -1, '', param, callback, error);
|
||||
}
|
||||
|
||||
function clickIcon() {
|
||||
var _this = $(this);
|
||||
var expand = _this.hasClass('collapse');
|
||||
_this.attr('class', 'icon ' + (expand ? 'expand' : 'collapse'))
|
||||
var tr = _this.parents('.subheader_tr');
|
||||
// fill if there isn't trs
|
||||
var row = tr.data('row');
|
||||
if (row) {
|
||||
var trs = [];
|
||||
fillGroup(row, trs);
|
||||
$(trs).insertAfter(tr);
|
||||
tr.removeData('row');
|
||||
return;
|
||||
}
|
||||
|
||||
var ship = tr.attr('shipdate');
|
||||
while ((tr = tr.next()).length) {
|
||||
if (tr.attr('shipdate') == ship) {
|
||||
tr.css('display', expand ? '' : 'none');
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fillTr1(tr, j, dt, item) {
|
||||
var td;
|
||||
tr.append(td);
|
||||
if (j > 0) {
|
||||
isdealer && tr.append($('<td style="font-size:13px;" class="bold hide"></td>').text(dt.OrganizationName));
|
||||
tr.append($('<td class="bold hide"></td>').text(item.OrgMachineCode));
|
||||
td = $('<td style="font-size:13px;" class="bold hide"></td>').text(dt.JobSite);
|
||||
} else {
|
||||
tr.addClass('top');
|
||||
var attr = {
|
||||
'rowspan': dt.Children.length,
|
||||
'rspan': dt.Children.length
|
||||
};
|
||||
isdealer && tr.append($('<td style="font-size:13px;" class="bold"></td>').text(dt.OrganizationName).attr(attr));
|
||||
td = $('<td class="bold"></td>').text(item.OrgMachineCode).attr(attr);
|
||||
if ((iscontractor || isdealer)) {
|
||||
td.append($('<input type="button" onclick="OnExpand(this);" class="expand_button" value="" style="font-size:13px;"/>'));
|
||||
}
|
||||
tr.append(td);
|
||||
td = $('<td style="font-size:13px;" class="bold"></td>').text(dt.JobSite).attr(attr);
|
||||
}
|
||||
tr.append(td);
|
||||
|
||||
var jobsite_str = item.JobContact
|
||||
+ '\n' + item.JobContactNumber
|
||||
+ '\n' + item.JobAddress1.replace(/\n$/g, '')
|
||||
+ '\n' + item.JobAddress2.replace(/\n$/g, '')
|
||||
+ '\n' + item.JobAddressCity
|
||||
+ '\n' + item.JobAddressState
|
||||
+ '\n' + item.JobAddressZip
|
||||
;
|
||||
td = $('<td style="font-size:11px;"></td>').html(htmlencode(jobsite_str).replace(/\n/g, '<br/>'));
|
||||
if (isdealer) {
|
||||
td.attr('colspan', 4);
|
||||
tr.append(td);
|
||||
//tr.append(createInputTd('org_machine_code', item.OrgMachineCode)); // 50
|
||||
} else {
|
||||
td.attr('colspan', 3);
|
||||
tr.append(td);
|
||||
}
|
||||
var make_str = 'Make: ' + item.ManufactuerMake
|
||||
+ '\nModel: ' + item.Model
|
||||
+ '\nSN: ' + item.SN
|
||||
;
|
||||
tr.append($('<td style=""></td>').html(htmlencode(make_str).replace(/\n/g, '<br/>')));
|
||||
//if (iscontractor) {
|
||||
tr.append($('<td></td>').text(item.EstShipDate));
|
||||
//}
|
||||
//tr.append(createInputTd('hours_atservice', item.TaskCompletedHours));
|
||||
tr.append($('<td></td>').text(item.DiffToService));
|
||||
}
|
||||
|
||||
function fillTr2(tr, j, dt, item) {
|
||||
|
||||
//isdealer && tr.append($('<td style="font-size:13px;" class="bold hide"></td>').text(dt.OrganizationName));
|
||||
//tr.append($('<td style="font-size:13px;" class="bold hide"></td>').text(dt.JobSite));
|
||||
|
||||
if (isdealer) {
|
||||
tr.append(createCheckboxTd('task_complete', item.TaskComplete));
|
||||
tr.append(createInputTd('ups_tracking_number', item.UPSTrackingNumber));
|
||||
}
|
||||
//tr.append($('<td></td>').text(item.UpsStatus));
|
||||
if ((iscontractor || isdealer)) {
|
||||
tr.append(createCheckboxTd('request_jre_to_service', item.RequestJREToService));
|
||||
//tr.append(createDropTd('priority', item.Priority));
|
||||
} else {
|
||||
tr.append(createCheckboxTd('request_jre_to_service', item.RequestJREToService, true));
|
||||
//tr.append($('<td></td>').text(getPriority(item.Priority)));
|
||||
}
|
||||
if (iscontractor) {
|
||||
tr.append(createCheckboxTd('approved_by', item.Approved));
|
||||
tr.append(createInputTd('po', item.CustomerPO));
|
||||
} else {
|
||||
tr.append(createCheckboxTd('approved_by', item.Approved, true));
|
||||
}
|
||||
if (isdealer) {
|
||||
tr.append(createInputTd('wonumber', item.CustomerWO));
|
||||
}
|
||||
if ((iscontractor || isdealer)) {
|
||||
tr.append(createTextareaTd('shipnotes', item.ShipNotes, true, isdealer ? 1 : 3));
|
||||
} else {
|
||||
var d = $('<td></td>').text(item.ShipNotes);
|
||||
var s = d.html().replace(/\n/g, '<br/>');
|
||||
tr.append(d.html(s));
|
||||
}
|
||||
|
||||
return tr;
|
||||
}
|
||||
|
||||
function fillGroup(row, trs, hidden) {
|
||||
|
||||
if (!row || !row.Groups) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = 0; i < row.Groups.length; i++) {
|
||||
var dt = row.Groups[i];
|
||||
|
||||
for (var j = 0; j < dt.Children.length; j++) {
|
||||
var item = dt.Children[j];
|
||||
if (!item) {
|
||||
continue;
|
||||
}
|
||||
|
||||
tr = $('<tr></tr>').data('item', item); // .attr('shipdate', row.ShipDate)
|
||||
if (hidden) {
|
||||
tr.css('display', 'none');
|
||||
}
|
||||
fillTr1(tr, j, dt, item);
|
||||
//trs.push(tr);
|
||||
|
||||
//tr = $('<tr></tr>').attr('shipdate', row.ShipDate);
|
||||
//if (hidden) {
|
||||
// tr.css('display', 'none');
|
||||
//}
|
||||
fillTr2(tr, j, dt, item);
|
||||
trs.push(tr);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getPriority(priority) {
|
||||
if (priority == 'next') {
|
||||
return 'Next Day Air';
|
||||
} else if (priority == '2nd') {
|
||||
return '2nd Day Air';
|
||||
}
|
||||
return 'Standard';
|
||||
}
|
||||
|
||||
function createInputTd(clsName, val, colspan) {
|
||||
var td = $('<td class="input"></td>');
|
||||
if (!isNaN(colspan)) {
|
||||
td.attr('colspan', colspan);
|
||||
}
|
||||
td.append($('<input type="text"/>').addClass(clsName).val(val).data('original', val).focus(clearRed));
|
||||
return td;
|
||||
}
|
||||
function createDateTd(clsName, val) {
|
||||
var td = $('<td class="input"></td>');
|
||||
var inp = $('<input type="text"/>').addClass(clsName).val(val).data('original', val).focus(startDate);
|
||||
//inp.datetimepicker({
|
||||
// timepicker: false,
|
||||
// format: 'm/d/Y'
|
||||
//});
|
||||
td.append(inp);
|
||||
return td;
|
||||
}
|
||||
function createTextareaTd(clsName, val, flag, colspan) {
|
||||
var td = $('<td class="input" style="text-align: left;"></td>');
|
||||
if (!isNaN(colspan)) {
|
||||
td.attr('colspan', colspan);
|
||||
}
|
||||
var area = $('<textarea></textarea>').addClass(clsName).val(val).data('original', val).focus(clearRed);
|
||||
if (flag) {
|
||||
area.attr('wrap', 'off');
|
||||
area.css({
|
||||
'overflow-x': 'hidden',
|
||||
'overflow-y': 'hidden',
|
||||
'min-height': '100%'
|
||||
});
|
||||
//if (typeof val === 'string' && val.indexOf('\n') >= 0) {
|
||||
// area.css('min-height', 36);
|
||||
//} else {
|
||||
// area.css('min-height', 24);
|
||||
//}
|
||||
doAutoHeight(area);
|
||||
area.bind('propertychange', autoHeight).bind('input', autoHeight);
|
||||
} else {
|
||||
area.css('height', '100%');
|
||||
}
|
||||
td.append(area);
|
||||
return td;
|
||||
}
|
||||
function startDate() {
|
||||
clearRed();
|
||||
$('.dt_picker').datetimepicker('destroy').remove();
|
||||
|
||||
var _this = $(this);
|
||||
var dt = $('<input type="text" class="dt_picker"/>').val(_this.val()).data({
|
||||
'original': _this.val(),
|
||||
'control': _this
|
||||
}).blur(destroyDate);
|
||||
dt.datetimepicker({
|
||||
timepicker: false,
|
||||
format: 'm/d/Y',
|
||||
onSelectDate: changeDate
|
||||
});
|
||||
dt.bind('propertychange', changeDate).bind('input', changeDate);
|
||||
_this.css('display', 'none');
|
||||
dt.appendTo(_this.parent());
|
||||
dt.focus();
|
||||
}
|
||||
function changeDate(text, inst) {
|
||||
inst.data('control').val(inst.val());
|
||||
}
|
||||
function destroyDate() {
|
||||
$(this).data('control').css('display', '');
|
||||
$(this).css('display', 'none');
|
||||
}
|
||||
function autoHeight() {
|
||||
doAutoHeight($(this));
|
||||
}
|
||||
function doAutoHeight(ele) {
|
||||
var s = ele.val();
|
||||
var lbl = $('#lbl_calc').html(htmlencode(s).replace(/\n/g, '<br/>'));
|
||||
var tdwidth = ele.parent().width();
|
||||
var lblwidth = lbl.width() + 6;
|
||||
if (lblwidth < 200) {
|
||||
lblwidth = 200;
|
||||
}
|
||||
ele.css({
|
||||
'height': getLinesNumber(ele.val()) * 13,
|
||||
'width': isNaN(tdwidth) ? lblwidth : Math.max(tdwidth, lblwidth)
|
||||
});
|
||||
}
|
||||
function getLinesNumber(val) {
|
||||
if (typeof val !== 'string') {
|
||||
return 1;
|
||||
}
|
||||
var lines = val.split(/\n/).length;
|
||||
return (lines > 0 ? lines : 1);
|
||||
}
|
||||
function createCheckboxTd(clsName, val, ro) {
|
||||
var td = $('<td class="input"></td>');
|
||||
var inp = $('<input type="checkbox"/>').addClass(clsName).prop({
|
||||
'checked': val,
|
||||
'disabled': ro
|
||||
}).data('original', val).focus(clearRed);
|
||||
if (ro) {
|
||||
td.addClass('ro');
|
||||
inp.css('background', 'none');
|
||||
}
|
||||
td.append(inp);
|
||||
return td;
|
||||
}
|
||||
function createDropTd(clsName, val) {
|
||||
var td = $('<td class="input"></td>');
|
||||
var opts = [
|
||||
$('<option selected="selected" value="standard"></option>').text(getPriority('standard')),
|
||||
$('<option value="next"></option>').text(getPriority('next')),
|
||||
$('<option value="2nd"></option>').text(getPriority('2nd'))
|
||||
];
|
||||
td.append($('<select></select>').append(opts).addClass(clsName).val(val).data('original', val).focus(clearRed));
|
||||
return td;
|
||||
}
|
||||
|
||||
function clearRed(e) {
|
||||
$(this).removeClass('red');
|
||||
}
|
||||
|
||||
|
||||
function getFilterQGroups() {
|
||||
|
||||
function checkAll(e) {
|
||||
var flag = $(this).prop('checked');
|
||||
$(this).parents('ul:first').find('input').prop('checked', flag);
|
||||
}
|
||||
|
||||
function fillList(data) {
|
||||
var shipdates = [];
|
||||
var li = $('<li></li>');
|
||||
var chk = $('<input type="checkbox" id="chk_shipdate_all"/>');
|
||||
chk.change(checkAll);
|
||||
li.append(chk);
|
||||
li.append($('<label for="chk_shipdate_all">All</label>'));
|
||||
shipdates.push(li);
|
||||
|
||||
var tbody = $('#bodyFilters');
|
||||
tbody.removeData('datas').empty();
|
||||
if (!data) {
|
||||
tbody.append('<tr><td colspan="' + colspan + '" class="errorText">Error occurs, please contact your administrator.</td></tr>');
|
||||
} else {
|
||||
var datas = [];
|
||||
var trs = [];
|
||||
for (var g = 0; g < data.length; g++) {
|
||||
var row = data[g];
|
||||
|
||||
// filters
|
||||
var dates = row.ShipDates;
|
||||
for (var i = 0; i < dates.length; i++) {
|
||||
var d = dates[i];
|
||||
li = $('<li></li>');
|
||||
chk = $('<input type="checkbox"/>').attr('id', 'chk_shipdate_' + d).val(d);
|
||||
//if (row && row.Groups && row.Groups.length > 0) {
|
||||
// chk.prop('checked', true);
|
||||
//}
|
||||
if (!row.SelectedShipDates || !row.SelectedShipDates.length || $.inArray(d, row.SelectedShipDates) >= 0) {
|
||||
chk.prop('checked', true);
|
||||
}
|
||||
li.append(chk);
|
||||
li.append($('<label></label>').attr('for', 'chk_shipdate_' + d).text(d));
|
||||
shipdates.push(li);
|
||||
}
|
||||
|
||||
//var tr = $('<tr class="subheader_tr"></tr>').attr('shipdate', row.ShipDate);
|
||||
//var td = $('<td></td>').attr('colspan', colspan);
|
||||
//var expand = (g == 0 ? 'expand' : 'collapse');
|
||||
//td.append($('<em class="icon"></em>').addClass(expand).click(clickIcon));
|
||||
//td.append($('<span class="subheader"></span>').text('Estimated Ship Date: ' + row.ShipDate));
|
||||
//tr.append(td);
|
||||
//trs.push(tr);
|
||||
|
||||
//if (g > 0) {
|
||||
// tr.data('row', row);
|
||||
//} else {
|
||||
fillGroup(row, trs);
|
||||
//}
|
||||
if (row && row.Groups) {
|
||||
for (var i = 0; i < row.Groups.length; i++) {
|
||||
var dt = row.Groups[i];
|
||||
|
||||
for (var j = 0; j < dt.Children.length; j++) {
|
||||
var item = dt.Children[j];
|
||||
datas.push(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
tbody.append(trs).data('datas', datas);
|
||||
}
|
||||
$('#ul_shipdates').empty().append(shipdates);
|
||||
}
|
||||
|
||||
var query = {
|
||||
'ColumnSort': column_sort,
|
||||
'IsAsc': isasc,
|
||||
'TaskComplete': task_complete,
|
||||
'ShipDates': ship_dates
|
||||
};
|
||||
|
||||
filterQuery('GetFilterQGroups', JSON.stringify(query), function (data) {
|
||||
if (typeof data === 'string') {
|
||||
if (data == 'not login.') {
|
||||
_dialog.showAlert('Unknown error occurred. Please refresh.', 'Query Groups');
|
||||
} else {
|
||||
// err message
|
||||
_dialog.showAlert('Unknown error occurred. Please refresh:\n\n' + data, 'Query Groups');
|
||||
}
|
||||
} else {
|
||||
fillList(data);
|
||||
}
|
||||
//$('#mask_bg').css('height', $('#filterTable').height());
|
||||
}, function (err) {
|
||||
_dialog.showAlert('Unknown error occurred. Please refresh.', 'Query Groups');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function OnCancel() {
|
||||
var inputs = $('#bodyFilters').find('input');
|
||||
for (var i = 0; i < inputs.length; i++) {
|
||||
var inp = $(inputs[i]);
|
||||
var dt = inp.data('original');
|
||||
if (dt !== undefined) {
|
||||
if (inp.attr('type') == 'checkbox') {
|
||||
inp.prop('checked', dt);
|
||||
} else {
|
||||
inp.val(dt);
|
||||
}
|
||||
}
|
||||
}
|
||||
var sels = $('#bodyFilters').find('select');
|
||||
for (var i = 0; i < sels.length; i++) {
|
||||
var inp = $(sels[i]);
|
||||
var dt = inp.data('original');
|
||||
if (dt !== undefined) {
|
||||
inp.val(dt);
|
||||
}
|
||||
}
|
||||
var txts = $('#bodyFilters').find('textarea');
|
||||
for (var i = 0; i < sels.length; i++) {
|
||||
var inp = $(sels[i]);
|
||||
var dt = inp.data('original');
|
||||
if (dt !== undefined) {
|
||||
inp.val(dt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function AlertLimit(input, limit) {
|
||||
if (!input || typeof input.val !== 'function')
|
||||
return true;
|
||||
if (input.val().length > limit) {
|
||||
input.addClass('red');
|
||||
alert('The field size cannot be greater than ' + limit);
|
||||
input.focus();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function AlertNumber(input) {
|
||||
if (!input || typeof input.val !== 'function')
|
||||
return true;
|
||||
if (isNaN(input.val())) {
|
||||
input.addClass('red');
|
||||
alert('The field must be a number.');
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function AlertInt(input) {
|
||||
if (!input || typeof input.val !== 'function')
|
||||
return true;
|
||||
if (isNaN(parseInt(input.val()))) {
|
||||
input.addClass('red');
|
||||
alert('The field must be an integer.');
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function AlertDate(input) {
|
||||
if (!input || typeof input.val !== 'function')
|
||||
return true;
|
||||
/*/ TODO
|
||||
if (isNaN(parseInt(input.val()))) {
|
||||
input.addClass('red');
|
||||
alert('The field must be an integer.');
|
||||
return true;
|
||||
}
|
||||
//*/
|
||||
return false;
|
||||
}
|
||||
|
||||
function OnRefresh() {
|
||||
var td = $('<td style="height:30px;line-height:30px;"></td>').attr('colspan', colspan);
|
||||
td.append('<span class="loading c-spin" style="margin-left:0;"></span>');
|
||||
td.append('<span style="margin-left:20px;">Loading...</span>');
|
||||
var tr = $('<tr></tr>').append(td);
|
||||
$('#bodyFilters').empty().append(tr);
|
||||
|
||||
enableUI(false);
|
||||
getFilterQGroups();
|
||||
}
|
||||
|
||||
function enableUI(flag, noloading) {
|
||||
$('#search_bar').prop('disabled', !flag);
|
||||
$('#button_save').prop('disabled', (!isdealer && !iscontractor) || !flag);
|
||||
$('#button_cancel').prop('disabled', (!isdealer && !iscontractor) || !flag);
|
||||
$('#button_refresh').prop('disabled', (!isdealer && !iscontractor) || !flag);
|
||||
|
||||
$('#mask_bg').css('display', flag ? 'none' : '');
|
||||
!noloading && $('#span_loading').css('display', flag ? 'none' : '');
|
||||
}
|
||||
|
||||
// expand
|
||||
var nowItem;
|
||||
var editor_saved;
|
||||
|
||||
function OnExpand(e) {
|
||||
editor_saved = undefined;
|
||||
nowItem = $(e).parents('tr').data('item'); //.next('tr');
|
||||
enableUI(false, true);
|
||||
var dialog = fillValue(nowItem);
|
||||
dialog.css('top', Math.max(0, ($(window).height() - dialog.height()) / 2)).show();
|
||||
}
|
||||
|
||||
var editor_changed;
|
||||
|
||||
function showEditorBg(flag) {
|
||||
$('#popup_editor').children('.maskbg').css('display', flag ? '' : 'none');
|
||||
}
|
||||
|
||||
function FillNext(n) {
|
||||
if (editor_changed) {
|
||||
showEditorBg(true);
|
||||
_dialog.showButtonDialog('Some values have changed. Would you like to save the changes?', 'Save', 'question', undefined, [{
|
||||
value: 'Cancel',
|
||||
func: function () {
|
||||
showEditorBg(false);
|
||||
}
|
||||
}, {
|
||||
value: 'No',
|
||||
func: function () {
|
||||
showEditorBg(false);
|
||||
doFillNext(n);
|
||||
editor_changed = false;
|
||||
}
|
||||
}, {
|
||||
value: 'Yes',
|
||||
func: function () {
|
||||
showEditorBg(false);
|
||||
SaveEditor(function () {
|
||||
doFillNext(n);
|
||||
});
|
||||
}
|
||||
}]);
|
||||
} else {
|
||||
doFillNext(n);
|
||||
}
|
||||
}
|
||||
|
||||
function doFillNext(n) {
|
||||
if (!nowItem) {
|
||||
return;
|
||||
}
|
||||
var tr;
|
||||
var datas = $('#bodyFilters').data('datas');
|
||||
if (!datas) {
|
||||
alert('Logical error: No data is found.');
|
||||
return;
|
||||
}
|
||||
var i = 0;
|
||||
for (; i < datas.length; i++) {
|
||||
if (nowItem.TaskID == datas[i].TaskID) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i >= datas.length) {
|
||||
alert('Logical error: Current item is not found.');
|
||||
return;
|
||||
}
|
||||
if (n > 0) {
|
||||
i++;
|
||||
if (i >= datas.length) {
|
||||
alert('This is the last one.');
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
i--;
|
||||
if (i < 0) {
|
||||
alert('This is the first one.');
|
||||
return;
|
||||
}
|
||||
}
|
||||
nowItem = datas[i];
|
||||
fillValue(nowItem);
|
||||
}
|
||||
function findNextDataTR(tr) {
|
||||
if (typeof tr.next !== 'function')
|
||||
return [];
|
||||
while ((tr = tr.next('tr')).length > 0) {
|
||||
if (tr.hasClass('subheader_tr'))
|
||||
continue;
|
||||
return tr;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
function findPrevDataTR(tr) {
|
||||
if (typeof tr.prev !== 'function')
|
||||
return [];
|
||||
while ((tr = tr.prev('tr')).length > 0) {
|
||||
if (tr.hasClass('subheader_tr'))
|
||||
continue;
|
||||
return tr;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
function fillValue(item) {
|
||||
var disableAll = !(isdealer || iscontractor);
|
||||
var disableContractor = iscontractor && !isdealer;
|
||||
var disableDealer = isdealer && !iscontractor;
|
||||
|
||||
var editor = $('#popup_editor');
|
||||
// top
|
||||
editor.find('.jobsite').text(item.CurrentJob);
|
||||
editor.find('.org_name').text(item.OrganizationName);
|
||||
editor.find('.eqp_code').text(item.OrgMachineCode);
|
||||
// second
|
||||
editor.find('.jobsite_contact').text(item.JobContact);
|
||||
editor.find('.contact_number').text(item.JobContactNumber);
|
||||
editor.find('.addrses1').text(item.JobAddress1);
|
||||
editor.find('.address2').text(item.JobAddress2);
|
||||
editor.find('.city').text(item.JobAddressCity);
|
||||
editor.find('.state').text(item.JobAddressState);
|
||||
editor.find('.zip').text(item.JobAddressZip);
|
||||
editor.find('.make').text(item.ManufactuerMake);
|
||||
editor.find('.model').text(item.Model);
|
||||
editor.find('.sn').text(item.SN);
|
||||
editor.find('.hours').text(item.CumulativeHours);
|
||||
editor.find('.service_needed').text(item.MachineTaskHourCheck);
|
||||
editor.find('.due').text(item.DiffToService);
|
||||
var dContractors = [];
|
||||
var dDealers = [];
|
||||
//dContractors.push(editor.find('.hours').val(item.CumulativeHours).prop('disabled', disableContractor)); // editable, double
|
||||
//dContractors.push(editor.find('.service_needed').val(item.MachineTaskHourCheck).prop('disabled', disableContractor)); // int
|
||||
//dContractors.push(editor.find('.due').val(item.DiffToService).prop('disabled', disableContractor)); // double
|
||||
dContractors.push(editor.find('.est_due_date').val(item.EstDueDate).prop('disabled', disableContractor)); // ESTServiceNeededBy
|
||||
dContractors.push(editor.find('.est_ship_date').val(item.EstShipDate).prop('disabled', disableContractor)); // ESTShopDate
|
||||
dContractors.push(editor.find('.ups_tracking').val(item.UPSTrackingNumber).prop('disabled', disableContractor));
|
||||
// third
|
||||
//editor.find('.hours_atservice').val(item.TaskCompletedHours);
|
||||
editor.find('.priority_val').val(item.Priority);
|
||||
editor.find('.wo_number').val(item.CustomerWO);
|
||||
editor.find('.alt_ship_address1').val(item.AlternateAddress1);
|
||||
editor.find('.alt_ship_address2').val(item.AlternateAddress2);
|
||||
editor.find('.alt_ship_city').val(item.AlternateAddressCity);
|
||||
editor.find('.alt_ship_state').val(item.AlternateAddressState);
|
||||
editor.find('.alt_ship_zip').val(item.AlternateAddressZip);
|
||||
editor.find('.alt_job').val(item.AltJob);
|
||||
editor.find('.alt_jobsite_contact').val(item.AltJobSiteContact);
|
||||
editor.find('.ship_notes').val(item.ShipNotes);
|
||||
// last
|
||||
editor.find('.req_jre').prop('checked', item.RequestJREToService);
|
||||
editor.find('.po').val(item.CustomerPO);
|
||||
editor.find('.po_approved').prop('checked', item.Approved);
|
||||
//dDealers.push(editor.find('.req_jre').prop('checked', item.RequestJREToService).prop('disabled', disableDealer));
|
||||
//dDealers.push(editor.find('.po').val(item.CustomerPO).prop('disabled', disableDealer));
|
||||
//dDealers.push(editor.find('.po_approved').prop('checked', item.Approved).prop('disabled', disableDealer));
|
||||
dContractors.push(editor.find('.task_complete').prop('checked', item.TaskComplete).prop('disabled', disableContractor));
|
||||
|
||||
for (var i = 0; i < dContractors.length; i++) {
|
||||
if (disableContractor) {
|
||||
dContractors[i].parents('.item').removeClass('editor');
|
||||
} else {
|
||||
dContractors[i].parents('.item').addClass('editor');
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < dDealers.length; i++) {
|
||||
if (disableDealer) {
|
||||
dDealers[i].parents('.item').removeClass('editor');
|
||||
} else {
|
||||
dDealers[i].parents('.item').addClass('editor');
|
||||
}
|
||||
}
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
||||
function SaveEditor(func) {
|
||||
if (!(isdealer || iscontractor)) {
|
||||
alert('You do not have permission to save it.')
|
||||
return;
|
||||
}
|
||||
|
||||
if (!nowItem) { // || typeof prevTr.data !== 'function'
|
||||
alert('Logic error, there is no data.');
|
||||
return;
|
||||
}
|
||||
var item = nowItem; //prevTr.data('item');
|
||||
if (!item) {
|
||||
alert('Data is undefined.');
|
||||
return;
|
||||
}
|
||||
|
||||
var editor = $('#popup_editor');
|
||||
//var inp = editor.find('.hours_atservice');
|
||||
//if (AlertNumber(inp)) { return; }
|
||||
//item.TaskCompletedHours = parseFloat(inp.val());
|
||||
item.Priority = editor.find('.priority_val').val();
|
||||
item.CustomerWO = editor.find('.wo_number').val(); // 20
|
||||
item.AlternateAddress1 = editor.find('.alt_ship_address1').val(); // 50
|
||||
item.AlternateAddress2 = editor.find('.alt_ship_address2').val(); // 50
|
||||
item.AlternateAddressCity = editor.find('.alt_ship_city').val(); // 50
|
||||
item.AlternateAddressState = editor.find('.alt_ship_state').val(); // 50
|
||||
item.AlternateAddressZip = editor.find('.alt_ship_zip').val(); // 50
|
||||
item.AltJob = editor.find('.alt_job').val(); // 200
|
||||
item.AltJobSiteContact = editor.find('.alt_jobsite_contact').val(); // 200
|
||||
item.ShipNotes = editor.find('.ship_notes').val(); // 250
|
||||
|
||||
if (isdealer) {
|
||||
//inp = editor.find('.hours');
|
||||
//if (AlertNumber(inp)) { return; }
|
||||
//item.CumulativeHours = parseFloat(inp.val());
|
||||
//inp = editor.find('.service_needed');
|
||||
//if (AlertInt(inp)) { return; }
|
||||
//item.MachineTaskHourCheck = parseInt(inp.val());
|
||||
//inp = editor.find('.due');
|
||||
//if (AlertNumber(inp)) { return; }
|
||||
//item.DiffToService = parseFloat(inp.val());
|
||||
item.EstDueDate = editor.find('.est_due_date').val();
|
||||
item.EstShipDate = editor.find('.est_ship_date').val();
|
||||
item.ESTServiceNeededBy = editor.find('.est_due_date').val();
|
||||
item.ESTShopDate = editor.find('.est_ship_date').val();
|
||||
item.UPSTrackingNumber = editor.find('.ups_tracking').val(); // 100
|
||||
item.TaskComplete = editor.find('.task_complete').prop('checked');
|
||||
}
|
||||
|
||||
if (iscontractor || isdealer) {
|
||||
item.RequestJREToService = editor.find('.req_jre').prop('checked');
|
||||
item.CustomerPO = editor.find('.po').val(); // 20
|
||||
item.Approved = editor.find('.po_approved').prop('checked');
|
||||
}
|
||||
|
||||
var json = JSON.stringify([item]);
|
||||
json = htmlencode(json);
|
||||
$('#mask_editor_bg').show();
|
||||
filterQuery('SaveFilterQ', json, function (data) {
|
||||
if (data == true) {
|
||||
editor_saved = true;
|
||||
editor_changed = false;
|
||||
if (typeof func == 'function') {
|
||||
func();
|
||||
} else {
|
||||
alert('Save data successful.');
|
||||
}
|
||||
} else {
|
||||
alert(data);
|
||||
}
|
||||
$('#mask_editor_bg').hide();
|
||||
}, function (err) {
|
||||
console.log(err);
|
||||
alert('Save error. Please update data as needed and try again.');
|
||||
$('#mask_editor_bg').hide();
|
||||
});
|
||||
|
||||
}
|
||||
@@ -0,0 +1,909 @@
|
||||
|
||||
var $layoutcolumnselector = function (grid) {
|
||||
this.title = GetTextByKey("P_GRID_XXXXXX", 'Layout');
|
||||
this.dialogId = 'dialog_layouts';
|
||||
$("#" + this.dialogId).remove();
|
||||
this.grid = grid;
|
||||
this.dialog = null;
|
||||
this.onOK = null;
|
||||
this.onDialogClosed = null;
|
||||
};
|
||||
|
||||
(function () {
|
||||
var __proto = $layoutcolumnselector.prototype;
|
||||
|
||||
var tbdata;
|
||||
|
||||
function initColumnsGrid(parent) {
|
||||
var divheader = $("<div style='font-size:14px;background-color:#fafafa;'></div>").appendTo(parent);
|
||||
var tbheader = $("<table style='width:100%;'></table>").appendTo(divheader);
|
||||
var trheader = $("<tr></tr>").appendTo(tbheader);
|
||||
trheader.append();
|
||||
var td = $("<td style='width:30px'></td>");
|
||||
trheader.append(td);
|
||||
$("<input type='checkbox' />").appendTo(td).on('click', function (e) {
|
||||
tbdata.find("input[type='checkbox']:enabled").prop("checked", $(e.target).prop("checked"));
|
||||
});
|
||||
trheader.append($("<td style='width:220px'></td>").text(GetTextByKey("P_GRID_COLUMN", "Column")));
|
||||
trheader.append($("<td style='width:220px'></td>").text(GetTextByKey("P_GRID_CAPTION", "Caption")));
|
||||
trheader.append($("<td></td>").text(GetTextByKey("P_XXXXXX", "Width")));
|
||||
|
||||
var divdata = $("<div style=' height: 400px; overflow: auto;line-height:30px;'></div>").appendTo(parent);
|
||||
tbdata = $("<table style='width:100%;'></table>").appendTo(divdata);
|
||||
}
|
||||
|
||||
function createDialog() {
|
||||
var dialog = $('<div class="dialog" style="display: none; width: 605px; height: 610px;min-width: 560px;line-height:30px;">').attr('id', this.dialogId);
|
||||
|
||||
var title = $('<div class="dialog-title"></div>').appendTo(dialog);
|
||||
title.append($('<span class="title"></span>').text(this.title));
|
||||
title.append('<em class="dialog-close"></em>');
|
||||
|
||||
var _this = this;
|
||||
var layoutOptionDiv = $('<div style="margin-left:10px;margin-right:10px;"></div>').appendTo(dialog);
|
||||
var rdoCurrentLayout = $("<input type='radio' id='rdoCurrentLayout' checked='checked' name='layoutoption' style='margin-left:20px;' />").on('click', function () {
|
||||
txtSearch && txtSearch.val("");
|
||||
showdata.call(_this, false);
|
||||
}).appendTo(layoutOptionDiv);
|
||||
$("<label for='rdoCurrentLayout'></label>").text(GetTextByKey("P_XXXXXX", "Show Current Layout")).appendTo(layoutOptionDiv);
|
||||
var rdoDefaultLayout = $("<input type='radio' id='rdoDefaultLayout' name='layoutoption' style='margin-left:60px;' />").on('click', function () {
|
||||
txtSearch && txtSearch.val("");
|
||||
showdata.call(_this, true);
|
||||
}).appendTo(layoutOptionDiv);
|
||||
$("<label for='rdoDefaultLayout'></label>").text(GetTextByKey("P_XXXXXX", "Show Default Layout")).appendTo(layoutOptionDiv);
|
||||
var chkDisplayedOnly = $("<input type='checkbox' id='chkDisplayedOnly' name='layoutoption' style='margin-left:60px;' />").on('click', function () {
|
||||
searchColumns(txtSearch.val().trim());
|
||||
}).appendTo(layoutOptionDiv);
|
||||
$("<label for='chkDisplayedOnly'></label>").text(GetTextByKey("P_XXXXXX", "Displayed Only")).appendTo(layoutOptionDiv);
|
||||
|
||||
$('<div style="margin-left:20px;"></div>').text(GetTextByKey("P_XXXXXX", "To move columns, drag and drop on column name.")).appendTo(dialog);
|
||||
|
||||
var searchDiv = $('<div style="margin-left:10px;margin-right:10px;"></div>').appendTo(dialog);
|
||||
var txtSearch = $("<input type='text' style='margin-left: 7px;width:95%;' />").appendTo(searchDiv);
|
||||
txtSearch.attr("placeholder", GetTextByKey("P_XXXXXX", "Search Columns"));
|
||||
txtSearch.on('input propertychange', function () {
|
||||
searchColumns($(this).val().trim());
|
||||
});
|
||||
txtSearch.on('keydown', function () {
|
||||
searchColumns($(this).val().trim());
|
||||
});
|
||||
|
||||
var columnListDiv = $('<div style="width: 580px; height: 440px; margin: 5px 10px 4px 10px;overflow:auto;"></div>').appendTo(dialog);
|
||||
|
||||
var dialogFunction = $('<div class="dialog-func"></div>').appendTo(dialog);
|
||||
$('<input type="button" value="' + GetTextByKey("P_GRID_CANCEL", "Cancel") + '" class="dialog-close" />').appendTo(dialogFunction);
|
||||
$('<input type="button" value="' + GetTextByKey("P_GRID_OK", "OK") + '" />').on('click', onOKClick.bind(this)).appendTo(dialogFunction);
|
||||
$('<div class="clear"></div>').appendTo(dialogFunction);
|
||||
|
||||
$('<div class="maskbg" style="display: none"><div class="loading_icon icon c-spin"></div></div>').appendTo(dialog);
|
||||
|
||||
// init
|
||||
initColumnsGrid.call(this, columnListDiv);
|
||||
$(document.body).append(dialog);
|
||||
|
||||
dialog.dialog(this.onDialogClosed);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
function searchColumns(filter) {
|
||||
var trs = tbdata.find("tr");
|
||||
for (var i = 0; i < trs.length; i++) {
|
||||
var tr = $(trs[i]);
|
||||
var rowInfo = tr.data("rowInfo");
|
||||
if (rowInfo) {
|
||||
var col = rowInfo.ColumnData;
|
||||
var colinfo = {
|
||||
'Column': col.OriginalCaption,
|
||||
'Caption': rowInfo.txtCaption.val().trim()
|
||||
}
|
||||
|
||||
if ((!$("#chkDisplayedOnly").prop("checked") || rowInfo.chkSelected.prop("checked"))
|
||||
&& (colinfo.Column.toLowerCase().indexOf(filter.toLowerCase()) >= 0 || colinfo.Caption.toLowerCase().indexOf(filter.toLowerCase()) >= 0))
|
||||
tr.show();
|
||||
else
|
||||
tr.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
__proto.showLayoutSelector = function (topRatio, force) {
|
||||
var dialog;
|
||||
if (force) {
|
||||
$('#' + this.dialogId).remove();
|
||||
dialog = createDialog.call(this);
|
||||
} else {
|
||||
dialog = $('#' + this.dialogId);
|
||||
if (!dialog.length) {
|
||||
dialog = createDialog.call(this);
|
||||
}
|
||||
}
|
||||
this.dialog = dialog;
|
||||
dialog.attr('init', '1').showDialog().css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_machines').height()) / (topRatio || 3),
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_machines').width()) / 2
|
||||
});
|
||||
showdata.call(this, false);
|
||||
};
|
||||
|
||||
function showdata(showall) {
|
||||
if (!this.grid.allcolumns || this.grid.allcolumns.length <= 0)
|
||||
return;
|
||||
|
||||
var tmpColumns = [];
|
||||
if (showall) {
|
||||
for (var j = 0; j < this.grid.allcolumns.length; j++) {
|
||||
var dc = this.grid.allcolumns[j];
|
||||
|
||||
dc = $.extend(true, {}, dc);
|
||||
dc.OriginalCaption = dc.caption;
|
||||
dc.UserCaption = "";
|
||||
dc.Width = dc.width;
|
||||
dc.Selected = dc.visible !== false;
|
||||
tmpColumns.push(dc);
|
||||
|
||||
}
|
||||
}
|
||||
else if (this.grid.columns && this.grid.columns.length > 0) {
|
||||
for (var i = 0; i < this.grid.columns.length; i++) {
|
||||
var cc = $.extend(true, {}, this.grid.columns[i]);
|
||||
|
||||
//if (!cc.alwaysshow) {
|
||||
cc.Width = cc.width;
|
||||
cc.Selected = cc.visible !== false;
|
||||
tmpColumns.push(cc);
|
||||
//}
|
||||
}
|
||||
|
||||
for (var j = 0; j < this.grid.allcolumns.length; j++) {
|
||||
var dc = this.grid.allcolumns[j];
|
||||
//if (dc.alwaysshow) continue;
|
||||
|
||||
var selected = false;
|
||||
for (var i = 0; i < tmpColumns.length; i++) {
|
||||
var tc = tmpColumns[i];
|
||||
if (tc.name == dc.name) {
|
||||
selected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!selected) {
|
||||
dc = $.extend(true, {}, dc);
|
||||
dc.OriginalCaption = dc.caption;
|
||||
dc.UserCaption = "";
|
||||
dc.Width = dc.width;
|
||||
dc.Selected = false;
|
||||
tmpColumns.push(dc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tbdata.empty();
|
||||
for (var i = 0; i < tmpColumns.length; i++) {
|
||||
var c = tmpColumns[i];
|
||||
var rowInfo = {};
|
||||
rowInfo.ColumnData = c;
|
||||
var tr = $("<tr></tr>").appendTo(tbdata).data("rowInfo", rowInfo);
|
||||
|
||||
var td = $("<td style='width:30px'></td>").appendTo(tr);
|
||||
rowInfo.chkSelected = $("<input type='checkbox' />").appendTo(td);
|
||||
rowInfo.chkSelected.prop("checked", c.Selected);
|
||||
if (c.alwaysshow)
|
||||
rowInfo.chkSelected.prop("checked", true).prop("disabled", true);
|
||||
|
||||
td = $("<td style='width:220px'></td>").appendTo(tr);
|
||||
rowInfo.txtOriginalCaption = $("<span></span>").appendTo(td);
|
||||
rowInfo.txtOriginalCaption.text(c.alwaysshow ? c.text : c.OriginalCaption);
|
||||
if (c.name === "Selected")
|
||||
rowInfo.txtOriginalCaption.text('\uf0c8');
|
||||
if (c.alwaysshow)
|
||||
rowInfo.txtOriginalCaption.addClass('icon-col').css('cursor', 'default');
|
||||
|
||||
td = $("<td style='width:220px'></td>").appendTo(tr);
|
||||
rowInfo.txtCaption = $("<input type='text' style='width:210px' maxlength='200' />").appendTo(td);
|
||||
rowInfo.txtCaption.val(c.UserCaption);
|
||||
if (c.alwaysshow)
|
||||
rowInfo.txtCaption.prop("disabled", true);
|
||||
|
||||
td = $("<td></td>").appendTo(tr);
|
||||
rowInfo.txtWidth = $("<input type='text' style='width:70px' maxlength='6' />").appendTo(td);
|
||||
rowInfo.txtWidth.val(c.Width || c.width);
|
||||
if (c.alwaysshow)
|
||||
rowInfo.txtWidth.prop("disabled", true);
|
||||
|
||||
if (c.name !== "Selected")
|
||||
bindDrag(tr);
|
||||
}
|
||||
}
|
||||
|
||||
var draggingrow = null;
|
||||
function bindDrag(tr) {//拖动调整顺序
|
||||
tr.attr('draggable', true);
|
||||
tr.bind('dragstart', function (e) {
|
||||
draggingrow = $(this);
|
||||
});
|
||||
tr.find('input').attr('draggable', true).bind('dragstart', function (e) {
|
||||
e.originalEvent.preventDefault()
|
||||
});
|
||||
tr.bind('dragend', function (e) {
|
||||
draggingrow = null;
|
||||
});
|
||||
tr.bind('dragover', function (e) {
|
||||
e.originalEvent.preventDefault()
|
||||
});
|
||||
tr.bind('drop', function (e) {
|
||||
var t = $(this);
|
||||
if (t.is(draggingrow))
|
||||
return;
|
||||
var t = $(this);
|
||||
var after = e.originalEvent.clientY > t.offset().top + t.height() / 2;
|
||||
if (after) {
|
||||
t.after(draggingrow);
|
||||
}
|
||||
else {
|
||||
t.before(draggingrow);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function onOKClick() {
|
||||
var colinfos = [];
|
||||
var trs = tbdata.find("tr");
|
||||
for (var i = 0; i < trs.length; i++) {
|
||||
var tr = $(trs[i]);
|
||||
var rowInfo = tr.data("rowInfo");
|
||||
var col = rowInfo.ColumnData;
|
||||
if (rowInfo) {
|
||||
var sort = 0;
|
||||
if (col.sortDesc != undefined)
|
||||
sort = col.sortDesc ? 2 : 1;
|
||||
var colinfo = {
|
||||
'Visible': rowInfo.chkSelected.prop("checked"),
|
||||
'ColumnKey': col.name,
|
||||
'Caption': $.trim(rowInfo.txtCaption.val()),
|
||||
'Width': $.trim(rowInfo.txtWidth.val()),
|
||||
'Sort': sort
|
||||
}
|
||||
if (isNaN(colinfo.Width) || eval(colinfo.Width) <= 0)
|
||||
colinfo.Width = col.width;
|
||||
colinfos.push(colinfo);
|
||||
}
|
||||
}
|
||||
|
||||
if (colinfos.length == 0) {
|
||||
showAlert(GetTextByKey("P_GRID_PLEASESELECTATLEASTONECOLUMN", "Please select at least one column."), GetTextByKey("P_GRID_XXXXXX", 'Layout'));
|
||||
return;
|
||||
}
|
||||
|
||||
this.onOK && this.onOK(colinfos);
|
||||
}
|
||||
})();
|
||||
|
||||
var $layoutsavedialog = function (grid, layoutid, type) {
|
||||
this.title = GetTextByKey("P_GRID_XXXXXX", 'Save Layout');
|
||||
this.type = type;
|
||||
this.dialogId = 'dialog_savelayout';
|
||||
$("#" + this.dialogId).remove();
|
||||
this.grid = grid;
|
||||
this.layoutid = layoutid;
|
||||
this.dialog = null;
|
||||
this.onOK = null;
|
||||
this.onDialogClosed = null;
|
||||
};
|
||||
|
||||
(function () {
|
||||
var __proto = $layoutsavedialog.prototype;
|
||||
|
||||
var txtLayoutName;
|
||||
var chkMyDefault;
|
||||
var chkPublic;
|
||||
var chkCompanyDefault;
|
||||
|
||||
var _this = null;
|
||||
__proto.showSaveLayoutDialog = function (topRatio, force) {
|
||||
_this = this;
|
||||
var dialog;
|
||||
if (force) {
|
||||
$('#' + this.dialogId).remove();
|
||||
dialog = createSaveLayoutDialog.call(this);
|
||||
} else {
|
||||
dialog = $('#' + this.dialogId);
|
||||
if (!dialog.length) {
|
||||
dialog = createSaveLayoutDialog.call(this);
|
||||
}
|
||||
}
|
||||
this.dialog = dialog;
|
||||
dialog.attr('init', '1').showDialog().css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_machines').height()) / (topRatio || 3),
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_machines').width()) / 2
|
||||
});
|
||||
|
||||
getAllGridLayoutsForSave(this.layoutid);
|
||||
};
|
||||
|
||||
function createSaveLayoutDialog() {
|
||||
var dialog = $('<div class="dialog" style="display: none; width: 440px; height: 220px;min-width:440px;line-height:30px;">').attr('id', this.dialogId);
|
||||
|
||||
var title = $('<div class="dialog-title"></div>').appendTo(dialog);
|
||||
title.append($('<span class="title"></span>').text(this.title));
|
||||
title.append('<em class="dialog-close"></em>');
|
||||
|
||||
var layoutNameDiv = $('<div style="margin-left:10px;margin-right:10px;margin-top:10px;"></div>').appendTo(dialog);
|
||||
layoutNameDiv.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_XXXXXX", "Layout Name:")));
|
||||
txtLayoutName = $("<input type='text' style='width:320px;margin-left:5px;' maxlength='200' />").appendTo(layoutNameDiv);
|
||||
if (currentLayout && this.type == 1) {//type == 1 在列表上直接保存
|
||||
if (!currentLayout.IsPublic || IsAdmin)
|
||||
txtLayoutName.val(currentLayout.LayoutName || "");
|
||||
}
|
||||
|
||||
var layoutAttrDiv = $('<div style="margin-left:10px;margin-right:10px;"></div>').appendTo(dialog);
|
||||
chkMyDefault = $("<input type='checkbox' id='chkMyDefault' style='margin-left: 83px;' />").appendTo(layoutAttrDiv);
|
||||
$("<label for='chkMyDefault'></label>").text(GetTextByKey("P_XXXXXX", "Save as my Default")).appendTo(layoutAttrDiv);
|
||||
|
||||
if (IsAdmin) {
|
||||
layoutAttrDiv = $('<div style="margin-left:10px;margin-right:10px;"></div>').appendTo(dialog);
|
||||
chkPublic = $("<input type='checkbox' id='chkPublic' style='margin-left: 83px;' />").appendTo(layoutAttrDiv);
|
||||
$("<label for='chkPublic'></label>").text(GetTextByKey("P_XXXXXX", "Make Public")).appendTo(layoutAttrDiv);
|
||||
|
||||
layoutAttrDiv = $('<div style="margin-left:10px;margin-right:10px;"></div>').appendTo(dialog);
|
||||
chkCompanyDefault = $("<input type='checkbox' id='chkCompanyDefault' style='margin-left: 83px;' />").appendTo(layoutAttrDiv);
|
||||
$("<label for='chkCompanyDefault'></label>").text(GetTextByKey("P_XXXXXX", "Save as Company Default")).appendTo(layoutAttrDiv);
|
||||
|
||||
chkMyDefault.on('click', function (e) {
|
||||
if (chkMyDefault.prop("checked")) {
|
||||
chkPublic.prop("checked", false);
|
||||
chkCompanyDefault.prop("checked", false);
|
||||
}
|
||||
});
|
||||
|
||||
chkPublic.on('click', function (e) {
|
||||
if (chkPublic.prop("checked"))
|
||||
chkMyDefault.prop("checked", false);
|
||||
else
|
||||
chkCompanyDefault.prop("checked", false);
|
||||
});
|
||||
|
||||
chkCompanyDefault.on('click', function (e) {
|
||||
if (chkCompanyDefault.prop("checked")) {
|
||||
chkMyDefault.prop("checked", false);
|
||||
chkPublic.prop("checked", true);
|
||||
}
|
||||
});
|
||||
|
||||
if (currentLayout && this.type == 1) {//type == 1 在列表上直接保存
|
||||
if (!currentLayout.IsPublic)
|
||||
chkMyDefault.prop('checked', currentLayout.IsDefault);
|
||||
if (IsAdmin) {
|
||||
chkPublic.prop('checked', currentLayout.IsPublic);
|
||||
if (currentLayout.IsPublic)
|
||||
chkCompanyDefault.prop('checked', currentLayout.IsDefault);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
dialog.css('height', 140);
|
||||
}
|
||||
|
||||
var dialogFunction = $('<div class="dialog-func"></div>').appendTo(dialog);
|
||||
$('<input type="button" value="' + GetTextByKey("P_GRID_CANCEL", "Cancel") + '" class="dialog-close" />').appendTo(dialogFunction);
|
||||
$('<input type="button" value="' + GetTextByKey("P_GRID_XXXXXX", "Save Layout") + '" />').on('click', onSaveLayoutClick.bind(this)).appendTo(dialogFunction);
|
||||
$('<div class="clear"></div>').appendTo(dialogFunction);
|
||||
|
||||
$('<div class="maskbg" style="display: none"></div>').appendTo(dialog);
|
||||
|
||||
$(document.body).append(dialog);
|
||||
|
||||
dialog.dialog(this.onDialogClosed);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
function onSaveLayoutClick() {
|
||||
var layoutinfo = {
|
||||
LayoutName: txtLayoutName.val().trim(),
|
||||
IsPublic: chkPublic == null ? false : chkPublic.prop("checked"),
|
||||
};
|
||||
if (!layoutinfo.LayoutName || layoutinfo.LayoutName.trim() == '') {
|
||||
showAlert(GetTextByKey("P_GRID_XXXXXX", "Layout name is required."), GetTextByKey("P_GRID_XXXXXX", 'Layout'));
|
||||
return;
|
||||
}
|
||||
if (layoutinfo.IsPublic)
|
||||
layoutinfo.IsDefault = chkCompanyDefault == null ? false : chkCompanyDefault.prop("checked");
|
||||
else
|
||||
layoutinfo.IsDefault = chkMyDefault.prop("checked");
|
||||
|
||||
var overwrite = false;//private and name not changed, overwrite without prompt
|
||||
if (currentLayout && !currentLayout.IsPublic && layoutinfo.IsPublic && currentLayout.LayoutName == layoutinfo.LayoutName)
|
||||
overwrite = true;
|
||||
|
||||
this.onOK && this.onOK(layoutinfo, overwrite);
|
||||
}
|
||||
|
||||
function getAllGridLayoutsForSave(layoutid) {
|
||||
_network.commonpagequery(15, layoutid, function (data) {//getGridLayouts
|
||||
if (typeof data !== 'string') {
|
||||
loadLayoutTip(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadLayoutTip(data) {
|
||||
$("#div_layout_tooltip").remove();
|
||||
|
||||
if (data.length == 0) return;
|
||||
var text = "";
|
||||
var priLayouts = [];
|
||||
var pubLayouts = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var item = data[i];
|
||||
if (!item) continue;
|
||||
|
||||
var ls = item.IsPublic ? pubLayouts : priLayouts;
|
||||
if (item.IsDefault)
|
||||
ls.splice(0, 0, item);
|
||||
else
|
||||
ls.push(item);
|
||||
}
|
||||
|
||||
if (priLayouts.length > 0) {
|
||||
text += GetTextByKey("P_XXXXXX", "My Saved Layouts");
|
||||
for (var i = 0; i < priLayouts.length; i++) {
|
||||
var item = priLayouts[i];
|
||||
text += "<br/> " + item.LayoutName + (item.IsDefault ? " *" : "");
|
||||
}
|
||||
}
|
||||
|
||||
if (IsAdmin) {
|
||||
if (pubLayouts.length > 0) {
|
||||
if (text != "")
|
||||
text += "<br/>";
|
||||
text += GetTextByKey("P_XXXXXX", "Company Layouts");
|
||||
for (var i = 0; i < pubLayouts.length; i++) {
|
||||
var item = pubLayouts[i];
|
||||
text += "<br/> " + item.LayoutName + (item.IsDefault ? " *" : "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var div = $("<div id='div_layout_tooltip' class='div_tooltip' style='display:none; '></div>").html(text);
|
||||
var left = _this.dialog.offset().left + _this.dialog.width() + 2;
|
||||
var top = _this.dialog.offset().top;
|
||||
div.css({ 'display': '', 'left': left, 'top': top, 'max-height': 320, 'max-width': 240, 'overflow': 'hidden' });
|
||||
$(window.document.body).append(div);
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
|
||||
var $managelayoutdialog = function (layoutid) {
|
||||
this.title = GetTextByKey("P_GRID_XXXXXX", 'Manage Layout');
|
||||
this.dialogId = 'dialog_managelayout';
|
||||
$("#" + this.dialogId).remove();
|
||||
this.layoutid = layoutid;
|
||||
this.dialog = null;
|
||||
this.onDialogClosed = null;
|
||||
};
|
||||
|
||||
(function () {
|
||||
var __proto = $managelayoutdialog.prototype;
|
||||
|
||||
var myLayoutsDiv = null;
|
||||
var companyLayoutsDiv = null;
|
||||
|
||||
var _this = null;
|
||||
__proto.showManageLayoutDialog = function (topRatio, force) {
|
||||
var dialog;
|
||||
_this = this;
|
||||
if (force) {
|
||||
$('#' + this.dialogId).remove();
|
||||
dialog = createManageLayoutDialog.call(this);
|
||||
} else {
|
||||
dialog = $('#' + this.dialogId);
|
||||
if (!dialog.length) {
|
||||
dialog = createManageLayoutDialog.call(this);
|
||||
}
|
||||
}
|
||||
this.dialog = dialog;
|
||||
dialog.attr('init', '1').showDialog().css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_machines').height()) / (topRatio || 3),
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_machines').width()) / 2
|
||||
});
|
||||
|
||||
getAllGridLayoutsForManage(this.layoutid);
|
||||
};
|
||||
|
||||
function createManageLayoutDialog() {
|
||||
var dialog = $('<div class="dialog" style="display: none; width: 540px; height: 440px;min-width:440px;line-height:30px;">').attr('id', this.dialogId);
|
||||
|
||||
var title = $('<div class="dialog-title"></div>').appendTo(dialog);
|
||||
title.append($('<span class="title"></span>').text(this.title));
|
||||
title.append('<em class="dialog-close"></em>');
|
||||
|
||||
var content = $('<div style="height: 360px;overflow:auto;">').appendTo(dialog);
|
||||
|
||||
var labelDiv = $('<div style="margin-left:10px;margin-right:10px;margin-top:10px;"></div>').appendTo(content);
|
||||
labelDiv.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_XXXXXX", "My Saved Layouts")));
|
||||
myLayoutsDiv = $('<div style="margin-left:10px;margin-right:10px;margin-top:10px;"></div>').appendTo(content);
|
||||
|
||||
if (IsAdmin) {
|
||||
labelDiv = $('<div style="margin-left:10px;margin-right:10px;margin-top:10px;"></div>').appendTo(content);
|
||||
labelDiv.append($('<span style="margin-left:10px;"></span>').text(GetTextByKey("P_XXXXXX", "Company Layouts")));
|
||||
companyLayoutsDiv = $('<div style="margin-left:10px;margin-right:10px;margin-top:10px;"></div>').appendTo(content);
|
||||
}
|
||||
|
||||
var dialogFunction = $('<div class="dialog-func"></div>').appendTo(dialog);
|
||||
$('<input type="button" value="' + GetTextByKey("P_GRID_OK", "OK") + '" class="dialog-close" />').appendTo(dialogFunction);
|
||||
$('<div class="clear"></div>').appendTo(dialogFunction);
|
||||
|
||||
$('<div class="maskbg" style="display: none"></div>').appendTo(dialog);
|
||||
|
||||
$(document.body).append(dialog);
|
||||
|
||||
dialog.dialog(this.onDialogClosed);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
function getAllGridLayoutsForManage(layoutid) {
|
||||
_network.commonpagequery(15, layoutid, function (data) {//getGridLayouts
|
||||
if (typeof data !== 'string') {
|
||||
var priLayouts = [];
|
||||
var pubLayouts = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var item = data[i];
|
||||
if (!item) continue;
|
||||
|
||||
var ls = item.IsPublic ? pubLayouts : priLayouts;
|
||||
if (item.IsDefault)
|
||||
ls.splice(0, 0, item);
|
||||
else
|
||||
ls.push(item);
|
||||
}
|
||||
|
||||
if (priLayouts.length > 0) {
|
||||
for (var i = 0; i < priLayouts.length; i++) {
|
||||
var item = priLayouts[i];
|
||||
var div = $('<div style="padding-left:50px;clear:both;"></div>');
|
||||
div.append($('<span style="width:400px;overflow:hidden;"></span>').text(item.LayoutName + (item.IsDefault ? " *" : "")));
|
||||
var icon = $('<span class="sbutton icondelete" style="float:right;padding: 0px 5px 0px 10px;"></span>').appendTo(div);
|
||||
icon.on('click', item, function (e) {
|
||||
deleteLayout(e.data.ID, $(e.target).parent());
|
||||
});
|
||||
myLayoutsDiv.append(div);
|
||||
}
|
||||
}
|
||||
|
||||
if (IsAdmin) {
|
||||
if (pubLayouts.length > 0) {
|
||||
for (var i = 0; i < pubLayouts.length; i++) {
|
||||
var item = pubLayouts[i];
|
||||
var div = $('<div style="padding-left:50px;clear:both;"></div>');
|
||||
div.append($('<span style="width:400px;overflow:hidden;"></span>').text(item.LayoutName + (item.IsDefault ? " *" : "")));
|
||||
var icon = $('<span class="sbutton icondelete" style="float:right;padding: 0px 5px 0px 10px;"></span>').appendTo(div);
|
||||
icon.on('click', item, function (e) {
|
||||
deleteLayout(e.data.ID, $(e.target).parent());
|
||||
});
|
||||
companyLayoutsDiv.append(div);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function deleteLayout(id, div) {
|
||||
var msg = GetTextByKey("P_GRID_XXXXXX", 'Are you sure you want to delete this layout?');
|
||||
var title = GetTextByKey("P_GRID_XXXXXX", 'Layout');
|
||||
showLayoutConfirm(_this.dialog, msg, title, function (e) {
|
||||
div.remove();
|
||||
_network.commonpagequery(9, id, function (data) { }, function (e) { });
|
||||
}, function (e) {
|
||||
}, function (e) {
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************Public Method********************************************/
|
||||
function CreateLayoutMenus(sender, layoutid, grid) {
|
||||
hidePanels();//hide other menu
|
||||
$("#layout_panel_holder").remove();// remove layout_panel_holder
|
||||
|
||||
var panel_holder = $('<div id="layout_panel_holder" class="panel_holder"></div>').appendTo(document.body);
|
||||
var funmenu = $('<div class="menupanel panel" style="box-shadow: rgba(0, 0, 0, 0.24) 0px 4px 8px 0px;"></div>');
|
||||
panel_holder.append(funmenu);
|
||||
var ulmenus = $('<ul class="lefttitlemenu_ul" style="line-height:32px;max-height:480px;max-width:400px; overflow: hidden auto;"></ul>');
|
||||
funmenu.append(ulmenus);
|
||||
|
||||
var li = $('<li style="line-height:32px;"></li>').text(GetTextByKey("P_GRID_XXXXXX", 'Update Layout'));
|
||||
ulmenus.append(li);
|
||||
li.on('click', function () {
|
||||
ShowSelectLayoutColumnsDialog(layoutid, grid);
|
||||
});
|
||||
li = $('<li style="line-height:32px;"></li>').text(GetTextByKey("P_GRID_XXXXXX", 'Save Layout'));
|
||||
ulmenus.append(li);
|
||||
li.on('click', function () {
|
||||
ShowSaveLayoutDialog(null, null, layoutid, grid, 1);
|
||||
});
|
||||
li = $('<li style="line-height:32px;"></li>').text(GetTextByKey("P_GRID_XXXXXX", 'Manage Layout'));
|
||||
ulmenus.append(li);
|
||||
li.on('click', function () {
|
||||
ShowManageLayoutDialog(layoutid);
|
||||
});
|
||||
|
||||
var left = $(sender).offset().left;
|
||||
var top = $(sender).offset().top + $(sender).height();
|
||||
var minwidth = 150;
|
||||
if (minwidth < $(sender).width())
|
||||
minwidth = $(sender).width()
|
||||
panel_holder.css({
|
||||
'opacity': 0,
|
||||
'left': left,
|
||||
'right': 'auto',
|
||||
'top': top + 4,
|
||||
'min-width': minwidth,
|
||||
|
||||
}).show().animate({ 'opacity': 1 }, 100);
|
||||
|
||||
getAllGridLayouts(layoutid, grid, ulmenus);
|
||||
}
|
||||
|
||||
function getAllGridLayouts(layoutid, grid, ulmenus) {
|
||||
_network.commonpagequery(15, layoutid, function (data) {//getGridLayouts
|
||||
if (typeof data !== 'string') {
|
||||
var priLayouts = [];
|
||||
var pubLayouts = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var item = data[i];
|
||||
if (!item) continue;
|
||||
|
||||
var ls = item.IsPublic ? pubLayouts : priLayouts;
|
||||
if (item.IsDefault)
|
||||
ls.splice(0, 0, item);
|
||||
else
|
||||
ls.push(item);
|
||||
}
|
||||
|
||||
if (priLayouts.length > 0) {
|
||||
var li = $('<li style="line-height:unset;height:1px;padding: 0; margin: 0.35em 0; border-bottom: 1px solid #d0d0d0;"></li>');
|
||||
ulmenus.append(li);
|
||||
for (var i = 0; i < priLayouts.length; i++) {
|
||||
var item = priLayouts[i];
|
||||
var li = $('<li></li>');
|
||||
if (item.LayoutName.length > 35) {
|
||||
li.text(item.LayoutName.substring(0, 35) + '...' + (item.IsDefault ? " *" : ""));
|
||||
li.attr("title", item.LayoutName);
|
||||
}
|
||||
else
|
||||
li.text(item.LayoutName + (item.IsDefault ? " *" : ""));
|
||||
li.on('click', item, function (e) {
|
||||
currentLayout = e.data;
|
||||
showGridLayout(grid, JSON.parse(e.data.Layout), OnRefresh);
|
||||
});
|
||||
ulmenus.append(li);
|
||||
}
|
||||
}
|
||||
|
||||
if (pubLayouts.length > 0) {
|
||||
var li = $('<li style="line-height:unset;height:1px;padding: 0; margin: 0.35em 0; border-bottom: 1px solid #d0d0d0;"></li>');
|
||||
ulmenus.append(li);
|
||||
for (var i = 0; i < pubLayouts.length; i++) {
|
||||
var item = pubLayouts[i];
|
||||
var li = $('<li></li>');
|
||||
if (item.LayoutName.length > 35) {
|
||||
li.text(item.LayoutName.substring(0, 35) + '...' + (item.IsDefault ? " *" : ""));
|
||||
li.attr("title", item.LayoutName);
|
||||
}
|
||||
else
|
||||
li.text(item.LayoutName + (item.IsDefault ? " *" : ""));
|
||||
li.on('click', item, function (e) {
|
||||
currentLayout = e.data;
|
||||
showGridLayout(grid, JSON.parse(e.data.Layout), OnRefresh);
|
||||
});
|
||||
ulmenus.append(li);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function ShowSelectLayoutColumnsDialog(layoutid, grid) {
|
||||
showmaskbg(true);
|
||||
|
||||
var dialogColumns = new $layoutcolumnselector(grid);
|
||||
dialogColumns.onDialogClosed = function () {
|
||||
showmaskbg(false);
|
||||
};
|
||||
dialogColumns.onOK = function (colinfos) {
|
||||
dialogColumns.dialog.find('.maskbg').css('display', '');
|
||||
ShowSaveLayoutDialog(dialogColumns, colinfos, layoutid, grid, 0, function () {
|
||||
currentLayout = currentLayout || {};
|
||||
currentLayout.Layout = JSON.stringify(colinfos);
|
||||
showGridLayout(grid, colinfos, OnRefresh);
|
||||
dialogColumns && dialogColumns.dialog.hideDialog();
|
||||
showmaskbg(false);
|
||||
});
|
||||
};
|
||||
dialogColumns.showLayoutSelector(3, true);
|
||||
}
|
||||
|
||||
function ShowSaveLayoutDialog(sender, colinfos, layoutid, grid, type, next) {
|
||||
showmaskbg(true);
|
||||
|
||||
var dialogSaveLayout = new $layoutsavedialog(grid, layoutid, type);
|
||||
dialogSaveLayout.onDialogClosed = function () {
|
||||
if (sender)
|
||||
sender.dialog.find('.maskbg').css('display', 'none');
|
||||
else
|
||||
showmaskbg(false);
|
||||
$("#div_layout_tooltip").remove();
|
||||
};
|
||||
dialogSaveLayout.onOK = function (layoutinfo, overwrite) {
|
||||
saveGridLayout(dialogSaveLayout.dialog, layoutid, grid, layoutinfo, colinfos, next, overwrite);
|
||||
};
|
||||
dialogSaveLayout.showSaveLayoutDialog(3, true);
|
||||
}
|
||||
|
||||
function ShowManageLayoutDialog(layoutid) {
|
||||
showmaskbg(true);
|
||||
|
||||
var dialogManageLayout = new $managelayoutdialog(layoutid);
|
||||
dialogManageLayout.onDialogClosed = function () {
|
||||
showmaskbg(false);
|
||||
};
|
||||
dialogManageLayout.showManageLayoutDialog(3, true);
|
||||
}
|
||||
|
||||
var currentLayout = null;
|
||||
function getGridLayout(layoutid, grid, next) {
|
||||
_network.commonpagequery(7, layoutid, function (data) {//GetGridLayout
|
||||
currentLayout = data;
|
||||
showGridLayout(grid, data == null ? null : JSON.parse(data.Layout), next);
|
||||
});
|
||||
}
|
||||
|
||||
function showGridLayout(grid, columninfos, next) {
|
||||
var allColumns = $.extend(true, [], grid.allcolumns);
|
||||
for (var i = 0; i < allColumns.length; i++) {
|
||||
allColumns[i].OriginalCaption = allColumns[i].caption;
|
||||
if (allColumns[i].alwaysshow && columninfos && columninfos.length > 0) {//new alwaysshow column
|
||||
var exists = false;
|
||||
for (var j = 0; j < columninfos.length; j++) {
|
||||
if (allColumns[i].name == columninfos[j].ColumnKey) {
|
||||
exists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!exists)
|
||||
columninfos.push({ ColumnKey: allColumns[i].name, Caption: allColumns[i].caption, Width: allColumns[i].width });
|
||||
}
|
||||
}
|
||||
|
||||
grid.sortIndex = -1;
|
||||
var tmpColumns = allColumns;
|
||||
if (columninfos && columninfos.length > 0) {
|
||||
tmpColumns = [];
|
||||
for (var i = 0; i < columninfos.length; i++) {
|
||||
var tmpcol = readColumnWidthSort(allColumns, columninfos[i]);
|
||||
if (tmpcol) {
|
||||
if (tmpcol.Sort != undefined && tmpcol.Sort != 0) {
|
||||
if (grid.$refs && grid.$refs.grid) {//datagrid:vue
|
||||
grid.$refs.grid.sortKey = tmpcol.name;
|
||||
grid.$refs.grid.sortDirection = tmpcol.Sort;
|
||||
}
|
||||
else {
|
||||
grid.sortIndex = i;
|
||||
grid.sortDirection = tmpcol.Sort;
|
||||
}
|
||||
}
|
||||
if (tmpcol.name == "Selected")
|
||||
tmpColumns.splice(0, 0, tmpcol);
|
||||
else
|
||||
tmpColumns.push(tmpcol);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//grid.setColumns(tmpColumns);
|
||||
grid.columns = tmpColumns;
|
||||
if (grid.sortIndex >= grid.columns.length)
|
||||
grid.sortIndex = -1;
|
||||
if (typeof grid.init == "function")
|
||||
grid.init();
|
||||
|
||||
if (next) {
|
||||
next(tmpColumns);
|
||||
}
|
||||
}
|
||||
|
||||
function readColumnWidthSort(columns, colinfo) {
|
||||
for (var i = 0; i < columns.length; i++) {
|
||||
if (columns[i].name == colinfo.ColumnKey) {
|
||||
if (colinfo.Caption && colinfo.Caption.trim() != "") {
|
||||
columns[i].caption = colinfo.Caption;
|
||||
columns[i].UserCaption = colinfo.Caption;
|
||||
}
|
||||
columns[i].width = parseInt(colinfo.Width);
|
||||
columns[i].Sort = colinfo.Sort;
|
||||
if (columns[i].visible !== false || !columns[i].alwaysshow)
|
||||
columns[i].visible = colinfo.Visible == undefined ? true : colinfo.Visible;
|
||||
return columns[i];
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function saveGridLayout(dialog, layoutid, grid, layoutinfo, colinfos, next, overwrite) {
|
||||
if (!colinfos) {
|
||||
colinfos = getLayoutOnGrid(grid);
|
||||
}
|
||||
|
||||
layoutinfo.LayoutId = layoutid;
|
||||
layoutinfo.Layout = JSON.stringify(colinfos)
|
||||
_network.commonpagequery(8, htmlencode(JSON.stringify([JSON.stringify(layoutinfo), overwrite ? 1 : 0])), function (e) {
|
||||
if (e == -1) {
|
||||
showAlert(GetTextByKey("P_GRID_XXXXXX", "Layout {0} is in use by the Organization and cannot be used. Please select another name.").replace('{0}', layoutinfo.LayoutName)
|
||||
, GetTextByKey("P_GRID_XXXXXX", 'Layout'));
|
||||
}
|
||||
else if (e == -2) {
|
||||
showLayoutConfirm(dialog, GetTextByKey('P_GRID_XXXXXX', 'Layout {0} already exists, Do you want to overwrite it?').replace('{0}', layoutinfo.LayoutName)
|
||||
, GetTextByKey('P_GRID_XXXXXX', 'Layout'), function () {
|
||||
saveGridLayout(dialog, layoutid, grid, layoutinfo, colinfos, next, true);
|
||||
});
|
||||
}
|
||||
else {//Successfully
|
||||
dialog && dialog.hideDialog();
|
||||
$("#div_layout_tooltip").remove();
|
||||
if (next) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
showmaskbg(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getLayoutOnGrid(grid) {
|
||||
colinfos = [];
|
||||
for (var i = 0; i < grid.columns.length; i++) {
|
||||
var sort = 0;
|
||||
var sortKey = "";
|
||||
var sortDirection = 0;
|
||||
if (grid.$refs && grid.$refs.grid) { //datagrid:vue
|
||||
sortKey = grid.$refs.grid.sortKey;
|
||||
sortDirection = grid.$refs.grid.sortDirection;
|
||||
}
|
||||
else {
|
||||
sortKey = grid.sortKey;
|
||||
sortDirection = grid.sortDirection;
|
||||
}
|
||||
if (sortKey && (sortKey == grid.columns[i].name || sortKey == grid.columns[i].key))
|
||||
sort = sortDirection;
|
||||
if (isNaN(sort))
|
||||
sort = 0;
|
||||
var columnwidth = {
|
||||
'Visible': grid.columns[i].visible !== false,
|
||||
'ColumnKey': grid.columns[i].name,
|
||||
'Caption': grid.columns[i].UserCaption,
|
||||
'Width': grid.columns[i].width,
|
||||
'Sort': sort
|
||||
}
|
||||
colinfos.push(columnwidth);
|
||||
}
|
||||
return colinfos;
|
||||
}
|
||||
|
||||
function showLayoutConfirm(dialog, msg, title, fok, fcancel) {
|
||||
dialog.find('.maskbg').css('display', '');
|
||||
_dialog.showConfirm(msg, title, function (e) {
|
||||
dialog.find('.maskbg').css('display', 'none');
|
||||
if (typeof fok === 'function') {
|
||||
fok(e);
|
||||
}
|
||||
}, function () {
|
||||
dialog.find('.maskbg').css('display', 'none');
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
|
||||
if (typeof ($jobsitesummary) != "function") {
|
||||
var ctrlindex = 0;
|
||||
var assetIconCollapsed = false;
|
||||
var alertsCollapsed = false;
|
||||
$jobsitesummary = function (p, js, type, jobsites) {//type 0.left;1.bottom
|
||||
if (typeof p === "string")
|
||||
p = $("#" + p);
|
||||
if (!p)
|
||||
p = document;
|
||||
this.type = type;
|
||||
this.jobsite = js;
|
||||
this.jobsites = jobsites;
|
||||
this.status = 0;
|
||||
this.ctrlindex = ctrlindex++;
|
||||
this.jobsitechanged = null;
|
||||
|
||||
var _this = this;
|
||||
|
||||
this.basectrl = $('<div></div>');
|
||||
|
||||
//if (this.jobsites && this.jobsites.length > 1) {
|
||||
// this.basectrl.css('margin-top', 10);
|
||||
|
||||
// var div_jobsite = $('<div style="width: 360px;margin-left:40px;"></div>');
|
||||
// div_jobsite.dropdown(this.jobsites, {
|
||||
// search: true,
|
||||
// valueKey: 'ID',
|
||||
// textKey: 'Name'
|
||||
// });
|
||||
// div_jobsite.find(".dropdown-wrapper").css("border", "1px solid #b9b9b9");
|
||||
// if (this.jobsite)
|
||||
// div_jobsite.dropdownVal(this.jobsite.ID);
|
||||
|
||||
// div_jobsite.on('select', function (_e, item) {
|
||||
// if (item.ID != _this.jobsite.ID) {
|
||||
// var temps = _this.jobsites.filter(function (a) { return a.ID == item.ID })
|
||||
// if (_this.jobsitechanged && temps && temps.length > 0)
|
||||
// _this.jobsitechanged(_this.jobsites.indexOf(temps[0]));
|
||||
// }
|
||||
// });
|
||||
|
||||
// p.append(div_jobsite);
|
||||
//}
|
||||
|
||||
p.append(this.basectrl);
|
||||
//this.maskbgctrl = $('<div class="maskbg"><div class="loading_icon icon c-spin"></div></div>');
|
||||
//p.append(this.maskbgctrl);
|
||||
this.contractid = $("#selContractor").val();
|
||||
if (!this.contractid) this.contractid = "";
|
||||
|
||||
this.refresh = function (js) {
|
||||
_this.basectrl.empty();
|
||||
_this.jobsite = js;
|
||||
showJobsiteInfo();
|
||||
}
|
||||
|
||||
if (this.jobsite) {
|
||||
showJobsiteInfo();
|
||||
}
|
||||
|
||||
function setIconBr(div_icon) {
|
||||
var br = '<br />';
|
||||
//if (_this.type == 0)
|
||||
div_icon.append(br);
|
||||
}
|
||||
|
||||
function showJobsiteIcon() {
|
||||
var js = _this.jobsite;
|
||||
var div_icon = $('<div></div>');
|
||||
var iconheight = p.height();
|
||||
if (iconheight == 0)
|
||||
iconheight = p.parent().height();
|
||||
if (_this.type == 0) {
|
||||
div_icon.css({ 'height': iconheight - 4, 'margin-top': -20 });
|
||||
}
|
||||
else {
|
||||
div_icon.css({ 'height': iconheight + 5 });
|
||||
|
||||
//if (_this.jobsites && _this.jobsites.length > 1) {
|
||||
// div_icon.css({ 'height': p.parent().height() + 5, 'margin-top': -42 });
|
||||
//}
|
||||
div_icon.removeClass("divicon_left");
|
||||
div_icon.addClass("divicon_bottom");
|
||||
}
|
||||
div_icon.removeClass("divicon_bottom");
|
||||
div_icon.addClass("divicon_left");
|
||||
|
||||
var span;
|
||||
if (canEditJobsite) {
|
||||
span = $('<span class="iconjobsite" style="cursor: pointer;" title="' + GetTextByKey("P_JS_EDITJOBSITE", "Edit Jobsite") + '"></span>');
|
||||
span.click(js, function (e) {
|
||||
OnEditJobsite(js);
|
||||
});
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
}
|
||||
|
||||
span = $("<span class='iconmail' style='cursor:pointer;' onclick='openSendEmails(\"" + js.CompanyID + "\"," + js.ID + ",1)' title='" + GetTextByKey("P_MV_SENDJOBSITE", "Send Jobsite") + "'></span>");
|
||||
div_icon.append(span);
|
||||
setIconBr(div_icon);
|
||||
|
||||
if (type == 0) {
|
||||
div_icon.find("span").click(function (e) {
|
||||
p.hide();
|
||||
$('#assetsummarytrigle').hide();
|
||||
});
|
||||
}
|
||||
|
||||
return div_icon;
|
||||
}
|
||||
|
||||
function showJobsiteInfo() {
|
||||
if (!_this.jobsite) return;
|
||||
var js = _this.jobsite;
|
||||
var br = '<br />';
|
||||
|
||||
if (_this.type == 0) {
|
||||
var div_close = $('<div style="height:20px;"></div>');
|
||||
_this.basectrl.append(div_close);
|
||||
var span_close = $('<span class="clearbtn" style="float: right; padding: 5px;cursor:pointer;"></span>').click(function () {
|
||||
p.hide();
|
||||
$('#assetsummarytrigle').hide();
|
||||
});
|
||||
div_close.append(span_close);
|
||||
}
|
||||
|
||||
if (showTooltipIcons) {
|
||||
var div_icon = showJobsiteIcon();
|
||||
_this.basectrl.append(div_icon);
|
||||
}
|
||||
|
||||
var div_summary = $('<div class="assetsummaryinfo_div"></div>').css("text-align", "left");
|
||||
if (!showTooltipIcons)
|
||||
div_summary.css("margin-left", 10);
|
||||
_this.basectrl.append(div_summary);
|
||||
|
||||
var b = $('<b>' + GetTextByKey("P_MV_NAME_COLON", "Name:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(js.Name);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_JS_CODE_COLON", "Code:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(js.Code);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_JS_NUMBER_COLON", "Number:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(js.Number);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_MV_LATLONG_COLON", "Lat/Long:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(js.Latitude + ", " + js.Longitude);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_MV_DELIVERYADDRESS_COLON", "Delivery Address:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
label = $('<label></label>').text(js.Address1);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
div_summary.append(br);
|
||||
b = $('<b>' + GetTextByKey("P_JS_FOREMAN_COLON", "Foreman:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var ftxt = js.Foreman;
|
||||
if (ftxt === "") {
|
||||
if (js.Phone !== "")
|
||||
ftxt = js.Phone;
|
||||
}
|
||||
else {
|
||||
if (js.Phone !== "")
|
||||
ftxt = ftxt + "," + js.Phone;
|
||||
}
|
||||
var label = $('<label></label>').text(ftxt);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
div_summary.append(br);
|
||||
b = $('<b>' + GetTextByKey("P_JS_STATDATE_COLON", "Start Date:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(js.StartDateStr);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_JS_PROJECTEDENDDATE_COLON", "Projected End Date:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(js.ProjectedEndDateStr);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
b = $('<b>' + GetTextByKey("P_JS_ENDDATE_COLON", "End Date:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
var label = $('<label></label>').text(js.EndDateStr);
|
||||
div_summary.append(label).append(br);
|
||||
|
||||
div_summary.append(br);
|
||||
b = $('<b>' + GetTextByKey("P_MV_NOTES_COLON", "Notes:") + ' </b>');
|
||||
div_summary.append(b);
|
||||
|
||||
var notes = (js.Notes && js.Notes !== "") ? replaceHtmlText(js.Notes) : "";
|
||||
var label = $('<label></label>').html(notes);
|
||||
div_summary.append(label).append(br);
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
|
||||
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^Line truncated
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,121 @@
|
||||
|
||||
// multi-language
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
function getKey(ele, attr) {
|
||||
var key = ele.attr(attr).replace(/[.]/g, '_');
|
||||
return key;
|
||||
}
|
||||
|
||||
$.fn.applyFleetLanguageText = function (includeTitle) {
|
||||
return this.each(function () {
|
||||
var es = $(this).find('[data-lgid]');
|
||||
var ele, key;
|
||||
for (var i = 0; i < es.length; i++) {
|
||||
ele = $(es[i]);
|
||||
key = getKey(ele, 'data-lgid');
|
||||
if (ele.is('input')) {
|
||||
ele.val(GetTextByKey(key, ele.val()));
|
||||
} else {
|
||||
ele.text(GetTextByKey(key, ele.text()));
|
||||
}
|
||||
}
|
||||
es = $(this).find('input[data-holder-lgid]');
|
||||
for (var i = 0; i < es.length; i++) {
|
||||
ele = $(es[i]);
|
||||
key = getKey(ele, 'data-holder-lgid');
|
||||
ele.attr('placeholder', GetTextByKey(key, ele.attr('placeholder')));
|
||||
}
|
||||
if (includeTitle) {
|
||||
es = $(this).find('[data-title-lgid]');
|
||||
for (var j = 0; j < es.length; j++) {
|
||||
ele = $(es[j]);
|
||||
key = getKey(ele, 'data-title-lgid');
|
||||
ele.attr('title', GetTextByKey(key, key));
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
|
||||
var langObj = undefined;
|
||||
function GetTextByKey(key, defaultValue) {
|
||||
if (langObj == undefined) {
|
||||
loadLanguage();
|
||||
}
|
||||
try {
|
||||
if (langObj && langObj.Values) {
|
||||
key = key.toUpperCase();
|
||||
var val = langObj.Values[key];
|
||||
if (val)
|
||||
return val;
|
||||
}
|
||||
} catch (e) { }
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
function loadLanguage() {
|
||||
var lang = _fleet.currentLang;
|
||||
if (!lang)
|
||||
lang = "en-us";
|
||||
var ver = getFileVersion();
|
||||
var langversion = window.localStorage[lang + "_v"];
|
||||
if (!langversion || langversion == "" || eval(langversion) < ver) {
|
||||
langObj = loadLanguageRes(ver);
|
||||
window.localStorage[lang + "_v"] = ver;
|
||||
window.localStorage[lang + "_res"] = JSON.stringify(langObj);
|
||||
}
|
||||
else {
|
||||
var jsonstr = window.localStorage[lang + "_res"];
|
||||
if (jsonstr && jsonstr != "")
|
||||
langObj = JSON.parse(jsonstr);
|
||||
if (!langObj) {
|
||||
langObj = loadLanguageRes(ver);
|
||||
window.localStorage[lang + "_res"] = JSON.stringify(langObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getFileVersion() {
|
||||
var ver = 0;
|
||||
_network.commonpagequery(6, "", function (data) {
|
||||
ver = data;
|
||||
}, function (err) {
|
||||
}, true, true);
|
||||
|
||||
return ver;
|
||||
};
|
||||
|
||||
function loadLanguageRes(ver) {
|
||||
if (langObj == undefined) {
|
||||
var sp;
|
||||
if (typeof _network.root === 'string') {
|
||||
sp = _network.root;
|
||||
} else if (typeof sitePath === 'string') {
|
||||
sp = sitePath;
|
||||
} else {
|
||||
sp = '';
|
||||
}
|
||||
var lang = _fleet.currentLang;
|
||||
if (!lang)
|
||||
lang = "en-us";
|
||||
return loadJsonFromServer(sp + "Languages\\" + lang + ".json?s=" + ver);
|
||||
}
|
||||
}
|
||||
|
||||
function loadJsonFromServer(path) {//path 是json文件的地址
|
||||
var result = null;
|
||||
$.ajax({
|
||||
url: path,
|
||||
dataType: 'json',
|
||||
type: 'GET',
|
||||
async: false,
|
||||
success: function (data) {
|
||||
result = data;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
};
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
.ui-popup-mask .wrapper-edit-method{width:100%}.ui-popup-mask .wrapper-edit-method .ui-check-wrapper{padding:0 28px}.comm{display:flex;flex-direction:column;width:320px;background-color:var(--dark-fore-color);border:1px solid var(--title-bg-color);margin-left:12px}.comm{--dark-fore-color: #fff;--dark-fore-opacity-color: rgba(255, 255, 255, .6);--strong-color: #333;--light-color: #ccc}.comm .roundbtn{width:30px;height:30px;display:inline-block;box-sizing:border-box;cursor:pointer;padding:7px;margin-left:10px;fill:var(--dark-fore-color);border-radius:15px;border:none;transition:background-color .2s;-webkit-user-select:none;-ms-user-select:none;user-select:none}.comm .roundbtn:focus,.comm .roundbtn:focus-visible{outline:none}.comm .roundbtn:hover{background-color:var(--dark-fore-opacity-color)}.comm .roundbtn:hover>svg{opacity:.6}.comm .roundbtn.disabled,.comm .roundbtn:disabled{background-color:transparent!important}.comm .roundbtn.disabled,.comm .roundbtn:disabled{fill:#d3d3d3}.comm .roundbtn.disabled:hover>svg,.comm .roundbtn:disabled:hover>svg{opacity:1;opacity:initial}.comm .roundbtn>svg{width:13px;height:14px;display:block;transition:opacity .2s}.comm .title-bar{flex:0 0 auto;padding:5px 0 5px 10px;color:var(--title-color);background-color:var(--title-bg-color);line-height:24px;display:flex;align-items:center;font-size:var(--font-larger-size)}.comm .title-bar>div{flex:1 1 auto}.comm .title-bar>.title-functions{flex:0 0 auto;display:flex;padding:4px}.comm .title-bar>.title-functions>label{margin:0 4px;box-sizing:border-box;cursor:pointer;width:30px;height:30px;background-color:var(--dark-fore-color);border-radius:15px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.comm .title-bar>.title-functions>label>svg{fill:var(--strong-color);width:14px;height:14px;transition:opacity .2s}.comm .title-bar>.title-functions>label:hover{background-color:var(--dark-fore-opacity-color)}.comm .title-bar>.title-functions>label:hover>svg{opacity:.6}.comm .title-bar>.title-functions>label.disabled{cursor:default;opacity:.6}.comm .title-bar>.title-functions>label.disabled:hover{background-color:var(--dark-fore-color)}.comm .title-bar>.title-functions>label.disabled:hover>svg{opacity:1;opacity:initial}.comm .contact-bar{flex:0 0 auto;padding:4px 0;display:flex;border-bottom:1px solid var(--title-bg-color)}.comm .contact-bar>.bar-icon{flex:0 0 auto}.comm .contact-bar>.bar-icon>svg{width:30px;height:30px;margin:0 8px}.comm .contact-bar>.bar-list{flex:1 1 auto;width:calc(100% - 46px)}.comm .contact-bar>.bar-list .contact-item{display:flex;align-items:center;line-height:22px}.comm .contact-bar>.bar-list .contact-item>svg{flex:0 0 auto;width:16px;height:16px;margin-right:6px;fill:var(--strong-color)}.comm .contact-bar>.bar-list .contact-item>span{color:var(--strong-color);font-size:var(--font-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:10px}.comm .contact-bar .roundbtn{float:right;margin:4px 10px 10px}.comm .contact-bar .roundbtn>svg{width:16px}.comm .message-bar{flex:0 0 auto;border-bottom:1px solid var(--title-bg-color);display:flex;flex-direction:column}.comm .message-bar>textarea{padding:10px 10px 0;border:none;height:70px;resize:none;font-size:var(--font-smaller-size);font-family:var(--font-family)}.comm .message-bar>textarea:focus,.comm .message-bar>textarea:focus-visible{outline:none}.comm .message-bar>div{padding:0 10px 10px}.comm .message-bar>div>.customer-name{float:left}.comm .message-bar>div>.customer-name>span{font-size:var(--font-smaller-size)}.comm .message-bar>div>.customer-name>.ui-input{margin-left:4px;width:150px;border-top:none;border-left:none;border-right:none}.comm .message-bar>div>.prompt-count{display:inline-block;color:var(--light-color);font-size:var(--font-smaller-size)}.comm .list-bar{flex:1 1 auto;overflow:auto;margin-top:8px}.comm .list-bar .item-div{margin-top:5px;border-bottom:solid 1px lightgray;padding:3px 10px 5px;line-height:1.5rem;white-space:normal;word-break:break-word;overflow:hidden;font-size:var(--font-size);color:#333;display:flex;flex-direction:column}.comm .list-bar .item-div:last-child{border-bottom:none}.comm .list-bar .item-div .item-poster{font-weight:700;font-size:var(--font-size);align-self:flex-start}.comm .list-bar .item-div .item-poster .ui-tooltip-wrapper>.ui-tooltip-content{font-weight:400}.comm .list-bar .item-div .item-content{line-height:1.2rem;padding:8px 20px;border-radius:5px;white-space:pre-wrap;word-break:break-word;max-width:240px;background-color:#f4f4f4}.comm .list-bar .item-div .item-content a>svg{width:13px;height:13px;fill:#2140fb}.comm .list-bar .item-div .item-content a>svg:hover{border-bottom:1px solid}.comm .list-bar .item-div .item-content>span:after{content:"";display:block}.comm .list-bar .item-div .item-content .item-status{text-align:right;margin-top:3px;font-weight:700;margin-right:-12px;font-size:.625rem;float:right}.comm .list-bar .item-div .item-time{align-self:flex-end;color:Line truncated
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
(function(k,S){typeof exports=="object"&&typeof module<"u"?S(exports):typeof define=="function"&&define.amd?define(["exports"],S):(k=typeof globalThis<"u"?globalThis:k||self,S(k["lib-app"]={}))})(this,function(k){var A,L,z,Q,x,E,X,Z,ie,V,H,P,_,j,ue,ee,me,te,he,be,Le,ge,Pe,we,Fe,Y,F,G,ne;"use strict";var Se=(k,S,M)=>{if(!S.has(k))throw TypeError("Cannot "+M)};var t=(k,S,M)=>(Se(k,S,"read from private field"),M?M.call(k):S.get(k)),C=(k,S,M)=>{if(S.has(k))throw TypeError("Cannot add the same private member more than once");S instanceof WeakSet?S.add(k):S.set(k,M)},T=(k,S,M,ae)=>(Se(k,S,"write to private field"),ae?ae.call(k,M):S.set(k,M),M);var xe=(k,S,M)=>(Se(k,S,"access private method"),M);const S="",M=window["lib-ui"].createElement;function ae(se,e){const n=M("div","comm"),a=M("div","title-bar",se,M("div","title-functions",...e));return n.appendChild(a),n}const De=window["lib-ui"].Dropdown,O=window["lib-ui"].createElement,$e=window["lib-ui"].createCheckbox,Ae=window["lib-ui"].createPopup,Ce=window["lib-ui"].showAlert,Ue=window["lib-utility"].isEmail,re=window["lib-utility"].nullOrEmpty,N=window["lib-utility"].r;class Ee{constructor(e={}){C(this,A,void 0);C(this,L,void 0);T(this,A,e)}async show(e=document.body){const n=Math.max.apply(null,[...document.querySelectorAll("[tabindex]")].map(i=>i.tabIndex??0))+3,a=t(this,A).contact,y=O("input",i=>{i.type="text",i.className="ui-input",i.tabIndex=n+1,i.maxLength=200,i.autocomplete="off"}),m=new De({tabIndex:n+2});m.source=[{value:"0",text:N("text","Text")},{value:"1",text:N("email","Email")},{value:"2",text:N("phone","Phone")}];const o=O("input",i=>{i.type="email",i.className="ui-input",i.tabIndex=n+3,i.maxLength=100,i.autocomplete="off"}),r=O("input",i=>{i.type="tel",i.className="ui-input",i.tabIndex=n+4,i.maxLength=50,i.autocomplete="off"}),s=$e({tabIndex:n+5}),d=O("textarea",i=>{i.className="ui-text",i.tabIndex=n+6,i.maxLength=2e3,i.style.height="100px"}),b=[];t(this,A).company&&b.push({text:a==null?N("addContactRecord","Add Contact Record"):N("editContactRecord","Edit Contact Record"),trigger:()=>{const i=this.prepare();if(i==null)return!1;if(i.SaveToCustomer=1,typeof t(this,A).onSave=="function")return t(this,A).onSave.call(this,i,"customerrecord")}}),b.push({text:N("workOrderOnly","Work Order Only"),trigger:()=>{const i=this.prepare();if(i==null)return!1;if(i.Id=-1,i.SaveToCustomer=0,typeof t(this,A).onSave=="function")return t(this,A).onSave.call(this,i,"workorder")}},{text:N("cancel","Cancel")});const p=Ae(a==null?N("addContact","Add Contact"):N("editContact","Edit Contact"),O("div",i=>{i.className="setting-wrapper",i.style.width="500px"},O("div","setting-item",O("span","setting-label setting-required",N("contactNameColon","Contact Name:")),y),O("div","setting-item",O("span","setting-label",N("contactPreferencesColon","Contact Preferences:")),m.create()),O("div","setting-item",O("span","setting-label",N("contactEmailColon","Email Address:")),o),O("div","setting-item",O("span","setting-label",N("contactMobileColon","Mobile:")),r),O("div","setting-item",O("span","setting-label",N("contactOptColon","Opt Out:")),s),O("div","setting-item",O("span","setting-label",N("contactNotesColon","Notes:")),d)),...b);a!=null?(y.value=a.Name,m.select(String(a.ContactPreference)),o.value=a.Email,r.value=a.MobilePhone,s.querySelector("input").checked=a.OptOut,d.value=a.Notes):m.select("0"),T(this,L,{contactName:y,preferences:m,contactEmail:o,contactMobile:r,checkOpt:s,contactNotes:d});const g=await p.show(e);return setTimeout(()=>y.focus()),g}prepare(){const e=t(this,L).contactName.value,n=t(this,L).preferences.selected.value,a=t(this,L).contactEmail.value,y=t(this,L).contactMobile.value,m=t(this,L).checkOpt.querySelector("input").checked,o=t(this,L).contactNotes.value,r=t(this,A).contact==null?N("addContact","Add Contact"):N("editContact","Edit Contact");if(re(e))return Ce(r,N("contactNameRequired","Contact Name cannot be empty."),"warn").then(()=>t(this,L).contactName.focus()),null;if(re(a)&&re(y))return Ce(r,N("contactEmailPhoneRequired","Email and Mobile Phone cannot both be empty."),"warn").then(()=>re(a)?t(this,L).contactEmail.focus():t(this,L).contactMobile.focus()),null;if(!re(a)&&!Ue(a))return Ce(r,N("contactEmailInvalid","The email address is invalid."),"warn").then(()=>t(this,L).contactEmail.focus()),null;let s=t(this,A).contact;return s==null?s={}:s.OptOut!==m&&(m!==!1||s.OptOut_BC===!1)&&(s.selected=!m),s.Name=e,s.ContactPreference=n,s.Email=a,s.MobilePhone=y,s.OptOut=m,s.Notes=o,s}}A=new WeakMap,L=new WeakMap;const ke=window["lib-ui"].Grid,pe=window["lib-ui"].createElement,We=window["lib-ui"].createPopup,Te=window["lib-utility"].nullOrEmpty,J=window["lib-utility"].r,He=window["lib-utility"].contains;class _e{constructor(e={}){C(this,z,void 0);C(this,Q,void 0);T(this,z,e)}async show(e=document.body){const n=Math.max.apply(null,[...document.querySelectorAll("[tabindex]")].map(r=>r.tabIndex??0))+3,a=pe("div","follower-grid"),m=await We(J("addFollowers","Add FolloweLine truncated
|
||||
${p}`),I(d,p)}t(this,H).scrollTop=t(this,H).scrollHeight}}set readonly(e){if(t(this,E).readonly=e,t(this,x)==null)return;const n=t(this,x).querySelector(".check-status-link");e===!0?n.classList.add("disabled"):n.classList.remove("disabled"),n.querySelector("input").disabled=e;const a=e===!0?"none":"";t(this,x).querySelector(".button-edit-contacts").style.display=a,t(this,x).querySelector(".button-edit-followers").style.display=a,t(this,x).querySelector(".message-bar").style.display=a}set recordReadonly(e){t(this,E).recordReadonly=e,t(this,x)!=null&&(t(this,x).querySelector(".button-edit-contacts").style.display=e===!0?"none":"",t(this,x).querySelector(".button-edit-followers").style.display=e===!0?"none":"")}set companyName(e){t(this,E).companyName=e;const n=t(this,x).querySelector(".title-company");v(e)?n.style.display="none":(n.innerText=e,n.style.display="")}set companyCode(e){t(this,E).companyCode=e;const n=t(this,x).querySelector(".title-company");v(t(this,E).companyName)?n.style.display="none":(n.innerText=t(this,E).companyName,v(e)||(n.innerText=t(this,E).companyName+"/"+e),n.style.display="")}get followers(){return[...t(this,Z).children].map(e=>{const n=e.querySelector("span");return{Email:n.dataset.email,MobilePhone:n.dataset.mp,Value:n.dataset.name}})}set followers(e){if(t(this,P).followers=e,t(this,Z).replaceChildren(),(e==null?void 0:e.length)>0){t(this,x).querySelector(".follower-bar").style.display="",t(this,x).querySelector(".follower-bar>.bar-list").appendChild(t(this,ie));for(let n of e){if(n.OptOut)continue;const a=String(n.MobilePhone).trim(),y=String(n.Email).trim(),m=[];n.SendEmail&&m.push(l("emailsToColon","Emails to:")+` ${y}`),n.SendText&&m.push(l("textsToColon",`Texts to: ${a}`));let o;n.SendText&&n.SendEmail?o="at":o=n.SendText?"comment-lines":"envelope";const r=h("span",d=>{n.SendEmail&&(d.dataset.email=y),n.SendText&&(d.dataset.mp=a),d.dataset.name=n.Name,d.innerText=n.Name}),s=h("div","contact-item",$("fa-light",o),r);t(this,Z).appendChild(s),r.scrollWidth>r.offsetWidth&&m.splice(0,0,l("nameColon","Name:")+` ${c.Name}`),I(r,m.join(`
|
||||
`))}}else t(this,x).querySelector(".follower-bar").style.display="none",t(this,x).querySelector(".button-edit-contacts").insertAdjacentElement("beforebegin",t(this,ie));t(this,H).scrollTop=t(this,H).scrollHeight}setData(e,n){t(this,P)[e]=n}create(){const e=t(this,E),n=e.readonly,a=fe({className:"check-auto-update",checked:e.autoUpdates,checkedNode:$("fa-regular","redo-alt"),uncheckedNode:$("fa-regular","ban"),onchange:function(){I(a,this.checked?l("autoUpdateEnabled","Auto Updates Enabled"):l("autoUpdateDisabled","Auto Updates Disabled"))}});e.autoUpdatesVisible===!1&&(a.style.display="none");const y=fe({className:"check-status-link",enabled:!n,checked:e.statusLink,checkedNode:$("fa-regular","link"),uncheckedNode:$("fa-regular","unlink"),onchange:function(){I(y,this.checked?l("statusLinkIncluded","Status Link Included"):l("statusLinkExcluded","Status Link Excluded"))}});e.statusLinkVisible===!1&&(y.style.display="none");const m=ae(h("div",null,h("div",s=>{s.className="title-module",s.innerText=e.title??l("messages","Customer Communication")}),h("div",s=>{s.className="title-company",v(e.companyName)?s.style.display="none":v(e.companyCode)?s.innerText=e.companyName:s.innerText=e.companyName+"/"+e.companyCode})),[I(a,l("autoUpdateEnabled","Auto Updates Enabled")),I(y,l("statusLinkExcluded","Status Link Excluded"))]);T(this,X,xe(this,be,Le).call(this,m,e)),T(this,Z,xe(this,ge,Pe).call(this,m,e));const o=h("textarea","ui-text");o.placeholder=l("typeMessage","Enter Message Here"),e.maxLength??(e.maxLength=3e3),o.maxLength=e.maxLength,o.addEventListener("input",()=>{const s=t(this,V).value,d=String(v(s)?0:s.length)+"/"+String(e.maxLength);t(this,x).querySelector(".message-bar .prompt-count").innerText=d}),T(this,V,o),m.appendChild(h("div",s=>{s.className="message-bar",n===!0&&(s.style.display="none")},o,h("div",s=>s.style.textAlign="right",h("div",s=>{s.className="customer-name",e.customerNameVisible!==!0&&(s.style.display="none")},h("span",s=>s.innerText=l("nameColon","Name:")),h("input",s=>{s.type="text",s.className="ui-input"})),h("div","prompt-count"),h("button",s=>{s.className="roundbtn button-send-message",s.style.backgroundColor="rgb(19, 150, 204)",s.appendChild($("fa-solid","paper-plane")),I(s,l("sendMessage","Send Message")),s.addEventListener("click",()=>{const d=t(this,V).value;if(v(d==null?void 0:d.trim())){ce(l("error","Error"),l("messageRequired","Please input the message."),"warn");return}typeof t(this,E).onAddMessage=="function"&&t(this,E).onAddMessage(t(this,V).value)})}))));const r=h("div","list-bar");return T(this,H,r),m.appendChild(r),T(this,x,m)}load(e,n,a){var m;const y=[];if((e==null?void 0:e.length)>0){n??(n=t(this,P).contacts),a??(a=t(this,P).allfollowers);for(let o of e){const r=h("div","item-div");let s;if(o.IsReply&&(n==null?void 0:n.length)>0){const p=ye(o.Sender)?n.find(g=>g.Email===o.Sender):n.find(g=>g.MobilePhone===o.Sender);s=p==null?void 0:p.Name}s??(s=o.IsReply&&String(o.FormatSender)!==""?o.FormatSender:o.Sender);let d="";if(!o.IsReply&&((m=o.OriPhoneNumbers)==null?void 0:m.length)>0)for(let p of o.OriPhoneNumbers){let g;const i=ye(p);if((n==null?void 0:n.length)>0){let w=i?n.find(f=>f.Email===p):n.find(f=>f.MobilePhone===p);w!=null?g=`${i?w.Email:w.MobilePhoneDisplayText} - ${w.Name}`:(a==null?void 0:a.length)>0&&(w=i?a.find(f=>f.Email===p):a.find(f=>f.MobilePhone===p),w!=null&&(g=`${i?w.Email:w.MobilePhoneDisplayText} - ${w.Name}`))}d+=(g??p)+`
|
||||
`}d!==""&&(d=l("sendToColon","Send To :")+`
|
||||
${d}`),r.appendChild(h("div",p=>{p.className="item-poster",p.innerText=s,!o.IsReply&&(d==null?void 0:d.length)>0&&I(p,d)}));const b=h("div","item-content");if(b.appendChild(h("span",p=>{/https?:\/\//i.test(o.Message)?p.innerHTML=Be(o.Message):p.innerText=o.Message})),o.IsReply)r.classList.add("item-other");else{r.classList.add("item-self");const[p,g]=xe(this,we,Fe).call(this,o);if(p!==-100){let i;switch(p){case 0:i=l("pending","Pending"),b.style.backgroundColor="#ffc107";break;case 1:i=l("sent","Sent");break;case 9:i=l("failed","Failed"),b.style.backgroundColor="#ffc107";break;case 10:i=l("optOut","Opt-Out"),b.style.backgroundColor="#ffc107";break;case 412:i=l("landline","Landline"),b.style.backgroundColor="#ffc107";break;default:i=l("undelivered","Undelivered"),b.style.backgroundColor="#ffc107";break}const w=h("div",f=>{f.className="item-status",f.innerText=i,p==-10&&I(f,g)});b.appendChild(w)}}r.append(b,h("div",p=>{p.className="item-time",p.innerText=o.TimeStr})),y.push(r)}y[0].style.marginTop="0"}t(this,H).replaceChildren(...y),t(this,H).scrollTop=t(this,H).scrollHeight}}x=new WeakMap,E=new WeakMap,X=new WeakMap,Z=new WeakMap,ie=new WeakMap,V=new WeakMap,H=new WeakMap,P=new WeakMap,_=new WeakMap,j=new WeakMap,ue=new WeakMap,ee=new WeakSet,me=function(){return t(this,x).querySelector(".check-auto-update>input")},te=new WeakSet,he=function(){return t(this,x).querySelector(".check-status-link>input")},be=new WeakSet,Le=function(e,n){const a=n.readonly,y=n.recordReadonly,m=h("div");return e.append(h("div","contact-bar",h("div","bar-icon",$("fa-solid","user-circle",{fill:"lightgray"})),h("div","bar-list",m,h("button",o=>{o.className="roundbtn button-edit-contacts",o.style.backgroundColor="rgb(1, 199, 172)",a===!0&&(o.style.display="none"),o.appendChild($("fa-solid","user-edit")),I(o,l("editContacts","Edit Contacts")),o.addEventListener("click",()=>{const r=qe(h("div",s=>{s.style.display="flex",s.style.alignItems="center",s.append(h("div",d=>{d.className="ui-popup-move",d.style.flex="1 1 auto"},h("div",d=>d.innerText=l("editContacts","Edit Contacts")),h("div",d=>{d.className="title-company",v(n.companyName)?d.style.display="none":v(n.companyCode)?d.innerText=n.companyName:d.innerText=n.companyName+"/"+n.companyCode})),h("button",d=>{d.style.flex="0 0 auto",d.style.backgroundColor="rgb(1, 199, 172)",d.style.marginRight="10px",d.className="roundbtn button-add-contact",y&&(d.style.display="none"),d.appendChild($("fa-solid","user-plus",{width:"16px",height:"16px"})),d.addEventListener("click",()=>{new Ee({company:!v(t(this,P).companyCode),onSave:p=>{if(t(this,_).source.some(i=>i.Name===p.Name&&i.MobilePhone===p.MobilePhone))return ce(l("addContact","Add Contact"),l("contactUniqueRequired","Contact name and contact mobile must be a unique combination."),"warn"),!1;if(typeof n.onSave=="function"){const i=n.onSave(p,!0);return typeof(i==null?void 0:i.then)=="function"?i.then(w=>(t(this,_).source=w.filter(f=>f.Id>=0).map(f=>(f.OptOut||f.OptOut_BC||typeof f.selected>"u"&&(f.selected=!0),f)),t(this,j).source=w.filter(f=>f.Id<0).map(f=>(f.OptOut||f.OptOut_BC||typeof f.selected>"u"&&(f.selected=!0),f)),w)):!1}}}).show(e)}),I(d,l("addContact","Add Contact"))}))}),h("div",null,h("div",s=>{v(t(this,P).companyCode)&&(s.style.display="none"),s.style.fontWeight="bold",s.innerText=l("contactFromRecord","Contacts from Customer Record")}),h("div",s=>{v(t(this,P).companyCode)&&(s.style.display="none"),s.className="contacts-record",s.style.maxHeight="400px",s.style.width="660px"}),h("div",s=>{s.style.fontWeight="bold",s.innerText=l("contactFromWorkOrder","Contacts not on Customer Record")}),h("div",s=>{s.className="contacts-wo",s.style.maxHeight="200px",s.style.width="660px"})));r.show(e).then(()=>{const s=u=>({key:"selected",type:K.ColumnTypes.Checkbox,width:50,enabled:D=>!D.OptOut&&!D.OptOut_BC,onchanged:function(){typeof n.onChanged=="function"&&n.onChanged([...t(u,_).source,...t(u,j).source])}}),d={key:"type",type:K.ColumnTypes.Icon,width:50,filter:u=>{switch(String(u.ContactPreference)){case"0":return"comment-lines";case"2":return"mobile";default:return"envelope"}},className:"icon-contact-type",iconType:"fa-light"},b={key:"Name",type:je,width:160},p={type:K.ColumnTypes.Icon,width:40,visible:!y,align:"center",iconType:"fa-light"},g=u=>({key:"edit",...p,text:"edit",tooltip:l("edit","Edit"),events:{onclick:function(){new Ee({contact:this,company:!v(t(u,P).companyCode),onSave:(U,le)=>{if(t(u,_).source.some(W=>W!==this&&W.Name===U.Name&&W.MobilePhone===U.MobilePhone)||t(u,j).source.some(W=>W!==this&&W.Name===U.Name&&W.MobilePhone===U.MobilePhone))return ce(l("editContact","Edit Contact"),l("contactUniqueRequired","Contact name and contact mobile must be a unique combination."),"warn"),!1;if(typeof n.onSave=="function"){const W=n.onSave(U);return typeof(W==null?void 0:W.then)=="function"?W.then(Ne=>(t(u,_).source=Ne.filter(q=>q.Id>=0).map(q=>(q.OptOut||q.OptOut_BC||typeof q.selected>"u"&&(q.selected=!0),q)),t(u,j).source=Ne.filter(q
Line truncated
|
||||
|
||||
Do you want to Continue?`).replace("{name}",this.Name),[{key:"continue",text:l("continue","Continue")},{key:"cancel",text:l("cancel","Cancel")}]).then(u=>{if((u==null?void 0:u.key)==="continue"){typeof n.onDelete=="function"&&n.onDelete(u.key,this);const D=f.source.indexOf(this);if(D>=0){const U=f.source;U.splice(D,1),f.extraRows=U.filter(le=>!v(le.Notes)).length,f.source=U}}})}}}],f.init(r.container.querySelector(".contacts-wo"));const B=t(this,P).contacts.filter(u=>u.Id<0).map(u=>(u.OptOut||u.OptOut_BC||typeof u.selected>"u"&&(u.selected=!0),u));f.extraRows=B.filter(u=>!v(u.Notes)).length,f.source=B,f.selectedRowChanged=u=>{var D;u>=0&&((D=t(this,_).selectedIndexes)==null?void 0:D.length)>0&&(t(this,_).selectedIndexes=[])},T(this,j,f)})})})))),m},ge=new WeakSet,Pe=function(e,n){const a=n.readonly,y=n.recordReadonly,m=h("div"),o=h("button",r=>{r.className="roundbtn button-edit-followers",r.style.backgroundColor="rgb(48, 107, 255)",(a===!0||y)&&(r.style.display="none"),r.appendChild($("fa-solid","pen")),I(r,l("editFollower","Edit Followers")),r.addEventListener("click",()=>{const s=qe(h("div",d=>{d.style.display="flex",d.style.alignItems="center",d.append(h("div",b=>{b.className="ui-popup-move",b.style.flex="1 1 auto",b.innerText=l("editContacts","Edit Contacts")+`
|
||||
`+l("followers","Followers")}),h("button",b=>{b.style.flex="0 0 auto",b.style.backgroundColor="rgb(1, 199, 172)",b.style.marginRight="10px",b.className="roundbtn button-add-follower",b.appendChild($("fa-solid","user-plus",{width:"16px",height:"16px"})),b.addEventListener("click",()=>{typeof t(this,E).onInitFollower=="function"&&t(this,E).onInitFollower().then(p=>{if(typeof p=="string"){ce(l("customerRecord","Customer Record"),p,"warn");return}new _e({followers:p,onOk:i=>{if(typeof t(this,E).onAddFollower=="function"){const w=t(this,E).onAddFollower(i);return typeof(w==null?void 0:w.then)=="function"?w.then(f=>(t(this,ue).source=f,f)):!1}}}).show(e)})}),I(b,l("addFollower","Add Follower"))}))}),h("div",null,h("div",d=>{d.style.fontWeight="bold",d.innerText=l("contactFromRecord","Contacts from Customer Record")}),h("div",d=>{d.className="followers-record",d.style.maxHeight="400px",d.style.width="660px"})));s.show(e).then(()=>{const d={type:K.ColumnTypes.Icon,width:40,align:"center",iconType:"fa-light"},b=new K;b.height=0,b.allowHtml=!0,b.headerVisible=!1,b.columns=[{key:"type",type:K.ColumnTypes.Icon,width:50,filter:p=>p.SendText&&p.SendEmail?"at":p.SendText?"comment-lines":"envelope",className:"icon-contact-type",iconType:"fa-light"},{key:"Name",width:160},{key:"Email",width:180},{key:"MobilePhoneDisplayText",width:130},{key:"edit",...d,text:"edit",tooltip:l("edit","Edit"),events:{onclick:function(){typeof n.onInitFollower=="function"&&n.onInitFollower().then(p=>{if(typeof p=="string"){ce(l("customerRecord","Customer Record"),p,"warn");return}const g=p.find(i=>i.IID===this.UserIID);de(l("editContactMethod","Edit Contact Method"),h("div","wrapper-edit-method",h("div",i=>{i.style.display="flex",i.style.justifyContent="center",i.style.marginTop="20px"},fe({label:l("text","Text"),checked:this.SendText&&!v(g==null?void 0:g.Mobile),enabled:!v(g==null?void 0:g.Mobile),className:"check-method-text"}),fe({label:l("email","Email"),checked:this.SendEmail,className:"check-method-email"}))),[{key:"ok",text:l("ok","OK"),trigger:(i,w)=>{const f=i.container.querySelector(".check-method-text>input").checked,B=i.container.querySelector(".check-method-email>input").checked;return!f&&!B?de(l("editContactMethod","Edit Contact Method"),l("promptRemoveFollower","Contact method is required. If you continue, user will be removed as a follower."),[{key:"update",text:l("updateContactMethod","Update Contact Method")},{key:"remove",text:l("removeFollower","Remove Follower")}],"question").then(u=>(u==null?void 0:u.key)==="remove"?{key:u.key,popup:i}:!1):{key:w.key,popup:i}}},{key:"cancel",text:l("cancel","Cancel")}],null).then(i=>{const w=i==null?void 0:i.key;if(w==="remove"){typeof n.onDeleteFollower=="function"&&n.onDeleteFollower(i.key,this);const f=b.source.indexOf(this);if(f>=0){const B=b.source;B.splice(f,1),b.extraRows=B.filter(u=>!v(u.Notes)).length,b.source=B}}else if(w==="ok"){const f=i.popup.container.querySelector(".check-method-text>input").checked,B=i.popup.container.querySelector(".check-method-email>input").checked;typeof n.onChangeFollower=="function"&&n.onChangeFollower(i.key,this,f,B),this.SendText=f,this.SendEmail=B,b.refresh()}})})}}},{key:"delete",...d,text:"times",tooltip:l("delete","Delete"),events:{onclick:function(){de(l("deleteFollower","Delete Follower"),l("promptDeleteFollower","Do you want to delete this follower?")).then(p=>{if((p==null?void 0:p.key)==="yes"){typeof n.onDeleteFollower=="function"&&n.onDeleteFollower(p.key,this);const g=b.source.indexOf(this);if(g>=0){const i=b.source;i.splice(g,1),b.extraRows=i.filter(w=>!v(w.Notes)).length,b.source=i}}})}}}],b.init(s.container.querySelector(".followers-record")),b.source=t(this,P).followers,T(this,ue,b)})})});return T(this,ie,o),e.append(h("div",r=>{r.className="contact-bar follower-bar",r.style.display="none"},I(h("div","bar-icon",$("fa-solid","user-tag",{fill:"#fff","background-color":"lightgray","box-sizing":"border-box","border-radius":"15px",padding:"4px"})),l("copied","Copied")),h("div","bar-list",m,o))),m},we=new WeakSet,Fe=function(e){var m;let n=-100;const a=[];let y="";if(!e.StatusIncorrect&&((m=e.Participator)==null?void 0:m.length)>0){for(let o of e.Participator)if(!ye(o.CustomerNumber)){a.indexOf(o.Status)<0&&a.push(o.Status),y.length>0&&(y+=`
|
||||
`),y+=`${o.CustomerNumber}: `;const r={0:l("undelivered","Undelivered"),1:l("sent","Sent"),9:l("failed","Failed")}[o.Status];r!=null&&(y+=r)}}return a.length===1?n=a[0]:a.length>1&&(n=-10),[n,y]};const R=window["lib-ui"].createElement,ve=window["lib-ui"].setTooltip,Me=window["lib-ui"].createIcon,oe=window["lib-utility"].r,Ie=window["lib-utility"].nullOrEmpty,Ke=window["lib-utility"].escapeHtml;class ze{constructor(e){C(this,Y,void 0);C(this,F,void 0);C(this,G,void 0);C(this,ne,void 0);T(this,F,e??{})}get text(){var e;return(e=t(this,G))==null?void 0:e.value}set text(e){const n=t(this,G);n!=null&&(n.value=e,e=String(Ie(e)?0:val.length)+"/"+String(t(this,F).maxLength),t(this,Y).querySelector(".message-bar .prompt-count").innerText=e)}set readonly(e){t(this,F).readonly=e,t(this,Y)!=null&&(t(this,G).disabled=e===!0,t(this,Y).querySelector(".button-send-message").style.display=e===!0?"none":"",t(this,Y).querySelector(".button-post-note").style.display=e===!0?"none":"")}create(){var m;const e=ae(R("div",null,R("div",o=>{o.className="title-module",o.innerText=oe("internalComments","Internal Comments")})),[]),n=t(this,F).readonly,a=R("textarea","ui-text");a.placeholder=oe("typeComment","Enter Comment Here"),a.maxLength=(m=t(this,F)).maxLength??(m.maxLength=3e3),a.addEventListener("input",()=>{const o=t(this,G).value,r=String(Ie(o)?0:o.length)+"/"+String(t(this,F).maxLength);t(this,Y).querySelector(".message-bar .prompt-count").innerText=r}),n===!0&&(a.disabled=!0),T(this,G,a),e.appendChild(R("div","message-bar",a,R("div",o=>o.style.textAlign="right",R("div","prompt-count"),R("button",o=>{o.className="roundbtn button-send-message",o.style.backgroundColor="rgb(19, 150, 204)",(n===!0||t(this,F).noMessage===!0)&&(o.style.display="none"),o.appendChild(Me("fa-solid","paper-plane")),ve(o,oe("sendMessage","Send Message")),o.addEventListener("click",()=>{typeof t(this,F).onAddMessage=="function"&&t(this,F).onAddMessage(t(this,G).value)})}),R("button",o=>{o.className="roundbtn button-post-note",o.style.border="1px solid rgb(19, 150, 204)",o.style.fill="rgb(19, 150, 204)",n===!0&&(o.style.display="none"),o.appendChild(Me("fa-solid","comment-alt-lines")),ve(o,oe("postNote","Post Note")),o.addEventListener("click",()=>{typeof t(this,F).onAddComment=="function"&&t(this,F).onAddComment(t(this,G).value)})}))));const y=R("div","list-bar");return T(this,ne,y),e.appendChild(y),T(this,Y,e)}load(e){var a;const n=[];if((e==null?void 0:e.length)>0){for(let y of e){const m=R("div","item-div");m.appendChild(R("div",r=>{r.className="item-poster",r.innerText=y.UserName}));const o=R("div","item-content");if(o.appendChild(R("span",r=>r.innerHTML=Ke(y.Comment))),((a=y.FollowUp)==null?void 0:a.length)>0){m.classList.add("item-sent");const r=oe("sendToColon","Send To :")+`\r
|
||||
`+y.FollowUp.split(";").join(`\r
|
||||
`);o.appendChild(R("div",s=>{s.className="item-status",s.innerText=oe("sent","Sent"),ve(s,r)}))}m.append(o,R("div",r=>{r.className="item-time",r.innerText=y.SubmitDateStr})),n.push(m)}n[0].style.marginTop="0"}t(this,ne).replaceChildren(...n),t(this,ne).scrollTop=t(this,ne).scrollHeight}}Y=new WeakMap,F=new WeakMap,G=new WeakMap,ne=new WeakMap,k.CustomerCommunication=Ge,k.InternalComment=ze,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
|
||||
//# sourceMappingURL=app.min.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"app.min.js","sources":["../../../../../../FI_G3/_wsp/UILib/ui-lib/lib/app/communications/lib.js","../../../../../../FI_G3/_wsp/UILib/ui-lib/lib/app/communications/contact.js","../../../../../../FI_G3/_wsp/UILib/ui-lib/lib/app/communications/follower.js","../../../../../../FI_G3/_wsp/UILib/ui-lib/lib/app/communications/customer.js","../../../../../../FI_G3/_wsp/UILib/ui-lib/lib/app/communications/internal.js"],"sourcesContent":["import { createElement } from \"../../ui\";\r\n\r\nfunction createBox(title, functions) {\r\n const container = createElement('div', 'comm');\r\n const header = createElement('div', 'title-bar',\r\n title,\r\n createElement('div', 'title-functions', ...functions)\r\n );\r\n container.appendChild(header);\r\n return container;\r\n}\r\n\r\nexport {\r\n createBox\r\n}","import { Dropdown, createElement, createCheckbox, createPopup, showAlert } from \"../../ui\";\r\nimport { isEmail, nullOrEmpty, r } from \"../../utility\";\r\n\r\nclass Contact {\r\n #option;\r\n #refs;\r\n\r\n constructor(option = {}) {\r\n this.#option = option;\r\n }\r\n\r\n async show(parent = document.body) {\r\n const tabIndex = Math.max.apply(null, [...document.querySelectorAll('[tabindex]')].map(e => e.tabIndex ?? 0)) + 3;\r\n\r\n const c = this.#option.contact;\r\n const contactName = createElement('input', input => {\r\n input.type = 'text';\r\n input.className = 'ui-input';\r\n input.tabIndex = tabIndex + 1;\r\n input.maxLength = 200;\r\n input.autocomplete = 'off';\r\n });\r\n const preferences = new Dropdown({ tabIndex: tabIndex + 2 });\r\n preferences.source = [\r\n { value: '0', text: r('text', 'Text') },\r\n { value: '1', text: r('email', 'Email') },\r\n { value: '2', text: r('phone', 'Phone') }\r\n ];\r\n const contactEmail = createElement('input', input => {\r\n input.type = 'email';\r\n input.className = 'ui-input';\r\n input.tabIndex = tabIndex + 3;\r\n input.maxLength = 100;\r\n input.autocomplete = 'off';\r\n });\r\n const contactMobile = createElement('input', input => {\r\n input.type = 'tel';\r\n input.className = 'ui-input';\r\n input.tabIndex = tabIndex + 4;\r\n input.maxLength = 50;\r\n input.autocomplete = 'off';\r\n });\r\n const checkOpt = createCheckbox({ tabIndex: tabIndex + 5 });\r\n const contactNotes = createElement('textarea', txt => {\r\n txt.className = 'ui-text';\r\n txt.tabIndex = tabIndex + 6;\r\n txt.maxLength = 2000;\r\n txt.style.height = '100px';\r\n });\r\n const buttons = [];\r\n if (this.#option.company) {\r\n buttons.push({\r\n text: c == null ? r('addContactRecord', 'Add Contact Record') : r('editContactRecord', 'Edit Contact Record'),\r\n // tabIndex: tabIndex + 7,\r\n trigger: () => {\r\n const item = this.prepare();\r\n if (item == null) {\r\n return false;\r\n }\r\n item.SaveToCustomer = 1;\r\n if (typeof this.#option.onSave === 'function') {\r\n return this.#option.onSave.call(this, item, 'customerrecord');\r\n }\r\n }\r\n });\r\n }\r\n buttons.push(\r\n {\r\n text: r('workOrderOnly', 'Work Order Only'),\r\n // tabIndex: tabIndex + 8,\r\n trigger: () => {\r\n const item = this.prepare();\r\n if (item == null) {\r\n return false;\r\n }\r\n item.Id = -1;\r\n item.SaveToCustomer = 0;\r\n if (typeof this.#option.onSave === 'function') {\r\n return this.#option.onSave.call(this, item, 'workorder');\r\n }\r\n }\r\n },\r\n {\r\n text: r('cancel', 'Cancel'),\r\n // tabIndex: tabIndex + 9\r\n }\r\n );\r\n const popup = createPopup(\r\n c == null ? r('addContact', 'Add Contact') : r('editContact', 'Edit Contact'),\r\n createElement('div', wrapper => {\r\n wrapper.className = 'setting-wrapper';\r\n wrapper.style.width = '500px';\r\n },\r\n createElement('div', 'setting-item',\r\n createElement('span', 'setting-label setting-required', r('contactNameColon', 'Contact Name:')),\r\n contactName\r\n ),\r\n createElement('div', 'setting-item',\r\Line truncated
|
||||
+24129
File diff suppressed because it is too large.
Load diff
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
/** vim: et:ts=4:sw=4:sts=4
|
||||
* @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.
|
||||
* Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
|
||||
*/
|
||||
var requirejs,require,define;!function(global,setTimeout){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.6",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){var i;if(e)for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}function eachReverse(e,t){var i;if(e)for(i=e.length-1;-1<i&&(!e[i]||!t(e[i],i,e));i-=1);}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(i,e,r,n){return e&&eachProp(e,function(e,t){!r&&hasProp(i,t)||(!n||"object"!=typeof e||!e||isArray(e)||isFunction(e)||e instanceof RegExp?i[t]=e:(i[t]||(i[t]={}),mixin(i[t],e,r,n)))}),i}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+"\nhttps://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),(n=getOwn(contexts,a))||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick=void 0!==setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(t){req[t]=function(){var e=contexts[defContextName];return e.require[t].apply(e,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(t,i,r){var e,n=t&&t.config||{};if(isBrowser)return(e=req.createNode(n,i,r)).setAttribute("data-requirecontext",t.contextName),e.setAttribute("data-requiremodule",i),!e.attachEvent||e.attachEvent.toString&&e.attachEvent.toString().indexOf("[native code")<0||isOpera?(e.addEventListener("load",t.onScriptLoad,!1),e.addEventListener("error",t.onScriptError,!1)):(useInteractive=!0,e.attachEvent("onreadystatechange",t.onScriptLoad)),e.src=r,n.onNodeCreated&&n.onNodeCreated(e,n,i,r),currentlyAddingScript=e,baseElement?head.insertBefore(e,baseElement):head.appendChild(e),currentlyAddingScript=null,e;if(isWebWorker)try{setTimeout(function(){},0),importScripts(r),t.completeLoad(i)}catch(e){t.onError(makeError("importscripts","importScripts failed for "+i+" at "+r,e,[i]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||-1!==mainScript.indexOf("!")||(mainScript=(src=mainScript.split("/")).pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,i,t){var r,n;"string"!=typeof e&&(t=i,i=e,e=null),isArray(i)||(t=i,i=null),!i&&isFunction(t)&&(i=[],t.length&&(t.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,t){i.push(t)}),i=(1===t.length?["require"]:["require","exports","module"]).concat(i))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript())&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")]),n?(n.defQueue.push([e,i,t]),n.defQueueMap[e]=!0):globalDefQueue.pushLine truncated
|
||||
@@ -0,0 +1,27 @@
|
||||
:root,
|
||||
:host {
|
||||
--w-e-textarea-bg-color: #fff;
|
||||
--w-e-textarea-color: #333;
|
||||
--w-e-textarea-border-color: #ccc;
|
||||
--w-e-textarea-slight-border-color: #e8e8e8;
|
||||
--w-e-textarea-slight-color: #d4d4d4;
|
||||
--w-e-textarea-slight-bg-color: #f5f2f0;
|
||||
--w-e-textarea-selected-border-color: #B4D5FF;
|
||||
--w-e-textarea-handler-bg-color: #4290f7;
|
||||
--w-e-toolbar-color: #595959;
|
||||
--w-e-toolbar-bg-color: #fff;
|
||||
--w-e-toolbar-active-color: #333;
|
||||
--w-e-toolbar-active-bg-color: #f1f1f1;
|
||||
--w-e-toolbar-disabled-color: #999;
|
||||
--w-e-toolbar-border-color: #e8e8e8;
|
||||
--w-e-modal-button-bg-color: #fafafa;
|
||||
--w-e-modal-button-border-color: #d9d9d9;
|
||||
}
|
||||
|
||||
.w-e-text-container *,.w-e-toolbar *{box-sizing:border-box;margin:0;outline:none;padding:0}.w-e-text-container blockquote,.w-e-text-container li,.w-e-text-container p,.w-e-text-container td,.w-e-text-container th,.w-e-toolbar *{line-height:1.5}.w-e-text-container{background-color:var(--w-e-textarea-bg-color);color:var(--w-e-textarea-color);height:100%;position:relative}.w-e-text-container .w-e-scroll{-webkit-overflow-scrolling:touch;height:100%}.w-e-text-container [data-slate-editor]{word-wrap:break-word;border-top:1px solid transparent;min-height:100%;outline:0;padding:0 10px;white-space:pre-wrap}.w-e-text-container [data-slate-editor] p{margin:15px 0}.w-e-text-container [data-slate-editor] h1,.w-e-text-container [data-slate-editor] h2,.w-e-text-container [data-slate-editor] h3,.w-e-text-container [data-slate-editor] h4,.w-e-text-container [data-slate-editor] h5{margin:20px 0}.w-e-text-container [data-slate-editor] img{cursor:default;display:inline!important;max-width:100%;min-height:20px;min-width:20px}.w-e-text-container [data-slate-editor] span{text-indent:0}.w-e-text-container [data-slate-editor] [data-selected=true]{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-placeholder{font-style:italic;left:10px;top:17px;width:90%}.w-e-max-length-info,.w-e-text-placeholder{color:var(--w-e-textarea-slight-color);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.w-e-max-length-info{bottom:.5em;right:1em}.w-e-bar{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-color);font-size:14px;padding:0 5px}.w-e-bar svg{fill:var(--w-e-toolbar-color);height:14px;width:14px}.w-e-bar-show{display:flex}.w-e-bar-hidden{display:none}.w-e-hover-bar{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 5px #0000001f;position:absolute}.w-e-toolbar{flex-wrap:wrap;position:relative}.w-e-bar-divider{background-color:var(--w-e-toolbar-border-color);display:inline-flex;height:40px;margin:0 5px;width:1px}.w-e-bar-item{display:flex;height:40px;padding:4px;position:relative;text-align:center}.w-e-bar-item,.w-e-bar-item button{align-items:center;justify-content:center}.w-e-bar-item button{background:transparent;border:none;color:var(--w-e-toolbar-color);cursor:pointer;display:inline-flex;height:32px;overflow:hidden;padding:0 8px;white-space:nowrap}.w-e-bar-item button:hover{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item button .title{margin-left:5px}.w-e-bar-item .active{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item .disabled{color:var(--w-e-toolbar-disabled-color);cursor:not-allowed}.w-e-bar-item .disabled svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-menu-tooltip-v5:before{background-color:var(--w-e-toolbar-active-color);border-radius:5px;color:var(--w-e-toolbar-bg-color);content:attr(data-tooltip);font-size:.75em;opacity:0;padding:5px 10px;position:absolute;text-align:center;top:40px;transition:opacity .6s;visibility:hidden;white-space:pre;z-index:1}.w-e-menu-tooltip-v5:after{border:5px solid transparent;border-bottom:5px solid var(--w-e-toolbar-active-color);content:"";opacity:0;position:absolute;top:30px;transition:opacity .6s;visibility:hidden}.w-e-menu-tooltip-v5:hover:after,.w-e-menu-tooltip-v5:hover:before{opacity:1;visibility:visible}.w-e-menu-tooltip-v5.tooltip-right:before{left:100%;top:10px}.w-e-menu-tooltip-v5.tooltip-right:after{border-bottom-color:transparent;border-left-color:transparent;border-right-color:var(--w-e-toolbar-active-color);border-top-color:transparent;left:100%;margin-left:-10px;top:16px}.w-e-bar-item-group .w-e-bar-item-menus-container{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;display:none;left:0;margin-top:40px;position:absolute;top:0;z-index:1}.w-e-bar-item-group:hover .w-e-bar-item-menus-container{display:block}.w-e-select-list{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;box-shadow:0 2px 10px #0000001f;left:0;margin-top:40px;max-height:350px;min-width:100px;overflow-y:auto;position:absolute;top:0;z-index:1}.w-e-select-list ul{line-height:1;list-style:none}.w-e-select-list ul .selected{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li{cursor:pointer;padding:7px 0 7px 25px;position:relative;text-align:left;white-space:nowrap}.w-e-select-list ul li:hover{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li svg{left:0;margin-left:5px;margin-top:-7px;position:absolute;top:50%}.w-e-bar-bottom .w-e-select-list{bottom:0;margin-bottom:40px;margin-top:0;top:inherit}.w-e-drop-panLine truncated
|
||||
.w-e-text-container [data-slate-editor] code{background-color:var(--w-e-textarea-slight-bg-color);border-radius:3px;font-family:monospace;padding:3px}.w-e-panel-content-color{list-style:none;text-align:left;width:230px}.w-e-panel-content-color li{border:1px solid var(--w-e-toolbar-bg-color);border-radius:3px 3px;cursor:pointer;display:inline-block;padding:2px}.w-e-panel-content-color li:hover{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color li .color-block{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px 3px;height:17px;width:17px}.w-e-panel-content-color .active{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color .clear{line-height:1.5;margin-bottom:5px;width:100%}.w-e-panel-content-color .clear svg{height:16px;margin-bottom:-4px;width:16px}.w-e-text-container [data-slate-editor] blockquote{background-color:var(--w-e-textarea-slight-bg-color);border-left:8px solid var(--w-e-textarea-selected-border-color);display:block;font-size:100%;line-height:1.5;margin:10px 0;padding:10px}.w-e-panel-content-emotion{font-size:20px;list-style:none;text-align:left;width:300px}.w-e-panel-content-emotion li{border-radius:3px 3px;cursor:pointer;display:inline-block;padding:0 5px}.w-e-panel-content-emotion li:hover{background-color:var(--w-e-textarea-slight-bg-color)}.w-e-textarea-divider{border-radius:3px;margin:20px auto;padding:20px}.w-e-textarea-divider hr{background-color:var(--w-e-textarea-border-color);border:0;display:block;height:1px}.w-e-text-container [data-slate-editor] pre>code{background-color:var(--w-e-textarea-slight-bg-color);border:1px solid var(--w-e-textarea-slight-border-color);border-radius:4px 4px;display:block;font-size:14px;padding:10px;text-indent:0}.w-e-text-container [data-slate-editor] .w-e-image-container{display:inline-block;margin:0 3px}.w-e-text-container [data-slate-editor] .w-e-image-container:hover{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-container [data-slate-editor] .w-e-selected-image-container{overflow:hidden;position:relative}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .w-e-image-dragger{background-color:var(--w-e-textarea-handler-bg-color);height:7px;position:absolute;width:7px}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-top{cursor:nwse-resize;left:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-top{cursor:nesw-resize;right:0;top:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-bottom{bottom:0;cursor:nesw-resize;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-bottom{bottom:0;cursor:nwse-resize;right:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container:hover{box-shadow:none}.w-e-text-container [contenteditable=false] .w-e-image-container:hover{box-shadow:none}
|
||||
|
||||
.w-e-text-container [data-slate-editor] .table-container{border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin-top:10px;overflow-x:auto;padding:10px;width:100%}.w-e-text-container [data-slate-editor] table{border-collapse:collapse}.w-e-text-container [data-slate-editor] table td,.w-e-text-container [data-slate-editor] table th{border:1px solid var(--w-e-textarea-border-color);line-height:1.5;min-width:30px;padding:3px 5px;text-align:left}.w-e-text-container [data-slate-editor] table th{background-color:var(--w-e-textarea-slight-bg-color);font-weight:700;text-align:center}.w-e-panel-content-table{background-color:var(--w-e-toolbar-bg-color)}.w-e-panel-content-table table{border-collapse:collapse}.w-e-panel-content-table td{border:1px solid var(--w-e-toolbar-border-color);cursor:pointer;height:15px;padding:3px 5px;width:20px}.w-e-panel-content-table td.active{background-color:var(--w-e-toolbar-active-bg-color)}
|
||||
.w-e-textarea-video-container{background-image:linear-gradient(45deg,#eee 25%,transparent 0,transparent 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0,#fff 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;margin:10px auto 0;padding:10px 0;text-align:center}
|
||||
|
||||
.w-e-text-container [data-slate-editor] pre>code{word-wrap:normal;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;hyphens:none;line-height:1.5;margin:.5em 0;overflow:auto;padding:1em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal}.w-e-text-container [data-slate-editor] pre>code .token.cdata,.w-e-text-container [data-slate-editor] pre>code .token.comment,.w-e-text-container [data-slate-editor] pre>code .token.doctype,.w-e-text-container [data-slate-editor] pre>code .token.prolog{color:#708090}.w-e-text-container [data-slate-editor] pre>code .token.punctuation{color:#999}.w-e-text-container [data-slate-editor] pre>code .token.namespace{opacity:.7}.w-e-text-container [data-slate-editor] pre>code .token.boolean,.w-e-text-container [data-slate-editor] pre>code .token.constant,.w-e-text-container [data-slate-editor] pre>code .token.deleted,.w-e-text-container [data-slate-editor] pre>code .token.number,.w-e-text-container [data-slate-editor] pre>code .token.property,.w-e-text-container [data-slate-editor] pre>code .token.symbol,.w-e-text-container [data-slate-editor] pre>code .token.tag{color:#905}.w-e-text-container [data-slate-editor] pre>code .token.attr-name,.w-e-text-container [data-slate-editor] pre>code .token.builtin,.w-e-text-container [data-slate-editor] pre>code .token.char,.w-e-text-container [data-slate-editor] pre>code .token.inserted,.w-e-text-container [data-slate-editor] pre>code .token.selector,.w-e-text-container [data-slate-editor] pre>code .token.string{color:#690}.w-e-text-container [data-slate-editor] pre>code .language-css .token.string,.w-e-text-container [data-slate-editor] pre>code .style .token.string,.w-e-text-container [data-slate-editor] pre>code .token.entity,.w-e-text-container [data-slate-editor] pre>code .token.operator,.w-e-text-container [data-slate-editor] pre>code .token.url{color:#9a6e3a}.w-e-text-container [data-slate-editor] pre>code .token.atrule,.w-e-text-container [data-slate-editor] pre>code .token.attr-value,.w-e-text-container [data-slate-editor] pre>code .token.keyword{color:#07a}.w-e-text-container [data-slate-editor] pre>code .token.class-name,.w-e-text-container [data-slate-editor] pre>code .token.function{color:#dd4a68}.w-e-text-container [data-slate-editor] pre>code .token.important,.w-e-text-container [data-slate-editor] pre>code .token.regex,.w-e-text-container [data-slate-editor] pre>code .token.variable{color:#e90}.w-e-text-container [data-slate-editor] pre>code .token.bold,.w-e-text-container [data-slate-editor] pre>code .token.important{font-weight:700}.w-e-text-container [data-slate-editor] pre>code .token.italic{font-style:italic}.w-e-text-container [data-slate-editor] pre>code .token.entity{cursor:help}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
@-webkit-keyframes loading-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes loading-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{color-scheme:light dark;--color: #201f1e;--bg-color: #fff;--border-color: #b9b9b9;--focus-border-color: #666;--shadow-color: rgba(0, 0, 0,.11);--disabled-color: #aaa;--disabled-bg-color: #e9e9e9;--disabled-border-color: #d9d9d9;--red-color: red;--title-color: #fff;--title-bg-color: rgb(68, 114, 196);--hover-bg-color: #eee;--link-color: #1890ff;--primary-color: rgb(123, 28, 33);--loading-bg-color: hsla(0, 0%, 100%, .4);--loading-fore-color: rgba(0, 0, 0, .2);--border-radius: 2px;--text-indent: 4px;--line-height: 24px;--font-size: .8125rem;--font-smaller-size: .75rem;--font-larger-size: .875rem;--font-family: "Franklin Gothic Book", "San Francisco", "Segoe UI", "Open Sans", "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei UI", sans-serif}@media (prefers-color-scheme: dark){:root{--color: rgba(255, 255, 255,.87);--bg-color: #141414;--border-color: #464646;--focus-border-color: #999;--shadow-color: rgba(128, 128, 128,.08);--disabled-color: #555;--disabled-bg-color: #161616;--disabled-border-color: #262626;--red-color: #c80000;--title-color: #ddd;--title-bg-color: rgb(40, 89, 173);--hover-bg-color: #222;--link-color: #0177e6;--primary-color: rgb(123, 28, 33);--loading-bg-color: rgba(20, 20, 20,.4);--loading-fore-color: rgba(255, 255, 255,.2)}}.ui-text,.ui-input[type]{font-size:var(--font-size);font-family:var(--font-family);border:1px solid var(--border-color);border-radius:var(--border-radius);transition:border-color .12s ease}.ui-text:focus,.ui-text:focus-visible,.ui-input[type]:focus,.ui-input[type]:focus-visible{outline:none}.ui-text:focus,.ui-text:hover,.ui-input[type]:focus,.ui-input[type]:hover{border-color:var(--focus-border-color)}.ui-text:disabled,.ui-input[type]:disabled{border-color:var(--disabled-border-color);color:var(--disabled-color);background-color:var(--disabled-bg-color)}.ui-input{text-indent:var(--text-indent);line-height:var(--line-height)}.ui-check-image-wrapper>input[type=checkbox]{display:none}.ui-check-image-wrapper>input[type=checkbox]:checked~.checked{display:inline}.ui-check-image-wrapper>input[type=checkbox]:checked~.unchecked{display:none}.ui-check-image-wrapper>.checked{display:none}.ui-check-image-wrapper>.unchecked{display:inline}.ui-check-wrapper{display:inline-flex;align-items:center;padding:0 8px;height:36px}.ui-check-wrapper .ui-check-inner{position:relative;display:inline-block;padding:0;width:14px;height:14px;background-color:#fff;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;border:1px solid var(--border-color);border-radius:var(--border-radius);transition:border-color .12s ease}.ui-check-wrapper .ui-check-inner:focus,.ui-check-wrapper .ui-check-inner:focus-visible{outline:none}.ui-check-wrapper .ui-check-inner:focus,.ui-check-wrapper .ui-check-inner:hover{border-color:var(--focus-border-color)}.ui-check-wrapper .ui-check-inner:disabled{border-color:var(--disabled-border-color);color:var(--disabled-color);background-color:var(--disabled-bg-color)}.ui-check-wrapper .ui-check-inner>svg{position:absolute;top:0;left:0;width:100%;height:100%;fill:#fff;-webkit-transform:scale(0);transform:scale(0);opacity:0;transition:all .08s cubic-bezier(.78,.14,.15,.86)}.ui-check-wrapper.ui-radio-wrapper .ui-check-inner{box-sizing:border-box;border-radius:8px;width:16px;height:16px}.ui-check-wrapper>input[type=checkbox],.ui-check-wrapper>input[type=radio]{display:none}.ui-check-wrapper>input[type=checkbox]:checked+.ui-check-inner,.ui-check-wrapper>input[type=radio]:checked+.ui-check-inner{border-color:var(--link-color);background-color:var(--link-color)}.ui-check-wrapper>input[type=checkbox]:checked+.ui-check-inner>svg,.ui-check-wrapper>input[type=radio]:checked+.ui-check-inner>svg{-webkit-transform:scale(1);transform:scale(1);opacity:1}.ui-check-wrapper>input[type=checkbox]:disabled:checked+.ui-check-inner,.ui-check-wrapper>input[type=radio]:disabled:checked+.ui-check-inner{border-color:var(--disabled-border-color);background-color:var(--disabled-border-color)}.ui-check-wrapper>input[type=checkbox]:disabled+.ui-check-inner,.ui-check-wrapper>input[type=radio]:disabled+.ui-check-inner{border-color:var(--disabled-border-color);background-color:var(--disabled-bg-color);cursor:default}.ui-check-wrapper>input[type=checkbox]:disabled~span,.ui-check-wrapper>input[type=radio]:disabled~span{color:var(--disabled-border-color);cursor:default}.ui-check-wrapper .ui-check-inner{flex:0 0 auto}.ui-check-wrapper .ui-check-inner+*{flex:1 1 auto;font-weight:400;font-size:var(--font-size);padding-left:8px;padding-right:6px;align-self:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color)}.ui-tooltip-color{background-color:#fff;colorLine truncated
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
(function(k,T){typeof exports=="object"&&typeof module<"u"?T(exports):typeof define=="function"&&define.amd?define(["exports"],T):(k=typeof globalThis<"u"?globalThis:k||self,T(k["lib-ui"]={}))})(this,function(k){var N,j,H,z,K,we,Pe,ce,de,ue,Qe,ke,kt,Ce,Ct,ze,Rt,Ve,Ht,We,Ot,Me,$t,B,O,Le,M,b,Ee,Te,D,U,he,fe,se,G,Se,pe,Ne,A,De,Ae,Lt,ct,ii,dt,si,ut,ni,ye,Ze,ht,li,ft,ri,Fe,Pt,V,Y,ne,_e,ge,et,je,zt,Be,Vt,Xe,Wt,me,tt,pt,oi,Ye,Mt,Ke,Dt,yt,ai,gt,ci,mt,di,bt,ui,vt,hi,xt,fi,wt,pi,Ue,Ft,Ge,jt,Ie,Et,J,R,Q,X,te;"use strict";var Ri=Object.defineProperty;var Hi=Object.getPrototypeOf;var Oi=Reflect.get;var $i=(k,T,S)=>T in k?Ri(k,T,{enumerable:!0,configurable:!0,writable:!0,value:S}):k[T]=S;var E=(k,T,S)=>($i(k,typeof T!="symbol"?T+"":T,S),S),qt=(k,T,S)=>{if(!T.has(k))throw TypeError("Cannot "+S)};var o=(k,T,S)=>(qt(k,T,"read from private field"),S?S.call(k):T.get(k)),m=(k,T,S)=>{if(T.has(k))throw TypeError("Cannot add the same private member more than once");T instanceof WeakSet?T.add(k):T.set(k,S)},x=(k,T,S,f)=>(qt(k,T,"write to private field"),f?f.call(k,S):T.set(k,S),S);var p=(k,T,S)=>(qt(k,T,"access private method"),S),ti=(k,T,S)=>Oi(Hi(k),S,T);const T="",S="";function f(d,e,...t){const s=document.createElement(d);return typeof e=="function"?e(s):e!=null&&(s.className=e),t.length>0&&s.append(...t),s}const Bt="http://www.w3.org/2000/svg";function Tt(d,e){const t=typeof consts<"u"?consts:{},s=t.path||"",n=t.resver==null?"":`?${t.resver}`,r=document.createElementNS(Bt,"use");return r.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",`${s}fonts/${d}.svg${n}#${e}`),r}function qe(d,e,t){return d instanceof SVGElement&&d.replaceChildren(Tt(e,t)),d}function W(d,e,t){const s=document.createElementNS(Bt,"svg");if(s.appendChild(Tt(d,e)),t!=null)for(let n of Object.entries(t))s.style.setProperty(n[0],n[1]);return s}function yi(d){const e=d.querySelectorAll("svg[data-id]");for(let t of e){const s=t.dataset.type,n=t.dataset.id;t.replaceChildren(Tt(s,n)),t.removeAttribute("data-type"),t.removeAttribute("data-id")}return d}const Pi="";function it(d,e="fa-regular",t,s=-1,n="check"){d.appendChild(f("layer",r=>{r.className="ui-check-inner",r.addEventListener("keypress",i=>{if(i.key===" "||i.key==="Enter"){const l=d.querySelector("input");l!=null&&(l.checked=!l.checked,l.dispatchEvent(new Event("change")))}}),s>=0&&(r.tabIndex=s)},W(e,n))),t instanceof Element?d.appendChild(t):(t==null?void 0:t.length)>0&&d.appendChild(f("span",r=>r.innerText=t))}function gi(d={}){const e=f("label","ui-check-wrapper ui-radio-wrapper",f("input",t=>{if(t.setAttribute("type","radio"),t.name=d.name,d.checked===!0&&(t.checked=!0),d.enabled===!1&&(t.disabled=!0),d.customerAttributes!=null)for(let s of Object.entries(d.customerAttributes))t.setAttribute(s[0],s[1]);typeof d.onchange=="function"&&t.addEventListener("change",d.onchange)}));return d.className&&e.classList.add(d.className),it(e,d.type,d.label,d.tabIndex,"circle"),e}function le(d={}){const e=f("label","ui-check-wrapper",f("input",t=>{if(t.setAttribute("type","checkbox"),d.checked===!0&&(t.checked=!0),d.enabled===!1&&(t.disabled=!0),d.customerAttributes!=null)for(let s of Object.entries(d.customerAttributes))t.setAttribute(s[0],s[1]);typeof d.onchange=="function"&&t.addEventListener("change",d.onchange)}));return d.className&&e.classList.add(d.className),d.enabled===!1&&e.classList.add("disabled"),d.checkedNode!=null&&d.uncheckedNode!=null?(e.classList.add("ui-check-image-wrapper"),d.imageHeight,d.checkedNode.classList.add("checked"),e.appendChild(d.checkedNode),d.uncheckedNode.classList.add("unchecked"),e.appendChild(d.uncheckedNode)):it(e,d.type,d.label,d.tabIndex),e}function mi(d=document.body,e){if(e){const s=d.querySelectorAll('input[type="checkbox"]');for(let n of s){if(n.parentElement.classList.contains("ui-check-wrapper"))continue;const r=n.id;let i,l;if(r!=null&&(i=d.querySelector(`label[for="${r}"]`)),i==null){const a=n.nextElementSibling;a!=null&&(a.tagName==="LABEL"?i=a:a.tagName==="SPAN"&&a.dataset.lgid!=null&&(l=a.innerText,a.style.display="none"))}if(i==null){const a=n.previousElementSibling;a!=null&&(a.tagName==="LABEL"?i=a:l==null&&a.tagName==="SPAN"&&a.dataset.lgid!=null&&(l=a.innerText,a.style.display="none"))}i==null?(i=f("label"),n.parentElement.insertBefore(i,n)):l=i.innerText,n.disabled?i.className="ui-check-wrapper disabled":i.className="ui-check-wrapper",i.replaceChildren(),it(i,"fa-regular",l,n.tabIndex),i.insertBefore(n,i.firstChild)}}const t=d.querySelectorAll("label[data-checkbox]");for(let s of t){s.classList.contains("ui-check-wrapper")||s.classList.add("ui-check-wrapper"),s.hasChildNodes()?s.classList.contains("ui-check-image-wrapper")||s.classList.add("ui-check-image-wrapper"):(it(s,s.dataset.type,s.dataset.label,s.dataset.tabIndex),s.removeAttribute("data-type"),s.removeAttribute("data-label"));const n=f("input"),r=s.dataset.id;(r==null?void 0:r.length)>0&&(n.id=r),s.dataset.checked!=null&&(n.checked=!0),n.setAttribute("type","checkbox"),s.insertBefore(n,s.fiLine truncated
|
||||
`).length;e.style.height=`${i*r.lineHeight+12}px`}}}const Ei=Symbol.for("ui-dropdown"),_t=class extends ie{static createEdit(e,t,s){const n=new st({...t.dropOptions,parent:s});return n.onselected=e,n.create()}static setValue(e,t,s,n){if(e.tagName!=="DIV"){let i=p(this,We,Ot).call(this,s,n);i instanceof Promise?i.then(l=>p(this,Me,$t).call(this,l,e,t)):p(this,Me,$t).call(this,i,e,t);return}const r=p(this,Ve,Ht).call(this,e);if(r!=null){if(r.source==null||r.source.length===0){let i=p(this,We,Ot).call(this,s,n);if(i instanceof Promise){i.then(l=>{r.source=l,r.select(t,!0)});return}else i!=null&&(r.source=i)}r.select(t,!0)}}static getValue(e){return e.value}static setEnabled(e,t){const s=p(this,Ve,Ht).call(this,e);s!=null&&(s.disabled=t===!1)}};let xe=_t;Ve=new WeakSet,Ht=function(e){const t=oe[Ei];if(t==null)return null;const s=e.dataset.dropId,n=t[s];return n??null},We=new WeakSet,Ot=function(e,t){let s=t.source;return typeof s=="function"&&(s=s(e)),s},Me=new WeakSet,$t=function(e,t,s){const n=e==null?void 0:e.find(r=>r.value===s);n!=null&&(s=n.text),ti(_t,this,"setValue").call(this,t,s)},m(xe,Ve),m(xe,We),m(xe,Me);class At extends ie{static createEdit(e){return le({onchange:typeof e=="function"?e:null})}static setValue(e,t){e.querySelector("input").checked=t}static getValue(e){return e.target.checked}static setEnabled(e,t){e.querySelector("input").disabled=t===!1}}class Ti extends ie{static create(){return f("span","col-icon")}static setValue(e,t,s,n,r){let i=n.className;typeof i=="function"&&(i=i.call(n,s)),i==null?e.className="col-icon":e.className=`col-icon ${i}`;let l=n.iconType;if(typeof l=="function"&&(l=l.call(n,s)),l??(l="fa-regular"),e.dataset.type!==l||e.dataset.icon!==t){const a=W(l,t);e.replaceChildren(a),!re(n.tooltip)&&St(e,n.tooltip,!1,r.element),e.dataset.type=l,e.dataset.icon=t}}static setEnabled(e,t){t===!1?e.classList.add("disabled"):e.classList.remove("disabled");const s=e.querySelector(".ui-tooltip-wrapper");s!=null&&(s.style.display=t===!1?"none":"")}}const nt={Reorder:"reorder",Resize:"resize",Sort:"sort"},lt=xi()?32:0,Si=200,Ut=4,Gt=4,He=50,Jt=200;function rt(d){var t;return d==null?null:(d.touches&&((t=d.touches[0])==null?void 0:t.clientX))??d.clientX}function Ni(d){let e=0;for(;d!=null;)e+=d.offsetLeft,d=d.offsetParent;return e}function Oe(d){return Array.prototype.indexOf.call(d.parentElement.children,d)}const Ai={0:ie,1:Kt,2:xe,3:At,4:Ti,5:Li},Je=class{constructor(e){m(this,Ae);m(this,ct);m(this,dt);m(this,ut);m(this,ye);m(this,ht);m(this,ft);m(this,Fe);m(this,V);m(this,ne);m(this,ge);m(this,je);m(this,Be);m(this,Xe);m(this,me);m(this,pt);m(this,Ye);m(this,Ke);m(this,yt);m(this,gt);m(this,mt);m(this,bt);m(this,vt);m(this,xt);m(this,wt);m(this,Ue);m(this,Ge);m(this,Ie);m(this,B,void 0);m(this,O,void 0);m(this,Le,void 0);m(this,M,void 0);m(this,b,void 0);m(this,Ee,void 0);m(this,Te,-1);m(this,D,void 0);m(this,U,0);m(this,he,void 0);m(this,fe,void 0);m(this,se,void 0);m(this,G,-1);m(this,Se,void 0);m(this,pe,void 0);m(this,Ne,{});m(this,A,{});m(this,De,[]);E(this,"columns",[]);E(this,"langs",{all:F("allItem","( All )"),ok:F("ok","OK"),reset:F("reset","Reset")});E(this,"virtualCount",100);E(this,"rowHeight",36);E(this,"lineHeight",24);E(this,"extraRows",0);E(this,"filterRowHeight",30);E(this,"height");E(this,"readonly");E(this,"multiSelect",!1);E(this,"fullrowClick",!0);E(this,"allowHtml",!1);E(this,"holderDisabled",!1);E(this,"headerVisible",!0);E(this,"window",oe);E(this,"sortIndex",-1);E(this,"sortDirection",1);E(this,"willSelect");E(this,"selectedRowChanged");E(this,"cellDblClicked");E(this,"cellClicked");E(this,"rowDblClicked");E(this,"columnChanged");x(this,Le,e)}get element(){return o(this,M)}get source(){var e;return(e=o(this,B))==null?void 0:e.map(t=>t.values)}set source(e){if(o(this,M)==null)throw new Error("grid has not been initialized.");if(!Array.isArray(e))throw new Error("source is not an Array.");e=e.map(t=>({values:t})),x(this,B,e),p(this,Ae,Lt).call(this,e)}get virtual(){var e;return((e=o(this,O))==null?void 0:e.length)>this.virtualCount}get sortKey(){var e;return this.columns==null?null:(e=this.columns[this.sortIndex])==null?void 0:e.key}get selectedIndexes(){return o(this,D)}set selectedIndexes(e){const t=o(this,U);o(this,D).splice(0,o(this,D).length,...e),this.readonly!==!0?this.refresh():[...o(this,b).bodyContent.children].forEach((s,n)=>{e.indexOf(t+n)>=0?s.classList.add("selected"):s.classList.contains("selected")&&s.classList.remove("selected")}),typeof this.selectedRowChanged=="function"&&this.selectedRowChanged()}get selectedIndex(){return(o(this,D)&&o(this,D)[0])??-1}get loading(){var e,t;return((t=(e=o(this,b).loading)==null?void 0:e.style)==null?void 0:t.visibility)==="visible"}set loading(e){o(this,b).loading!=null&&(e===!1?(o(this,b).loading.style.visibility="hidden",o(this,b).loading.style.opacity=0):(o(this,b).loading.style.visibility="visible",o(this,b).loading.style.opacity=1))}get scrollTop(){var e;return(e=o(this,b).body)==null?void 0:e.scrollTo
Line truncated
|
||||
//# sourceMappingURL=ui.min.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ui.min.js","sources":["../lib/functions.js","../lib/ui/icon.js","../lib/ui/checkbox.js","../lib/ui/tooltip.js","../lib/utility/strings.js","../lib/utility/lgres.js","../lib/utility.js","../lib/ui/dropdown.js","../lib/ui/grid/column.js","../lib/ui/grid/grid.js","../lib/ui/popup.js"],"sourcesContent":["export function createElement(tagName, init, ...children) {\r\n const element = document.createElement(tagName);\r\n if (typeof init === 'function') {\r\n init(element);\r\n } else if (init != null) {\r\n element.className = init;\r\n }\r\n if (children.length > 0) {\r\n element.append(...children);\r\n }\r\n return element;\r\n}\r\n","const svgns = 'http://www.w3.org/2000/svg';\r\n\r\nfunction createUse(type, id) {\r\n const c = typeof consts !== 'undefined' ? consts : {};\r\n const path = c.path || '';\r\n const ver = c.resver == null ? '' : `?${c.resver}`;\r\n const use = document.createElementNS(svgns, 'use');\r\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', `${path}fonts/${type}.svg${ver}#${id}`);\r\n return use;\r\n}\r\n\r\nfunction changeIcon(svg, type, id) {\r\n if (svg instanceof SVGElement) {\r\n svg.replaceChildren(createUse(type, id));\r\n }\r\n return svg;\r\n}\r\n\r\nfunction createIcon(type, id, style) {\r\n const svg = document.createElementNS(svgns, 'svg');\r\n svg.appendChild(createUse(type, id));\r\n if (style != null) {\r\n for (let css of Object.entries(style)) {\r\n svg.style.setProperty(css[0], css[1]);\r\n }\r\n }\r\n return svg;\r\n}\r\n\r\nfunction resolveIcon(container) {\r\n const svgs = container.querySelectorAll('svg[data-id]');\r\n for (let icon of svgs) {\r\n const type = icon.dataset.type;\r\n const id = icon.dataset.id;\r\n icon.replaceChildren(createUse(type, id));\r\n icon.removeAttribute('data-type');\r\n icon.removeAttribute('data-id');\r\n }\r\n return container;\r\n}\r\n\r\nexport {\r\n createIcon,\r\n changeIcon,\r\n resolveIcon\r\n}","import './css/checkbox.scss';\r\nimport { createElement } from \"../functions\";\r\nimport { createIcon } from \"./icon\";\r\n\r\nfunction fillCheckbox(container, type = 'fa-regular', label, tabindex = -1, charactor = 'check') {\r\n container.appendChild(\r\n createElement('layer', layer => {\r\n layer.className = 'ui-check-inner';\r\n layer.addEventListener('keypress', e => {\r\n if (e.key === ' ' || e.key === 'Enter') {\r\n const input = container.querySelector('input');\r\n if (input != null) {\r\n input.checked = !input.checked;\r\n input.dispatchEvent(new Event('change'));\r\n }\r\n }\r\n });\r\n if (tabindex >= 0) {\r\n layer.tabIndex = tabindex;\r\n }\r\n }, createIcon(type, charactor))\r\n );\r\n if (label instanceof Element) {\r\n container.appendChild(label);\r\n } else if (label?.length > 0) {\r\n container.appendChild(\r\n createElement('span', span => span.innerText = label)\r\n );\r\n }\r\n}\r\n\r\nfunction createRadiobox(opts = {}) {\r\n const container = createElement('label', 'ui-check-wrapper ui-radio-wrapper',\r\n createElement('input', input => {\r\n input.setAttribute('type', 'radio');\r\n input.name = opts.name;\r\n if (opts.checked === true) {\r\n input.checked = true;\r\n }\r\n if (opts.enabled === false) {\r\n input.disabled = true;\r\n }\r\n if (opts.customerAttributes != null) {\r\n for (let entry of Object.entries(opts.customerAttributes)) {\r\n input.setAttribute(entry[0], entry[1]);\r\n }\r\n }\r\n if (typeof opts.onchange === 'function') {\r\n input.addEventListener('change', opts.onchange);\r\n }\r\n }));\r\n if (opts.className) {\r\n container.classList.add(opts.className);\r\n }\r\n fillCheckbox(container, opts.type, opts.label, opts.tabIndex, 'circle');\r\n return container;\r\n}\r\n\r\nfunction createCheckbox(opts = {}) {\r\n const container = createElement('label', 'ui-check-wrapper',\r\n createElement('input', input => {\r\n input.setAttribute('type', 'checkbox');\r\n if (opts.checked === true) {\r\n input.checked = true;\r\n }\r\n if (opts.enabled === false) {\r\n input.disabled = true;\r\n }\r\n if (opts.customerAttributes != null) {\r\n for (let entry of Object.entries(opts.customerAttributes)) {\r\n input.setAttribute(entry[0], entry[1]);\r\n Line truncated
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
(function(i,c){typeof exports=="object"&&typeof module<"u"?c(exports):typeof define=="function"&&define.amd?define(["exports"],c):(i=typeof globalThis<"u"?globalThis:i||self,c(i["lib-utility"]={}))})(this,function(i){"use strict";function c(e,t,n){if(e==null)return;let r=`; domain=${location.host}; path=/`;if(n!=null){const l=new Date;l.setTime(l.getTime()+n*24*60*60*1e3),r+=`; expires=${l.toGMTString()}`}/^(https|wss):$/.test(location.protocol)&&(r+="; secure"),document.cookie=`${e}=${encodeURIComponent(t)}${r}`}function f(e){if(e==null)return null;e+="=";const t=document.cookie.split(";");for(let n of t)if(n=n.trim(),n.indexOf(e)===0)return decodeURIComponent(n.substring(e.length));return null}function $(e){c(e,"",-1)}function d(e){return/^(https?|wss?|ftp):/.test(e)||typeof consts>"u"?e:(consts.path||"")+e}function w(e,t={}){return fetch(d(e),{method:t.method||"GET",headers:{...t.customerHeaders,Accept:t.accept||"application/json"},signal:t.signal,cache:"default"})}function A(e,t,n={}){return t instanceof FormData||(typeof t!="string"&&(t=JSON.stringify(t)),n.customerHeaders==null&&(n.customerHeaders={}),n.customerHeaders["Content-Type"]==null&&(n.customerHeaders["Content-Type"]="application/json")),fetch(d(e),{method:n.method||"POST",headers:n.customerHeaders,body:t,signal:n.signal,cache:"no-cache"})}function O(e,t,n={}){return new Promise((r,l)=>{const a=new XMLHttpRequest;if(a.onreadystatechange=function(){this.readyState===XMLHttpRequest.DONE&&(this.status===200?r(this):l(`${this.status} ${this.statusText}: ${this.responseText}`))},typeof n.progress=="function"&&a.upload.addEventListener("progress",function(u){u.lengthComputable&&n.progress.call(this,u)},!1),a.open("POST",d(e)),n.customerHeaders!=null)for(let u of Object.entries(n.customerHeaders))a.setRequestHeader(u[0],u[1]);a.send(t)})}function o(e){return e==null||typeof e!="string"||e.length===0}function C(e,t,n){return o(e)||t==null?!1:(typeof t!="string"&&(t=String(t)),n?e.toLowerCase().indexOf(t.toLowerCase())>=0:e.indexOf(t)>=0)}function L(e,t){return o(e)||o(t)?!1:e.indexOf(t)===e.length-t.length}function N(e,t,n){return o(e)||isNaN(t)||t<=e.length?e:(n??" ").repeat(t-e.length)}function H(e){const t=/(http|ftp|https):\/\/.+?(\s|\r\n|\r|\n|\"|\'|\*|$)/g,n=e.match(t);if(e=m(e),(n==null?void 0:n.length)>0){const r=[];for(let l of n)l=l.replace(/["'\r\n ]/g,""),r.indexOf(l)<0&&r.push(l);for(let l of r)e=e.replaceAll(l,'<a target="_blank" href="'+l+'"><svg><use xlink:href="'+(typeof consts<"u"&&consts.path||"")+'fonts/fa-regular.svg#link"></use></svg></a>')}return e}function m(e){return e==null?"":String(e).replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll(`\r
|
||||
`,"<br/>").replaceAll(`
|
||||
`,"<br/>").replaceAll(" "," ")}let g;function h(){var n,r;let e;switch(typeof consts<"u"&&(e=f((n=consts.cookie)==null?void 0:n.lang),o(e)&&(e=(r=consts.user)==null?void 0:r.language)),o(e)&&(e=f("lgid")),o(e)&&(e=navigator.language||"en-us"),e=e.toLowerCase().replace(/-/g,"_"),o(e)&&(e="en"),e){case"en":case"en_au":case"fr":case"zh_cn":return e}const t=e.split("_")[0];switch(t){case"en":case"fr":return t}return"en"}function T(e){return typeof consts<"u"?(consts.prefix||"")+`res_${e}`:`res_${e}`}async function v(e=""){const t=h(),r=await(await w(`language/${t}${e}`)).json();return localStorage.setItem(T(t),JSON.stringify(r)),r}async function p(e,t){(t==null||typeof consts>"u")&&(t=await v(e));const n=Number(consts.resver);return(isNaN(t.ver)||isNaN(n)||n>t.ver)&&(console.log(`found new language res version: ${t.ver} => ${n}`),t=await v(e)),Object.defineProperty(t,"r",{writable:!1,configurable:!1,enumerable:!1,value:function(r,l){return s(this,r,l)}}),g=t,t}function s(e,t,n){return e[t]??n}function S(e,t){for(let n of e.querySelectorAll("[data-lgid]")){const r=n.dataset.lgid;n.tagName==="INPUT"?n.value=s(t,r,n.value):n.innerText=s(t,r,n.innerText)}for(let n of e.querySelectorAll("[data-title-lgid]")){const r=n.dataset.titleLgid;n.setAttribute("title",s(t,r,n.getAttribute("title")))}for(let n of e.querySelectorAll("[data-placeholder-lgid]")){const r=n.dataset.placeholderLgid;n.setAttribute("placeholder",s(t,r,n.getAttribute("placeholder")))}}async function P(e=document.body,t={}){const n=h();let r=localStorage.getItem(T(n)),l;if(r!=null)try{r=JSON.parse(r),l=await p(t.template,r)}catch(a){console.error("error while parsing lgres, try refresh ...",a),l=await p(t.template)}else l=await p(t.template);try{return document.readyState==="loading"?await new Promise((a,u)=>{let k=setTimeout(()=>u("timeout"),3e4);document.addEventListener("DOMContentLoaded",()=>{clearTimeout(k),k=void 0,typeof t.callback=="function"&&t.callback(l),S(e,l),a(l)})}):(typeof t.callback=="function"&&t.callback(l),S(e,l),l)}catch(a){console.error("error while loading language res ...",a)}}function y(e,t){return g!=null?s(g,e,t):t}const E={get current(){return h()},get unknownError(){return y("unknownError","An unknown error occurred, please contact the administrator.")},get savedSuccessfully(){return y("savedSuccessfully","Saved successfully.")}};let b=typeof globalThis<"u"?globalThis:self;function M(e){return!isNaN(e)&&e>0}function j(){return/mobile/i.test(navigator.userAgent)}function q(e,t=100,n=b,...r){if(e==null)return;e.tiid&&clearTimeout(e.tiid);const l=new Date;e.tdate==null||l-e.tdate>t?(e.apply(n,r),e.tdate=l):e.tiid=setTimeout(()=>e.apply(n,r),t)}function _(e,t=100,n=b,...r){e!=null&&(e.tiid&&clearTimeout(e.tiid),e.tiid=setTimeout(()=>e.apply(n,r),t))}function I(e){return(e>0?Math.floor:Math.ceil)(e)}function R(e){return/^\w[-\w.+]*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(e)}function U(e){return/^[1-9]\d{9,}$/.test(e)}i.contains=C,i.debounce=_,i.deleteCookie=$,i.endsWith=L,i.escapeHtml=m,i.formatUrl=H,i.get=w,i.getCookie=f,i.global=b,i.init=P,i.isEmail=R,i.isMobile=j,i.isPhone=U,i.isPositive=M,i.lang=E,i.nullOrEmpty=o,i.padStart=N,i.post=A,i.r=y,i.setCookie=c,i.throttle=q,i.truncate=I,i.upload=O,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
|
||||
//# sourceMappingURL=utility.min.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"utility.min.js","sources":["../lib/utility/cookie.js","../lib/utility/request.js","../lib/utility/strings.js","../lib/utility/lgres.js","../lib/utility.js"],"sourcesContent":["function setCookie(name, value, expireDays) {\r\n if (name == null) {\r\n return;\r\n }\r\n let extra = `; domain=${location.host}; path=/`;\r\n if (expireDays != null) {\r\n const d = new Date();\r\n d.setTime(d.getTime() + (expireDays * 24 * 60 * 60 * 1000));\r\n extra += `; expires=${d.toGMTString()}`;\r\n }\r\n if (/^(https|wss):$/.test(location.protocol)) {\r\n extra += '; secure';\r\n }\r\n document.cookie = `${name}=${encodeURIComponent(value)}${extra}`;\r\n}\r\n\r\nfunction getCookie(name) {\r\n if (name == null) {\r\n return null;\r\n }\r\n name += '=';\r\n const cookies = document.cookie.split(';');\r\n for (let cookie of cookies) {\r\n cookie = cookie.trim();\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length));\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction deleteCookie(name) {\r\n setCookie(name, '', -1);\r\n}\r\n\r\nexport {\r\n getCookie,\r\n setCookie,\r\n deleteCookie\r\n}","function combineUrl(url) {\r\n if (/^(https?|wss?|ftp):/.test(url)) {\r\n return url;\r\n }\r\n if (typeof consts === 'undefined') {\r\n return url;\r\n }\r\n return (consts.path || '') + url;\r\n}\r\n\r\nfunction get(url, options = {}) {\r\n return fetch(combineUrl(url), {\r\n method: options.method || 'GET',\r\n headers: {\r\n ...options.customerHeaders,\r\n 'Accept': options.accept || 'application/json'\r\n },\r\n signal: options.signal,\r\n cache: 'default'\r\n });\r\n}\r\n\r\nfunction post(url, data, options = {}) {\r\n // let contentType;\r\n if (data instanceof FormData) {\r\n // contentType = 'multipart/form-data';\r\n } else {\r\n if (typeof data !== 'string') {\r\n data = JSON.stringify(data);\r\n }\r\n // contentType = 'application/json';\r\n if (options.customerHeaders == null) {\r\n options.customerHeaders = {};\r\n }\r\n if (options.customerHeaders['Content-Type'] == null) {\r\n options.customerHeaders['Content-Type'] = 'application/json';\r\n }\r\n }\r\n return fetch(combineUrl(url), {\r\n method: options.method || 'POST',\r\n headers: options.customerHeaders,\r\n body: data,\r\n signal: options.signal,\r\n cache: 'no-cache'\r\n });\r\n}\r\n\r\nfunction upload(url, data, options = {}) {\r\n return new Promise((resolve, reject) => {\r\n const request = new XMLHttpRequest();\r\n request.onreadystatechange = function () {\r\n if (this.readyState === XMLHttpRequest.DONE) {\r\n if (this.status === 200) {\r\n resolve(this);\r\n } else {\r\n reject(`${this.status} ${this.statusText}: ${this.responseText}`);\r\n }\r\n }\r\n };\r\n if (typeof options.progress === 'function') {\r\n request.upload.addEventListener('progress', function (ev) {\r\n if (ev.lengthComputable) {\r\n options.progress.call(this, ev);\r\n }\r\n }, false);\r\n }\r\n request.open('POST', combineUrl(url));\r\n if (options.customerHeaders != null) {\r\n for (let header of Object.entries(options.customerHeaders)) {\r\n request.setRequestHeader(header[0], header[1]);\r\n }\r\n }\r\n request.send(data);\r\n });\r\n}\r\n\r\nexport {\r\n get,\r\n post,\r\n upload\r\n}","function nullOrEmpty(s) {\r\n return s == null || typeof s !== 'string' || s.length === 0;\r\n}\r\n\r\nfunction contains(s, key, ignoreCase) {\r\n if (nullOrEmpty(s) || key == null) {\r\n return false;\r\n }\r\n if (typeof key !== 'string') {\r\n key = String(key);\r\n }\r\n if (ignoreCase) {\r\n return s.toLowerCase().indexOf(key.toLowerCase()) >= 0;\r\n }\r\n return s.indexOf(key) >= 0;\r\n}\r\n\r\nfunction endsWith(s, suffix) {\r\n if (nullOrEmpty(s) || nullOrEmpty(suffix)) {\r\n return false;\r\n }\r\n return s.indexOf(suffix) === s.length - suffix.length;\r\n}\r\n\r\nfunction padStart(s, num, char) {\r\n if (nullOrEmpty(s) || isNaN(num) || num <= s.length) {\r\n return s;\r\n }\r\n return (char ?? ' ').repeat(num - s.length);\r\n}\r\n\r\nfunction formatUrl(msg) {\r\n //const urlReg = /(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w \\.-]*)*\\/?/ig;\r\n //const urlArrray = str.match(urlReg);\r\n const p = /(http|ftp|https):\\/\\/.+?(\\s|\\r\\n|\\r|\\n|\\\"|\\'|\\*|$)/g;\r\n const r = msg.match(p);\rLine truncated
|
||||
@@ -0,0 +1,416 @@
|
||||
var ALL_TEXT = "(All)";
|
||||
var ALL_VALUE = "@all";
|
||||
|
||||
$(function () {
|
||||
// global event
|
||||
}());
|
||||
|
||||
function showMapAlertLayer(data) {
|
||||
var opt = $('<option></option>').val("").text("(None)");
|
||||
var sel = $("#selMapAlertLayer");
|
||||
sel.empty();
|
||||
sel.append(opt);
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var mal = data[i];
|
||||
opt = $('<option></option>').val(mal.ID).text(mal.Name).data("mal", mal);
|
||||
sel.append(opt);
|
||||
}
|
||||
if (userParams && userParams.MapAlertLayer) {
|
||||
sel.val(userParams.MapAlertLayer);
|
||||
}
|
||||
showMapAlertLayerDetail();
|
||||
}
|
||||
|
||||
function showMapAlertLayerDetail() {
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
var tb = $("#tbLegend");
|
||||
tb.empty();
|
||||
var haspramameter = false;
|
||||
if (mal && mal.Layers) {
|
||||
//var tr = $("<tr></tr>");
|
||||
//tb.append(tr);
|
||||
//var td = $("<td class='mapalertlayertitle'></td>").html("Icon Definition").css("width", 100);
|
||||
//tr.append(td);
|
||||
//td = $("<td class='mapalertlayertitle'></td>").html("Alert Title").css("width", 150);
|
||||
//tr.append(td);
|
||||
for (var i = 0; i < mal.Layers.length; i++) {
|
||||
var layer = mal.Layers[i];
|
||||
if ((layer.CriteriaSQLParameters && layer.CriteriaSQLParameters.length > 0)
|
||||
|| (layer.AlertSQLParameters && layer.AlertSQLParameters.length > 0))
|
||||
haspramameter = true;
|
||||
|
||||
var tr = $("<tr style='border-bottom: 1px solid lightgray;'></tr>");
|
||||
tb.append(tr);
|
||||
|
||||
if (layer.IconColor.length == 9)
|
||||
layer.IconColor = "#" + layer.IconColor.substring(3);
|
||||
var td = $("<td></td>").css("width", 30);
|
||||
td.append($("<img></img>").attr("src", layer.LegendUrl).css({ "width": 18, "vertical-align": "middle" }));
|
||||
//td.append($("<div></div>").css({ "background-color": layer.IconColor, "width": 24, "height": 16 }));
|
||||
tr.append(td);
|
||||
|
||||
td = $("<td></td>").html(layer.Title).css({ "padding-left": 10, "width": 220 });
|
||||
tr.append(td);
|
||||
}
|
||||
}
|
||||
|
||||
var staticlegend = ["InMotion", "StoppedOn", "StoppedOff", "CGain", "CLoss"];
|
||||
var staticlegendtitle = ["In Motion", "Stopped On", "Stopped Off", "Connectivity Recovery", "Connectivity Loss"];
|
||||
for (var i = 0; i < staticlegend.length; i++) {
|
||||
var tr = $("<tr style='border-bottom: 1px solid lightgray;'></tr>");
|
||||
tb.append(tr);
|
||||
|
||||
var url = userParams.MachineIconURL + "?legend=" + staticlegend[i];
|
||||
var td = $("<td></td>").css("width", 30);
|
||||
td.append($("<img></img>").attr("src", url).css({ "width": 18, "vertical-align": "middle" }));
|
||||
tr.append(td);
|
||||
|
||||
td = $("<td></td>").html(staticlegendtitle[i]).css({ "padding-left": 10, "width": 220 });
|
||||
tr.append(td);
|
||||
}
|
||||
|
||||
var harshdrivinglegend = ["#ff3f48cc", "#ff00a8f3", "#fffff200", "#ffff7f27", "#ffec1c24"];
|
||||
var harshdrivingtitle = ["Hard Acceleration", "Hard Brake", "Hard Turn", "Speeding: Low Severity", "Speeding: High Severity"];
|
||||
for (var i = 0; i < harshdrivinglegend.length; i++) {
|
||||
var tr = $("<tr style='border-bottom: 1px solid lightgray;'></tr>");
|
||||
tb.append(tr);
|
||||
|
||||
var ironurl = userParams.MachineIconURL.toLowerCase().replace("machinetypeicon.ashx", "machinemovingicon.ashx");
|
||||
var url = ironurl + "?tp=0&bkcolor=" + encodeURIComponent(harshdrivinglegend[i]) + "&heading=45";
|
||||
var td = $("<td></td>").css("width", 30);
|
||||
td.append($("<img></img>").attr("src", url).css({ "width": 18, "vertical-align": "middle" }));
|
||||
tr.append(td);
|
||||
|
||||
td = $("<td></td>").html(harshdrivingtitle[i]).css({ "padding-left": 10, "width": 220 });
|
||||
tr.append(td);
|
||||
}
|
||||
|
||||
if (haspramameter) {
|
||||
$('#setparameter').css('display', '');
|
||||
}
|
||||
else {
|
||||
$('#setparameter').css('display', 'none');
|
||||
}
|
||||
var right = $('#mapAlertLayerDiv').width() + 100;
|
||||
$('#filterIconDiv').css('right', right);
|
||||
}
|
||||
|
||||
function setParameterDatimeTimePicker(ipt) {
|
||||
ipt.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]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getAlertLayerParameters() {
|
||||
if (parameterinput.length > 0) {//更新参数选择的值
|
||||
for (var l = 0; l < parameterinput.length; l++) {
|
||||
var ipt = parameterinput[l];
|
||||
var param = ipt.data("parameter");
|
||||
if (ipt.data('commoninput'))
|
||||
param.ParameterValue = ipt.val();
|
||||
}
|
||||
}
|
||||
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
if (mal)
|
||||
return mal.Layers;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
var parameterinput = [];
|
||||
var paramindex = -1;
|
||||
function setAlertLayerParameters() {
|
||||
parameterinput = [];
|
||||
paramindex = -1;
|
||||
var ul = $("#ul_parameter");
|
||||
ul.empty();
|
||||
var pdiv = $("#parameter_right");
|
||||
pdiv.empty();
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
|
||||
var layerHasParam = 0;
|
||||
if (mal && mal.Layers) {
|
||||
for (var i = 0; i < mal.Layers.length; i++) {
|
||||
var layer = mal.Layers[i];
|
||||
|
||||
var criteriaparam = layer.CriteriaSQLParameters;
|
||||
var alertparam = layer.AlertSQLParameters;
|
||||
|
||||
if (layer && (criteriaparam || alertparam)) {
|
||||
var li = $("<li class='nav_item'></li>").data("layerid", layer.ID).click(layerHasParam++, layerclick);
|
||||
|
||||
if (layer.IconColor.length == 9)
|
||||
layer.IconColor = "#" + layer.IconColor.substring(3);
|
||||
var img = $("<img></img>").attr("src", layer.LegendUrl).css({ "width": 18, "vertical-align": "middle" });
|
||||
var span = $("<span></span>").text(layer.Title).css({ "margin-left": 10, "vertical-align": "middle" });
|
||||
li.append(img).append(span);
|
||||
ul.append(li);
|
||||
var tb = $("<table class='tb_parameter'></table>").data("layerid", layer.ID);
|
||||
if (layerHasParam == 1)
|
||||
li.addClass("selected");
|
||||
else
|
||||
tb.css('display', 'none');
|
||||
|
||||
pdiv.append(tb);
|
||||
if (criteriaparam && criteriaparam.length > 0)
|
||||
createParameters(criteriaparam, tb, 1);
|
||||
|
||||
if (alertparam && alertparam.length > 0)
|
||||
createParameters(alertparam, tb, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createParameters(params, tb, type) {
|
||||
var tr = $("<tr></tr>").append("<td colspan='2' style='padding-left:10px;font-weight:bold;font-size:16px;'>Criteria</td>");
|
||||
tb.append(tr);
|
||||
for (var j = 0; j < params.length; j++) {
|
||||
var param = params[j];
|
||||
var tr_param = $("<tr></tr>");
|
||||
tb.append(tr_param);
|
||||
tr_param.append($("<td></td>").addClass('td_paramtype').html(param.Caption));
|
||||
var td = $("<td></td>");
|
||||
|
||||
var ipt = createParameterInput(param, type, j);
|
||||
parameterinput.push(ipt);
|
||||
if (param.DataType == 3 && param.DisplayStyle != 1 && param.DisplayStyle != 2) {
|
||||
setParameterDatimeTimePicker(ipt);
|
||||
}
|
||||
td.append(ipt);
|
||||
tr_param.append(td);
|
||||
}
|
||||
}
|
||||
|
||||
function FALSE() { return false; }
|
||||
|
||||
function createParameterInput(param, type) {
|
||||
var paramvalue = getParameterValue(param.ID, type);
|
||||
if (paramvalue == null)
|
||||
paramvalue = param.DefaultValue;
|
||||
|
||||
if (param.DisplayStyle == 0) {//inputbox
|
||||
return $("<input type='text' />").val(paramvalue).data("parameter", param).data('commoninput', true)
|
||||
.attr("paramcaption", param.Name.toLowerCase())
|
||||
.keyup(function () {
|
||||
$("[paramcaption='" + param.Name.toLowerCase() + "']").val($(this).val());
|
||||
}).change(function () {
|
||||
$("[paramcaption='" + param.Name.toLowerCase() + "']").val($(this).val());
|
||||
});
|
||||
}
|
||||
else if (param.DisplayStyle == 1 || param.DisplayStyle == 2) {//Dropdown or Combobox
|
||||
var defaultcheckall = false;
|
||||
if (param.IsAllAllowed && paramvalue === ALL_VALUE)
|
||||
defaultcheckall = true;
|
||||
if (param.IsField && param.MutipleSelect) {//多选
|
||||
var divcontrol = $('<div class="div_filter"></div>').data("parameter", param);
|
||||
var seldiv = $('<div class="left dropdown"></div>');
|
||||
var span = $('<span class="text_span"></span>');
|
||||
var spanimg = $('<span class="fa dropdown_button"></span>');
|
||||
var divpanel = $('<div class="div_panel" style="display: none;z-index:10;margin-top:20px;margin-left:-1px;"></div>');
|
||||
var ul = $('<ul></ul>');
|
||||
divpanel.append(ul).mousedown(FALSE);
|
||||
seldiv.append(span).append(spanimg).append(divpanel);
|
||||
seldiv.mousedown(function () {
|
||||
$('.div_panel').each(function () {
|
||||
var t = $(this);
|
||||
if (!t.is(divpanel))
|
||||
t.css('display', 'none');
|
||||
});
|
||||
|
||||
var display = divpanel.css('display');
|
||||
if (display == 'none') {
|
||||
divpanel.css({ 'display': 'block' });
|
||||
} else {
|
||||
divpanel.css('display', 'none');
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
var itemclick = function (isall, checked) {
|
||||
var chks = ul.find('input');
|
||||
if (isall) {
|
||||
chks.prop('checked', checked);
|
||||
if (checked) {
|
||||
span.attr('title', ALL_TEXT).text(ALL_TEXT);
|
||||
param.ParameterValue = ALL_VALUE;
|
||||
}
|
||||
else {
|
||||
span.attr('title', "").text("");
|
||||
param.ParameterValue = "";
|
||||
}
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (chkall)
|
||||
chkall.prop('checked', false);//(ALL)取消选中
|
||||
}
|
||||
|
||||
var texts = [];
|
||||
var paramvalues = [];
|
||||
for (var i = 0; i < chks.length; i++) {
|
||||
var c = $(chks[i]);
|
||||
if (c.prop('checked')) {
|
||||
var text = c.next('label').text();
|
||||
if (!text) text = c.val();
|
||||
texts.push(text);
|
||||
paramvalues.push(c.val());
|
||||
}
|
||||
}
|
||||
texts = texts.join(', ');
|
||||
span.attr('title', texts).text(texts);
|
||||
paramvalues = paramvalues.join('^');
|
||||
param.ParameterValue = paramvalues;
|
||||
};
|
||||
|
||||
var chkall = undefined;
|
||||
if (param.IsAllAllowed) {
|
||||
var liall = $('<li></li>');
|
||||
chkall = $('<input type="checkbox" id="chkall" style="width:16px;"/>');
|
||||
if (defaultcheckall)
|
||||
chkall.attr('checked', true);
|
||||
chkall.change(function () {//全选
|
||||
itemclick(true, $(this).prop('checked'));
|
||||
});
|
||||
liall.append(chkall);
|
||||
liall.append($('<label for="chkall"></label>').text(ALL_TEXT));
|
||||
ul.append(liall);
|
||||
}
|
||||
var ds = getLookupDatasource(param.LookupDatasourceID)
|
||||
if (ds && ds.Items) {
|
||||
var paramvalueAry = paramvalue.split("^");
|
||||
var texts = [];
|
||||
for (var s = 0; s < ds.Items.length; s++) {
|
||||
var item = ds.Items[s];
|
||||
var txt = param.DisplayCaptionField ? item.Value : item.Key;
|
||||
var li = $('<li></li>');
|
||||
var chk = $('<input type="checkbox" style="width:16px;"/>').val(item.Key).attr("id", "chkp" + ++paramindex);
|
||||
chk.change(function () {
|
||||
itemclick(false, $(this).prop('checked'));
|
||||
});
|
||||
li.append(chk);
|
||||
li.append($('<label for=' + ("chkp" + paramindex) + '></label>').text(txt));
|
||||
ul.append(li);
|
||||
|
||||
if (defaultcheckall || paramvalueAry.indexOf(item.Key) > -1) {//选中默认值
|
||||
chk.attr('checked', true);
|
||||
var text = chk.next('label').text();
|
||||
if (!text) text = chk.val();
|
||||
texts.push(text);
|
||||
}
|
||||
}
|
||||
|
||||
if (defaultcheckall)
|
||||
texts = ALL_TEXT;
|
||||
else
|
||||
texts = texts.join(', ');
|
||||
span.attr('title', texts).text(texts);
|
||||
param.ParameterValue = paramvalue;
|
||||
}
|
||||
|
||||
divcontrol.append(seldiv);
|
||||
|
||||
return divcontrol;
|
||||
}
|
||||
else {
|
||||
var sel = $("<select></select>").data("parameter", param).data('commoninput', true)
|
||||
.attr("paramcaption", param.Name.toLowerCase())
|
||||
.change(function () {
|
||||
$("[paramcaption='" + param.Name.toLowerCase() + "']").val($(this).val());
|
||||
});
|
||||
var ds = getLookupDatasource(param.LookupDatasourceID)
|
||||
if (ds && ds.Items) {
|
||||
if (param.IsField && param.IsAllAllowed) {
|
||||
var opall = $("<option></option>").val(ALL_VALUE).text(ALL_TEXT);
|
||||
sel.append(opall);
|
||||
}
|
||||
for (var s = 0; s < ds.Items.length; s++) {
|
||||
var item = ds.Items[s];
|
||||
var opt = $("<option></option>").val(item.Key);
|
||||
var txt = param.DisplayCaptionField ? item.Value : item.Key;
|
||||
opt.text(txt);
|
||||
|
||||
sel.append(opt);
|
||||
}
|
||||
sel.val(paramvalue);
|
||||
}
|
||||
return sel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getLookupDatasource(dsid) {
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
if (mal && mal.LookupDataSources) {
|
||||
for (var i = 0; i < mal.LookupDataSources.length; i++) {
|
||||
var ds = mal.LookupDataSources[i];
|
||||
if (ds.ID.toLowerCase() == dsid.toLowerCase())
|
||||
return ds;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function layerclick(e) {
|
||||
$('#ul_parameter li').removeClass("selected");
|
||||
$(this).addClass("selected");
|
||||
var index = e.data;
|
||||
var tbs = $('.tb_parameter');
|
||||
tbs.hide();
|
||||
$(tbs[index]).show();
|
||||
|
||||
}
|
||||
|
||||
function getParameterValue(paramid, paramtype) {
|
||||
if (parametervalues && parametervalues.length > 0) {
|
||||
for (var i = 0; i < parametervalues.length; i++) {
|
||||
var layer = parametervalues[i];
|
||||
var params;
|
||||
if (paramtype == 1)
|
||||
params = layer.CriteriaSQLParameters;
|
||||
else
|
||||
params = layer.AlertSQLParameters;
|
||||
|
||||
if (layer && (params || params)) {
|
||||
for (var j = 0; j < params.length; j++) {
|
||||
var param = params[j];
|
||||
if (param.ID == paramid)
|
||||
return param.ParameterValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function openSetAlertLayerParameters() {
|
||||
setAlertLayerParameters();
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_parameter .dialog-title span.title').text('Pivots');
|
||||
//$('#mask_bg').show();
|
||||
$('#dialog_parameter')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 570,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_parameter').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_parameter').width()) / 2
|
||||
})
|
||||
.showDialog();
|
||||
pivotsDialogOpend = true;
|
||||
}
|
||||
|
||||
var parametervalues;
|
||||
function setParameterCompleted() {
|
||||
parametervalues = getAlertLayerParameters();
|
||||
machineObject.searchMachine(false);
|
||||
$('#dialog_parameter').hideDialog();
|
||||
$('#mask_bg').hide();
|
||||
pivotsDialogOpend = false;
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
/***********Map*******************/
|
||||
|
||||
if (typeof $mapcontrol !== 'object') {
|
||||
var onmaploaded = undefined;
|
||||
var onselectchanged = undefined;
|
||||
$mapcontrol = function (a, b) {
|
||||
onmaploaded = a;
|
||||
onselectchanged = b;
|
||||
loadMap();
|
||||
}
|
||||
$mapcontrol.prototype.getLocation = function () {
|
||||
return [selLatitude, selLongitude];
|
||||
}
|
||||
$mapcontrol.prototype.setLocation = function (lat, long) {
|
||||
selLatitude = lat;
|
||||
selLongitude = long;
|
||||
showPonit();
|
||||
}
|
||||
|
||||
var isLoadingMap = false;
|
||||
var mapObj;
|
||||
var graphicLayer = undefined;
|
||||
var TransportationLayer = undefined;
|
||||
var GraphicC = undefined;
|
||||
var PointC = undefined;
|
||||
var PictureMarkerSymbolC = undefined;
|
||||
var UnitsC = undefined;
|
||||
var CircleC = undefined;
|
||||
var SimpleFillSymbolC = undefined;
|
||||
var ExtentC = undefined;
|
||||
var DrawC = undefined;
|
||||
var toolbar = undefined;
|
||||
var PolygonC = undefined;
|
||||
var ClusterLayerC = undefined;
|
||||
var BasemapGalleryC = undefined;
|
||||
var FontC = undefined;
|
||||
|
||||
var MultipointC = undefined;
|
||||
var SimpleMarkerSymbolC = undefined;
|
||||
var SimpleLineSymbolC = undefined;
|
||||
var PolylineC = undefined;
|
||||
var ColorC = undefined;
|
||||
|
||||
function loadMap() {
|
||||
require(["esri/map", "esri/graphic", "esri/geometry/Point",
|
||||
"esri/geometry/Multipoint",
|
||||
"esri/geometry/Polyline", "esri/symbols/PictureMarkerSymbol", "esri/units",
|
||||
"esri/geometry/Circle", "esri/symbols/SimpleFillSymbol", "esri/geometry/Extent", "esri/toolbars/draw", "esri/symbols/SimpleMarkerSymbol",
|
||||
"esri/symbols/SimpleLineSymbol", "esri/symbols/SimpleFillSymbol", "esri/geometry/Polygon",
|
||||
"extras1/clusterlayer", "esri/dijit/BasemapGallery",
|
||||
"esri/symbols/Font",
|
||||
"esri/Color", "esri/layers/ArcGISTiledMapServiceLayer"],
|
||||
function (Map, Graphic, Point, Multipoint, Polyline, PictureMarkerSymbol, Units, Circle, SimpleFillSymbol, Extent, Draw, SimpleMarkerSymbol,
|
||||
SimpleLineSymbol, SimpleFillSymbol, Polygon, clusterlayer, BasemapGallery, Font, Color, ArcGISTiledMapServiceLayer) {
|
||||
MapC = Map;
|
||||
GraphicC = Graphic;
|
||||
PointC = Point;
|
||||
PictureMarkerSymbolC = PictureMarkerSymbol;
|
||||
UnitsC = Units;
|
||||
CircleC = Circle;
|
||||
SimpleFillSymbolC = SimpleFillSymbol;
|
||||
ExtentC = Extent;
|
||||
DrawC = Draw;
|
||||
PolygonC = Polygon;
|
||||
ClusterLayerC = clusterlayer;
|
||||
BasemapGalleryC = BasemapGallery;
|
||||
FontC = Font;
|
||||
|
||||
MultipointC = Multipoint;
|
||||
SimpleMarkerSymbolC = SimpleMarkerSymbol;
|
||||
SimpleLineSymbolC = SimpleLineSymbol;
|
||||
PolylineC = Polyline;
|
||||
ColorC = Color;
|
||||
|
||||
|
||||
mapObj = new MapC("mapdiv", {
|
||||
basemap: "topo",
|
||||
center: [0, 0], // longitude, latitude
|
||||
zoom: 3
|
||||
});
|
||||
mapObj.disableKeyboardNavigation();
|
||||
|
||||
dojo.connect(mapObj, "onClick", showCoordinates);
|
||||
$('div.esriControlsBR').remove();
|
||||
|
||||
graphicLayer = new esri.layers.GraphicsLayer();
|
||||
mapObj.addLayer(graphicLayer);
|
||||
|
||||
mapObj.on("load", function (e) {
|
||||
$("#mapdiv_zoom_slider").css("z-index", 0);
|
||||
});
|
||||
|
||||
TransportationLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/arcgis/rest/services/Reference/World_Transportation/MapServer");
|
||||
|
||||
initBasemapGallery(mapObj);
|
||||
|
||||
$("#basemapgalleryDiv").click(null, function (e) {
|
||||
$("#basemapGallery").show();
|
||||
});
|
||||
|
||||
if (onmaploaded)
|
||||
onmaploaded();
|
||||
//mapObj.centerAndZoom(point, 3);
|
||||
});
|
||||
}
|
||||
|
||||
function initBasemapGallery(map) {
|
||||
$(window).click(function (e) {
|
||||
if ($(e.target).attr("id") != "basemapImg")
|
||||
$("#basemapGallery").hide();
|
||||
});
|
||||
var basemap = "topo";
|
||||
$("#basemapImg").css("background-image", "url('https://js.arcgis.com/3.40/esri/images/basemap/topo.jpg')");
|
||||
$("#basemapTitle").text(GetTextByKey("P_MAP_TOPOGRAPHIC", "Topographic"));
|
||||
|
||||
var basemapGallery = new BasemapGalleryC({
|
||||
showArcGISBasemaps: false,
|
||||
map: map
|
||||
}, "basemapGallery");
|
||||
|
||||
var satellitemap = new esri.dijit.Basemap({
|
||||
layers: [new esri.dijit.BasemapLayer({
|
||||
url: "http://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer"
|
||||
})],
|
||||
title: GetTextByKey("P_MAP_IMAGERY", "Imagery"),
|
||||
thumbnailUrl: "https://js.arcgis.com/3.40/esri/images/basemap/satellite.jpg"
|
||||
});
|
||||
basemapGallery.add(satellitemap);
|
||||
|
||||
var topomap = new esri.dijit.Basemap({
|
||||
layers: [new esri.dijit.BasemapLayer({
|
||||
url: "http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"
|
||||
})],
|
||||
title: GetTextByKey("P_MAP_TOPOGRAPHIC", "Topographic"),
|
||||
thumbnailUrl: "https://js.arcgis.com/3.40/esri/images/basemap/topo.jpg"
|
||||
});
|
||||
basemapGallery.add(topomap);
|
||||
|
||||
var streetmap = new esri.dijit.Basemap({
|
||||
layers: [new esri.dijit.BasemapLayer({
|
||||
//type: "OpenStreetMap",
|
||||
url: "http://server.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"
|
||||
})],
|
||||
title: GetTextByKey("P_MAP_STREETS", "Streets"),
|
||||
thumbnailUrl: "https://js.arcgis.com/3.40/esri/images/basemap/streets.jpg"
|
||||
|
||||
});
|
||||
basemapGallery.add(streetmap);
|
||||
|
||||
basemapGallery.startup();
|
||||
|
||||
basemapGallery.on("selection-change", function () {
|
||||
var basemap = basemapGallery.getSelected();
|
||||
if (basemap) {
|
||||
if (basemap.title == "Imagery")
|
||||
map.addLayer(TransportationLayer);
|
||||
else
|
||||
map.removeLayer(TransportationLayer);
|
||||
|
||||
$("#basemapImg").css("background-image", "url('" + basemap.thumbnailUrl + "')");
|
||||
$("#basemapTitle").text(basemap.title);
|
||||
}
|
||||
$("#basemapGallery").hide();
|
||||
});
|
||||
|
||||
basemapGallery.on("error", function (msg) {
|
||||
console.log("basemap gallery error: ", msg);
|
||||
});
|
||||
}
|
||||
|
||||
var selLatitude, selLongitude = 0;
|
||||
function showCoordinates(evt) {
|
||||
if (evt) {
|
||||
var mp = evt.mapPoint;
|
||||
selLatitude = mp.getLatitude().toFixed(6);
|
||||
selLongitude = mp.getLongitude().toFixed(6);
|
||||
showPonit();
|
||||
if (onselectchanged)
|
||||
onselectchanged(selLatitude, selLongitude);
|
||||
}
|
||||
}
|
||||
|
||||
var maxLong, minLong, maxLat, minLat = null;
|
||||
function zoomMap(allMachines) {
|
||||
if (allMachines && allMachines.length > 0) {
|
||||
for (var i in allMachines) {
|
||||
var m = allMachines[i];
|
||||
if (m.Longitude == 0 && m.Latitude == 0) continue;//不计算经纬度都为0的
|
||||
|
||||
if (maxLong == null || maxLong < m.Longitude)
|
||||
maxLong = m.Longitude;
|
||||
if (minLong == null || minLong > m.Longitude)
|
||||
minLong = m.Longitude;
|
||||
if (maxLat == null || maxLat < m.Latitude)
|
||||
maxLat = m.Latitude;
|
||||
if (minLat == null || minLat > m.Latitude)
|
||||
minLat = m.Latitude;
|
||||
}
|
||||
if (!jobsiteid)
|
||||
setMapExtent();
|
||||
}
|
||||
}
|
||||
|
||||
function setMapExtent() {
|
||||
if (maxLong != minLong || maxLat != minLat) {//至少一个不相同
|
||||
var ext = new ExtentC();
|
||||
ext.xmax = maxLong + 0.001;
|
||||
ext.xmin = minLong - 0.001;
|
||||
ext.ymax = maxLat + 0.001;
|
||||
ext.ymin = minLat - 0.001;
|
||||
|
||||
mapObj.setExtent(ext, true)
|
||||
}
|
||||
}
|
||||
|
||||
function showPonit() {
|
||||
graphicLayer.clear();
|
||||
var latitude = selLatitude;
|
||||
var longitude = selLongitude;
|
||||
if (latitude == 0 && longitude == 0) return;
|
||||
var point = new esri.geometry.Point({
|
||||
latitude: latitude,
|
||||
longitude: longitude
|
||||
});
|
||||
|
||||
var symbol = new esri.symbol.TextSymbol({
|
||||
color: [0xf7, 0xc0, 0x03],//#f7c003
|
||||
haloColor: "black",
|
||||
haloSize: "1px",
|
||||
text: "\uf3c5",
|
||||
xoffset: 3,
|
||||
yoffset: 3,
|
||||
font: { // autocast as esri/symbols/Font
|
||||
size: 32,
|
||||
family: "FontAwesome",
|
||||
weight: "bolder"
|
||||
}
|
||||
});
|
||||
var graphic = new esri.Graphic(point, symbol);
|
||||
graphicLayer.add(graphic);
|
||||
|
||||
mapObj.centerAt(graphic.geometry);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
|
||||
//************************Add Engine Hours**************************************//
|
||||
var isAddEH = true;
|
||||
var primarydatadourceMVEH;
|
||||
var assetdataEH;
|
||||
function openAddEnginHours(asset) {
|
||||
primarydatadourceMVEH = undefined;
|
||||
assetdataEH = asset;
|
||||
var datetime = customerdatetime.split(' ');
|
||||
var time = datetime[0];
|
||||
var st = datetime[1].split(':');
|
||||
var hours = st[0].length == 1 ? "0" + st[0] : st[0];
|
||||
var minutes = st[1];
|
||||
$('#dialogaddgenginehours_enginehours').val('');
|
||||
$('#dialogadd_enginehourstimezone').val(customertimezone ? customertimezone : "UTC");
|
||||
$('#dialogaddenginehours_date').val(time);
|
||||
$('#dialogaddenginehours_timehour').val(hours);
|
||||
$('#dialogaddenginehours_timeminute').val(minutes);
|
||||
$('#dialogaddenginehours_Notes').val('');
|
||||
if (assetdataEH.TelematicsEnabled && !assetdataEH.EngineHours.IsEmpty &&
|
||||
(assetdataEH.EngineHours.DataSource.toLowerCase() == "calamp" || assetdataEH.EngineHours.DataSource.toLowerCase() == "pedigree")) {
|
||||
isAddEH = false;
|
||||
primarydatadourceMVEH = assetdataEH.EngineHours.DataSource;
|
||||
}
|
||||
else
|
||||
isAddEH = true;
|
||||
|
||||
$('#dialog_addenginehours .dialog-title span.title').text(isAddEH ? GetTextByKey("P_MV_ADDENGINEHOURS", 'Add Engine Hours') : GetTextByKey("P_MV_ADJUSTENGINEHOURS", 'Adjust Engine Hours'));
|
||||
showmaskbg(true);
|
||||
$('#dialog_addenginehours')
|
||||
.attr('act', 'add')
|
||||
.css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_addenginehours').height()) / 3,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_addenginehours').width()) / 2
|
||||
})
|
||||
.showDialogfixed();
|
||||
$('#dialogaddgenginehours_enginehours').focus();
|
||||
}
|
||||
|
||||
|
||||
function OnAddEngineHours() {
|
||||
$('#addenginehoursmask').show();
|
||||
|
||||
var alerttitle = isAddEH ? GetTextByKey("P_MV_ADDENGINEHOURS", 'Add Engine Hours') : GetTextByKey("P_MV_ADJUSTENGINEHOURS", 'Adjust Engine Hours');
|
||||
var contractorid = $("#selContractor").val();
|
||||
if (!contractorid) contractorid = "";
|
||||
var item = {
|
||||
'CustomerID': contractorid,
|
||||
'AssetID': assetdataEH.Id,
|
||||
'EngineHours': $('#dialogaddgenginehours_enginehours').val(),
|
||||
'EngineHoursDate': $('#dialogaddenginehours_date').val(),
|
||||
'Notes': $('#dialogaddenginehours_Notes').val(),
|
||||
'DataSource': primarydatadourceMVEH
|
||||
};
|
||||
if (item.EngineHours !== "") {
|
||||
if (isNaN(item.EngineHours)) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ENGINEHOURSFORMATERROR", 'Engine Hours format error.'), alerttitle);
|
||||
$('#addenginehoursmask').hide();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (item.EngineHours <= 0) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ENGINEHOURSMUSTBEGREATERTHAN0", 'Engine Hours must be greater than 0.'), alerttitle);
|
||||
$('#addenginehoursmask').hide();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ENGINEHOURSCANNOTBEEMPTY", "Engine Hours cannot be empty."), alerttitle);
|
||||
$('#addenginehoursmask').hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.EngineHoursDate === "") {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ENGINEHOURSDATECANNOTBEEMPTY", "Engine Hours Date cannot be empty."), alerttitle);
|
||||
$('#addenginehoursmask').hide();
|
||||
return;
|
||||
}
|
||||
var offset = $('#dialogadd_enginehourstimezone').find("option:selected").attr("offset");
|
||||
item.OffsetMinute = offset;
|
||||
var timezonetext = $('#dialogadd_enginehourstimezone').find("option:selected").text();
|
||||
var hour = $('#dialogaddenginehours_timehour').val();
|
||||
var minute = $('#dialogaddenginehours_timeminute').val();
|
||||
item.EngineHoursDate = item.EngineHoursDate.replace("-", "/") + " " + hour + ":" + minute + ":" + "00";
|
||||
|
||||
var time = hour + ":" + minute
|
||||
var alertmsg = "";
|
||||
if (isAddEH) {
|
||||
alertmsg = GetTextByKey("P_MV_UPDATEENGINEHOURS", "Do you want to update the engine hours to reflect: {0} hours at {1} {2}?").replace('{0}', item.EngineHours).replace('{1}', time).replace('{2}', timezonetext);
|
||||
}
|
||||
else {
|
||||
alertmsg = GetTextByKey("P_MV_UPDATEENGINEHOURS1", "If you proceed, engine hours will be updated to reflect: {0} hours at {1} <br/>" +
|
||||
" {2}. <br/><br/>Note that this asset is telematic enabled and the primary data source is {3}." +
|
||||
"<br/><br/> Would you like to proceed?").replace('{0}', item.EngineHours).replace('{1}', time).replace('{2}', timezonetext).replace('{3}', assetdataEH.EngineHours.DataSourceName);
|
||||
}
|
||||
|
||||
showConfirm1(alertmsg, alerttitle, function () {
|
||||
$('#addenginehoursmask').hide();
|
||||
if (isAddEH)
|
||||
AddManuallyInputEngineHours(item, alerttitle);
|
||||
else
|
||||
CheckEngineHourMinimumTime(item, alerttitle);
|
||||
|
||||
}, function () {
|
||||
$('#addenginehoursmask').hide();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function AddManuallyInputEngineHours(item, alerttitle) {
|
||||
var param = JSON.stringify(item);
|
||||
param = htmlencode(param);
|
||||
|
||||
devicerequest("AddManuallyInputEngineHours", param, function (data) {
|
||||
if (data !== 'OK') {
|
||||
_dialog.showAlert(data, alerttitle);
|
||||
} else {
|
||||
//loadAssetInfo();
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ENGINEHOURSUPDATESUCCESSFUL", "Engine Hours Update Successful."), alerttitle);
|
||||
}
|
||||
|
||||
$('#dialog_addenginehours').hideDialog();
|
||||
$('#addenginehoursmask').hide();
|
||||
}, function (err) {
|
||||
console.log(err);
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FAILEDTOADDENGINEHOURS", 'Failed to add Engine Hours.'), alerttitle);
|
||||
$('#addenginehoursmask').hide();
|
||||
});
|
||||
}
|
||||
|
||||
function CheckEngineHourMinimumTime(item, alerttitle) {
|
||||
var param = JSON.stringify(item);
|
||||
param = htmlencode(param);
|
||||
devicerequest("CheckEngineHourMinimumTime", param, function (data) {
|
||||
if (data > 0) {
|
||||
if (data == 1)
|
||||
_dialog.showAlert(GetTextByKey("P_MV_CHECKENGINEHOURSMINNIMUMTIME", "The adjustment cannot be completed as provided. The engine hours reading date provided cannot be prior to initial telematic data available for the asset."), alerttitle);
|
||||
else
|
||||
_dialog.showAlert(GetTextByKey("P_MV_CHECKENGINEHOURSMINNIMUMTIME1", "The adjustment cannot be completed as provided. The engine hours reading date provided must be prior to or equal to the latest telematic data available for the asset."), alerttitle);
|
||||
$('#addenginehoursmask').hide();
|
||||
return;
|
||||
} else {
|
||||
SaveAdjustEngineHours(item, alerttitle);
|
||||
}
|
||||
}, function (err) {
|
||||
});
|
||||
}
|
||||
|
||||
function SaveAdjustEngineHours(item, alerttitle) {
|
||||
var param = JSON.stringify(item);
|
||||
param = htmlencode(param);
|
||||
|
||||
devicerequest("SaveAdjustEngineHours", param, function (data) {
|
||||
if (data !== 'OK') {
|
||||
_dialog.showAlert(data, alerttitle);
|
||||
} else {
|
||||
//loadAssetInfo();
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ENGINEHOURSUPDATESUCCESSFUL", "Engine Hours Update Successful."), alerttitle);
|
||||
}
|
||||
|
||||
$('#dialog_addenginehours').hideDialog();
|
||||
$('#addenginehoursmask').hide();
|
||||
}, function (err) {
|
||||
console.log(err);
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FAILEDTOADJUSTENGINEHOURS", 'Failed to adjust Engine Hours.'), alerttitle);
|
||||
$('#addenginehoursmask').hide();
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
|
||||
//************************Add Odometer**************************************//
|
||||
var isAddOdo = true;
|
||||
var primarydatadourceMVOdo;
|
||||
var assetdataOdo;
|
||||
function openAddOdometer(asset) {
|
||||
primarydatadourceMVOdo = undefined;
|
||||
assetdataOdo = asset;
|
||||
var datetime = customerdatetime.split(' ');
|
||||
var time = datetime[0];
|
||||
var st = datetime[1].split(':');
|
||||
var hours = st[0].length == 1 ? "0" + st[0] : st[0];
|
||||
var minutes = st[1];
|
||||
$('#dialogadd_odometer').val('');
|
||||
$('#dialogadd_sel_odometeruom').val(systemunitofodometer);
|
||||
$('#dialogadd_odometertimezone').val(customertimezone ? customertimezone : "UTC");
|
||||
$('#dialogadd_odometerdate').val(time);
|
||||
$('#dialogadd_timehour').val(hours);
|
||||
$('#dialogadd_timeminute').val(minutes);
|
||||
$('#dialogadd_notes').val('');
|
||||
if (assetdataOdo.TelematicsEnabled && !assetdataOdo.Odometer.IsEmpty &&
|
||||
(assetdataOdo.Odometer.DataSource.toLowerCase() == "calamp" || assetdataOdo.Odometer.DataSource.toLowerCase() == "pedigree")) {
|
||||
isAddOdo = false;
|
||||
primarydatadourceMVOdo = assetdataOdo.Odometer.DataSource;
|
||||
}
|
||||
else
|
||||
isAddOdo = true;
|
||||
|
||||
$('#dialog_addodometer .dialog-title span.title').text(isAddOdo ? GetTextByKey("P_MV_ADDODOMETER", 'Add Odometer') : GetTextByKey("P_MV_ADJUSTODOMETER", 'Adjust Odometer'));
|
||||
showmaskbg(true);
|
||||
$('#dialog_addodometer')
|
||||
.attr('act', 'add')
|
||||
.css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_addodometer').height()) / 3,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_addodometer').width()) / 2
|
||||
})
|
||||
.showDialogfixed();
|
||||
$('#dialogadd_odometer').focus();
|
||||
}
|
||||
|
||||
function OnAddOdometer() {
|
||||
$('#addodomask').show();
|
||||
var alerttitle = isAddOdo ? GetTextByKey("P_MV_ADDODOMETER", 'Add Odometer') : GetTextByKey("P_MV_ADJUSTODOMETER", 'Adjust Odometer');
|
||||
var contractorid = $("#selContractor").val();
|
||||
if (!contractorid) contractorid = "";
|
||||
var item = {
|
||||
'CustomerID': contractorid,
|
||||
'AssetID': assetdataOdo.Id,
|
||||
'Odometer': $('#dialogadd_odometer').val(),
|
||||
'UOM': $('#dialogadd_sel_odometeruom').val(),
|
||||
'OdometerDate': $('#dialogadd_odometerdate').val(),
|
||||
'Notes': $('#dialogadd_notes').val(),
|
||||
'DataSource': primarydatadourceMVOdo
|
||||
};
|
||||
if (item.Odometer !== "") {
|
||||
if (isNaN(item.Odometer)) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ODOMETERFORMATERROR", 'Odometer format error.'), alerttitle);
|
||||
$('#addodomask').hide();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (item.Odometer <= 0) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ODOMETERMUSTBEGREATERTHAN0", 'ODOMeter must be greater than 0.'), alerttitle);
|
||||
$('#addodomask').hide();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ODOMETRCANNOTBEEMPTY", "Odometer cannot be empty."), alerttitle);
|
||||
$('#addodomask').hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.OdometerDate === "") {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ODOMETRDATACANNOTBEEMPTY", "Odometer date cannot be empty."), alerttitle);
|
||||
$('#addodomask').hide();
|
||||
return;
|
||||
}
|
||||
var offset = $('#dialogadd_odometertimezone').find("option:selected").attr("offset");
|
||||
item.OffsetMinute = offset;
|
||||
var timezonetext = $('#dialogadd_enginehourstimezone').find("option:selected").text();
|
||||
|
||||
var hour = $('#dialogadd_timehour').val();
|
||||
var minute = $('#dialogadd_timeminute').val();
|
||||
|
||||
item.OdometerDate = item.OdometerDate.replace("-", "/") + " " + hour + ":" + minute + ":" + "00";
|
||||
|
||||
var time = hour + ":" + minute
|
||||
var alertmsg = "";
|
||||
if (isAddOdo) {
|
||||
alertmsg = GetTextByKey("P_MV_UPDATETHEODOMETER", "Do you want to update the odometer to reflect: {0} {1} at {2} {3}?").replace('{0}', item.Odometer).replace('{1}', item.UOM).replace('{2}', time).replace('{3}', timezonetext);
|
||||
}
|
||||
else {
|
||||
alertmsg = GetTextByKey("P_MV_UPDATETHEODOMETER1", "If you proceed, odometer will be updated to reflect: {0} {1} at {2} <br/> {3}.<br/><br/> Note that this asset is telematic enabled and the primary data source is {4}.<br/><br/>Would you like to proceed?").replace('{0}', item.Odometer).replace('{1}', item.UOM).replace('{2}', time).replace('{3}', timezonetext).replace('{4}', assetdataOdo.Odometer.DataSourceName);
|
||||
}
|
||||
|
||||
showConfirm1(alertmsg, alerttitle, function () {
|
||||
$('#addodomask').hide();
|
||||
if (isAddOdo)
|
||||
AddManuallyInputOdometer(item, alerttitle);
|
||||
else
|
||||
CheckOdometerMinnimumTime(item, alerttitle);
|
||||
|
||||
}, function () {
|
||||
$('#addodomask').hide();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function AddManuallyInputOdometer(item, alerttitle) {
|
||||
var param = JSON.stringify(item);
|
||||
param = htmlencode(param);
|
||||
devicerequest("AddManuallyInputOdometer", param, function (data) {
|
||||
if (data !== 'OK') {
|
||||
_dialog.showAlert(data, alerttitle);
|
||||
} else {
|
||||
//loadAssetInfo();
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ODOMETERUPDATESUCCESSFUL", "Odometer Update Successful."), alerttitle);
|
||||
}
|
||||
|
||||
$('#dialog_addodometer').hideDialog();
|
||||
$('#addodomask').hide();
|
||||
}, function (err) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FAILEDTOADDODOMETER", 'Failed to add Odometer.'), alerttitle);
|
||||
$('#addodomask').hide();
|
||||
});
|
||||
}
|
||||
|
||||
function CheckOdometerMinnimumTime(item, alerttitle) {
|
||||
var param = JSON.stringify(item);
|
||||
param = htmlencode(param);
|
||||
devicerequest("CheckOdometerMinnimumTime", param, function (data) {
|
||||
if (data > 0) {
|
||||
if (data == 1)
|
||||
_dialog.showAlert(GetTextByKey("P_MA_CHECKODOMETERMINNIMUMTIME", "The adjustment cannot be completed as provided. The odometer reading date provided cannot be prior to initial telematic data available for the asset."), alerttitle);
|
||||
else
|
||||
_dialog.showAlert(GetTextByKey("P_MA_CHECKODOMETERMINNIMUMTIME1", "The adjustment cannot be completed as provided. The odometer reading date provided must be prior to or equal to the latest telematic data available for the asset."), alerttitle);
|
||||
$('#addodomask').hide();
|
||||
return;
|
||||
} else {
|
||||
SaveAdjustOdometer(item, alerttitle);
|
||||
}
|
||||
}, function (err) {
|
||||
});
|
||||
}
|
||||
|
||||
function SaveAdjustOdometer(item, alerttitle) {
|
||||
var param = JSON.stringify(item);
|
||||
param = htmlencode(param);
|
||||
devicerequest("SaveAdjustOdometer", param, function (data) {
|
||||
if (data !== 'OK') {
|
||||
_dialog.showAlert(data, alerttitle);
|
||||
} else {
|
||||
//loadAssetInfo();
|
||||
_dialog.showAlert(GetTextByKey("P_MV_ODOMETERUPDATESUCCESSFUL", "Odometer Update Successful."), alerttitle);
|
||||
}
|
||||
|
||||
$('#dialog_addodometer').hideDialog();
|
||||
$('#addodomask').hide();
|
||||
}, function (err) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FAILEDTOADJUSTODOMETER", 'Failed to adjust Odometer.'), alerttitle);
|
||||
$('#addodomask').hide();
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,948 @@
|
||||
|
||||
var allAssets;
|
||||
var selectedAsset = undefined;
|
||||
var assetDictionary = [[]];
|
||||
var allGroups;
|
||||
var groupAssets = [[]];
|
||||
var jobsiteAssets = [[]];
|
||||
|
||||
function updateAssets() {
|
||||
assetDictionary = [[]];
|
||||
groupAssets = [[]];
|
||||
jobsiteAssets = [[]];
|
||||
if (allAssets) {
|
||||
for (var i = 0; i < allAssets.length; i++) {
|
||||
var asset = allAssets[i];
|
||||
var index = "" + asset.ID % 100;
|
||||
if (!assetDictionary[index])
|
||||
assetDictionary[index] = [];
|
||||
assetDictionary[index].push(asset);
|
||||
|
||||
if (asset.AssetGroups && asset.AssetGroups.length > 0) {
|
||||
for (var j = 0; j < asset.AssetGroups.length; j++) {
|
||||
var gid = asset.AssetGroups[j].toLowerCase();
|
||||
if (!groupAssets[gid])
|
||||
groupAssets[gid] = [];
|
||||
groupAssets[gid].push(asset);
|
||||
}
|
||||
}
|
||||
else {
|
||||
var gid = "-1";
|
||||
if (!groupAssets[gid])
|
||||
groupAssets[gid] = [];
|
||||
groupAssets[gid].push(asset);
|
||||
}
|
||||
|
||||
if (asset.JobSites && asset.JobSites.length > 0) {
|
||||
for (var j = 0; j < asset.JobSites.length; j++) {
|
||||
var jsid = asset.JobSites[j];
|
||||
if (!jobsiteAssets[jsid])
|
||||
jobsiteAssets[jsid] = [];
|
||||
jobsiteAssets[jsid].push(asset);
|
||||
}
|
||||
}
|
||||
else {
|
||||
var jsid = -1;
|
||||
if (!jobsiteAssets[jsid])
|
||||
jobsiteAssets[jsid] = [];
|
||||
jobsiteAssets[jsid].push(asset);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getAsset(aid) {
|
||||
var index = "" + aid % 100;
|
||||
var items = assetDictionary[index];
|
||||
if (items) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
if (items[i].ID == aid)
|
||||
return items[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
var unshownMachineID = [];//不需要显示的机器ID
|
||||
|
||||
/******************************AssetObject******************************/
|
||||
/******************************机器信息获取及显示******************************/
|
||||
if (typeof (AssetObject) != "function") {
|
||||
AssetObject = function (mapHelper) {
|
||||
var isFirstLoad = true;//是否第一次加载,第一次加载需定位
|
||||
var allMachineCheckBox = [];
|
||||
var inSearchingMachine = false;
|
||||
|
||||
var allLocations;
|
||||
var _this = this;
|
||||
var REDUN = 2;
|
||||
var ROW_HEIGHT = 50;
|
||||
var MIN_LENGTH = 40;
|
||||
var trunc = function (val) {
|
||||
return (val > 0 ? Math.floor : Math.ceil)(val);
|
||||
};
|
||||
var assetsummaryctr;
|
||||
|
||||
var vm = new Vue({
|
||||
el: '#machineList',
|
||||
data: {
|
||||
machines: [],
|
||||
startIndex: 0,
|
||||
bodyContentStyle: { top: null },
|
||||
bodyContainerHeight: 0,
|
||||
bodyContainerStyle: { height: null },
|
||||
scrollTop: 0
|
||||
},
|
||||
computed: {
|
||||
bodyClientRowCount: function () {
|
||||
var height = document.getElementById('contentCtrl').clientHeight;
|
||||
return trunc((height - 1) / ROW_HEIGHT) + 1;
|
||||
},
|
||||
innerMachines: function () {
|
||||
var start = this.startIndex;
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
}
|
||||
if (this.machines == null || this.machines.length < MIN_LENGTH) {
|
||||
return this.machines.slice();
|
||||
}
|
||||
var end = this.bodyClientRowCount + start + (REDUN * 2) + 1;
|
||||
if (end > this.machines.length) {
|
||||
end = this.machines.length;
|
||||
}
|
||||
return this.machines.slice(start, end);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
reload: function (data) {
|
||||
this.machines = data;
|
||||
|
||||
var height = data && data.length * ROW_HEIGHT;
|
||||
this.bodyContainerHeight = height;
|
||||
this.bodyContainerStyle.height = height && (height + 'px');
|
||||
if (data.length < MIN_LENGTH) {
|
||||
this.startIndex = -1;
|
||||
this.startIndex = 0;
|
||||
this.bodyContentStyle.top = '0px';
|
||||
} else {
|
||||
var index = this.startIndex;
|
||||
var lastIndex = data.length - this.bodyClientRowCount;
|
||||
if (index > lastIndex) {
|
||||
index = lastIndex;
|
||||
}
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
}
|
||||
},
|
||||
refresh: function () {
|
||||
var index = this.startIndex;
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
},
|
||||
chkMachineClick: function (m) {
|
||||
chkMachineClick(m);
|
||||
},
|
||||
linkMachineClick: function (m) {
|
||||
linkMachineClick(m);
|
||||
this.refresh();
|
||||
},
|
||||
locationHistoryClick: function (m, ev) {
|
||||
if (selectedAsset)
|
||||
selectedAsset.State.Highlight = false;
|
||||
m.State.Highlight = true;
|
||||
this.refresh();
|
||||
selectedAsset = m;
|
||||
var e = { data: m };
|
||||
locationHistoryClick(e);
|
||||
},
|
||||
assetSummaryMouseover: function (m, ev) {
|
||||
$("#assetsummary").empty();
|
||||
$("#assetsummary").show();
|
||||
$("#assetsummarytrigle").show();
|
||||
|
||||
var left = ev.clientX + 10;
|
||||
|
||||
left = $(ev.target).offset().left + $(ev.target).width() + 90;
|
||||
//var left = $("#machineCtrl").width();
|
||||
//var top = ev.clientY;
|
||||
var top = $(ev.target).offset().top;
|
||||
if (top + 10 + $("#assetsummary").height() > document.documentElement.clientHeight)
|
||||
top = document.documentElement.clientHeight - $("#assetsummary").height() - 10;
|
||||
top = top - 60;
|
||||
|
||||
$("#assetsummary").css({ 'left': left, 'top': top });
|
||||
$("#assetsummarytrigle").css({ 'left': left + 1, 'top': $(ev.target).offset().top - 60 });
|
||||
if (assetsummaryctr)
|
||||
assetsummaryctr.status = 1;
|
||||
assetsummaryctr = new $assetsummary($("#assetsummary"), m.CompanyID, m.ID, m.AlertTips, 0);
|
||||
},
|
||||
assetSummaryMouseleave: function (m, ev) {
|
||||
if (assetsummaryctr)
|
||||
assetsummaryctr.status = 1;
|
||||
var to = $(ev.toElement);
|
||||
if (to.prop('id') != "assetsummary"
|
||||
&& to.parents("#assetsummary").length == 0
|
||||
&& to.prop('id') != "assetsummarytrigle") {
|
||||
$("#assetsummary").hide();
|
||||
$("#assetsummarytrigle").hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
this.onscrollAssets = function (e) {
|
||||
if (vm.machines == null || vm.machines.length < MIN_LENGTH) {
|
||||
return;
|
||||
}
|
||||
var top = e == null ? 0 : e.target.scrollTop;
|
||||
top -= (top % ROW_HEIGHT) + (REDUN * ROW_HEIGHT);
|
||||
if (top < 0) {
|
||||
top = 0;
|
||||
} else {
|
||||
var bottomTop = vm.bodyContainerHeight - ((vm.bodyClientRowCount + (REDUN * 2) + 1) * ROW_HEIGHT);
|
||||
if (top > bottomTop) {
|
||||
top = bottomTop;
|
||||
}
|
||||
}
|
||||
if (vm.scrollTop !== top) {
|
||||
vm.scrollTop = top;
|
||||
vm.startIndex = top / ROW_HEIGHT;
|
||||
vm.bodyContentStyle.top = top && (top + 'px');
|
||||
}
|
||||
};
|
||||
|
||||
this.refreshAssetList = function () {
|
||||
vm.refresh();
|
||||
}
|
||||
|
||||
var ROW_GROUP_HEIGHT = 26;
|
||||
var groupData = [];
|
||||
var groupMachines = [];
|
||||
var agvm = new Vue({
|
||||
el: '#assetGroupList',
|
||||
data: {
|
||||
startIndex: 0,
|
||||
bodyContentStyle: { top: null },
|
||||
bodyContainerHeight: 0,
|
||||
bodyContainerStyle: { height: null },
|
||||
scrollTop: 0
|
||||
},
|
||||
computed: {
|
||||
bodyClientRowCount: function () {
|
||||
var height = document.getElementById('contentCtrl').clientHeight;
|
||||
return trunc((height - 1) / ROW_GROUP_HEIGHT) + 1;
|
||||
},
|
||||
innerAssetgroupMachines: function () {
|
||||
var start = this.startIndex;
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
}
|
||||
if (groupMachines == null || groupMachines.length < MIN_LENGTH) {
|
||||
return groupMachines.slice();
|
||||
}
|
||||
var end = this.bodyClientRowCount + start + (REDUN * 2) + 1;
|
||||
if (end > groupMachines.length) {
|
||||
end = groupMachines.length;
|
||||
}
|
||||
return groupMachines.slice(start, end);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fillMachines: function () {
|
||||
var g = [];
|
||||
var allindeterminate = false;
|
||||
var gselcount = 0;
|
||||
for (var i = 0; i < groupData.length; i++) {
|
||||
var o = groupData[i];
|
||||
o.__isGroup = true;
|
||||
o.__indeterminate = false;
|
||||
g.push(o);
|
||||
var selcount = 0;
|
||||
if (o.Machines && o.Machines.length > 0) {
|
||||
for (var j = 0; j < o.Machines.length; j++) {
|
||||
var om = o.Machines[j];
|
||||
if (om.State.Selected) selcount++;
|
||||
if (!o.Collapsed)
|
||||
g.push(om);
|
||||
}
|
||||
|
||||
if (selcount == 0) {
|
||||
o.Selected = false;
|
||||
o.__indeterminate = false;
|
||||
}
|
||||
else if (selcount == o.Machines.length) {
|
||||
o.Selected = true;
|
||||
o.__indeterminate = false;
|
||||
}
|
||||
else {
|
||||
o.__indeterminate = true;
|
||||
allindeterminate = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
o.__indeterminate = false;
|
||||
|
||||
if (o.Selected) gselcount++;
|
||||
}
|
||||
groupMachines = g;
|
||||
|
||||
var chkSelectAllAssetGroup = document.getElementById("chkSelectAllAssetGroup");
|
||||
chkSelectAllAssetGroup.indeterminate = allindeterminate;
|
||||
if (gselcount == 0) {
|
||||
chkSelectAllAssetGroup.checked = false;
|
||||
}
|
||||
else if (gselcount == groupData.length) {
|
||||
chkSelectAllAssetGroup.checked = true;
|
||||
}
|
||||
else {
|
||||
chkSelectAllAssetGroup.indeterminate = true;
|
||||
}
|
||||
|
||||
var height = g.length * ROW_GROUP_HEIGHT;
|
||||
this.bodyContainerHeight = height;
|
||||
this.bodyContainerStyle.height = height && (height + 'px');
|
||||
|
||||
var index = this.startIndex;
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
// this.$set(this, 'startIndex', index);
|
||||
|
||||
this.$nextTick(function () {
|
||||
var content = document.getElementById('contentCtrl');
|
||||
if (this.bodyContainerHeight + 26 <= content.clientHeight) {
|
||||
this.bodyContentStyle.top = 0;
|
||||
this.startIndex = 0;
|
||||
}
|
||||
});
|
||||
},
|
||||
reload: function (data) {
|
||||
groupData = data;
|
||||
//this.bodyContentStyle.top = '0px';
|
||||
this.fillMachines();
|
||||
},
|
||||
refresh: function () {
|
||||
var index = this.startIndex;
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
},
|
||||
treeIconClick: function (e, g) {
|
||||
if (g) {
|
||||
var t = $(e.target);
|
||||
if (t.hasClass("treeiconc"))
|
||||
t.removeClass("treeiconc").addClass("treeicone");
|
||||
else
|
||||
t.removeClass("treeicone").addClass("treeiconc");
|
||||
|
||||
g.Collapsed = !g.Collapsed;
|
||||
|
||||
this.fillMachines();
|
||||
}
|
||||
else
|
||||
treeIconClick(e);
|
||||
},
|
||||
chkMachineClick: function (m) {
|
||||
chkMachineClick(m);
|
||||
},
|
||||
linkMachineClick: function (m) {
|
||||
linkMachineClick(m);
|
||||
this.refresh();
|
||||
},
|
||||
locationHistoryClick: function (m, ev) {
|
||||
if (selectedAsset)
|
||||
selectedAsset.State.Highlight = false;
|
||||
m.State.Highlight = true;
|
||||
this.refresh();
|
||||
selectedAsset = m;
|
||||
var e = { data: m };
|
||||
locationHistoryClick(e);
|
||||
},
|
||||
chkAssetGroupClick: function (e, group) {
|
||||
chkAssetGroupClick(group);
|
||||
this.fillMachines();
|
||||
},
|
||||
linkAssetGroupClick: function (e, group) {
|
||||
if (group.Selected)
|
||||
zoomAssetGroup(group);
|
||||
else {
|
||||
group.Selected = true;
|
||||
chkAssetGroupClick(group);
|
||||
this.fillMachines();
|
||||
zoomAssetGroup(group);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
this.onscrollGroupMachines = function (e) {
|
||||
if (groupMachines == null || groupMachines.length < MIN_LENGTH) {
|
||||
return;
|
||||
}
|
||||
var top = e == null ? 0 : e.target.scrollTop;
|
||||
top -= (top % ROW_GROUP_HEIGHT) + (REDUN * ROW_GROUP_HEIGHT);
|
||||
if (top < 0) {
|
||||
top = 0;
|
||||
} else {
|
||||
var bottomTop = agvm.bodyContainerHeight - ((agvm.bodyClientRowCount + (REDUN * 2) + 1) * ROW_GROUP_HEIGHT);
|
||||
if (top > bottomTop) {
|
||||
top = bottomTop;
|
||||
}
|
||||
}
|
||||
if (agvm.scrollTop !== top) {
|
||||
agvm.scrollTop = top;
|
||||
agvm.startIndex = top / ROW_GROUP_HEIGHT;
|
||||
agvm.bodyContentStyle.top = top && (top + 'px');
|
||||
}
|
||||
};
|
||||
|
||||
this.refreshAssetGroupList = function () {
|
||||
agvm.refresh();
|
||||
}
|
||||
|
||||
this.selectAllAssetGroups = function (checked) {
|
||||
if (groupData) {
|
||||
for (var i = 0; i < groupData.length; i++) {
|
||||
var g = groupData[i];
|
||||
if (g.Selected != checked) {
|
||||
g.Selected = checked;
|
||||
chkAssetGroupClick(g);
|
||||
}
|
||||
}
|
||||
agvm.fillMachines();
|
||||
}
|
||||
}
|
||||
|
||||
function chkAssetGroupClick(group) {
|
||||
var checked = group.Selected;
|
||||
if (group && group.Machines) {
|
||||
var ams = [];
|
||||
var rms = [];
|
||||
var rids = [];
|
||||
for (var i in group.Machines) {
|
||||
var machine = group.Machines[i];
|
||||
if (machine.State.Selected != checked) {
|
||||
machine.State.Selected = checked;
|
||||
|
||||
if (checked) {
|
||||
ams.push(machine);
|
||||
//unshownMachineID.splice(unshownMachineID.indexOf(machine.ID), 1);
|
||||
rids.push(machine.ID);
|
||||
}
|
||||
else {
|
||||
rms.push(machine);
|
||||
unshownMachineID.push(machine.ID);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rids.length > 0) {
|
||||
var unshownids = [];
|
||||
for (var i = 0; i < unshownMachineID.length; i++) {
|
||||
var id = unshownMachineID[i];
|
||||
if (rids.indexOf(id) < 0)
|
||||
unshownids.push(id);
|
||||
}
|
||||
unshownMachineID = unshownids;
|
||||
}
|
||||
if (ams.length > 0)
|
||||
mapHelper.showMachines(ams);
|
||||
if (rms.length > 0)
|
||||
mapHelper.removeMachines(rms);
|
||||
|
||||
displayFilerIcon();
|
||||
}
|
||||
}
|
||||
|
||||
this.getUnShownMachines = function () {
|
||||
return unshownMachineID;
|
||||
}
|
||||
this.setUnShownMachines = function (machines) {
|
||||
unshownMachineID = [];
|
||||
if (machines) {
|
||||
for (var i in machines) {
|
||||
unshownMachineID.push(eval(machines[i]));//asset id 为数值类型
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.searchMachine = function (isauto) {
|
||||
if (inSearchingMachine)
|
||||
return;
|
||||
inSearchingMachine = true;
|
||||
$('#loadingDiv').show();
|
||||
|
||||
currentShownIndex = -1;
|
||||
allMachineCheckBox.splice(0, allMachineCheckBox.length);//清空CheckBox数组
|
||||
//this.getMachines(isauto);//getMachines放在loadMapAlertLayer加载完成后执行
|
||||
this.getCompanyLocations();
|
||||
this.loadMapAlertLayer(isauto);
|
||||
|
||||
displayFilerIcon();
|
||||
}
|
||||
|
||||
this.getMachines = function (isauto) {
|
||||
var mal = $("#selMapAlertLayer").val();
|
||||
if (!mal) mal = "";
|
||||
|
||||
var item = {
|
||||
'IsAutoRefresh': isauto,
|
||||
'ViewID': mal,
|
||||
'ContractorID': companyids,
|
||||
'SearchText': htmlencode($("#txtMachineSearchText").val()),
|
||||
'Onroad': $("#selOnroad").val(),
|
||||
'Layers': parametervalues,
|
||||
'ExcludeNoLocation': $("#exclude00Div").attr("state") != "0", //$("#chkExcludeNoLoc").prop("checked"),
|
||||
'Attachment': $("#selAttachment").val()
|
||||
};
|
||||
|
||||
_network.mapviewquery("GetAssets", JSON.stringify(item), function (data) {
|
||||
if (typeof (data) !== "string") {
|
||||
mapHelper.clearMachine();
|
||||
allAssets = convertAssetObjs(data);
|
||||
updateAssets();
|
||||
|
||||
_this.getAssetGroups(item);//Asset取完再取group
|
||||
jobsiteObject.searchJobSite(isauto);//Asset取完再取jobsite
|
||||
|
||||
showAssets();
|
||||
|
||||
if (isFirstLoad || $("#autoRecenterDiv").attr("state") == "1") {
|
||||
isFirstLoad = false;
|
||||
zoomMap();
|
||||
}
|
||||
getNowFormatDate();
|
||||
}
|
||||
else {
|
||||
showMachineAlert();
|
||||
}
|
||||
inSearchingMachine = false;
|
||||
$('#loadingDiv').hide();
|
||||
}, function () {
|
||||
inSearchingMachine = false;
|
||||
showMachineAlert();
|
||||
$('#loadingDiv').hide();
|
||||
});
|
||||
}
|
||||
|
||||
function convertAssetObjs(data) {
|
||||
var assets = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var a = {};
|
||||
|
||||
var s = data[i];
|
||||
var s1 = s.split(String.fromCharCode(171));
|
||||
if (s1.length == 2) {//Dealer站点返回的数据,包含公司信息
|
||||
var cinfos = s1[0].split(String.fromCharCode(170));
|
||||
a.CompanyID = cinfos[0];
|
||||
a.CompanyName = cinfos[1];
|
||||
s = s1[1];
|
||||
}
|
||||
var ss = s.split(String.fromCharCode(170));
|
||||
a.ID = Number(ss[0]);
|
||||
a.VIN = ss[1];
|
||||
a.Name = ss[2];
|
||||
a.Name2 = ss[3];
|
||||
a.Make = ss[4];
|
||||
a.Model = ss[5];
|
||||
a.AssetType = ss[6];
|
||||
|
||||
a.Latitude = Number(ss[7]);
|
||||
a.Longitude = Number(ss[8]);
|
||||
a.IconUrl = ss[9];
|
||||
a.AlertTips = ss[10];
|
||||
a.Priority = Number(ss[11]);
|
||||
|
||||
if (ss[12] && ss[12] !== "") {
|
||||
a.AssetGroups = ss[12].split(",")
|
||||
}
|
||||
else {
|
||||
a.AssetGroups = [];
|
||||
}
|
||||
|
||||
if (ss[13] && ss[13] !== "") {
|
||||
a.JobSites = ss[13].split(",");
|
||||
}
|
||||
else {
|
||||
a.JobSites = [];
|
||||
}
|
||||
|
||||
a.DisplayName = a.Name2;
|
||||
if (!a.DisplayName || a.DisplayName === "")
|
||||
a.DisplayName = a.Name;
|
||||
if (!a.DisplayName || a.DisplayName === "")
|
||||
a.DisplayName = a.VIN;
|
||||
if (!a.DisplayName || a.DisplayName === "")
|
||||
a.DisplayName = a.ID;
|
||||
|
||||
assets.push(a);
|
||||
}
|
||||
return assets;
|
||||
}
|
||||
|
||||
this.getAssetGroups = function () {
|
||||
var item = {
|
||||
'ContractorID': companyids,
|
||||
'SearchText': "",//htmlencode($("#txtAssetGroupSearchText").val()) //在前端过滤Group,后端不再过滤
|
||||
};
|
||||
_network.mapviewquery("GetAssetGroups", JSON.stringify(item), function (data) {
|
||||
if (typeof (data) !== "string") {
|
||||
showAssetGroups(data);
|
||||
}
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
function showMachineAlert() {
|
||||
if (machineAlert) {
|
||||
_dialog.close(machineAlert);
|
||||
machineAlert = null;
|
||||
}
|
||||
machineAlert = _dialog.showAlert(GetTextByKey("P_MV_UNABLETOOBTAINASSETDATAATTEMPTINGTORECONNECT", 'Unable to obtain asset data. Attempting to reconnect...'), GetTextByKey("P_MV_REFRESHMACHINEDATA", 'Refresh machine data'));
|
||||
}
|
||||
|
||||
function showAssets() {
|
||||
var ams = [];
|
||||
for (var i = 0; i < allAssets.length; i++) {
|
||||
var m = allAssets[i];
|
||||
m.State = getMachineStateObj(m.ID);
|
||||
if (unshownMachineID.indexOf(m.ID) < 0) {//需要显示
|
||||
m.State.Selected = true;
|
||||
ams.push(m);
|
||||
allJobSiteMachine["MID" + m.ID] = m;
|
||||
}
|
||||
}
|
||||
mapHelper.showMachines(ams);
|
||||
vm.reload(allAssets);
|
||||
}
|
||||
|
||||
function showAssetGroups(groups) {
|
||||
for (var i = groups.length - 1; i >= 0; i--) {
|
||||
var g = groups[i];
|
||||
g.Collapsed = true;
|
||||
g.Selected = true;
|
||||
if (allGroups) {//get group state
|
||||
for (var j = 0; j < allGroups.length; j++) {
|
||||
var lg = allGroups[j];
|
||||
if (g.ID === lg.ID) {
|
||||
g.Collapsed = lg.Collapsed;
|
||||
g.Selected = lg.Selected;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var filter = $.trim($("#txtAssetGroupSearchText").val());
|
||||
g.Matched = true;
|
||||
if (filter != "" && g.Name.toLowerCase().indexOf(filter.toLocaleLowerCase()) < 0)
|
||||
g.Matched = false;
|
||||
|
||||
var assets = [];
|
||||
if (groupAssets[g.ID.toLowerCase()]) {
|
||||
var tempAssets = groupAssets[g.ID.toLowerCase()];
|
||||
for (var j = 0; j < tempAssets.length; j++) {//Assets
|
||||
var a = tempAssets[j];
|
||||
if (g.Matched || isAssetMatch(a, filter)) {
|
||||
assets.push(a);
|
||||
}
|
||||
}
|
||||
}
|
||||
g.Machines = assets;
|
||||
|
||||
if (!g.Matched && g.Machines.length == 0)
|
||||
groups.splice(i, 1);
|
||||
}
|
||||
|
||||
allGroups = groups;
|
||||
agvm.reload(allGroups);
|
||||
}
|
||||
|
||||
function zoomAssetGroup(group) {
|
||||
zoomMap(group.Machines);
|
||||
}
|
||||
|
||||
function zoomMap(assets) {
|
||||
if (!assets)
|
||||
assets = allAssets;
|
||||
if (assets && assets.length > 0) {
|
||||
var maxLong, minLong, maxLat, minLat = null;
|
||||
for (var i in assets) {
|
||||
var m = assets[i];
|
||||
if (!m.State.Selected) continue;//不计算不显示的
|
||||
//if (m.Longitude == 0 && m.Latitude == 0) continue;//不计算经纬度都为0的
|
||||
|
||||
if (maxLong == null || maxLong < m.Longitude)
|
||||
maxLong = m.Longitude;
|
||||
if (minLong == null || minLong > m.Longitude)
|
||||
minLong = m.Longitude;
|
||||
if (maxLat == null || maxLat < m.Latitude)
|
||||
maxLat = m.Latitude;
|
||||
if (minLat == null || minLat > m.Latitude)
|
||||
minLat = m.Latitude;
|
||||
}
|
||||
if (maxLong != minLong || maxLat != minLat) {//至少一个不相同
|
||||
var ext = new ExtentC();
|
||||
ext.xmax = maxLong + 0.001;
|
||||
ext.xmin = minLong - 0.001;
|
||||
ext.ymax = maxLat + 0.001;
|
||||
ext.ymin = minLat - 0.001;
|
||||
mapHelper.gotoMap(ext);
|
||||
}
|
||||
else {
|
||||
var point = new PointC({
|
||||
longitude: assets[0].Longitude,
|
||||
latitude: assets[0].Latitude
|
||||
});
|
||||
mapHelper.centerAt(point);
|
||||
}
|
||||
}
|
||||
else if (assets.length == 1) {
|
||||
var point = new PointC({
|
||||
longitude: assets[0].Longitude,
|
||||
latitude: assets[0].Latitude
|
||||
});
|
||||
mapHelper.centerAt(point);
|
||||
}
|
||||
}
|
||||
|
||||
function chkMachineClick(machine) {
|
||||
if (machine) {
|
||||
if (machine.State.Selected) {
|
||||
mapHelper.showMachine(machine);
|
||||
unshownMachineID.splice(unshownMachineID.indexOf(machine.ID), 1);
|
||||
}
|
||||
else {
|
||||
mapHelper.removeMachine(machine);
|
||||
unshownMachineID[unshownMachineID.length] = machine.ID;
|
||||
}
|
||||
|
||||
agvm.reload(allGroups);
|
||||
displayFilerIcon();
|
||||
}
|
||||
}
|
||||
|
||||
function linkMachineClick(machine) {
|
||||
if (machine) {
|
||||
if (machine.State.Selected) {
|
||||
mapHelper.locateMachine(machine);
|
||||
}
|
||||
else {
|
||||
machine.State.Selected = true;
|
||||
unshownMachineID.splice(unshownMachineID.indexOf(machine.ID), 1);
|
||||
mapHelper.showMachine(machine);
|
||||
mapHelper.locateMachine(machine);
|
||||
}
|
||||
|
||||
displayFilerIcon();
|
||||
}
|
||||
}
|
||||
|
||||
this.selectAllMachine = function (checked) {
|
||||
var ams = [];
|
||||
var rms = [];
|
||||
for (var i = 0; i < allMachineCheckBox.length; i++) {
|
||||
var item = allMachineCheckBox[i];
|
||||
var itemChecked = item.attr("checked") == "checked";
|
||||
if (checked != itemChecked) {
|
||||
item.attr("checked", checked);
|
||||
var machine = allMachineCheckBox[i].machine;
|
||||
if (checked) {
|
||||
ams.push(machine);
|
||||
unshownMachineID.splice(unshownMachineID.indexOf(machine.ID), 1);
|
||||
}
|
||||
else {
|
||||
unshownMachineID[unshownMachineID.length] = machine.ID;
|
||||
rms.push(machine);
|
||||
}
|
||||
}
|
||||
}
|
||||
mapHelper.showMachines(ams);
|
||||
mapHelper.removeMachines(rms);
|
||||
|
||||
displayFilerIcon();
|
||||
}
|
||||
|
||||
this.getContractor = function (callback) {
|
||||
_network.mapviewquery("GetContractors", "", function (data) {
|
||||
showContractors(data);
|
||||
if (callback)
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
function showContractors(data) {
|
||||
if (data && data.length > 0) {
|
||||
hasContractor = true;
|
||||
var sel = $("#selContractor");
|
||||
//for (var i = 0; i < data.length; i++) {
|
||||
// var c = data[i];
|
||||
// var opt = $('<option></option>').val(c.Key).text(c.Value);
|
||||
// sel.append(opt);
|
||||
//}
|
||||
sel.data('dropdown').setSource(data);
|
||||
if (userParams && userParams.MapViewContratorID && userParams.MapViewContratorID != "") {
|
||||
companyids = userParams.MapViewContratorID;
|
||||
sel.dropdownVals(userParams.MapViewContratorID.split(","));
|
||||
}
|
||||
$("#contractorCtrl").css("display", "inline-flex");
|
||||
$("#contentCtrl").css("top", 115 + 30);
|
||||
}
|
||||
else {
|
||||
$("#btnToggleTimeline").show();
|
||||
$("#btnImportShapeFile").show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this.getCompanyLocations = function () {
|
||||
var _this = this;
|
||||
_network.mapviewquery("GetCompanyLocations", companyids, function (data) {
|
||||
allLocations = data;
|
||||
if (allLocations && allLocations.length > 0)
|
||||
$("#showDealerLocationsDiv").css("display", "inline-block");
|
||||
else
|
||||
$("#showDealerLocationsDiv").hide();
|
||||
if ($("#showDealerLocationsDiv").attr("state") == "1")
|
||||
_this.showLocations();
|
||||
}, function () {
|
||||
$('#loadingDiv').hide();
|
||||
});
|
||||
}
|
||||
|
||||
this.showLocations = function () {
|
||||
if (allLocations) {
|
||||
for (var li in allLocations) {
|
||||
var loc = allLocations[li];
|
||||
mapHelper.showLocation(loc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.clearLocations = function () {
|
||||
if (allLocations) {
|
||||
for (var li in allLocations) {
|
||||
var loc = allLocations[li];
|
||||
mapHelper.removeLocation(loc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.loadMapAlertLayer = function (isauto) {
|
||||
var sel = $("#selMapAlertLayer");
|
||||
var selmal = sel.val();//记录已选择的值
|
||||
if (!selmal) selmal = userParams.MapAlertLayer;
|
||||
|
||||
var p = companyids + ";" + selmal;
|
||||
var _this = this;
|
||||
_network.mapviewquery("GetMapAlertLayers", p, function (data) {
|
||||
if (data && data.length > 0) {
|
||||
$("#mapAlertLayerDiv").show();
|
||||
$("#splitIconRight").show();
|
||||
$("#rightCtrl").show();
|
||||
showMapAlertLayer(data);
|
||||
}
|
||||
else {
|
||||
$("#mapAlertLayerDiv").hide();
|
||||
$("#splitIconRight").hide();
|
||||
$("#rightCtrl").hide();
|
||||
}
|
||||
|
||||
_this.getMachines(isauto);
|
||||
}, function () {
|
||||
$('#loadingDiv').hide();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getAssetByID(assetid) {//加载机器的详细信息
|
||||
_network.mapviewquery("GetAssetByID", JSON.stringify([assetid, companyids]), function (data) {
|
||||
if (data && typeof (data) !== "string") {
|
||||
mapHelper.showAssetDetailInfo(data);
|
||||
}
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
var assetLocations = [];//当前的位置信息
|
||||
var assetHisLocations = [];//历史记录的位置信息
|
||||
function getAssetPopupContent(cid, asset) {
|
||||
var loc = asset.Location;
|
||||
|
||||
var popContent = "<b>" + GetTextByKey("P_MV_NAME_COLON", "Name:") + " </b> " + htmlencode(asset.Name) + "<br/>";
|
||||
popContent += "<b>" + GetTextByKey("P_MV_NAMECUSTOM_COLON", "Name (Custom):") + " </b>" + htmlencode(asset.Name2) + "<br/>";
|
||||
popContent += "<b>" + GetTextByKey("P_MV_SN_COLON", "SN:") + " </b>" + asset.VIN + "<br/>";
|
||||
popContent += "<b>" + GetTextByKey("P_MV_MAKE_COLON", "Make:") + " </b>" + asset.Make + "<br/>";
|
||||
popContent += "<b>" + GetTextByKey("P_MV_MODEL_COLON", "Model:") + " </b>" + asset.Model + "<br/>";
|
||||
popContent += "<b>" + GetTextByKey("P_MV_TYPE_COLON", "Type:") + " </b>" + asset.AssetType + "<br/>";
|
||||
if (asset.EngineHours > 0) {
|
||||
popContent += "<b>" + GetTextByKey("P_MV_ENGINEHOURS_COLON", "Engine Hours:") + " </b>" + asset.EngineHours.toLocaleString() + "<br/>";
|
||||
}
|
||||
if (asset.Odometer > 0) {
|
||||
var odometerInfo = asset.Odometer.toLocaleString();
|
||||
if (asset.Odometer > 0 && asset.OdometerUOM) {
|
||||
odometerInfo += " " + asset.OdometerUOM;
|
||||
}
|
||||
popContent += "<b>" + GetTextByKey("P_MV_ODOMETER_COLON", "Odometer:") + " </b>" + odometerInfo + "<br/>";
|
||||
}
|
||||
if (loc.LocationTimeText !== "")
|
||||
popContent += "<b>" + GetTextByKey("P_MV_LOCATIONUPDATED_COLON", "Location Updated:") + " </b>" + loc.LocationTimeText + "<br/>";
|
||||
if (asset.EngineHours > 0 && asset.EngineHoursDateText !== "")
|
||||
popContent += "<b>" + GetTextByKey("P_MV_ENGINEHOURSUPDATED_COLON", "Engine Hours Updated:") + " </b>" + asset.EngineHoursDateText + "<br/>";
|
||||
var speed = "";
|
||||
if (loc.Speed >= 0)
|
||||
speed = loc.Speed + " " + (loc.SpeedUnit === "mi/h" ? "mph" : loc.SpeedUnit);
|
||||
if (speed !== "")
|
||||
popContent += "<b>" + GetTextByKey("P_MV_CURRENTSPEED_COLON", "Current Speed:") + " </b>" + speed + "<br/>";
|
||||
var postedspeed = "";
|
||||
if (loc.PostedSpeed > 0)
|
||||
postedspeed = loc.PostedSpeed + " " + loc.PostedSpeedUnit;
|
||||
if (postedspeed !== "")
|
||||
popContent += "<b>" + GetTextByKey("P_MV_POSTEDSPEED_COLON", "Posted Speed:") + " </b>" + postedspeed + "<br/>";
|
||||
if (loc.Street !== "")
|
||||
popContent += "<b>" + GetTextByKey("P_MV_STREET_COLON", "Street:") + " </b>" + loc.Street + "<br/>";
|
||||
if (asset.GroupNames !== "")
|
||||
popContent += "<b>" + GetTextByKey("P_MV_GROUPS_COLON", "Groups:") + " </b>" + htmlencode(asset.GroupNames) + "<br/>";
|
||||
if (asset.Description && asset.Description !== "") {
|
||||
asset.Description = htmlencode(asset.Description)
|
||||
if (asset.Description.indexOf("\r\n") > -1) {
|
||||
var reg = new RegExp("\r\n", "g");
|
||||
asset.Description = asset.Description.replace(reg, "<br/>");
|
||||
}
|
||||
if (asset.Description.indexOf("\n") > -1) {
|
||||
var reg = new RegExp("\n", "g");
|
||||
asset.Description = asset.Description.replace(reg, "<br/>");
|
||||
}
|
||||
popContent += "<br/><b>" + GetTextByKey("P_MV_DESCRIPTION_COLON", "Description:") + " </b><br/>" + asset.Description + "<br/>";
|
||||
}
|
||||
if (asset.AlertTip) {
|
||||
asset.AlertTip = htmlencode(asset.AlertTip)
|
||||
if (asset.AlertTip.indexOf("\r\n") > -1) {
|
||||
var reg = new RegExp("\r\n", "g");
|
||||
asset.AlertTip = asset.AlertTip.replace(reg, "<br/>");
|
||||
}
|
||||
popContent += "<br/>" + asset.AlertTip + "<br/>";
|
||||
}
|
||||
if (!notShowIcons) {
|
||||
var div_icon = '<div style="margin-top:10px;">';
|
||||
|
||||
div_icon += '<span class="icondetail" style="margin-right: 10px; cursor: pointer; " onclick="showMachineDetail(\'' + cid + '\',' + asset.ID + ', \'' + encodeURIComponent(asset.VIN).replace("'", "\\'") + '\')" title="' + GetTextByKey("P_MV_DETAIL", "Detail") + '"></span>';
|
||||
div_icon += '<span class="icondirection" style="margin-right: 10px;cursor: pointer;" onclick="doDirections(' + loc.Latitude + ',\'' + loc.Longitude + '\')" title="' + GetTextByKey("P_MV_DIRECTIONS", "Directions") + '"></span>';
|
||||
|
||||
if (loc.FromSmartWitness && enableSmartWitness)
|
||||
div_icon += "<span class='iconvideo' style='margin-right: 10px;cursor:pointer;' onclick='openRequestVideoDialog(\"" + cid + "\"," + asset.ID + ")' title='" + GetTextByKey("P_MV_VIDEOREQUEST", "Video Request") + "'></span>";
|
||||
|
||||
div_icon += "<span class='iconmail' style='margin-right: 10px;cursor:pointer;' onclick='openSendEmails(\"" + cid + "\"," + asset.ID + ",0)' title='" + GetTextByKey("P_MV_SENDLOCATION", "Send Location") + "'></span>";
|
||||
assetLocations[asset.ID] = loc;
|
||||
|
||||
div_icon += '<span class="iconweather" style="margin-right: 10px; cursor: pointer; " onclick="doWeather(' + loc.Latitude + ',\'' + loc.Longitude + '\')" title="' + GetTextByKey("P_MV_WEATHER", "Weather") + '"></span>';
|
||||
|
||||
if (canEditAsset)
|
||||
div_icon += '<span class="iconasset" style="margin-right: 10px; cursor: pointer; " onclick="OnEditAsset(\'' + cid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_MV_EDITASSET", "Edit Asset") + '"></span>';
|
||||
if (canViewWorkOrder)
|
||||
div_icon += '<span class="iconmapworkorder" style="margin-right: 10px; cursor: pointer; " onclick="OnViewWorkOrder(\'' + cid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_MV_WORKORDERS", "Work Orders") + '"></span>';
|
||||
if (canViewMR)
|
||||
div_icon += '<span class="iconmaintenancerecord" style="margin-right: 10px; cursor: pointer; " onclick="OnViewMaintenanceRecord(\'' + cid + '\',\'' + asset.ID + '\')" title="' + GetTextByKey("P_MV_MAINTENANCERECORD", "Maintenance Record") + '"></span>';
|
||||
|
||||
div_icon += '<span class="iconlochis" style="margin-right: 10px; cursor: pointer; " onclick="doLocationHistory(\'' + cid + '\',' + asset.ID + ', \'' + encodeURIComponent(asset.DisplayName).replace("'", "\\'") + '\')" title="' + GetTextByKey("P_MA_LOCATIONHISTORY", "Location History") + '" data-asset=' + asset + '></span>';
|
||||
|
||||
div_icon += "</div>";
|
||||
popContent += div_icon;
|
||||
}
|
||||
|
||||
return popContent;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/***this file is used in MapView.aspx****/
|
||||
var PopupViewShowing = false;
|
||||
|
||||
function machineDetailClick(m) {
|
||||
if (m) {
|
||||
showMachineDetail(m.CompanyID, m.ID, m.VIN);
|
||||
|
||||
clearLocationHistory();//关闭历史记录
|
||||
$("#locationhistoryDiv").hide();
|
||||
$("#tripDiv").hide();
|
||||
|
||||
if (selectedAsset)
|
||||
selectedAsset.State.Highlight = false;
|
||||
m.State.Highlight = true;
|
||||
selectedAsset = m;
|
||||
}
|
||||
}
|
||||
|
||||
function showMachineDetail(cid, mid, vin) {
|
||||
$("#divassetview").show();
|
||||
$('#divtimelineview').hide();
|
||||
$("#divmapview").hide();
|
||||
execIframeFunc("loadAsset", [cid, mid, vin, 0], "ifassetview");
|
||||
PopupViewShowing = true;
|
||||
}
|
||||
function closePopupView() {
|
||||
$("#divassetview").hide();
|
||||
$('#divtimelineview').hide();
|
||||
$("#divmapview").show();
|
||||
PopupViewShowing = false;
|
||||
if (selectedAsset)
|
||||
selectedAsset.State.Highlight = false;
|
||||
}
|
||||
@@ -0,0 +1,603 @@
|
||||
define([
|
||||
"dojo/_base/declare",
|
||||
"dojo/_base/array",
|
||||
"esri/Color",
|
||||
"dojo/_base/connect",
|
||||
|
||||
"esri/SpatialReference",
|
||||
"esri/geometry/Point",
|
||||
"esri/graphic",
|
||||
"esri/symbols/SimpleMarkerSymbol",
|
||||
"esri/symbols/PictureMarkerSymbol",
|
||||
"esri/symbols/TextSymbol",
|
||||
"esri/symbols/Font",
|
||||
"esri/geometry/webMercatorUtils",
|
||||
|
||||
"esri/dijit/PopupTemplate",
|
||||
"esri/layers/GraphicsLayer"
|
||||
], function (
|
||||
declare, arrayUtils, Color, connect,
|
||||
SpatialReference, Point, Graphic, SimpleMarkerSymbol, PictureMarkerSymbol, TextSymbol, Font, webMercatorUtils,
|
||||
PopupTemplate, GraphicsLayer
|
||||
) {
|
||||
return declare([GraphicsLayer], {
|
||||
constructor: function (options) {
|
||||
// options:
|
||||
// data: Object[]
|
||||
// Array of objects. Required. Object are required to have properties named x, y and attributes. The x and y coordinates have to be numbers that represent a points coordinates.
|
||||
// distance: Number?
|
||||
// Optional. The max number of pixels between points to group points in the same cluster. Default value is 50.
|
||||
// labelColor: String?
|
||||
// Optional. Hex string or array of rgba values used as the color for cluster labels. Default value is #fff (white).
|
||||
// labelOffset: String?
|
||||
// Optional. Number of pixels to shift a cluster label vertically. Defaults to -5 to align labels with circle symbols. Does not work in IE.
|
||||
// resolution: Number
|
||||
// Required. Width of a pixel in map coordinates. Example of how to calculate:
|
||||
// map.extent.getWidth() / map.width
|
||||
// showSingles: Boolean?
|
||||
// Optional. Whether or graphics should be displayed when a cluster graphic is clicked. Default is true.
|
||||
// singleSymbol: MarkerSymbol?
|
||||
// Marker Symbol (picture or simple). Optional. Symbol to use for graphics that represent single points. Default is a small gray SimpleMarkerSymbol.
|
||||
// singleTemplate: PopupTemplate?
|
||||
// PopupTemplate</a>. Optional. Popup template used to format attributes for graphics that represent single points. Default shows all attributes as "attribute = value" (not recommended).
|
||||
// maxSingles: Number?
|
||||
// Optional. Threshold for whether or not to show graphics for points in a cluster. Default is 1000.
|
||||
// webmap: Boolean?
|
||||
// Optional. Whether or not the map is from an ArcGIS.com webmap. Default is false.
|
||||
// spatialReference: SpatialReference?
|
||||
// Optional. Spatial reference for all graphics in the layer. This has to match the spatial reference of the map. Default is 102100. Omit this if the map uses basemaps in web mercator.
|
||||
|
||||
this._clusterTolerance = options.distance || 60;
|
||||
this._clusterData = options.data || [];
|
||||
this._clusters = [];
|
||||
this._clusterLabelColor = options.labelColor || "#000";
|
||||
this._clusterLabelFontSize = options.labelFontSize || "12px";
|
||||
this._clusterLabelFontFamily = options.labelFontFamily || "Calibri";
|
||||
this._clusterLabelFontWeight = options.labelFontWeight || Font.WEIGHT_NORMAL;
|
||||
// labelOffset can be zero so handle it differently
|
||||
this._clusterLabelOffset = (options.hasOwnProperty("labelOffset")) ? options.labelOffset : -5;
|
||||
// graphics that represent a single point
|
||||
this._singles = []; // populated when a graphic is clicked
|
||||
this._showSingles = options.hasOwnProperty("showSingles") ? options.showSingles : false;
|
||||
// symbol for single graphics
|
||||
var SMS = SimpleMarkerSymbol;
|
||||
this._singleSym = options.singleSymbol || new SMS("circle", 6, null, new Color("#888"));
|
||||
this._singleTemplate = options.singleTemplate || new PopupTemplate({ "title": "", "description": "{infoContent}" });
|
||||
this._maxSingles = options.maxSingles || 1000;
|
||||
|
||||
this._webmap = options.hasOwnProperty("webmap") ? options.webmap : false;
|
||||
|
||||
this._sr = options.spatialReference;// || new SpatialReference({ "wkid": 4326 });
|
||||
|
||||
this._zoomEnd = null;
|
||||
//this._popupChanged = null;
|
||||
this._getClusterResolution = null;
|
||||
|
||||
this._popupedClusterData = null;//当前Popup显示的点
|
||||
},
|
||||
|
||||
// override esri/layers/GraphicsLayer methods
|
||||
_setMap: function (map, surface) {
|
||||
this._getClusterResolution = function (map) {
|
||||
// calculate and set the initial resolution
|
||||
var ext = map.extent;
|
||||
ext = webMercatorUtils.webMercatorToGeographic(ext);
|
||||
// update resolution
|
||||
this._clusterResolution = ext.getHeight() / map.height;
|
||||
};
|
||||
|
||||
// connect to onZoomEnd so data is re-clustered when zoom level changes
|
||||
this._zoomEnd = connect.connect(map, "onZoomEnd", this, function () {
|
||||
this.reloadData();
|
||||
});
|
||||
|
||||
//this._popupChanged = connect.connect(map.infoWindow, "onSelectionChange", function () {
|
||||
// var graphic = map.infoWindow.getSelectedFeature();
|
||||
// //showInfoWindow(graphic);
|
||||
// //map.infoWindow.selectedIndex
|
||||
// //map.infoWindow.count
|
||||
//});
|
||||
|
||||
this._getClusterResolution(map);
|
||||
this.clear();
|
||||
this._clusterGraphics();
|
||||
|
||||
// GraphicsLayer will add its own listener here
|
||||
var div = this.inherited(arguments);
|
||||
return div;
|
||||
},
|
||||
|
||||
_unsetMap: function () {
|
||||
this.inherited(arguments);
|
||||
connect.disconnect(this._zoomEnd);
|
||||
connect.disconnect(this._popupChanged);
|
||||
},
|
||||
|
||||
reloadData: function () {
|
||||
if (typeof this._getClusterResolution !== 'function') {
|
||||
var _this = this;
|
||||
setTimeout(function () {
|
||||
_this.reloadData();
|
||||
}, 200);
|
||||
console.log("reloadData");
|
||||
return;
|
||||
}
|
||||
this._getClusterResolution(this._map);
|
||||
this.clear();
|
||||
this._clusterGraphics();
|
||||
|
||||
//重新显示Popup
|
||||
//this._map.infoWindow.hide();
|
||||
//this.clearSingles();
|
||||
if (this._popupedClusterData != null)
|
||||
this.locate(this._popupedClusterData);
|
||||
},
|
||||
|
||||
// public ClusterLayer methods
|
||||
add: function (p) {
|
||||
// Summary: The argument is a data point to be added to an existing cluster. If the data point falls within an existing cluster, it is added to that cluster and the cluster's label is updated. If the new point does not fall within an existing cluster, a new cluster is created.
|
||||
//
|
||||
// if passed a graphic, use the GraphicsLayer's add method
|
||||
if (p.declaredClass) {
|
||||
this.inherited(arguments);
|
||||
return;
|
||||
}
|
||||
|
||||
// add the new data to _clusterData so that it's included in clusters
|
||||
// when the map level changes
|
||||
this._clusterData.push(p);
|
||||
var clustered = false;
|
||||
// look for an existing cluster for the new point
|
||||
for (var i = 0; i < this._clusters.length; i++) {
|
||||
var c = this._clusters[i];
|
||||
if (this._clusterTest(p, c)) {
|
||||
// add the point to an existing cluster
|
||||
this._clusterAddPoint(p, c);
|
||||
// update the cluster's geometry
|
||||
this._updateClusterGeometry(c);
|
||||
// update the label
|
||||
this._updateLabel(c);
|
||||
clustered = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!clustered) {
|
||||
this._clusterCreate(p);
|
||||
p.attributes.clusterCount = 1;
|
||||
this._showCluster(p);
|
||||
}
|
||||
},
|
||||
|
||||
// public ClusterLayer methods
|
||||
adds: function (ps) {
|
||||
for (var j = 0; j < ps.length; j++) {
|
||||
var p = ps[j];
|
||||
// Summary: The argument is a data point to be added to an existing cluster. If the data point falls within an existing cluster, it is added to that cluster and the cluster's label is updated. If the new point does not fall within an existing cluster, a new cluster is created.
|
||||
//
|
||||
// if passed a graphic, use the GraphicsLayer's add method
|
||||
if (p.declaredClass) {
|
||||
this.inherited(arguments);
|
||||
return;
|
||||
}
|
||||
|
||||
// add the new data to _clusterData so that it's included in clusters
|
||||
// when the map level changes
|
||||
this._clusterData.push(p);
|
||||
}
|
||||
this.reloadData();
|
||||
},
|
||||
|
||||
remove: function (p) {
|
||||
if (p.declaredClass) {
|
||||
this.inherited(arguments);
|
||||
return;
|
||||
}
|
||||
// look for an existing cluster for the new point
|
||||
for (var i = 0; i < this._clusterData.length; i++) {
|
||||
var cd = this._clusterData[i];
|
||||
if (cd.id == p.id) {
|
||||
this._clusterData.splice(i, 1);
|
||||
this.reloadData();
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
removes: function (ps) {
|
||||
for (var j = 0; j < ps.length; j++) {
|
||||
var p = ps[j];
|
||||
if (p.declaredClass) {
|
||||
this.inherited(p);
|
||||
continue;
|
||||
}
|
||||
// look for an existing cluster for the new point
|
||||
for (var i = 0; i < this._clusterData.length; i++) {
|
||||
var cd = this._clusterData[i];
|
||||
if (cd.id == p.id) {
|
||||
this._clusterData.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.reloadData();
|
||||
},
|
||||
|
||||
removebyid: function (psid) {
|
||||
var clusterdata = [];
|
||||
for (var i = 0; i < this._clusterData.length; i++) {
|
||||
var cd = this._clusterData[i];
|
||||
if (psid.indexOf(cd.id) < 0) {
|
||||
clusterdata.push(cd);
|
||||
}
|
||||
}
|
||||
this._clusterData = clusterdata;
|
||||
this.reloadData();
|
||||
},
|
||||
|
||||
locate: function (p, center, notShowInfowindow) {
|
||||
// look for an existing cluster for the new point
|
||||
var _this = this;
|
||||
if (!this._map) {
|
||||
setTimeout(function () {
|
||||
_this.locate(p, center, notShowInfowindow);
|
||||
},200)
|
||||
return;
|
||||
}
|
||||
var cp = null;
|
||||
for (var i = 0; i < this._clusterData.length; i++) {
|
||||
var cd = this._clusterData[i];
|
||||
if (cd.id == p.id) {
|
||||
cp = cd;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (cp) {
|
||||
// remove any previously showing single features
|
||||
this.clearSingles(this._singles);
|
||||
var cg = arrayUtils.filter(this.graphics, function (g) {
|
||||
return g.symbol &&
|
||||
g.symbol.declaredClass == "esri.symbol.PictureMarkerSymbol" &&
|
||||
g.attributes.clusterId == cp.attributes.clusterId;
|
||||
});
|
||||
if (cg.length == 1) {
|
||||
this._popupedClusterData = null;
|
||||
var singles = [];
|
||||
var index = 0;
|
||||
for (var i = 0, il = this._clusterData.length; i < il; i++) {
|
||||
if (cg[0].attributes.clusterId == this._clusterData[i].attributes.clusterId) {
|
||||
singles.push(this._clusterData[i]);
|
||||
if (this._popupedClusterData == null)
|
||||
this._popupedClusterData = this._clusterData[i];
|
||||
if (this._clusterData[i].id == p.id) {
|
||||
index = singles.length - 1;
|
||||
this._popupedClusterData = this._clusterData[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
var tmap = this._map;
|
||||
this._addSingles(singles);
|
||||
setTimeout(function () {
|
||||
if (enableInfoWindow && !notShowInfowindow) {
|
||||
tmap.infoWindow.show(cg[0].geometry);
|
||||
tmap.infoWindow.resize(320, 340);//resize只能设置max-height
|
||||
$(".contentPane").css("height", 340);
|
||||
}
|
||||
tmap.infoWindow.select(index);
|
||||
|
||||
if (center) {
|
||||
var point = new Point({
|
||||
longitude: p.x,
|
||||
latitude: p.y
|
||||
});
|
||||
tmap.centerAt(point);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
var tmap = this._map;
|
||||
setTimeout(function () {
|
||||
tmap.infoWindow.hide();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
clear: function () {
|
||||
// Summary: Remove all clusters and data points.
|
||||
this.inherited(arguments);
|
||||
this._clusters.length = 0;
|
||||
},
|
||||
|
||||
clearData: function () {
|
||||
// Summary: Remove all clusters, data and points.
|
||||
this.clear();
|
||||
this._clusterData = [];
|
||||
this._popupedClusterData = null;
|
||||
arrayUtils.clearCache();
|
||||
},
|
||||
|
||||
clearSingles: function (singles) {
|
||||
// Summary: Remove graphics that represent individual data points.
|
||||
var s = singles || this._singles;
|
||||
if (this._showSingles) {
|
||||
arrayUtils.forEach(s, function (g) {
|
||||
this.remove(g);
|
||||
}, this);
|
||||
}
|
||||
this._singles.length = 0;
|
||||
this._map.infoWindow.clearFeatures();
|
||||
},
|
||||
|
||||
onClick: function (e) {
|
||||
// remove any previously showing single features
|
||||
this.clearSingles(this._singles);
|
||||
|
||||
// find single graphics that make up the cluster that was clicked
|
||||
// would be nice to use filter but performance tanks with large arrays in IE
|
||||
this._popupedClusterData = null;
|
||||
var singles = [];
|
||||
for (var i = 0, il = this._clusterData.length; i < il; i++) {
|
||||
if (e.graphic.attributes.clusterId == this._clusterData[i].attributes.clusterId) {
|
||||
singles.push(this._clusterData[i]);
|
||||
if (this._popupedClusterData == null)
|
||||
this._popupedClusterData = this._clusterData[i];
|
||||
}
|
||||
}
|
||||
|
||||
//if (singles.length > this._maxSingles) {
|
||||
// alert("Sorry, that cluster contains more than " + this._maxSingles + " points. Zoom in for more detail.");
|
||||
// return;
|
||||
//} else {
|
||||
// stop the click from bubbling to the map
|
||||
e.stopPropagation();
|
||||
if (enableInfoWindow) {
|
||||
this._map.infoWindow.show(e.graphic.geometry);
|
||||
this._map.infoWindow.resize(320, 340);//resize只能设置max-height
|
||||
$(".contentPane").css("height", 340);
|
||||
}
|
||||
this._addSingles(singles);
|
||||
//}
|
||||
},
|
||||
|
||||
// internal methods
|
||||
_clusterGraphics: function () {
|
||||
// first time through, loop through the points
|
||||
for (var j = 0, jl = this._clusterData.length; j < jl; j++) {
|
||||
// see if the current feature should be added to a cluster
|
||||
var point = this._clusterData[j];
|
||||
var clustered = false;
|
||||
var numClusters = this._clusters.length;
|
||||
for (var i = 0; i < this._clusters.length; i++) {
|
||||
var c = this._clusters[i];
|
||||
if (this._clusterTest(point, c)) {
|
||||
this._clusterAddPoint(point, c);
|
||||
clustered = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!clustered) {
|
||||
this._clusterCreate(point);
|
||||
}
|
||||
}
|
||||
this._showAllClusters();
|
||||
},
|
||||
|
||||
_clusterTest: function (p, cluster) {
|
||||
var distance = (
|
||||
Math.sqrt(
|
||||
Math.pow((cluster.x - p.x), 2) + Math.pow((cluster.y - p.y), 2)
|
||||
) / this._clusterResolution
|
||||
);
|
||||
return (distance <= this._clusterTolerance);
|
||||
},
|
||||
|
||||
// points passed to clusterAddPoint should be included
|
||||
// in an existing cluster
|
||||
// also give the point an attribute called clusterId
|
||||
// that corresponds to its cluster
|
||||
_clusterAddPoint: function (p, cluster) {
|
||||
// average in the new point to the cluster geometry
|
||||
var count, x, y;
|
||||
count = cluster.attributes.clusterCount;
|
||||
x = (p.x + (cluster.x * count)) / (count + 1);
|
||||
y = (p.y + (cluster.y * count)) / (count + 1);
|
||||
cluster.x = x;
|
||||
cluster.y = y;
|
||||
|
||||
// build an extent that includes all points in a cluster
|
||||
// extents are for debug/testing only...not used by the layer
|
||||
if (p.x < cluster.attributes.extent[0]) {
|
||||
cluster.attributes.extent[0] = p.x;
|
||||
} else if (p.x > cluster.attributes.extent[2]) {
|
||||
cluster.attributes.extent[2] = p.x;
|
||||
}
|
||||
if (p.y < cluster.attributes.extent[1]) {
|
||||
cluster.attributes.extent[1] = p.y;
|
||||
} else if (p.y > cluster.attributes.extent[3]) {
|
||||
cluster.attributes.extent[3] = p.y;
|
||||
}
|
||||
|
||||
// increment the count
|
||||
cluster.attributes.clusterCount++;
|
||||
// attributes might not exist
|
||||
if (!p.hasOwnProperty("attributes")) {
|
||||
p.attributes = {};
|
||||
}
|
||||
// give the graphic a cluster id
|
||||
p.attributes.clusterId = cluster.attributes.clusterId;
|
||||
|
||||
if (p.attributes.Priority < cluster.attributes.Priority) {
|
||||
cluster.attributes.Priority = p.attributes.Priority;
|
||||
cluster.attributes.EmptyIconUrl = p.attributes.EmptyIconUrl;
|
||||
}
|
||||
},
|
||||
|
||||
// point passed to clusterCreate isn't within the
|
||||
// clustering distance specified for the layer so
|
||||
// create a new cluster for it
|
||||
_clusterCreate: function (p) {
|
||||
var clusterId = this._clusters.length + 1;
|
||||
// console.log("cluster create, id is: ", clusterId);
|
||||
// p.attributes might be undefined
|
||||
if (!p.attributes) {
|
||||
p.attributes = {};
|
||||
}
|
||||
p.attributes.clusterId = clusterId;
|
||||
// create the cluster
|
||||
var cluster = {
|
||||
"x": p.x,
|
||||
"y": p.y,
|
||||
"attributes": JSON.parse(JSON.stringify(p.attributes))
|
||||
};
|
||||
cluster.attributes.clusterCount = 1;
|
||||
cluster.attributes.extent = [p.x, p.y, p.x, p.y];
|
||||
this._clusters.push(cluster);
|
||||
},
|
||||
|
||||
_showAllClusters: function () {
|
||||
for (var i = 0, il = this._clusters.length; i < il; i++) {
|
||||
var c = this._clusters[i];
|
||||
this._showCluster(c);
|
||||
}
|
||||
},
|
||||
|
||||
_showCluster: function (c) {
|
||||
var point = new Point(c.x, c.y, this._sr);
|
||||
|
||||
var iconUrl = "";
|
||||
if (c.attributes.clusterCount > 1)
|
||||
iconUrl = c.attributes.EmptyIconUrl;
|
||||
else
|
||||
iconUrl = c.attributes.IconUrl;
|
||||
|
||||
var picSym = new PictureMarkerSymbol(iconUrl, 40, 65);//url,width,height
|
||||
picSym.setOffset(0, 29);
|
||||
this.add(
|
||||
new Graphic(
|
||||
point,
|
||||
picSym,
|
||||
c.attributes
|
||||
)
|
||||
);
|
||||
// code below is used to not label clusters with a single point
|
||||
if (c.attributes.clusterCount == 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
// show number of points in the cluster
|
||||
var label = new TextSymbol(c.attributes.clusterCount.toString())
|
||||
.setColor(new Color(this._clusterLabelColor))
|
||||
.setOffset(0, this._clusterLabelOffset);
|
||||
var font = new Font();
|
||||
font.setSize(this._clusterLabelFontSize);
|
||||
font.setFamily(this._clusterLabelFontFamily);
|
||||
font.setWeight(this._clusterLabelFontWeight);
|
||||
label.setFont(font);
|
||||
|
||||
this.add(
|
||||
new Graphic(
|
||||
point,
|
||||
label,
|
||||
c.attributes
|
||||
)
|
||||
);
|
||||
},
|
||||
|
||||
_addSingles: function (singles) {
|
||||
// add single graphics to the map
|
||||
arrayUtils.forEach(singles, function (p) {
|
||||
var g = new Graphic(
|
||||
new Point(p.x, p.y, this._sr),
|
||||
this._singleSym,
|
||||
p.attributes,
|
||||
this._singleTemplate
|
||||
);
|
||||
this._singles.push(g);
|
||||
if (this._showSingles) {
|
||||
this.add(g);
|
||||
}
|
||||
}, this);
|
||||
this._map.infoWindow.setFeatures(this._singles);
|
||||
},
|
||||
|
||||
_updateClusterGeometry: function (c) {
|
||||
// find the cluster graphic
|
||||
var cg = arrayUtils.filter(this.graphics, function (g) {
|
||||
return g.symbol &&
|
||||
g.symbol.declaredClass == "esri.symbol.PictureMarkerSymbol" &&
|
||||
g.attributes.clusterId == c.attributes.clusterId;
|
||||
});
|
||||
if (cg.length == 1) {
|
||||
// console.log("update label...found: ", label);
|
||||
this.remove(cg[0]);
|
||||
}
|
||||
var picSym = new PictureMarkerSymbol(c.attributes.EmptyIconUrl, 40, 65);//url,width,height
|
||||
picSym.setOffset(0, 29);
|
||||
this.add(
|
||||
new Graphic(
|
||||
new Point(c.x, c.y, this._sr),
|
||||
picSym,
|
||||
c.attributes
|
||||
)
|
||||
);
|
||||
|
||||
//if (cg.length == 1) {
|
||||
// cg[0].geometry.update(c.x, c.y);
|
||||
//} else {
|
||||
// console.log("didn't find exactly one cluster geometry to update: ", cg);
|
||||
//}
|
||||
},
|
||||
|
||||
_updateLabel: function (c) {
|
||||
// find the existing label
|
||||
var label = arrayUtils.filter(this.graphics, function (g) {
|
||||
return g.symbol &&
|
||||
g.symbol.declaredClass == "esri.symbol.TextSymbol" &&
|
||||
g.attributes.clusterId == c.attributes.clusterId;
|
||||
});
|
||||
if (label.length == 1) {
|
||||
// console.log("update label...found: ", label);
|
||||
this.remove(label[0]);
|
||||
}
|
||||
var newLabel = new TextSymbol(c.attributes.clusterCount)
|
||||
.setColor(new Color(this._clusterLabelColor))
|
||||
.setOffset(0, this._clusterLabelOffset);
|
||||
var font = new Font();
|
||||
font.setSize(this._clusterLabelFontSize);
|
||||
font.setFamily(this._clusterLabelFontFamily);
|
||||
font.setWeight(this._clusterLabelFontWeight);
|
||||
newLabel.setFont(font);
|
||||
|
||||
this.add(
|
||||
new Graphic(
|
||||
new Point(c.x, c.y, this._sr),
|
||||
newLabel,
|
||||
c.attributes
|
||||
)
|
||||
);
|
||||
// console.log("updated the label");
|
||||
|
||||
//else {
|
||||
// console.log("didn't find exactly one label: ", label);
|
||||
//}
|
||||
},
|
||||
|
||||
// debug only...never called by the layer
|
||||
_clusterMeta: function () {
|
||||
// print total number of features
|
||||
console.log("Total: ", this._clusterData.length);
|
||||
|
||||
// add up counts and print it
|
||||
var count = 0;
|
||||
arrayUtils.forEach(this._clusters, function (c) {
|
||||
count += c.attributes.clusterCount;
|
||||
});
|
||||
console.log("In clusters: ", count);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,412 @@
|
||||
|
||||
|
||||
var unshownJobSiteID = [];//不需要显示的JobSiteID
|
||||
/******************************JobsiteObject******************************/
|
||||
/******************************JobSite信息获取及显示******************************/
|
||||
if (typeof (JobsiteObject) != "function") {
|
||||
JobsiteObject = function (mapHelper) {
|
||||
var allJobsites;
|
||||
var REDUN = 2;
|
||||
var MIN_LENGTH = 40;
|
||||
var trunc = function (val) {
|
||||
return (val > 0 ? Math.floor : Math.ceil)(val);
|
||||
};
|
||||
|
||||
this.getUnShownMachines = function () {
|
||||
return unshownMachineID;
|
||||
}
|
||||
this.setUnShownMachines = function (machines) {
|
||||
//if (machines)
|
||||
// unshownMachineID = JSON.parse(JSON.stringify(machines));
|
||||
//else
|
||||
// unshownMachineID = [];
|
||||
}
|
||||
this.getUnShownJobsites = function () {
|
||||
return unshownJobSiteID;
|
||||
}
|
||||
this.setUnShownJobsites = function (jobsites) {
|
||||
unshownJobSiteID = [];
|
||||
if (jobsites) {
|
||||
for (var i in jobsites) {
|
||||
unshownJobSiteID.push(eval(jobsites[i]));//jobsite id 为数值类型
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var ROW_JOBSITE_HEIGHT = 26;
|
||||
var jobsiteData = [];
|
||||
var jobsiteMachines = [];
|
||||
var jsvm = new Vue({
|
||||
el: '#jobsiteList',
|
||||
data: {
|
||||
startIndex: 0,
|
||||
bodyContentStyle: { top: null },
|
||||
bodyContainerHeight: 0,
|
||||
bodyContainerStyle: { height: null },
|
||||
scrollTop: 0
|
||||
},
|
||||
computed: {
|
||||
bodyClientRowCount: function () {
|
||||
var height = document.getElementById('contentCtrl').clientHeight;
|
||||
return trunc((height - 1) / ROW_JOBSITE_HEIGHT) + 1;
|
||||
},
|
||||
innerJobsiteMachines: function () {
|
||||
var start = this.startIndex;
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
}
|
||||
if (jobsiteMachines == null || jobsiteMachines.length < MIN_LENGTH) {
|
||||
return jobsiteMachines.slice();
|
||||
}
|
||||
var end = this.bodyClientRowCount + start + (REDUN * 2) + 1;
|
||||
if (end > jobsiteMachines.length) {
|
||||
end = jobsiteMachines.length;
|
||||
}
|
||||
return jobsiteMachines.slice(start, end);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
fillMachines: function () {
|
||||
var g = [];
|
||||
var allindeterminate = false;
|
||||
var jsselcount = 0;
|
||||
for (var i = 0; i < jobsiteData.length; i++) {
|
||||
var o = jobsiteData[i];
|
||||
o.__isJobsite = true;
|
||||
o.__indeterminate = false;
|
||||
g.push(o);
|
||||
var selcount = 0;
|
||||
if (o.Machines && o.Machines.length > 0) {
|
||||
for (var j = 0; j < o.Machines.length; j++) {
|
||||
var om = o.Machines[j];
|
||||
if (om.State.Selected) selcount++;
|
||||
if (!o.Collapsed)
|
||||
g.push(o.Machines[j]);
|
||||
}
|
||||
|
||||
if (selcount == 0) {
|
||||
o.Selected = false;
|
||||
o.__indeterminate = false;
|
||||
}
|
||||
else if (selcount == o.Machines.length) {
|
||||
o.Selected = true;
|
||||
o.__indeterminate = false;
|
||||
}
|
||||
else {
|
||||
o.__indeterminate = true;
|
||||
allindeterminate = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
o.__indeterminate = false;
|
||||
|
||||
if (o.Selected) jsselcount++;
|
||||
}
|
||||
jobsiteMachines = g;
|
||||
|
||||
var chkSelectAll = document.getElementById("chkSelectAll");
|
||||
chkSelectAll.indeterminate = allindeterminate;
|
||||
if (jsselcount == 0) {
|
||||
chkSelectAll.checked = false;
|
||||
}
|
||||
else if (jsselcount == jobsiteData.length) {
|
||||
chkSelectAll.checked = true;
|
||||
}
|
||||
else {
|
||||
chkSelectAll.indeterminate = true;
|
||||
}
|
||||
|
||||
var height = g.length * ROW_JOBSITE_HEIGHT;
|
||||
this.bodyContainerHeight = height;
|
||||
this.bodyContainerStyle.height = height && (height + 'px');
|
||||
|
||||
var index = this.startIndex;
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
|
||||
this.$nextTick(function () {
|
||||
var content = document.getElementById('contentCtrl');
|
||||
if (this.bodyContainerHeight + 26 <= content.clientHeight) {
|
||||
this.bodyContentStyle.top = 0;
|
||||
this.startIndex = 0;
|
||||
}
|
||||
});
|
||||
},
|
||||
reload: function (data) {
|
||||
jobsiteData = data;
|
||||
this.fillMachines();
|
||||
},
|
||||
refresh: function () {
|
||||
var index = this.startIndex;
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
},
|
||||
treeIconClick: function (e, js) {
|
||||
if (js) {
|
||||
var t = $(e.target);
|
||||
if (t.hasClass("treeiconc"))
|
||||
t.removeClass("treeiconc").addClass("treeicone");
|
||||
else
|
||||
t.removeClass("treeicone").addClass("treeiconc");
|
||||
|
||||
js.Collapsed = !js.Collapsed;
|
||||
this.fillMachines();
|
||||
}
|
||||
else
|
||||
treeIconClick(e);
|
||||
},
|
||||
chkJobsiteClick: function (e, js) {
|
||||
chkJobsiteClick(js);
|
||||
this.fillMachines();
|
||||
},
|
||||
linkJobSiteClick: function (e, js) {
|
||||
if (!js.Selected) {
|
||||
js.Selected = true;
|
||||
chkJobsiteClick(js);
|
||||
|
||||
this.fillMachines();
|
||||
}
|
||||
|
||||
if (js.Shown)
|
||||
mapHelper.locateJobSite(js);
|
||||
else {
|
||||
js.Shown = true;
|
||||
showJobsiteClick(e, js);
|
||||
mapHelper.locateJobSite(js);
|
||||
}
|
||||
},
|
||||
showJobsiteClick: function (e, js) {
|
||||
js.Shown = !js.Shown;
|
||||
showJobsiteClick(e, js);
|
||||
},
|
||||
chkMachineClick: function (m) {
|
||||
chkMachineClick(m);
|
||||
},
|
||||
linkMachineClick: function (m) {
|
||||
linkMachineClick(m);
|
||||
this.refresh();
|
||||
},
|
||||
locationHistoryClick: function (m, ev) {
|
||||
if (selectedAsset)
|
||||
selectedAsset.State.Highlight = false;
|
||||
m.State.Highlight = true;
|
||||
selectedAsset = m;
|
||||
|
||||
var e = { data: m };
|
||||
locationHistoryClick(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this.refreshJobsiteList = function () {
|
||||
jsvm.refresh();
|
||||
}
|
||||
|
||||
this.selectAllJobsites = function (checked) {
|
||||
if (jobsiteData) {
|
||||
for (var i = 0; i < jobsiteData.length; i++) {
|
||||
var js = jobsiteData[i];
|
||||
if (js.Selected != checked) {
|
||||
js.Selected = checked;
|
||||
chkJobsiteClick(js);
|
||||
}
|
||||
}
|
||||
jsvm.fillMachines();
|
||||
}
|
||||
}
|
||||
|
||||
this.onscrollJobsiteMachines = function (e) {
|
||||
if (jobsiteMachines == null || jobsiteMachines.length < MIN_LENGTH) {
|
||||
return;
|
||||
}
|
||||
var top = e == null ? 0 : e.target.scrollTop;
|
||||
top -= (top % ROW_JOBSITE_HEIGHT) + (REDUN * ROW_JOBSITE_HEIGHT);
|
||||
if (top < 0) {
|
||||
top = 0;
|
||||
} else {
|
||||
var bottomTop = jsvm.bodyContainerHeight - ((jsvm.bodyClientRowCount + (REDUN * 2) + 1) * ROW_JOBSITE_HEIGHT);
|
||||
if (top > bottomTop) {
|
||||
top = bottomTop;
|
||||
}
|
||||
}
|
||||
if (jsvm.scrollTop !== top) {
|
||||
jsvm.scrollTop = top;
|
||||
jsvm.startIndex = top / ROW_JOBSITE_HEIGHT;
|
||||
jsvm.bodyContentStyle.top = top && (top + 'px');
|
||||
}
|
||||
};
|
||||
|
||||
function chkJobsiteClick(js) {
|
||||
var checked = js.Selected;
|
||||
if (js && js.Machines) {
|
||||
var ams = [];
|
||||
var rms = [];
|
||||
var rids = [];
|
||||
for (var i in js.Machines) {
|
||||
var machine = js.Machines[i];
|
||||
if (machine.State.Selected != checked) {
|
||||
machine.State.Selected = checked;
|
||||
|
||||
if (checked) {
|
||||
ams.push(machine);
|
||||
//unshownMachineID.splice(unshownMachineID.indexOf(machine.ID), 1);
|
||||
rids.push(machine.ID);
|
||||
}
|
||||
else {
|
||||
rms.push(machine);
|
||||
unshownMachineID[unshownMachineID.length] = machine.ID;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rids.length > 0) {
|
||||
var unshownids = [];
|
||||
for (var i = 0; i < unshownMachineID.length; i++) {
|
||||
var id = unshownMachineID[i];
|
||||
if (rids.indexOf(id) < 0)
|
||||
unshownids.push(id);
|
||||
}
|
||||
unshownMachineID = unshownids;
|
||||
}
|
||||
if (ams.length > 0)
|
||||
mapHelper.showMachines(ams);
|
||||
if (rms.length > 0)
|
||||
mapHelper.removeMachines(rms);
|
||||
|
||||
displayFilerIcon();
|
||||
}
|
||||
}
|
||||
|
||||
this.searchJobSite = function (isauto) {
|
||||
this.getJobSites(isauto);
|
||||
}
|
||||
|
||||
this.getJobSites = function (isauto) {
|
||||
var item = {
|
||||
'IsAutoRefresh': isauto,
|
||||
'ContractorID': companyids,
|
||||
'SearchText': "",//htmlencode($("#txtJobSiteSearchText").val()), //在前端过滤,后端不再过滤
|
||||
'Onroad': $("#selOnroad").val(),
|
||||
};
|
||||
_network.mapviewquery("GetJobSites", JSON.stringify(item), function (data) {
|
||||
if (data != "-1") {
|
||||
showJobSite(data);
|
||||
}
|
||||
else {
|
||||
showJobSiteAlert();
|
||||
}
|
||||
}, function () {
|
||||
showJobSiteAlert();
|
||||
});
|
||||
}
|
||||
|
||||
function showJobSiteAlert() {
|
||||
if (jobSiteAlert) {
|
||||
_dialog.close(jobSiteAlert);
|
||||
jobSiteAlert = null;
|
||||
}
|
||||
jobSiteAlert = _dialog.showAlert(GetTextByKey("P_MV_UNABLETOOBTAINJOBSITEDATAATTEMPTINGTORECONNECT", 'Unable to obtain jobsite data. Attempting to reconnect...'), GetTextByKey("P_MV_REFRESHJOBSITEDATA", 'Refresh jobsite data'));
|
||||
}
|
||||
|
||||
function showJobSite(jobsites) {
|
||||
mapHelper.removeJobsites(allJobsites);
|
||||
var shownJobsites = [];
|
||||
for (var i = jobsites.length - 1; i >= 0; i--) {
|
||||
var js = jobsites[i];
|
||||
js.Collapsed = true;
|
||||
js.Selected = true;
|
||||
js.Shown = true;
|
||||
if (allJobsites) {//get josbite state
|
||||
for (var j = 0; j < allJobsites.length; j++) {
|
||||
var ljs = allJobsites[j];
|
||||
if (js.ID === ljs.ID) {
|
||||
js.Collapsed = ljs.Collapsed;
|
||||
js.Selected = ljs.Selected;
|
||||
js.Shown = ljs.Shown;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var filter = $.trim($("#txtJobSiteSearchText").val());
|
||||
js.Matched = true;
|
||||
if (filter != "" && js.Name.toLowerCase().indexOf(filter.toLocaleLowerCase()) < 0)
|
||||
js.Matched = false;
|
||||
|
||||
var assets = [];
|
||||
if (jobsiteAssets[js.ID]) {
|
||||
var tempAssets = jobsiteAssets[js.ID];
|
||||
for (var j = 0; j < tempAssets.length; j++) {//Assets
|
||||
var a = tempAssets[j];
|
||||
if (js.Matched || isAssetMatch(a, filter)) {
|
||||
assets.push(a);
|
||||
}
|
||||
}
|
||||
}
|
||||
js.Machines = assets;
|
||||
|
||||
if (!js.Matched && js.Machines.length == 0) {
|
||||
jobsites.splice(i, 1);
|
||||
}
|
||||
else if (js.Shown) { //需要显示的JobSite
|
||||
mapHelper.showJobSite(js);
|
||||
shownJobsites.push(js);
|
||||
}
|
||||
}
|
||||
mapHelper.refreshJobsiteTooltip(shownJobsites);
|
||||
|
||||
allJobsites = jobsites;
|
||||
jsvm.reload(allJobsites);
|
||||
return;
|
||||
}
|
||||
|
||||
function showJobsiteClick(e, js) {
|
||||
var t = $(e.target);
|
||||
if (!t.is("span"))
|
||||
t = t.prev();
|
||||
if (js.Shown) {
|
||||
t.removeClass("switchoff").addClass("switchon");
|
||||
mapHelper.showJobSite(js);
|
||||
unshownJobSiteID.splice(unshownJobSiteID.indexOf(js.ID), 1);
|
||||
}
|
||||
else {
|
||||
t.removeClass("switchon").addClass("switchoff");
|
||||
mapHelper.removeJobSite(js, true);
|
||||
unshownJobSiteID[unshownJobSiteID.length] = js.ID;
|
||||
}
|
||||
|
||||
displayFilerIcon();
|
||||
}
|
||||
|
||||
function chkMachineClick(machine) {
|
||||
if (machine) {
|
||||
if (machine.State.Selected) {
|
||||
mapHelper.showMachine(machine);
|
||||
unshownMachineID.splice(unshownMachineID.indexOf(machine.ID), 1);
|
||||
}
|
||||
else {
|
||||
mapHelper.removeMachine(machine);
|
||||
unshownMachineID[unshownMachineID.length] = machine.ID;
|
||||
}
|
||||
|
||||
jsvm.reload(allJobsites);
|
||||
displayFilerIcon();
|
||||
}
|
||||
}
|
||||
|
||||
function linkMachineClick(machine) {
|
||||
if (machine) {
|
||||
if (machine.State.Selected) {
|
||||
mapHelper.locateMachine(machine);
|
||||
}
|
||||
else {
|
||||
machine.State.Selected = true;
|
||||
unshownMachineID.splice(unshownMachineID.indexOf(machine.ID), 1);
|
||||
mapHelper.showMachine(machine);
|
||||
mapHelper.locateMachine(machine);
|
||||
}
|
||||
|
||||
displayFilerIcon();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,436 @@
|
||||
var ALL_TEXT = "(All)";
|
||||
var ALL_VALUE = "@all";
|
||||
|
||||
$(function () {
|
||||
// global event
|
||||
|
||||
$(document).mousedown(function (e) {
|
||||
var t = $(e.target);
|
||||
if (!t.hasClass("div_filter"))
|
||||
t = t.parents(".div_filter");
|
||||
if (t.length == 0) $('.div_panel').hide();
|
||||
var divpanel = t.find(".div_panel");
|
||||
$('.div_panel').each(function () {
|
||||
if (!$(this).is(divpanel))
|
||||
divpanel.hide();
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
function showMapAlertLayer(data) {
|
||||
var opt = $('<option></option>').val("").text("(None)");
|
||||
var sel = $("#selMapAlertLayer");
|
||||
sel.empty();
|
||||
sel.append(opt);
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var mal = data[i];
|
||||
opt = $('<option></option>').val(mal.ID).text(mal.Name).data("mal", mal);
|
||||
sel.append(opt);
|
||||
}
|
||||
if (userParams && userParams.MapAlertLayer) {
|
||||
sel.val(userParams.MapAlertLayer);
|
||||
}
|
||||
showMapAlertLayerDetail();
|
||||
}
|
||||
|
||||
function showMapAlertLayerDetail() {
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
var tb = $("#tbLegend");
|
||||
tb.empty();
|
||||
var haspramameter = false;
|
||||
if (mal && mal.Layers) {
|
||||
for (var i = 0; i < mal.Layers.length; i++) {
|
||||
var layer = mal.Layers[i];
|
||||
if ((layer.Pivots && layer.Pivots.length > 0))
|
||||
haspramameter = true;
|
||||
|
||||
var tr = $("<tr style='border-bottom: 1px solid lightgray;'></tr>");
|
||||
tb.append(tr);
|
||||
|
||||
var td = $("<td></td>").css("width", 30);
|
||||
td.append($("<img></img>").attr("src", layer.LegendUrl).css({ "width": 18, "vertical-align": "middle" }));
|
||||
tr.append(td);
|
||||
|
||||
td = $("<td></td>").html(layer.Title).css({ "padding-left": 10, "width": 220 });
|
||||
tr.append(td);
|
||||
}
|
||||
}
|
||||
|
||||
var staticlegend = ["InMotion", "StoppedOn", "StoppedOff", "CGain", "CLoss", "RoadClosure", "LaneClosure"];
|
||||
var staticlegendtitle = ["In Motion", "Stopped On", "Stopped Off", "Connectivity Recovery", "Connectivity Loss", "Road Closure", "Lane Closure"];
|
||||
for (var i = 0; i < staticlegend.length; i++) {
|
||||
var tr = $("<tr style='border-bottom: 1px solid lightgray;'></tr>");
|
||||
tb.append(tr);
|
||||
|
||||
var url = userParams.MachineIconURL + "?legend=" + staticlegend[i];
|
||||
var td = $("<td></td>").css("width", 30);
|
||||
td.append($("<img></img>").attr("src", url).css({ "width": 18, "vertical-align": "middle" }));
|
||||
tr.append(td);
|
||||
|
||||
td = $("<td></td>").html(staticlegendtitle[i]).css({ "padding-left": 10, "width": 220 });
|
||||
tr.append(td);
|
||||
}
|
||||
|
||||
var harshdrivinglegend = ["#ff3f48cc", "#ff00a8f3", "#fffff200", "#ffff7f27", "#ffec1c24"];
|
||||
var harshdrivingtitle = ["Hard Acceleration", "Hard Brake", "Hard Turn", "Speeding: Low Severity", "Speeding: High Severity"];
|
||||
for (var i = 0; i < harshdrivinglegend.length; i++) {
|
||||
var tr = $("<tr style='border-bottom: 1px solid lightgray;'></tr>");
|
||||
tb.append(tr);
|
||||
|
||||
var ironurl = userParams.MachineIconURL.toLowerCase().replace("machinetypeicon.ashx", "machinemovingicon.ashx");
|
||||
var url = ironurl + "?tp=0&bkcolor=" + encodeURIComponent(harshdrivinglegend[i]) + "&heading=45";
|
||||
var td = $("<td></td>").css("width", 30);
|
||||
td.append($("<img></img>").attr("src", url).css({ "width": 18, "vertical-align": "middle" }));
|
||||
tr.append(td);
|
||||
|
||||
td = $("<td></td>").html(harshdrivingtitle[i]).css({ "padding-left": 10, "width": 220 });
|
||||
tr.append(td);
|
||||
}
|
||||
|
||||
if (haspramameter) {
|
||||
$('#setparameter').css('display', '');
|
||||
}
|
||||
else {
|
||||
$('#setparameter').css('display', 'none');
|
||||
}
|
||||
var right = $('#mapAlertLayerDiv').width() + 100;
|
||||
$('#filterIconDiv').css('right', right);
|
||||
}
|
||||
|
||||
function setParameterDatimeTimePicker(ipt) {
|
||||
ipt.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]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getAlertLayerParameters() {
|
||||
if (parameterinput.length > 0) {//更新参数选择的值
|
||||
for (var l = 0; l < parameterinput.length; l++) {
|
||||
var ipt = parameterinput[l];
|
||||
var param = ipt.data("parameter");
|
||||
if (ipt.data('commoninput'))
|
||||
param.ParameterValue = ipt.val();
|
||||
}
|
||||
}
|
||||
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
if (mal)
|
||||
return mal.Layers;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
var parameterinput = [];
|
||||
var paramindex = -1;
|
||||
function setAlertLayerParameters() {
|
||||
parameterinput = [];
|
||||
paramindex = -1;
|
||||
var ul = $("#ul_parameter");
|
||||
ul.empty();
|
||||
var pdiv = $("#parameter_right");
|
||||
pdiv.empty();
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
|
||||
var layerHasParam = 0;
|
||||
if (mal && mal.Layers) {
|
||||
for (var i = 0; i < mal.Layers.length; i++) {
|
||||
var layer = mal.Layers[i];
|
||||
|
||||
if (layer && layer.Pivots) {
|
||||
var li = $("<li class='nav_item'></li>").data("layerid", layer.ID).click(layerHasParam++, layerclick);
|
||||
|
||||
var img = $("<img></img>").attr("src", layer.LegendUrl).css({ "width": 18, "vertical-align": "middle" });
|
||||
var span = $("<span></span>").text(layer.Title).css({ "margin-left": 10, "vertical-align": "middle" });
|
||||
li.append(img).append(span);
|
||||
ul.append(li);
|
||||
var tb = $("<table class='tb_parameter'></table>").data("layerid", layer.ID);
|
||||
if (layerHasParam == 1)
|
||||
li.addClass("selected");
|
||||
else
|
||||
tb.css('display', 'none');
|
||||
|
||||
pdiv.append(tb);
|
||||
//if (criteriaparam && criteriaparam.length > 0)
|
||||
// createParameters(criteriaparam, tb, 1);
|
||||
|
||||
//if (alertparam && alertparam.length > 0)
|
||||
// createParameters(alertparam, tb, 2);
|
||||
|
||||
if (layer.Pivots && layer.Pivots.length > 0)
|
||||
createParameters(layer.Pivots, tb);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createParameters(params, tb) {
|
||||
var criteriaTitle = false;
|
||||
var alertTitle = false;
|
||||
for (var j = 0; j < params.length; j++) {
|
||||
var param = params[j];
|
||||
|
||||
if (param.IsCriteriaSQL && !criteriaTitle) {
|
||||
var tr = $("<tr></tr>").append("<td colspan='2' style='padding-left:10px;font-weight:bold;font-size:16px;'>" + GetTextByKey("P_MV_CRITERIA", "Criteria") + "</td>");
|
||||
tb.append(tr);
|
||||
criteriaTitle = true;
|
||||
}
|
||||
|
||||
if (!param.IsCriteriaSQL && !alertTitle) {
|
||||
var tr = $("<tr></tr>").append("<td colspan='2' style='padding-left:10px;font-weight:bold;font-size:16px;'>" + GetTextByKey("P_MV_ALERT", "Alert") + "</td>");
|
||||
tb.append(tr);
|
||||
alertTitle = true;
|
||||
}
|
||||
|
||||
var tr_param = $("<tr></tr>");
|
||||
tb.append(tr_param);
|
||||
tr_param.append($("<td></td>").addClass('td_paramtype').html(param.Caption));
|
||||
var td = $("<td></td>");
|
||||
|
||||
var ipt = createParameterInput(param);
|
||||
parameterinput.push(ipt);
|
||||
if (param.DataType == 3 && param.DisplayStyle != 1 && param.DisplayStyle != 2) {
|
||||
setParameterDatimeTimePicker(ipt);
|
||||
}
|
||||
td.append(ipt);
|
||||
tr_param.append(td);
|
||||
}
|
||||
}
|
||||
|
||||
function FALSE() { return false; }
|
||||
var idindex = 0;
|
||||
|
||||
function createParameterInput(param) {
|
||||
var paramvalue = getParameterValue(param.ID, param.IsCriteriaSQL);
|
||||
if (paramvalue == null)
|
||||
paramvalue = param.DefaultValue;
|
||||
|
||||
if (param.DisplayStyle == 0) {//inputbox
|
||||
return $("<input type='text' />").val(paramvalue).data("parameter", param).data('commoninput', true)
|
||||
.attr("paramcaption", param.Name.toLowerCase())
|
||||
.keyup(function () {
|
||||
$("[paramcaption='" + param.Name.toLowerCase() + "']").val($(this).val());
|
||||
}).change(function () {
|
||||
$("[paramcaption='" + param.Name.toLowerCase() + "']").val($(this).val());
|
||||
});
|
||||
}
|
||||
else if (param.DisplayStyle == 1 || param.DisplayStyle == 2) {//Dropdown or Combobox
|
||||
var defaultcheckall = false;
|
||||
if (param.IsAllAllowed && paramvalue === ALL_VALUE)
|
||||
defaultcheckall = true;
|
||||
if (param.IsField && param.MutipleSelect) {//多选
|
||||
var divcontrol = $('<div class="div_filter"></div>').data("parameter", param);
|
||||
var seldiv = $('<div class="left dropdown"></div>');
|
||||
var span = $('<span class="text_span"></span>');
|
||||
var spanimg = $('<span class="fa dropdown_button"></span>');
|
||||
var divpanel = $('<div class="div_panel" style="display: none;z-index:10;margin-left:-1px;position:fixed;"></div>');
|
||||
var ul = $('<ul></ul>');
|
||||
divpanel.append(ul).mousedown(FALSE);
|
||||
seldiv.append(span).append(spanimg).append(divpanel);
|
||||
seldiv.mousedown(function (e) {
|
||||
$('.div_panel').each(function () {
|
||||
var t = $(this);
|
||||
if (!t.is(divpanel))
|
||||
t.css('display', 'none');
|
||||
});
|
||||
|
||||
var display = divpanel.css('display');
|
||||
if (display == 'none') {
|
||||
var t = $(e.target);
|
||||
divpanel.css('top', seldiv.offset().top + seldiv.height());
|
||||
if (seldiv.offset().top + seldiv.height() + divpanel.height() > $(document).height())
|
||||
divpanel.css({ 'bottom': 0 });
|
||||
else
|
||||
divpanel.css({ 'bottom': 'unset' });
|
||||
divpanel.css({ 'display': 'block' });
|
||||
} else {
|
||||
divpanel.css('display', 'none');
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
var itemclick = function (isall, checked) {
|
||||
var chks = ul.find('input');
|
||||
if (isall) {
|
||||
chks.prop('checked', checked);
|
||||
if (checked) {
|
||||
span.attr('title', ALL_TEXT).text(ALL_TEXT);
|
||||
param.ParameterValue = ALL_VALUE;
|
||||
}
|
||||
else {
|
||||
span.attr('title', "").text("");
|
||||
param.ParameterValue = "";
|
||||
}
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (chkall)
|
||||
chkall.prop('checked', false);//(ALL)取消选中
|
||||
}
|
||||
|
||||
var texts = [];
|
||||
var paramvalues = [];
|
||||
for (var i = 0; i < chks.length; i++) {
|
||||
var c = $(chks[i]);
|
||||
if (c.prop('checked')) {
|
||||
var text = c.next('label').text();
|
||||
if (!text) text = c.val();
|
||||
texts.push(text);
|
||||
paramvalues.push(c.val());
|
||||
}
|
||||
}
|
||||
texts = texts.join(', ');
|
||||
span.attr('title', texts).text(texts);
|
||||
paramvalues = paramvalues.join('^');
|
||||
param.ParameterValue = paramvalues;
|
||||
};
|
||||
|
||||
var chkall = undefined;
|
||||
if (param.IsAllAllowed) {
|
||||
var liall = $('<li></li>');
|
||||
chkall = $('<input type="checkbox" id="chkall' + (++idindex) + '" style="width:16px;"/>');
|
||||
if (defaultcheckall)
|
||||
chkall.attr('checked', true);
|
||||
chkall.change(function () {//全选
|
||||
itemclick(true, $(this).prop('checked'));
|
||||
});
|
||||
liall.append(chkall);
|
||||
liall.append($('<label for="chkall' + idindex + '"></label>').text(ALL_TEXT));
|
||||
ul.append(liall);
|
||||
}
|
||||
var ds = getLookupDatasource(param.LookupDatasourceID)
|
||||
if (ds && ds.Items) {
|
||||
var paramvalueAry = paramvalue.split("^");
|
||||
var texts = [];
|
||||
for (var s = 0; s < ds.Items.length; s++) {
|
||||
var item = ds.Items[s];
|
||||
var txt = param.DisplayCaptionField ? item.Value : item.Key;
|
||||
var li = $('<li></li>');
|
||||
var chk = $('<input type="checkbox" style="width:16px;"/>').val(item.Key).attr("id", "chkp" + ++paramindex);
|
||||
chk.change(function () {
|
||||
itemclick(false, $(this).prop('checked'));
|
||||
});
|
||||
li.append(chk);
|
||||
li.append($('<label for=' + ("chkp" + paramindex) + '></label>').text(txt));
|
||||
ul.append(li);
|
||||
|
||||
if (defaultcheckall || paramvalueAry.indexOf(item.Key) > -1) {//选中默认值
|
||||
chk.attr('checked', true);
|
||||
var text = chk.next('label').text();
|
||||
if (!text) text = chk.val();
|
||||
texts.push(text);
|
||||
}
|
||||
}
|
||||
|
||||
if (defaultcheckall)
|
||||
texts = ALL_TEXT;
|
||||
else
|
||||
texts = texts.join(', ');
|
||||
span.attr('title', texts).text(texts);
|
||||
param.ParameterValue = paramvalue;
|
||||
}
|
||||
|
||||
divcontrol.append(seldiv);
|
||||
|
||||
return divcontrol;
|
||||
}
|
||||
else {
|
||||
var sel = $("<select></select>").data("parameter", param).data('commoninput', true)
|
||||
.attr("paramcaption", param.Name.toLowerCase())
|
||||
.change(function () {
|
||||
$("[paramcaption='" + param.Name.toLowerCase() + "']").val($(this).val());
|
||||
});
|
||||
var ds = getLookupDatasource(param.LookupDatasourceID)
|
||||
if (ds && ds.Items) {
|
||||
if (param.IsField && param.IsAllAllowed) {
|
||||
var opall = $("<option></option>").val(ALL_VALUE).text(ALL_TEXT);
|
||||
sel.append(opall);
|
||||
}
|
||||
for (var s = 0; s < ds.Items.length; s++) {
|
||||
var item = ds.Items[s];
|
||||
var opt = $("<option></option>").val(item.Key);
|
||||
var txt = param.DisplayCaptionField ? item.Value : item.Key;
|
||||
opt.text(txt);
|
||||
|
||||
sel.append(opt);
|
||||
}
|
||||
sel.val(paramvalue);
|
||||
}
|
||||
return sel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getLookupDatasource(dsid) {
|
||||
var mal = $("#selMapAlertLayer").find("option:selected").data("mal");
|
||||
if (mal && mal.LookupDataSources) {
|
||||
for (var i = 0; i < mal.LookupDataSources.length; i++) {
|
||||
var ds = mal.LookupDataSources[i];
|
||||
if (ds.ID.toLowerCase() == dsid.toLowerCase())
|
||||
return ds;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function layerclick(e) {
|
||||
$('#ul_parameter li').removeClass("selected");
|
||||
$(this).addClass("selected");
|
||||
var index = e.data;
|
||||
var tbs = $('.tb_parameter');
|
||||
tbs.hide();
|
||||
$(tbs[index]).show();
|
||||
|
||||
}
|
||||
|
||||
function getParameterValue(paramid, isCriteria) {
|
||||
if (parametervalues && parametervalues.length > 0) {
|
||||
for (var i = 0; i < parametervalues.length; i++) {
|
||||
var layer = parametervalues[i];
|
||||
var params = [];
|
||||
for (var j = 0; j < layer.Pivots.length; j++) {
|
||||
if (layer.Pivots[j].IsCriteriaSQL == isCriteria)
|
||||
params.push(layer.Pivots[j])
|
||||
}
|
||||
|
||||
if (layer && (params || params)) {
|
||||
for (var k = 0; k < params.length; k++) {
|
||||
var param = params[k];
|
||||
if (param.ID == paramid)
|
||||
return param.ParameterValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function openSetAlertLayerParameters() {
|
||||
setAlertLayerParameters();
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_parameter .dialog-title span.title').text(GetTextByKey("P_MV_PIVOTS", 'Pivots'));
|
||||
//$('#mask_bg').show();
|
||||
$('#dialog_parameter')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 570,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_parameter').height()) / 2,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_parameter').width()) / 2
|
||||
})
|
||||
.showDialogfixed();
|
||||
pivotsDialogOpend = true;
|
||||
}
|
||||
|
||||
var parametervalues;
|
||||
function setParameterCompleted() {
|
||||
parametervalues = getAlertLayerParameters();
|
||||
assetObject.searchMachine(false);
|
||||
$('#dialog_parameter').hideDialog();
|
||||
$('#mask_bg').hide();
|
||||
pivotsDialogOpend = false;
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,252 @@
|
||||
|
||||
var allItemUrls = [];
|
||||
function initMapMenuItems(data) {
|
||||
if (data) {
|
||||
var ul = $('#mapmenu ul').empty();
|
||||
var wspItemAdded = false;
|
||||
var items = {};
|
||||
var wspitems = {};
|
||||
var hasMemuItems = false;
|
||||
//mids用于菜单排序
|
||||
var mids = ['100', '150', '200', '250', '300', '350', '400', '450', '500', '550', '600', '650', '675', '700', '9999'];
|
||||
//675为从150分离出来的Dispatch & Scheduling,9999 为Dashboard
|
||||
for (var k = 0; k < mids.length; k++) {
|
||||
var mid = mids[k];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var m = data[i];
|
||||
if (!m.Visible || m.ID == "100") continue;
|
||||
|
||||
if (m.ID == mid || (mid == '675' && m.ID == "150") || (mid == '9999' && m.ModuleType == 1)) {
|
||||
hasMemuItems = true;
|
||||
if (m.ModuleType == 0) {
|
||||
var item = {};
|
||||
item.name = m.CurrentName;
|
||||
item.icon = createicon;
|
||||
allItemUrls['m' + mid] = m.Url;
|
||||
if (mid == '675') {
|
||||
item.name = GetTextByKey("P_JS_ASSETSCHEDULINGANDDISPATCHING", "Asset Scheduling and Dispatching");
|
||||
allItemUrls['m' + mid] = "JobSite/img/dispatch.png";
|
||||
}
|
||||
|
||||
var subcount = 0;
|
||||
if (m.SubItems && m.SubItems.length > 0) {
|
||||
var sitems = {}
|
||||
if (mid == "150" && canEditJobsite) {
|
||||
var addjs = {
|
||||
FeatureID: 150,
|
||||
ID: "nav_addjobsite",
|
||||
IconPath: "img/jobsite.png",
|
||||
PageUrl: "AddJobSite.aspx",
|
||||
Title: "Add JobSite",
|
||||
Url: "JobSite/AddJobSite.aspx"
|
||||
};
|
||||
m.SubItems.push(addjs);
|
||||
}
|
||||
for (var j = 0; j < m.SubItems.length; j++) {
|
||||
var sm = m.SubItems[j];
|
||||
if (mid == "150" && sm.FeatureID != 100 && sm.FeatureID != 150)//13178-不显示Jobsite Requirements, dispatch requirements and scheduler
|
||||
continue;
|
||||
if (mid == "675" && (sm.FeatureID == 100 || sm.FeatureID == 150))//13178-Dispatch & Scheduling单独显示
|
||||
continue;
|
||||
var sitem = {}
|
||||
sitem.name = getitemname(sm.ID, sm.Title);
|
||||
sitem.icon = function () { return 'context-menu-icon menuicon' };
|
||||
sitems['sm' + sm.ID] = sitem;
|
||||
subcount++;
|
||||
allItemUrls['sm' + sm.ID] = sm.Url;
|
||||
}
|
||||
item.items = sitems;
|
||||
}
|
||||
if ((mid != "150" && mid != "675") || subcount > 0)
|
||||
items['m' + mid] = item;
|
||||
}
|
||||
else if (m.ModuleType == 1) {
|
||||
if (!wspItemAdded) {
|
||||
items['sep1'] = "---------";
|
||||
var item = {};
|
||||
item.name = "Dashboards";
|
||||
item.icon = createicon;
|
||||
item.items = wspitems;
|
||||
items['wsp'] = item;
|
||||
wspItemAdded = true;
|
||||
}
|
||||
var wspitem = {}
|
||||
wspitem.name = m.Name;
|
||||
wspitem.icon = createicon;
|
||||
wspitems['w' + m.ID] = wspitem;
|
||||
allItemUrls['w' + m.ID] = m.Url;
|
||||
}
|
||||
}
|
||||
else
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (hasMemuItems) {
|
||||
$.contextMenu({
|
||||
selector: '#mapView',
|
||||
callback: function (key, options, e) {
|
||||
var url = allItemUrls[key];
|
||||
if (!url) return;
|
||||
if (url.length > 4 && url.substring(0, 4) == 'http') {
|
||||
} else if (url.length > 0 && url[0] == '/') {
|
||||
} else {
|
||||
url = _network.root + url;
|
||||
}
|
||||
if (key.indexOf('nav_addjobsite') >= 0) {
|
||||
OnAddJobsite();
|
||||
}
|
||||
else
|
||||
window.open(url, "_blank");
|
||||
},
|
||||
items: items
|
||||
});
|
||||
}
|
||||
|
||||
$(".context-menu-item .context-menu-list").css({
|
||||
"max-height": $(document).height() - 150,
|
||||
'overflow-x': 'hidden',
|
||||
'overflow-y': 'auto',
|
||||
});
|
||||
$(window).resize(function () {
|
||||
$(".context-menu-item .context-menu-list").css("max-height", $(window).height() - 150);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function createicon($element, item, key) {
|
||||
var cls = 'context-menu-icon menuicon';
|
||||
var id = key.substr(1);
|
||||
if (id == "100")
|
||||
cls += ' menuiconmap';
|
||||
else if (id == "150")
|
||||
cls += ' menuiconjobsite';
|
||||
else if (id == "200")
|
||||
cls += ' menuiconpmalerts';
|
||||
else if (id == "250")
|
||||
cls += ' menuiconfilterq';
|
||||
else if (id == "300")
|
||||
cls += ' menuiconcredentials';
|
||||
else if (id == "350")
|
||||
cls += ' menuiconpmsecurity';
|
||||
else if (id == "400")
|
||||
cls += ' menuiconassets';
|
||||
else if (id == "450")
|
||||
cls += ' menuiconfic';
|
||||
else if (id == "500")
|
||||
cls += ' menuiconm3';
|
||||
else if (id == "550")
|
||||
cls += ' menuiconjobsitelimit';
|
||||
else if (id == "600")
|
||||
cls += ' menuiconotrconfig';
|
||||
else if (id == "650")
|
||||
cls += ' menuiconinspection';
|
||||
else if (id == "675")
|
||||
cls += ' menuicondispatch';
|
||||
else if (id == "700")
|
||||
cls += ' menuiconteam';
|
||||
else {
|
||||
if (id === "sp")
|
||||
cls += ' menuicondashboard';
|
||||
else
|
||||
cls += ' menuiconwsp';
|
||||
}
|
||||
return cls;
|
||||
}
|
||||
|
||||
|
||||
function getitemname(id, name) {
|
||||
//Jobsite
|
||||
if (id === "nav_jobsiterequirements") {
|
||||
name = GetTextByKey("P_JS_JOBSITEREQUIREMENTS", name);
|
||||
}
|
||||
else if (id === "nav_dispatchrequests") {
|
||||
name = GetTextByKey("P_JS_DISPATCHREQUESTS", name);
|
||||
}
|
||||
else if (id === "nav_jobsitemanage") {
|
||||
name = GetTextByKey("P_JOBSITES", name);
|
||||
}
|
||||
else if (id === "nav_scheduler") {
|
||||
name = GetTextByKey("P_JS_SCHEDULER", name);
|
||||
}
|
||||
//Asset Health
|
||||
else if (id === "nav_alertsmanagement") {
|
||||
name = GetTextByKey("P_ALERTSMANAGEMENTNEW", name);
|
||||
}
|
||||
else if (id === "nav_workorder") {
|
||||
name = GetTextByKey("P_WORKORDERNEW", name);
|
||||
}
|
||||
else if (id === "nav_workorderhis") {
|
||||
name = GetTextByKey("P_WORKORDERHISTORY", name);
|
||||
}
|
||||
else if (id === "nav_record") {
|
||||
name = GetTextByKey("P_MAINTENANCERECORDLEGACY", name);
|
||||
}
|
||||
else if (id === "nav_fuelrecord") {
|
||||
name = GetTextByKey("P_FUELRECORDS", name);
|
||||
}
|
||||
else if (id === "nav_maintenanceschedule") {
|
||||
name = GetTextByKey("P_PM_MAINTENANCESCHEDULES", name);
|
||||
}
|
||||
else if (id === "nav_scheduler") {
|
||||
name = GetTextByKey("P_JS_SCHEDULER", name);
|
||||
}
|
||||
//Credentials
|
||||
else if (id === "nav_credential") {
|
||||
name = GetTextByKey("P_CREDENTIALS", name);
|
||||
}
|
||||
else if (id === "nav_jdlink") {
|
||||
name = GetTextByKey("P_JOHNDEERE", name);
|
||||
}
|
||||
else if (id === "nav_jdnotification") {
|
||||
name = GetTextByKey("P_JOHNDEERENOTIFICATIONS", name);
|
||||
}
|
||||
else if (id === "nav_apicredential") {
|
||||
name = GetTextByKey("P_APICREDENTIALS", name);
|
||||
}
|
||||
//Security
|
||||
else if (id === "nav_users") {
|
||||
name = GetTextByKey("P_USERS", name);
|
||||
}
|
||||
else if (id === "nav_user_group") {
|
||||
name = GetTextByKey("P_USERSGROUP", name);
|
||||
}
|
||||
else if (id === "nav_dts") {
|
||||
name = GetTextByKey("P_DATATABLEPERMISSION", name);
|
||||
}
|
||||
else if (id === "nav_filters") {
|
||||
name = GetTextByKey("P_DASHBOARDFILTERS", name);
|
||||
}
|
||||
else if (id === "nav_curfew") {
|
||||
name = GetTextByKey("P_CURFEWCONFIGURATION", name);
|
||||
}
|
||||
else if (id === "nav_curfewmt") {
|
||||
name = GetTextByKey("P_CURFEWMOVEMENTTOLERANCE", name);
|
||||
}
|
||||
else if (id === "nav_usertocontractor") {
|
||||
name = GetTextByKey("P_USERTOCONTRACTOR", name);
|
||||
}
|
||||
//Manage Asset
|
||||
else if (id === "nav_managmachines") {
|
||||
name = GetTextByKey("P_MANAGEASSETS", name);
|
||||
}
|
||||
else if (id === "nav_managrentals") {
|
||||
name = GetTextByKey("P_MANAGERENTALS", name);
|
||||
}
|
||||
else if (id === "nav_machinegroups") {
|
||||
name = GetTextByKey("P_ASSETGROUPS", name);
|
||||
}
|
||||
else if (id === "nav_managegpsdevices") {
|
||||
name = GetTextByKey("P_MANAGEDEVICES", name);
|
||||
}
|
||||
else if (id === "nav_managmodels") {
|
||||
name = GetTextByKey("P_MANAGEMODELS", name);
|
||||
}
|
||||
else if (id === "nav_customerrecord") {
|
||||
name = GetTextByKey("P_CUSTOMERRECORD", name);
|
||||
}
|
||||
else if (id === "nav_addjobsite") {
|
||||
name = GetTextByKey("P_JS_ADDJOBSITE", name);
|
||||
}
|
||||
return name;
|
||||
}
|
||||
@@ -0,0 +1,640 @@
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************全局代码******************************/
|
||||
var currentLocationHistoryMachine;
|
||||
var LocationHistoryInfo;
|
||||
var allJobSiteMachine = [];//全部已显示机器的数据字典,Key为"MID"+Machine.ID,Value为Machine对象
|
||||
var machineStates = [];//所以tab下的相同机器使用同一个State状态对象
|
||||
|
||||
var enableInfoWindow = true;//是否显示InfoWindow
|
||||
var showMapSlider = true;
|
||||
var currentbasemap = "topo";
|
||||
|
||||
function getMachineStateObj(machineid) {
|
||||
var stateObj = machineStates["MID" + machineid];
|
||||
if (!stateObj) {
|
||||
stateObj = { Selected: false, Highlight: false, ShowSummary: false }
|
||||
machineStates["MID" + machineid] = stateObj;
|
||||
}
|
||||
return stateObj;
|
||||
}
|
||||
|
||||
function resetMachineState() {
|
||||
machineStates = [];
|
||||
clearLocationHistory();
|
||||
$("#locationhistoryDiv").hide();
|
||||
$("#tripDiv").hide();
|
||||
|
||||
allJobsites = [];
|
||||
allGroups = [];
|
||||
}
|
||||
|
||||
function initPlayBar() {
|
||||
$.playBar.addBar($("#divPlayBar"), 0);//第一个参数是需要显示播放器的容器,第二个参数为时间,单位毫秒
|
||||
$.playBar.changeBarColor("#FFA500");//设置进度条颜色
|
||||
$.playBar.changeFontColor("#000000")//设置时间颜色
|
||||
//$.playBar.Stop()//进度条停止
|
||||
//$.playBar.Begin()//进度条开始
|
||||
//$.playBar.restTime(1000)//重新设置时间,并重新开始播放
|
||||
//var t = $.playBar.getTheTime()//获得当前的时间
|
||||
|
||||
$.playBar.onPlayClick = onPlayClick;
|
||||
}
|
||||
|
||||
function onPlayClick(last) {
|
||||
var r = getLocationHistory(last);
|
||||
if (r === 1) {
|
||||
if (last)
|
||||
$.playBar.PlayEnd();
|
||||
else
|
||||
$.playBar.Play();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function openSetLocationHistory() {
|
||||
$('#dialog_locationhistory .dialog-title span.title').text(GetTextByKey("P_MA_LOCATIONHISTORY", 'Location History'));
|
||||
//$('#mask_bg').show();
|
||||
getLocationPrimaryDataSource();
|
||||
$('#locationhistoryDiv').show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
function locationHistoryClick(e) {
|
||||
locationTimeperiodChange();
|
||||
$('#tripDiv').hide();
|
||||
$('#tbTrips').empty();
|
||||
|
||||
if (PopupViewShowing) {
|
||||
if (e) {
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_lochis')
|
||||
.css({
|
||||
'top': 50,
|
||||
'right': 100,
|
||||
'bottom': 50,
|
||||
'left': 100,
|
||||
})
|
||||
.showDialog();
|
||||
execIframeFunc("getlocationhis", [e.data.CompanyID, e.data.ID, e.data.DisplayName], "iframelochis");
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (e)
|
||||
currentLocationHistoryMachine = e.data;
|
||||
if (currentLocationHistoryMachine) {
|
||||
$.playBar.Clear();
|
||||
LocationHistoryInfo = null;
|
||||
mapHelper.clearLocationHistory();
|
||||
|
||||
var mText = currentLocationHistoryMachine.DisplayName;
|
||||
if (!mText || mText == "")
|
||||
mText += " - " + currentLocationHistoryMachine.DisplayName;
|
||||
$("#spMachineName").text(mText);
|
||||
|
||||
openSetLocationHistory();
|
||||
}
|
||||
}
|
||||
|
||||
function locationTimeperiodChange() {
|
||||
var currentdate = getCurrentDate();
|
||||
var timeperiod = $("#dialog_timeperiod").val();
|
||||
var disabled = false;
|
||||
|
||||
if (timeperiod !== "4") {
|
||||
disabled = true;
|
||||
var time = new Date(currentdate);
|
||||
var nowtime = new Date(currentdate);
|
||||
var hours = nowtime.getHours();
|
||||
var minutes = nowtime.getMinutes();
|
||||
if (timeperiod === "2") {
|
||||
time.setDate(time.getDate() - 1);
|
||||
nowtime.setDate(nowtime.getDate() - 1);
|
||||
}
|
||||
else if (timeperiod === "3") {
|
||||
time.setDate(time.getDate() - 6);
|
||||
}
|
||||
else if (timeperiod === "5") {
|
||||
time.setDate(time.getDate() - 1);
|
||||
}
|
||||
|
||||
time = time.getMonth() + 1 + "/" + time.getDate() + "/" + time.getFullYear();
|
||||
nowtime = nowtime.getMonth() + 1 + "/" + nowtime.getDate() + "/" + nowtime.getFullYear();
|
||||
$('#dateFrom').val(time);
|
||||
$('#dateTo').val(nowtime);
|
||||
$('#dialog_starttimehour').val('00');
|
||||
$('#dialog_starttimeminute').val('00');
|
||||
$('#dialog_endtimehour').val('23');
|
||||
$('#dialog_endtimeminute').val('59');
|
||||
|
||||
if (timeperiod === "5") {
|
||||
var s_minutes = minutes + 1;
|
||||
var s_hours = hours;
|
||||
|
||||
if (minutes == 59) {
|
||||
s_hours = s_hours + 1;
|
||||
s_minutes = 0;
|
||||
}
|
||||
|
||||
$('#dialog_starttimehour').val(setTimeSelect(s_hours));
|
||||
$('#dialog_starttimeminute').val(setTimeSelect(s_minutes));
|
||||
$('#dialog_endtimehour').val(setTimeSelect(hours));
|
||||
$('#dialog_endtimeminute').val(setTimeSelect(minutes));
|
||||
}
|
||||
} }
|
||||
|
||||
var lastHisFromDT;
|
||||
var lastHisToDT;
|
||||
function getLocationHistory(last) {
|
||||
var dtfrom = $("#dateFrom").val();
|
||||
var dtto = $("#dateTo").val();
|
||||
|
||||
var start_hour = $('#dialog_starttimehour').val();
|
||||
var start_minute = $('#dialog_starttimeminute').val();
|
||||
var end_hour = $('#dialog_endtimehour').val();
|
||||
var end_minute = $('#dialog_endtimeminute').val();
|
||||
|
||||
dtfrom = dtfrom.replace("-", "/") + " " + start_hour + ":" + start_minute + ":" + "00";
|
||||
dtto = dtto.replace("-", "/") + " " + end_hour + ":" + end_minute + ":" + "59";
|
||||
|
||||
if (new Date(dtfrom) > new Date(dtto)) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FROMDATETIMEMUSTBEPRIORTOTODATETIME", 'From Date/Time must be prior to To Date/Time.'), GetTextByKey("P_MA_LOCATIONHISTORY", 'Location History'));
|
||||
return;
|
||||
}
|
||||
|
||||
if ($.playBar.getAllTime() > 0 && lastHisFromDT == dtfrom && lastHisToDT == dtto)
|
||||
return 1;
|
||||
else {
|
||||
$.playBar.Clear();
|
||||
LocationHistoryInfo = null;
|
||||
mapHelper.clearLocationHistory();
|
||||
lastHisFromDT = dtfrom;
|
||||
lastHisToDT = dtto;
|
||||
}
|
||||
|
||||
var cid = currentLocationHistoryMachine.CompanyID;
|
||||
var mid = currentLocationHistoryMachine.ID;
|
||||
var p = mid + ";" + dtfrom + ";" + dtto;
|
||||
var notShow00loc = $("#chkExclude00Loc").is(":checked");
|
||||
p += ";" + cid + ";" + (notShow00loc ? "1" : "0") + ";" + Datasource;
|
||||
|
||||
$("#btnHisLoading").show();
|
||||
_network.mapviewquery("GetHistoryLocation", p, function (data) {
|
||||
$("#btnHisLoading").hide();
|
||||
if (data && data.Machine.ID === currentLocationHistoryMachine.ID) {
|
||||
showLocationHistory(data, last);
|
||||
}
|
||||
}, function () {
|
||||
$("#btnHisLoading").hide();
|
||||
});
|
||||
}
|
||||
|
||||
function showLocationHistory(data, last) {
|
||||
LocationHistoryInfo = data
|
||||
//currentTimer = setInterval(function () { locationHistoryTimer(data) }, 1000);
|
||||
|
||||
if (LocationHistoryInfo.Machine && LocationHistoryInfo.Locations) {
|
||||
$.playBar.onBarChanged = doShowLocationHistory;
|
||||
if (last) {
|
||||
$.playBar.restTime(LocationHistoryInfo.Locations.length * 1000, true, true);
|
||||
} else {
|
||||
$.playBar.restTime(LocationHistoryInfo.Locations.length * 1000)//重新设置时间,并重新开始播放
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function doShowLocationHistory(time, fromStart) {
|
||||
var pointIndex = parseInt(time / 1000) - 1;
|
||||
if (pointIndex < 0)
|
||||
pointIndex = 0;
|
||||
if (LocationHistoryInfo.Machine && LocationHistoryInfo.Locations) {
|
||||
if (fromStart) {
|
||||
mapHelper.showLocationHistoryFromStart(LocationHistoryInfo.Machine, LocationHistoryInfo.Locations, pointIndex, true);
|
||||
}
|
||||
else if (pointIndex < LocationHistoryInfo.Locations.length) {
|
||||
mapHelper.showLocationHistory(LocationHistoryInfo.Machine, LocationHistoryInfo.Locations[pointIndex], true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function clearLocationHistory() {
|
||||
$.playBar.Clear();
|
||||
LocationHistoryInfo = null;
|
||||
if (isMapLoaded)
|
||||
mapHelper.clearLocationHistory();
|
||||
}
|
||||
|
||||
function setUserParams() {
|
||||
_network.mapviewquery("SetUserParams", JSON.stringify(userParams), function (data) {
|
||||
});
|
||||
}
|
||||
|
||||
function displayFilerIcon() {
|
||||
var filterText = $("#txtMachineSearchText").val();
|
||||
filterText += $("#txtJobSiteSearchText").val();
|
||||
filterText += $("#txtAssetGroupSearchText").val();
|
||||
|
||||
var unshownmachines = assetObject.getUnShownMachines();
|
||||
var unshownjss = jobsiteObject.getUnShownJobsites();
|
||||
var unshownjsmachines = jobsiteObject.getUnShownMachines();
|
||||
|
||||
if ($.trim(filterText) === ""
|
||||
&& $("#selOnroad").val() == "-1"
|
||||
&& $("#exclude00Div").attr("state") == "0"//!($("#chkExcludeNoLoc").prop("checked"))
|
||||
&& unshownmachines.length == 0
|
||||
&& unshownjss.length == 0
|
||||
&& unshownjsmachines.length == 0)
|
||||
$("#filterIconDiv").hide();
|
||||
else
|
||||
$("#filterIconDiv").show();
|
||||
}
|
||||
|
||||
function doDirections(lat, lng) {
|
||||
var directionURL = "https://www.google.com/maps/dir/?api=1&destination=" + lat + "," + lng + "&travelmode=driving";
|
||||
window.open(directionURL);
|
||||
}
|
||||
|
||||
function doWeather(lat, lng) {
|
||||
var weatherURL = "https://www.wunderground.com/weather/" + lat + "," + lng;
|
||||
window.open(weatherURL);
|
||||
}
|
||||
|
||||
function doLocationHistory(cid, id, name) {
|
||||
if (selectedAsset)
|
||||
selectedAsset.State.Highlight = false;
|
||||
var m = { CompanyID: cid, ID: id, DisplayName: decodeURIComponent(name) };
|
||||
var e = { data: m };
|
||||
locationHistoryClick(e);
|
||||
}
|
||||
|
||||
|
||||
// Machine
|
||||
_network.mapviewquery = function (method, param, callback, error, nolog) {
|
||||
_network.request("mapview.ashx?tp=ashx", -1, method, param, callback, error, nolog);
|
||||
}
|
||||
|
||||
function getNowFormatDate() {
|
||||
_network.mapviewquery("GetNowFormatDate", '', function (data) {
|
||||
$("#refreshTimeDiv").text(GetTextByKey("P_MV_LASTREFRESHED", "Last Refreshed: ") + data);
|
||||
});
|
||||
}
|
||||
|
||||
function treeIconClick(e) {
|
||||
var t = $(e.target);
|
||||
var subItems = t.parent().children(".subul");
|
||||
if (t.hasClass("treeiconc")) {
|
||||
t.removeClass("treeiconc").addClass("treeicone");
|
||||
subItems.show();
|
||||
}
|
||||
else {
|
||||
t.removeClass("treeicone").addClass("treeiconc");
|
||||
subItems.hide();
|
||||
}
|
||||
}
|
||||
|
||||
function isAssetMatch(asset, filter) {
|
||||
if (!filter || filter == "") return true;
|
||||
if (asset) {
|
||||
filter = filter.toLowerCase();
|
||||
if (asset.ID.toString().indexOf(filter) >= 0
|
||||
|| asset.VIN.toLowerCase().indexOf(filter) >= 0
|
||||
|| asset.Name.toLowerCase().indexOf(filter) >= 0
|
||||
|| asset.Name2.toLowerCase().indexOf(filter) >= 0
|
||||
|| asset.Make.toLowerCase().indexOf(filter) >= 0
|
||||
|| asset.Model.toLowerCase().indexOf(filter) >= 0
|
||||
|| asset.AssetType.toLowerCase().indexOf(filter) >= 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function openVideoDialog(url) {
|
||||
var videourl = $.trim(decodeURIComponent(url));
|
||||
var form = new $form();
|
||||
form.createForm('', $('body'), 600, 400);
|
||||
var gridcontent = $('<div style="height: 100%"><video width="100%" height="100%" src="' + videourl + '" controls="controls" autoplay="autoplay"></video></div>');
|
||||
form.bodyCtrlAppend(gridcontent);
|
||||
form.show();
|
||||
form.maskbg && form.maskbg.css('z-index', 650);
|
||||
form.formCtrl && form.formCtrl.css('z-index', 700);
|
||||
form.maskbg.hide();
|
||||
}
|
||||
|
||||
var _videoRequestAssetID;
|
||||
function openRequestVideoDialog(assetid, logid) {
|
||||
_videoRequestAssetID = assetid;
|
||||
var loc;
|
||||
if (logid === undefined) {
|
||||
loc = assetLocations[assetid];
|
||||
$('#dialog_hlogid').val("-1");
|
||||
}
|
||||
else {
|
||||
loc = assetHisLocations[logid];
|
||||
$('#dialog_hlogid').val(logid);
|
||||
}
|
||||
var dtstr = loc.LocationTimeText;
|
||||
|
||||
var timestr;
|
||||
var dt;
|
||||
if (!loc || !loc.LocationTimeText || loc.LocationTimeText == "") {
|
||||
var dt = new Date(currentdate);
|
||||
timestr = dt.getMonth() + 1 + "/" + dt.getDate() + "/" + dt.getFullYear();
|
||||
}
|
||||
else {
|
||||
dt = new Date(dtstr);
|
||||
timestr = dt.getMonth() + 1 + "/" + dt.getDate() + "/" + dt.getFullYear();
|
||||
}
|
||||
$('#dialog_videodate').val(timestr);
|
||||
var h = dt.getHours();
|
||||
h = (h < 10 ? '0' : '') + h;
|
||||
$('#dialog_videohour').val(h);
|
||||
var m = dt.getMinutes();
|
||||
m = (m < 10 ? '0' : '') + m;
|
||||
$('#dialog_videominute').val(m);
|
||||
$("#dialog_videoct").prop("checked", false);
|
||||
$("#dialog_videoct").change();
|
||||
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_requestvideo')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 300,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_requestvideo').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_requestvideo').width()) / 2
|
||||
}).showDialogfixed();
|
||||
}
|
||||
|
||||
function requestVideo() {
|
||||
var ct = $("#dialog_videoct").prop("checked") ? 1 : 0;
|
||||
var dt = $("#dialog_videodate").val();
|
||||
var hour = $('#dialog_videohour').val();
|
||||
var minute = $('#dialog_videominute').val();
|
||||
dt = dt.replace("-", "/") + " " + hour + ":" + minute + ":" + "00";
|
||||
|
||||
var sec = $('#r30sec').prop("checked") ? 1 : 0;
|
||||
|
||||
var loc;
|
||||
if ($('#dialog_hlogid').val() == "-1")
|
||||
loc = assetLocations[_videoRequestAssetID];
|
||||
else
|
||||
loc = assetHisLocations[parseInt($('#dialog_hlogid').val())];
|
||||
|
||||
var cid = loc.CompanyID;
|
||||
var logid = loc.LogId;
|
||||
var src = loc.DataSource;
|
||||
var subsrc = loc.SubSource;
|
||||
var et = loc.EventType;
|
||||
var msguid = loc.MsgUID;
|
||||
|
||||
_network.mapviewquery("RequestVideo", JSON.stringify([cid, _videoRequestAssetID, ct, dt, sec, logid, src, subsrc, et, msguid]), function (data) {
|
||||
if (data == "OK") {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_REQUESTVIDEOSUCCESSFULLY", 'A video has been successfully requested for this Asset at the timestamp indicated. The requested video will be emailed to you once it is available. If the Asset or Camera are currently offline, the requested video will be sent as soon as it is available.'), GetTextByKey("P_MV_REQUESTVIDEO", 'Request Video'));
|
||||
}
|
||||
else {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_REQUESTVIDEOFAILED", 'Request video failed.'), GetTextByKey("P_MV_REQUESTVIDEO", 'Request Video'));
|
||||
}
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function openTrips(detail) {
|
||||
$("#tbTrips").empty();
|
||||
getAssetTripLins(detail);
|
||||
}
|
||||
|
||||
|
||||
function getLocationPrimaryDataSource() {
|
||||
var cid = currentLocationHistoryMachine.CompanyID || "";
|
||||
var mid = currentLocationHistoryMachine.ID;
|
||||
var p = mid + ";" + cid;
|
||||
|
||||
_network.mapviewquery("GetLocationPrimaryDataSource", p, function (data) {
|
||||
if (data && data.Item1.toLowerCase() === "calamp")
|
||||
$("#btnLoadTrip").show();
|
||||
else
|
||||
$("#btnLoadTrip").hide();
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
function getAssetTripLins(detail) {
|
||||
var cid = currentLocationHistoryMachine.CompanyID;
|
||||
var mid = currentLocationHistoryMachine.ID;
|
||||
var dtfrom = $("#dateFrom").val();
|
||||
var dtto = $("#dateTo").val();
|
||||
|
||||
var start_hour = $('#dialog_starttimehour').val();
|
||||
var start_minute = $('#dialog_starttimeminute').val();
|
||||
var end_hour = $('#dialog_endtimehour').val();
|
||||
var end_minute = $('#dialog_endtimeminute').val();
|
||||
|
||||
dtfrom = dtfrom.replace("-", "/") + " " + start_hour + ":" + start_minute + ":" + "00";
|
||||
dtto = dtto.replace("-", "/") + " " + end_hour + ":" + end_minute + ":" + "59";
|
||||
|
||||
if (new Date(dtfrom) > new Date(dtto)) {
|
||||
return;
|
||||
}
|
||||
if (detail)
|
||||
$("#tripDiv").css({ 'left': 'unset', 'right': 11, 'bottom': 0, 'height': '65%' });
|
||||
else
|
||||
$("#tripDiv").css({ 'left': 0, 'right': 'unset', 'bottom': 52, 'height': 450 });
|
||||
|
||||
$("#tripDiv").show();
|
||||
|
||||
var p = mid + ";" + dtfrom + ";" + dtto;
|
||||
p += ";" + cid
|
||||
|
||||
_network.mapviewquery("GetAssetTripLins", p, function (data) {
|
||||
showAssetTripLins(data);
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
function showAssetTripLins(data) {
|
||||
var tb = $("#tbTrips");
|
||||
tb.empty();
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var trip = data[i];
|
||||
var color = getTripColor(trip);
|
||||
var tr = $("<tr style='border-bottom: 1px solid lightgray;'></tr>");
|
||||
tb.append(tr);
|
||||
|
||||
var td = $('<td></td>').css('width', 30);
|
||||
tr.append(td);
|
||||
var div = $(' <div class="div_check"></div>');
|
||||
var id = "tripitem" + i;
|
||||
var chk = $('<input type="checkbox" value="1" name="" id="' + id + '"/>').data("trip", trip).data("row", tr);
|
||||
var label = $('<label for="' + id + '" class="la1_check"></label>');
|
||||
label.css('background-color', color);
|
||||
div.append(chk).append(label);
|
||||
td.append(div);
|
||||
|
||||
chk.click(function (e) {
|
||||
var t = $(e.target).data("trip");
|
||||
var row = $(e.target).data("row");
|
||||
if (t && (t.TripOn || t.TripOff)) {
|
||||
if ($(e.target).prop("checked")) {
|
||||
mapHelper.changeLineColor(t.TripOn ? t.TripOn.LocalAsofTime : null, t.TripOff ? t.TripOff.LocalAsofTime : null, getTripColorArray(t));
|
||||
row.css("background-color", "lightgray");
|
||||
}
|
||||
else {
|
||||
mapHelper.changeLineColor(t.TripOn ? t.TripOn.LocalAsofTime : null, t.TripOff ? t.TripOff.LocalAsofTime : null, null);
|
||||
row.css("background-color", "white");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
td = $("<td></td>").css('width', 150);
|
||||
tr.append(td);
|
||||
var span = $('<span></span>').text(trip.TripOnLocalAsofTimeStr);
|
||||
td.append(span).append($('<br>'));
|
||||
span = $('<span></span>').text(trip.TripOffLocalAsofTimeStr);
|
||||
td.append(span);
|
||||
|
||||
td = $("<td></td>").css('width', 180);
|
||||
tr.append(td);
|
||||
span = $('<span class="tripaddress_span"></span>').attr('title', trip.TripOnAddress).text(trip.TripOnAddress);
|
||||
td.append(span).append($('<br>'));
|
||||
span = $('<span class="tripaddress_span"></span>').attr('title', trip.TripOffAddress).text(trip.TripOffAddress);
|
||||
td.append(span);
|
||||
|
||||
td = $("<td></td>").css({ 'width': 100, "text-align": "right" });
|
||||
tr.append(td);
|
||||
span = $('<span></span>').text(trip.TripDistance ? trip.TripDistance : "");
|
||||
td.append(span);
|
||||
span = $('<span></span>').text(trip.TripDistance ? " " + trip.TripDistanceUnit : "");
|
||||
td.append(span);
|
||||
|
||||
td = $("<td></td>").css('width', 60);
|
||||
tr.append(td);
|
||||
span = $('<span style="padding-left:6px;"></span>').text(trip.TripTimeStr);
|
||||
td.append(span);
|
||||
}
|
||||
}
|
||||
|
||||
function getTripColor(trip) {
|
||||
var color = "#c8c4c4";
|
||||
if (trip.Color === 0)
|
||||
color = "#0000FF";
|
||||
else if (trip.Color === 1)
|
||||
color = "#4FBC20";
|
||||
else if (trip.Color === 2)
|
||||
color = "#FF00FF";
|
||||
else if (trip.Color === 3)
|
||||
color = "#FFFF00";
|
||||
else if (trip.Color === 4)
|
||||
color = "#ebbeb3";
|
||||
else if (trip.Color === 5)
|
||||
color = "#ff0000";
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
function getTripColorArray(trip) {
|
||||
var color = [225, 95, 72];
|
||||
if (trip.Color === 0)
|
||||
color = [0x0, 0x0, 0xFF];
|
||||
else if (trip.Color === 1)
|
||||
color = [0x4F, 0xBC, 0x20];
|
||||
else if (trip.Color === 2)
|
||||
color = [0xFF, 0x0, 0xFF];
|
||||
else if (trip.Color === 3)
|
||||
color = [0xFF, 0xFF, 0x0];
|
||||
else if (trip.Color === 4)
|
||||
color = [0xEB, 0xBE, 0xB3];
|
||||
else if (trip.Color === 5)
|
||||
color = [0xFF, 0x00, 0x00];
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
|
||||
var imgTypes = [".jfif", ".jpg", ".jpeg", ".bmp", ".png", ".tiff", ".gif"];
|
||||
var printTypes = ['.pdf', ".jfif", ".jpg", ".jpeg", ".bmp", ".png", ".tiff", ".gif"];//types to be loaded to print
|
||||
function getAssetMapAttachments(cid, assetid) {
|
||||
showmaskbg(true);
|
||||
$('#dialog_assetattachments').css({
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_assetattachments').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_assetattachments').width()) / 2
|
||||
}).showDialogfixed();
|
||||
|
||||
var div_aatts = $("#divassetattachments").empty();
|
||||
div_aatts.find(".attachmentsmask").show();
|
||||
_network.mapviewquery("GetAssetMapAttachments", JSON.stringify([cid, assetid]), function (data) {
|
||||
div_aatts.find(".attachmentsmask").hide();
|
||||
if (data && data.length > 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var att = data[i];
|
||||
if (imgTypes.indexOf(att.FileType.toLowerCase()) >= 0)
|
||||
att.ThumbnailUrl = att.Url + "&thumb=1";
|
||||
var div = createAttaDiv(att);
|
||||
|
||||
if ($.inArray(att.FileType.toLowerCase(), printTypes) >= 0) {
|
||||
var sprint = $('<span class="attaprint"></span>').attr('title', GetTextByKey("P_WO_PRINT", 'Print')).click(att, function (e) {
|
||||
openPrintFrame(e.data.AttachmentType, e.data.AttachmentIdStr);
|
||||
});
|
||||
div.append(sprint);
|
||||
}
|
||||
|
||||
if (att.FileType.toLowerCase() != "url") {
|
||||
var sdownload = $('<span class="attadownload"></span>').attr('title', GetTextByKey("P_WO_DOWNLOAD", 'Download')).click(att, function (e) {
|
||||
openDownloadFrame(e.data.Url + "&d=1");
|
||||
});
|
||||
div.append(sdownload);
|
||||
}
|
||||
|
||||
div_aatts.append(div);
|
||||
}
|
||||
}
|
||||
}, function () {
|
||||
div_aatts.find(".attachmentsmask").hide();
|
||||
});
|
||||
}
|
||||
|
||||
function createAttaDiv(att, iswoatta) {
|
||||
var div = $('<div class="divatt"></div>').attr('title', att.Name);
|
||||
|
||||
if (!att.FileType || att.FileType == "") att.FileType = ".jpg";
|
||||
if (imgTypes.indexOf(att.FileType.toLowerCase()) >= 0) {
|
||||
var pic = $('<img class="picture"></img>').attr('src', att.ThumbnailUrl);
|
||||
pic.click(att, function (e) {
|
||||
window.open(e.data.Url, "_blank")
|
||||
});
|
||||
div.append(pic);
|
||||
}
|
||||
else {
|
||||
var sdown = $('<img class="picture" />').click(att, function (e) {
|
||||
window.open(e.data.Url);
|
||||
});
|
||||
setAttachemntIcon(att.FileType, sdown);
|
||||
div.append(sdown);
|
||||
}
|
||||
return div
|
||||
}
|
||||
|
||||
function setAttachemntIcon(filetype, sdown) {
|
||||
if ([".doc", ".docx"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/word.jpg')
|
||||
} else if ([".xls", ".xlsx"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/excel.jpg')
|
||||
} else if ([".ppt", ".pptx"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/ppt.jpg')
|
||||
} else if ([".pdf", ".xps"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/pdf.jpg')
|
||||
} else if ([".mp4", ".mov", ".avi", ".mkv", ".3gp", ".ts", ".m2ts"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/vedio.jpg')
|
||||
} else if ([".zip", ".rar", ".7z"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/zip.jpg')
|
||||
} else if ([".msg"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/msg.jpg')
|
||||
} else if ([".xml"].indexOf(filetype) >= 0) {
|
||||
sdown.attr('src', 'img/icon/xml.jpg')
|
||||
} else {
|
||||
sdown.attr('src', 'img/icon/txt.jpg')
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,303 @@
|
||||
$(function () {
|
||||
InitSavedSearchGrid();
|
||||
InitSaveSearchGrid();
|
||||
|
||||
$("#btnSavedSearches").click(openSavedSearches);
|
||||
$("#btnSaveSearchDetault").click(openSaveSearch);
|
||||
$('#dialog_savedsearches').dialog(function () {
|
||||
$('#mask_bg').hide();
|
||||
});
|
||||
|
||||
$('#dialog_savesearch').dialog(function () {
|
||||
$('#mask_bg').hide();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function showGridList(grid_dt) {
|
||||
showSearchList(grid_dt, userParams.MapViewSearches);
|
||||
}
|
||||
|
||||
function showSearchList(grid_dt, data) {
|
||||
grid_dt.setData([]);
|
||||
if (!data || data.length === 0)
|
||||
return;
|
||||
var rows = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var r = data[i];
|
||||
for (var j in r) {
|
||||
if (j === "IsDefault") {
|
||||
r.IsDefaultText = r.IsDefault ? GetTextByKey("P_MV_YES", "Yes") : GetTextByKey("P_MV_NO", "No");
|
||||
}
|
||||
}
|
||||
r.Text = false;
|
||||
r.Email = false;
|
||||
var fr = { Values: r };
|
||||
rows.push(fr);
|
||||
}
|
||||
|
||||
grid_dt.setData(rows);
|
||||
}
|
||||
|
||||
/**********************Saved Searches***********************************/
|
||||
function openSavedSearches() {
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_savedsearches .dialog-title span.title').text(GetTextByKey("P_MV_SAVEDSEARCHES", 'Saved Searches'));
|
||||
$('#dialog_savedsearches')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 450,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_savedsearches').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_savedsearches').width()) / 2
|
||||
})
|
||||
.showDialogfixed();
|
||||
showGridList(savedsearches_dt)
|
||||
}
|
||||
|
||||
var savedsearches_dt;
|
||||
function InitSavedSearchGrid() {
|
||||
savedsearches_dt = new GridView('#savedsearchlist');
|
||||
savedsearches_dt.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var list_columns = [
|
||||
{ name: 'Name', caption: GetTextByKey("P_MV_SEARCHNAME", "Search Name"), valueIndex: 'Name', css: { 'width': 250, 'text-align': 'left' } },
|
||||
{ name: 'IsDefault', caption: GetTextByKey("P_MV_DEFAULT", "Default"), valueIndex: 'IsDefaultText', css: { 'width': 70, 'text-align': 'left' } },
|
||||
{ name: 'Apply', 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.key = list_columns[hd].valueIndex;
|
||||
if (list_columns[hd].type) {
|
||||
col.type = list_columns[hd].type;
|
||||
}
|
||||
if (col.name === "Apply") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf1da";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
onLoadSavedSearches(this);
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
}
|
||||
col.attrs = { 'title': GetTextByKey("P_MV_APPLY", 'Apply') };
|
||||
}
|
||||
else if (col.name === "Delete") {
|
||||
col.isurl = true;
|
||||
col.text = "\uf00d";
|
||||
col.events = {
|
||||
onclick: function () {
|
||||
OnDeleteSavedSearches(this);
|
||||
}
|
||||
};
|
||||
col.classFilter = function (e) {
|
||||
return "icon-col";
|
||||
};
|
||||
col.attrs = { 'title': GetTextByKey("P_MV_DELETE", 'Delete') };
|
||||
}
|
||||
columns.push(col);
|
||||
}
|
||||
savedsearches_dt.canMultiSelect = false;
|
||||
savedsearches_dt.columns = columns;
|
||||
savedsearches_dt.init();
|
||||
|
||||
savedsearches_dt.selectedrowchanged = function (rowindex) {
|
||||
var rowdata = savedsearches_dt.source[rowindex];
|
||||
if (rowdata) {
|
||||
$('#savedsearch_searchname').val(rowdata.Values.Name);
|
||||
}
|
||||
};
|
||||
|
||||
savedsearches_dt.rowdblclick = function (rowindex) {
|
||||
var rowdata = savedsearches_dt.source[rowindex];
|
||||
if (rowdata) {
|
||||
onLoadSavedSearches(rowdata.Values);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function OnDeleteSavedSearches(search) {
|
||||
if (!search) {
|
||||
return;
|
||||
}
|
||||
showConfirm(GetTextByKey("P_MV_SEARCHDELETEWANTTOCONTINUE", 'Search {0} will be permanently deleted.Do you want to continue?').replace('{0}', search.Name), GetTextByKey("P_MV_DELETESEARCH", 'Delete Search'), function () {
|
||||
_network.mapviewquery("DeleteMapViewSearch", search.Name, function (data) {
|
||||
if (data) {
|
||||
userParams.MapViewSearches = data;
|
||||
showGridList(savedsearches_dt);
|
||||
}
|
||||
}, function (err) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FAILEDTODELETETHISSEARCH", 'Failed to delete this search.'), GetTextByKey("P_MV_DELETESEARCH", 'Delete Search'));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function onLoadSavedSearches(search) {
|
||||
if (!search) {
|
||||
var name = $('#savedsearch_searchname').val();
|
||||
if (name === "")
|
||||
return;
|
||||
if (!userParams.MapViewSearches || userParams.MapViewSearches.length == 0) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_YOUHAVENOSAVEDSEARCHES", 'You have no saved searches.'), '');
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = 0; i < userParams.MapViewSearches.length; i++) {
|
||||
if (userParams.MapViewSearches[i].Name.toLowerCase() === name.toLowerCase()) {
|
||||
search = userParams.MapViewSearches[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!search) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_SEARCHDOESNOTEXIST", 'Search {0} does not exist.').replace('{0}', $('#savedsearch_searchname').val()), '');
|
||||
return;
|
||||
}
|
||||
setSavedSearche(search);
|
||||
refreshData();
|
||||
$('#dialog_savedsearches').hideDialog();
|
||||
$('#mask_bg').hide();
|
||||
}
|
||||
|
||||
function setSavedSearche(search) {
|
||||
$("#selOnroad").val(search.Onroad);
|
||||
$("#selAttachment").val(search.Attachment);
|
||||
$('#txtMachineSearchText').val(search.AssetDefaultSearch);
|
||||
$('#txtJobSiteSearchText').val(search.JobSiteDefaultSearch);
|
||||
$('#txtAssetGroupSearchText').val(search.AssetGroupDefaultSearch);
|
||||
//$('#chkExcludeNoLoc').prop("checked", search.ExcludeNoLocation);
|
||||
setExclude00(search.ExcludeNoLocation);
|
||||
assetObject.setUnShownMachines(search.UnShownMachines);
|
||||
jobsiteObject.setUnShownJobsites(search.UnShownJobsites);
|
||||
jobsiteObject.setUnShownMachines(search.UnShownJobsiteMachines);
|
||||
|
||||
resetMachineState();
|
||||
}
|
||||
|
||||
|
||||
/**********************Save Searche***********************************/
|
||||
|
||||
function openSaveSearch() {
|
||||
$('#savesearch_searchname').val('');
|
||||
$('#savesearch_default').prop('checked', false);
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_savesearch .dialog-title span.title').text(GetTextByKey("P_MV_SAVESEARCH", 'Save Search'));
|
||||
$('#dialog_savesearch')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 450,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_savesearch').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_savesearch').width()) / 2
|
||||
})
|
||||
.showDialogfixed();
|
||||
|
||||
showGridList(savesearch_dt);
|
||||
}
|
||||
|
||||
var savesearch_dt;
|
||||
function InitSaveSearchGrid() {
|
||||
savesearch_dt = new GridView('#savesearchlist');
|
||||
savesearch_dt.lang = {
|
||||
all: GetTextByKey("P_GRID_ALL", "(All)"),
|
||||
ok: GetTextByKey("P_GRID_OK", "OK"),
|
||||
reset: GetTextByKey("P_GRID_RESET", "Reset")
|
||||
};
|
||||
var list_columns = [
|
||||
{ name: 'Name', caption: GetTextByKey("P_MV_SEARCHNAME", "Search Name"), valueIndex: 'Name', css: { 'width': 250, 'text-align': 'left' } },
|
||||
{ name: 'IsDefault', caption: GetTextByKey("P_MV_DEFAULT", "Default"), valueIndex: 'IsDefaultText', css: { 'width': 70, '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;
|
||||
if (list_columns[hd].type) {
|
||||
col.type = list_columns[hd].type;
|
||||
}
|
||||
columns.push(col);
|
||||
}
|
||||
savesearch_dt.canMultiSelect = false;
|
||||
savesearch_dt.columns = columns;
|
||||
savesearch_dt.init();
|
||||
|
||||
savesearch_dt.selectedrowchanged = function (rowindex) {
|
||||
var rowdata = savesearch_dt.source[rowindex];
|
||||
if (rowdata) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onSaveSearch() {
|
||||
var name = $('#savesearch_searchname').val();
|
||||
var item = {
|
||||
'Name': name,
|
||||
'IsDefault': $('#savesearch_default').prop('checked'),
|
||||
'Onroad': $("#selOnroad").val(),
|
||||
'Attachment': $("#selAttachment").val(),
|
||||
'AssetDefaultSearch': $('#txtMachineSearchText').val(),
|
||||
'JobSiteDefaultSearch': $('#txtJobSiteSearchText').val(),
|
||||
'AssetGroupDefaultSearch': $('#txtAssetGroupSearchText').val(),
|
||||
'ExcludeNoLocation': $("#exclude00Div").attr("state") != "0", //$("#chkExcludeNoLoc").prop("checked"),
|
||||
'UnShownMachines': assetObject.getUnShownMachines(),
|
||||
'UnShownJobsites': jobsiteObject.getUnShownJobsites(),
|
||||
'UnShownJobsiteMachines': jobsiteObject.getUnShownMachines()
|
||||
};
|
||||
if (item.Name === "") {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_SEARCHNAMEISREQUIRED", 'Search Name is required.'), GetTextByKey("P_MV_SAVESEARCH", 'Save Search'));
|
||||
return;
|
||||
}
|
||||
|
||||
var exists = false;
|
||||
if (userParams.MapViewSearches) {
|
||||
for (var i = 0; i < userParams.MapViewSearches.length; i++) {
|
||||
var search = userParams.MapViewSearches[i];
|
||||
if (search.Name.toLowerCase() === item.Name.toLowerCase()) {
|
||||
exists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (exists) {
|
||||
showConfirm(GetTextByKey("P_MV_SEARCHALREADYEXIST", 'Search {0} already exists. Would you like to replace?').replace('{0}', item.Name), GetTextByKey("P_MV_SAVESEARCH", 'Save Search'), function () {
|
||||
SaveMapViewSearch(item);
|
||||
});
|
||||
} else
|
||||
SaveMapViewSearch(item);
|
||||
}
|
||||
|
||||
function SaveMapViewSearch(item) {
|
||||
_network.mapviewquery("SaveMapViewSearch", JSON.stringify(item), function (data) {
|
||||
if (data) {
|
||||
userParams.MapViewSearches = data;
|
||||
showGridList(savesearch_dt);
|
||||
|
||||
$('#savesearch_searchname').val('');
|
||||
$('#savesearch_default').prop('checked', false);
|
||||
_dialog.showAlert(GetTextByKey("P_MV_SAVSUCCESSFULLY", 'Saved successfully.'), GetTextByKey("P_MV_SAVESEARCH", 'Save Search'));
|
||||
$('#dialog_savesearch').hideDialog();
|
||||
$('#mask_bg').hide();
|
||||
}
|
||||
}, function (err) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FAILEDTOSAVETHISSEARCH", 'Failed to save this search.'), GetTextByKey("P_MV_SAVESEARCH", 'Save Search'));
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
var shapevm;
|
||||
$(function () {
|
||||
initshape();
|
||||
});
|
||||
|
||||
var selectedShapeFileID = [];
|
||||
function initshape() {
|
||||
shapevm = new Vue({
|
||||
el: '#shapeList',
|
||||
data: {
|
||||
shapes: []
|
||||
},
|
||||
methods: {
|
||||
reload: function (data) {
|
||||
this.shapes = data;
|
||||
|
||||
var selcount = 0;
|
||||
for (var i = 0; i < this.shapes.length; i++) {
|
||||
var o = this.shapes[i];
|
||||
if (o.Selected) selcount++;
|
||||
}
|
||||
|
||||
var chkSelectAllShape = document.getElementById("chkSelectAllShape");
|
||||
if (selcount == 0) {
|
||||
chkSelectAllShape.checked = false;
|
||||
chkSelectAllShape.indeterminate = false;
|
||||
}
|
||||
else if (selcount == this.shapes.length) {
|
||||
chkSelectAllShape.checked = true;
|
||||
chkSelectAllShape.indeterminate = false;
|
||||
}
|
||||
else {
|
||||
chkSelectAllShape.indeterminate = true;
|
||||
}
|
||||
},
|
||||
chkShapeClick: function (e, s) {
|
||||
var t = $(e.target);
|
||||
var checked = t.prop("checked");
|
||||
if (checked) {
|
||||
getShapeFileData(s);
|
||||
if (selectedShapeFileID.indexOf(s.ID) < 0) {
|
||||
selectedShapeFileID.push(s.ID);
|
||||
}
|
||||
}
|
||||
else {
|
||||
mapHelper.removeShape(s);
|
||||
selectedShapeFileID.splice(selectedShapeFileID.indexOf(s.ID), 1);
|
||||
}
|
||||
|
||||
this.reload(this.shapes);
|
||||
},
|
||||
linkShapeClick: function (s) {
|
||||
locateShape(s);
|
||||
s.Selected = true;
|
||||
if (selectedShapeFileID.indexOf(s.ID) < 0) {
|
||||
selectedShapeFileID.push(s.ID);
|
||||
}
|
||||
|
||||
this.reload(this.shapes);
|
||||
},
|
||||
deleteShapeClick: function (m, ev) {
|
||||
var e = { data: m };
|
||||
deleteShapeClick(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getShapeFileInfos() {
|
||||
var item = {
|
||||
'Key': companyids,
|
||||
'Value': htmlencode($("#txtShapeSearchText").val())
|
||||
};
|
||||
|
||||
_network.mapviewquery("GetShapeFileInfos", JSON.stringify(item), function (data) {
|
||||
if (typeof (data) === "string") {
|
||||
_dialog.showAlert(data, GetTextByKey("P_MV_ERROR", 'Error'));
|
||||
return;
|
||||
}
|
||||
for (var i in data) {
|
||||
if (selectedShapeFileID.indexOf(data[i].ID) < 0)
|
||||
data[i].Selected = false;
|
||||
else
|
||||
data[i].Selected = true;
|
||||
}
|
||||
shapevm.reload(data);
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
function showConfirm1(msg, title, fok, fcancel) {
|
||||
$('#mask_bg').show();
|
||||
$('#addodomask').show();
|
||||
$('#addenginehoursmask').show();
|
||||
_dialog.showConfirm(msg, title, function (e) {
|
||||
$('#mask_bg').hide();
|
||||
$('#addodomask').hide();
|
||||
$('#addenginehoursmask').hide();
|
||||
if (typeof fok === 'function') {
|
||||
fok(e);
|
||||
}
|
||||
}, function () {
|
||||
$('#mask_bg').hide();
|
||||
$('#addodomask').hide();
|
||||
$('#addenginehoursmask').hide();
|
||||
});
|
||||
}
|
||||
|
||||
function deleteShapeClick(e) {
|
||||
if (!e.data) {
|
||||
return;
|
||||
}
|
||||
var item = {
|
||||
'Key': e.data.CompanyID,
|
||||
'Value': e.data.ID
|
||||
};
|
||||
$('#mask_bg').show();
|
||||
showConfirm1(GetTextByKey("P_MV_DOYOUWANTTODELETETHESHAPEFILE", 'Do you want to delete the shape file?'), GetTextByKey("p_MV_DELETESHAPEFILE", 'Delete Shape File'), function () {
|
||||
_network.mapviewquery("DeleteShape", JSON.stringify(item), function (data) {
|
||||
mapHelper.removeShape(e.data);
|
||||
getShapeFileInfos();
|
||||
}, function (err) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_FAILEDTODELETETHISSHAPLEFILE", 'Failed to delete this shaple file.'), GetTextByKey("p_MV_DELETESHAPEFILE", 'Delete Shape File'));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function openImportShapeFile() {
|
||||
$('#dialog_shapename').val('');
|
||||
$('#dialog_shapenotes').val('');
|
||||
$('#span_filename').text('');
|
||||
$('#mask_bg').show();
|
||||
$('#dialog_importshapefile .dialog-title span.title').text(GetTextByKey("P_MV_IMPORTSHAPEFILE", 'Import Shape File'));
|
||||
$('#dialog_importshapefile')
|
||||
.attr('act', 'edit')
|
||||
.css({
|
||||
'width': 500,
|
||||
'top': (document.documentElement.clientHeight - $('#dialog_importshapefile').height()) / 4,
|
||||
'left': (document.documentElement.clientWidth - $('#dialog_importshapefile').width()) / 2
|
||||
})
|
||||
.showDialogfixed();
|
||||
}
|
||||
|
||||
var shapefiledata;
|
||||
function UploadImportShapeFile() {
|
||||
var file = $('<input type="file" style="display: none;" accept=".shp,.kml,.kmz"/>');
|
||||
file.change(function () {
|
||||
var file = this.files[0];
|
||||
shapefiledata = file;
|
||||
$('#span_filename').text(file.name);
|
||||
var name = $("#dialog_shapename").val();
|
||||
if (!name || name.length == 0) {
|
||||
if (file.name.length > 100)
|
||||
$("#dialog_shapename").val(file.name.substring(0, 100));
|
||||
else
|
||||
$("#dialog_shapename").val(file.name);
|
||||
}
|
||||
|
||||
}).click();
|
||||
}
|
||||
|
||||
function SaveImportShapeFile() {
|
||||
if (!shapefiledata)
|
||||
return;
|
||||
|
||||
var item = {
|
||||
'Key': companyids,
|
||||
'Value': $("#dialog_shapename").val(),
|
||||
'Tag1': $("#dialog_shapenotes").val(),
|
||||
};
|
||||
|
||||
if (!item.Value || item.Value.length == 0) {
|
||||
_dialog.showAlert(GetTextByKey("P_MV_SHAPENAMECANNOTBEEMPTY", 'Shape name cannot be empty.'), GetTextByKey("P_MV_IMPORTSHAPEFILE", 'Import Shape File'));
|
||||
return;
|
||||
}
|
||||
var param = JSON.stringify(item);
|
||||
param = htmlencode(param);
|
||||
|
||||
var formData = new FormData();
|
||||
formData.append("iconFile", shapefiledata);
|
||||
formData.append("MethodName", "ImportShape");
|
||||
formData.append("ClientData", param);
|
||||
$.ajax({
|
||||
url: 'mapview.ashx?tp=ashx',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
data: formData,
|
||||
async: true,
|
||||
success: function (data) {
|
||||
if (data !== "OK") {
|
||||
_dialog.showAlert(data, GetTextByKey("P_MV_ERROR", 'Error'));
|
||||
return;
|
||||
}
|
||||
getShapeFileInfos();
|
||||
shapefiledata = undefined;
|
||||
$('#dialog_importshapefile').hideDialog();
|
||||
$('#mask_bg').hide();
|
||||
},
|
||||
error: function (err) {
|
||||
_dialog.showAlert(err.statusText, GetTextByKey("P_MV_IMPORTSHAPEFILE", 'Import Shape File'));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function getShapeFileData(s, needLocate) {
|
||||
var item = {
|
||||
'Key': s.CompanyID,
|
||||
'Value': s.ID,
|
||||
'Tag1': s.FileName
|
||||
};
|
||||
|
||||
_network.mapviewquery("GetShapeData", JSON.stringify(item), function (data) {
|
||||
if (typeof (data) === "string") {
|
||||
_dialog.showAlert(data, GetTextByKey("P_MV_ERROR", 'Error'));
|
||||
return;
|
||||
}
|
||||
s.Shape = data;
|
||||
|
||||
if (needLocate)
|
||||
locateShape(s);
|
||||
else
|
||||
mapHelper.showShape(s);
|
||||
}, function () {
|
||||
});
|
||||
}
|
||||
|
||||
function locateShape(s) {
|
||||
if (s.Shape) {
|
||||
mapHelper.showShape(s);
|
||||
mapHelper.locateShape(s);
|
||||
}
|
||||
else
|
||||
getShapeFileData(s, true);
|
||||
}
|
||||
@@ -0,0 +1,354 @@
|
||||
// JavaScript Document
|
||||
(function ($) {
|
||||
var isAction = true;
|
||||
var width = 0;
|
||||
var thewidth = 0;
|
||||
var CurrTime = 0;
|
||||
var t;
|
||||
var addHour = 0,
|
||||
addMinute = 0,
|
||||
addSecond = 0,
|
||||
TheHour = 0,
|
||||
TheMinute = 0,
|
||||
TheSecond = 0;
|
||||
var flag = 0;
|
||||
var alltime = 0;
|
||||
var addwidth = 0;
|
||||
var offsetW = 0;
|
||||
var times = 0;
|
||||
var rwidth = 0;
|
||||
var valueChanged = false;
|
||||
|
||||
jQuery.playBar = {
|
||||
addBar: function (DOM, allTime) {
|
||||
CleanAll();
|
||||
alltime = allTime;
|
||||
DOM.empty();
|
||||
DOM.append("<div class='BarControl'><div class='BarBeginTime'>00:00</div></div>");
|
||||
$(".BarControl").append('<div class="TheBar"><div class="TimeBall"></div><div class="TheColorBar"></div><div class="TheWhiteBar"></div></div><div class="BarFinishTime">10:35</div><div id="btnPlay" class="BarPlay"></div><div id="btnPlayEnd" class="BarPlayEnd">');
|
||||
width = $('.TheBar').width();
|
||||
times = allTime / 1000;
|
||||
rwidth = width - 8;
|
||||
addwidth = (width - 10) / times;
|
||||
var t = TransitionTime(allTime);
|
||||
$('.BarFinishTime').html(t.StringTime);
|
||||
|
||||
$('#btnPlay').click(function () {
|
||||
if ($.playBar.onPlayClick)
|
||||
$.playBar.onPlayClick(false);
|
||||
}).attr("title", GetTextByKey("P_MV_PLAYBACK", "Playback"));
|
||||
$('#btnPlayEnd').click(function () {
|
||||
if ($.playBar.onPlayClick)
|
||||
$.playBar.onPlayClick(true);
|
||||
}).attr("title", GetTextByKey("P_MV_QUICKLOADSKIPTOEND", "Quick Load/Skip to End"));
|
||||
|
||||
OpenBar();
|
||||
},
|
||||
restTime: function (allTime, valuechanged, jump) {
|
||||
CleanAll();
|
||||
StopBar();
|
||||
alltime = allTime;
|
||||
width = $('.TheBar').width();
|
||||
times = allTime / 1000;
|
||||
rwidth = width - 8;
|
||||
addwidth = (width - 10) / times;
|
||||
var t = TransitionTime(allTime);
|
||||
$('.BarFinishTime').html(t.StringTime);
|
||||
$('.TheColorBar').css("width", 0);
|
||||
$('.TimeBall').css("left", 0);
|
||||
|
||||
if (valuechanged === undefined)
|
||||
valueChanged = false;
|
||||
else
|
||||
valueChanged = valuechanged;
|
||||
|
||||
if (allTime > 0) {
|
||||
if (jump) {
|
||||
thewidth = rwidth;
|
||||
timechange();
|
||||
changeBar();
|
||||
} else {
|
||||
OpenBar();
|
||||
}
|
||||
}
|
||||
},
|
||||
Play: function () {
|
||||
if (isAction)
|
||||
jQuery.playBar.Stop();
|
||||
else
|
||||
jQuery.playBar.Begin();
|
||||
},
|
||||
PlayEnd: function () {
|
||||
jQuery.playBar.restTime(alltime, true, true);
|
||||
},
|
||||
Stop: function () {
|
||||
StopBar();
|
||||
},
|
||||
Clear: function () {
|
||||
StopBar();
|
||||
this.restTime(0);
|
||||
$('#btnPlay').removeClass("BarPause");
|
||||
$('#btnPlay').addClass("BarPlay");
|
||||
},
|
||||
Begin: function () {
|
||||
if (CurrTime >= alltime) {
|
||||
this.restTime(alltime, true);
|
||||
}
|
||||
else
|
||||
OpenBar()
|
||||
},
|
||||
changeBarColor: function (COLOR) {
|
||||
var color = typeof (COLOR) != "undefined" ? COLOR : '#3498DB';
|
||||
$('.TheColorBar').css("background", color);
|
||||
$('.TimeBall').css("background", color)
|
||||
},
|
||||
changeFontColor: function (COLOR) {
|
||||
var color = typeof (COLOR) != "undefined" ? COLOR : '#3498DB';
|
||||
$('.BarBeginTime,.BarFinishTime').css("color", color)
|
||||
},
|
||||
getAllTime: function () {
|
||||
return alltime;
|
||||
},
|
||||
getTheTime: function () {
|
||||
return CurrTime
|
||||
},
|
||||
onBarChanged: undefined,
|
||||
onPlayClick: undefined
|
||||
};
|
||||
|
||||
function CleanAll() {
|
||||
isAction = true;
|
||||
thewidth = 0;
|
||||
CurrTime = 0;
|
||||
addHour = 0;
|
||||
addMinute = 0;
|
||||
addSecond = 0;
|
||||
TheHour = 0;
|
||||
TheMinute = 0;
|
||||
TheSecond = 0;
|
||||
offsetW = 0;
|
||||
thewidth = 0;
|
||||
flag = 0
|
||||
}
|
||||
var down = false;
|
||||
var BarMove = false;
|
||||
var lastX = 0,
|
||||
NewX = 0;
|
||||
$(document).on("mousedown", '.TimeBall', function (event) {
|
||||
lastX = event.clientX;
|
||||
//event.preventDefault();
|
||||
down = true;
|
||||
BarMove = true;
|
||||
if (isAction) {
|
||||
StopBar()
|
||||
}
|
||||
|
||||
$(document).mousemove(dragmove);
|
||||
$(document).mouseup(dragup);
|
||||
});
|
||||
|
||||
function dragmove(event) {
|
||||
//event.preventDefault();
|
||||
NewX = event.clientX;
|
||||
if (BarMove) {
|
||||
var mcs = NewX - lastX;
|
||||
lastX = NewX;
|
||||
if (mcs < 0) {
|
||||
if (thewidth - (-mcs) > 0) {
|
||||
thewidth = thewidth - (-mcs)
|
||||
}
|
||||
} else {
|
||||
if (thewidth + mcs < rwidth) {
|
||||
thewidth = thewidth + mcs
|
||||
} else {
|
||||
thewidth = rwidth
|
||||
}
|
||||
}
|
||||
timechange();
|
||||
$('.TheColorBar').css("width", thewidth + 1);
|
||||
$('.TimeBall').css("left", thewidth)
|
||||
}
|
||||
}
|
||||
|
||||
function dragup() {
|
||||
if (BarMove) {
|
||||
BarMove = false;
|
||||
down = false;
|
||||
NewX = 0;
|
||||
var xo = parseInt(CurrTime / 1000);
|
||||
offsetW = thewidth - xo * addwidth;
|
||||
if (isAction) {
|
||||
OpenBar()
|
||||
}
|
||||
valueChanged = true;
|
||||
}
|
||||
|
||||
$(document).unbind('mousemove', dragmove);
|
||||
$(document).unbind('mouseup', dragup);
|
||||
};
|
||||
|
||||
function timechange() {
|
||||
CurrTime = parseInt(thewidth / rwidth * alltime);
|
||||
var ltx = TransitionTime(CurrTime);
|
||||
if (TheHour > 0) {
|
||||
if (ltx.hHour) {
|
||||
$('.BarBeginTime').html(ltx.StringTime)
|
||||
} else {
|
||||
$('.BarBeginTime').html("00:" + ltx.StringTime)
|
||||
}
|
||||
} else {
|
||||
$('.BarBeginTime').html(ltx.StringTime)
|
||||
}
|
||||
addSecond = ltx.Tsec;
|
||||
addMinute = ltx.Tmin;
|
||||
addHour = ltx.Thour
|
||||
}
|
||||
|
||||
function changeBar() {
|
||||
var second, minute, hour;
|
||||
thewidth = thewidth * 1 + addwidth - offsetW;
|
||||
if (offsetW > 0) {
|
||||
offsetW = 0
|
||||
}
|
||||
if (thewidth < rwidth && CurrTime < alltime) {
|
||||
CurrTime = CurrTime + 1 * 1000;
|
||||
addSecond = addSecond + 1;
|
||||
if (addSecond > 59) {
|
||||
addSecond = 0;
|
||||
addMinute = addMinute + 1;
|
||||
if (addMinute > 59) {
|
||||
addMinute = 0;
|
||||
addHour = addHour + 1
|
||||
}
|
||||
}
|
||||
if (addSecond > 9) {
|
||||
second = "" + addSecond
|
||||
} else {
|
||||
second = "0" + addSecond
|
||||
} if (addMinute > 9) {
|
||||
minute = "" + addMinute
|
||||
} else {
|
||||
minute = "0" + addMinute
|
||||
} if (addHour > 9) {
|
||||
hour = "" + addHour
|
||||
} else {
|
||||
hour = "0" + addHour
|
||||
} if (addHour > 0) {
|
||||
flag = 1
|
||||
}
|
||||
if (flag == 0) {
|
||||
$('.BarBeginTime').html(minute + ":" + second)
|
||||
} else {
|
||||
$('.BarBeginTime').html(hour + ":" + minute + ":" + second)
|
||||
}
|
||||
} else {
|
||||
thewidth = rwidth;
|
||||
StopBar();
|
||||
}
|
||||
$('.TheColorBar').css("width", thewidth + 1);
|
||||
$('.TimeBall').css("left", thewidth)
|
||||
|
||||
if ($.playBar.onBarChanged)
|
||||
$.playBar.onBarChanged(CurrTime, valueChanged);
|
||||
valueChanged = false;
|
||||
}
|
||||
|
||||
function TransitionTime(str) {
|
||||
var m = parseFloat(str) / 1000;
|
||||
var time = "";
|
||||
var second, minute, hour;
|
||||
var haveHour = false;
|
||||
var ch = 0,
|
||||
csx = 0,
|
||||
cm = 0;
|
||||
if (m >= 60 && m < 60 * 60) {
|
||||
if (parseInt(m / 60.0) < 10) {
|
||||
minute = "0" + parseInt(m / 60.0)
|
||||
} else {
|
||||
minute = parseInt(m / 60.0)
|
||||
}
|
||||
var cs = parseInt(m - parseInt(m / 60.0) * 60);
|
||||
if (cs < 10) {
|
||||
second = "0" + cs
|
||||
} else {
|
||||
second = "" + cs
|
||||
}
|
||||
TheMinute = parseInt(m / 60.0);
|
||||
TheSecond = cs;
|
||||
cm = TheMinute;
|
||||
TheHour = 0;
|
||||
csx = cs;
|
||||
time = minute + ":" + second;
|
||||
$('.BarBeginTime').html("00:00")
|
||||
} else if (m >= 60 * 60) {
|
||||
flag = 1;
|
||||
haveHour = true;
|
||||
ch = parseInt(m / 3600.0);
|
||||
cm = parseInt((parseFloat(m / 3600.0) - parseInt(m / 3600.0)) * 60);
|
||||
csx = parseInt((parseFloat((parseFloat(m / 3600.0) - parseInt(m / 3600.0)) * 60) - parseInt((parseFloat(m / 3600.0) - parseInt(m / 3600.0)) * 60)) * 60);
|
||||
if (ch < 10) {
|
||||
hour = "0" + ch
|
||||
} else {
|
||||
hour = "" + ch
|
||||
} if (cm < 10) {
|
||||
minute = "0" + cm
|
||||
} else {
|
||||
minute = "" + cm
|
||||
} if (csx < 10) {
|
||||
second = "0" + csx
|
||||
} else {
|
||||
second = "" + csx
|
||||
}
|
||||
TheHour = ch;
|
||||
TheMinute = cm;
|
||||
TheSecond = csx;
|
||||
time = hour + ":" + minute + ":" + second;
|
||||
$('.BarBeginTime').html("00:00:00")
|
||||
} else {
|
||||
$('.BarBeginTime').html("00:00");
|
||||
csx = parseInt(m);
|
||||
if (parseInt(m) > 9) {
|
||||
second = "" + parseInt(m)
|
||||
} else {
|
||||
second = "0" + parseInt(m)
|
||||
}
|
||||
TheMinute = 0;
|
||||
TheSecond = parseInt(m);
|
||||
TheHour = 0;
|
||||
time = "00:" + second
|
||||
}
|
||||
var tt = {
|
||||
hHour: haveHour,
|
||||
Thour: ch,
|
||||
Tmin: cm,
|
||||
Tsec: csx,
|
||||
StringTime: time
|
||||
};
|
||||
return tt
|
||||
}
|
||||
|
||||
function StopBar() {
|
||||
if (!down) {
|
||||
isAction = false
|
||||
}
|
||||
clearInterval(t)
|
||||
$('#btnPlay').removeClass("BarPause");
|
||||
$('#btnPlay').addClass("BarPlay");
|
||||
}
|
||||
|
||||
function OpenBar() {
|
||||
if (CurrTime <= alltime) {
|
||||
if (valueChanged && $.playBar.onBarChanged) {
|
||||
$.playBar.onBarChanged(CurrTime, valueChanged);
|
||||
valueChanged = false;
|
||||
}
|
||||
|
||||
isAction = true;
|
||||
if (t) clearInterval(t);
|
||||
t = setInterval(changeBar, 1000);
|
||||
|
||||
$('#btnPlay').removeClass("BarPlay");
|
||||
$('#btnPlay').addClass("BarPause");
|
||||
}
|
||||
}
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,118 @@
|
||||
|
||||
function setAppModulesLang(data, include) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var m = data[i];
|
||||
if (m.ModuleType === 1)
|
||||
continue;
|
||||
setMoudulesLang(m);
|
||||
if (include && m.SubItems)
|
||||
setSubItemsLang(m.SubItems);
|
||||
}
|
||||
}
|
||||
|
||||
function setMoudulesLang(m) {
|
||||
if (!m.ID)
|
||||
m.ID = m.Id;
|
||||
if (parseInt(m.ID) === 100) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_MAPVIEW", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 150) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_JOBSITES", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 200) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_ASSETHEALTH", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 250) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_FILTERQ", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 300) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_CREDENTIALS", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 350) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_SECURITYSETTING", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 400) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_MANAGEASSETS", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 450) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_FICMANAGEMENT", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 500) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_M3", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 550) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_OVERUNDERTRUCKINGALERTS", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 600) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_OTRCONFIG", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 650) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_INSPECTION", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
else if (parseInt(m.ID) === 700) {
|
||||
m.CurrentName = GetTextByKey("P_MODULE_TEAMINTELLIGENCE", m.Name);
|
||||
m.CurrentDesc = m.CurrentName;
|
||||
}
|
||||
}
|
||||
|
||||
function setSubItemsLang(subitems) {
|
||||
for (var i = 0; i < subitems.length; i++) {
|
||||
var sub = subitems[i];
|
||||
if (sub.ID === "nav_credential")
|
||||
sub.CurrentTitle = GetTextByKey("P_CREDENTIALS", sub.Title);
|
||||
else if (sub.ID === "nav_jdlink")
|
||||
sub.CurrentTitle = GetTextByKey("P_JDLINK", sub.Title);
|
||||
else if (sub.ID === "nav_jdnotification")
|
||||
sub.CurrentTitle = GetTextByKey("P_JOHNDEERENOTIFICATIONS", sub.Title);
|
||||
else if (sub.ID === "nav_apicredential")
|
||||
sub.CurrentTitle = GetTextByKey("P_APICREDENTIALS", sub.Title);
|
||||
else if (sub.ID === "nav_users")
|
||||
sub.CurrentTitle = GetTextByKey("P_USERS", sub.Title);
|
||||
else if (sub.ID === "nav_user_group")
|
||||
sub.CurrentTitle = GetTextByKey("P_USERSGROUP", sub.Title);
|
||||
else if (sub.ID === "nav_dts")
|
||||
sub.CurrentTitle = GetTextByKey("P_DATATABLEPERMISSION", sub.Title);
|
||||
else if (sub.ID === "nav_filters")
|
||||
sub.CurrentTitle = GetTextByKey("P_DASHBOARDFILTERS", sub.Title);
|
||||
else if (sub.ID === "nav_curfew")
|
||||
sub.CurrentTitle = GetTextByKey("P_CURFEWCONFIGURATION", sub.Title);
|
||||
else if (sub.ID === "nav_curfewmt")
|
||||
sub.CurrentTitle = GetTextByKey("P_CURFEWMOVEMENTTOLERANCE", sub.Title);
|
||||
else if (sub.ID === "nav_alertsmanagement")
|
||||
sub.CurrentTitle = GetTextByKey("P_ALERTSMANAGEMENTNEW", sub.Title);
|
||||
else if (sub.ID === "nav_workorder")
|
||||
sub.CurrentTitle = GetTextByKey("P_WORKORDERNEW", sub.Title);
|
||||
else if (sub.ID === "nav_workorderhis")
|
||||
sub.CurrentTitle = GetTextByKey("P_WORKORDERHISTORY", sub.Title);
|
||||
else if (sub.ID === "nav_maintenanceschedule")
|
||||
sub.CurrentTitle = GetTextByKey("P_PM_MAINTENANCESCHEDULES", sub.Title);
|
||||
else if (sub.ID === "nav_record")
|
||||
sub.CurrentTitle = GetTextByKey("P_MAINTENANCERECORDLEGACY", sub.Title);
|
||||
else if (sub.ID === "nav_fuelrecord")
|
||||
sub.CurrentTitle = GetTextByKey("P_FUELRECORDS", sub.Title);
|
||||
else if (sub.ID === "nav_manageharshdriving")
|
||||
sub.CurrentTitle = GetTextByKey("P_MANAGEHARSHDRIVING", sub.Title);
|
||||
else if (sub.ID === "nav_managmachines")
|
||||
sub.CurrentTitle = GetTextByKey("P_MANAGEASSETS", sub.Title);
|
||||
else if (sub.ID === "nav_managrentals")
|
||||
sub.CurrentTitle = GetTextByKey("P_MANAGERENTALS", sub.Title);
|
||||
else if (sub.ID === "nav_machinegroups")
|
||||
sub.CurrentTitle = GetTextByKey("P_ASSETGROUPS", sub.Title);
|
||||
else if (sub.ID === "nav_managegpsdevices")
|
||||
sub.CurrentTitle = GetTextByKey("P_MANAGEDEVICES", sub.Title);
|
||||
else if (sub.ID === "nav_managmodels")
|
||||
sub.CurrentTitle = GetTextByKey("P_MANAGEMODELS", sub.Title);
|
||||
}
|
||||
}
|
||||
+2341
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,123 @@
|
||||
/// <reference path="../../js/jquery-3.6.0.min.js" />
|
||||
/// <reference path="../../js/utility.js" />
|
||||
|
||||
var old_hash;
|
||||
var default_page;
|
||||
|
||||
(function () {
|
||||
|
||||
window.onmaskbg = function (flag, noanimation) {
|
||||
if (noanimation) {
|
||||
$(document.body).find('.hostmask').css('display', flag ? '' : 'none');
|
||||
} else {
|
||||
if (flag) {
|
||||
$(document.body).find('.hostmask').fadeIn(100);
|
||||
} else {
|
||||
$(document.body).find('.hostmask').fadeOut(100);
|
||||
}
|
||||
}
|
||||
};
|
||||
window.ondocumentclick = function (e) {
|
||||
$(document.body).click();
|
||||
};
|
||||
window.showconfirm = function (msg, title, fok, fcancel) {
|
||||
var mask = $(document.body).children('.maskbg');
|
||||
mask.children().hide();
|
||||
mask.fadeIn(100);
|
||||
_dialog.showConfirm(msg, title, function (e) {
|
||||
mask.fadeOut(100);
|
||||
if (typeof fok === 'function') {
|
||||
fok(e);
|
||||
}
|
||||
}, function () {
|
||||
if (typeof fcancel === 'function') {
|
||||
fcancel();
|
||||
}
|
||||
mask.fadeOut(100);
|
||||
}, true);
|
||||
}
|
||||
window.showalert = function (msg, title, icon, next) {
|
||||
_dialog.showAlert(msg, title, icon, next, true);
|
||||
}
|
||||
window.onsubpageloaded = function () {
|
||||
$('#set_right .loading_holder').fadeOut('fast');
|
||||
$('#set_right iframe').fadeIn();
|
||||
};
|
||||
|
||||
window.changePage = function (e) {
|
||||
if (!e) {
|
||||
if (old_hash == default_page) {
|
||||
return;
|
||||
}
|
||||
e = default_page;
|
||||
}
|
||||
old_hash = e;
|
||||
var iframe = $('<iframe class="set_iframe"></iframe').css('display', 'none');
|
||||
var li = $(e); // '#nav_' + e.substring(1)
|
||||
if (!li.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$('#set_left li').removeClass('selected');
|
||||
li.addClass('selected');
|
||||
iframe.attr('src', li.attr('page') + location.search);
|
||||
//document.title = 'Iron Intel - ' + li.attr('title');
|
||||
$('#set_right iframe').remove();
|
||||
$('#set_right .loading_holder').fadeIn();
|
||||
$('#set_right').append(iframe);
|
||||
|
||||
var name = $(li).find('span').text();
|
||||
if (typeof afterpagechanged === 'function')
|
||||
afterpagechanged(e, name);
|
||||
};
|
||||
|
||||
old_hash = location.hash;
|
||||
|
||||
window.onhashchange = function (e) {
|
||||
var hash = location.hash;
|
||||
if (hash == old_hash) {
|
||||
return;
|
||||
}
|
||||
window.changePage(hash);
|
||||
};
|
||||
})();
|
||||
|
||||
$(function () {
|
||||
var ANIMATION_DURATION = 120;
|
||||
var ANIMATION_DURATION_NORMAL = 'fast';
|
||||
|
||||
default_page = $('#set_left li.nav_item:visible:first').attr('id');
|
||||
if (default_page) {
|
||||
default_page = '#' + default_page;
|
||||
if (!old_hash) {
|
||||
old_hash = default_page;
|
||||
}
|
||||
}
|
||||
|
||||
$('#nav_arrow').click(function () {
|
||||
var flag = !$('#set_left').prop('isexpanded');
|
||||
setCookie("LeftPanelExpanded", flag ? "1" : "0");
|
||||
$('#set_left').stop()
|
||||
.prop('isexpanded', flag)
|
||||
.animate({ 'width': flag ? 250 : 50 }, ANIMATION_DURATION)
|
||||
//.find('li a').css('display', flag ? 'none' : '')
|
||||
;
|
||||
if (flag)
|
||||
$('#set_left').find(".subitem").show();
|
||||
else
|
||||
$('#set_left').find(".subitem").hide();
|
||||
|
||||
$('#set_right').stop()
|
||||
.animate({ 'margin-left': flag ? 250 : 50 }, ANIMATION_DURATION);
|
||||
|
||||
$('#nav_arrow div').attr('class', 'icn')
|
||||
.addClass(flag ? 'expand' : 'collapse');
|
||||
});
|
||||
|
||||
$('#set_left').prop('isexpanded', false);
|
||||
var leftexpanded = getCookie("LeftPanelExpanded") === "1";
|
||||
if (leftexpanded)
|
||||
$('#nav_arrow').click();
|
||||
|
||||
});
|
||||
@@ -0,0 +1,256 @@
|
||||
if (typeof (UserMessage) != "function") {
|
||||
UserMessage = function () {
|
||||
var _this = this;
|
||||
var REDUN = 2;
|
||||
var ROW_HEIGHT = 129;
|
||||
var MIN_LENGTH = 40;
|
||||
var trunc = function (val) {
|
||||
return (val > 0 ? Math.floor : Math.ceil)(val);
|
||||
};
|
||||
|
||||
var vusermsg = new Vue({
|
||||
el: '#divmsgs',
|
||||
data: {
|
||||
startIndex: 0,
|
||||
bodyContentStyle: { top: null },
|
||||
bodyContainerHeight: 0,
|
||||
bodyContainerStyle: { height: null },
|
||||
scrollTop: 0,
|
||||
allmessages: []
|
||||
},
|
||||
computed: {
|
||||
bodyClientRowCount: function () {
|
||||
var height = document.getElementById('divmsgcontainer').clientHeight;
|
||||
return trunc((height - 1) / ROW_HEIGHT) + 1;
|
||||
},
|
||||
innerMessages: function () {
|
||||
var start = this.startIndex;
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
}
|
||||
if (this.allmessages == null || this.allmessages.length == 0)
|
||||
return [];
|
||||
if (this.allmessages.length < MIN_LENGTH) {
|
||||
return this.allmessages.slice();
|
||||
}
|
||||
var end = this.bodyClientRowCount + start + (REDUN * 2) + 1;
|
||||
if (end > this.allmessages.length) {
|
||||
end = this.allmessages.length;
|
||||
}
|
||||
return this.allmessages.slice(start, end);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
reload: function (data) {
|
||||
for (var i = 0; i < this.allmessages.length; i++) {
|
||||
data.push(this.allmessages[i]);
|
||||
}
|
||||
this.allmessages = data;
|
||||
|
||||
var height = data && data.length * ROW_HEIGHT;
|
||||
this.bodyContainerHeight = height;
|
||||
this.bodyContainerStyle.height = height && (height + 'px');
|
||||
if (data.length < MIN_LENGTH) {
|
||||
this.startIndex = -1;
|
||||
this.startIndex = 0;
|
||||
this.bodyContentStyle.top = '0px';
|
||||
} else {
|
||||
var index = this.startIndex;
|
||||
var lastIndex = data.length - this.bodyClientRowCount;
|
||||
if (index > lastIndex) {
|
||||
index = lastIndex;
|
||||
}
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
}
|
||||
},
|
||||
refresh: function () {
|
||||
var index = this.startIndex;
|
||||
this.startIndex = -1;
|
||||
this.startIndex = index;
|
||||
},
|
||||
linkClick: function (m) {
|
||||
if (m.Source == "WorkOrder")
|
||||
openWorkOrder(m.SourceId);
|
||||
},
|
||||
readMessage: function (m, ev) {
|
||||
var t = $(ev.target);
|
||||
if (t.attr("type") == "checkbox")
|
||||
return;
|
||||
var msgids = [];
|
||||
if (m) {
|
||||
m.Readed = true;
|
||||
msgids.push(m.Id);
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < this.allmessages.length; i++) {
|
||||
if (this.allmessages[i].Selected) {
|
||||
this.allmessages[i].Readed = true;
|
||||
msgids.push(this.allmessages[i].Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.refresh();
|
||||
if (msgids.length > 0)
|
||||
_this.readUserMessages(msgids);
|
||||
},
|
||||
deleteMessage: function (m) {
|
||||
var msgids = [];
|
||||
var this_t = this;
|
||||
if (m) {
|
||||
msgids.push(m.Id);
|
||||
showConfirm(GetTextByKey("P_MAIN_DOYOUWANTTODELETETHEMESSAGE", 'Do you want to delete the message?'), GetTextByKey("P_MAIN_DELETEMESSAGES", 'Delete Message'), function () {
|
||||
var i = this_t.allmessages.indexOf(m);
|
||||
this_t.allmessages.splice(i, 1);
|
||||
_this.deleteUserMessages(msgids);
|
||||
this_t.reload([]);
|
||||
});
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < this.allmessages.length; i++) {
|
||||
if (this.allmessages[i].Selected) {
|
||||
msgids.push(this.allmessages[i].Id);
|
||||
}
|
||||
}
|
||||
if (msgids.length > 0) {
|
||||
showConfirm(GetTextByKey("P_MAIN_DOYOUWANTTODELETESELECTEDMESSAGES", 'Do you want to delete selected message(s)?'), GetTextByKey("P_MAIN_DELETEMESSAGES", 'Delete Message'), function () {
|
||||
for (var i = this_t.allmessages.length - 1; i >= 0; i--) {
|
||||
if (this_t.allmessages[i].Selected) {
|
||||
this_t.allmessages.splice(i, 1);
|
||||
}
|
||||
}
|
||||
_this.deleteUserMessages(msgids);
|
||||
this_t.reload([]);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
closeMessage: function () {
|
||||
$("#divmsgs").hide();
|
||||
},
|
||||
refreshMessage: function () {
|
||||
_this.getUserMessages();
|
||||
},
|
||||
selectAll: function (ev) {
|
||||
var t = $(ev.target);
|
||||
var checked = t.prop("checked");
|
||||
for (var i = 0; i < this.allmessages.length; i++) {
|
||||
this.allmessages[i].Selected = checked;
|
||||
}
|
||||
this.refresh();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function onscrollMessages(e) {
|
||||
if (vusermsg.allmessages == null || vusermsg.allmessages.length < MIN_LENGTH) {
|
||||
return;
|
||||
}
|
||||
var top = e == null ? 0 : e.target.scrollTop;
|
||||
top -= (top % ROW_HEIGHT) + (REDUN * ROW_HEIGHT);
|
||||
if (top < 0) {
|
||||
top = 0;
|
||||
} else {
|
||||
var bottomTop = vusermsg.bodyContainerHeight - ((vusermsg.bodyClientRowCount + (REDUN * 2) + 1) * ROW_HEIGHT);
|
||||
if (top > bottomTop) {
|
||||
top = bottomTop;
|
||||
}
|
||||
}
|
||||
if (vusermsg.scrollTop !== top) {
|
||||
vusermsg.scrollTop = top;
|
||||
vusermsg.startIndex = top / ROW_HEIGHT;
|
||||
vusermsg.bodyContentStyle.top = top && (top + 'px');
|
||||
}
|
||||
};
|
||||
|
||||
document.getElementById('divmsgcontainer').addEventListener('scroll', onscrollMessages, { passive: true });
|
||||
|
||||
$("#iconmessage").click(function () {
|
||||
_this.getUserMessages();
|
||||
$("#divmsgs").show();
|
||||
});
|
||||
|
||||
function openWorkOrder(woid) {
|
||||
var p = "jt=woe;woid=" + woid;
|
||||
p = window.btoa(p);
|
||||
window.open(_network.root + "Jump.aspx?p=" + p, "_blank");
|
||||
}
|
||||
|
||||
var lastmsgid = 0;
|
||||
var loadingusermsg = false;
|
||||
this.getUserMessages = function () {
|
||||
if (loadingusermsg) return;
|
||||
loadingusermsg = false;
|
||||
_network.commonpagequery(10, lastmsgid, function (data) {
|
||||
loadingusermsg = false;
|
||||
$("#iconmessage").show();
|
||||
showUserMessages(data);
|
||||
}, function (err) {
|
||||
loadingusermsg = false;
|
||||
}, true);
|
||||
}
|
||||
|
||||
function showUserMessages(data) {
|
||||
if (data && typeof data != "string" && data.length > 0) {
|
||||
lastmsgid = data[0].Id;
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var msg = data[i];
|
||||
msg.Selected = false;
|
||||
if (msg.Source == "WorkOrder") {
|
||||
msg.LinkText = msg.Title;
|
||||
}
|
||||
if (msg.Message.toLowerCase().indexOf("http://") >= 0 || msg.Message.toLowerCase().indexOf("https://") >= 0) {
|
||||
msg.Message = formatUrl(msg.Message);
|
||||
}
|
||||
else {
|
||||
msg.Message = htmlencode(msg.Message);
|
||||
}
|
||||
}
|
||||
vusermsg.reload(data);
|
||||
}
|
||||
}
|
||||
|
||||
this.readUserMessages = function (msgids) {
|
||||
_network.commonpagequery(11, JSON.stringify(msgids), function (data) {
|
||||
_this.getUnreadCount();
|
||||
}, function (err) {
|
||||
}, true);
|
||||
}
|
||||
|
||||
this.deleteUserMessages = function (msgids) {
|
||||
_network.commonpagequery(12, JSON.stringify(msgids), function (data) {
|
||||
_this.getUnreadCount();
|
||||
}, function (err) {
|
||||
}, true);
|
||||
}
|
||||
|
||||
var unreadcount = 0;
|
||||
this.getUnreadCount = function () {
|
||||
_network.commonpagequery(13, '', function (data) {
|
||||
$("#iconmessage").show();
|
||||
if (!isNaN(data) && eval(data) > 0) {
|
||||
var count = eval(data);
|
||||
if (unreadcount != count && $("#divmsgs").is(":visible"))
|
||||
_this.getUserMessages();
|
||||
|
||||
unreadcount = count;
|
||||
if (unreadcount > 99)
|
||||
$("#divunreadcount").text("99+");
|
||||
else
|
||||
$("#divunreadcount").text(unreadcount);
|
||||
$("#divunreadcount").show();
|
||||
}
|
||||
else
|
||||
$("#divunreadcount").hide();
|
||||
}, function (err) {
|
||||
}, true);
|
||||
}
|
||||
|
||||
setInterval(function () {
|
||||
_this.getUnreadCount();
|
||||
//if ($("#divmsgs").is(":visible"))
|
||||
// _this.getUserMessages();
|
||||
}, 45000);
|
||||
_this.getUnreadCount();
|
||||
}
|
||||
}
|
||||
+1639
File diff suppressed because it is too large.
Load diff
+12014
File diff suppressed because it is too large.
Load diff
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Vue.js v2.6.14
|
||||
* (c) 2014-2021 Evan You
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Vue=t()}(this,function(){"use strict";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}function r(e){return!0===e}function i(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function o(e){return null!==e&&"object"==typeof e}var a=Object.prototype.toString;function s(e){return"[object Object]"===a.call(e)}function c(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function l(e){return null==e?"":Array.isArray(e)||s(e)&&e.toString===a?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var d=p("slot,component",!0),v=p("key,ref,slot,slot-scope,is");function h(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function y(e,t){return m.call(e,t)}function g(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var _=/-(\w)/g,b=g(function(e){return e.replace(_,function(e,t){return t?t.toUpperCase():""})}),$=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),w=/\B([A-Z])/g,C=g(function(e){return e.replace(w,"-$1").toLowerCase()});var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n<e.length;n++)e[n]&&A(t,e[n]);return t}function S(e,t,n){}var T=function(e,t,n){return!1},N=function(e){return e};function E(e,t){if(e===t)return!0;var n=o(e),r=o(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var i=Array.isArray(e),a=Array.isArray(t);if(i&&a)return e.length===t.length&&e.every(function(e,n){return E(e,t[n])});if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(i||a)return!1;var s=Object.keys(e),c=Object.keys(t);return s.length===c.length&&s.every(function(n){return E(e[n],t[n])})}catch(e){return!1}}function j(e,t){for(var n=0;n<e.length;n++)if(E(e[n],t))return n;return-1}function D(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var L="data-server-rendered",I=["component","directive","filter"],M=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],F={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:T,isReservedAttr:T,isUnknownElement:T,getTagNamespace:S,parsePlatformTagName:N,mustUseProp:T,async:!0,_lifecycleHooks:M},P=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function R(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var H=new RegExp("[^"+P.source+".$_\\d]");var B,U="__proto__"in{},V="undefined"!=typeof window,z="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=z&&WXEnvironment.platform.toLowerCase(),J=V&&window.navigator.userAgent.toLowerCase(),q=J&&/msie|trident/.test(J),W=J&&J.indexOf("msie 9.0")>0,Z=J&&J.indexOf("edge/")>0,G=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===K),X=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),Y={}.watch,Q=!1;if(V)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Q=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!V&&!z&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},ne=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ie="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,se=0,ce=function(){this.id=se++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){h(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},ce.target=Line truncated
|
||||
Reference in new issue
Block a user