$(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(); }