forked from Simnation/Main
ed
This commit is contained in:
parent
48a36209b5
commit
884f3df7cf
262 changed files with 223207 additions and 2 deletions
167
resources/[jobs]/[mdt]/myEmergency/html/js/modules/Dashboard.js
Normal file
167
resources/[jobs]/[mdt]/myEmergency/html/js/modules/Dashboard.js
Normal file
|
@ -0,0 +1,167 @@
|
|||
class Dashboard{
|
||||
constructor(){
|
||||
this.name = "dashboard";
|
||||
}
|
||||
|
||||
static isCustom(){
|
||||
return true;
|
||||
}
|
||||
|
||||
static CreateCustom(data){
|
||||
|
||||
let controlCenterBg = "";
|
||||
if(data.data.control_centre == ""){
|
||||
controlCenterBg = "error"
|
||||
data.data.control_centre = getTranslation("no_control_centre");
|
||||
}
|
||||
else{
|
||||
data.data.control_centre = System.buildEmployeeName(data.data.control_centre)
|
||||
}
|
||||
|
||||
let possibleStats = [];
|
||||
let stats = [];
|
||||
|
||||
|
||||
if(currentSystem == "police"){
|
||||
|
||||
|
||||
|
||||
let entries_per_file = 0;
|
||||
if(data.data.info[0].files > 0 && data.data.info[0].fileentry){
|
||||
entries_per_file = data.data.info[0].fileentry/data.data.info[0].files;
|
||||
}
|
||||
|
||||
|
||||
possibleStats = [
|
||||
[
|
||||
{name:"files.overview", navItem: "files", text : data.data.info[0].files, goto:"files.overview", "gotoAllowed":userrights.has("files.view")},
|
||||
{name:"fileentry.overview", navItem: "files", text : data.data.info[0].fileentry},
|
||||
{name:"avg_files_entry", navItem: "files", text : "Ø " + (entries_per_file).toFixed(2) },
|
||||
],
|
||||
[
|
||||
{name:"control_centre", navItem: "controlcentre", text : data.data.control_centre, bg:controlCenterBg, goto:"controlcentre.dataload", "gotoAllowed":userrights.has("controlcentre.view")},
|
||||
{name:"employees.overview", navItem: "employees", text : data.data.info[0].employees, goto:"employees.overview","gotoAllowed":userrights.has("employees.view")},
|
||||
{name:"count_employees_available", navItem: "employees", text : data.data.info[0].employees_available},
|
||||
],
|
||||
[
|
||||
{name:"regvehicle.overview", navItem: "regvehicle", text : data.data.info[0].regvehicle, goto:"regvehicle.overview","gotoAllowed":userrights.has("regvehicles.view")},
|
||||
{name:"regweapons.overview", navItem: "regweapons", forceHide: useWeaponRegister, text : data.data.info[0].regweapons, goto:"regweapons.overview","gotoAllowed":userrights.has("regweapons.view")},
|
||||
{name:"investigation.overview", navItem: "investigation", text : data.data.info[0].investigation, goto:"investigation.overview","gotoAllowed":userrights.has("investigation.view")},
|
||||
{name:"investigation.overview", navItem: "investigation", "nameextra":getTranslation("state_open"), text : data.data.info[0].investigation_open},
|
||||
],
|
||||
[
|
||||
{name:"active_manhunt", navItem: "manhunt", text : data.data.info[0].manhunt_files + data.data.info[0].manhunt_regvehicle + data.data.info[0].manhunt_regweapons, bg:"warning", goto: "manhunt.dataload","gotoAllowed":userrights.has("manhunt.view")},
|
||||
{name:"files.overview", navItem: "files", "nameextra":getTranslation("tag_is_wanted"), text : data.data.info[0].manhunt_files, bg:"warning", goto: "manhunt.dataload","gotoAllowed":userrights.has("manhunt.view")},
|
||||
{name:"regvehicle.overview", navItem: "regvehicle", "nameextra":getTranslation("tag_is_wanted"), text : data.data.info[0].manhunt_regvehicle, bg:"warning", goto: "manhunt.dataload","gotoAllowed":userrights.has("manhunt.view")},
|
||||
{name:"regweapons.overview", navItem: "regweapons", forceHide: useWeaponRegister, "nameextra":getTranslation("tag_is_wanted"), text : data.data.info[0].manhunt_regweapons, bg:"warning", goto: "manhunt.dataload","gotoAllowed":userrights.has("manhunt.view")},
|
||||
]
|
||||
];
|
||||
}
|
||||
else if(currentSystem == "medic"){
|
||||
let entries_per_file = 0;
|
||||
if(data.data.info[0].files > 0 && data.data.info[0].fileentry){
|
||||
entries_per_file = data.data.info[0].fileentry/data.data.info[0].files;
|
||||
}
|
||||
|
||||
possibleStats = [
|
||||
[
|
||||
{name:"files.overview", navItem: "files", text : data.data.info[0].files, goto:"files.overview", "gotoAllowed":userrights.has("files.view")},
|
||||
{name:"fileentry.overview", navItem: "files", text : data.data.info[0].fileentry},
|
||||
{name:"avg_files_entry", navItem: "files", text : "Ø " + (entries_per_file).toFixed(2) },
|
||||
],
|
||||
[
|
||||
{name:"control_centre", navItem: "controlcentre", text : data.data.control_centre, bg:controlCenterBg, goto:"controlcentre.dataload", "gotoAllowed":userrights.has("controlcentre.view")},
|
||||
{name:"employees.overview", navItem: "employees", text : data.data.info[0].employees, goto:"employees.overview","gotoAllowed":userrights.has("employees.view")},
|
||||
{name:"count_employees_available", navItem: "employees", text : data.data.info[0].employees_available},
|
||||
],
|
||||
];
|
||||
}
|
||||
else{
|
||||
possibleStats = [
|
||||
[
|
||||
{name:"control_centre", navItem: "controlcentre", text : data.data.control_centre, bg:controlCenterBg, goto:"controlcentre.dataload", "gotoAllowed":userrights.has("controlcentre.view")},
|
||||
{name:"employees.overview", navItem: "employees", text : data.data.info[0].employees, goto:"employees.overview","gotoAllowed":userrights.has("employees.view")},
|
||||
{name:"count_employees_available", navItem: "employees", text : data.data.info[0].employees_available},
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
||||
for(let i=0; i<possibleStats.length; i++){
|
||||
|
||||
stats[i] = [];
|
||||
|
||||
for(let j=0; j<possibleStats[i].length; j++){
|
||||
let statEl = possibleStats[i][j];
|
||||
let display = false;
|
||||
|
||||
if(statEl.navItem == undefined || statEl.navItem == null){
|
||||
display = true;
|
||||
}
|
||||
else{
|
||||
let navItem = document.getElementById("menuItem-li-" + statEl.navItem);
|
||||
let forceHide = statEl.forceHide;
|
||||
|
||||
if(navItem !== null && forceHide != true){
|
||||
display = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(display){
|
||||
stats[i].push(statEl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let statsHTML = ``;
|
||||
for(let i=0; i<stats.length; i++){
|
||||
if (stats[i].length == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
statsHTML += `<div class="grid pt-8 md:grid-cols-${stats[i].length} grid-cols-1 gap-6">`
|
||||
|
||||
for(let j=0; j<stats[i].length; j++){
|
||||
let btn = ``;
|
||||
let bgClasses = "";
|
||||
let txtclasses = null;
|
||||
let txtExtra = "";
|
||||
|
||||
if(stats[i][j].goto !== undefined && stats[i][j].goto !== null && stats[i][j].goto != ""){
|
||||
let allowed = stats[i][j].gotoAllowed ?? true
|
||||
|
||||
if(allowed){
|
||||
btn = `<button class="btn btn-xs" onclick="loadPage('${stats[i][j].goto}',-1)">${getTranslation("goto")} ${getTranslation(stats[i][j].goto)}</button>`
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(stats[i][j].nameextra !== undefined && stats[i][j].nameextra !== null && stats[i][j].nameextra != ""){
|
||||
txtExtra = ` (${stats[i][j].nameextra})`
|
||||
}
|
||||
|
||||
if(stats[i][j].bg !== undefined && stats[i][j].bg !== null && stats[i][j].bg != ""){
|
||||
bgClasses = `bg-${stats[i][j].bg}`
|
||||
txtclasses = `text-${stats[i][j].bg}-content`
|
||||
}
|
||||
|
||||
let textclass2="text-primary"
|
||||
textclass2 = "";
|
||||
|
||||
statsHTML += `
|
||||
<div class="stats shadow ${bgClasses}">
|
||||
<div class="stat">
|
||||
<div class="stat-title ${txtclasses}">${getTranslation(stats[i][j].name)}${txtExtra}</div>
|
||||
<div class="stat-value ${txtclasses ?? textclass2}">${stats[i][j].text}</div>
|
||||
<div class="stat-actions">${btn}</div>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
statsHTML += `</div>`
|
||||
}
|
||||
document.getElementById("currentpage-content").innerHTML = statsHTML;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue