120 lines
4.8 KiB
JavaScript
120 lines
4.8 KiB
JavaScript
$(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);
|
|
} else {
|
|
setTimeout(ADis_OpenNextVerbandEvents, 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, {
|
|
last_check: Math.floor(new Date().getTime() / 1000),
|
|
next_check: Math.floor(new Date().getTime() / 1000) + 300
|
|
}).catch((err) => {console.error(err)})
|
|
}
|
|
|
|
window.ADis_RemoveVerbandEventsFromQueue = function ADis_RemoveVerbandEventsFromQueue(MissionID) {
|
|
return ADisDB.ADisMissionsVerbandEvent.where({
|
|
missionID: MissionID
|
|
}).delete();
|
|
} |