2023-04-28 12:22:26 +08:00

252 lines
9.3 KiB
JavaScript

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;
}