34 Commits

Author SHA1 Message Date
Jomaar 1f03ad6cc3 v2 trans 2018-12-19 18:06:36 +01:00
Jomaar 88b26a7f91 v2 transact 2018-12-19 17:49:39 +01:00
Jomaar d52137df95 v2 transaction 2018-12-19 17:48:10 +01:00
Jomaar 7852149694 v2 transact 2018-12-19 17:42:57 +01:00
Jomaar 3bce16eff7 v2 transact 2018-12-19 17:40:16 +01:00
Jomaar 1817977520 v2 transact 2018-12-19 17:34:08 +01:00
Jomaar e48b0a7bdd v2 transact 2018-12-19 17:28:31 +01:00
Jomaar efd95eacab v2 transaction 2018-12-19 17:27:30 +01:00
Jomaar fdffe19a11 v2 up transact 2018-12-19 17:18:58 +01:00
Jomaar cb049224dd v2 trans 2018-12-19 17:16:34 +01:00
Jomaar b33313eed9 v2 fix transact 2018-12-19 17:12:10 +01:00
Jomaar b4fb131c9b v2 fix transact 2018-12-19 17:09:30 +01:00
Jomaar 98002ae853 v2 transactions 2018-12-19 17:06:30 +01:00
Jomaar 31f147ee6d v2 transactions 2018-12-19 17:03:17 +01:00
Jomaar 18acbc9a01 v2 transaction 2018-12-19 16:49:47 +01:00
Jomaar 0a1fb871ed v2 up af9ia transaction 2018-12-19 16:46:20 +01:00
Jomaar 78b72223f8 v2 transaction 2018-12-19 16:40:49 +01:00
Jomaar b7067520bc transact 2018-12-19 16:38:19 +01:00
Jomaar f142e57e18 transactions 2018-12-19 16:35:01 +01:00
Jomaar 4ae5c26754 transactions 2018-12-19 16:32:46 +01:00
Jomaar 01acb126a4 transactions 2018-12-19 16:28:51 +01:00
Jomaar 4b691b54c8 ijox 2018-12-19 16:24:02 +01:00
Jomaar 9ca42c9210 v2 uaüpf9u 2018-12-19 16:18:58 +01:00
Jomaar 25397f17eb v2 up aigu09agfpo 2018-12-19 16:17:21 +01:00
Jomaar 4e591be16b v2 up aof8auoj 2018-12-19 16:13:49 +01:00
Jomaar 16838dae86 v2 uagf98oi 2018-12-19 16:12:05 +01:00
Jomaar 72d3566254 v2 uaof0 2018-12-19 16:08:19 +01:00
Jomaar c137f47e4a v2 uahg9 2018-12-19 16:05:37 +01:00
Jomaar 579facabbc v2 upa09 2018-12-19 16:02:18 +01:00
Jomaar 5c619f622c xx 2018-12-19 15:57:00 +01:00
Jomaar a6e68ebb82 v2 update 2018-12-19 15:53:49 +01:00
Jomaar f95f4a6483 xxx 2018-12-18 02:47:49 +01:00
Jomaar 6bbb9cc5cb xx 2018-12-18 02:35:47 +01:00
Jomaar b6532cbf27 x 2018-12-18 02:34:19 +01:00
3 changed files with 1024 additions and 826 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
/*Generated on:Tue Dec 18 2018 02:20:22 GMT+0100 (CET)*/ /*Generated on:Wed Dec 19 2018 18:06:36 GMT+0100 (CET)*/
var AutomaticDispose_Branch = "master"; var AutomaticDispose_Branch = "master";
var AutomaticDispose_URL = "https://jf.git.rest/Jomaar/automatic-dispose/raw/branch/"; var AutomaticDispose_URL = "https://jf.git.rest/Jomaar/automatic-dispose/raw/branch/";
var da_lss_adis_time = new Date().getTime(); var da_lss_adis_time = new Date().getTime();
+221 -122
View File
@@ -1,4 +1,4 @@
/*Generated on:Tue Dec 18 2018 02:20:22 GMT+0100 (CET)*/ /*Generated on:Wed Dec 19 2018 18:06:36 GMT+0100 (CET)*/
/* /*
* Dexie.js - a minimalistic wrapper for IndexedDB * Dexie.js - a minimalistic wrapper for IndexedDB
* =============================================== * ===============================================
@@ -4479,6 +4479,7 @@ class AutomaticDispose {
// Variablen // Variablen
get ADisSettings() { get ADisSettings() {
let self = this
return { return {
url: "https://jf.git.rest/Jomaar/automatic-dispose/raw/branch/", url: "https://jf.git.rest/Jomaar/automatic-dispose/raw/branch/",
branch: "master", branch: "master",
@@ -17015,7 +17016,7 @@ class AutomaticDispose {
} }
} }
}`), }`),
name: this.name, name: self.name,
runner: ['kt', 'om', 'os', 'vm', 've'], runner: ['kt', 'om', 'os', 'vm', 've'],
runner_divs: ['mission_list_krankentransporte', 'mission_list', /*'mission_list_sicherheitswache',*/ 'mission_list_alliance', 'mission_list_alliance_event'], runner_divs: ['mission_list_krankentransporte', 'mission_list', /*'mission_list_sicherheitswache',*/ 'mission_list_alliance', 'mission_list_alliance_event'],
runner_settings: ['Krankentransport-Automatic', 'MissionsOwn-Automatic', /*'MissionsOwn-Automatic',*/ 'Alliance-Automatic', 'AllianceEvent-Automatic'], runner_settings: ['Krankentransport-Automatic', 'MissionsOwn-Automatic', /*'MissionsOwn-Automatic',*/ 'Alliance-Automatic', 'AllianceEvent-Automatic'],
@@ -17038,20 +17039,20 @@ class AutomaticDispose {
self.Vehicles = {} self.Vehicles = {}
self.Patients = {} self.Patients = {}
this.ADis_MyHead = document.getElementsByTagName('head')[0]; self.ADis_MyHead = document.getElementsByTagName('head')[0];
this.ADis_MyBody = document.getElementsByTagName('body')[0]; self.ADis_MyBody = document.getElementsByTagName('body')[0];
// - // -
// - Sprechwunsch Variablen // - Sprechwunsch Variablen
// - // -
this.Jails = []; self.Jails = [];
this.JailRegEx = /\(Freie Zellen\:\s+(\d)\,\s+Entfernung\:\s+(\d+\,\d+)\s+km(?:\,\s+Abgabe an Besitzer\:\s+(\d+)%)?\)/g; self.JailRegEx = /\(Freie Zellen\:\s+(\d)\,\s+Entfernung\:\s+(\d+\,\d+)\s+km(?:\,\s+Abgabe an Besitzer\:\s+(\d+)%)?\)/g;
this.Hospitals = []; self.Hospitals = [];
this.RescueVehicleFrameWatchDog = null; self.RescueVehicleFrameWatchDog = null;
this.PoliceVehicleFrameWatchDog = null; self.PoliceVehicleFrameWatchDog = null;
this.ADisDB = new Dexie('LSS_AutomaticDispo'); self.ADisDB = new Dexie('LSS_AutomaticDispo');
this.ADisDB.version(1).stores({ self.ADisDB.version(1).stores({
/** /**
* AvailabelMissions * AvailabelMissions
* - missionID * - missionID
@@ -17096,7 +17097,7 @@ class AutomaticDispose {
*/ */
ADisMissions: "++missionID,runner,available,done,[missionID+available+done],[missionID+runner],[missionID+runner+done],[runner+available+done]" ADisMissions: "++missionID,runner,available,done,[missionID+available+done],[missionID+runner],[missionID+runner+done],[runner+available+done]"
}); });
this.ADisDB.on("populate", () => { self.ADisDB.on("populate", () => {
self.ADisDB.ADisSettings.add({ self.ADisDB.ADisSettings.add({
name: "Krankentransport-Automatic", name: "Krankentransport-Automatic",
value: 'true' value: 'true'
@@ -17118,10 +17119,10 @@ class AutomaticDispose {
value: 'false' value: 'false'
}); });
}); });
this.ADisDB.open().catch((err) => { self.ADisDB.open().catch((err) => {
console.error(err.stack || err); console.error(err.stack || err);
}); });
this.ADisDB.on("ready", async () => { self.ADisDB.on("ready", async () => {
self.adis_settings = { self.adis_settings = {
'Krankentransport-Automatic': false, 'Krankentransport-Automatic': false,
'Sprechwunsch-Automatic': false, 'Sprechwunsch-Automatic': false,
@@ -17142,11 +17143,10 @@ class AutomaticDispose {
setInterval(self.OpenNextPoliceSprechwunsch.bind(self), 5000); setInterval(self.OpenNextPoliceSprechwunsch.bind(self), 5000);
self.CollectPoliceSprechwuensche(); self.CollectPoliceSprechwuensche();
setTimeout(function() { setTimeout(() => {
const self = this;
self.CollectMissions(); self.CollectMissions();
self.ReadAndAddMissions(); self.ReadAndAddMissions();
}.bind(self), 500); }, 500);
self.ADisSettings.runner.forEach((runner) => { self.ADisSettings.runner.forEach((runner) => {
self.OpenNextMission(runner) self.OpenNextMission(runner)
@@ -17169,9 +17169,7 @@ class AutomaticDispose {
if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') { if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') {
self.Check_Call_Police_Active(); self.Check_Call_Police_Active();
} else if (window.location.pathname.indexOf("/missions/") !== -1 && window.name != 'adis-sprechwunsch-police') { } else if (window.location.pathname.indexOf("/missions/") !== -1 && window.name != 'adis-sprechwunsch-police') {
setTimeout(function(){ self.StartMission();
this.StartMission();
}.bind(self),250)
} }
}); });
@@ -17204,14 +17202,26 @@ class AutomaticDispose {
// - Sprechwunsch Queue // - Sprechwunsch Queue
// - // -
RemovePoliceSprechwunschFromQueue(WunschID) { RemovePoliceSprechwunschFromQueue(WunschID) {
return this.ADisDB.ADisSprechwunschPolice.where({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADisDB.ADisSprechwunschPolice.where({
missionID: WunschID missionID: WunschID
}).delete(); }).delete();
}).catch((err) => {
console.error(err)
})
} }
RemoveRescueSprechwunschFromQueue(WunschID) { RemoveRescueSprechwunschFromQueue(WunschID) {
return this.ADisDB.ADisSprechwunsch.where({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADisDB.ADisSprechwunsch.where({
vehicleID: WunschID vehicleID: WunschID
}).delete(); }).delete();
}).catch((err) => {
console.error(err)
})
} }
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -17222,6 +17232,7 @@ class AutomaticDispose {
CollectRescueSprechwuensche() { CollectRescueSprechwuensche() {
let self = this; let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
new Promise(async (resolve, reject) => { new Promise(async (resolve, reject) => {
await self.ADisDB.ADisSprechwunsch.where({ await self.ADisDB.ADisSprechwunsch.where({
done: 'false' done: 'false'
@@ -17240,12 +17251,16 @@ class AutomaticDispose {
self.AddRescueSprechwunschToQueue(VehicleID); self.AddRescueSprechwunschToQueue(VehicleID);
} }
}); });
}); })
}).catch((err) => {
console.error(err)
})
} }
OpenNextRescueSprechwunsch() { OpenNextRescueSprechwunsch() {
let self = this; let self = this;
this.ADSettings().then((setting) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADSettings().then((setting) => {
if (setting['Sprechwunsch-Automatic'] == 'true') { if (setting['Sprechwunsch-Automatic'] == 'true') {
return self.ADisDB.ADisSprechwunsch.where({ return self.ADisDB.ADisSprechwunsch.where({
done: 'false' done: 'false'
@@ -17253,40 +17268,55 @@ class AutomaticDispose {
} }
}).then((Wunsch) => { }).then((Wunsch) => {
if (Wunsch !== undefined) { if (Wunsch !== undefined) {
Wunsch.each((myWunsch) => { Wunsch.each(async (myWunsch) => {
let VehicleID = myWunsch.vehicleID; let VehicleID = myWunsch.vehicleID;
self.UpdateRescueSprechwunschToDone(VehicleID).then(() => { await self.UpdateRescueSprechwunschToDone(VehicleID).then(() => {
if ($("#adis-sprechwunsch-rescue-frame").attr("vehicle_id") == "empty") { 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("src", "https://www.leitstellenspiel.de/vehicles/" + VehicleID);
$("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", VehicleID); $("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", VehicleID);
self.RescueVehicleFrameWatchDog = setTimeout(async function () { self.RescueVehicleFrameWatchDog = setTimeout(async function () {
const self = this; let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
self.RemoveRescueSprechwunschFromQueue(VehicleID).then((deleteCount) => { self.RemoveRescueSprechwunschFromQueue(VehicleID).then((deleteCount) => {
$("#adis-sprechwunsch-rescue-frame").attr("src", ""); $("#adis-sprechwunsch-rescue-frame").attr("src", "");
$("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", "empty"); $("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", "empty");
}); });
});
}.bind(self), 1500); }.bind(self), 1500);
} }
}); });
}); });
} }
}); })
}).catch((err) => {
console.error(err)
})
} }
AddRescueSprechwunschToQueue(WunschID) { AddRescueSprechwunschToQueue(WunschID) {
return this.ADisDB.ADisSprechwunsch.put({ let self = this
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADisDB.ADisSprechwunsch.put({
vehicleID: WunschID, vehicleID: WunschID,
done: 'false' done: 'false'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
UpdateRescueSprechwunschToDone(WunschID) { UpdateRescueSprechwunschToDone(WunschID) {
return this.ADisDB.ADisSprechwunsch.put({ let self = this
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADisDB.ADisSprechwunsch.put({
vehicleID: WunschID, vehicleID: WunschID,
done: 'true' done: 'true'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
@@ -17376,7 +17406,7 @@ class AutomaticDispose {
}); });
self.Hospitals.reverse(); self.Hospitals.reverse();
this.Send_Vehicle_To_Hospital() self.Send_Vehicle_To_Hospital()
} }
// Krankenhaus einlieferung // Krankenhaus einlieferung
@@ -17397,7 +17427,8 @@ class AutomaticDispose {
CollectPoliceSprechwuensche() { CollectPoliceSprechwuensche() {
let self = this; let self = this;
new Promise(async (resolve, reject) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
await new Promise(async (resolve, reject) => {
await self.ADisDB.ADisSprechwunschPolice.where({ await self.ADisDB.ADisSprechwunschPolice.where({
done: 'false' done: 'false'
}).each((myWunsch) => { }).each((myWunsch) => {
@@ -17409,14 +17440,14 @@ class AutomaticDispose {
return resolve(); return resolve();
}).then(() => { }).then(() => {
var MOIODOS = $('div#mission_list div.missionSideBarEntry:visible'); var MOIODOS = $('div#mission_list div.missionSideBarEntry:visible');
return MOIODOS.each((_, elem) => { return MOIODOS.each(async (_, elem) => {
if ($(elem).text().match(/Gefangene sollen abtransportiert werden/g)) { if ($(elem).text().match(/Gefangene sollen abtransportiert werden/g)) {
var MissionID = $(elem).attr("mission_id"); var MissionID = $(elem).attr("mission_id");
self.AddPoliceSprechwunschToQueue(MissionID); await self.AddPoliceSprechwunschToQueue(MissionID);
} }
}); });
}).then(() => { }).then(() => {
$("#building_list").find(".building_list_vehicle_element").each((_, elem) => { $("#building_list").find(".building_list_vehicle_element").each(async (_, elem) => {
var VehicleStatus = $(elem).find(".building_list_fms").text(); var VehicleStatus = $(elem).find(".building_list_fms").text();
var VehicleType = Number(parseInt($(elem).find("a").attr("vehicle_type_id"))); var VehicleType = Number(parseInt($(elem).find("a").attr("vehicle_type_id")));
var VehicleID = $(elem).attr("vehicle_id"); var VehicleID = $(elem).attr("vehicle_id");
@@ -17426,17 +17457,21 @@ class AutomaticDispose {
var _meap = String(map2.attr('href')); var _meap = String(map2.attr('href'));
var MissionID = _meap.substr(_meap.lastIndexOf("/") + 1); var MissionID = _meap.substr(_meap.lastIndexOf("/") + 1);
if (MissionID) { if (MissionID) {
self.AddPoliceSprechwunschToQueue(MissionID); await self.AddPoliceSprechwunschToQueue(MissionID);
} }
} }
} }
}); });
}); })
}).catch((err) => {
console.error(err)
})
} }
OpenNextPoliceSprechwunsch() { OpenNextPoliceSprechwunsch() {
let self = this; let self = this;
this.ADSettings().then((setting) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADSettings().then((setting) => {
if (setting['Sprechwunsch-Automatic'] == 'true') { if (setting['Sprechwunsch-Automatic'] == 'true') {
return self.ADisDB.ADisSprechwunschPolice.where({ return self.ADisDB.ADisSprechwunschPolice.where({
done: 'false' done: 'false'
@@ -17444,39 +17479,54 @@ class AutomaticDispose {
} }
}).then((Wunsch) => { }).then((Wunsch) => {
if (Wunsch !== undefined) { if (Wunsch !== undefined) {
Wunsch.each((myWunsch) => { Wunsch.each(async (myWunsch) => {
let MissionID = myWunsch.missionID; let MissionID = myWunsch.missionID;
self.UpdatePoliceSprechwunschToDone(MissionID).then(() => { await self.UpdatePoliceSprechwunschToDone(MissionID).then(() => {
if ($("#adis-sprechwunsch-police-frame").attr("mission_id") == "empty") { 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("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-sprechwunsch-police-frame").attr("mission_id", MissionID); $("#adis-sprechwunsch-police-frame").attr("mission_id", MissionID);
self.PoliceVehicleFrameWatchDog = setTimeout(async function (MissionID) { self.PoliceVehicleFrameWatchDog = setTimeout(async function (MissionID) {
const self = this; let self = this;
self.RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
await self.RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => {
$("#adis-sprechwunsch-police-frame").attr("src", ""); $("#adis-sprechwunsch-police-frame").attr("src", "");
$("#adis-sprechwunsch-police-frame").attr("mission_id", "empty"); $("#adis-sprechwunsch-police-frame").attr("mission_id", "empty");
}); });
});
}.bind(self), 1500, MissionID); }.bind(self), 1500, MissionID);
} }
}); });
}); });
} }
}); })
}).catch((err) => {
console.error(err)
})
} }
AddPoliceSprechwunschToQueue(WunschID) { AddPoliceSprechwunschToQueue(WunschID) {
return this.ADisDB.ADisSprechwunschPolice.put({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADisDB.ADisSprechwunschPolice.put({
missionID: WunschID, missionID: WunschID,
done: 'false' done: 'false'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
UpdatePoliceSprechwunschToDone(WunschID) { UpdatePoliceSprechwunschToDone(WunschID) {
return this.ADisDB.ADisSprechwunschPolice.add({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADisDB.ADisSprechwunschPolice.put({
missionID: WunschID, missionID: WunschID,
done: 'true' done: 'true'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
@@ -17640,7 +17690,7 @@ class AutomaticDispose {
self.Jails.reverse(); self.Jails.reverse();
if (self.Jails.length > 0) { if (self.Jails.length > 0) {
this.Send_Vehicle_To_Jail() self.Send_Vehicle_To_Jail()
} else { } else {
$("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each((_, elem) => { $("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each((_, elem) => {
var CalledVehicleID = parseInt($(elem).find("a").first().attr("vehicle_type_id")); var CalledVehicleID = parseInt($(elem).find("a").first().attr("vehicle_type_id"));
@@ -18085,11 +18135,14 @@ class AutomaticDispose {
} }
AddAvailableMissions(Mission) { AddAvailableMissions(Mission) {
return this.ADisDB.ADisAvailabelMissions.put({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisAvailabelMissions], async () => {
return self.ADisDB.ADisAvailabelMissions.put({
missionID: Mission.id, missionID: Mission.id,
type: Mission.type, type: Mission.type,
name: Mission.name, name: Mission.name,
jsondata: Mission jsondata: Mission
})
}).catch((err) => { }).catch((err) => {
console.error(err) console.error(err)
}) })
@@ -18131,9 +18184,8 @@ class AutomaticDispose {
ReadAndAddMissions(MissionID, Runner) { ReadAndAddMissions(MissionID, Runner) {
const self = this; const self = this;
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], () => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], async () => {
return self.ADSettings().then(async () => {
self.ADSettings().then(() => {
return self.ADisDB.ADisMissions.toCollection() return self.ADisDB.ADisMissions.toCollection()
}).then((Missions) => { }).then((Missions) => {
if (typeof Missions !== "undefined") { if (typeof Missions !== "undefined") {
@@ -18144,7 +18196,7 @@ class AutomaticDispose {
if (MissionElement.length == 0 || $('#mission_panel_' + MyMission.missionID).hasClass('mission_panel_green')) { if (MissionElement.length == 0 || $('#mission_panel_' + MyMission.missionID).hasClass('mission_panel_green')) {
// remove // remove
console.log("Remove :", MyMission) console.log("Remove :", MyMission)
self.RemoveMissionsFromQueue(MyMission.missionID) return self.RemoveMissionsFromQueue(MyMission.missionID)
} }
}); });
} }
@@ -18162,8 +18214,10 @@ class AutomaticDispose {
}); });
}) })
} }
}); })
}); }).catch((err) => {
console.error(err)
});;
} }
AddMission(ID, Runner) { AddMission(ID, Runner) {
@@ -18172,7 +18226,7 @@ class AutomaticDispose {
const runnerID = self.ADisSettings.runner_divs.indexOf(Runner); const runnerID = self.ADisSettings.runner_divs.indexOf(Runner);
const settingOpt = self.ADisSettings.runner_settings[runnerID]; const settingOpt = self.ADisSettings.runner_settings[runnerID];
const runnerOpt = self.ADisSettings.runner[runnerID]; const runnerOpt = self.ADisSettings.runner[runnerID];
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], async () => {
return self.ADSettings().then((setting) => { return self.ADSettings().then((setting) => {
if (setting[settingOpt] == 'true') { if (setting[settingOpt] == 'true') {
let where = { let where = {
@@ -18224,7 +18278,7 @@ class AutomaticDispose {
var MissionName = addr[0]; var MissionName = addr[0];
var MissionStreet = addr[1]; var MissionStreet = addr[1];
var MissionVillage = addr[2]; var MissionVillage = addr[2];
console.log('update mission', _MissionID, MissionType, _MissionType) console.log('update mission', MissionID)
return self.ADisDB.ADisAvailabelMissions.get({ return self.ADisDB.ADisAvailabelMissions.get({
type: _MissionType type: _MissionType
}).then((available) => { }).then((available) => {
@@ -18273,21 +18327,30 @@ class AutomaticDispose {
} }
}); });
}); });
});
} }
AddMissionsToQueue(Mission) { AddMissionsToQueue(Mission) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.put(Mission).catch((err) => { return self.ADisDB.ADisMissions.put(Mission).catch((err) => {
console.error(err) console.error(err)
}); });
}).catch((err) => {
console.error(err)
});
} }
UpdateMissions(Mission) { UpdateMissions(Mission) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.put(Mission).catch((err) => { return self.ADisDB.ADisMissions.put(Mission).catch((err) => {
console.error(err) console.error(err)
}) });
}).catch((err) => {
console.error(err)
});
} }
FreeIframe(Runner) { FreeIframe(Runner) {
@@ -18301,9 +18364,11 @@ class AutomaticDispose {
UpdateMissionsToDone(MissionID) { UpdateMissionsToDone(MissionID) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.update(MissionID, { return self.ADisDB.ADisMissions.update(MissionID, {
last_check: Math.floor(new Date().getTime() / 1000), last_check: Math.floor(new Date().getTime() / 1000),
next_check: Math.floor(new Date().getTime() / 1000) + 120 next_check: Math.floor(new Date().getTime() / 1000) + 120
})
}).catch((err) => { }).catch((err) => {
console.error(err) console.error(err)
}) })
@@ -18311,9 +18376,11 @@ class AutomaticDispose {
RemoveMissionsFromQueue(MissionID) { RemoveMissionsFromQueue(MissionID) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.where({ return self.ADisDB.ADisMissions.where({
missionID: MissionID missionID: MissionID
}).delete().catch((err) => { }).delete()
}).catch((err) => {
console.error(err) console.error(err)
}) })
} }
@@ -18333,10 +18400,10 @@ class AutomaticDispose {
// runnerIframe:runnerIframe // runnerIframe:runnerIframe
// }) // })
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], () => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], async () => {
self.ADSettings().then((setting) => { return await self.ADSettings().then(async (setting) => {
if (setting[runnerSettings] == 'true') { if (setting[runnerSettings] == 'true') {
return self.ADisDB.ADisMissions.where({ return await self.ADisDB.ADisMissions.where({
runner: Runner, runner: Runner,
available: 'true', available: 'true',
done: 'false' done: 'false'
@@ -18344,6 +18411,7 @@ class AutomaticDispose {
return item.next_check <= Math.floor(new Date().getTime() / 1000) return item.next_check <= Math.floor(new Date().getTime() / 1000)
}).limit(1) }).limit(1)
} }
})
}).then((Wunsch) => { }).then((Wunsch) => {
// console.table(Wunsch); // console.table(Wunsch);
if (Wunsch !== undefined) { if (Wunsch !== undefined) {
@@ -18368,12 +18436,13 @@ class AutomaticDispose {
} }
}); });
} else { } else {
return setTimeout(self.OpenNextMission.bind(self), 1000, Runner); return setTimeout(Dexie.ignoreTransaction(function () {self.OpenNextMission.bind(self, Runner)}), 1000);
} }
}); });
} }
return setTimeout(self.OpenNextMission.bind(self), 1000, Runner); return setTimeout(Dexie.ignoreTransaction(function () {self.OpenNextMission.bind(self, Runner)}), 1000);
}); }).catch((err) => {
console.error(err)
}); });
} }
@@ -18391,7 +18460,7 @@ class AutomaticDispose {
const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name); const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name);
self.MyRunner = self.ADisSettings.runner[runnerID]; self.MyRunner = self.ADisSettings.runner[runnerID];
self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID]; self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID];
setTimeout(function () {
self.MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1); self.MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1);
var help_el = $('a#mission_help'); var help_el = $('a#mission_help');
if (help_el.length > 0) { if (help_el.length > 0) {
@@ -18414,8 +18483,8 @@ class AutomaticDispose {
// return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed // return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed
// }) // })
// } else { // } else {
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions], () => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, ], async () => {
self.ADSettings().then((setting) => { return self.ADSettings().then(async (setting) => {
if (setting[self.MyRunnerSettings] === 'true') { if (setting[self.MyRunnerSettings] === 'true') {
let where = { let where = {
@@ -18448,31 +18517,41 @@ class AutomaticDispose {
}) })
} }
}) })
}).catch((err) => {
console.error(err)
}) })
// } // }
}, 500);
} }
MainHandler() { MainHandler() {
const self = this; const self = this;
if (self.MissionType == null || self.includesString($('#iframe-inside-container > div.missionNotFound > div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) { if (self.includesString($('div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) {
tellParent(`console.log('DONE: ${self.MissionID}');`);
console.log("DONE!");
console.log("DONE: ", self.MissionID);
return self.RemoveMissionsFromQueue(self.MissionID).then(() => { return self.RemoveMissionsFromQueue(self.MissionID).then(() => {
return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed
}) })
} else if (self.includesString($('#iframe-inside-container > div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert") ) {
const m = $('#iframe-inside-container > div.alert.fade.in.alert-success').text() } else if (self.includesString($('#iframe-inside-container div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert")) {
tellParent(`console.log('SEND: ${self.MissionID}', '${m}');`);
console.log("SEND");
console.log("SEND: ", self.MissionID);
return self.UpdateMissionsToDone(self.MissionID).then(() => { return self.UpdateMissionsToDone(self.MissionID).then(() => {
return tellParent(`console.log('handler:2000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full return tellParent(`console.log('handler:2000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
}); });
} else { } else {
if (['adis-ownmissions', 'adis-plannedevents', 'adis-krankentransporte'].indexOf(window.name) != -1) { if (['adis-ownmissions', 'adis-plannedevents', 'adis-krankentransporte'].indexOf(window.name) != -1) {
console.log("WILL SEND?") console.log("WILL SEND?")
self.CheckMissionAutomatic(); return self.CheckMissionAutomatic();
} else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) { } else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) {
self.WorkVerbandMission(); return self.WorkVerbandMission();
} }
} }
} }
@@ -18484,6 +18563,9 @@ class AutomaticDispose {
WorkVerbandMission() { WorkVerbandMission() {
const self = this; const self = this;
const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name);
self.MyRunner = self.ADisSettings.runner[runnerID];
self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID];
self.ADSettings().then((setting) => { self.ADSettings().then((setting) => {
var title = document.getElementById('missionH1'); var title = document.getElementById('missionH1');
var isVerband = title.innerText.toLowerCase().includes("[verband]"); var isVerband = title.innerText.toLowerCase().includes("[verband]");
@@ -18541,15 +18623,14 @@ class AutomaticDispose {
CheckMissionAutomatic() { CheckMissionAutomatic() {
const self = this; const self = this;
var setOpt;
if (window.name == 'adis-ownmissions' || window.name == 'adis-plannedevents') { const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name);
setOpt = 'MissionsOwn-Automatic'; self.MyRunner = self.ADisSettings.runner[runnerID];
} else if (window.name == 'adis-krankentransporte') { self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID];
setOpt = 'Krankentransport-Automatic'; if (self.MyRunnerSettings && self.MyRunner) {
} console.log("debug 1");
if (setOpt && self.MyRunner) {
self.ADSettings().then((setting) => { self.ADSettings().then((setting) => {
if (setting[setOpt] == 'true') { if (setting[self.MyRunnerSettings] === 'true') {
let where = { let where = {
missionID: self.MissionID, missionID: self.MissionID,
runner: self.MyRunner, runner: self.MyRunner,
@@ -18564,14 +18645,21 @@ class AutomaticDispose {
return coll.limit(1).toArray() return coll.limit(1).toArray()
} }
}).then((Missions) => { }).then((Missions) => {
console.log("debug 2", Missions);
if (Missions.length > 0) { if (Missions.length > 0) {
var Mission = Missions[0]; var Mission = Missions[0];
if (self.MyRunner == 'os') { if (self.MyRunner == 'os') {
self.OweSecure = true; self.OweSecure = true;
} }
self.GetMissionConfiguration(Mission.type); self.GetMissionConfiguration(Mission.type);
} else {
tellParent(`console.log('config:1000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
} }
}).catch((err) => {
console.error(err)
}); });
} else {
tellParent(`console.log('config:2000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
} }
} }
@@ -18579,10 +18667,14 @@ class AutomaticDispose {
GetMissionConfiguration(MissionType) { GetMissionConfiguration(MissionType) {
const self = this; const self = this;
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], () => { console.log("debug 3")
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], function () {
console.log("debug 3", MissionType, MissionType.toString())
return self.ADisDB.ADisAvailabelMissions.get({ return self.ADisDB.ADisAvailabelMissions.get({
type: MissionType.toString() type: MissionType.toString()
})
}).then((availableMission) => { }).then((availableMission) => {
console.log("debug 3", availableMission)
if (availableMission != undefined && availableMission.jsondata) { if (availableMission != undefined && availableMission.jsondata) {
self.MissionConfig = availableMission.jsondata; self.MissionConfig = availableMission.jsondata;
// console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2)) // console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2))
@@ -18592,18 +18684,19 @@ class AutomaticDispose {
available: false, available: false,
next_check: CurrentTime + 60 next_check: CurrentTime + 60
}; };
self.UpdateOwnMissionsToDone(self.MissionID, updateData); self.UpdateMissionsToDone(self.MissionID);
tellParent(`console.log('config:3000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
} }
}); }).catch((err) => {
}); console.error(err)
});;
} }
StartAlarmProcess() { StartAlarmProcess() {
const self = this; const self = this;
const alarming = function alarming() {
const self = this;
Promise.resolve().then(async () => { Promise.resolve().then(async () => {
return await self.PrepareVehicleNeedList(); return await self.PrepareVehicleNeedList();
}).then(async () => { }).then(async () => {
@@ -18653,42 +18746,25 @@ class AutomaticDispose {
// console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').length, $('#vehicle_show_table_all input[type="checkbox"]:checked')); // console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').length, $('#vehicle_show_table_all input[type="checkbox"]:checked'));
// console.log("WILL KLICK SEND") // console.log("WILL KLICK SEND")
setTimeout(function () { setTimeout(() => {
self.UpdateMissionsToDone(self.MissionID).then(() => { self.UpdateMissionsToDone(self.MissionID).then(() => {
if ($('#vehicle_show_table_all tr input[type="checkbox"]:checked').length > 0) {
tellParent(`console.log('ok:${window.name}:${self.MissionID}');`); tellParent(`console.log('ok:${window.name}:${self.MissionID}');`);
window.$('#mission_alarm_btn').click(); window.$('#mission_alarm_btn').click();
});
}.bind(self), 250);
})
};
var $div = $("#mission-form > div:nth-child(7) > a");
var isShow = $div.is(':hidden');
//console.log($div, isShow);
if ($div.length && isShow) {
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName === "style") {
setTimeout(function () {
alarming()
}.bind(self), 500);
}
});
});
observer.observe($div[0], {
attributes: true
});
$div.click();
} else { } else {
setTimeout(function () { tellParent(`window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`);
const self = this;
alarming().bind(self)
}.bind(self), 250);
} }
});
}, 250);
}).catch((err) => {
console.error(err)
})
} }
@@ -19640,5 +19716,28 @@ class AutomaticDispose {
} }
} }
$(document).ready(function () {
var $div = $("a:contains('Fahrzeuganzeige begrenzt! Fehlende Fahrzeuge laden!')");
var isShow = $div.is(':hidden');
//console.log($div, isShow);
if ($div.length && isShow && 1 == 0) {
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName === "style") {
setTimeout(function () {
window.AutomaticDisposeCall = new AutomaticDispose(); window.AutomaticDisposeCall = new AutomaticDispose();
}, 1500);
}
});
});
observer.observe($div[0], {
attributes: true
});
$div.click();
} else {
setTimeout(function () {
window.AutomaticDisposeCall = new AutomaticDispose();
}, 500);
}
});
+220 -121
View File
@@ -4,11 +4,12 @@ class AutomaticDispose {
// Variablen // Variablen
get ADisSettings() { get ADisSettings() {
let self = this
return { return {
url: "https://jf.git.rest/Jomaar/automatic-dispose/raw/branch/", url: "https://jf.git.rest/Jomaar/automatic-dispose/raw/branch/",
branch: "master", branch: "master",
all_missions: /***ADis_AllMissions***/ 0, all_missions: /***ADis_AllMissions***/ 0,
name: this.name, name: self.name,
runner: ['kt', 'om', 'os', 'vm', 've'], runner: ['kt', 'om', 'os', 'vm', 've'],
runner_divs: ['mission_list_krankentransporte', 'mission_list', /*'mission_list_sicherheitswache',*/ 'mission_list_alliance', 'mission_list_alliance_event'], runner_divs: ['mission_list_krankentransporte', 'mission_list', /*'mission_list_sicherheitswache',*/ 'mission_list_alliance', 'mission_list_alliance_event'],
runner_settings: ['Krankentransport-Automatic', 'MissionsOwn-Automatic', /*'MissionsOwn-Automatic',*/ 'Alliance-Automatic', 'AllianceEvent-Automatic'], runner_settings: ['Krankentransport-Automatic', 'MissionsOwn-Automatic', /*'MissionsOwn-Automatic',*/ 'Alliance-Automatic', 'AllianceEvent-Automatic'],
@@ -31,20 +32,20 @@ class AutomaticDispose {
self.Vehicles = {} self.Vehicles = {}
self.Patients = {} self.Patients = {}
this.ADis_MyHead = document.getElementsByTagName('head')[0]; self.ADis_MyHead = document.getElementsByTagName('head')[0];
this.ADis_MyBody = document.getElementsByTagName('body')[0]; self.ADis_MyBody = document.getElementsByTagName('body')[0];
// - // -
// - Sprechwunsch Variablen // - Sprechwunsch Variablen
// - // -
this.Jails = []; self.Jails = [];
this.JailRegEx = /\(Freie Zellen\:\s+(\d)\,\s+Entfernung\:\s+(\d+\,\d+)\s+km(?:\,\s+Abgabe an Besitzer\:\s+(\d+)%)?\)/g; self.JailRegEx = /\(Freie Zellen\:\s+(\d)\,\s+Entfernung\:\s+(\d+\,\d+)\s+km(?:\,\s+Abgabe an Besitzer\:\s+(\d+)%)?\)/g;
this.Hospitals = []; self.Hospitals = [];
this.RescueVehicleFrameWatchDog = null; self.RescueVehicleFrameWatchDog = null;
this.PoliceVehicleFrameWatchDog = null; self.PoliceVehicleFrameWatchDog = null;
this.ADisDB = new Dexie('LSS_AutomaticDispo'); self.ADisDB = new Dexie('LSS_AutomaticDispo');
this.ADisDB.version(1).stores({ self.ADisDB.version(1).stores({
/** /**
* AvailabelMissions * AvailabelMissions
* - missionID * - missionID
@@ -89,7 +90,7 @@ class AutomaticDispose {
*/ */
ADisMissions: "++missionID,runner,available,done,[missionID+available+done],[missionID+runner],[missionID+runner+done],[runner+available+done]" ADisMissions: "++missionID,runner,available,done,[missionID+available+done],[missionID+runner],[missionID+runner+done],[runner+available+done]"
}); });
this.ADisDB.on("populate", () => { self.ADisDB.on("populate", () => {
self.ADisDB.ADisSettings.add({ self.ADisDB.ADisSettings.add({
name: "Krankentransport-Automatic", name: "Krankentransport-Automatic",
value: 'true' value: 'true'
@@ -111,10 +112,10 @@ class AutomaticDispose {
value: 'false' value: 'false'
}); });
}); });
this.ADisDB.open().catch((err) => { self.ADisDB.open().catch((err) => {
console.error(err.stack || err); console.error(err.stack || err);
}); });
this.ADisDB.on("ready", async () => { self.ADisDB.on("ready", async () => {
self.adis_settings = { self.adis_settings = {
'Krankentransport-Automatic': false, 'Krankentransport-Automatic': false,
'Sprechwunsch-Automatic': false, 'Sprechwunsch-Automatic': false,
@@ -135,11 +136,10 @@ class AutomaticDispose {
setInterval(self.OpenNextPoliceSprechwunsch.bind(self), 5000); setInterval(self.OpenNextPoliceSprechwunsch.bind(self), 5000);
self.CollectPoliceSprechwuensche(); self.CollectPoliceSprechwuensche();
setTimeout(function() { setTimeout(() => {
const self = this;
self.CollectMissions(); self.CollectMissions();
self.ReadAndAddMissions(); self.ReadAndAddMissions();
}.bind(self), 500); }, 500);
self.ADisSettings.runner.forEach((runner) => { self.ADisSettings.runner.forEach((runner) => {
self.OpenNextMission(runner) self.OpenNextMission(runner)
@@ -162,9 +162,7 @@ class AutomaticDispose {
if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') { if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') {
self.Check_Call_Police_Active(); self.Check_Call_Police_Active();
} else if (window.location.pathname.indexOf("/missions/") !== -1 && window.name != 'adis-sprechwunsch-police') { } else if (window.location.pathname.indexOf("/missions/") !== -1 && window.name != 'adis-sprechwunsch-police') {
setTimeout(function(){ self.StartMission();
this.StartMission();
}.bind(self),250)
} }
}); });
@@ -197,14 +195,26 @@ class AutomaticDispose {
// - Sprechwunsch Queue // - Sprechwunsch Queue
// - // -
RemovePoliceSprechwunschFromQueue(WunschID) { RemovePoliceSprechwunschFromQueue(WunschID) {
return this.ADisDB.ADisSprechwunschPolice.where({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADisDB.ADisSprechwunschPolice.where({
missionID: WunschID missionID: WunschID
}).delete(); }).delete();
}).catch((err) => {
console.error(err)
})
} }
RemoveRescueSprechwunschFromQueue(WunschID) { RemoveRescueSprechwunschFromQueue(WunschID) {
return this.ADisDB.ADisSprechwunsch.where({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADisDB.ADisSprechwunsch.where({
vehicleID: WunschID vehicleID: WunschID
}).delete(); }).delete();
}).catch((err) => {
console.error(err)
})
} }
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -215,6 +225,7 @@ class AutomaticDispose {
CollectRescueSprechwuensche() { CollectRescueSprechwuensche() {
let self = this; let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
new Promise(async (resolve, reject) => { new Promise(async (resolve, reject) => {
await self.ADisDB.ADisSprechwunsch.where({ await self.ADisDB.ADisSprechwunsch.where({
done: 'false' done: 'false'
@@ -233,12 +244,16 @@ class AutomaticDispose {
self.AddRescueSprechwunschToQueue(VehicleID); self.AddRescueSprechwunschToQueue(VehicleID);
} }
}); });
}); })
}).catch((err) => {
console.error(err)
})
} }
OpenNextRescueSprechwunsch() { OpenNextRescueSprechwunsch() {
let self = this; let self = this;
this.ADSettings().then((setting) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADSettings().then((setting) => {
if (setting['Sprechwunsch-Automatic'] == 'true') { if (setting['Sprechwunsch-Automatic'] == 'true') {
return self.ADisDB.ADisSprechwunsch.where({ return self.ADisDB.ADisSprechwunsch.where({
done: 'false' done: 'false'
@@ -246,40 +261,55 @@ class AutomaticDispose {
} }
}).then((Wunsch) => { }).then((Wunsch) => {
if (Wunsch !== undefined) { if (Wunsch !== undefined) {
Wunsch.each((myWunsch) => { Wunsch.each(async (myWunsch) => {
let VehicleID = myWunsch.vehicleID; let VehicleID = myWunsch.vehicleID;
self.UpdateRescueSprechwunschToDone(VehicleID).then(() => { await self.UpdateRescueSprechwunschToDone(VehicleID).then(() => {
if ($("#adis-sprechwunsch-rescue-frame").attr("vehicle_id") == "empty") { 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("src", "https://www.leitstellenspiel.de/vehicles/" + VehicleID);
$("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", VehicleID); $("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", VehicleID);
self.RescueVehicleFrameWatchDog = setTimeout(async function () { self.RescueVehicleFrameWatchDog = setTimeout(async function () {
const self = this; let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
self.RemoveRescueSprechwunschFromQueue(VehicleID).then((deleteCount) => { self.RemoveRescueSprechwunschFromQueue(VehicleID).then((deleteCount) => {
$("#adis-sprechwunsch-rescue-frame").attr("src", ""); $("#adis-sprechwunsch-rescue-frame").attr("src", "");
$("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", "empty"); $("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", "empty");
}); });
});
}.bind(self), 1500); }.bind(self), 1500);
} }
}); });
}); });
} }
}); })
}).catch((err) => {
console.error(err)
})
} }
AddRescueSprechwunschToQueue(WunschID) { AddRescueSprechwunschToQueue(WunschID) {
return this.ADisDB.ADisSprechwunsch.put({ let self = this
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADisDB.ADisSprechwunsch.put({
vehicleID: WunschID, vehicleID: WunschID,
done: 'false' done: 'false'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
UpdateRescueSprechwunschToDone(WunschID) { UpdateRescueSprechwunschToDone(WunschID) {
return this.ADisDB.ADisSprechwunsch.put({ let self = this
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunsch], async () => {
return await self.ADisDB.ADisSprechwunsch.put({
vehicleID: WunschID, vehicleID: WunschID,
done: 'true' done: 'true'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
@@ -369,7 +399,7 @@ class AutomaticDispose {
}); });
self.Hospitals.reverse(); self.Hospitals.reverse();
this.Send_Vehicle_To_Hospital() self.Send_Vehicle_To_Hospital()
} }
// Krankenhaus einlieferung // Krankenhaus einlieferung
@@ -390,7 +420,8 @@ class AutomaticDispose {
CollectPoliceSprechwuensche() { CollectPoliceSprechwuensche() {
let self = this; let self = this;
new Promise(async (resolve, reject) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
await new Promise(async (resolve, reject) => {
await self.ADisDB.ADisSprechwunschPolice.where({ await self.ADisDB.ADisSprechwunschPolice.where({
done: 'false' done: 'false'
}).each((myWunsch) => { }).each((myWunsch) => {
@@ -402,14 +433,14 @@ class AutomaticDispose {
return resolve(); return resolve();
}).then(() => { }).then(() => {
var MOIODOS = $('div#mission_list div.missionSideBarEntry:visible'); var MOIODOS = $('div#mission_list div.missionSideBarEntry:visible');
return MOIODOS.each((_, elem) => { return MOIODOS.each(async (_, elem) => {
if ($(elem).text().match(/Gefangene sollen abtransportiert werden/g)) { if ($(elem).text().match(/Gefangene sollen abtransportiert werden/g)) {
var MissionID = $(elem).attr("mission_id"); var MissionID = $(elem).attr("mission_id");
self.AddPoliceSprechwunschToQueue(MissionID); await self.AddPoliceSprechwunschToQueue(MissionID);
} }
}); });
}).then(() => { }).then(() => {
$("#building_list").find(".building_list_vehicle_element").each((_, elem) => { $("#building_list").find(".building_list_vehicle_element").each(async (_, elem) => {
var VehicleStatus = $(elem).find(".building_list_fms").text(); var VehicleStatus = $(elem).find(".building_list_fms").text();
var VehicleType = Number(parseInt($(elem).find("a").attr("vehicle_type_id"))); var VehicleType = Number(parseInt($(elem).find("a").attr("vehicle_type_id")));
var VehicleID = $(elem).attr("vehicle_id"); var VehicleID = $(elem).attr("vehicle_id");
@@ -419,17 +450,21 @@ class AutomaticDispose {
var _meap = String(map2.attr('href')); var _meap = String(map2.attr('href'));
var MissionID = _meap.substr(_meap.lastIndexOf("/") + 1); var MissionID = _meap.substr(_meap.lastIndexOf("/") + 1);
if (MissionID) { if (MissionID) {
self.AddPoliceSprechwunschToQueue(MissionID); await self.AddPoliceSprechwunschToQueue(MissionID);
} }
} }
} }
}); });
}); })
}).catch((err) => {
console.error(err)
})
} }
OpenNextPoliceSprechwunsch() { OpenNextPoliceSprechwunsch() {
let self = this; let self = this;
this.ADSettings().then((setting) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADSettings().then((setting) => {
if (setting['Sprechwunsch-Automatic'] == 'true') { if (setting['Sprechwunsch-Automatic'] == 'true') {
return self.ADisDB.ADisSprechwunschPolice.where({ return self.ADisDB.ADisSprechwunschPolice.where({
done: 'false' done: 'false'
@@ -437,39 +472,54 @@ class AutomaticDispose {
} }
}).then((Wunsch) => { }).then((Wunsch) => {
if (Wunsch !== undefined) { if (Wunsch !== undefined) {
Wunsch.each((myWunsch) => { Wunsch.each(async (myWunsch) => {
let MissionID = myWunsch.missionID; let MissionID = myWunsch.missionID;
self.UpdatePoliceSprechwunschToDone(MissionID).then(() => { await self.UpdatePoliceSprechwunschToDone(MissionID).then(() => {
if ($("#adis-sprechwunsch-police-frame").attr("mission_id") == "empty") { 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("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$("#adis-sprechwunsch-police-frame").attr("mission_id", MissionID); $("#adis-sprechwunsch-police-frame").attr("mission_id", MissionID);
self.PoliceVehicleFrameWatchDog = setTimeout(async function (MissionID) { self.PoliceVehicleFrameWatchDog = setTimeout(async function (MissionID) {
const self = this; let self = this;
self.RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
await self.RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => {
$("#adis-sprechwunsch-police-frame").attr("src", ""); $("#adis-sprechwunsch-police-frame").attr("src", "");
$("#adis-sprechwunsch-police-frame").attr("mission_id", "empty"); $("#adis-sprechwunsch-police-frame").attr("mission_id", "empty");
}); });
});
}.bind(self), 1500, MissionID); }.bind(self), 1500, MissionID);
} }
}); });
}); });
} }
}); })
}).catch((err) => {
console.error(err)
})
} }
AddPoliceSprechwunschToQueue(WunschID) { AddPoliceSprechwunschToQueue(WunschID) {
return this.ADisDB.ADisSprechwunschPolice.put({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADisDB.ADisSprechwunschPolice.put({
missionID: WunschID, missionID: WunschID,
done: 'false' done: 'false'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
UpdatePoliceSprechwunschToDone(WunschID) { UpdatePoliceSprechwunschToDone(WunschID) {
return this.ADisDB.ADisSprechwunschPolice.add({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisSprechwunschPolice], async () => {
return await self.ADisDB.ADisSprechwunschPolice.put({
missionID: WunschID, missionID: WunschID,
done: 'true' done: 'true'
}).catch((err) => {}) })
}).catch((err) => {
console.error(err)
})
} }
@@ -633,7 +683,7 @@ class AutomaticDispose {
self.Jails.reverse(); self.Jails.reverse();
if (self.Jails.length > 0) { if (self.Jails.length > 0) {
this.Send_Vehicle_To_Jail() self.Send_Vehicle_To_Jail()
} else { } else {
$("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each((_, elem) => { $("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each((_, elem) => {
var CalledVehicleID = parseInt($(elem).find("a").first().attr("vehicle_type_id")); var CalledVehicleID = parseInt($(elem).find("a").first().attr("vehicle_type_id"));
@@ -844,11 +894,14 @@ class AutomaticDispose {
} }
AddAvailableMissions(Mission) { AddAvailableMissions(Mission) {
return this.ADisDB.ADisAvailabelMissions.put({ let self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisAvailabelMissions], async () => {
return self.ADisDB.ADisAvailabelMissions.put({
missionID: Mission.id, missionID: Mission.id,
type: Mission.type, type: Mission.type,
name: Mission.name, name: Mission.name,
jsondata: Mission jsondata: Mission
})
}).catch((err) => { }).catch((err) => {
console.error(err) console.error(err)
}) })
@@ -890,9 +943,8 @@ class AutomaticDispose {
ReadAndAddMissions(MissionID, Runner) { ReadAndAddMissions(MissionID, Runner) {
const self = this; const self = this;
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], () => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], async () => {
return self.ADSettings().then(async () => {
self.ADSettings().then(() => {
return self.ADisDB.ADisMissions.toCollection() return self.ADisDB.ADisMissions.toCollection()
}).then((Missions) => { }).then((Missions) => {
if (typeof Missions !== "undefined") { if (typeof Missions !== "undefined") {
@@ -903,7 +955,7 @@ class AutomaticDispose {
if (MissionElement.length == 0 || $('#mission_panel_' + MyMission.missionID).hasClass('mission_panel_green')) { if (MissionElement.length == 0 || $('#mission_panel_' + MyMission.missionID).hasClass('mission_panel_green')) {
// remove // remove
console.log("Remove :", MyMission) console.log("Remove :", MyMission)
self.RemoveMissionsFromQueue(MyMission.missionID) return self.RemoveMissionsFromQueue(MyMission.missionID)
} }
}); });
} }
@@ -921,8 +973,10 @@ class AutomaticDispose {
}); });
}) })
} }
}); })
}); }).catch((err) => {
console.error(err)
});;
} }
AddMission(ID, Runner) { AddMission(ID, Runner) {
@@ -931,7 +985,7 @@ class AutomaticDispose {
const runnerID = self.ADisSettings.runner_divs.indexOf(Runner); const runnerID = self.ADisSettings.runner_divs.indexOf(Runner);
const settingOpt = self.ADisSettings.runner_settings[runnerID]; const settingOpt = self.ADisSettings.runner_settings[runnerID];
const runnerOpt = self.ADisSettings.runner[runnerID]; const runnerOpt = self.ADisSettings.runner[runnerID];
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], async () => {
return self.ADSettings().then((setting) => { return self.ADSettings().then((setting) => {
if (setting[settingOpt] == 'true') { if (setting[settingOpt] == 'true') {
let where = { let where = {
@@ -983,7 +1037,7 @@ class AutomaticDispose {
var MissionName = addr[0]; var MissionName = addr[0];
var MissionStreet = addr[1]; var MissionStreet = addr[1];
var MissionVillage = addr[2]; var MissionVillage = addr[2];
console.log('update mission', _MissionID, MissionType, _MissionType) console.log('update mission', MissionID)
return self.ADisDB.ADisAvailabelMissions.get({ return self.ADisDB.ADisAvailabelMissions.get({
type: _MissionType type: _MissionType
}).then((available) => { }).then((available) => {
@@ -1032,21 +1086,30 @@ class AutomaticDispose {
} }
}); });
}); });
});
} }
AddMissionsToQueue(Mission) { AddMissionsToQueue(Mission) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.put(Mission).catch((err) => { return self.ADisDB.ADisMissions.put(Mission).catch((err) => {
console.error(err) console.error(err)
}); });
}).catch((err) => {
console.error(err)
});
} }
UpdateMissions(Mission) { UpdateMissions(Mission) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.put(Mission).catch((err) => { return self.ADisDB.ADisMissions.put(Mission).catch((err) => {
console.error(err) console.error(err)
}) });
}).catch((err) => {
console.error(err)
});
} }
FreeIframe(Runner) { FreeIframe(Runner) {
@@ -1060,9 +1123,11 @@ class AutomaticDispose {
UpdateMissionsToDone(MissionID) { UpdateMissionsToDone(MissionID) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.update(MissionID, { return self.ADisDB.ADisMissions.update(MissionID, {
last_check: Math.floor(new Date().getTime() / 1000), last_check: Math.floor(new Date().getTime() / 1000),
next_check: Math.floor(new Date().getTime() / 1000) + 120 next_check: Math.floor(new Date().getTime() / 1000) + 120
})
}).catch((err) => { }).catch((err) => {
console.error(err) console.error(err)
}) })
@@ -1070,9 +1135,11 @@ class AutomaticDispose {
RemoveMissionsFromQueue(MissionID) { RemoveMissionsFromQueue(MissionID) {
const self = this; const self = this;
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions], async () => {
return self.ADisDB.ADisMissions.where({ return self.ADisDB.ADisMissions.where({
missionID: MissionID missionID: MissionID
}).delete().catch((err) => { }).delete()
}).catch((err) => {
console.error(err) console.error(err)
}) })
} }
@@ -1092,10 +1159,10 @@ class AutomaticDispose {
// runnerIframe:runnerIframe // runnerIframe:runnerIframe
// }) // })
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], () => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], async () => {
self.ADSettings().then((setting) => { return await self.ADSettings().then(async (setting) => {
if (setting[runnerSettings] == 'true') { if (setting[runnerSettings] == 'true') {
return self.ADisDB.ADisMissions.where({ return await self.ADisDB.ADisMissions.where({
runner: Runner, runner: Runner,
available: 'true', available: 'true',
done: 'false' done: 'false'
@@ -1103,6 +1170,7 @@ class AutomaticDispose {
return item.next_check <= Math.floor(new Date().getTime() / 1000) return item.next_check <= Math.floor(new Date().getTime() / 1000)
}).limit(1) }).limit(1)
} }
})
}).then((Wunsch) => { }).then((Wunsch) => {
// console.table(Wunsch); // console.table(Wunsch);
if (Wunsch !== undefined) { if (Wunsch !== undefined) {
@@ -1127,12 +1195,13 @@ class AutomaticDispose {
} }
}); });
} else { } else {
return setTimeout(self.OpenNextMission.bind(self), 1000, Runner); return setTimeout(Dexie.ignoreTransaction(function () {self.OpenNextMission.bind(self, Runner)}), 1000);
} }
}); });
} }
return setTimeout(self.OpenNextMission.bind(self), 1000, Runner); return setTimeout(Dexie.ignoreTransaction(function () {self.OpenNextMission.bind(self, Runner)}), 1000);
}); }).catch((err) => {
console.error(err)
}); });
} }
@@ -1150,7 +1219,7 @@ class AutomaticDispose {
const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name); const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name);
self.MyRunner = self.ADisSettings.runner[runnerID]; self.MyRunner = self.ADisSettings.runner[runnerID];
self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID]; self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID];
setTimeout(function () {
self.MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1); self.MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1);
var help_el = $('a#mission_help'); var help_el = $('a#mission_help');
if (help_el.length > 0) { if (help_el.length > 0) {
@@ -1173,8 +1242,8 @@ class AutomaticDispose {
// return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed // return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed
// }) // })
// } else { // } else {
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions], () => { return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, ], async () => {
self.ADSettings().then((setting) => { return self.ADSettings().then(async (setting) => {
if (setting[self.MyRunnerSettings] === 'true') { if (setting[self.MyRunnerSettings] === 'true') {
let where = { let where = {
@@ -1207,31 +1276,41 @@ class AutomaticDispose {
}) })
} }
}) })
}).catch((err) => {
console.error(err)
}) })
// } // }
}, 500);
} }
MainHandler() { MainHandler() {
const self = this; const self = this;
if (self.MissionType == null || self.includesString($('#iframe-inside-container > div.missionNotFound > div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) { if (self.includesString($('div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) {
tellParent(`console.log('DONE: ${self.MissionID}');`);
console.log("DONE!");
console.log("DONE: ", self.MissionID);
return self.RemoveMissionsFromQueue(self.MissionID).then(() => { return self.RemoveMissionsFromQueue(self.MissionID).then(() => {
return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed return tellParent(`console.log('handler:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // delete Mission here as completed
}) })
} else if (self.includesString($('#iframe-inside-container > div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert") ) {
const m = $('#iframe-inside-container > div.alert.fade.in.alert-success').text() } else if (self.includesString($('#iframe-inside-container div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert")) {
tellParent(`console.log('SEND: ${self.MissionID}', '${m}');`);
console.log("SEND");
console.log("SEND: ", self.MissionID);
return self.UpdateMissionsToDone(self.MissionID).then(() => { return self.UpdateMissionsToDone(self.MissionID).then(() => {
return tellParent(`console.log('handler:2000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full return tellParent(`console.log('handler:2000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
}); });
} else { } else {
if (['adis-ownmissions', 'adis-plannedevents', 'adis-krankentransporte'].indexOf(window.name) != -1) { if (['adis-ownmissions', 'adis-plannedevents', 'adis-krankentransporte'].indexOf(window.name) != -1) {
console.log("WILL SEND?") console.log("WILL SEND?")
self.CheckMissionAutomatic(); return self.CheckMissionAutomatic();
} else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) { } else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) {
self.WorkVerbandMission(); return self.WorkVerbandMission();
} }
} }
} }
@@ -1243,6 +1322,9 @@ class AutomaticDispose {
WorkVerbandMission() { WorkVerbandMission() {
const self = this; const self = this;
const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name);
self.MyRunner = self.ADisSettings.runner[runnerID];
self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID];
self.ADSettings().then((setting) => { self.ADSettings().then((setting) => {
var title = document.getElementById('missionH1'); var title = document.getElementById('missionH1');
var isVerband = title.innerText.toLowerCase().includes("[verband]"); var isVerband = title.innerText.toLowerCase().includes("[verband]");
@@ -1300,15 +1382,14 @@ class AutomaticDispose {
CheckMissionAutomatic() { CheckMissionAutomatic() {
const self = this; const self = this;
var setOpt;
if (window.name == 'adis-ownmissions' || window.name == 'adis-plannedevents') { const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name);
setOpt = 'MissionsOwn-Automatic'; self.MyRunner = self.ADisSettings.runner[runnerID];
} else if (window.name == 'adis-krankentransporte') { self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID];
setOpt = 'Krankentransport-Automatic'; if (self.MyRunnerSettings && self.MyRunner) {
} console.log("debug 1");
if (setOpt && self.MyRunner) {
self.ADSettings().then((setting) => { self.ADSettings().then((setting) => {
if (setting[setOpt] == 'true') { if (setting[self.MyRunnerSettings] === 'true') {
let where = { let where = {
missionID: self.MissionID, missionID: self.MissionID,
runner: self.MyRunner, runner: self.MyRunner,
@@ -1323,14 +1404,21 @@ class AutomaticDispose {
return coll.limit(1).toArray() return coll.limit(1).toArray()
} }
}).then((Missions) => { }).then((Missions) => {
console.log("debug 2", Missions);
if (Missions.length > 0) { if (Missions.length > 0) {
var Mission = Missions[0]; var Mission = Missions[0];
if (self.MyRunner == 'os') { if (self.MyRunner == 'os') {
self.OweSecure = true; self.OweSecure = true;
} }
self.GetMissionConfiguration(Mission.type); self.GetMissionConfiguration(Mission.type);
} else {
tellParent(`console.log('config:1000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
} }
}).catch((err) => {
console.error(err)
}); });
} else {
tellParent(`console.log('config:2000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
} }
} }
@@ -1338,10 +1426,14 @@ class AutomaticDispose {
GetMissionConfiguration(MissionType) { GetMissionConfiguration(MissionType) {
const self = this; const self = this;
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], () => { console.log("debug 3")
return self.ADisDB.transaction('rw!', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], function () {
console.log("debug 3", MissionType, MissionType.toString())
return self.ADisDB.ADisAvailabelMissions.get({ return self.ADisDB.ADisAvailabelMissions.get({
type: MissionType.toString() type: MissionType.toString()
})
}).then((availableMission) => { }).then((availableMission) => {
console.log("debug 3", availableMission)
if (availableMission != undefined && availableMission.jsondata) { if (availableMission != undefined && availableMission.jsondata) {
self.MissionConfig = availableMission.jsondata; self.MissionConfig = availableMission.jsondata;
// console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2)) // console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2))
@@ -1351,18 +1443,19 @@ class AutomaticDispose {
available: false, available: false,
next_check: CurrentTime + 60 next_check: CurrentTime + 60
}; };
self.UpdateOwnMissionsToDone(self.MissionID, updateData); self.UpdateMissionsToDone(self.MissionID);
tellParent(`console.log('config:3000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
} }
}); }).catch((err) => {
}); console.error(err)
});;
} }
StartAlarmProcess() { StartAlarmProcess() {
const self = this; const self = this;
const alarming = function alarming() {
const self = this;
Promise.resolve().then(async () => { Promise.resolve().then(async () => {
return await self.PrepareVehicleNeedList(); return await self.PrepareVehicleNeedList();
}).then(async () => { }).then(async () => {
@@ -1412,42 +1505,25 @@ class AutomaticDispose {
// console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').length, $('#vehicle_show_table_all input[type="checkbox"]:checked')); // console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').length, $('#vehicle_show_table_all input[type="checkbox"]:checked'));
// console.log("WILL KLICK SEND") // console.log("WILL KLICK SEND")
setTimeout(function () { setTimeout(() => {
self.UpdateMissionsToDone(self.MissionID).then(() => { self.UpdateMissionsToDone(self.MissionID).then(() => {
if ($('#vehicle_show_table_all tr input[type="checkbox"]:checked').length > 0) {
tellParent(`console.log('ok:${window.name}:${self.MissionID}');`); tellParent(`console.log('ok:${window.name}:${self.MissionID}');`);
window.$('#mission_alarm_btn').click(); window.$('#mission_alarm_btn').click();
});
}.bind(self), 250);
})
};
var $div = $("#mission-form > div:nth-child(7) > a");
var isShow = $div.is(':hidden');
//console.log($div, isShow);
if ($div.length && isShow) {
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName === "style") {
setTimeout(function () {
alarming()
}.bind(self), 500);
}
});
});
observer.observe($div[0], {
attributes: true
});
$div.click();
} else { } else {
setTimeout(function () { tellParent(`window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`);
const self = this;
alarming().bind(self)
}.bind(self), 250);
} }
});
}, 250);
}).catch((err) => {
console.error(err)
})
} }
@@ -2399,5 +2475,28 @@ class AutomaticDispose {
} }
} }
$(document).ready(function () {
var $div = $("a:contains('Fahrzeuganzeige begrenzt! Fehlende Fahrzeuge laden!')");
var isShow = $div.is(':hidden');
//console.log($div, isShow);
if ($div.length && isShow && 1 == 0) {
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName === "style") {
setTimeout(function () {
window.AutomaticDisposeCall = new AutomaticDispose(); window.AutomaticDisposeCall = new AutomaticDispose();
}, 1500);
}
});
});
observer.observe($div[0], {
attributes: true
});
$div.click();
} else {
setTimeout(function () {
window.AutomaticDisposeCall = new AutomaticDispose();
}, 500);
}
});