A new start

This commit is contained in:
2018-11-24 14:43:59 +01:00
commit 3c32c8a37a
24054 changed files with 1376258 additions and 0 deletions

64
script/dexie_db.js Normal file
View File

@@ -0,0 +1,64 @@
window.ADisDB = new Dexie('LSS_AutomaticDispo');
var ADisDB = window.ADisDB;
ADisDB.version(1).stores({
/**
* AvailabelMissions
* - missionID
* - type
* - name
* - jsondata
*/
ADisAvailabelMissions: "++missionID,type,name",
/**
* Sprechwunsch
* - vehicleID
* - done
*/
ADisSprechwunsch: "++vehicleID,done",
/**
* Sprechwunsch Police
* - missionID
* - done
*/
ADisSprechwunschPolice: "++missionID,last_check,next_check,done",
/**
* Krankentransport
* - missionID
* - done
*/
ADisKrankentransport: "++missionID,last_check,next_check,done",
/**
* Settings
* - id
* - name
* - done
*/
ADisSettings: "&name,value",
/**
* MissionsOwn
* MissionsVerband
* MissionsVerbandEvent
* - missionID
* - type
* - name
* - available
* - done
* - street
* - village
* - last_check
* - next_check
*/
ADisMissionsOwn: "++missionID,type,name,last_check,next_check,available,done",
ADisMissionsVerband: "++missionID,type,name,last_check,next_check,available,done",
ADisMissionsVerbandEvent: "++missionID,type,name,last_check,next_check,available,done",
});
ADisDB.on("populate", function() {
ADisDB.ADisSettings.add({name: "Krankentransport-Automatic", value: 'true'});
ADisDB.ADisSettings.add({name: "Sprechwunsch-Automatic", value: 'true'});
ADisDB.ADisSettings.add({name: "MissionsOwn-Automatic", value: 'true'});
ADisDB.ADisSettings.add({name: "Alliance-Automatic", value: 'false'});
ADisDB.ADisSettings.add({name: "AllianceEvent-Automatic", value: 'false'});
});
ADisDB.open().catch(function (err) {
console.error(err.stack || err);
});

26
script/interface.js Executable file
View File

@@ -0,0 +1,26 @@
$(document).ready(function () {
ADis_CreateDashboard();
ADis_CreateIframes();
console.log(" Automatic Dispose: UI geladen");
});
function ADis_CreateDashboard() {
$('#news_li').before('<li id="adis-nav-item"></li>');
$('#adis-nav-item').load(AutomaticDispose_URL + AutomaticDispose_Branch + "/html/navbar.html", function () {
$("#adis-dashboard").css({
display: "none",
opacity: "0"
});
});
}
function ADis_CreateIframes() {
$("body").append('<div id="adis-frame-container"></div>');
$("#adis-frame-container").load(AutomaticDispose_URL + AutomaticDispose_Branch + "/html/iframes.html");
$("#adis-frame-container").css({
display: "none",
opacity: "0"
});
}

111
script/mission.js Normal file
View File

@@ -0,0 +1,111 @@
// -
// - Mission Variablen
// -
var MissionID;
var MissionType;
var MissionConfig;
var CurrentTime;
var MaxVehicleID = 86;
var OwnMissionsFrameWatchDog;
var KrankentransportFrameWatchDog;
var VerbandMissionFrameWatchDog;
var VerbandEventsFrameWatchDog;
var PlannedEventsFrameWatchDog;
window.ADis_MissionDone = function ADis_MissionDone(WindowName) {
if (['adis-krankentransporte'].indexOf(WindowName) !== -1) {
$("#adis-krankentransporte-frame").attr("src", "");
$("#adis-krankentransporte-frame").attr("mission_id", "empty");
clearTimeout(KrankentransportFrameWatchDog);
} else if (['adis-plannedevents'].indexOf(WindowName) !== -1) {
$("#adis-plannedevents-frame").attr("src", "");
$("#adis-plannedevents-frame").attr("mission_id", "empty");
clearTimeout(PlannedEventsFrameWatchDog);
} else if (['adis-ownmissions'].indexOf(WindowName) !== -1) {
$("#adis-ownmissions-frame").attr("src", "");
$("#adis-ownmissions-frame").attr("mission_id", "empty");
clearTimeout(OwnMissionsFrameWatchDog);
} else if (['adis-verbandmission'].indexOf(WindowName) !== -1) {
$("#adis-verbandmission-frame").attr("src", "");
$("#adis-verbandmission-frame").attr("mission_id", "empty");
clearTimeout(VerbandMissionFrameWatchDog);
} else if (['adis-verbandmission-event'].indexOf(WindowName) !== -1) {
$("#adis-verbandmission-event-frame").attr("src", "");
$("#adis-verbandmission-event-frame").attr("mission_id", "empty");
clearTimeout(VerbandEventsFrameWatchDog);
}
}
window.ADis_MissionUpdateDone = function ADis_MissionUpdateDone(WindowName, MissionID) {
if (['adis-krankentransporte'].indexOf(WindowName) !== -1) {
clearTimeout(KrankentransportFrameWatchDog);
ADis_UpdateKrankentransportToDone(MissionID).then(()=>{
$("#adis-krankentransporte-frame").attr("src", "");
$("#adis-krankentransporte-frame").attr("mission_id", "empty");
});
} else if (['adis-plannedevents'].indexOf(WindowName) !== -1) {
$("#adis-plannedevents-frame").attr("src", "");
$("#adis-plannedevents-frame").attr("mission_id", "empty");
clearTimeout(PlannedEventsFrameWatchDog);
} else if (['adis-ownmissions'].indexOf(WindowName) !== -1) {
$("#adis-ownmissions-frame").attr("src", "");
$("#adis-ownmissions-frame").attr("mission_id", "empty");
clearTimeout(OwnMissionsFrameWatchDog);
} else if (['adis-verbandmission'].indexOf(WindowName) !== -1) {
$("#adis-verbandmission-frame").attr("src", "");
$("#adis-verbandmission-frame").attr("mission_id", "empty");
clearTimeout(VerbandMissionFrameWatchDog);
} else if (['adis-verbandmission-event'].indexOf(WindowName) !== -1) {
$("#adis-verbandmission-event-frame").attr("src", "");
$("#adis-verbandmission-event-frame").attr("mission_id", "empty");
clearTimeout(VerbandEventsFrameWatchDog);
}
}
window.ADis_MissionUpdate = function ADis_MissionUpdate(WindowName, UpdateData) {
if (['adis-krankentransporte'].indexOf(WindowName) !== -1) {
ADis_UpdateKrankentransport(UpdateData);
} else if (['adis-plannedevents'].indexOf(WindowName) !== -1) {
ADis_UpdatePlannedEvents(UpdateData);
} else if (['adis-ownmissions'].indexOf(WindowName) !== -1) {
ADis_UpdateOwnMissions(UpdateData);
} else if (['adis-verbandmission'].indexOf(WindowName) !== -1) {
ADis_UpdateVerbandMissions(UpdateData);
} else if (['adis-verbandmission-event'].indexOf(WindowName) !== -1) {
ADis_UpdateVerbandEvents(UpdateData);
}
}
window.ADis_MissionDelete = function ADis_MissionDelete(WindowName, MissionID) {
if (['adis-krankentransporte'].indexOf(WindowName) !== -1) {
ADis_RemoveKrankentransportFromQueue(MissionID);
} else if (['adis-plannedevents'].indexOf(WindowName) !== -1) {
ADis_RemovePlannedEventsFromQueue(MissionID);
} else if (['adis-ownmissions'].indexOf(WindowName) !== -1) {
ADis_RemoveOwnMissionsFromQueue(MissionID);
} else if (['adis-verbandmission'].indexOf(WindowName) !== -1) {
ADis_RemoveVerbandMissionsFromQueue(MissionID);
} else if (['adis-verbandmission-event'].indexOf(WindowName) !== -1) {
ADis_RemoveVerbandEventsFromQueue(MissionID);
}
}
// -
// - Mission Opener
// -
if (window.location.pathname === "/" || window.location.pathname === "/#") {
//=require mission/manager.js
// - =require mission/opener.js
//=require mission/opener-ownmission.js
//=require mission/opener-krankentransporte.js
}
// -
// - Mission Alert
// -
if (window.location.pathname.indexOf("/missions/") !== -1 && ['adis-krankentransporte', 'adis-ownmissions', 'adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) !== -1) {
console.log('load Mission Handler');
//=require mission/handler.js
}

1115
script/mission/handler.js Executable file

File diff suppressed because it is too large Load Diff

182
script/mission/manager.js Executable file
View File

@@ -0,0 +1,182 @@
$(document).ready(function () {
console.log("Manager load");
//setInterval(ADis_GetAvailableMissions, 600000); // update availabla missions every 10 minutes
ADis_GetAvailableMissions(); // get availabla missions after page ready
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Grab Mission-Configuration from GitHub
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_GetAvailableMissions() {
// Get all available missions with there config
//$.getJSON(AutomaticDispose_URL + AutomaticDispose_Branch + "/all_missions.json", function (Response) {
for (let i in ADis_AllMissions) {
Mission = ADis_AllMissions[i];
ADis_AddAvailableMissions(Mission);
}
//});
}
function ADis_CollectMissions() {
return ADisDB.transaction('rw', [ADisDB.ADisMissionsOwn, ADisDB.ADisSettings, ADisDB.ADisAvailabelMissions], () => {
ADisSettings().then((setting) => {
if (setting['MissionsOwn-Automatic'] == 'true') {
return ADisDB.ADisMissionsOwn.where({
done: 'false'
}).limit(1)
}
}).then((Missions) => {
if (Missions === undefined) {
return;
}
return Missions.count(function (count) {
if (count > 0) {
return Missions.each(async (Mission) => {
return await ADisDB.ADisAvailabelMissions.get({
type: Mission.type
}).then((available) => {
if (available == undefined) {
ADis_RemoveMissionFromQueue(Mission.missionID);
}
}).then(() => {
if ($("#mission_" + Mission.missionID).length == 0) {
return ADis_RemoveMissionFromQueue(Mission.missionID);
}
}).then(() => {
if ($("#mission_" + Mission.missionID).css("display") == "none") {
return ADis_RemoveMissionFromQueue(Mission.missionID);
}
}).then(() => {
$("#mission_" + Mission.id).animate({
opacity: 0.5
}, 500);
});
});
}
})
}).then(() => {
$("#mission_list").find(".missionSideBarEntry").each(async function () {
var MissionID = $(this).attr("mission_id");
// var MissionType = $(this).attr("mission_type_id");
// var MissionName = $(this).find(".map_position_mover").text();
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// - Emergency Missions | Automatic
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
await ADis_AddMission(MissionID);
});
});
});
}
function ADis_AddMission(ID) {
return ADisSettings().then((setting) => {
if (setting['MissionsOwn-Automatic'] == 'true') {
return ADisDB.ADisMissionsOwn.where({
missionID: ID
}).limit(1)
}
}).then((Missions) => {
if (Missions === undefined) {
return;
}
return Missions.count(function (count) {
if (count > 0) {
return Missions.each((Mission) => {
var MissionElement = $("#mission_" + ID);
var MissionID = MissionElement.attr("mission_id");
var MissionType = MissionElement.attr("mission_type_id");
var addr = MissionElement.find(".map_position_mover").text().split(",")
var MissionName = addr[0];
var MissionStreet = addr[1];
var MissionVillage = addr[2];
return ADisDB.ADisAvailabelMissions.get({
type: MissionType
}).then((available) => {
return ADis_AddMissionToQueue({
"id": MissionID,
"type": MissionType,
"name": MissionName,
"street": MissionStreet,
"village": MissionVillage,
"available": (available !== undefined),
"done": false,
"last_check": Math.floor(new Date().getTime() / 1000),
"next_check": Math.floor(new Date().getTime() / 1000) + 1
});
});
});
} else {
var MissionElement = $("#mission_" + ID);
var MissionID = MissionElement.attr("mission_id");
var MissionType = MissionElement.attr("mission_type_id");
var addr = MissionElement.find(".map_position_mover").text().split(",")
var MissionName = addr[0];
var MissionStreet = addr[1];
var MissionVillage = addr[2];
return ADisDB.ADisAvailabelMissions.get({
type: MissionType
}).then((available) => {
return ADis_AddMissionToQueue({
"id": MissionID,
"type": MissionType,
"name": MissionName,
"street": MissionStreet,
"village": MissionVillage,
"available": (available !== undefined),
"done": false,
"last_check": Math.floor(new Date().getTime() / 1000),
"next_check": Math.floor(new Date().getTime() / 1000) + 1
});
});
}
});
});
}
function ADis_AddAvailableMissions(Mission) {
return ADisDB.ADisAvailabelMissions.put({
missionID: Mission.id,
type: Mission.type,
name: Mission.name,
jsondata: Mission
}).catch((err) => {
console.error(err)
})
}
function ADis_AddMissionToQueue(Mission) {
return ADisDB.ADisMissionsOwn.put({
missionID: Mission.id,
type: Mission.type,
name: Mission.name,
available: Mission.available ? 'true' : 'false',
done: Mission.done ? 'true' : 'false',
street: Mission.street,
village: Mission.village,
last_check: Mission.last_check,
next_check: Mission.next_check
}).catch((err) => {
console.error(err)
});
}
function ADis_RemoveMissionFromQueue(MissionID) {
return ADisDB.ADisMissionsOwn.where({
missionID: MissionID
}).delete();
}

View File

@@ -0,0 +1,130 @@
$(document).ready(function () {
console.log('Krankentransporte geladen!');
setTimeout(ADis_OpenNextKrankentransporte, 5000);
setTimeout(ADis_CollectKrankentransporte, 500);
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Collect Krankentransporte
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_CollectKrankentransporte() {
var observer2 = new MutationObserver(function (mutations) {
if (mutations[0].type == "childList") {
if (mutations[0].addedNodes.length >= 1) {
// do it here
for (var i = 0; i < mutations[0].addedNodes.length; i++)
ADis_ReadAndAddKrankentransporte(mutations[0].addedNodes[i].attributes.getNamedItem("mission_id").value)
}
} else {
console.log("DEBUG Krankentransporte", mutations);
}
});
// Notify new alerts
var targetNode2 = document.getElementById("mission_list_krankentransporte");
observer2.observe(targetNode2, {
attributes: false,
//attributeFilter: ['class'],
//attributeOldValue: true,
characterData: false,
characterDataOldValue: false,
childList: true,
subtree: false
});
ADis_ReadAndAddKrankentransporte();
}
function ADis_ReadAndAddKrankentransporte(MissionID) {
if (typeof MissionID != "undefined") {
ADis_AddKrankentransportToQueue(MissionID);
} else {
$("#mission_list_krankentransporte").find(".missionSideBarEntry").each(function () {
MissionID = $(this).attr("mission_id");
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Ambulance Service | Full-Automatic
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
ADis_AddKrankentransportToQueue(MissionID);
});
}
}
function ADis_OpenNextKrankentransporte() {
return ADisDB.transaction('rw', [ADisDB.ADisKrankentransport, ADisDB.ADisSettings, ADisDB.ADisAvailabelMissions], () => {
ADisSettings().then((setting) => {
if (setting['Krankentransport-Automatic'] == 'true') {
return ADisDB.ADisKrankentransport.where({
done: 'false'
}).and(function (item) {
return item.next_check <= Math.floor(new Date().getTime() / 1000)
}).limit(1)
}
}).then((Wunsch) => {
if (Wunsch !== undefined) {
return Wunsch.count(function (count) {
if (count > 0) {
return Wunsch.each((myWunsch) => {
let MissionID = myWunsch.missionID;
myWunsch.last_check = Math.floor(new Date().getTime() / 1000);
myWunsch.next_check = Math.floor(new Date().getTime() / 1000) + 300;
return ADis_UpdateKrankentransport(myWunsch).then(() => {
if ($("#adis-krankentransporte-frame").attr("mission_id") == "empty") {
$("#adis-krankentransporte-frame").attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-krankentransporte-frame").attr("mission_id", MissionID);
KrankentransportFrameWatchDog = setTimeout(async function () {
$("#adis-krankentransporte-frame").attr("src", "");
$("#adis-krankentransporte-frame").attr("mission_id", "empty");
setTimeout(ADis_OpenNextKrankentransporte, 1000);
}, 3500);
}
});
});
}
return setTimeout(ADis_OpenNextKrankentransporte, 5000);
});
}
return setTimeout(ADis_OpenNextKrankentransporte, 5000);
});
});
}
window.ADis_AddKrankentransportToQueue = function ADis_AddKrankentransportToQueue(MissionID) {
return ADisDB.ADisKrankentransport.put({
missionID: MissionID,
last_check: Math.floor(new Date().getTime() / 1000),
next_check: Math.floor(new Date().getTime() / 1000) + 1,
done: 'false'
}).catch((err) => {
console.error(err)
});
}
window.ADis_UpdateKrankentransport = function ADis_UpdateKrankentransport(Mission) {
return ADisDB.ADisKrankentransport.put(Mission).catch((err) => {
console.error(err)
})
}
window.ADis_UpdateKrankentransportToDone = function ADis_UpdateKrankentransportToDone(MissionID) {
return ADisDB.ADisKrankentransport.update(MissionID, {
missionID: MissionID,
done: 'true'
}).catch((err) => {
console.error(err)
});
}
window.ADis_RemoveKrankentransportFromQueue = function ADis_RemoveKrankentransportFromQueue(MissionID) {
return ADisDB.ADisKrankentransport.where({
missionID: MissionID
}).delete();
}

View File

@@ -0,0 +1,122 @@
$(document).ready(function () {
setTimeout(ADis_OpenNextOwnMissions, 5000);
setTimeout(ADis_CollectOwnMissions, 500);
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Collect Own Missions
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_CollectOwnMissions() {
var observer2 = new MutationObserver(function (mutations) {
if (mutations[0].type == "childList") {
if (mutations[0].addedNodes.length >= 1) {
// do it here
for (var i = 0; i < mutations[0].addedNodes.length; i++)
ADis_ReadAndAddOwnMissions(mutations[0].addedNodes[i].attributes.getNamedItem("mission_id").value)
}
} else {
console.log("DEBUG OwnMissions", mutations);
}
});
// Notify new alerts
var targetNode2 = document.getElementById("mission_list");
observer2.observe(targetNode2, {
attributes: false,
//attributeFilter: ['class'],
//attributeOldValue: true,
characterData: false,
characterDataOldValue: false,
childList: true,
subtree: false
});
ADis_ReadAndAddOwnMissions();
}
function ADis_ReadAndAddOwnMissions(MissionID) {
if (typeof MissionID != "undefined") {
ADis_AddOwnMissionsToQueue(MissionID);
} else {
$("#mission_list").find(".missionSideBarEntry").each(function () {
MissionID = $(this).attr("mission_id");
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Ambulance Service | Full-Automatic
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
ADis_AddOwnMissionsToQueue(MissionID);
});
}
}
function ADis_OpenNextOwnMissions() {
ADisSettings().then((setting) => {
if (setting['MissionsOwn-Automatic'] == 'true') {
return ADisDB.ADisMissionsOwn.where({
done: 'false'
}).and(function (item) {
return item.next_check <= Math.floor(new Date().getTime() / 1000)
}).limit(1)
}
}).then((Wunsch) => {
if (Wunsch !== undefined) {
return Wunsch.count(function (count) {
if (count > 0) {
return Wunsch.each((myWunsch) => {
let MissionID = myWunsch.missionID;
myWunsch.next_check = Math.floor(new Date().getTime() / 1000) + 300;
return ADis_UpdateOwnMissions(myWunsch).then(() => {
if ($("#adis-ownmissions-frame").attr("mission_id") == "empty") {
$("#adis-ownmissions-frame").attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-ownmissions-frame").attr("mission_id", MissionID);
OwnMissionsFrameWatchDog = setTimeout(async function () {
ADis_RemoveOwnMissionsFromQueue(MissionID).then((deleteCount) => {
// TODO: tellParent("ADisMissionDone(" + window.name + "," + MissionID + ");");
$("#adis-ownmissions-frame").attr("src", "");
$("#adis-ownmissions-frame").attr("mission_id", "empty");
setTimeout(ADis_OpenNextOwnMissions, 1000);
});
}, 5000);
}
});
});
}
return setTimeout(ADis_OpenNextOwnMissions, 5000);
});
}
return setTimeout(ADis_OpenNextOwnMissions, 5000);
});
}
window.ADis_AddOwnMissionsToQueue = function ADis_AddOwnMissionsToQueue(MissionID) {
return ADisDB.ADisMissionsOwn.add({
missionID: MissionID,
done: 'false'
}).catch((err) => {})
}
window.ADis_UpdateOwnMissions = function ADis_UpdateOwnMissions(Mission) {
return ADisDB.ADisMissionsOwn.put(Mission).catch((err) => {})
}
window.ADis_UpdateOwnMissionsToDone = function ADis_UpdateOwnMissionsToDone(MissionID) {
return ADisDB.ADisMissionsOwn.update(MissionID, {
missionID: MissionID,
done: 'true'
}).catch((err) => {})
}
window.ADis_RemoveOwnMissionsFromQueue = function ADis_RemoveOwnMissionsFromQueue(MissionID) {
return ADisDB.ADisMissionsOwn.where({
missionID: MissionID
}).delete();
}

View File

@@ -0,0 +1,122 @@
$(document).ready(function () {
setTimeout(ADis_OpenNextPlannedEvents, 5000);
setTimeout(ADis_CollectPlannedEvents, 500);
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Collect Own Missions
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_CollectPlannedEvents() {
var observer2 = new MutationObserver(function (mutations) {
if (mutations[0].type == "childList") {
if (mutations[0].addedNodes.length >= 1) {
// do it here
for (var i = 0; i < mutations[0].addedNodes.length; i++)
ADis_ReadAndAddPlannedEvents(mutations[0].addedNodes[i].attributes.getNamedItem("mission_id").value)
}
} else {
console.log("DEBUG PlannedEvents", mutations);
}
});
// Notify new alerts
var targetNode2 = document.getElementById("mission_list_sicherheitswache");
observer2.observe(targetNode2, {
attributes: false,
//attributeFilter: ['class'],
//attributeOldValue: true,
characterData: false,
characterDataOldValue: false,
childList: true,
subtree: false
});
ADis_ReadAndAddPlannedEvents();
}
function ADis_ReadAndAddPlannedEvents(MissionID) {
if (typeof MissionID != "undefined") {
ADis_AddPlannedEventsToQueue(MissionID);
} else {
$("#mission_list_sicherheitswache").find(".missionSideBarEntry").each(function () {
MissionID = $(this).attr("mission_id");
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Ambulance Service | Full-Automatic
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
ADis_AddPlannedEventsToQueue(MissionID);
});
}
}
function ADis_OpenNextPlannedEvents() {
ADisSettings().then((setting) => {
if (setting['MissionsOwn-Automatic'] == 'true') {
return ADisDB.ADisMissionsOwn.where({
done: 'false'
}).and(function (item) {
return item.next_check > Math.floor(new Date().getTime() / 1000)
}).limit(1)
}
}).then((Wunsch) => {
if (Wunsch !== undefined) {
return Wunsch.count(function (count) {
if (count > 0) {
return Wunsch.each((myWunsch) => {
let MissionID = myWunsch.missionID;
myWunsch.next_check = Math.floor(new Date().getTime() / 1000) + 300;
return ADis_UpdatePlannedEvents(myWunsch).then(() => {
if ($("#adis-plannedevents-frame").attr("mission_id") == "empty") {
$("#adis-plannedevents-frame").attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-plannedevents-frame").attr("mission_id", MissionID);
PlannedEventsFrameWatchDog = setTimeout(async function () {
ADis_RemovePlannedEventsFromQueue(MissionID).then((deleteCount) => {
// TODO: tellParent("ADisMissionDone(" + window.name + "," + MissionID + ");");
$("#adis-plannedevents-frame").attr("src", "");
$("#adis-plannedevents-frame").attr("mission_id", "empty");
setTimeout(ADis_OpenNextPlannedEvents, 1000);
});
}, 5000);
}
});
});
}
return setTimeout(ADis_OpenNextPlannedEvents, 5000);
});
}
return setTimeout(ADis_OpenNextPlannedEvents, 5000);
});
}
window.ADis_AddPlannedEventsToQueue = function ADis_AddPlannedEventsToQueue(MissionID) {
return ADisDB.ADisMissionsOwn.add({
missionID: MissionID,
done: 'false'
}).catch((err) => {})
}
window.ADis_UpdatePlannedEvents = function ADis_UpdatePlannedEvents(Mission) {
return ADisDB.ADisMissionsOwn.put(Mission).catch((err) => {})
}
window.ADis_UpdatePlannedEventsToDone = function ADis_UpdatePlannedEventsToDone(MissionID) {
return ADisDB.ADisMissionsOwn.update(MissionID, {
missionID: MissionID,
done: 'true'
}).catch((err) => {})
}
window.ADis_RemovePlannedEventsFromQueue = function ADis_RemovePlannedEventsFromQueue(MissionID) {
return ADisDB.ADisMissionsOwn.where({
missionID: MissionID
}).delete();
}

View File

@@ -0,0 +1,118 @@
$(document).ready(function () {
setTimeout(ADis_OpenNextVerbandEvents, 5000);
setTimeout(ADis_CollectVerbandEvents, 500);
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Collect Verband Missions
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_CollectVerbandEvents() {
var observer2 = new MutationObserver(function (mutations) {
if (mutations[0].type == "childList") {
if (mutations[0].addedNodes.length >= 1) {
// do it here
for (var i = 0; i < mutations[0].addedNodes.length; i++)
ADis_ReadAndAddVerbandEvents(mutations[0].addedNodes[i].attributes.getNamedItem("mission_id").value)
}
} else {
console.log("DEBUG VerbandEvents", mutations);
}
});
// Notify new alerts
var targetNode2 = document.getElementById("mission_list_alliance_event");
observer2.observe(targetNode2, {
attributes: false,
//attributeFilter: ['class'],
//attributeOldValue: true,
characterData: false,
characterDataOldValue: false,
childList: true,
subtree: false
});
ADis_ReadAndAddVerbandEvents();
}
function ADis_ReadAndAddVerbandEvents(MissionID) {
if (typeof MissionID != "undefined") {
ADis_AddVerbandEventsToQueue(MissionID);
} else {
$("#mission_list_alliance_event").find(".missionSideBarEntry").each(function () {
MissionID = $(this).attr("mission_id");
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Ambulance Service | Full-Automatic
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
ADis_AddVerbandEventsToQueue(MissionID);
});
}
}
function ADis_OpenNextVerbandEvents() {
ADisSettings().then((setting) => {
if (setting['AllianceEvent-Automatic'] == 'true') {
return ADisDB.ADisMissionsVerbandEvent.where({
done: 'false'
}).limit(1)
}
}).then((Wunsch) => {
if (Wunsch !== undefined) {
return Wunsch.count(function (count) {
if (count > 0) {
return Wunsch.each((myWunsch) => {
let MissionID = myWunsch.missionID;
return ADis_UpdateVerbandEventsToDone(MissionID).then(() => {
if ($("#adis-verbandmission-frame").attr("mission_id") == "empty") {
$("#adis-verbandmission-frame").attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-verbandmission-frame").attr("mission_id", MissionID);
VerbandEventsFrameWatchDog = setTimeout(async function () {
ADis_RemoveVerbandEventsFromQueue(MissionID).then((deleteCount) => {
// TODO: tellParent("ADisMissionDone(" + window.name + "," + MissionID + ");");
$("#adis-verbandmission-frame").attr("src", "");
$("#adis-verbandmission-frame").attr("mission_id", "empty");
setTimeout(ADis_OpenNextVerbandEvents, 1000);
});
}, 5000);
}
});
});
}
return setTimeout(ADis_OpenNextVerbandEvents, 5000);
});
}
return setTimeout(ADis_OpenNextVerbandEvents, 5000);
});
}
window.ADis_AddVerbandEventsToQueue = function ADis_AddVerbandEventsToQueue(MissionID) {
return ADisDB.ADisMissionsVerbandEvent.add({
missionID: MissionID,
done: 'false'
}).catch((err) => {})
}
window.ADis_UpdateVerbandEvents = function ADis_UpdateVerbandEvents(Mission) {
return ADisDB.ADisMissionsVerbandEvent.put(Mission).catch((err) => {})
}
window.ADis_UpdateVerbandEventsToDone = function ADis_UpdateVerbandEventsToDone(MissionID) {
return ADisDB.ADisMissionsVerbandEvent.update(MissionID, {
missionID: MissionID,
done: 'true'
}).catch((err) => {})
}
window.ADis_RemoveVerbandEventsFromQueue = function ADis_RemoveVerbandEventsFromQueue(MissionID) {
return ADisDB.ADisMissionsVerbandEvent.where({
missionID: MissionID
}).delete();
}

View File

@@ -0,0 +1,118 @@
$(document).ready(function () {
setTimeout(ADis_OpenNextVerbandMissions, 5000);
setTimeout(ADis_CollectVerbandMissions, 500);
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Collect Verband Missions
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_CollectVerbandMissions() {
var observer2 = new MutationObserver(function (mutations) {
if (mutations[0].type == "childList") {
if (mutations[0].addedNodes.length >= 1) {
// do it here
for (var i = 0; i < mutations[0].addedNodes.length; i++)
ADis_ReadAndAddVerbandMissions(mutations[0].addedNodes[i].attributes.getNamedItem("mission_id").value)
}
} else {
console.log("DEBUG VerbandMissions", mutations);
}
});
// Notify new alerts
var targetNode2 = document.getElementById("mission_list_alliance");
observer2.observe(targetNode2, {
attributes: false,
//attributeFilter: ['class'],
//attributeOldValue: true,
characterData: false,
characterDataOldValue: false,
childList: true,
subtree: false
});
ADis_ReadAndAddVerbandMissions();
}
function ADis_ReadAndAddVerbandMissions(MissionID) {
if (typeof MissionID != "undefined") {
ADis_AddVerbandMissionsToQueue(MissionID);
} else {
$("#mission_list_alliance").find(".missionSideBarEntry").each(function () {
MissionID = $(this).attr("mission_id");
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Ambulance Service | Full-Automatic
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
ADis_AddVerbandMissionsToQueue(MissionID);
});
}
}
function ADis_OpenNextVerbandMissions() {
ADisSettings().then((setting) => {
if (setting['Alliance-Automatic'] == 'true') {
return ADisDB.ADisVerbandMissions.where({
done: 'false'
}).limit(1)
}
}).then((Wunsch) => {
if (Wunsch !== undefined) {
return Wunsch.count(function (count) {
if (count > 0) {
return Wunsch.each((myWunsch) => {
let MissionID = myWunsch.missionID;
return ADis_UpdateVerbandMissionsToDone(MissionID).then(() => {
if ($("#adis-verbandmission-frame").attr("mission_id") == "empty") {
$("#adis-verbandmission-frame").attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-verbandmission-frame").attr("mission_id", MissionID);
VerbandMissionsFrameWatchDog = setTimeout(async function () {
ADis_RemoveVerbandMissionsFromQueue(MissionID).then((deleteCount) => {
// TODO: tellParent("ADisMissionDone(" + window.name + "," + MissionID + ");");
$("#adis-verbandmission-frame").attr("src", "");
$("#adis-verbandmission-frame").attr("mission_id", "empty");
setTimeout(ADis_OpenNextVerbandMissions, 1000);
});
}, 5000);
}
});
});
}
return setTimeout(ADis_OpenNextVerbandMissions, 5000);
});
}
return setTimeout(ADis_OpenNextVerbandMissions, 5000);
});
}
window.ADis_AddVerbandMissionsToQueue = function ADis_AddVerbandMissionsToQueue(MissionID) {
return ADisDB.ADisMissionsVerband.add({
missionID: MissionID,
done: 'false'
}).catch((err) => {})
}
window.ADis_UpdateVerbandMissions = function ADis_UpdateVerbandMissions(Mission) {
return ADisDB.ADisMissionsVerband.put(Mission).catch((err) => {})
}
window.ADis_UpdateVerbandMissionsToDone = function ADis_UpdateVerbandMissionsToDone(MissionID) {
return ADisDB.ADisMissionsVerband.update(MissionID, {
missionID: MissionID,
done: 'true'
}).catch((err) => {})
}
window.ADis_RemoveVerbandMissionsFromQueue = function ADis_RemoveVerbandMissionsFromQueue(MissionID) {
return ADisDB.ADisMissionsVerband.where({
missionID: MissionID
}).delete();
}

42
script/sprechwunsch.js Normal file
View File

@@ -0,0 +1,42 @@
// -
// - Sprechwunsch Variablen
// -
var Jails = [];
var JailRegEx = /\(Freie Zellen\:\s+(\d)\,\s+Entfernung\:\s+(\d+\,\d+)\s+km(?:\,\s+Abgabe an Besitzer\:\s+(\d+)%)?\)/g;
var Hospitals = [];
var RescueVehicleFrameWatchDog;
var PoliceVehicleFrameWatchDog;
// -
// - Sprechwunsch Queue
// -
function ADis_RemovePoliceSprechwunschFromQueue(WunschID) {
console.log(WunschID, typeof WunschID);
return ADisDB.ADisSprechwunschPolice.where({
missionID: WunschID
}).delete();
}
// -
// - Sprechwunsch Opener
// -
if (window.location.pathname === "/" || window.location.pathname === "/#") {
//=require sprechwunsch/rescue-opener.js
//=require sprechwunsch/police-opener.js
}
// -
// - Sprechwunsch Handler Rettung
// -
if (window.location.pathname.indexOf("/vehicles/") !== -1 && window.name == 'adis-sprechwunsch-rescue') {
//=require sprechwunsch/rescue-handler.js
}
// -
// - Sprechwunsch Handler Polizei/Gefangene
// -
if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') {
//=require sprechwunsch/police-handler.js
}

View File

@@ -0,0 +1,200 @@
$(document).ready(function () {
setTimeout(function () {
ADis_Check_Call_Police_Active();
}, 500);
});
function ADis_Check_Call_Police_Active() {
if ($('#h2_prisoners').length > 0) {
ADis_Collect_Jails();
} else {
ADis_RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => {
$("#adis-sprechwunsch-police-frame").attr("src", "");
$("#adis-sprechwunsch-police-frame").attr("mission_id", "empty");
});
}
}
// Gefängnis auswählen
function ADis_Collect_Jails() {
var CountGefangene = Number(parseInt($('#h2_prisoners').text()));
var parentNode = $('#mission_vehicle_at_mission tr > td:nth-child(5) > a:contains("Jomaar")').parent().parent();
var GefKw = parentNode.find('td:nth-child(2) > a[vehicle_type_id="52"]');
var FuStW = parentNode.find('td:nth-child(2) > a[vehicle_type_id="32"]');
var GefKwGefaegnisse = $(GefKw[0]).parent().parent().next('tr');
var FuStWGefaegnisse = $(FuStW[0]).parent().parent().next('tr');
GefKwGefaegnisse.find("a:contains('Freie Zellen')").each(function () {
var JailHref = $(this).attr("href");
var JailID = JailHref.split("/").pop();
var JailText = $(this).text();
var JailFreeBeds = 0;
var JailDistance = 0;
var JailTax = 0;
let m;
while ((m = JailRegEx.exec(JailText)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === JailRegEx.lastIndex) {
JailRegEx.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
if (groupIndex == 1) {
JailFreeBeds = parseInt(match.trim());
} else if (groupIndex == 2) {
JailDistance = parseInt(match.trim());
} else if (groupIndex == 3 && typeof match != "undefined") {
JailTax = parseInt(match.trim());
}
});
}
var JailValue = JailDistance * 450 * -1;
JailValue += 11; //GefKw bevorzugt
if (JailTax == 0) {
JailValue += 10000;
} else if (JailTax > 0 && JailTax <= 10) {
JailValue += 5000;
} else if (JailTax > 10 && JailTax <= 20) {
JailValue += 1000;
} else {
JailValue -= 10000;
}
if (JailFreeBeds >= 5) {
JailValue += 15000;
} else if (JailFreeBeds >= 1) {
JailValue += 1000;
} else {
JailValue -= 5000;
}
if (JailFreeBeds >= 5) {
Jails.push({
"id": JailID,
"value": JailValue + 1000,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
} else if (JailFreeBeds >= 1) {
Jails.push({
"id": JailID,
"value": JailValue,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
}
});
FuStWGefaegnisse.find("a:contains('Freie Zellen')").each(function () {
var JailHref = $(this).attr("href");
var JailID = JailHref.split("/").pop();
var JailText = $(this).text();
var JailFreeBeds = 0;
var JailDistance = 0;
var JailTax = 0;
let m;
while ((m = JailRegEx.exec(JailText)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === JailRegEx.lastIndex) {
JailRegEx.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
if (groupIndex == 1) {
JailFreeBeds = parseInt(match.trim());
} else if (groupIndex == 2) {
JailDistance = parseInt(match.trim());
} else if (groupIndex == 3 && typeof match != "undefined") {
JailTax = parseInt(match.trim());
}
});
}
var JailValue = JailDistance * 450 * -1;
if (JailTax == 0) {
JailValue += 10000;
} else if (JailTax > 0 && JailTax <= 10) {
JailValue += 5000;
} else if (JailTax > 10 && JailTax <= 20) {
JailValue += 1000;
} else {
JailValue -= 10000;
}
if (JailFreeBeds >= 5) {
JailValue += 15000;
} else if (JailFreeBeds >= 1) {
JailValue += 1000;
} else {
JailValue -= 5000;
}
if (JailFreeBeds >= CountGefangene) {
Jails.push({
"id": JailID,
"value": JailValue + 1000,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
} else if (JailFreeBeds >= 1) {
Jails.push({
"id": JailID,
"value": JailValue,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
}
});
Jails.sort(function (a, b) {
return a.value - b.value;
});
Jails.reverse();
if (Jails.length > 0) {
ADis_Send_Vehicle_To_Jail()
} else {
$("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each(function () {
var CalledVehicleID = parseInt($(this).find("a").first().attr("vehicle_type_id"));
if (CalledVehicleID == 52) {
CountGefangene -= 5;
} else if (CalledVehicleID == 32) {
CountGefangene -= 1;
}
});
if ($('#vehicle_show_table_all tr[vehicle_type="GefKw"] input[type="checkbox"]').size() > 0 && CountGefangene >= 5) {
$('#vehicle_show_table_all tr[vehicle_type="GefKw"] input[type="checkbox"]').each(function () {
if (CountGefangene > 0) {
$(this).click()
CountGefangene -= 5;
}
});
}
if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0 && CountGefangene > 0) {
$('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').each(function () {
if (CountGefangene > 0) {
$(this).click()
CountGefangene -= 1;
}
});
}
if ($('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0) {
$('#mission_alarm_btn').click();
}
}
}
// Gefängnis einlieferung
function ADis_Send_Vehicle_To_Jail() {
var JailHref = Jails[0].href
document.location.href = document.location.origin + JailHref;
}

View File

@@ -0,0 +1,100 @@
$(document).ready(function () {
setInterval(ADis_CollectPoliceSprechwuensche, 7500);
setInterval(ADis_OpenNextPoliceSprechwunsch, 7500);
ADis_CollectPoliceSprechwuensche();
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Assign & Unassign Missions to Dispatchers
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_CollectPoliceSprechwuensche() {
ADisDB.ADisSprechwunschPolice.where({
done: 'false'
}).each((Wunsch) => {
if (!$("#mission_" + Wunsch.missionID).text().match(/Gefangene sollen abtransportiert werden/g)) {
$("#mission_" + Wunsch.missionID).remove();
return ADis_RemovePoliceSprechwunschFromQueue(Wunsch.missionID);
}
}).then(() => {
var MOIODOS = $('div#mission_list div.missionSideBarEntry:visible');
MOIODOS.each(function (index) {
if ($(this).text().match(/Gefangene sollen abtransportiert werden\./gmu)) {
var MissionID = $(this).attr("mission_id");
ADis_AddPoliceSprechwunschToQueue(MissionID);
}
});
});
}
function ADis_OpenNextPoliceSprechwunsch() {
ADisSettings().then((setting) => {
if (setting['Sprechwunsch-Automatic'] == 'true') {
return ADisDB.ADisSprechwunschPolice.where({
done: 'false'
}).limit(1)
}
}).then((Wunsch) => {
if (Wunsch !== undefined) {
Wunsch.each((myWunsch) => {
let MissionID = myWunsch.missionID;
ADis_UpdatePoliceSprechwunschToDone(MissionID).then(() => {
if ($("#adis-sprechwunsch-police-frame").attr("mission_id") == "empty") {
$("#adis-sprechwunsch-police-frame").attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-sprechwunsch-police-frame").attr("mission_id", MissionID);
PoliceVehicleFrameWatchDog = setTimeout(async function (MissionID) {
ADis_RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => {
$("#adis-sprechwunsch-police-frame").attr("src", "");
$("#adis-sprechwunsch-police-frame").attr("mission_id", "empty");
});
}, 2500, MissionID);
}
});
});
}
});
}
function ADis_AddPoliceSprechwunschToQueue(WunschID) {
return ADisDB.ADisSprechwunschPolice.add({
missionID: WunschID,
done: 'false'
}).catch((err) => {})
}
function ADis_UpdatePoliceSprechwunschToDone(WunschID) {
console.log(WunschID, typeof WunschID);
return ADisDB.ADisSprechwunschPolice.add({
missionID: WunschID,
done: 'true'
}).catch((err) => {})
}
/**
* #mission_missing_905214286
* //*[@id="mission_missing_905214286"]
*
* const regex = /^Gefangene sollen abtransportiert werden\.$/gmu;
const str = `Alarm Massenschlägerei, Uferweg, 27749 Düsternort Delmenhorst
Gefangene sollen abtransportiert werden.
Sophie V.
Anna T.
Franziska M.`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
*/

View File

@@ -0,0 +1,96 @@
$(document).ready(function () {
setTimeout(function () {
ADis_Check_Call_Active();
}, 500);
});
function ADis_Check_Call_Active() {
if ($("h4:contains('Eigene Krankenhäuser')").length > 0 || $("h4:contains('Verbandskrankenhäuser')").length > 0) {
ADis_Collect_Hospitals();
}
}
// Krankenhaus auswählen
function ADis_Collect_Hospitals() {
if ($("h4:contains('Eigene Krankenhäuser')").length > 0) {
$("h4:contains('Eigene Krankenhäuser')").next("table").find("tbody").find("tr").each(function () {
var HospitalHref = $(this).find("a:contains('Anfahren')").attr("href");
var HospitalID = Number(parseInt($(this).find("a:contains('Anfahren')").attr("id").replace("btn_approach_", "")));
var HospitalDistance = parseInt($(this).find("td").eq("1").text());
var HospitalFreeBeds = parseInt($(this).find("td").eq("2").text());
var HospitalValue = HospitalDistance * 450 * -1;
HospitalValue += 2000; // Own Hospitals are better :-)
if ($(this).find(".label:contains('Ja')").length > 0) {
HospitalValue += 2000;
}
if (HospitalFreeBeds > 0) {
Hospitals.push({
"id": HospitalID,
"value": HospitalValue,
"distance": HospitalDistance,
"href": HospitalHref
});
}
});
}
if ($("h4:contains('Verbandskrankenhäuser')").length > 0) {
$("h4:contains('Verbandskrankenhäuser')").next("table").find("tbody").find("tr").each(function () {
var HospitalHref = $(this).find("a").attr("href")
var HospitalID = Number(parseInt(HospitalHref.substr(HospitalHref.lastIndexOf("/") + 1)));
var HospitalDistance = parseInt($(this).find("td").eq("1").text());
var HospitalFreeBeds = parseInt($(this).find("td").eq("2").text());
var HospitalTaxes = parseInt($(this).find("td").eq("3").text());
var HospitalSpecialDepartment = false;
// Add Button-ID to Alliance-Hospital
$(this).find("a").attr("id", "btn_approach_" + HospitalID.toString());
var HospitalValue = HospitalDistance * 450 * -1;
if ($(this).find(".label:contains('Ja')").length > 0) {
HospitalSpecialDepartment = true;
HospitalValue += 2000;
}
if (HospitalTaxes == 0) {
HospitalValue += 2000;
} else if (HospitalTaxes > 0 && HospitalTaxes <= 10) {
HospitalValue += 1000;
} else if (HospitalTaxes > 10 && HospitalTaxes <= 20) {
HospitalValue += 0;
} else {
HospitalValue -= 5000;
}
if (HospitalFreeBeds > 0 && HospitalSpecialDepartment) {
Hospitals.push({
"id": HospitalID,
"value": HospitalValue,
"taxes": HospitalTaxes,
"distance": HospitalDistance,
"href": HospitalHref
});
}
});
}
Hospitals.sort(function (a, b) {
return a.value - b.value;
});
Hospitals.reverse();
ADis_Send_Vehicle_To_Hospital()
}
// Krankenhaus einlieferung
function ADis_Send_Vehicle_To_Hospital() {
//var HospitalID = Hospitals[0].id;
var HospitalHref = Hospitals[0].href;
// TODO: tellParent("ADisMissionDone(" + window.name + "," + MissionID + ");");
document.location.href = document.location.origin + HospitalHref;
}

View File

@@ -0,0 +1,80 @@
$(document).ready(function () {
setInterval(ADis_CollectRescueSprechwuensche, 2500);
setInterval(ADis_OpenNextRescueSprechwunsch, 2500);
ADis_CollectRescueSprechwuensche();
});
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Assign & Unassign Missions to Dispatchers
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function ADis_CollectRescueSprechwuensche() {
ADisDB.ADisSprechwunsch.where({
done: 'false'
}).each((Wunsch) => {
if ($("#vehicle_list_" + Wunsch.vehicleID).find(".building_list_fms").text() != "5") {
return ADis_RemoveRescueSprechwunschFromQueue(Wunsch.vehicleID);
}
}).then(() => {
$("#building_list").find(".building_list_vehicle_element").each(function () {
var VehicleStatus = $(this).find(".building_list_fms").text();
// var VehicleType = $(this).find("a").attr("vehicle_type_id");
var VehicleID = $(this).attr("vehicle_id");
if (VehicleStatus == "5") {
ADis_AddRescueSprechwunschToQueue(VehicleID);
}
});
});
}
function ADis_OpenNextRescueSprechwunsch() {
ADisSettings().then((setting) => {
if (setting['Sprechwunsch-Automatic'] == 'true') {
return ADisDB.ADisSprechwunsch.where({
done: 'false'
}).limit(1)
}
}).then((Wunsch) => {
if (Wunsch !== undefined) {
Wunsch.each((myWunsch) => {
let VehicleID = myWunsch.vehicleID;
ADis_UpdateRescueSprechwunschToDone(VehicleID).then(() => {
if ($("#adis-sprechwunsch-rescue-frame").attr("vehicle_id") == "empty") {
$("#adis-sprechwunsch-rescue-frame").attr("src", "https://www.leitstellenspiel.de/vehicles/" + VehicleID);
$("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", VehicleID);
RescueVehicleFrameWatchDog = setTimeout(async function () {
ADis_RemoveRescueSprechwunschFromQueue(VehicleID).then((deleteCount) => {
$("#adis-sprechwunsch-rescue-frame").attr("src", "");
$("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", "empty");
});
}, 1500);
}
});
});
}
});
}
function ADis_AddRescueSprechwunschToQueue(WunschID) {
return ADisDB.ADisSprechwunsch.add({
vehicleID: WunschID,
done: 'false'
}).catch((err) => {})
}
function ADis_UpdateRescueSprechwunschToDone(WunschID) {
return ADisDB.ADisSprechwunsch.put({
vehicleID: WunschID,
done: 'true'
}).catch((err) => {})
}
function ADis_RemoveRescueSprechwunschFromQueue(WunschID) {
return ADisDB.ADisSprechwunsch.where({
vehicleID: WunschID
}).delete();
}

View File