/
lss-manager-v3.dev.js
executable file
·1582 lines (1552 loc) · 61.2 KB
/
lss-manager-v3.dev.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
//██╗.....███████╗███████╗....███╗...███╗.█████╗.███╗...██╗.█████╗..██████╗.███████╗██████╗
//██║.....██╔════╝██╔════╝....████╗.████║██╔══██╗████╗..██║██╔══██╗██╔════╝.██╔════╝██╔══██╗
//██║.....███████╗███████╗....██╔████╔██║███████║██╔██╗.██║███████║██║..███╗█████╗..██████╔╝
//██║.....╚════██║╚════██║....██║╚██╔╝██║██╔══██║██║╚██╗██║██╔══██║██║...██║██╔══╝..██╔══██╗
//███████╗███████║███████║....██║.╚═╝.██║██║..██║██║.╚████║██║..██║╚██████╔╝███████╗██║..██║
//╚══════╝╚══════╝╚══════╝....╚═╝.....╚═╝╚═╝..╚═╝╚═╝..╚═══╝╚═╝..╚═╝.╚═════╝.╚══════╝╚═╝..╚═╝
/**
* Tell jQuery to allow caching beforehand!
*/
$.ajaxPrefilter(function (options, originalOptions) {
if (options.dataType === 'script' || originalOptions.dataType === 'script' ||
options.dataType === 'stylesheet' || originalOptions.dataType === 'stylesheet') {
options.cache = true;
}
});
/**
* Make case insensetive :contains() possible
*/
jQuery.expr[':'].containsci = function (a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
var lssm = {
config: {
//server: "https://localhost/lss-manager-v3",
server: "https://lss-manager.de/lss-entwicklung", // Domain wo alles liegt
stats_uri: "https://proxy.lss-manager.de/stat.php",
forum_link: "https://forum.leitstellenspiel.de/index.php/Thread/11166-LSS-MANAGER-V3/",
version: "3.3.1",
github: 'https://github.com/LSS-Manager/lss-manager-v3',
prefix: 'lssm'
},
loadScript: function (link) {
try {
var uid = "";
var game = "";
if (typeof user_id !== "undefined") {
game = window.location.hostname.toLowerCase().replace("www.", "").split(".")[0];
}
uid = "?uid=" + game + user_id;
//$('body').append('<script src="' + this.config.server + link + uid +'" type="text/javascript"></script>');
$.getScript(this.config.server + link + uid);
} catch (e) {
console.log("On script load: " + e.message);
}
},
loadStyle: function (link) {
try {
var uid = "";
var game = "";
if (typeof user_id !== "undefined") {
game = window.location.hostname.toLowerCase().replace("www.", "").split(".")[0];
}
uid = "?uid=" + game + user_id;
$('body').append('<link href="' + this.getlink(link) + '" rel="stylesheet" type="text/css">');
} catch (e) {
console.log("On script load: " + e.message);
}
},
getlink: function (file) {
try {
var uid = "";
var game = "";
if (typeof user_id !== "undefined") {
game = window.location.hostname.toLowerCase().replace("www.", "").split(".")[0];
}
uid = "?uid=" + game + user_id;
return this.config.server + file + uid;
} catch (e) {
console.log("On script load: " + e.message);
}
},
};
/**
* Localization
*/
I18n.defaultLocale = 'de';
I18n.fallbacks = true;
I18n.locales.nl = ['nl', 'en', 'de'];
I18n.translations.de.lssm = {
lssm: "LSS-Manager",
version: "Beta",
appstore: "APPSTORE",
forum: "https://forum.leitstellenspiel.de/index.php/Thread/11166-LSS-MANAGER-V",
appstore_welcome: "Willkommen im Appstore vom LSS Manager",
appstore_desc: "Hier findest du verschiedene Plugins, die dein Spielerlebnis bereichern sollen. Jedes Plugin " +
"kann einzeln aktiviert werden, indem du den Hebel auf Grün stellst. Sollte es zu irgendwelchen Problemen " +
"kommen, kannst du uns gerne eine Nachricht schreiben oder <a href=\"" +
lssm.config.forum_link + "\" target=\"blank\">im Forum einen Beitrag verfassen</a>.",
back_lss: "Zurück zu Leitstellenspiel",
settings: "Einstellungen",
saving: "Speichere...",
save: "Speichern",
cantactivate: "kann nicht aktiviert werden, da es mit folgenden Modul(en) inkompatibel ist:",
activated: "Folgende Module wurden aktiviert:",
cantload: "<h2>LSS-Manager konnte nicht geladen werden</h2>Bitte kontaktiere ein Mitglied vom Entwicklerteam.",
login: "Bitte zuerst anmelden",
mapkit: "Mapkit wird aktuell noch nicht vom LSS-Manager unterstützt.\n\nBitte deaktiviere das Addon solange oder schalte wieder \nauf OpenStreeMap um",
domainpro: "https://www.leitstellenspiel.de/profile/",
domainmes: "https://www.leitstellenspiel.de/messages/new?target=",
apps: {}
};
I18n.translations.en.lssm = {
lssm: "LSS-Manager",
version: "Beta",
appstore: "APPSTORE",
forum: "http://board.missionchief.com/index.php/Thread/146-LSS-Manager-for-missionchief/",
appstore_welcome: "Welcome to the Appstore of LSS Manager",
appstore_desc: "Here you will find various plugins that will enrich your playing experience. Each plugin can be " +
"activated individually by placing the lever on green. If there are any problems, you can write us a message or " +
"<a href=\"" +
lssm.config.forum_link + "\" target=\"blank\">write a message in the forum</a>.",
back_lss: "Back to missionchief",
settings: "Settings",
saving: "Saving...",
save: "Save",
activated: "Following Modules have been activated:",
cantactivate: "can't be activated as it's incompatible with the following modul(es):",
cantload: "<h2>LSS-Manager could not be loaded</h2>Please contact a member of the development team.",
login: "Please log in first",
mapkit: "Mapkit is not currently supported by LSS-Manager.\n\nPlease turn this Add-On off or change back to OpenStreetMap",
domainpro: "https://www.missionchief.com/profile/",
domainmes: "https://www.missionchief.com/messages/new?target=",
apps: {}
};
I18n.translations.nl.lssm = {
lssm: "LSS-Manager",
appstore: "App Store",
forum: "https://forum.meldkamerspel.com/index.php/Thread/52-LSS-Manager-for-meldkamerspel/",
appstore_welcome: "Welkom bij de App Store van LSS Manager",
appstore_desc: "Hier vindt u verschillende plug-ins die uw game-ervaring kunnen verbeteren. " +
"Elke plugin kan individueel worden geactiveerd, de bijbehorende hendel op groen te zetten. Mochten er " +
"problemen zijn, kunt u <a href=\"" +
lssm.config.forum_link +
"\" target=\"blank\">ons een bericht sturen of een bericht posten in ons topic op het forum.</a>.",
back_lss: "Terug naar Meldkamerspel",
settings: "Instellingen",
saving: "Wijzigingen aan het opslaan...",
save: "Opslaan",
activated: "De volgende modules zijn geactiveerd:",
cantactivate: "Kan niet worden geactiveerd omdat deze lssm_module niet samenwerkt met de volgende lssm_module(s):",
mapkit: "Mapkit wordt momenteel niet ondersteund door LSS-Manager.\n\nPlease zet deze Add-On uit of ga terug naar OpenStreetMap.",
domainpro: "https://www.meldkamerspel.com/profile/",
domainmes: "https://www.meldkamerspel.com/messages/new?target=",
apps: {}
};
I18n.translations.de.lssm.developers = {
"sanni": {
"id": 675,
"name": "SanniHameln"
},
"kboe": {
"id": 205976,
"name": "KBOE2"
}
};
I18n.translations.en.lssm.developers = {
"sanni": {
"id": 1065,
"name": "SanniHameln"
},
"kboe": {
"id": 49584,
"name": "KBOE2-Scripttester"
}
};
I18n.translations.nl.lssm.developers = {
"sanni": {
"id": 2091,
"name": "SanniHameln"
},
"kboe": {
"id": 28153,
"name": "KBOE2"
}
};
/**
* Add the modules to lssm
*/
lssm.Module = {
keyboardAlert: {
name: {
de: 'Keyboard Alarmierung',
en: 'Callview control',
nl: 'Besturing met toetsenbord'
},
active: false,
description: {
de: 'Einsatzmaske mit Tastatur steuern.',
en: 'Control the mission view with the keyboard.',
nl: 'Bestuur het meldingscherm met het toetsenbord.'
},
source: '/modules/lss-keyboardAlert/lss-keyboardAlert.user.js',
develop: false,
inframe: true
},
AaoTime: {
name: {
de: 'AAO Anrückzeit',
en: 'ARR duration',
nl: 'AUR duur'
},
active: false,
description: {
de: 'Beim Überfahren eines AAO Links wird angegeben, wie lange es dauern würde, bis das letzte Fahrzeug eingetroffen ist.',
en: 'Shows the calculated total time for all vehicles to arrive when hovering an ARR link.',
nl: 'Toont de berekende totale tijd voor alle voertuigen die aankomen bij het zweven van een AUR-link.'
},
source: '/modules/lss-aao-time/lss-aao-time.user.js',
develop: false,
inframe: true
},
tailoredTabs: {
name: {
de: 'Maßgeschneiderte Tabs'
},
active: false,
description: {
de: 'Das Plugin ermöglicht es, weitere Tabs zur Trennung von Fahrzeug-Typen im Alarmierungsfenster einzustellen.'
},
source: '/modules/lss-TailoredTabs/TailoredTabs.user.js',
develop: false,
inframe: true,
supportedLocales: ['de']
},
Layout01: {
name: {
de: 'Layout 01'
},
active: false,
description: {
de: 'Ansicht mit großer Karte - Einsätze & Co mit Menu durchschaltbar. Eine Badge wie bei den ' +
'Nachrichten zeigt die Einsäte/Nachrichten/Funksprüche seit dem letzten Aufruf des jeweiligen ' +
'Fensters im Menu.',
en: 'View with main focus on the map. Missions and other windows can be changed using a menu. A badge ' +
'is telling you how many missions etc. you have since your last visit within that window.',
nl: 'Design met een extra grote kaartweergave aan de linkerkant. Aan de rechterkant van het scherm kan ' +
'met menuknoppen tussen de andere schermen gewisseld worden. Een teller houdt het aantal bericheten en ' +
'meldingen voor je bij.'
},
source: '/modules/lss-layout-01/layout-01.user.js',
develop: false,
collisions: ['Layout02', 'Layout03', 'Layout04', 'Layout05']
},
Layout02: {
name: {
de: 'Layout 02'
},
active: false,
description: {
de: 'Ansicht mit 100% Karte im oberen Bereich - darunter die vier Fenster Einsätze, Gebäude, Chat & ' +
'Funksprüche.',
en: 'View with 100% map at the upper area - below that the four windows calls, buildings, chat and radio.',
nl: 'Design met een grote kaart bovenaan je scherm. onder de kaart zijn de vier overige schermen; ' +
'meldingen, gebouwen, chat en statusmeldingen weergegeven.'
},
ghuser: 'lostdesign',
source: '/modules/lss-layout-02/layout-02.user.js',
develop: false,
collisions: ['Layout01', 'Layout03', 'Layout04', 'Layout05']
},
Layout03: {
name: {
de: 'Layout 03'
},
active: false,
description: {
de: 'Layout ohne Karte. Die vier Fenster werden über die ganze Höhe dargestellt.',
en: 'Layout without map. The four windows are using 100% of the given browser height.',
nl: 'Design zonder kaart. De vier overige schermen vullen het gehele scherm.'
},
source: '/modules/lss-layout-03/layout-03.user.js',
develop: false,
collisions: ['Layout01', 'Layout02', 'Layout04', 'Layout05', 'FMS5InMap']
},
Layout04: {
name: {
de: 'Layout 04'
},
active: false,
description: {
de: 'Karte im linken Bereich auf 100% Höhe. Rechts davon die Einsätze auf voller breite - alle ' +
'Einsatzarten werden in jeweils einer Spalte dargestellt. Darunter Gebäude, Chat und Funk.',
en: 'Map with 100% height on the left side. Next to it the calls, each category in its own column. ' +
'Below that the buildings, chat and radio.',
nl: 'Design met een langwerpige kaart aan de linkerzijde van het scherm. Daarnaast een groot overzicht ' +
'van de meldingen en daaronder hebben de overige schermen een eigen kolom'
},
source: '/modules/lss-layout-04/layout-04.user.js',
develop: false,
collisions: ['Layout01', 'Layout02', 'Layout03', 'Layout05']
},
Layout05: {
name: {
de: 'Layout 05'
},
active: false,
description: {
de: 'Vollständig anpassbares Layout',
nl: 'Een volledig aanpasbaar design'
},
source: '/modules/lss-layout-05/layout-05.user.js',
develop: true,
collisions: ['Layout01', 'Layout02', 'Layout03', 'Layout04']
},
DoctorRadioCall: {
name: {
de: 'NEF Nachforderung per FMS',
en: 'HEMS request in radio',
nl: 'Spraakaanvraag voor MMT'
},
active: false,
description: {
de: 'Bei NEF Nachforderung wird ein Sprechwunsch im Funk angezeigt.',
en: 'Issues a radio call if HEMS is required.',
nl: 'Spraakaanvraag weergeven indien MMT benodigd is.'
},
source: '/modules/lss-doctor-radio-call/DoctorRadioCall.user.js',
develop: false
},
MissionOut: {
name: {
de: 'MissionOut',
nl: 'Meldingen inklappen'
},
active: false,
description: {
de: 'Alle Einsätze ein/ausklappen oder für jeden Einsatz einzeln.',
en: 'Minimize mission list entries. You can either expand or minimize all calls at once or do it for ' +
'each one.',
nl: 'Verkleint de meldingen in de lijst. Je kunt alle meldingen verkleint weergeven of per melding kiezen.'
},
source: '/modules/lss-MissionOut/MissionOut.user.js',
develop: false
},
saveVGE: {
name: {
de: 'Eigene VGE speichern',
en: 'Save created alliance calls',
nl: 'Zelfgemaakte inzetten opslaan.'
},
active: false,
description: {
de: 'Funktion um selbst erstellte VGE zu speichern.',
en: 'Enables a function to save own created mission calls to use them as template.',
nl: 'Maakt het mogelijk om zelfgemaakte inzetten op te slaan als sjabloon om ze later te gebruiken.'
},
source: '/modules/lss-saveVGE/saveVGE.user.js',
develop: false
},
coinConfirm: {
name: {
de: 'Coin Confirm',
en: 'Coin Confirm'
},
active: false,
inframe: true,
description: {
de: 'Fordert zur Bestätigung bei Coin Ausgaben auf, um versehendliche Ausgaben zu vermeiden.<br>' +
'Funktionalität ist mittlerweile im Basisspiel integriert.',
en: 'Asks for confirmation on coin spendings to avoid mistakes.<br>' +
'Functionality is integrated in base game now.'
},
source: null,
develop: true
},
releaseNotes: {
name: {
de: 'Release Notes',
en: 'Release Notes'
},
active: false,
inframe: false,
description: {
de: 'Informiert immer über die Neusten Updates im LSSM',
en: 'Provides information about the latest updates in LSSM'
},
source: '/modules/lss-releasenotes/Releasenotes.user.js',
develop: false
},
vonginator: {
name: {
de: 'Vonginator',
en: 'Vonginator'
},
active: false,
inframe: true,
description: {
de: 'Hallo i bims. 1 total sinnlose Skript vong Bedeutung her. lol',
en: 'Not seriously meant script for german language only.'
},
source: '/modules/lss-vonginator/Vonginator.user.js',
supportedLocales: ['de'],
develop: false
},
Notification_Alert: {
name: {
de: 'Notification Alert',
nl: 'Browsermeldingen'
},
active: false,
description: {
de: 'Zeigt eine HTML-5 Notification an sobald ein Status oder eine Nachricht eingegangen ist. ' +
'(ChatPoput included)',
en: 'HTML5 Chatnotifications using the browser notificationsystem.',
nl: 'Toon HTML5 chatnotificaties met behulp van het notificatiesysteem van je browser zodat je nooit ' +
'meer een chat of melding hoeft te missen.'
},
source: '/modules/lss-notification_alert/Notification_alarm.user.js',
develop: false
},
Redesign01: {
name: {
de: 'Redesign 01'
},
active: false,
description: {
de: 'Neues Design für die Oberfläche',
en: 'New design for the game.',
nl: 'Een nieuw uiterlijk voor het spel.'
},
source: '/modules/lss-redesign-01/redesign-01.user.js',
develop: false
},
Eventsmission: {
name: {
de: 'Markiert Eventeinsätze',
en: 'Marked events',
nl: 'Merken gebeurtenissen'
},
active: false,
inframe: true,
description: {
de: 'Zeigt die Aktuellen Eventeinsätze an mit Großgeschriebenen ZEILEN!',
en: 'Displays the current events with capitalized LINE!',
nl: 'Toont de actuele gebeurtenissen met hoofdlettercode LINE!'
},
source: '/modules/lss-eventmissions/eventmission.user.js',
develop: false
},
DestinationFilter: {
name: {
de: 'Zielort Filter',
en: 'Destination filter',
nl: 'Ziekenhuis-Filter'
},
active: false,
description: {
de: 'Ermöglicht belegte oder ungeeignete KH auszublenden',
en: 'Allows hiding full or unelegible hospitals',
nl: 'Maakt het mogelijk om ziekenhuizen die vol zijn of niet' +
'de juiste afdeling hebben uit het spraakaanvraagscherm te filteren'
},
source: '/modules/lss-destinationFilter/DestinationFilter.user.js',
develop: false,
inframe: true
},
FMS5InMap: {
name: {
de: 'FMS 5 in der Karte',
en: 'Request transport in map',
nl: 'Spraakaanvragen op de kaart weergeven.'
},
active: false,
description: {
de: 'Zeigt alle FMS 5 in der Karte an.',
en: 'Shows request transports within the map lower left corner.',
nl: 'Toont alle spraakaanvragen op de kaart.'
},
source: '/modules/lss-FMS5InMap/FMS5InMap.user.js',
develop: false,
collisions: ['Layout03', 'WachenplanungOnMap']
},
Clock: {
name: {
de: 'Clock',
nl: 'Klok'
},
active: false,
description: {
de: 'Zeigt eine Uhr in der Karte an.',
en: 'Enables a small clock within the map.',
nl: 'Toont een kleine klok op de kaart.'
},
source: '/modules/lss-clock/clock.user.js',
develop: false
},
WachenplanungOnMap: {
name: {
de: 'Wachenplanung auf der Karte',
en: 'Station management on map',
nl: 'Gebouwplanning op de kaart.'
},
active: false,
description: {
de: 'Zeichnet Kreise im Radius X um deine Wachen. Der Radius kann selbst bestimmt werden & die ' +
'Gebäude sind wählbar.',
en: 'Draws circles around buildings with your chosen radius in kilometer. You can also filter for ' +
'specific buildings.',
nl: 'Toont cirkels met een zelf in te stellen radius rondom gebouwen. Je kunt ook filteren op specifieke ' +
'gebouwen.'
},
source: '/modules/lss-WachenplanungOnMap/WachenplanungOnMap.user.js',
develop: false,
collisions: ['Layout03', 'FMS5InMap', 'heatmap']
},
tagMissions: {
name: {
de: 'Einsätze markieren',
en: 'Mark calls',
nl: 'Meldingen markeren.'
},
active: false,
description: {
de: 'Wurde ins Spiel integriert, vorerst deaktiviert.',
en: 'Got inplemented into the game - deactivated for now.',
nl: 'Zit in het spel ingebouwd - momenteel gedeactiveerd.'
},
source: '/modules/lss-tagMissions/tagMissions.user.js',
develop: true
},
allianceMissionlistShare: {
name: {
de: 'Einsätze freigeben',
en: 'Mission share',
nl: 'Meldingen vrijgeven'
},
active: false,
description: {
de: 'Mit einem klick in der Übersicht, ohne den Einsatz zu öffnen, freigeben.',
en: 'Instantly share missions without opening the call by clicking a button in the overview.',
nl: 'Vanuit het hoofdscherm gemakkelijk meldingen vrijgeven in je team met behulp van een extra knop in ' +
'de meldingenlijst.'
},
source: '/modules/lss-allianceMissionlistShare/allianceMissionlistShare.user.js',
develop: false
},
searchMissions: {
name: {
de: 'Einsätze suchen',
en: 'Mission search',
nl: 'Meldingen doorzoeken'
},
active: false,
description: {
de: 'In der Übersicht Einsätze suchen & filtern. In der Alarmmaske diese Liste mit Buttons durchgehen.',
en: 'Search for calls & filter them - a group of buttons on the bottom lets you change searched missions ' +
'quickly.',
nl: 'In het overzicht meldingen zoeken en filteren. Een rij knoppen aan de onderkant van het scherm laat ' +
'je snel door je meldingen bladeren.'
},
source: '/modules/lss-searchMissions/searchMissions.user.js',
develop: false
},
dashboard: {
name: {
de: 'Dashboard'
},
active: false,
description: {
de: 'Dashboard',
en: 'Dashboard',
nl: 'Een Dashboard waarin je een duidelijk overzicht krijgt van je gebouwen en voertuigen.'
},
source: '/modules/lss-dashboard/dashboard.user.js',
develop: false
},
WachenHoverStati: {
name: {
de: 'Wachen Status',
en: 'Station status',
nl: 'Voertuigstatus bij gebouwen'
},
active: false,
description: {
de: 'Zeigt beim drüberfahren einer Wache auf der Karte die Status der Fahrzeuge an.',
en: 'Shows the code of vehciles on station hover on the map.',
nl: 'Toont de status van voertuigen van een gebouw als je je muis boven het gebouw houdt.'
},
source: '/modules/lss-WachenHoverStati/WachenHoverStati.user.js',
develop: false
},
RenameFZ: {
name: {
de: 'Fahrzeuge umbennenen',
en: 'Rename vehicle',
nl: 'Voertuigen herbenoemen'
},
active: false,
description: {
de: 'Fahrzeuge in bulk mit Tags umbennenen.',
en: 'Rename vehicles in bulk using tags.',
nl: 'Maakt het makkelijk om grote hoeveelheiden voertuigen snel van een nieuwe naam te voorzien met ' +
'behulp van tags.'
},
source: '/modules/lss-RenameFZ/renameFZ.user.js',
inframe: true,
develop: false
},
telemetry: {
name: {
de: 'Telemetrie',
en: 'Telemetry',
nl: 'Telemetrie'
},
active: true,
description: {
de: 'Sendet Daten an das Entwicklerteam zur Erstellung einer Statistik',
en: 'Sends data to the developer team for the purpose of creating a statistic',
nl: 'Stuurt gegevens naar het developmentteam om statistieken te kunnen gebruiken.'
},
source: '/modules/telemetry/telemetry.user.js',
noapp: true, // Nicht im App-Store auflisten
develop: false
},
mapreload: {
name: {
de: 'Map Reload',
nl: 'Kaart opnieuw laden'
},
active: true,
description: {
de: '-',
},
source: '/modules/lss-mapReload/mapreload.user.js',
noapp: true, // Nicht im App-Store auflisten
develop: false
},
showBackAlarmAbove: {
name: {
de: 'show Back Alarm Above',
en: 'show Back Alarm Above',
nl: 'Extra annuleerknop'
},
active: false,
description: {
de: 'Zeigt den Alle Rückalamieren Button auch überhalb der Fahrzeuge an',
nl: 'Voegt een extra annuleerknop toe bovenaan de voertuiglijst.'
},
source: '/modules/lss-showBackAlarmAbove/showBackAlarmAbove.js',
noapp: false, // Nicht im App-Store auflisten
inframe: true,
develop: false
},
aaosearch: {
name: {
de: 'AAO-Suche',
en: 'AAO-Search',
nl: 'AUR-zoekfuncties'
},
active: false,
description: {
de: 'Packt alle AAO\'s in ein durchsuchbares dropdown',
nl: 'Maakt het mogelijk om de Alarm en Uitrukregels te doorzoeken met een dropdownmenu.'
},
source: '/modules/lss-aao-search/aao-search.user.js',
noapp: false,
inframe: true,
develop: false
},
recolor: {
name: {
de: 'Einfärben',
en: 'Colorize',
nl: 'Hoofdkleur veranderen'
},
active: false,
description: {
de: 'Ändere die Farbe des Leitstellenspiels. THIS FUNCTION IS WORK IN PROGRESS',
en: 'Change the color of Missionchief. THIS FUNCTION IS WORK IN PROGRESS',
nl: 'Verander de kleur van meldkamerspel. DEZE FUNCTIE IS NOG IN AANBOUW.'
},
source: '/modules/lss-recolor/recolor.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: true,
develop: true
},
heatmap: {
name: {
de: 'LS-Heatmap',
en: 'LS-Heatmap',
nl: 'Voertuigspreiding weergeven'
},
active: false,
description: {
de: 'Zeigt die Dichte bestimmter Fahrzeugtypen auf der Karte an, um Versorgungslücken zu identifizieren.',
en: 'Shows the density of selectable vehicle types on map to identify supply gaps.',
nl: 'Maakt het mogelijk om de verspreiding per voertuigsoort te zien. Hiermee kun je zien waar je nog ' +
'extra voertuigen nodig hebt voor optimale dekking van je inzetgebied.'
},
source: '/modules/lss-heatmap/LSHeatmap.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: false,
develop: false,
collisions: ['Layout03', 'WachenplanungOnMap']
},
centermap: {
name: {
de: 'Center-Map',
en: 'Center-Map',
nl: 'KAART CENTREREN'
},
active: false,
description: {
de: 'Zentriert die Karte beim Aufruf des Spiels und bei Knopfdruck. Genau so wie du es möchtest.',
en: 'Centers the map on page load and on click. Just as you prefer.',
nl: 'Maakt het mogelijk zelf de zoom en het bereik van de kaart in te stellen als je het spel opstart of door gebruik van de Centreer-knop'
},
source: '/modules/lss-centermap/Centermap.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: false,
develop: false
},
missionHelper: {
name: {
de: 'Einsatzhelfer',
en: 'Missionhelper',
nl: 'Meldinghelper'
},
active: false,
description: {
de: 'Zeigt benötigte Fahrzeuge an!.',
en: 'Shows required vehicles in mission mask.',
nl: 'Toont de benodigde voertuigen in het meldingscherm.'
},
source: '/modules/lss-missionHelper/missionHelper.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: true,
develop: false
},
statusDispatching: {
name: {
de: 'Verbesserte Status 5',
en: 'Enhanced transport requests',
nl: 'Verbeterde spraakaanvragen'
},
active: false,
description: {
de: 'Schnellere Abarbeitung von Status 5 Meldungen.',
en: 'Faster processing of transport requests.',
nl: 'Sneller verwerken van spraakaanvragen.'
},
source: '/modules/lss-statusDispatching/statusDispatching.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: true,
develop: false,
settings: {
has: false,
function_code: "statusDispatching_show_settings"
}
},
managedSettings: {
name: {
de: 'Einstellungen',
en: 'Settings'
},
active: true,
description: {
de: 'Globale Einstellungen',
en: 'Global Settings'
},
source: '/modules/lss-managedsettings/ManagedSettings.user.js',
noapp: true, // Nicht im App-Store auflisten
inframe: true,
develop: false
},
missionKeyword: {
name: {
de: 'Einsatzstichworte',
en: 'Mission Keywords',
nl: 'Steekwoorden bij meldingen'
},
active: false,
description: {
de: 'Anzeige von Stichworten bei Einsätzen. Die Stichworte orientieren sich weitgehend an denen ' +
'für Bayern.',
en: 'Shows keywords for missions. The keywords are oriented to those used in Bavaria.',
nl: 'Toont steekwoorden bij de meldingen. Deze steekwoorden zijn grotendeels gebaseerd op de ' +
'steekwoorden die in Nederlandse hulpverlening gebruikt worden.'
},
source: '/modules/lss-missionKeyword/missionKeyword.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: true,
develop: false
},
missionDate: {
name: {
de: 'Meldedatum für Einsätze',
en: 'Mission Date',
nl: 'Begintijd melding weergeven'
},
active: false,
description: {
de: 'Zeigt das Meldedatum und die vergangene Zeit seit Eingang an.',
en: 'Shows the date when the mission was generated and the hours/minutes since then',
nl: 'Deze module toont de begintijd en -datum van je melding en laat daarnaast zien hoeveel tijd er ' +
'verstreken is sinds de melding binnenkwam.'
},
source: '/modules/lss-missionDate/missionDate.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: true,
develop: false
},
iconFilter: {
name: {
de: 'Icon Gebäude Filter',
en: 'Icon building filter',
nl: 'REDESIGN FILTERKNOPPEN GEBOUWEN'
},
active: false,
description: {
de: 'Tauscht den Gebäude Filter mit Icons aus.',
en: 'Replaces the building filter with icons.',
nl: 'Vervangt de gebouwfilter met nieuwe iconen.'
},
source: '/modules/lss-iconFilter/iconFilter.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: false,
develop: false
},
sumDailyMissions: {
name: {
de: 'Summe für die tägliche Zusammenfassung',
en: 'Sum for daily stats',
nl: 'Totaalweergave in dagsamenvatting'
},
active: false,
description: {
de: 'Zeigt eine Summe über Anzahl Einsätze, Patienten, Gefangene und Verbandseinlieferungen in der ' +
'täglichen Zusammenfassung an.',
en: 'Shows sums over missions, patients, prisoners and alliance in the daily stats page',
nl: 'Geeft een totaaloverzicht van het aantal meldingen, patienten, gevangenen en teamopnames.'
},
source: '/modules/lss-sumDailyMissions/sumDailyMissions.user.js',
noapp: false, // Nicht im App-Store auflisten
inframe: true,
develop: false
},
aaoZaehler: {
name: {
de: 'AAO-Klick-Zähler',
en: 'Alarm-Regulations-Counter',
nl: 'AUR-Klik-Teller'
},
active: false,
description: {
de: 'Zählt die Klicks auf einen AAO-Button',
en: 'Counts the clicks on an alarm-regulations-button',
nl: 'Telt het aantal keer dat een AUR aangeklikt is.'
},
source: '/modules/lss-AAO-Zaehler/aao-zaehler.js',
noapp: false,
inframe: true,
develop: false
},
creditserweiterung: {
name: {
de: 'Creditserweiterung',
en: 'Credit expansion',
nl: 'Credits-uitbreiding'
},
active: false,
description: {
de: 'Fügt ein paar spezielle Informationen zu den Credits in einem Dropdown hinzu',
en: 'Add some special information about the credits in a drop-down list',
nl: 'Voegt wat speciale informatie over de credits toe in een vervolgkeuzelijst'
},
source: '/modules/lss-creditserweiterung/creditserweiterung.user.js',
noapp: false,
inframe: true,
develop: false
},
displayUserId: {
name: {
de: 'User-ID',
en: 'User-ID',
nl: 'User-ID'
},
active: false,
description: {
de: 'Zeigt die eigene ID in der Kopfzeile an',
en: 'shows your ID in the header',
nl: 'Geeft uw eigen ID in de kopregel weer'
},
source: '/modules/lss-userid/lss-userId.user.js',
noapp: false,
inframe: true,
develop: false
},
showChatButtonAbove: {
name: {
de: 'show Chatbutton Above',
en: 'show Chatbutton Above',
nl: 'Toon boven chat-knop'
},
active: false,
description: {
de: 'Zeigt den Chatverlauf-Knopf auch in der Kopfzeile des Chats an.',
en: 'Displays the Chat History button in the chat header.',
nl: 'Toont de chatgeschiedenisknop in de chatheader.'
},
source: '/modules/lss-showChatbuttonAbove/showChatbuttonAbove.user.js',
noapp: false,
inframe: true,
develop: false
},
showNotTransportButtonAbove: {
name: {
de: 'show Patient entlassen Above',
},
active: false,
description: {
de: 'Zeigt den Patient-Entlassen-Knopf bei einem Sprechwunsch unter dem Fahrzeugnamen an.'
},
source: '/modules/lss-show-notTransportPatientButtonAbove/show-notTransportPatientButtonAbove.user.js',
noapp: false,
supportedLocales: ['de'],
inframe: true,
develop: false
},
verbandsverwaltung: {
name: {
de: "Verbandsverwaltung",
en: "Alliance-extension",
nl: "Team-uitbreiding"
},
active: false,
description: {
de: "Verbandsübersicht auf einen Blick im Hauptfenster",
en: "Alliance overview at a glance in the main window",
nl: "Teamoverzicht in een oogopslag in het hoofdvenster"
},
source: "/modules/lss-verbandsverwaltung/verbandsverwaltung.js",
noapp: false,
inframe: true,
develop: false
},
overview: {
name: {
de: "Übersicht",
en: "overview",
nl: "overzicht"
},
active: false,
description: {
de: "Übersicht über alle Fahrzeuge, später auch Wachen.",
en: "Overview of all vehicles, later also buildings",
nl: "Overzicht van alle voertuigen, later ook gebouwen."
},
source: "/modules/lss-overview/overview.js",
noapp: false,
inframe: true,
develop: false
}
};
/**
* Add the appstore to LSSM
*/
lssm.appstore = {
/**
* Checks if a lssm_module collides with other modules
* @param mod
* @returns {boolean}
*/
canActivate: function (mod) {
var ca = true;
// TODO: Sprechendere Variablennamen
if ('collisions' in mod) {
for (var c in mod.collisions) {
var d = mod.collisions[c];
if (lssm.Module[d].active) {
ca = false;
}
}
}
return ca;
},
hideAllForSettings: function () {
$('.' + lssm.config.prefix + '__appstore_hideForSettings').hide();
},
// Erstellen der Pandels
createModulePanels: function () {
var panels = $('<div class="row">' +
'<div class="col-sm-4" id="apps_col_0"></div>' +
'<div class="col-sm-4" id="apps_col_1"></div>' +
'<div class="col-sm-4" id="apps_col_2"></div>' +
'</div>');
var col = 0;
// Get all the keys of the modules
var mods = $.map(lssm.Module, function (value, index) {
return [index];
});
// Sort the lssm_module keys