92 Commits

Author SHA1 Message Date
Jomaar 6b7008e2c7 v2 upaf9 a0f9u 2018-12-17 20:00:28 +01:00
Jomaar 13b2c5b265 v2 8aug98aug98a0ur98qegfji 2018-12-17 19:58:15 +01:00
Jomaar ad2c6bae21 v2 up dua8 2018-12-17 19:52:24 +01:00
Jomaar 94efbc9bad v2 up a9fu0a9uj 2018-12-17 19:42:36 +01:00
Jomaar 1327a4f52b v2 up a9ug90a8ucjoi 2018-12-17 19:41:38 +01:00
Jomaar 700d2b21d9 v2 up a0ugajio 2018-12-17 19:41:14 +01:00
Jomaar a0521d8299 v2 uaigf9aip 2018-12-17 19:37:09 +01:00
Jomaar 6361749e0d v2 ua9gu049guaiojv 2018-12-17 19:33:02 +01:00
Jomaar 729fe6c857 v2 update 2018-12-17 19:30:34 +01:00
Jomaar bbdde391ae vija9ifa09joi 2018-12-17 19:29:10 +01:00
Jomaar d9d2ed799f v2 up maogfa9gu 2018-12-17 19:26:26 +01:00
Jomaar 9ab4be8f1a v2 up 9aif09aug8 2018-12-17 19:21:36 +01:00
Jomaar 443539d9ed v2 uapf9 2018-12-17 19:18:42 +01:00
Jomaar be5a7ff61d v2 uagf89aug09aijo 2018-12-17 19:11:20 +01:00
Jomaar 39fe750cc0 v2 uaf0oa0gi09 2018-12-17 19:11:00 +01:00
Jomaar a266c208c5 v2 93849u89fauf8 2018-12-17 19:08:03 +01:00
Jomaar 1e605b01dd v2 uoau0ag9u0 2018-12-17 19:04:06 +01:00
Jomaar 9cb3c40e90 v2 uo a98fu98 2018-12-17 18:58:20 +01:00
Jomaar b900993fea v2 up 8aug89ajvi 2018-12-17 18:53:22 +01:00
Jomaar 9bf82dee21 v2 89a8z9387z87z 2018-12-17 18:50:30 +01:00
Jomaar 87d19156a3 v2 iaofiua9gio 2018-12-17 18:45:59 +01:00
Jomaar f7886678c4 v2 ia9gaugfi 2018-12-17 18:43:22 +01:00
Jomaar a6ffa303a2 v2 8agzu8augoij 2018-12-17 18:39:50 +01:00
Jomaar d6fbec51db v2 up 8auf8a 2018-12-17 18:38:19 +01:00
Jomaar c05df83bf6 v2 up 909uu89sug 2018-12-17 18:34:40 +01:00
Jomaar a39e55f04a v2 up 9uf0a8uf984uihu 2018-12-17 18:32:45 +01:00
Jomaar a5ab7bd80f v2 up 80ag9uaoi 2018-12-17 18:02:39 +01:00
Jomaar 4a29d9d4d4 v2 up a90gui9u39u4t98hgoi 2018-12-17 17:55:18 +01:00
Jomaar 5435c440ec V2 UP 948018419739 2018-12-17 17:52:09 +01:00
Jomaar 1d1fe5f9f6 v2 up a80gu930joaif 2018-12-17 17:48:24 +01:00
Jomaar c7f627f392 v2 update fix 2018-12-17 17:42:04 +01:00
Jomaar b340b7c73d v2 89ag8au99 2018-12-17 17:39:30 +01:00
Jomaar ed8ace3876 v2 uapg09iv09ajo 2018-12-17 17:38:19 +01:00
Jomaar 120dd7e484 v2 up 9aiug09a3 2018-12-17 17:33:05 +01:00
Jomaar 1947d7180e v2 up a8uf90 2018-12-17 17:23:33 +01:00
Jomaar 60f672bf97 v2 up 9ag098augjo 2018-12-17 17:10:05 +01:00
Jomaar dadca832ce v2 up a9g002joi 2018-12-17 16:42:46 +01:00
Jomaar 43d0da95b2 v2 up a98gu0agifojl 2018-12-17 16:36:32 +01:00
Jomaar 178d847871 v2 up 9g0a903292kjl<f 2018-12-17 15:38:50 +01:00
Jomaar 27f1319162 v2 isaojg9agiß0 2018-12-17 15:37:27 +01:00
Jomaar 8224bd00f3 v2 up 09ai9g0a9ugji 2018-12-17 15:36:15 +01:00
Jomaar 9d3dd45181 v2 up 8d0ua98f 2018-12-17 15:21:41 +01:00
Jomaar c25c4fe5e9 v2 up 9ag09aujvoi 2018-12-17 13:26:08 +01:00
Jomaar 9de498b739 v2 iaf9agjoi 2018-12-17 11:09:22 +01:00
Jomaar b24f0dd1e3 v2 0agi930g9ajiof 2018-12-17 02:38:29 +01:00
Jomaar 166e53bbc8 v2 9af90agßi0va9oijakjdi 2018-12-17 02:32:06 +01:00
Jomaar ae6419f63f v2 92909uagoij 2018-12-17 02:28:02 +01:00
Jomaar 95855b96a6 v2 up u8ua982jiaioi 2018-12-17 02:19:48 +01:00
Jomaar e5c5432e78 v2 up 5910830 2018-12-17 02:08:25 +01:00
Jomaar bc3239e3b2 v2 up a80gu9202u9ua0g9 2018-12-17 02:07:16 +01:00
Jomaar 57c86e788e v2 up a980au98g3 2018-12-17 01:41:09 +01:00
Jomaar d7c8342728 v2 iagf9a0g9aip 2018-12-17 01:00:05 +01:00
Jomaar e9793a7c75 v2 iaüga0 2018-12-17 00:59:36 +01:00
Jomaar 5df1b65598 v2 8agf9a0g 2018-12-17 00:44:55 +01:00
Jomaar c80fe55df9 v2 oag0aßg9 2018-12-17 00:42:03 +01:00
Jomaar d2c54b866f v2 up a90fag09u 2018-12-17 00:39:40 +01:00
Jomaar c4a7390c72 v2 uaß0aßgi0 2018-12-17 00:36:00 +01:00
Jomaar e78337b3be v2 uafihagfpo 2018-12-17 00:32:21 +01:00
Jomaar 3030a230c8 v2 uaßfav9 2018-12-17 00:27:49 +01:00
Jomaar c836b158b4 v2 uafüa0v 2018-12-17 00:25:53 +01:00
Jomaar 00efc5ff9c v2 omaf9 2018-12-17 00:23:53 +01:00
Jomaar 66d44850cf v2 up mafoa 2018-12-15 14:52:56 +01:00
Jomaar fca21d717a v2 up amav0x 2018-12-15 14:51:00 +01:00
Jomaar f705576d9a new Mission 2018-12-14 18:44:40 +01:00
Jomaar de918cf2f8 v2 up amoa9v 2018-12-13 11:06:59 +01:00
Jomaar 1517dbd7f0 v2 up aoc9a9 2018-12-12 22:39:12 +01:00
Jomaar c7d1157a1a update missions 2018-12-11 19:22:03 +01:00
Jomaar f020ae8000 V2 up PJG90a0f mission share 2018-12-05 12:05:49 +01:00
Jomaar f4b04e11da v2 up aog40 2018-12-04 23:54:58 +01:00
Jomaar d8ecc4672e v2 up OFkoapg09 2018-12-04 20:52:12 +01:00
Jomaar 7fd6705513 v2 up dau9u03292 2018-12-04 20:06:20 +01:00
Jomaar bb0db92ef9 v2 up ia90afi09 2018-12-03 21:55:31 +01:00
Jomaar 537f48db96 v2 up a9gfiag missions 2018-12-03 21:41:36 +01:00
Jomaar df13fc3598 v2 up 9301i09<gjpol 2018-12-03 20:27:20 +01:00
Jomaar 1d50a3a2c9 v2 up iaovg9e0pogsagp2 2018-12-03 20:21:27 +01:00
Jomaar a7354d622d v2 up ioago94it0a 2018-12-03 20:20:03 +01:00
Jomaar b9b7e70d87 v2 UP 9af8ua09321 2018-12-03 15:48:34 +01:00
Jomaar 1c53ed7e19 v2 fix send ... 2018-12-03 14:32:41 +01:00
Jomaar 944e3798d4 v2 up gjouth98a0f9ü 2018-12-03 14:27:15 +01:00
Jomaar b12b4c21e1 v2 up 9ugoisgjicpl 2018-12-03 14:23:57 +01:00
Jomaar 2b3782d787 v2 up sort by net open mission 2018-12-03 14:00:10 +01:00
Jomaar ea290015ef v2 up aiogja80a 2018-12-03 12:00:44 +01:00
Jomaar ec01dfbec1 v2 up iaogj9apc 2018-12-03 11:55:49 +01:00
Jomaar 9a2bf77b50 v2 up aijg9aß 2018-12-03 11:52:25 +01:00
Jomaar 00bbae0989 v2 Google 2018-12-03 11:50:38 +01:00
Jomaar 451c3a3568 v2 up aijofa9g0iüp 2018-12-03 11:47:10 +01:00
Jomaar a51f7e4b76 v2 up ia09ig0gp 2018-12-03 11:45:36 +01:00
Jomaar d02114b3f3 v2 up aig9a 2018-12-03 11:41:39 +01:00
Jomaar 87f56daf15 v2 update mission numbers 2018-12-03 11:25:57 +01:00
Jomaar 0a661e44b1 v2 up share missions 2018-12-03 11:22:51 +01:00
Jomaar 7f146d2c41 v2 up share einsätze 2018-12-03 10:58:20 +01:00
Jomaar cf89b1178b v2 maifa0 2018-12-03 09:06:42 +01:00
20 changed files with 3413 additions and 588 deletions
+551 -61
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
File diff suppressed because one or more lines are too long
+552 -62
View File
File diff suppressed because it is too large Load Diff
+886 -259
View File
File diff suppressed because it is too large Load Diff
+11 -3
View File
@@ -131,11 +131,11 @@ function emsDepartment($data)
}
if ($key == "Benötigte GW-San") {
$pd["use_SEG_FULL"] = true;
} elseif ($key == "Benötigte RTW" || ($key == "Wahrscheinlichkeit, dass ein Patient transportiert werden muss" && $value > 40)) {
} elseif ($key == "Benötigte RTW" || $key == "Wahrscheinlichkeit, dass ein Patient transportiert werden muss") {
$pd["use_RTW"] = true;
} elseif ($key == "NEF Anforderungswahrscheinlichkeit" && $value > 40) {
} elseif ($key == "NEF Anforderungswahrscheinlichkeit") {
$pd["use_NEF"] = true;
} elseif ($key == "RTH Anforderungswahrscheinlichkeit" && $value > 30) {
} elseif ($key == "RTH Anforderungswahrscheinlichkeit") {
$pd["use_RTH"] = true;
}
}
@@ -295,6 +295,14 @@ foreach (glob("*.json") as $filename) {
$mission['id'] = $mission_id;
$mission['type'] = $mission_id;
$mission['name'] = $data['Name'];
//$mission['share'] = isset($data['Tritt nur ab dem Datum auf']) ? true : false;
$mission['share'] = false;
if (isset($data['Credits im Durchschnitt']) && intval($data['Credits im Durchschnitt']) >= 7000 && $mission['share'] == false) {
$mission['share'] = true;
}
$fd = fireDepartment($data);
if (array_sum($fd) > 0) {
$mission['fire_department'] = $fd;
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
for i in $(seq 0 421); do
for i in $(seq 421 423); do
curl -s -o "./missions/$i.html" "https://www.leitstellenspiel.de/einsaetze/$i"
html2text -utf8 -style pretty -width 100 -o "./missions/$i.text" "./missions/$i.html"
lynx --dump "./missions/$i.html" > "./missions/$i.txt"
+1 -1
View File
@@ -10,7 +10,7 @@
<title>LEITSTELLENSPIEL.DE - baue deine eigene Leitstelle, in deiner Stadt!</title>
<meta content="authenticity_token" name="csrf-param" />
<meta content="BdGPJqNrxq+PqX5AkGSqL90dMTtC06dmXplZP5exEwk=" name="csrf-token" />
<meta content="TjGsiG+tPyL8SPR51dhx6sasfS4wF1Rh9n4qtzZ+rMw=" name="csrf-token" />
<script src="/assets/application-a789289a71061d030b76a864e1d16075.js" type="text/javascript"></script>
+242
View File
@@ -0,0 +1,242 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>LEITSTELLENSPIEL.DE - baue deine eigene Leitstelle, in deiner Stadt!</title>
<meta content="authenticity_token" name="csrf-param" />
<meta content="hJglNqkHsn0i29Jl1jR6BKjpRCfjK8cVTvRYHW9X3mQ=" name="csrf-token" />
<script src="/assets/application-a789289a71061d030b76a864e1d16075.js" type="text/javascript"></script>
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.1/html5shiv.js" type="text/javascript"></script>
<![endif]-->
<link href="/assets/application-028394b6ea814be350e95b1aa7bb4711.css" media="all" rel="stylesheet" type="text/css" />
<script>
</script>
<script type="text/javascript"> //Set language
I18n.defaultLocale = "de";
I18n.locale = "de";
</script>
</head>
<body class="
">
<script>
$(function(){
tellParent("lightboxAdjust();");
});
</script>
<img src="/images/ajax-loader.gif" class="ajax-loader" id="ajax-loader">
<div class="container-fluid" id="iframe-inside-container">
<ol class="breadcrumb">
<li><a href="/einsaetze">Mögliche Einsätze</a></li>
<li class="active">Sachbeschädigung an PKW</li>
</ol>
<h1>
<img src="/images/caraccident_gruen.png">
<img src="/images/caraccident_gelb.png">
<img src="/images/caraccident_rot.png">
Sachbeschädigung an PKW
</h1>
<div class="row">
<div class="col-md-4">
<table class="table table-striped">
<tr>
<th>Beschreibung</th>
<th>Wert</th>
</tr>
<tbody>
<tr>
<td>
Credits im Durchschnitt
</td>
<td>
400
</td>
</tr>
<tr>
<td>
Vorraussetzung an Polizeiwachen
</td>
<td>
1
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-4">
<table class="table table-striped">
<tr>
<th>Beschreibung</th>
<th>Wert</th>
</tr>
<tbody>
<tr>
<td>
Benötigte Streifenwagen
</td>
<td>
1
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-4">
<table class="table table-striped">
<tr>
<th>Beschreibung</th>
<th>Wert</th>
</tr>
<tbody>
</tbody>
</table>
</div>
</div>
<a href="javascript:history.back()">Zurück</a>
</div>
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '2182797941993258');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=2182797941993258&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
<script>
if(window.top !== window.self) {
}
else
{
$("#iframe-inside-container").css("width", "auto");
$("#iframe-inside-container").css("height", "auto");
}
window.addEventListener("keydown",
function(e){
if (!$("input:text").is(":focus"))
{
if (e.keyCode == 27)
{
tellParent("lightboxClose();");
}
}
},
false);
</script>
</body>
</html>
+1
View File
@@ -0,0 +1 @@
{"Credits im Durchschnitt":"400","Vorraussetzung an Polizeiwachen":"1","Benötigte Streifenwagen":"1","Name":"Sachbeschädigung an PKW"}
+27
View File
@@ -0,0 +1,27 @@
1. Mögliche_Einsätze
2. Sachbeschädigung an PKW
Sachbeschädigung an PKW
Beschreibung Wert
Credits im Durchschnitt 400
Vorraussetzung an Polizeiwachen 1
Beschreibung Wert
Benötigte Streifenwagen1
Beschreibung Wert
Zurück
+22
View File
@@ -0,0 +1,22 @@
[ajax-loader.gif]
1. [1]Mögliche Einsätze
2. Sachbeschädigung an PKW
[caraccident_gruen.png] [caraccident_gelb.png] [caraccident_rot.png]
Sachbeschädigung an PKW
Beschreibung Wert
Credits im Durchschnitt 400
Vorraussetzung an Polizeiwachen 1
Beschreibung Wert
Benötigte Streifenwagen 1
Beschreibung Wert
[2]Zurück
[tr?id=2182797941993258&ev=PageView&noscript=1]
Verweise
1. file:///einsaetze
2. javascript:history.back()
+415
View File
@@ -0,0 +1,415 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>LEITSTELLENSPIEL.DE - baue deine eigene Leitstelle, in deiner Stadt!</title>
<meta content="authenticity_token" name="csrf-param" />
<meta content="A7oqOPApiZ55rSDeWfOI6Tk/D0I8Dd/wMWOGGAJr+xw=" name="csrf-token" />
<script src="/assets/application-a789289a71061d030b76a864e1d16075.js" type="text/javascript"></script>
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.1/html5shiv.js" type="text/javascript"></script>
<![endif]-->
<link href="/assets/application-028394b6ea814be350e95b1aa7bb4711.css" media="all" rel="stylesheet" type="text/css" />
<script>
</script>
<script type="text/javascript"> //Set language
I18n.defaultLocale = "de";
I18n.locale = "de";
</script>
</head>
<body class="
">
<script>
$(function(){
tellParent("lightboxAdjust();");
});
</script>
<img src="/images/ajax-loader.gif" class="ajax-loader" id="ajax-loader">
<div class="container-fluid" id="iframe-inside-container">
<ol class="breadcrumb">
<li><a href="/einsaetze">Mögliche Einsätze</a></li>
<li class="active">Brand in Klassenraum</li>
</ol>
<h1>
<img src="/images/fire_gruen.png">
<img src="/images/fire_gelb.png">
<img src="/images/fire_rot.png">
Brand in Klassenraum
</h1>
<div class="row">
<div class="col-md-4">
<table class="table table-striped">
<tr>
<th>Beschreibung</th>
<th>Wert</th>
</tr>
<tbody>
<tr>
<td>
Credits im Durchschnitt
</td>
<td>
3100
</td>
</tr>
<tr>
<td>
Vorraussetzung an Polizeiwachen
</td>
<td>
3
</td>
</tr>
<tr>
<td>
Vorraussetzung an Feuerwachen
</td>
<td>
11
</td>
</tr>
<tr>
<td>
Vorraussetzung an Rettungswachen
</td>
<td>
10
</td>
</tr>
<tr>
<td>
Ort
</td>
<td>
Schule
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-4">
<table class="table table-striped">
<tr>
<th>Beschreibung</th>
<th>Wert</th>
</tr>
<tbody>
<tr>
<td>
Benötigte Löschfahrzeuge
</td>
<td>
6
</td>
</tr>
<tr>
<td>
Benötigte Drehleitern
</td>
<td>
1
</td>
</tr>
<tr>
<td>
Benötigte Rüstwagen
</td>
<td>
1
</td>
</tr>
<tr>
<td>
Benötigte ELW 1
</td>
<td>
2
</td>
</tr>
<tr>
<td>
Benötigte ELW 2
</td>
<td>
1
</td>
</tr>
<tr>
<td>
Benötigte Streifenwagen
</td>
<td>
3
</td>
</tr>
<tr>
<td>
Benötigte GW L 2 Wasser
</td>
<td>
1
</td>
</tr>
<tr>
<td>
GW-L2-Wasser Anforderungswahrscheinlichkeit
</td>
<td>
10
</td>
</tr>
<tr>
<td>
Benötigte GW-A
</td>
<td>
1
</td>
</tr>
<tr>
<td>
GW-A Anforderungswahrscheinlichkeit
</td>
<td>
5
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-4">
<table class="table table-striped">
<tr>
<th>Beschreibung</th>
<th>Wert</th>
</tr>
<tbody>
<tr>
<td>
Maximale Patientenanzahl
</td>
<td>
20
</td>
</tr>
<tr>
<td>
Wahrscheinlichkeit, dass ein Patient transportiert werden muss
</td>
<td>
50
</td>
</tr>
<tr>
<td>
NEF Anforderungswahrscheinlichkeit
</td>
<td>
10
</td>
</tr>
<tr>
<td>
Fachrichtung für Patienten
</td>
<td>
Allgemeine Innere
</td>
</tr>
</tbody>
</table>
</div>
</div>
<a href="javascript:history.back()">Zurück</a>
</div>
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '2182797941993258');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=2182797941993258&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
<script>
if(window.top !== window.self) {
}
else
{
$("#iframe-inside-container").css("width", "auto");
$("#iframe-inside-container").css("height", "auto");
}
window.addEventListener("keydown",
function(e){
if (!$("input:text").is(":focus"))
{
if (e.keyCode == 27)
{
tellParent("lightboxClose();");
}
}
},
false);
</script>
</body>
</html>
+1
View File
@@ -0,0 +1 @@
{"Credits im Durchschnitt":"3100","Vorraussetzung an Polizeiwachen":"3","Vorraussetzung an Feuerwachen":"11","Vorraussetzung an Rettungswachen":"10","Ort":"Schule","Benötigte Löschfahrzeuge":"6","Benötigte Drehleitern":"1","Benötigte Rüstwagen":"1","Benötigte ELW 1":"2","Benötigte ELW 2":"1","Benötigte Streifenwagen":"3","Benötigte GW L 2 Wasser":"1","GW-L2-Wasser Anforderungswahrscheinlichkeit":"10","Benötigte GW-A":"1","GW-A Anforderungswahrscheinlichkeit":"5","Maximale Patientenanzahl":"20","Wahrscheinlichkeit, dass ein Patient transportiert werden muss":"50","NEF Anforderungswahrscheinlichkeit":"10","Fachrichtung für Patienten":"Allgemeine Innere","Name":"Brand in Klassenraum"}
+43
View File
@@ -0,0 +1,43 @@
1. Mögliche_Einsätze
2. Brand in Klassenraum
Brand in Klassenraum
Beschreibung Wert
Credits im Durchschnitt 3100
Vorraussetzung an Polizeiwachen 3
Vorraussetzung an Feuerwachen 11
Vorraussetzung an Rettungswachen 10
Ort Schule
Beschreibung Wert
Benötigte Löschfahrzeuge 6
Benötigte Drehleitern 1
Benötigte Rüstwagen 1
Benötigte ELW 1 2
Benötigte ELW 2 1
Benötigte Streifenwagen 3
Benötigte GW L 2 Wasser 1
GW-L2-Wasser Anforderungswahrscheinlichkeit 10
Benötigte GW-A 1
GW-A Anforderungswahrscheinlichkeit 5
Beschreibung Wert
Maximale Patientenanzahl 20
Wahrscheinlichkeit, dass ein Patient transportiert werden muss 50
NEF Anforderungswahrscheinlichkeit 10
Fachrichtung für Patienten Allgemeine Innere
Zurück
+37
View File
@@ -0,0 +1,37 @@
[ajax-loader.gif]
1. [1]Mögliche Einsätze
2. Brand in Klassenraum
[fire_gruen.png] [fire_gelb.png] [fire_rot.png] Brand in Klassenraum
Beschreibung Wert
Credits im Durchschnitt 3100
Vorraussetzung an Polizeiwachen 3
Vorraussetzung an Feuerwachen 11
Vorraussetzung an Rettungswachen 10
Ort Schule
Beschreibung Wert
Benötigte Löschfahrzeuge 6
Benötigte Drehleitern 1
Benötigte Rüstwagen 1
Benötigte ELW 1 2
Benötigte ELW 2 1
Benötigte Streifenwagen 3
Benötigte GW L 2 Wasser 1
GW-L2-Wasser Anforderungswahrscheinlichkeit 10
Benötigte GW-A 1
GW-A Anforderungswahrscheinlichkeit 5
Beschreibung Wert
Maximale Patientenanzahl 20
Wahrscheinlichkeit, dass ein Patient transportiert werden muss 50
NEF Anforderungswahrscheinlichkeit 10
Fachrichtung für Patienten Allgemeine Innere
[2]Zurück
[tr?id=2182797941993258&ev=PageView&noscript=1]
Verweise
1. file:///einsaetze
2. javascript:history.back()
+20 -2
View File
@@ -63,7 +63,7 @@ RTW();
//alertFhz(rtw, 1, 'RTW', false);
} else if ([116,276,322,370].indexOf(help) != -1 && !(isVerband)) {
alertFhz(fustw, 4, 'FuStW', false);
} else if ([117,119,145,148,149,150,153,188,189,190,202,209,241,267,269,270,284,285,292,372,418,60,61,62,63,64,65,66,67,68,69,70,71,81,82,85,90].indexOf(help) != -1 && !(isVerband)) {
} else if ([117,119,145,148,149,150,153,188,189,190,202,209,241,267,269,270,284,285,292,372,418,422,60,61,62,63,64,65,66,67,68,69,70,71,81,82,85,90].indexOf(help) != -1 && !(isVerband)) {
alertFhz(fustw, 1, 'FuStW', false);
} else if ([118,151].indexOf(help) != -1 && !(isVerband)) {
alertFhz(fustw, 3, 'FuStW', false);
@@ -1364,7 +1364,25 @@ alertFhz(gwg, 1, 'GW-G', false);
alertFhz(elw2, 1, 'ELW2', false);
alertFhz(dl, 1, 'DL', false);
} else if ([421].indexOf(help) != -1 && !(isVerband)) {
} else if ([43].indexOf(help) != -1 && !(isVerband)) {
alertFhz(ruest, 1, 'RÜST', false);
alertFhz(nef, 1, 'NEF', false);
alertFhz(lf, 3, 'LF', false);
alertFhz(fustw, 2, 'FuStW', false);
alertFhz(elw1, 1, 'ELW1', false);
RTW();
//alertFhz(rtw, 1, 'RTW', false);
} else if ([423].indexOf(help) != -1 && !(isVerband)) {
alertFhz(ruest, 1, 'RÜST', false);
alertFhz(nef, 1, 'NEF', false);
alertFhz(lf, 6, 'LF', false);
alertFhz(gws, 1, 'GW-S', false);
alertFhz(gwa, 1, 'GW-A', false);
alertFhz(fustw, 3, 'FuStW', false);
alertFhz(elw2, 1, 'ELW2', false);
alertFhz(dl, 1, 'DL', false);
RTW();
//alertFhz(rtw, 20, 'RTW', false);
} else if ([43].indexOf(help) != -1 && !(isVerband)) {
alertFhz(ruest, 5, 'RÜST', false);
alertFhz(oel, 2, 'GW-ÖL', false);
alertFhz(lf, 10, 'LF', false);
+1 -1
View File
@@ -1 +1 @@
{"00080":["189"],"00100":["117","119","148","149","153","154","188","284","349","60","61"],"00110":["0","288","37","38","39","40","403","404","410"],"00120":["159","62","63","67","68","69","70","71"],"00130":["78"],"00150":["145","150","160","190","209","267","285","64","65","66"],"00170":["1"],"00200":["241","269","270","318","4","415","85"],"00210":["7"],"00220":["260","8"],"00240":["11"],"00250":["9","90"],"00300":["202","287","292","371","372","375","98"],"00310":["12","191","52"],"00340":["17","3","338"],"00350":["111","277"],"00370":["158","2","259","337","91"],"00400":["143","144","265","266","289","31","402","408","418","81","82","94"],"00500":["216","217","218","219","220","301","336","357","360","361","362","363","364","365","74","77","88"],"00550":["118","366"],"00600":["10","122","130","168","169","170","172","376","383","6"],"00610":["203"],"00650":["19"],"00700":["128","173","18","27","303","329","73"],"00750":["152","199"],"00800":["129","290","421","76"],"00850":["112"],"00870":["55"],"00900":["100","114","161","175","24","263","313","379","380","381","382"],"00980":["13","405","406","409"],"01000":["14","194","195","196","230","244","25","250","261","282","308","309","310","319","370","390"],"01010":["15","344"],"01020":["174","286"],"01100":["123","16","295","311","384"],"01200":["151","166","23","243","245","251","328","33","345"],"01310":["32"],"01400":["162","163","167","246","247","252","253","28","5"],"01410":["53"],"01500":["101","113","138","142","235","264","280","298","300","317","323"],"01600":["116","124","140","272","273","401"],"01700":["125","237","355","356"],"01800":["106","107","321","369","79","84"],"01900":["192","30","314","392"],"02000":["102","104","126","131","193","197","228","236","238","248","254","276","330","72","80"],"02020":["296"],"02100":["176","242"],"02200":["103","105","120","127"],"02230":["187"],"02400":["21"],"02470":["29"],"02500":["121","198","20","240","257","262","278","299","322","342","343","388","413","83","89","97"],"02700":["22","399"],"02800":["258","279","367"],"02900":["178","96"],"03000":["214","239","249","255","331","393","394","395","396","412","414","86","87","93"],"03200":["398"],"03310":["36"],"03500":["139","204","232","327"],"03510":["26"],"03600":["141"],"03620":["51"],"03700":["407"],"03710":["34"],"03720":["42"],"03810":["35"],"04000":["134","171","208","215","224","229","231","234","283","351","358","95"],"04100":["135"],"04200":["146","268"],"04400":["223","315","378"],"04500":["233","353","419"],"04600":["177"],"05000":["132","226","227"],"05050":["400"],"05100":["133","205","385"],"05400":["316"],"05500":["200","386"],"05630":["186"],"05900":["411"],"06000":["302","307","334","335","347"],"06050":["271"],"06500":["304","346","387"],"07000":["225","275","291","325"],"07500":["352","368"],"08000":["136","306"],"08100":["137"],"08500":["389"],"09000":["201","359"],"10000":["324","332","333","348"],"10010":["256","41","43"],"10020":["75"],"10200":["206"],"11200":["213"],"11500":["320"],"12000":["294"],"13000":["305"],"14000":["222"],"14010":["59"],"16010":["207"],"17000":["221","350","99"]}
{"00080":["189"],"00100":["117","119","148","149","153","154","188","284","349","60","61"],"00110":["0","288","37","38","39","40","403","404","410"],"00120":["159","62","63","67","68","69","70","71"],"00130":["78"],"00150":["145","150","160","190","209","267","285","64","65","66"],"00170":["1"],"00200":["241","269","270","318","4","415","85"],"00210":["7"],"00220":["260","8"],"00240":["11"],"00250":["9","90"],"00300":["202","287","292","371","372","375","98"],"00310":["12","191","52"],"00340":["17","3","338"],"00350":["111","277"],"00370":["158","2","259","337","91"],"00400":["143","144","265","266","289","31","402","408","418","422","81","82","94"],"00500":["216","217","218","219","220","301","336","357","360","361","362","363","364","365","74","77","88"],"00550":["118","366"],"00600":["10","122","130","168","169","170","172","376","383","6"],"00610":["203"],"00650":["19"],"00700":["128","173","18","27","303","329","73"],"00750":["152","199"],"00800":["129","290","421","76"],"00850":["112"],"00870":["55"],"00900":["100","114","161","175","24","263","313","379","380","381","382"],"00980":["13","405","406","409"],"01000":["14","194","195","196","230","244","25","250","261","282","308","309","310","319","370","390"],"01010":["15","344"],"01020":["174","286"],"01100":["123","16","295","311","384"],"01200":["151","166","23","243","245","251","328","33","345"],"01310":["32"],"01400":["162","163","167","246","247","252","253","28","5"],"01410":["53"],"01500":["101","113","138","142","235","264","280","298","300","317","323"],"01600":["116","124","140","272","273","401"],"01700":["125","237","355","356"],"01800":["106","107","321","369","79","84"],"01900":["192","30","314","392"],"02000":["102","104","126","131","193","197","228","236","238","248","254","276","330","72","80"],"02020":["296"],"02100":["176","242"],"02200":["103","105","120","127"],"02230":["187"],"02400":["21"],"02470":["29"],"02500":["121","198","20","240","257","262","278","299","322","342","343","388","413","83","89","97"],"02700":["22","399"],"02800":["258","279","367"],"02900":["178","96"],"03000":["214","239","249","255","331","393","394","395","396","412","414","86","87","93"],"03100":["423"],"03200":["398"],"03310":["36"],"03500":["139","204","232","327"],"03510":["26"],"03600":["141"],"03620":["51"],"03700":["407"],"03710":["34"],"03720":["42"],"03810":["35"],"04000":["134","171","208","215","224","229","231","234","283","351","358","95"],"04100":["135"],"04200":["146","268"],"04400":["223","315","378"],"04500":["233","353","419"],"04600":["177"],"05000":["132","226","227"],"05050":["400"],"05100":["133","205","385"],"05400":["316"],"05500":["200","386"],"05630":["186"],"05900":["411"],"06000":["302","307","334","335","347"],"06050":["271"],"06500":["304","346","387"],"07000":["225","275","291","325"],"07500":["352","368"],"08000":["136","306"],"08100":["137"],"08500":["389"],"09000":["201","359"],"10000":["324","332","333","348"],"10010":["256","41","43"],"10020":["75"],"10200":["206"],"11200":["213"],"11500":["320"],"12000":["294"],"13000":["305"],"14000":["222"],"14010":["59"],"16010":["207"],"17000":["221","350","99"]}
+334 -197
View File
@@ -22,6 +22,7 @@ class AutomaticDispose {
self.MaxVehicleID = 86
self.MissionType = null
self.MissionID = null
self.MissionData = null
self.MyRunner = null
self.MyRunnerSettings = null
self.OweSecure = false
@@ -125,7 +126,7 @@ class AutomaticDispose {
await self.genSettings()
setInterval(self.genSettings.bind(self), 1000);
if (window.location.pathname === "/" || window.location.pathname === "/#") {
if (window.location.pathname === "/" || window.location.pathname === "/#" || window.location.pathname === "/#_=_") {
self.GetAvailableMissions()
self.IndexPage()
setInterval(self.CollectRescueSprechwuensche.bind(self), 2500);
@@ -133,15 +134,17 @@ class AutomaticDispose {
self.CollectRescueSprechwuensche();
setInterval(self.CollectPoliceSprechwuensche.bind(self), 2500);
setInterval(self.OpenNextPoliceSprechwunsch.bind(self), 5000);
self.CollectPoliceSprechwuensche();
setTimeout(() => {
self.CollectPoliceSprechwuensche();
self.CollectMissions();
self.ReadAndAddMissions();
}, 500);
self.ADisSettings.runner.forEach((runner) => {
self.OpenNextMission(runner)
if(['kt','om'].indexOf(runner) !== -1) {
self.OpenNextMission(runner)
}
})
}
@@ -473,7 +476,6 @@ class AutomaticDispose {
this.Collect_Jails();
} else {
let MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1);
console.log('Check_Call_Police_Active', MissionID)
this.RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => {
$("#adis-sprechwunsch-police-frame").attr("src", "");
$("#adis-sprechwunsch-police-frame").attr("mission_id", "empty");
@@ -857,6 +859,30 @@ class AutomaticDispose {
CollectMissions() {
const self = this;
self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], async () => {
self.ADSettings().then((setting) => {
return self.ADisDB.ADisMissions.toCollection()
}).then((Missions) => {
if (typeof Missions !== "undefined") {
return Missions.count((count) => {
if (count > 0) {
return Missions.each((MyMission) => {
var MissionElement = $("#mission_" + MyMission.missionID);
if (MissionElement.length == 0 || $('#mission_panel_' + MyMission.missionID).hasClass('mission_panel_green')) {
// remove
console.log("Remove :", MyMission)
self.RemoveMissionsFromQueue(MyMission.missionID)
}
});
}
});
}
});
});
const MyOwnObserver = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
// console.log(mutation.target.id);
@@ -884,11 +910,11 @@ class AutomaticDispose {
ReadAndAddMissions(MissionID, Runner) {
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 () => {
if (typeof MissionID != 'undefined') {
self.AddMission(MissionID, Runner);
await self.AddMission(MissionID, Runner);
} else {
self.ADisSettings.runner_divs.forEach(async (RunnerX, index) => {
await self.ADisSettings.runner_divs.forEach(async (RunnerX, index) => {
await $("#" + RunnerX).find(".missionSideBarEntry").each(async (index, elem) => {
MissionID = $(elem).attr("mission_id");
await self.AddMission(MissionID, RunnerX);
@@ -906,7 +932,6 @@ class AutomaticDispose {
const runnerOpt = self.ADisSettings.runner[runnerID];
return self.ADSettings().then((setting) => {
if (setting[settingOpt] == 'true') {
let where = {
missionID: ID,
@@ -915,78 +940,106 @@ class AutomaticDispose {
return self.ADisDB.ADisMissions.where(where).limit(1)
}
}).then((Missions) => {
if (typeof Missions === "undefined") {
return;
}
return Missions.count((count) => {
if (count > 0) {
return Missions.each(() => {
if (typeof Missions !== "undefined") {
return Missions.count((count) => {
if (count > 0) {
return Missions.each((MyMission) => {
var MissionElement = $("#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];
if (MissionElement.length) {
return self.ADisDB.ADisAvailabelMissions.get({
type: _MissionType
}).then((available) => {
return self.UpdateMissions({
"missionID": MyMission.missionID,
"type": _MissionType,
"runner": MyMission.runner,
"name": MissionName,
"street": MissionStreet,
"village": MissionVillage,
"available": (available !== undefined)?'true':'false',
"done": "false",
"last_check": MyMission.last_check,
"next_check": MyMission.next_check
});
});
}
});
} else {
var MissionElement = $("#mission_" + ID);
var _MissionID = MissionElement.attr("mission_id");
var _MissionType = MissionElement.attr("mission_type_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 self.ADisDB.ADisAvailabelMissions.get({
type: MissionType
}).then((available) => {
return self.AddMissionsToQueue({
"id": _MissionID,
"type": _MissionType,
"runner": runnerOpt,
"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
if (MissionElement.length) {
return self.ADisDB.ADisAvailabelMissions.get({
type: MissionType
}).then((available) => {
return self.UpdateMissions({
"missionID": MissionID,
"type": MissionType,
"runner": runnerOpt,
"name": MissionName,
"street": MissionStreet,
"village": MissionVillage,
"available": (available !== undefined)?'true':'false',
"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 self.ADisDB.ADisAvailabelMissions.get({
type: MissionType
}).then((available) => {
return self.AddMissionsToQueue({
"missionID": MissionID,
"type": MissionType,
"runner": runnerOpt,
"name": MissionName,
"street": MissionStreet,
"village": MissionVillage,
"available": (available !== undefined)?'true':'false',
"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 self.ADisDB.ADisAvailabelMissions.get({
type: MissionType
}).then((available) => {
return self.AddMissionsToQueue({
"id": MissionID,
"type": MissionType,
"runner": runnerOpt,
"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
});
});
}
});
});
}
});
}
AddMissionsToQueue(Mission) {
const self = this;
return self.ADisDB.ADisMissions.put({
missionID: Mission.id,
missionID: Mission.missionID,
type: Mission.type,
runner: Mission.runner,
name: Mission.name,
available: Mission.available ? 'true' : 'false',
done: Mission.done ? 'true' : 'false',
available: Mission.available,
done: Mission.done,
street: Mission.street,
village: Mission.village,
last_check: Mission.last_check,
@@ -1005,6 +1058,7 @@ class AutomaticDispose {
}
FreeIframe(Runner) {
// console.log('FreeIframe', Runner);
const self = this;
const runnerID = self.ADisSettings.runner.indexOf(Runner)
const runnerIframe = self.ADisSettings.runner_iframes[runnerID];
@@ -1044,49 +1098,56 @@ class AutomaticDispose {
// runnerID: runnerID,
// runnerSettings: runnerSettings,
// runnerIframeName: runnerIframeName,
// runnerIframe:runnerIframe
// runnerIframe: runnerIframe
// })
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions, self.ADisDB.ADisAvailabelMissions], () => {
self.ADSettings().then((setting) => {
if (setting[runnerSettings] == 'true') {
return self.ADisDB.ADisMissions.where({
let coll = self.ADisDB.ADisMissions.where({
runner: Runner,
available: 'true',
done: 'false'
}).and(function (item) {
return item.next_check <= Math.floor(new Date().getTime() / 1000)
}).limit(1)
})
//if (self.MyRunner != "kt") {
coll = coll.and(function (item) {
return item.next_check <= Math.floor(new Date().getTime() / 1000)
});
//}
return coll.toArray()
}
}).then((Wunsch) => {
// console.table(Wunsch);
if (Wunsch !== undefined) {
return Wunsch.count(function (count) {
if (count > 0) {
return Wunsch.each((myWunsch) => {
// console.log("MYWUNSCH:")
// console.table(myWunsch);
let MissionID = myWunsch.missionID;
if ($('#' + runnerIframe).attr("mission_id") == "empty") {
$('#' + runnerIframe).attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$('#' + runnerIframe).attr("mission_id", MissionID);
// self.UpdateMissionsToDone(MissionID).then(() => {
// // console.log('done.... ' + Runner);
// $('#' + runnerIframe).attr("src", '');
// $('#' + runnerIframe).attr("mission_id", 'empty');
// setTimeout(self.OpenNextMission.bind(self), 5000, Runner);
// })
} else {
// only while
// setTimeout(self.OpenNextMission.bind(self), 5000, Runner);
}
});
} else {
return setTimeout(self.OpenNextMission.bind(self), 5000, Runner);
}
});
}).then((Wunsche) => {
if (typeof Wunsche === "undefined") {
return setTimeout(self.OpenNextMission.bind(self), 1000, Runner);
}
return setTimeout(self.OpenNextMission.bind(self), 5000, Runner);
Wunsche.sort((a, b) => {
return a.next_check - b.next_check;
});
console.log("TIME:", Math.floor(new Date().getTime() / 1000))
//console.table(Wunsche);
if (Wunsche.length > 0) {
let myWunsch = Wunsche[0];
console.log("MYWUNSCH:")
console.table(myWunsch);
let MissionID = myWunsch.missionID;
if ($('#' + runnerIframe).attr("mission_id") == "empty") {
$('#' + runnerIframe).attr("src", "https://www.leitstellenspiel.de/missions/" + MissionID);
$('#' + runnerIframe).attr("mission_id", MissionID);
// self.UpdateMissionsToDone(MissionID).then(() => {
// // console.log('done.... ' + Runner);
// $('#' + runnerIframe).attr("src", '');
// $('#' + runnerIframe).attr("mission_id", 'empty');
// setTimeout(self.OpenNextMission.bind(self), 5000, Runner);
// })
} else {
// only while
// setTimeout(self.OpenNextMission.bind(self), 5000, Runner);
self.UpdateMissionsToDone(MissionID)
}
}
return setTimeout(self.OpenNextMission.bind(self), 1000, Runner);
});
});
}
@@ -1116,73 +1177,81 @@ class AutomaticDispose {
} else {
self.MissionType = null;
}
console.log("MissionID", self.MissionID);
console.log("MissionType", self.MissionType);
console.log("Window", window.name);
console.log("self.MyRunner", self.MyRunner);
console.log("self.MyRunnerSettings", self.MyRunnerSettings);
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions], () => {
self.ADSettings().then((setting) => {
if (setting[self.MyRunnerSettings] === 'true') {
// console.log("MissionID", self.MissionID);
// console.log("MissionType", self.MissionType);
// console.log("Window", window.name);
// console.log("self.MyRunner", self.MyRunner);
// console.log("self.MyRunnerSettings", self.MyRunnerSettings);
let where = {
missionID: self.MissionID,
runner: self.MyRunner,
done: 'false'
}
console.log(where);
return self.ADisDB.ADisMissions.where(where).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) => {
return self.MainHandler()
});
} else {
return self.RemoveMissionsFromQueue(self.MissionID).then(() => {
return tellParent(`console.log('wunsch:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`);
})
}
});
} else {
return self.RemoveMissionsFromQueue(self.MissionID).then(() => {
return tellParent(`console.log('wunsch:2000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`);
})
}
if (self.includesString($('#iframe-inside-container > div.missionNotFound > div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) {
console.log("DONE: " + self.MissionID);
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
})
})
}, 1500);
} else {
return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissions], () => {
self.ADSettings().then((setting) => {
if (setting[self.MyRunnerSettings] === 'true') {
let where = {
missionID: self.MissionID,
runner: self.MyRunner,
done: 'false'
}
// console.log(where);
return self.ADisDB.ADisMissions.where(where).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) => {
self.MissionData = mywunsch;
return self.UpdateMissionsToDone(self.MissionID).then(() => {
return self.MainHandler()
});
});
} else {
//return self.RemoveMissionsFromQueue(self.MissionID).then(() => {
return self.UpdateMissionsToDone(self.MissionID).then(() => {
return tellParent(`console.log('wunsch:1000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`);
})
//})
}
});
} else {
return self.RemoveMissionsFromQueue(self.MissionID).then(() => {
return tellParent(`console.log('wunsch:2000:done:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`);
})
}
})
})
}
}, 100);
}
MainHandler() {
const self = this;
if (self.includesString($('#iframe-inside-container > div.missionNotFound > div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) {
console.log("DONE!");
console.log("DONE: " + self.MissionID);
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
})
}
if (self.includesString($('#iframe-inside-container > div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert") /*|| $('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0*/ ) {
console.log("SEND");
} else if (self.includesString($('#iframe-inside-container > div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert") /*|| $('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0*/ ) {
console.log("SEND: " + self.MissionID);
return self.UpdateMissionsToDone(self.MissionID).then(() => {
return tellParent(`console.log('handler:2000:update:${window.name}:${self.MissionID}');`); // 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 {
setTimeout(function () {
if (['adis-ownmissions', 'adis-plannedeventss', 'adis-krankentransporte'].indexOf(window.name) != -1) {
console.log("WILL SEND?")
self.CheckMissionAutomatic();
} else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) {
self.WorkVerbandMission();
}
}, 250);
}
}
@@ -1192,12 +1261,15 @@ class AutomaticDispose {
// -
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
WorkVerbandMission() {
WorkVerbandMission(myself) {
if (typeof myself === 'undefined') {
myself = false
}
const self = this;
self.ADSettings().then((setting) => {
return self.ADSettings().then((setting) => {
var title = document.getElementById('missionH1');
var isVerband = title.innerText.toLowerCase().includes("[verband]");
if (setting['Alliance-Automatic'] == 'true' && isVerband) {
if ((setting['Alliance-Automatic'] == 'true' && isVerband) || myself) {
if ([52, 55, 129, 203].indexOf(self.MissionType) !== -1 && $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) {
$('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click();
} else if ([53, 130, 202].indexOf(self.MissionType) !== -1) {
@@ -1236,7 +1308,7 @@ class AutomaticDispose {
}
}
// Todo add alternative cars, please no LF because of Mülltonne....
if ($('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0) {
if ($('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0 && myself == false) {
$('#mission_alarm_btn').click();
}
}
@@ -1279,7 +1351,10 @@ class AutomaticDispose {
if (self.MyRunner == 'os') {
self.OweSecure = true;
}
self.GetMissionConfiguration(self.MyRunner == 'kt' ? 147 : Mission.type);
Mission.done = "true";
self.UpdateMissions(Mission).then(()=>{
self.GetMissionConfiguration(Mission.type);
})
}
});
}
@@ -1293,16 +1368,15 @@ class AutomaticDispose {
return self.ADisDB.ADisAvailabelMissions.get({
type: MissionType.toString()
}).then((availableMission) => {
if (availableMission != undefined && availableMission.jsondata) {
self.MissionConfig = availableMission.jsondata;
console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2))
self.StartAlarmProcess();
} else {
var updateData = {
available: false,
next_check: CurrentTime + 60
};
self.UpdateOwnMissionsToDone(self.MissionID, updateData);
if (availableMission != undefined) {
if (availableMission.jsondata) {
self.MissionConfig = availableMission.jsondata;
// console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2))
self.StartAlarmProcess();
} else {
self.UpdateMissionsToDone(self.MissionID);
return tellParent(`console.log('handler:2000:update:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');`); // update Mission here as updated or full
}
}
});
});
@@ -1312,7 +1386,8 @@ class AutomaticDispose {
StartAlarmProcess() {
const self = this;
setTimeout(function () {
const alarming = function alarming(self) {
Promise.resolve().then(async () => {
return await self.PrepareVehicleNeedList();
}).then(async () => {
@@ -1337,23 +1412,74 @@ class AutomaticDispose {
}).then(() => {
if (self.OweSecure) {
if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]:not(:checked)').size() > 0) {
if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]:not(:checked)').length > 0) {
$('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]:not(:checked)')[0].click();
}
}
console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').size(), $('#vehicle_show_table_all input[type="checkbox"]:checked'));
console.log("WILL KLICK SEND")
setTimeout(() => {
// TODO check cars driving or already there
if (self.MissionConfig.share) {
// console.log('self.MissionConfig.share',self.MissionConfig.share)
const elems = $('#vehicle_show_table_all tr input[type="checkbox"]:checked')
// console.log('elems', elems)
for (let i = 0; i < elems.length; i++) {
if (i === 0) {
continue;
}
$(elems[i]).click();
}
}
self.UpdateMissionsToDone(self.MissionID).then(() => {
tellParent(`setTimeout(function(){console.log('ok:${window.name}:${self.MissionID}');},500);`);
window.$('#mission_alarm_btn').click();
console.log("Clicked Vehicles:"+self.MissionID+":"+self.MissionConfig.type+" ", $('#vehicle_show_table_all input[type="checkbox"]:checked').length, $('#vehicle_show_table_all input[type="checkbox"]:checked'));
console.table(self.MissionData)
self.UpdateMissionsToDone(self.MissionID).then(async () => {
tellParent(`setTimeout(function(){console.log('ok:${window.name}:${self.MissionID}');},2500);`);
//if (window.$("a.btn.btn-success.btn-sm.alert_notify_alliance").length > 0 && self.MissionConfig.share) {
// window.$('input[type=checkbox]').prop('checked', false);
// await self.WorkVerbandMission(true);
// window.$('#allianceShareText').val('Kein RD, die Patiernten gehören mir! Anonsten kann nach 2h geschlossen werden. Danke für die Aufmerksamkeit!')
// window.$("a.btn.btn-success.btn-sm.alert_notify_alliance").click();
//} else {
if ($('#vehicle_show_table_all input[type="checkbox"]:checked').length){
console.log('send now')
window.$('#mission_alarm_btn').click();
tellParent(`setTimeout(function(){console.log('ok:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');},500);`);
} else {
tellParent(`setTimeout(function(){console.log('ok:${window.name}:${self.MissionID}');window.AutomaticDisposeCall.FreeIframe('${self.MyRunner}');},500);`);
}
//}
});
}, 250);
})
}, 500);
}
setTimeout(function () {
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(self)
}, 750);
}
});
});
observer.observe($div[0], {
attributes: true
});
$div.click();
} else {
setTimeout(function () {
alarming(self)
}, 250);
}
}, 150);
}
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -1408,12 +1534,11 @@ class AutomaticDispose {
// Wir benötigen einen RTW oder KTW Typ B.
if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen RTW oder KTW Typ B") != -1) {
PatientNeedSEGKTWB = true;
}
// Wir benötigen einen RTW.
if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTW") != -1) {
PatientNeedRTW = true;
}
} else
// Wir benötigen einen RTW.
if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTW") != -1) {
PatientNeedRTW = true;
}
// Wir benötigen einen NEF.
if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein NEF") != -1) {
@@ -1497,37 +1622,49 @@ class AutomaticDispose {
self._ADisVehiclesNeed["56"] = 1;
}
//$.each(Patients, function (Key, Patient) {
for (var Key in self.Patients) {
var Patient = self.Patients[Key];
if (self.MissionConfig.emergency_medical_service.use_KTW == true) {
if (!Patient.need_RTW && !Patient.need_NEF && !Patient.need_RTH)
self._ADisVehiclesNeed["38"]++;
if (Object.keys(self.Patients).length == 0) {
if (self.MissionConfig.emergency_medical_service.use_RTW == true) {
self._ADisVehiclesNeed["28"]++;
}
if (Patient.need_LNA && self._ADisVehiclesNeed["55"] < 1)
self._ADisVehiclesNeed["55"]++;
if (Patient.need_OrgL && self._ADisVehiclesNeed["56"] < 1)
self._ADisVehiclesNeed["56"]++;
if (Patient.need_Tragehilfe == true)
self._ADisVehiclesNeed["0"]++;
if (Patient.need_Tragehilfe == true)
self._ADisVehiclesNeed["0"]++;
if (self.MissionConfig.emergency_medical_service.use_RTW == true || Patient.need_RTW == true)
self._ADisVehiclesNeed["28"]++;
if ((self.MissionConfig.emergency_medical_service.use_NEF == true && Patient.need_NEF == true) || Patient.need_NEF == true)
if (self.MissionConfig.emergency_medical_service.use_NEF == true) {
self._ADisVehiclesNeed["29"]++;
}
if ((self.MissionConfig.emergency_medical_service.use_RTH == true && Patient.need_RTH == true) || Patient.need_RTH == true)
if (self.MissionConfig.emergency_medical_service.use_RTH == true) {
self._ADisVehiclesNeed["31"]++;
};
}
} else {
for (var Key in self.Patients) {
var Patient = self.Patients[Key];
if (self.MissionConfig.emergency_medical_service.use_KTW == true) {
if (!Patient.need_RTW && !Patient.need_NEF && !Patient.need_RTH) {
self._ADisVehiclesNeed["38"]++;
}
}
if (Patient.need_LNA && self._ADisVehiclesNeed["55"] < 1) {
self._ADisVehiclesNeed["55"]++;
}
if (Patient.need_OrgL && self._ADisVehiclesNeed["56"] < 1) {
self._ADisVehiclesNeed["56"]++;
}
if (Patient.need_Tragehilfe == true) {
self._ADisVehiclesNeed["0"]++;
}
if (self.MissionConfig.emergency_medical_service.use_RTW == true || Patient.need_RTW == true) {
self._ADisVehiclesNeed["28"]++;
}
if (self.MissionConfig.emergency_medical_service.use_NEF == true || Patient.need_NEF == true) {
self._ADisVehiclesNeed["29"]++;
}
if (self.MissionConfig.emergency_medical_service.use_RTH == true || Patient.need_RTH == true) {
self._ADisVehiclesNeed["31"]++;
}
};
}
// TODO: need to be refactored to make sure first KTW Typ B before RTW.
if (self.MissionConfig.emergency_medical_service.use_SEG_ELW1_Only == "true") {
+19
View File
@@ -0,0 +1,19 @@
(() => {
let msis = (async () => {
return await AutomaticDisposeCall.ADisDB.ADisMissions.where({
runner: 'om',
available: 'true',
done: 'false'
}).and(function (item) {
return item.next_check <= Math.floor(new Date().getTime() / 1000)
}).toArray()
})();
msis.then((result) => {
result.sort((a, b) => {
return a.next_check > b.next_check;
});
return result;
}).then((sortedResult) => {
console.table(sortedResult);
});
})();
+248
View File
@@ -0,0 +1,248 @@
// ==UserScript==
// @name Mission Watcher
// @version 1.0.0
// @run-at document-end
// @require https://cdnjs.cloudflare.com/ajax/libs/dexie/2.0.4/dexie.min.js
// ==/UserScript==
class WatchMissions {
constructor() {
let self = this;
self.DB = new Dexie('LSS_WatchMissions');
self.DB.version(1).stores({
/**
* Missions to Watch
* - missionID - Mission ID that should be watched.
* - limit - If the Mission turns green more than 6 times, no more requests will be sent.
* - data - {name, datetime, onsite{ username:{ cars: [ {name, type} ] } } }
*/
Missions: "++missionID"
});
self.DB.open().catch((err) => {
console.error(err.stack || err);
});
self.DB.on("ready", async () => {
// index page
if (window.location.pathname === "/" || window.location.pathname === "/#" || window.location.pathname === "/#_=_") {
self.RegisterIndexPage();
}
// mission page
else if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'watchMission') {
self.RegisterMissionPage();
}
})
}
get RandomTime() {
const max = 6;
const min = 1;
return Math.floor((Math.random() * (max - min + 1) + min) * 1000);
}
RegisterIndexPage() {
let self = this;
// -
// - Google Font
// -
var styleElement = document.createElement("link");
styleElement.rel = "stylesheet";
styleElement.href = "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700";
this.ADis_MyHead.appendChild(styleElement);
// -
// - FontAwesome 5
// -
var scriptElement = document.createElement("script");
scriptElement.type = "text/javascript";
scriptElement.src = "https://use.fontawesome.com/releases/v5.5.0/js/all.js";
this.ADis_MyHead.appendChild(scriptElement);
// -
// - Navbar Dashboard
// -
var styleElement = document.createElement("link");
styleElement.rel = "stylesheet";
styleElement.type = "text/css";
styleElement.media = "screen";
styleElement.href = this.ADisSettings.url + this.ADisSettings.branch + "/style/interface.css";
this.ADis_MyHead.appendChild(styleElement);
// Create Dashboard
$('#news_li').before('<li id="adis-nav-item"></li>');
$('#adis-nav-item').html(`/***ADis_Navbar***/0`)
$("#adis-dashboard").css({
display: "none",
opacity: "0"
});
}
// Generate HTML Table
// Builds the HTML Table out of myList json data from Ivy restful service.
buildHtmlTable() {
const self = this;
self.addTable(myList, $("#excelDataTable"));
}
addTable(list, appendObj) {
const self = this;
appendObj.html('');
var columns = self.addAllColumnHeaders(list, appendObj);
for (var i = 0; i < list.length; i++) {
var row$ = $('<tr/>');
for (var colIndex = 0; colIndex < columns.length; colIndex++) {
var cellValue = list[i][columns[colIndex]];
if (cellValue == null) {
cellValue = "";
}
if (cellValue.constructor === Array) {
$a = $('<td/>');
row$.append($a);
self.addTable(cellValue, $a);
} else if (cellValue.constructor === Object) {
var array = $.map(cellValue, function (value, index) {
return [value];
});
$a = $('<td/>');
row$.append($a);
self.addObject(array, $a);
} else {
row$.append($('<td/>').html(cellValue));
}
}
appendObj.append(row$);
}
}
addObject(list, appendObj) {
const self = this;
for (var i = 0; i < list.length; i++) {
var row$ = $('<tr/>');
var cellValue = list[i];
if (cellValue == null) {
cellValue = "";
}
if (cellValue.constructor === Array) {
$a = $('<td/>');
row$.append($a);
self.addTable(cellValue, $a);
} else if (cellValue.constructor === Object) {
var array = $.map(cellValue, function (value, index) {
return [value];
});
$a = $('<td/>');
row$.append($a);
self.addObject(array, $a);
} else {
row$.append($('<td/>').html(cellValue));
}
appendObj.append(row$);
}
}
// Adds a header row to the table and returns the set of columns.
// Need to do union of keys from all records as some records may not contain
// all records
addAllColumnHeaders(list, appendObj) {
var columnSet = [];
var headerTr$ = $('<tr/>');
for (var i = 0; i < list.length; i++) {
var rowHash = list[i];
for (var key in rowHash) {
if ($.inArray(key, columnSet) == -1) {
columnSet.push(key);
headerTr$.append($('<th/>').html(key));
}
}
}
appendObj.append(headerTr$);
return columnSet;
}
// Mission Page
RegisterMissionPage() {
let MissionType = null;
let MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1);
let help_el = $('a#mission_help');
if (help_el.length > 0) {
MissionType = help_el[0].href.split("?")[0];
var re = /\d+$/i;
var found = MissionType.match(re);
MissionType = Number(found[0]);
}
var myRows = [];
var $headers = $("table#mission_vehicle_driving th");
var $rows = $("table#mission_vehicle_driving tbody tr").each(function (index) {
$cells = $(this).find("td");
myRows[index] = {};
$cells.each(function (cellIndex) {
let mcoai = '';
if (cellIndex == 1) {
mcoai = ($($(this).find("a")[0]).text().trim() + ' ' + $($(this).find("small")[0]).text().trim()).replace(/(\r\n\t|\n|\r\t|\s{2,})/gm, "");
} else {
mcoai = ($(this).text().trim()).replace(/(\r\n\t|\n|\r\t|\s{2,})/gm, "");
}
console.log(cellIndex, mcoai, $($headers[cellIndex]).text().trim());
if ($($headers[cellIndex]).text().trim() != '') {
myRows[index][$($headers[cellIndex]).text().trim()] = mcoai
}
});
});
// Let's put this in the object like you want and convert to JSON (Note: jQuery will also do this for you on the Ajax request)
var myObj = {};
myObj.Anfahrt = myRows.filter(value => Object.keys(value).length !== 0);
myRows = [];
$headers = $("table#mission_vehicle_at_mission th");
$rows = $("table#mission_vehicle_at_mission tbody tr").each(function (index) {
$cells = $(this).find("td");
myRows[index] = {};
$cells.each(function (cellIndex) {
let mcoai = '';
if (cellIndex == 1) {
mcoai = ($($(this).find("a")[0]).text().trim() + ' ' + $($(this).find("small")[0]).text().trim()).replace(/(\r\n\t|\n|\r\t|\s{2,})/gm, "");
} else {
mcoai = ($(this).text().trim()).replace(/(\r\n\t|\n|\r\t|\s{2,})/gm, "");
}
console.log(cellIndex, mcoai, $($headers[cellIndex]).text().trim());
if ($($headers[cellIndex]).text().trim() != '') {
myRows[index][$($headers[cellIndex]).text().trim()] = mcoai
}
});
});
// Let's put this in the object like you want and convert to JSON (Note: jQuery will also do this for you on the Ajax request)
myObj.VorOrt = myRows.filter(value => Object.keys(value).length !== 0);
console.log(myObj);
}
}
(() => {
'use strict';
new WatchMissions();
})()