Rebased, Better Performance, Fixed Internet Aircraft #2
+4
-1
@@ -5,4 +5,7 @@ json/keys.json
|
||||
/tiles/
|
||||
/data/aircraft1.json
|
||||
/data/battery.json
|
||||
/data/
|
||||
/data/
|
||||
/.vscode/
|
||||
/information_files/
|
||||
/information/
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# All Scripts to be run at start
|
||||
unclutter &
|
||||
cd /usr/share/dump1090-mutability/html
|
||||
sudo python battery.py &
|
||||
sudo python api.py &
|
||||
sudo node /scripts/internet_data.js
|
||||
@@ -1,499 +0,0 @@
|
||||
.progress-circle {
|
||||
font-size: 20px;
|
||||
margin: 20px;
|
||||
position: relative;
|
||||
/* so that children can be absolutely positioned */
|
||||
padding: 0;
|
||||
width: 5em;
|
||||
height: 5em;
|
||||
background-color: #F2E9E1;
|
||||
border-radius: 50%;
|
||||
line-height: 5em;
|
||||
}
|
||||
|
||||
.progress-circle:after {
|
||||
border: none;
|
||||
position: absolute;
|
||||
top: 0.35em;
|
||||
left: 0.35em;
|
||||
text-align: center;
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
width: 4.3em;
|
||||
height: 4.3em;
|
||||
background-color: white;
|
||||
content: " ";
|
||||
}
|
||||
|
||||
|
||||
/* Text inside the control */
|
||||
|
||||
.progress-circle span {
|
||||
position: absolute;
|
||||
line-height: 5em;
|
||||
width: 5em;
|
||||
text-align: center;
|
||||
display: block;
|
||||
color: #53777A;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.left-half-clipper {
|
||||
/* a round circle */
|
||||
border-radius: 50%;
|
||||
width: 5em;
|
||||
height: 5em;
|
||||
position: absolute;
|
||||
/* needed for clipping */
|
||||
clip: rect(0, 5em, 5em, 2.5em);
|
||||
/* clips the whole left half*/
|
||||
}
|
||||
|
||||
|
||||
/* when p>50, don't clip left half*/
|
||||
|
||||
.progress-circle.over50 .left-half-clipper {
|
||||
clip: rect(auto, auto, auto, auto);
|
||||
}
|
||||
|
||||
.value-bar {
|
||||
/*This is an overlayed square, that is made round with the border radius,
|
||||
then it is cut to display only the left half, then rotated clockwise
|
||||
to escape the outer clipping path.*/
|
||||
position: absolute;
|
||||
/*needed for clipping*/
|
||||
clip: rect(0, 2.5em, 5em, 0);
|
||||
width: 5em;
|
||||
height: 5em;
|
||||
border-radius: 50%;
|
||||
border: 0.45em solid #53777A;
|
||||
/*The border is 0.35 but making it larger removes visual artifacts */
|
||||
/*background-color: #4D642D;*/
|
||||
/* for debug */
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
/* Progress bar filling the whole right half for values above 50% */
|
||||
|
||||
.progress-circle.over50 .first50-bar {
|
||||
/*Progress bar for the first 50%, filling the whole right half*/
|
||||
position: absolute;
|
||||
/*needed for clipping*/
|
||||
clip: rect(0, 5em, 5em, 2.5em);
|
||||
background-color: #53777A;
|
||||
border-radius: 50%;
|
||||
width: 5em;
|
||||
height: 5em;
|
||||
}
|
||||
|
||||
.progress-circle:not(.over50) .first50-bar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Progress bar rotation position */
|
||||
|
||||
.progress-circle.p0 .value-bar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.progress-circle.p1 .value-bar {
|
||||
transform: rotate(4deg);
|
||||
}
|
||||
|
||||
.progress-circle.p2 .value-bar {
|
||||
transform: rotate(7deg);
|
||||
}
|
||||
|
||||
.progress-circle.p3 .value-bar {
|
||||
transform: rotate(11deg);
|
||||
}
|
||||
|
||||
.progress-circle.p4 .value-bar {
|
||||
transform: rotate(14deg);
|
||||
}
|
||||
|
||||
.progress-circle.p5 .value-bar {
|
||||
transform: rotate(18deg);
|
||||
}
|
||||
|
||||
.progress-circle.p6 .value-bar {
|
||||
transform: rotate(22deg);
|
||||
}
|
||||
|
||||
.progress-circle.p7 .value-bar {
|
||||
transform: rotate(25deg);
|
||||
}
|
||||
|
||||
.progress-circle.p8 .value-bar {
|
||||
transform: rotate(29deg);
|
||||
}
|
||||
|
||||
.progress-circle.p9 .value-bar {
|
||||
transform: rotate(32deg);
|
||||
}
|
||||
|
||||
.progress-circle.p10 .value-bar {
|
||||
transform: rotate(36deg);
|
||||
}
|
||||
|
||||
.progress-circle.p11 .value-bar {
|
||||
transform: rotate(40deg);
|
||||
}
|
||||
|
||||
.progress-circle.p12 .value-bar {
|
||||
transform: rotate(43deg);
|
||||
}
|
||||
|
||||
.progress-circle.p13 .value-bar {
|
||||
transform: rotate(47deg);
|
||||
}
|
||||
|
||||
.progress-circle.p14 .value-bar {
|
||||
transform: rotate(50deg);
|
||||
}
|
||||
|
||||
.progress-circle.p15 .value-bar {
|
||||
transform: rotate(54deg);
|
||||
}
|
||||
|
||||
.progress-circle.p16 .value-bar {
|
||||
transform: rotate(58deg);
|
||||
}
|
||||
|
||||
.progress-circle.p17 .value-bar {
|
||||
transform: rotate(61deg);
|
||||
}
|
||||
|
||||
.progress-circle.p18 .value-bar {
|
||||
transform: rotate(65deg);
|
||||
}
|
||||
|
||||
.progress-circle.p19 .value-bar {
|
||||
transform: rotate(68deg);
|
||||
}
|
||||
|
||||
.progress-circle.p20 .value-bar {
|
||||
transform: rotate(72deg);
|
||||
}
|
||||
|
||||
.progress-circle.p21 .value-bar {
|
||||
transform: rotate(76deg);
|
||||
}
|
||||
|
||||
.progress-circle.p22 .value-bar {
|
||||
transform: rotate(79deg);
|
||||
}
|
||||
|
||||
.progress-circle.p23 .value-bar {
|
||||
transform: rotate(83deg);
|
||||
}
|
||||
|
||||
.progress-circle.p24 .value-bar {
|
||||
transform: rotate(86deg);
|
||||
}
|
||||
|
||||
.progress-circle.p25 .value-bar {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
.progress-circle.p26 .value-bar {
|
||||
transform: rotate(94deg);
|
||||
}
|
||||
|
||||
.progress-circle.p27 .value-bar {
|
||||
transform: rotate(97deg);
|
||||
}
|
||||
|
||||
.progress-circle.p28 .value-bar {
|
||||
transform: rotate(101deg);
|
||||
}
|
||||
|
||||
.progress-circle.p29 .value-bar {
|
||||
transform: rotate(104deg);
|
||||
}
|
||||
|
||||
.progress-circle.p30 .value-bar {
|
||||
transform: rotate(108deg);
|
||||
}
|
||||
|
||||
.progress-circle.p31 .value-bar {
|
||||
transform: rotate(112deg);
|
||||
}
|
||||
|
||||
.progress-circle.p32 .value-bar {
|
||||
transform: rotate(115deg);
|
||||
}
|
||||
|
||||
.progress-circle.p33 .value-bar {
|
||||
transform: rotate(119deg);
|
||||
}
|
||||
|
||||
.progress-circle.p34 .value-bar {
|
||||
transform: rotate(122deg);
|
||||
}
|
||||
|
||||
.progress-circle.p35 .value-bar {
|
||||
transform: rotate(126deg);
|
||||
}
|
||||
|
||||
.progress-circle.p36 .value-bar {
|
||||
transform: rotate(130deg);
|
||||
}
|
||||
|
||||
.progress-circle.p37 .value-bar {
|
||||
transform: rotate(133deg);
|
||||
}
|
||||
|
||||
.progress-circle.p38 .value-bar {
|
||||
transform: rotate(137deg);
|
||||
}
|
||||
|
||||
.progress-circle.p39 .value-bar {
|
||||
transform: rotate(140deg);
|
||||
}
|
||||
|
||||
.progress-circle.p40 .value-bar {
|
||||
transform: rotate(144deg);
|
||||
}
|
||||
|
||||
.progress-circle.p41 .value-bar {
|
||||
transform: rotate(148deg);
|
||||
}
|
||||
|
||||
.progress-circle.p42 .value-bar {
|
||||
transform: rotate(151deg);
|
||||
}
|
||||
|
||||
.progress-circle.p43 .value-bar {
|
||||
transform: rotate(155deg);
|
||||
}
|
||||
|
||||
.progress-circle.p44 .value-bar {
|
||||
transform: rotate(158deg);
|
||||
}
|
||||
|
||||
.progress-circle.p45 .value-bar {
|
||||
transform: rotate(162deg);
|
||||
}
|
||||
|
||||
.progress-circle.p46 .value-bar {
|
||||
transform: rotate(166deg);
|
||||
}
|
||||
|
||||
.progress-circle.p47 .value-bar {
|
||||
transform: rotate(169deg);
|
||||
}
|
||||
|
||||
.progress-circle.p48 .value-bar {
|
||||
transform: rotate(173deg);
|
||||
}
|
||||
|
||||
.progress-circle.p49 .value-bar {
|
||||
transform: rotate(176deg);
|
||||
}
|
||||
|
||||
.progress-circle.p50 .value-bar {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
.progress-circle.p51 .value-bar {
|
||||
transform: rotate(184deg);
|
||||
}
|
||||
|
||||
.progress-circle.p52 .value-bar {
|
||||
transform: rotate(187deg);
|
||||
}
|
||||
|
||||
.progress-circle.p53 .value-bar {
|
||||
transform: rotate(191deg);
|
||||
}
|
||||
|
||||
.progress-circle.p54 .value-bar {
|
||||
transform: rotate(194deg);
|
||||
}
|
||||
|
||||
.progress-circle.p55 .value-bar {
|
||||
transform: rotate(198deg);
|
||||
}
|
||||
|
||||
.progress-circle.p56 .value-bar {
|
||||
transform: rotate(202deg);
|
||||
}
|
||||
|
||||
.progress-circle.p57 .value-bar {
|
||||
transform: rotate(205deg);
|
||||
}
|
||||
|
||||
.progress-circle.p58 .value-bar {
|
||||
transform: rotate(209deg);
|
||||
}
|
||||
|
||||
.progress-circle.p59 .value-bar {
|
||||
transform: rotate(212deg);
|
||||
}
|
||||
|
||||
.progress-circle.p60 .value-bar {
|
||||
transform: rotate(216deg);
|
||||
}
|
||||
|
||||
.progress-circle.p61 .value-bar {
|
||||
transform: rotate(220deg);
|
||||
}
|
||||
|
||||
.progress-circle.p62 .value-bar {
|
||||
transform: rotate(223deg);
|
||||
}
|
||||
|
||||
.progress-circle.p63 .value-bar {
|
||||
transform: rotate(227deg);
|
||||
}
|
||||
|
||||
.progress-circle.p64 .value-bar {
|
||||
transform: rotate(230deg);
|
||||
}
|
||||
|
||||
.progress-circle.p65 .value-bar {
|
||||
transform: rotate(234deg);
|
||||
}
|
||||
|
||||
.progress-circle.p66 .value-bar {
|
||||
transform: rotate(238deg);
|
||||
}
|
||||
|
||||
.progress-circle.p67 .value-bar {
|
||||
transform: rotate(241deg);
|
||||
}
|
||||
|
||||
.progress-circle.p68 .value-bar {
|
||||
transform: rotate(245deg);
|
||||
}
|
||||
|
||||
.progress-circle.p69 .value-bar {
|
||||
transform: rotate(248deg);
|
||||
}
|
||||
|
||||
.progress-circle.p70 .value-bar {
|
||||
transform: rotate(252deg);
|
||||
}
|
||||
|
||||
.progress-circle.p71 .value-bar {
|
||||
transform: rotate(256deg);
|
||||
}
|
||||
|
||||
.progress-circle.p72 .value-bar {
|
||||
transform: rotate(259deg);
|
||||
}
|
||||
|
||||
.progress-circle.p73 .value-bar {
|
||||
transform: rotate(263deg);
|
||||
}
|
||||
|
||||
.progress-circle.p74 .value-bar {
|
||||
transform: rotate(266deg);
|
||||
}
|
||||
|
||||
.progress-circle.p75 .value-bar {
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
|
||||
.progress-circle.p76 .value-bar {
|
||||
transform: rotate(274deg);
|
||||
}
|
||||
|
||||
.progress-circle.p77 .value-bar {
|
||||
transform: rotate(277deg);
|
||||
}
|
||||
|
||||
.progress-circle.p78 .value-bar {
|
||||
transform: rotate(281deg);
|
||||
}
|
||||
|
||||
.progress-circle.p79 .value-bar {
|
||||
transform: rotate(284deg);
|
||||
}
|
||||
|
||||
.progress-circle.p80 .value-bar {
|
||||
transform: rotate(288deg);
|
||||
}
|
||||
|
||||
.progress-circle.p81 .value-bar {
|
||||
transform: rotate(292deg);
|
||||
}
|
||||
|
||||
.progress-circle.p82 .value-bar {
|
||||
transform: rotate(295deg);
|
||||
}
|
||||
|
||||
.progress-circle.p83 .value-bar {
|
||||
transform: rotate(299deg);
|
||||
}
|
||||
|
||||
.progress-circle.p84 .value-bar {
|
||||
transform: rotate(302deg);
|
||||
}
|
||||
|
||||
.progress-circle.p85 .value-bar {
|
||||
transform: rotate(306deg);
|
||||
}
|
||||
|
||||
.progress-circle.p86 .value-bar {
|
||||
transform: rotate(310deg);
|
||||
}
|
||||
|
||||
.progress-circle.p87 .value-bar {
|
||||
transform: rotate(313deg);
|
||||
}
|
||||
|
||||
.progress-circle.p88 .value-bar {
|
||||
transform: rotate(317deg);
|
||||
}
|
||||
|
||||
.progress-circle.p89 .value-bar {
|
||||
transform: rotate(320deg);
|
||||
}
|
||||
|
||||
.progress-circle.p90 .value-bar {
|
||||
transform: rotate(324deg);
|
||||
}
|
||||
|
||||
.progress-circle.p91 .value-bar {
|
||||
transform: rotate(328deg);
|
||||
}
|
||||
|
||||
.progress-circle.p92 .value-bar {
|
||||
transform: rotate(331deg);
|
||||
}
|
||||
|
||||
.progress-circle.p93 .value-bar {
|
||||
transform: rotate(335deg);
|
||||
}
|
||||
|
||||
.progress-circle.p94 .value-bar {
|
||||
transform: rotate(338deg);
|
||||
}
|
||||
|
||||
.progress-circle.p95 .value-bar {
|
||||
transform: rotate(342deg);
|
||||
}
|
||||
|
||||
.progress-circle.p96 .value-bar {
|
||||
transform: rotate(346deg);
|
||||
}
|
||||
|
||||
.progress-circle.p97 .value-bar {
|
||||
transform: rotate(349deg);
|
||||
}
|
||||
|
||||
.progress-circle.p98 .value-bar {
|
||||
transform: rotate(353deg);
|
||||
}
|
||||
|
||||
.progress-circle.p99 .value-bar {
|
||||
transform: rotate(356deg);
|
||||
}
|
||||
|
||||
.progress-circle.p100 .value-bar {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
Vendored
-21
File diff suppressed because one or more lines are too long
@@ -1,806 +0,0 @@
|
||||
html,
|
||||
body
|
||||
{
|
||||
background-color: #000000;
|
||||
color: white;
|
||||
font-family: Tahoma, Sans-Serif;
|
||||
font-size: 10pt;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#map_container
|
||||
{
|
||||
color: black;
|
||||
}
|
||||
#planes_table
|
||||
{
|
||||
background-color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
#metar_loading
|
||||
{
|
||||
top: 4px;
|
||||
}
|
||||
#liveatc_button
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
#metar_button
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
#radar_button
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
#radar_flight_tab_button
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
#radar_aircraft_tab_button
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
#radar_radar_tab_button
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
#vol_down_button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
#power_button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
#vol_up_button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
#home_button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
#internet_mode_button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
#power_modal > .modal-content
|
||||
{
|
||||
background-color: #000;
|
||||
font-size: 18px;
|
||||
height: 30%;
|
||||
left: 25%;
|
||||
line-height: 45px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
top: 25%;
|
||||
width: 50%;
|
||||
}
|
||||
#power_table
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
#power_table > tbody > tr:nth-child(1) > td:nth-child(1) > button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
#power_table > tbody > tr:nth-child(1) > td:nth-child(2) > button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
#power_table > tbody > tr:nth-child(1) > td:nth-child(3) > button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
div.atc_state
|
||||
{
|
||||
background-color: #000;
|
||||
border: 1px solid white;
|
||||
border-radius: 25px;
|
||||
height: 20px;
|
||||
margin: 4px;
|
||||
padding: 4px;
|
||||
padding-left: 10px;
|
||||
text-decoration: none;
|
||||
}
|
||||
#branch_button
|
||||
{
|
||||
background-color: white;
|
||||
}
|
||||
div#nav_bar
|
||||
{
|
||||
background: black;
|
||||
border-bottom: 2px solid white;
|
||||
color: white;
|
||||
height: 40px;
|
||||
left: 0px;
|
||||
padding: 5px;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
div#itinerary_body
|
||||
{
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
img#aircraft_image
|
||||
{
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
div#map_container
|
||||
{
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
.subtab_button
|
||||
{
|
||||
width: 25%;
|
||||
}
|
||||
div#graphs_body
|
||||
{
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
div#graphs_body
|
||||
{
|
||||
overflow: hidden;
|
||||
}
|
||||
img.graphs
|
||||
{
|
||||
height: 70%;
|
||||
left: 10%;
|
||||
position: relative;
|
||||
top: 5%;
|
||||
width: 80%;
|
||||
}
|
||||
img.graphs_s
|
||||
{
|
||||
height: 40%;
|
||||
left: 10%;
|
||||
position: relative;
|
||||
top: 30%;
|
||||
width: 80%;
|
||||
}
|
||||
#arrow_back_graphs
|
||||
{
|
||||
left: 10px;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
}
|
||||
#arrow_forward_graphs
|
||||
{
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 40%;
|
||||
}
|
||||
html::-webkit-scrollbar
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
img#message_rate img#cpu_usage
|
||||
{
|
||||
width: 50%;
|
||||
}
|
||||
div#subtab_buttons>button
|
||||
{
|
||||
margin-left: 20px;
|
||||
width: 100px;
|
||||
}
|
||||
div#subtab_buttons
|
||||
{
|
||||
background: black;
|
||||
bottom: 0px;
|
||||
padding: 5px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
div#map_canvas
|
||||
{
|
||||
height: 100%;
|
||||
margin-right: 390px;
|
||||
}
|
||||
div#sidebar_container
|
||||
{
|
||||
height: 90%;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 50px;
|
||||
width: 390px;
|
||||
}
|
||||
#nav_bar.divider
|
||||
{
|
||||
width: 25px;
|
||||
}
|
||||
.pointer
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
.noselect
|
||||
{
|
||||
khtml-user-select: none;
|
||||
moz-user-select: none;
|
||||
ms-user-select: none;
|
||||
user-select: none;
|
||||
webkit-touch-callout: none;
|
||||
webkit-user-select: none;
|
||||
}
|
||||
.space
|
||||
{
|
||||
display: inline-block;
|
||||
margin: auto;
|
||||
padding-bottom: 0px;
|
||||
padding-right: 20px;
|
||||
padding-top: 0px;
|
||||
width: fit-content;
|
||||
}
|
||||
#planes_table > tr > td
|
||||
{
|
||||
border-bottom: solid white .5px;
|
||||
text-align: center;
|
||||
}
|
||||
.space-nopad
|
||||
{
|
||||
display: inline-block;
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
}
|
||||
.center
|
||||
{
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
#radar_aircraft_tab
|
||||
{
|
||||
line-height: 17px;
|
||||
}
|
||||
#img_button
|
||||
{
|
||||
bottom: 50px;
|
||||
position: fixed;
|
||||
right: 10%;
|
||||
}
|
||||
#aircraft_button
|
||||
{
|
||||
bottom: 49px;
|
||||
position: fixed;
|
||||
right: 14%;
|
||||
}
|
||||
#info_button
|
||||
{
|
||||
bottom: 5px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
}
|
||||
#info_icon
|
||||
{
|
||||
bottom: 5px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
}
|
||||
div#SpecialSquawkWarning
|
||||
{
|
||||
background-color: #FFFFA3;
|
||||
border: 2px solid red;
|
||||
bottom: 25px;
|
||||
filter: alpha(opacity=75);
|
||||
opacity: 0.75;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
right: 430px;
|
||||
text-align: center;
|
||||
}
|
||||
div#update_error
|
||||
{
|
||||
background-color: #FFFFA3;
|
||||
border: 2px solid red;
|
||||
bottom: 25px;
|
||||
filter: alpha(opacity=75);
|
||||
left: 25px;
|
||||
opacity: 0.75;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
}
|
||||
div#loader
|
||||
{
|
||||
background: #000;
|
||||
bottom: 0;
|
||||
filter: alpha(opacity=100);
|
||||
left: 0;
|
||||
opacity: 1;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
#spinny
|
||||
{
|
||||
height: 128px;
|
||||
left: 50%;
|
||||
margin: -64px 0 0 -64px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 128px;
|
||||
}
|
||||
#loader_progress
|
||||
{
|
||||
height: 20px;
|
||||
left: 50%;
|
||||
margin: 128px 0 0 -125px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 250px;
|
||||
}
|
||||
#tableinfo,
|
||||
#sudo_buttons
|
||||
{
|
||||
font-family: monospace;
|
||||
font-size: x-small;
|
||||
}
|
||||
.vPosition
|
||||
{
|
||||
background-color: #d5ffd5;
|
||||
font-weight: bold;
|
||||
}
|
||||
.mlat
|
||||
{
|
||||
background-color: #d5d5ff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.squawk7500
|
||||
{
|
||||
background-color: #ff5555;
|
||||
font-weight: bold;
|
||||
}
|
||||
.squawk7600
|
||||
{
|
||||
background-color: #00ffff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.squawk7700
|
||||
{
|
||||
background-color: #ffff00;
|
||||
font-weight: bold;
|
||||
}
|
||||
.selected
|
||||
{
|
||||
background-color: #dddddd;
|
||||
}
|
||||
.plane_table_row
|
||||
{
|
||||
background-color: black;
|
||||
border: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
.hidden
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
.infoblock_heading
|
||||
{
|
||||
font-size: larger;
|
||||
}
|
||||
.infoblock_heading a
|
||||
{
|
||||
color: blue;
|
||||
font-size: x-small;
|
||||
text-decoration: none;
|
||||
}
|
||||
.infoblock_body
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
#selected_icao
|
||||
{
|
||||
font-size: x-small;
|
||||
}
|
||||
#selected_registration
|
||||
{
|
||||
font-size: x-small;
|
||||
}
|
||||
#selected_icaotype
|
||||
{
|
||||
font-size: x-small;
|
||||
}
|
||||
.dim
|
||||
{
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
}
|
||||
.pointer
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
td#icao
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#flag
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#flight
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#squawk
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#altitude
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#speed
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#distance
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#track
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#msgs
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#seen
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
#modal2_title
|
||||
{
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
text-decoration: bold;
|
||||
}
|
||||
#aircraft_name_css
|
||||
{
|
||||
font-size: 30px;
|
||||
line-height: 25px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#modal3_title
|
||||
{
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
text-decoration: bold;
|
||||
}
|
||||
.material-icons.md-18
|
||||
{
|
||||
font-size: 18px;
|
||||
}
|
||||
.material-icons.md-24
|
||||
{
|
||||
font-size: 24px;
|
||||
}
|
||||
.material-icons.md-36
|
||||
{
|
||||
font-size: 36px;
|
||||
}
|
||||
.material-icons.md-48
|
||||
{
|
||||
font-size: 48px;
|
||||
}
|
||||
.modal
|
||||
{
|
||||
background-color: rgb(0, 0, 0);
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
display: none;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
}
|
||||
.modal-content
|
||||
{
|
||||
background-color: #fefefe;
|
||||
border: 1px solid #888;
|
||||
height: 80%;
|
||||
margin: 2% auto;
|
||||
padding: 20px;
|
||||
width: 90%;
|
||||
}
|
||||
.close
|
||||
{
|
||||
color: #aaa;
|
||||
float: right;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.close:hover,
|
||||
.close:focus
|
||||
{
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
.logo
|
||||
{
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 10%;
|
||||
width: 80%;
|
||||
}
|
||||
.settingslogo
|
||||
{
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 2%;
|
||||
width: 40%;
|
||||
}
|
||||
.settingstext
|
||||
{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
}
|
||||
.home_table
|
||||
{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 60%;
|
||||
}
|
||||
#home_page
|
||||
{
|
||||
overflow: hidden;
|
||||
}
|
||||
#settings_page
|
||||
{
|
||||
overflow: hidden;
|
||||
}
|
||||
#settingstext>table
|
||||
{
|
||||
margin: auto;
|
||||
}
|
||||
#external_mode_button
|
||||
{
|
||||
background-color: white;
|
||||
left: 50%;
|
||||
position: relative;
|
||||
right: 50%;
|
||||
}
|
||||
#settingstext>table>tbody>tr>td
|
||||
{
|
||||
padding: 15px;
|
||||
}
|
||||
#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td
|
||||
{
|
||||
left: -25%;
|
||||
position: relative;
|
||||
top: 0;
|
||||
}
|
||||
#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td
|
||||
{
|
||||
left: -25%;
|
||||
position: relative;
|
||||
top: 0;
|
||||
}
|
||||
#home_page>table>tbody>tr>td>img
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
#arrivals
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
#departures
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
#sch-arrivals
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
#sch-departures
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
.airportBoard
|
||||
{
|
||||
border: white solid 2px;
|
||||
}
|
||||
#aircraft_image1
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
#aircraft_image2
|
||||
{
|
||||
bottom: 12%;
|
||||
left: 5%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
#aircraft_image3
|
||||
{
|
||||
bottom: 12%;
|
||||
left: 30.5%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
#aircraft_image4
|
||||
{
|
||||
bottom: 12%;
|
||||
left: 56%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
#itinerary_loading
|
||||
{
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
#flight_progress_circle
|
||||
{
|
||||
position: absolute;
|
||||
right: 25%;
|
||||
top: 10%;
|
||||
}
|
||||
#flight_progress_title
|
||||
{
|
||||
font-size: 18px;
|
||||
position: absolute;
|
||||
right: 5%;
|
||||
top: 22%;
|
||||
}
|
||||
#flight_progress_elapsed_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 68%;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
}
|
||||
#flight_progress_remaining_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 53%;
|
||||
}
|
||||
#flight_progress_time_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 66%;
|
||||
}
|
||||
#flight_progress_elapsed_amount
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 45%;
|
||||
}
|
||||
#flight_progress_remaining_amount
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 58%;
|
||||
}
|
||||
#flight_progress_time_amount
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 71%;
|
||||
}
|
||||
#aircraft_name_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 66%;
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
}
|
||||
#aircraft_model_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 66%;
|
||||
position: absolute;
|
||||
top: 33%;
|
||||
}
|
||||
#aircraft_registration_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 46%;
|
||||
}
|
||||
#aircraft_name_addl
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 25%;
|
||||
}
|
||||
#aircraft_model
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 69.5%;
|
||||
position: absolute;
|
||||
top: 38%;
|
||||
}
|
||||
#aircraft_registration
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 69%;
|
||||
position: absolute;
|
||||
top: 51%;
|
||||
}
|
||||
#external_connected
|
||||
{
|
||||
background-color: black;
|
||||
color: red;
|
||||
font-size: xx-large;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
#external_title
|
||||
{
|
||||
animation: blinkingText 1s infinite;
|
||||
left: 22%;
|
||||
position: absolute;
|
||||
top: 55%;
|
||||
}
|
||||
#external_image
|
||||
{
|
||||
animation: blinkingText 1s infinite;
|
||||
left: 43%;
|
||||
position: absolute;
|
||||
top: 30%;
|
||||
}
|
||||
@keyframes blinkingText
|
||||
{
|
||||
0%
|
||||
{
|
||||
opacity: 0;
|
||||
}
|
||||
50%
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
100%
|
||||
{
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@@ -1,756 +0,0 @@
|
||||
html,
|
||||
body
|
||||
{
|
||||
background-color: #ffffff;
|
||||
font-family: Tahoma, Sans-Serif;
|
||||
font-size: 10pt;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#power_modal > .modal-content
|
||||
{
|
||||
font-size: 18px;
|
||||
height: 30%;
|
||||
left: 25%;
|
||||
line-height: 45px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
top: 25%;
|
||||
width: 50%;
|
||||
}
|
||||
#power_table
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
#lock_button
|
||||
{
|
||||
left: 70%;
|
||||
line-height: 0%;
|
||||
margin-bottom: -80px;
|
||||
position: relative;
|
||||
top: -70px;
|
||||
z-index: 1;
|
||||
}
|
||||
#atc_title, #atc_location
|
||||
{
|
||||
padding-left: 2px;
|
||||
}
|
||||
#audioControl
|
||||
{
|
||||
position: absolute;
|
||||
right: 25px;
|
||||
top: 30px;
|
||||
}
|
||||
div.atc_state
|
||||
{
|
||||
background-color: #ffffffa6;
|
||||
border: 1px solid black;
|
||||
border-radius: 25px;
|
||||
height: 20px;
|
||||
margin: 4px;
|
||||
padding: 4px;
|
||||
padding-left: 10px;
|
||||
text-decoration: none;
|
||||
}
|
||||
div#nav_bar
|
||||
{
|
||||
background: white;
|
||||
border: 2px solid black;
|
||||
height: 40px;
|
||||
left: 0px;
|
||||
padding: 5px;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
#planes_table
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
#planes_table > tr > td
|
||||
{
|
||||
border-bottom: solid black .5px;
|
||||
text-align: center;
|
||||
}
|
||||
div#itinerary_body
|
||||
{
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
img#aircraft_image
|
||||
{
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
div#map_container
|
||||
{
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
.subtab_button
|
||||
{
|
||||
width: 25%;
|
||||
}
|
||||
div#graphs_body
|
||||
{
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
div#graphs_body
|
||||
{
|
||||
overflow: hidden;
|
||||
}
|
||||
img.graphs
|
||||
{
|
||||
height: 70%;
|
||||
left: 10%;
|
||||
position: relative;
|
||||
top: 5%;
|
||||
width: 80%;
|
||||
}
|
||||
img.graphs_s
|
||||
{
|
||||
height: 40%;
|
||||
left: 10%;
|
||||
position: relative;
|
||||
top: 30%;
|
||||
width: 80%;
|
||||
}
|
||||
#arrow_back_graphs
|
||||
{
|
||||
left: 10px;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
}
|
||||
#arrow_forward_graphs
|
||||
{
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 40%;
|
||||
}
|
||||
html::-webkit-scrollbar
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
img#message_rate img#cpu_usage
|
||||
{
|
||||
width: 50%;
|
||||
}
|
||||
div#subtab_buttons>button
|
||||
{
|
||||
margin-left: 20px;
|
||||
width: 100px;
|
||||
}
|
||||
div#subtab_buttons
|
||||
{
|
||||
background: white;
|
||||
bottom: 0px;
|
||||
padding: 5px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
div#map_canvas
|
||||
{
|
||||
height: 100%;
|
||||
margin-right: 390px;
|
||||
}
|
||||
div#sidebar_container
|
||||
{
|
||||
height: 90%;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 50px;
|
||||
width: 390px;
|
||||
}
|
||||
#nav_bar.divider
|
||||
{
|
||||
width: 25px;
|
||||
}
|
||||
.pointer
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
.noselect
|
||||
{
|
||||
khtml-user-select: none;
|
||||
moz-user-select: none;
|
||||
ms-user-select: none;
|
||||
user-select: none;
|
||||
webkit-touch-callout: none;
|
||||
webkit-user-select: none;
|
||||
}
|
||||
.space
|
||||
{
|
||||
display: inline-block;
|
||||
margin: auto;
|
||||
padding-bottom: 0px;
|
||||
padding-right: 20px;
|
||||
padding-top: 0px;
|
||||
width: fit-content;
|
||||
}
|
||||
.space-nopad
|
||||
{
|
||||
display: inline-block;
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
}
|
||||
.center
|
||||
{
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
#radar_aircraft_tab
|
||||
{
|
||||
line-height: 17px;
|
||||
}
|
||||
#img_button
|
||||
{
|
||||
bottom: 50px;
|
||||
position: fixed;
|
||||
right: 10%;
|
||||
}
|
||||
#aircraft_button
|
||||
{
|
||||
bottom: 49px;
|
||||
position: fixed;
|
||||
right: 14%;
|
||||
}
|
||||
#info_button
|
||||
{
|
||||
bottom: 5px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
}
|
||||
#info_icon
|
||||
{
|
||||
bottom: 5px;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
}
|
||||
div#SpecialSquawkWarning
|
||||
{
|
||||
background-color: #FFFFA3;
|
||||
border: 2px solid red;
|
||||
bottom: 25px;
|
||||
filter: alpha(opacity=75);
|
||||
opacity: 0.75;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
right: 430px;
|
||||
text-align: center;
|
||||
}
|
||||
div#update_error
|
||||
{
|
||||
background-color: #FFFFA3;
|
||||
border: 2px solid red;
|
||||
bottom: 25px;
|
||||
filter: alpha(opacity=75);
|
||||
left: 25px;
|
||||
opacity: 0.75;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
}
|
||||
div#loader
|
||||
{
|
||||
background: #000;
|
||||
bottom: 0;
|
||||
filter: alpha(opacity=100);
|
||||
left: 0;
|
||||
opacity: 1;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 99;
|
||||
}
|
||||
#spinny
|
||||
{
|
||||
height: 128px;
|
||||
left: 50%;
|
||||
margin: -64px 0 0 -64px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 128px;
|
||||
}
|
||||
#loader_progress
|
||||
{
|
||||
height: 20px;
|
||||
left: 50%;
|
||||
margin: 128px 0 0 -125px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 250px;
|
||||
}
|
||||
#tableinfo,
|
||||
#sudo_buttons
|
||||
{
|
||||
font-family: monospace;
|
||||
font-size: x-small;
|
||||
}
|
||||
.vPosition
|
||||
{
|
||||
background-color: #d5ffd5;
|
||||
font-weight: bold;
|
||||
}
|
||||
.mlat
|
||||
{
|
||||
background-color: #d5d5ff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.squawk7500
|
||||
{
|
||||
background-color: #ff5555;
|
||||
font-weight: bold;
|
||||
}
|
||||
.squawk7600
|
||||
{
|
||||
background-color: #00ffff;
|
||||
font-weight: bold;
|
||||
}
|
||||
.squawk7700
|
||||
{
|
||||
background-color: #ffff00;
|
||||
font-weight: bold;
|
||||
}
|
||||
.selected
|
||||
{
|
||||
background-color: #dddddd;
|
||||
}
|
||||
.plane_table_row
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
.hidden
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
.infoblock_heading
|
||||
{
|
||||
font-size: larger;
|
||||
}
|
||||
.infoblock_heading a
|
||||
{
|
||||
color: blue;
|
||||
font-size: x-small;
|
||||
text-decoration: none;
|
||||
}
|
||||
.infoblock_body
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
#selected_icao
|
||||
{
|
||||
font-size: x-small;
|
||||
}
|
||||
#selected_registration
|
||||
{
|
||||
font-size: x-small;
|
||||
}
|
||||
#selected_icaotype
|
||||
{
|
||||
font-size: x-small;
|
||||
}
|
||||
.dim
|
||||
{
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
}
|
||||
.pointer
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
||||
td#icao
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#flag
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#flight
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#squawk
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#altitude
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#speed
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#distance
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#track
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#msgs
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
td#seen
|
||||
{
|
||||
font-size: medium;
|
||||
}
|
||||
#modal2_title
|
||||
{
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
text-decoration: bold;
|
||||
}
|
||||
#aircraft_name_css
|
||||
{
|
||||
font-size: 30px;
|
||||
line-height: 25px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#modal3_title
|
||||
{
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
text-decoration: bold;
|
||||
}
|
||||
.material-icons.md-18
|
||||
{
|
||||
font-size: 18px;
|
||||
}
|
||||
.material-icons.md-24
|
||||
{
|
||||
font-size: 24px;
|
||||
}
|
||||
.material-icons.md-36
|
||||
{
|
||||
font-size: 36px;
|
||||
}
|
||||
.material-icons.md-48
|
||||
{
|
||||
font-size: 48px;
|
||||
}
|
||||
.modal
|
||||
{
|
||||
background-color: rgb(0, 0, 0);
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
display: none;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
}
|
||||
.modal-content
|
||||
{
|
||||
background-color: #fefefe;
|
||||
border: 1px solid #888;
|
||||
height: 80%;
|
||||
margin: 2% auto;
|
||||
padding: 20px;
|
||||
width: 90%;
|
||||
}
|
||||
.close
|
||||
{
|
||||
color: #aaa;
|
||||
float: right;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.close:hover,
|
||||
.close:focus
|
||||
{
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
.logo
|
||||
{
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 10%;
|
||||
width: 80%;
|
||||
}
|
||||
.settingslogo
|
||||
{
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 2%;
|
||||
width: 40%;
|
||||
}
|
||||
.settingstext
|
||||
{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
}
|
||||
.home_table
|
||||
{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 60%;
|
||||
}
|
||||
#home_page
|
||||
{
|
||||
overflow: hidden;
|
||||
}
|
||||
#settings_page
|
||||
{
|
||||
overflow: hidden;
|
||||
}
|
||||
#settingstext>table
|
||||
{
|
||||
margin: auto;
|
||||
}
|
||||
#external_mode_button
|
||||
{
|
||||
left: 50%;
|
||||
position: relative;
|
||||
right: 50%;
|
||||
}
|
||||
#settingstext>table>tbody>tr>td
|
||||
{
|
||||
padding: 15px;
|
||||
}
|
||||
#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td
|
||||
{
|
||||
left: -25%;
|
||||
position: relative;
|
||||
top: 0;
|
||||
}
|
||||
#settingstext>table:nth-child(1)>tbody>tr:nth-child(3)>td
|
||||
{
|
||||
left: -25%;
|
||||
position: relative;
|
||||
top: 0;
|
||||
}
|
||||
#home_page>table>tbody>tr>td>img
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
#arrivals
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
#departures
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
#sch-arrivals
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
#sch-departures
|
||||
{
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
.airportBoard
|
||||
{
|
||||
border: black solid 2px;
|
||||
}
|
||||
#aircraft_image1
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
#aircraft_image2
|
||||
{
|
||||
bottom: 12%;
|
||||
left: 5%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
#aircraft_image3
|
||||
{
|
||||
bottom: 12%;
|
||||
left: 30.5%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
#aircraft_image4
|
||||
{
|
||||
bottom: 12%;
|
||||
left: 56%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
#metar_loading
|
||||
{
|
||||
top: 4px;
|
||||
}
|
||||
#itinerary_loading
|
||||
{
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
#flight_progress_circle
|
||||
{
|
||||
position: absolute;
|
||||
right: 25%;
|
||||
top: 10%;
|
||||
}
|
||||
#flight_progress_title
|
||||
{
|
||||
font-size: 18px;
|
||||
position: absolute;
|
||||
right: 5%;
|
||||
top: 22%;
|
||||
}
|
||||
#flight_progress_elapsed_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 68%;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
}
|
||||
#flight_progress_remaining_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 53%;
|
||||
}
|
||||
#flight_progress_time_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 66%;
|
||||
}
|
||||
#flight_progress_elapsed_amount
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 45%;
|
||||
}
|
||||
#flight_progress_remaining_amount
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 58%;
|
||||
}
|
||||
#flight_progress_time_amount
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 71%;
|
||||
}
|
||||
#aircraft_name_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 66%;
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
}
|
||||
#aircraft_model_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 66%;
|
||||
position: absolute;
|
||||
top: 33%;
|
||||
}
|
||||
#aircraft_registration_title
|
||||
{
|
||||
font-size: 18px;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 46%;
|
||||
}
|
||||
#aircraft_name_addl
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 25%;
|
||||
}
|
||||
#aircraft_model
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 69.5%;
|
||||
position: absolute;
|
||||
top: 38%;
|
||||
}
|
||||
#aircraft_registration
|
||||
{
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 69%;
|
||||
position: absolute;
|
||||
top: 51%;
|
||||
}
|
||||
#external_connected
|
||||
{
|
||||
background-color: black;
|
||||
color: red;
|
||||
font-size: xx-large;
|
||||
font-weight: bold;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
#external_title
|
||||
{
|
||||
animation: blinkingText 1s infinite;
|
||||
left: 22%;
|
||||
position: absolute;
|
||||
top: 55%;
|
||||
}
|
||||
|
||||
|
||||
#external_image
|
||||
{
|
||||
animation: blinkingText 1s infinite;
|
||||
left: 43%;
|
||||
position: absolute;
|
||||
top: 30%;
|
||||
}
|
||||
@keyframes blinkingText
|
||||
{
|
||||
0%
|
||||
{
|
||||
opacity: 0;
|
||||
}
|
||||
50%
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
100%
|
||||
{
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@@ -1,34 +1,3 @@
|
||||
#aircraft_button {
|
||||
bottom: 49px;
|
||||
position: fixed;
|
||||
right: 14%;
|
||||
}
|
||||
|
||||
#aircraft_image1 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#aircraft_image2 {
|
||||
bottom: 12%;
|
||||
left: 5%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
|
||||
#aircraft_image3 {
|
||||
bottom: 12%;
|
||||
left: 30.5%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
|
||||
#aircraft_image4 {
|
||||
bottom: 12%;
|
||||
left: 56%;
|
||||
position: absolute;
|
||||
width: 24.5%;
|
||||
}
|
||||
|
||||
#aircraft_info_overlay {
|
||||
color: rgba(255, 255, 255, .7);
|
||||
font-size: large;
|
||||
@@ -36,70 +5,12 @@
|
||||
top: 175px;
|
||||
}
|
||||
|
||||
#aircraft_model {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 69.5%;
|
||||
position: absolute;
|
||||
top: 38%;
|
||||
}
|
||||
|
||||
#aircraft_model_title {
|
||||
font-size: 18px;
|
||||
left: 66%;
|
||||
position: absolute;
|
||||
top: 33%;
|
||||
}
|
||||
|
||||
#aircraft_name_addl {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 25%;
|
||||
}
|
||||
|
||||
#aircraft_name_css {
|
||||
font-size: 30px;
|
||||
line-height: 25px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#aircraft_name_title {
|
||||
font-size: 18px;
|
||||
left: 66%;
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
}
|
||||
|
||||
#aircraft_registration {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 69%;
|
||||
position: absolute;
|
||||
top: 51%;
|
||||
}
|
||||
|
||||
#aircraft_registration_title {
|
||||
font-size: 18px;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 46%;
|
||||
}
|
||||
|
||||
#aircraft_tab_background {
|
||||
filter: brightness(50%);
|
||||
height: 225px;
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
#arrivals {
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
#arrow_back_graphs {
|
||||
left: 10px;
|
||||
position: absolute;
|
||||
@@ -131,13 +42,6 @@
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
#departures {
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
#expand_icon {
|
||||
height: 10%;
|
||||
position: absolute;
|
||||
@@ -194,68 +98,6 @@
|
||||
top: 55%;
|
||||
}
|
||||
|
||||
#flight_progress_circle {
|
||||
position: absolute;
|
||||
right: 25%;
|
||||
top: 10%;
|
||||
}
|
||||
|
||||
#flight_progress_div {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#flight_progress_elapsed_amount {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 45%;
|
||||
}
|
||||
|
||||
#flight_progress_elapsed_title {
|
||||
font-size: 18px;
|
||||
left: 68%;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
}
|
||||
|
||||
#flight_progress_remaining_amount {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 58%;
|
||||
}
|
||||
|
||||
#flight_progress_remaining_title {
|
||||
font-size: 18px;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 53%;
|
||||
}
|
||||
|
||||
#flight_progress_time_amount {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
left: 64%;
|
||||
position: absolute;
|
||||
top: 71%;
|
||||
}
|
||||
|
||||
#flight_progress_time_title {
|
||||
font-size: 18px;
|
||||
left: 67%;
|
||||
position: absolute;
|
||||
top: 66%;
|
||||
}
|
||||
|
||||
#flight_progress_title {
|
||||
font-size: 18px;
|
||||
position: absolute;
|
||||
right: 5%;
|
||||
top: 22%;
|
||||
}
|
||||
|
||||
#home_page {
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -264,12 +106,6 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#img_button {
|
||||
bottom: 70px;
|
||||
position: fixed;
|
||||
right: 10%;
|
||||
}
|
||||
|
||||
#info_button {
|
||||
bottom: 5px;
|
||||
position: absolute;
|
||||
@@ -282,17 +118,6 @@
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
#arrivals {}
|
||||
|
||||
#loader_progress {
|
||||
height: 20px;
|
||||
left: 50%;
|
||||
margin: 128px 0 0 -125px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
#lock_button {
|
||||
background-color: rgba(0, 0, 0, .3);
|
||||
line-height: 0%;
|
||||
@@ -308,22 +133,6 @@
|
||||
top: 4px;
|
||||
}
|
||||
|
||||
#modal2_title {
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
text-decoration: bold;
|
||||
}
|
||||
|
||||
#modal3_title {
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
text-decoration: bold;
|
||||
}
|
||||
|
||||
#nav_bar.divider {
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
#percentage {
|
||||
bottom: 0px;
|
||||
font-size: 12px;
|
||||
@@ -340,10 +149,6 @@
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#planestable {
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
#power_button {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
@@ -368,31 +173,6 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#radar_aircraft_tab {
|
||||
line-height: 17px;
|
||||
}
|
||||
|
||||
#sch-arrivals {
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
#sch-departures {
|
||||
display: inline-table;
|
||||
margin: auto;
|
||||
padding: 5px;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
#selected_icao {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
#selected_icaotype {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
#selected_position {
|
||||
left: 138px;
|
||||
@@ -400,10 +180,6 @@
|
||||
top: 228px;
|
||||
}
|
||||
|
||||
#selected_registration {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
#settings_page {
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -451,25 +227,12 @@
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#spinny {
|
||||
height: 128px;
|
||||
left: 50%;
|
||||
margin: -64px 0 0 -64px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 128px;
|
||||
}
|
||||
|
||||
#tableinfo,
|
||||
#sudo_buttons {
|
||||
font-family: monospace;
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
#tableinfo::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#vol_down_button {
|
||||
position: absolute;
|
||||
right: 250px;
|
||||
@@ -575,15 +338,6 @@
|
||||
border: rgba(255, 255, 255, .7) solid 2px;
|
||||
}
|
||||
|
||||
.mainHeader {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.center {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.close {
|
||||
color: #aaa;
|
||||
float: right;
|
||||
@@ -598,11 +352,6 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.dim {
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
@@ -621,12 +370,6 @@
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
.infoblock_heading a {
|
||||
color: blue;
|
||||
font-size: x-small;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
@@ -635,27 +378,10 @@
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.material-icons.md-18 {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.material-icons.md-24 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.material-icons.md-36 {
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.material-icons.md-48 {
|
||||
font-size: 48px;
|
||||
}
|
||||
|
||||
.mlat {
|
||||
background-color: #d5d5ff;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.modal {
|
||||
background-color: rgb(0, 0, 0);
|
||||
background-color: rgba(0, 0, 0, 0.75);
|
||||
@@ -679,12 +405,7 @@
|
||||
}
|
||||
|
||||
.noselect {
|
||||
khtml-user-select: none;
|
||||
moz-user-select: none;
|
||||
ms-user-select: none;
|
||||
user-select: none;
|
||||
webkit-touch-callout: none;
|
||||
webkit-user-select: none;
|
||||
}
|
||||
|
||||
.plane_table_row {
|
||||
@@ -701,10 +422,6 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.selected {
|
||||
background-color: #dddddd;
|
||||
}
|
||||
|
||||
.settingslogo {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
@@ -713,27 +430,6 @@
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.settingstext {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.space {
|
||||
display: inline-block;
|
||||
margin: auto;
|
||||
padding-bottom: 0px;
|
||||
padding-right: 20px;
|
||||
padding-top: 0px;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.space-nopad {
|
||||
display: inline-block;
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.squawk7500 {
|
||||
background-color: #ff5555;
|
||||
font-weight: bold;
|
||||
@@ -749,29 +445,11 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.subtab_button {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.vPosition {
|
||||
background-color: #d5ffd5;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@keyframes blinkingText {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
div#graphs_body {
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -783,13 +461,6 @@ div#graphs_body {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div#itinerary_body {
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div#loader {
|
||||
background: #000;
|
||||
bottom: 0;
|
||||
@@ -847,24 +518,15 @@ div#itin_nav_bar {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#itin_title {
|
||||
color: rgba(255, 255, 255, .7);
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -18px;
|
||||
}
|
||||
|
||||
div#sidebar_container {
|
||||
background-color: rgba(0, 0, 0, .9);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 8px 0 rgba(255, 255, 255, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19);
|
||||
display: none;
|
||||
height: 85%;
|
||||
ms-overflow-style: none;
|
||||
overflow: auto;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
scrollbar-width: none;
|
||||
top: 60px;
|
||||
width: 390px;
|
||||
z-index: 1;
|
||||
@@ -886,21 +548,6 @@ div#SpecialSquawkWarning {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div#subtab_buttons {
|
||||
background: transparent;
|
||||
bottom: 15px;
|
||||
display: none;
|
||||
padding: 5px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
div#subtab_buttons>button {
|
||||
margin-left: 20px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
div#update_error {
|
||||
background-color: #FFFFA3;
|
||||
border: 2px solid red;
|
||||
@@ -961,17 +608,6 @@ div.atc_state {
|
||||
width: 42%;
|
||||
}
|
||||
|
||||
.itin_header1 {
|
||||
box-shadow: 0 4px 8px 0 rgba(255, 255, 255, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19);
|
||||
display: inline-block;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
margin: 5px;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
width: 28%;
|
||||
}
|
||||
|
||||
#itin_airport_name {
|
||||
font-size: 46px;
|
||||
font-weight: bold;
|
||||
@@ -1120,16 +756,6 @@ div.atc_header1 {
|
||||
#radar_button {
|
||||
color: rgba(255, 255, 255, .8);
|
||||
}
|
||||
#radar_flight_tab_button {
|
||||
color: rgba(255, 255, 255, .7);
|
||||
}
|
||||
#radar_aircraft_tab_button {
|
||||
color: rgba(255, 255, 255, .7);
|
||||
}
|
||||
#radar_radar_tab_button {
|
||||
color: rgba(255, 255, 255, .7);
|
||||
}
|
||||
|
||||
#home_button {
|
||||
color:rgba(255, 255, 255, .7);
|
||||
background-color: transparent;
|
||||
@@ -1154,11 +780,6 @@ html::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
img#aircraft_image {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
img#message_rate img#cpu_usage {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
@@ -571,7 +571,6 @@
|
||||
.close:hover,
|
||||
.close:focus {
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -672,9 +671,6 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.selected {
|
||||
background-color: #dddddd;
|
||||
|
||||
@@ -5,16 +5,12 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta charset="utf-8" />
|
||||
<link id="theme" rel="stylesheet" type="text/css" href="css/ui2-light.css" />
|
||||
<link rel="stylesheet" href="css/jquery-ui.min.css" />
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/jquery-ui.min.js"></script>
|
||||
|
||||
<script src="ol/ol.js"></script>
|
||||
<link rel="stylesheet" href="ol/ol.css">
|
||||
<script src="js/ol-layerswitcher.js"></script>
|
||||
<link rel="stylesheet" href="css/ol-layerswitcher.css" />
|
||||
<link rel="stylesheet" href="css/css-circular-prog-bar.css" type="text/css" />
|
||||
<script type="text/javascript" src="js/luxon.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/flightinfo.js"></script>
|
||||
<script type="text/javascript" src="js/config.js"></script>
|
||||
<script type="text/javascript" src="js/liveatc.js"></script>
|
||||
@@ -37,7 +33,7 @@
|
||||
<title>Aviation Assistant</title>
|
||||
</head>
|
||||
|
||||
<body onload="initialize()" scroll="no">
|
||||
<body id="body" onload="initialize()" scroll="no">
|
||||
<div id="loader" class="hidden">
|
||||
<img src="images/spinny.gif" id="spinny" alt="Loading...">
|
||||
<progress id="loader_progress"></progress>
|
||||
@@ -125,11 +121,13 @@
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<button id="button_background" class=" mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect"
|
||||
<button id="button_background"
|
||||
class=" mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect"
|
||||
style="width: 40px; height: 40px; min-width: initial;" onclick="setBrightness('down')">
|
||||
<i class="material-icons">remove</i>
|
||||
</button> <span id="brightness-text">Brightness (<span id="brightness_level"></span>)</span>
|
||||
<button id="button_background" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect"
|
||||
<button id="button_background"
|
||||
class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect"
|
||||
style="width: 40px; height: 40px; min-width: initial;" onclick="setBrightness('up')">
|
||||
<i class="material-icons">add</i>
|
||||
</button>
|
||||
@@ -249,7 +247,7 @@
|
||||
</button>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</div>
|
||||
<div id="map_container">
|
||||
<div id="map_canvas"></div>
|
||||
@@ -267,15 +265,17 @@
|
||||
<div id="itin_airport_long_name"></div>
|
||||
<div id="itin_airport_city"></div>
|
||||
<div id="itin_airport_loc"></div>
|
||||
<button id="itin_arrivals" onclick="itinAirportArrivals()" class="mdl-button mdl-js-button mdl-button--raised">
|
||||
<button id="itin_arrivals" onclick="itinAirportArrivals()"
|
||||
class="mdl-button mdl-js-button mdl-button--raised">
|
||||
Arrivals Chart
|
||||
</button>
|
||||
<button id="itin_departures" onclick="itinAirportDepartures()" class="mdl-button mdl-js-button mdl-button--raised">
|
||||
</button>
|
||||
<button id="itin_departures" onclick="itinAirportDepartures()"
|
||||
class="mdl-button mdl-js-button mdl-button--raised">
|
||||
Departures Chart
|
||||
</button>
|
||||
<button id="itin_back" class="mdl-button mdl-js-button mdl-button--raised">
|
||||
</button>
|
||||
<button id="itin_back" class="mdl-button mdl-js-button mdl-button--raised">
|
||||
Back
|
||||
</button>
|
||||
</button>
|
||||
</div>
|
||||
<div id="itin_arr" style="display: none"></div>
|
||||
<div id="itin_dep" style="display: none"></div>
|
||||
@@ -337,16 +337,15 @@
|
||||
<tr>
|
||||
<td style="text-align: left">
|
||||
<b><span id="flight_airport_short_origin"
|
||||
style="font-size: 18px;">N/A</span></b><br>
|
||||
<span id="flight_airport_long_origin" style="font-size: 12px;">N/A</span><br>
|
||||
<span id="flight_airport_loc_origin" style="font-size: 10px;">N/A</span>
|
||||
style="font-size: 18px;"></span></b><br>
|
||||
<span id="flight_airport_long_origin" style="font-size: 12px;"></span><br>
|
||||
<span id="flight_airport_loc_origin" style="font-size: 10px;"></span>
|
||||
</td>
|
||||
<td style="text-align: right">
|
||||
<b><span id="flight_airport_short_destination"
|
||||
style="font-size: 18px;">N/A</span></b><br>
|
||||
<span id="flight_airport_long_destination"
|
||||
style="font-size: 12px;">N/A</span><br>
|
||||
<span id="flight_airport_loc_destination" style="font-size: 10px;">N/A</span>
|
||||
style="font-size: 18px;"></span></b><br>
|
||||
<span id="flight_airport_long_destination" style="font-size: 12px;"></span><br>
|
||||
<span id="flight_airport_loc_destination" style="font-size: 10px;"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -427,146 +426,6 @@
|
||||
<!-- planes_table -->
|
||||
|
||||
</div>
|
||||
<div id="radar_flight_tab" style="display: none;">
|
||||
<div id="radar_flight_info" style="display: none;"><br>
|
||||
<span id="flight_airline" style="font-size: 28px;">Example Airline</span><span
|
||||
id="flight_flightnum" style="font-size: 28px;">Number</span><span
|
||||
style="font-size: 28px;"> (<span id="flight_flighticaonum"></span>)</span>
|
||||
<br><br>
|
||||
<i><span id="flight_status" style="font-size: 20px;">En Route</span></i><br><br>
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td style="text-align: left">
|
||||
<span id="flight_airport_short_origin" style="font-size: 30px;">N/A</span><br>
|
||||
<span id="flight_airport_long_origin" style="font-size: 16px;">N/A</span><br>
|
||||
<span id="flight_airport_loc_origin" style="font-size: 14px;">N/A</span>
|
||||
</td>
|
||||
<td style="text-align: right">
|
||||
<span id="flight_airport_short_destination"
|
||||
style="font-size: 30px;">N/A</span><br>
|
||||
<span id="flight_airport_long_destination"
|
||||
style="font-size: 16px;">N/A</span><br>
|
||||
<span id="flight_airport_loc_destination" style="font-size: 14px;">N/A</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table><br>
|
||||
<div id="flight_progress_div">
|
||||
<div id="flight_progress" class="mdl-progress mdl-js-progress"></div><br>
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td style="text-align: left;" id="flight_depart_time"
|
||||
style="font-size: 10px;width: 50%;">
|
||||
Depart Time
|
||||
</td>
|
||||
<td style="text-align: right;" id="flight_arrival_time"
|
||||
style="font-size: 10px;width: 50%;">
|
||||
Arrival Time
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: left;" style="font-size: 10px;">
|
||||
Terminal / Gate:<br><span id="flight_depart_terminal"></span><span
|
||||
id="flight_depart_gate"></span>
|
||||
</td>
|
||||
|
||||
<td style="text-align: right;" style="font-size: 10px;">
|
||||
Terminal / Gate:<br><span id="flight_arrival_terminal"></span><span
|
||||
id="flight_arrival_gate"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<button class="mdl-button mdl-js-button mdl-button--raised" id="img_button">
|
||||
More Flight Information
|
||||
</button>
|
||||
</div>
|
||||
<div id="radar_flight_loading" class="mdl-progress mdl-js-progress mdl-progress__indeterminate">
|
||||
</div>
|
||||
<div id="image_modal" class="modal">
|
||||
|
||||
<!-- Modal content -->
|
||||
<div class="modal-content">
|
||||
<span class="close" id="close_modal2">×</span>
|
||||
<span id="modal2_title">Additional Flight Information</span><br>
|
||||
<img id="progress_image" src="">
|
||||
<div id="additional_info_hidden">
|
||||
<div class="progress-circle" id="flight_progress_circle">
|
||||
<span id="flight_percentage_spinner"></span>
|
||||
<div class="left-half-clipper">
|
||||
<div class="first50-bar"></div>
|
||||
<div class="value-bar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<span id="flight_progress_title">Total Flight Progress</span>
|
||||
<span id="flight_progress_remaining_title">Hours Remaining</span>
|
||||
<span id="flight_progress_remaining_amount"></span>
|
||||
<span id="flight_progress_elapsed_title">Time Elapsed</span>
|
||||
<span id="flight_progress_elapsed_amount"></span>
|
||||
<span id="flight_progress_time_title">Total Flight Time</span>
|
||||
<span id="flight_progress_time_amount"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="radar_aircraft_tab" style="display: none;">
|
||||
<div id="radar_aircraft_info" style="display: none;">
|
||||
<img src="" id="aircraft_image1"><br><br>
|
||||
<span id="aircraft_name_css"><span id="aircraft_name"></span> </span><br><br>
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<th style="text-align: center">Engine Type</th>
|
||||
<th style="text-align: center">Engine Count</th>
|
||||
<th style="text-align: center">Plane Age</th>
|
||||
<th style="text-align: center">Plane Status</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center" id="aircraft_engine"></td>
|
||||
<td style="text-align: center" id="aircraft_engine_count"></td>
|
||||
<td style="text-align: center" id="aircraft_age"></td>
|
||||
<td style="text-align: center" id="aircraft_status"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="text-align: center">Rollout Date</th>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<th style="text-align: center">First Flight</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center" id="aircraft_first_flight"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: center" id="aircraft_rollout_date"></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<button class="mdl-button mdl-js-button mdl-button--raised" id="aircraft_button">
|
||||
More Information
|
||||
</button>
|
||||
</div>
|
||||
<div id="radar_aircraft_loading"
|
||||
class="mdl-progress mdl-js-progress mdl-progress__indeterminate"></div>
|
||||
<div id="aircraft_modal" class="modal">
|
||||
|
||||
<!-- Modal content -->
|
||||
<div class="modal-content">
|
||||
<span class="close" id="close_modal3">×</span>
|
||||
<span id="modal3_title">Additional Aircraft Information</span><br>
|
||||
<img src="" id="aircraft_image1-1">
|
||||
<a onmousedown="setBigImage('aircraft_image2')"><img src="" id="aircraft_image2"></a>
|
||||
<a onmousedown="setBigImage('aircraft_image3')"><img src="" id="aircraft_image3"></a>
|
||||
<a onmousedown="setBigImage('aircraft_image4')"><img src="" id="aircraft_image4"></a>
|
||||
<span id="aircraft_name_title">Aircraft Name:</span>
|
||||
<span id="aircraft_name_addl"></span>
|
||||
<span id="aircraft_model_title">Aircraft Model:</span>
|
||||
<span id="aircraft_model"></span>
|
||||
<span id="aircraft_registration_title">Aircraft Registration:</span>
|
||||
<span id="aircraft_registration"></span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -646,7 +505,7 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- sidebar_container -->
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+2
-3
@@ -9,7 +9,7 @@
|
||||
var keys = {}
|
||||
// API Keys
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "tiles/keys.json", true);
|
||||
xhr.open("GET", "information/keys.json", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
@@ -20,7 +20,6 @@ xhr.send();
|
||||
|
||||
|
||||
var ol3d
|
||||
var cesuim_active = false
|
||||
var internet_mode = 0
|
||||
var lastMETAR = 0
|
||||
var lastItin = 0
|
||||
@@ -41,7 +40,7 @@ xhr1.send();
|
||||
|
||||
var flight_info = {}
|
||||
var TAB = "Radar"
|
||||
var DateTime = luxon.DateTime;
|
||||
//var DateTime = luxon.DateTime;
|
||||
var graph_types = ["/dump1090-localhost-local_trailing_rate-", "/dump1090-localhost-aircraft-", "/dump1090-localhost-tracks-", "/dump1090-localhost-signal-", "/dump1090-localhost-local_rate-", "/dump1090-localhost-aircraft_message_rate-", "/dump1090-localhost-cpu-", "/system-localhost-cpu-", "/system-localhost-temperature-", "/system-localhost-memory-", "/system-localhost-network_bandwidth-", "/system-localhost-df_root-", "/system-localhost-disk_io_iops-", "/system-localhost-disk_io_octets-"]
|
||||
/* var graph_types = {
|
||||
"ADSB Message Rate": "/dump1090-localhost-local_trailing_rate-",
|
||||
|
||||
+55
-354
@@ -1,371 +1,72 @@
|
||||
// Generic update function for radar subtabs
|
||||
function updateFlightTab() {
|
||||
if (flight_info[SelectedPlane]) {
|
||||
if (internet_mode) {
|
||||
$.getJSON('json/airlines.json', function (world_airlines) {
|
||||
$.getJSON('json/world_airports.json', function (world_airports) {
|
||||
$.getJSON('json/airplanes.json', function (aircraft_information) {
|
||||
var flightdata = flight_info[SelectedPlane]
|
||||
var scheduledata = flight_info[SelectedPlane].schedule
|
||||
flightInfo(flightdata, world_airports, world_airlines)
|
||||
flightProgress(flightdata, world_airports, scheduledata)
|
||||
getAircraftInfo(aircraft_information, flightdata)
|
||||
getPlaneImage(flightdata)
|
||||
document.getElementById("radar_flight_info").style.display = "block"
|
||||
document.getElementById("radar_flight_loading").style.display = "none"
|
||||
document.getElementById("radar_aircraft_info").style.display = "block"
|
||||
document.getElementById("radar_aircraft_loading").style.display = "none"
|
||||
})
|
||||
});
|
||||
});
|
||||
// Planes[SelectedPlane] gives
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = ""
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = ""
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = ""
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = ""
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = ""
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = ""
|
||||
|
||||
} else {
|
||||
if (internet_mode) {
|
||||
$.getJSON('json/airlines.json', function (world_airlines) {
|
||||
$.getJSON('json/world_airports.json', function (world_airports) {
|
||||
$.getJSON('json/airplanes.json', function (aircraft_information) {
|
||||
// Planes[SelectedPlane] gives
|
||||
document.getElementById("flight_progress_div").style.display = "none"
|
||||
document.getElementById('additional_info_hidden').style.display = "none"
|
||||
document.getElementById("img_button").disabled = true
|
||||
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = "N/A"
|
||||
|
||||
for (element in internet_mode_data) {
|
||||
if (internet_mode_data[element].hex === SelectedPlane) {
|
||||
var data = internet_mode_data[element]
|
||||
if (data.airline != "") {
|
||||
document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "")
|
||||
document.getElementById("flight_status").innerHTML = ""
|
||||
document.getElementById("flight_flighticaonum").innerHTML = data.flight
|
||||
try {
|
||||
document.getElementById("flight_airline").innerHTML = world_airlines[data.airline].nameAirline + " "
|
||||
} catch {
|
||||
document.getElementById("flight_airline").innerHTML = "N/A "
|
||||
}
|
||||
} else {
|
||||
//document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "")
|
||||
document.getElementById("flight_status").innerHTML = ""
|
||||
document.getElementById("flight_flightnum").innerHTML = ""
|
||||
document.getElementById("flight_flighticaonum").innerHTML = data.flight
|
||||
document.getElementById("flight_airline").innerHTML = data.flight
|
||||
for (element in internet_mode_data) {
|
||||
if (internet_mode_data[element].hex === SelectedPlane) {
|
||||
var data = internet_mode_data[element]
|
||||
if (data.airline != "") {
|
||||
document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "")
|
||||
try {
|
||||
document.getElementById("flight_airline").innerHTML = world_airlines[data.airline].nameAirline + " "
|
||||
} catch {
|
||||
document.getElementById("flight_airline").innerHTML = "N/A "
|
||||
}
|
||||
for (airport_search in world_airports) {
|
||||
if (world_airports[airport_search].iata === internet_mode_data[element].arr && internet_mode_data[element].arr != "") {
|
||||
var airport = world_airports[airport_search]
|
||||
try {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = airport.name
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = airport.icao
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = airport.city + ", " + country_names[airport.country]
|
||||
} catch {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = "N/A"
|
||||
}
|
||||
} else if (internet_mode_data[element].arr === "") {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = "N/A"
|
||||
} else {
|
||||
//document.getElementById("flight_flightnum").innerHTML = data.flight.replace(/\D/g, "")
|
||||
document.getElementById("flight_flightnum").innerHTML = ""
|
||||
document.getElementById("flight_airline").innerHTML = data.flight
|
||||
}
|
||||
for (airport_search in world_airports) {
|
||||
if (world_airports[airport_search].iata === internet_mode_data[element].arr && internet_mode_data[element].arr != "") {
|
||||
var airport = world_airports[airport_search]
|
||||
try {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = airport.name
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = airport.icao
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = airport.city + ", " + country_names[airport.country]
|
||||
} catch {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = ""
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = ""
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = ""
|
||||
}
|
||||
} else if (internet_mode_data[element].arr === "") {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = ""
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = ""
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = ""
|
||||
}
|
||||
|
||||
if (world_airports[airport_search].iata === internet_mode_data[element].dep && internet_mode_data[element].dep != "") {
|
||||
var airport = world_airports[airport_search]
|
||||
try {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = airport.name
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = airport.icao
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = airport.city + ", " + country_names[airport.country]
|
||||
} catch {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = "N/A"
|
||||
}
|
||||
} else if (internet_mode_data[element].dep === "") {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = "N/A"
|
||||
if (world_airports[airport_search].iata === internet_mode_data[element].dep && internet_mode_data[element].dep != "") {
|
||||
var airport = world_airports[airport_search]
|
||||
try {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = airport.name
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = airport.icao
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = airport.city + ", " + country_names[airport.country]
|
||||
} catch {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = ""
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = ""
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = ""
|
||||
}
|
||||
} else if (internet_mode_data[element].dep === "") {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = ""
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = ""
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
document.getElementById("radar_flight_info").style.display = "block"
|
||||
document.getElementById("radar_flight_loading").style.display = "none"
|
||||
document.getElementById("radar_aircraft_info").style.display = "block"
|
||||
document.getElementById("radar_aircraft_loading").style.display = "none"
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
})
|
||||
});
|
||||
} else {
|
||||
$.getJSON("https://aviation-edge.com/v2/public/flights?key=" + keys['AE'] + "&aircraftIcao24=" + SelectedPlane, function (flightdata) {
|
||||
flightdata = flightdata[0]
|
||||
$.getJSON("https://aviation-edge.com/v2/public/timetable?key=" + keys['AE'] + "&flight_icao=" + flightdata.flight.icaoNumber + "&status=active", function (scheduledata) {
|
||||
scheduledata = scheduledata[0]
|
||||
$.getJSON('json/airlines.json', function (world_airlines) {
|
||||
$.getJSON('json/world_airports.json', function (world_airports) {
|
||||
$.getJSON('json/airplanes.json', function (aircraft_information) {
|
||||
flight_info[SelectedPlane] = flightdata
|
||||
flight_info[SelectedPlane].schedule = scheduledata
|
||||
flight_info[SelectedPlane].aircraft.information = aircraft_information[flightdata.aircraft.iataCode]
|
||||
flightInfo(flightdata, world_airports, world_airlines)
|
||||
flightProgress(flightdata, world_airports, scheduledata)
|
||||
getAircraftInfo(aircraft_information, flightdata)
|
||||
getPlaneImage(flightdata)
|
||||
|
||||
document.getElementById("radar_flight_info").style.display = "block"
|
||||
document.getElementById("radar_flight_loading").style.display = "none"
|
||||
document.getElementById("radar_aircraft_info").style.display = "block"
|
||||
document.getElementById("radar_aircraft_loading").style.display = "none"
|
||||
document.getElementById("img_button").disabled = false
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// handles information of flight itself
|
||||
function flightInfo(data, world_airports, world_airlines) {
|
||||
try {
|
||||
document.getElementById("flight_flightnum").innerHTML = data.flight.number
|
||||
document.getElementById("flight_status").innerHTML = toTitleCase(data.status)
|
||||
document.getElementById("flight_flighticaonum").innerHTML = data.flight.icaoNumber
|
||||
try {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = world_airports[data.departure.icaoCode].name
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = data.departure.icaoCode
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = world_airports[data.departure.icaoCode].city + ", " + country_names[world_airports[data.departure.icaoCode].country]
|
||||
} catch {
|
||||
document.getElementById("flight_airport_long_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_origin").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_origin").innerHTML = "N/A"
|
||||
}
|
||||
|
||||
try {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = world_airports[data.arrival.icaoCode].name
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = data.arrival.icaoCode
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = world_airports[data.arrival.icaoCode].city + ", " + country_names[world_airports[data.arrival.icaoCode].country]
|
||||
} catch {
|
||||
document.getElementById("flight_airport_long_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_short_destination").innerHTML = "N/A"
|
||||
document.getElementById("flight_airport_loc_destination").innerHTML = "N/A"
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
document.getElementById("flight_airline").innerHTML = world_airlines[data.airline.icaoCode].nameAirline + " "
|
||||
} catch {
|
||||
document.getElementById("flight_airline").innerHTML = "N/A "
|
||||
}
|
||||
} catch {
|
||||
radarRadarTabSwitch()
|
||||
}
|
||||
}
|
||||
|
||||
// get's aircraft information
|
||||
function getAircraftInfo(aircraft_information, data) {
|
||||
var aircraft = aircraft_information[data.aircraft.iataCode]
|
||||
if (aircraft) {
|
||||
document.getElementById("aircraft_name").innerHTML = aircraft.productionLine
|
||||
document.getElementById("aircraft_name_addl").innerHTML = aircraft.productionLine
|
||||
document.getElementById("aircraft_model").innerHTML = aircraft.modelCode
|
||||
document.getElementById("aircraft_registration").innerHTML = aircraft.numberRegistration
|
||||
document.getElementById("aircraft_engine").innerHTML = aircraft.enginesType
|
||||
document.getElementById("aircraft_engine_count").innerHTML = aircraft.enginesCount
|
||||
document.getElementById("aircraft_status").innerHTML = toTitleCase(aircraft.planeStatus)
|
||||
document.getElementById("aircraft_age").innerHTML = aircraft.planeAge
|
||||
if (aircraft.rolloutDate) {
|
||||
document.getElementById("aircraft_rollout_date").innerHTML = DateTime.fromISO(aircraft.rolloutDate).toLocaleString("DATE_SHORT")
|
||||
}
|
||||
if (aircraft.firstFlight) {
|
||||
document.getElementById("aircraft_first_flight").innerHTML = DateTime.fromISO(aircraft.firstFlight).toLocaleString("DATE_SHORT")
|
||||
}
|
||||
|
||||
} else {
|
||||
radarRadarTabSwitch()
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Flight's current progress
|
||||
function flightProgress(flightdata, world_airports, data) {
|
||||
try {
|
||||
arrival_timezone = world_airports[data.arrival.icaoCode].tz
|
||||
departure_timezone = world_airports[data.departure.icaoCode].tz
|
||||
|
||||
if (data.departure.actualTime) {
|
||||
departure_time = DateTime.fromISO(data.departure.actualTime, {
|
||||
zone: departure_timezone
|
||||
});
|
||||
} else if (data.departure.estimatedTime) {
|
||||
departure_time = DateTime.fromISO(data.departure.estimatedTime, {
|
||||
zone: departure_timezone
|
||||
});
|
||||
} else if (data.departure.scheduledTime) {
|
||||
departure_time = DateTime.fromISO(data.departure.scheduledTime, {
|
||||
zone: departure_timezone
|
||||
});
|
||||
}
|
||||
|
||||
if (data.arrival.actualTime) {
|
||||
arrival_time = DateTime.fromISO(data.arrival.actualTime, {
|
||||
zone: arrival_timezone
|
||||
});
|
||||
} else if (data.arrival.estimatedTime) {
|
||||
arrival_time = DateTime.fromISO(data.arrival.estimatedTime, {
|
||||
zone: arrival_timezone
|
||||
});
|
||||
} else if (data.arrival.scheduledTime) {
|
||||
arrival_time = DateTime.fromISO(data.arrival.scheduledTime, {
|
||||
zone: arrival_timezone
|
||||
});
|
||||
}
|
||||
|
||||
arrival_time = arrival_time.setZone("America/New_York")
|
||||
departure_time = departure_time.setZone("America/New_York")
|
||||
document.getElementById("flight_depart_time").innerHTML = departure_time.toLocaleString(DateTime.DATETIME_MED)
|
||||
document.getElementById("flight_arrival_time").innerHTML = arrival_time.toLocaleString(DateTime.DATETIME_MED)
|
||||
var trip_progress = getTripProgress(arrival_time, departure_time)
|
||||
document.getElementById("flight_percentage_spinner").innerHTML = trip_progress + "%"
|
||||
document.getElementById("flight_progress_circle").setAttribute("class", "progress-circle p" + trip_progress)
|
||||
flight_info[SelectedPlane].schedule.progress = trip_progress
|
||||
getFlightPlanImage(flightdata, trip_progress, world_airports)
|
||||
document.getElementById("flight_progress_div").style.display = "block"
|
||||
document.getElementById('additional_info_hidden').style.display = "block"
|
||||
if (data.departure.terminal) {
|
||||
document.getElementById("flight_depart_terminal").innerHTML = data.departure.terminal
|
||||
}
|
||||
if (data.departure.gate) {
|
||||
document.getElementById("flight_depart_gate").innerHTML = data.departure.gate
|
||||
}
|
||||
|
||||
if (data.arrival.terminal) {
|
||||
document.getElementById("flight_arrival_terminal").innerHTML = data.arrival.terminal
|
||||
}
|
||||
if (data.arrival.gate) {
|
||||
document.getElementById("flight_arrival_gate").innerHTML = data.arrival.gate
|
||||
}
|
||||
} catch {
|
||||
document.getElementById("flight_progress_div").style.display = "none"
|
||||
document.getElementById('additional_info_hidden').style.display = "none"
|
||||
getFlightPlanImage(flightdata, 1, world_airports)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Flight progress percentage
|
||||
function getTripProgress(arrival_time, departure_time) {
|
||||
var current_time = DateTime.local();
|
||||
var total_time = arrival_time.diff(departure_time);
|
||||
var time_elapsed = current_time.diff(departure_time);
|
||||
var trip_progress = ((time_elapsed * 100) / total_time).toFixed(0)
|
||||
var time_remaining = arrival_time.diff(current_time);
|
||||
document.getElementById("flight_progress").MaterialProgress.setProgress(trip_progress);
|
||||
if (time_remaining.days != 0) {
|
||||
document.getElementById("flight_progress_remaining_amount").innerHTML = time_remaining.toFormat("o 'Day(s), ' h 'Hour(s), ' m 'Minute(s)'")
|
||||
} else {
|
||||
document.getElementById("flight_progress_remaining_amount").innerHTML = time_remaining.toFormat("h 'Hour(s), ' m 'Minute(s)'")
|
||||
}
|
||||
if (time_elapsed.days != 0) {
|
||||
document.getElementById("flight_progress_elapsed_amount").innerHTML = time_elapsed.toFormat("o 'Day(s), ' h 'Hour(s), ' m 'Minute(s)'")
|
||||
} else {
|
||||
document.getElementById("flight_progress_elapsed_amount").innerHTML = time_elapsed.toFormat("h 'Hour(s), ' m 'Minute(s)'")
|
||||
}
|
||||
if (total_time.days != 0) {
|
||||
document.getElementById("flight_progress_time_amount").innerHTML = total_time.toFormat("o 'Day(s), ' h 'Hour(s), ' m 'Minute(s)'")
|
||||
} else {
|
||||
document.getElementById("flight_progress_time_amount").innerHTML = total_time.toFormat("h 'Hour(s), ' m 'Minute(s)'")
|
||||
}
|
||||
|
||||
return trip_progress
|
||||
}
|
||||
|
||||
// Get image of aircraft
|
||||
function getPlaneImage(flightdata) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://"+window.location.hostname+":5000/cmd", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
var page_nodes = $($.parseHTML(xhr.response));
|
||||
var img1 = page_nodes.find("#results > div:nth-child(1) > div.result__section.result__section--photo-wrapper > a > img")
|
||||
var img2 = page_nodes.find("#results > div:nth-child(3) > div.result__section.result__section--photo-wrapper > a > img")
|
||||
var img3 = page_nodes.find("#results > div:nth-child(4) > div.result__section.result__section--photo-wrapper > a > img")
|
||||
var img4 = page_nodes.find("#results > div:nth-child(5) > div.result__section.result__section--photo-wrapper > a > img")
|
||||
if (img2) {
|
||||
document.getElementById("aircraft_image2").setAttribute('src', img2.attr('src'))
|
||||
flight_info[SelectedPlane].aircraft.imageurl2 = img2.attr('src')
|
||||
document.getElementById("aircraft_image3").style.display = "block"
|
||||
} else {
|
||||
document.getElementById("aircraft_image2").style.display = "none"
|
||||
}
|
||||
|
||||
if (img3) {
|
||||
document.getElementById("aircraft_image3").setAttribute('src', img3.attr('src'))
|
||||
flight_info[SelectedPlane].aircraft.imageurl3 = img3.attr('src')
|
||||
document.getElementById("aircraft_image3").style.display = "block"
|
||||
} else {
|
||||
document.getElementById("aircraft_image3").style.display = "none"
|
||||
}
|
||||
|
||||
if (img4) {
|
||||
document.getElementById("aircraft_image4").style.display = "block"
|
||||
document.getElementById("aircraft_image4").setAttribute('src', img4.attr('src'))
|
||||
flight_info[SelectedPlane].aircraft.imageurl4 = img4.attr('src')
|
||||
} else {
|
||||
document.getElementById("aircraft_image4").style.display = "none"
|
||||
}
|
||||
|
||||
|
||||
|
||||
document.getElementById("aircraft_image1").setAttribute('src', img1.attr('src'))
|
||||
document.getElementById("aircraft_image1-1").setAttribute('src', img1.attr('src'))
|
||||
flight_info[SelectedPlane].aircraft.imageurl1 = img1.attr('src')
|
||||
return
|
||||
}
|
||||
}
|
||||
xhr.send(JSON.stringify({
|
||||
command: "curl https://127.0.0.1:7000/www.jetphotos.com/photo/keyword/" + flightdata.aircraft.regNumber
|
||||
}));
|
||||
}
|
||||
|
||||
// get image of whole flight path
|
||||
function getFlightPlanImage(data, flight_progress, world_airports) {
|
||||
try {
|
||||
departure_timezone = world_airports[data.departure.icaoCode].tz
|
||||
/*
|
||||
if (data.departure.actualTime) {
|
||||
departure_time = DateTime.fromISO(data.departure.actualTime, {
|
||||
zone: departure_timezone
|
||||
});
|
||||
} else if (data.departure.estimatedTime) {
|
||||
departure_time = DateTime.fromISO(data.departure.estimatedTime, {
|
||||
zone: departure_timezone
|
||||
});
|
||||
} else if (data.departure.scheduledTime) {
|
||||
departure_time = DateTime.fromISO(data.departure.scheduledTime, {
|
||||
zone: departure_timezone
|
||||
});
|
||||
}
|
||||
*/
|
||||
departure_time = DateTime.local();
|
||||
var dep_date = departure_time.toFormat('yyyyMMdd')
|
||||
document.getElementById("progress_image").setAttribute("src", "https://www.flightview.com/fvPublicSiteFT/FlightViewCGI.exe?qtype=gif&acid=" + data.flight.iataNumber + "&depap=" + data.departure.iataCode + "&arrap=" + data.arrival.iataCode + "&depdate=" + dep_date + "&pctcomplete=" + flight_progress)
|
||||
flight_info[SelectedPlane].flightimage = "https://www.flightview.com/fvPublicSiteFT/FlightViewCGI.exe?qtype=gif&acid=" + data.flight.iataNumber + "&depap=" + data.departure.iataCode + "&arrap=" + data.arrival.iataCode + "&depdate=" + dep_date + "&pctcomplete=" + flight_progress
|
||||
document.getElementById("img_button").disabled = false
|
||||
} catch {
|
||||
document.getElementById("image_modal").style.display = "none"
|
||||
document.getElementById("img_button").disabled = true
|
||||
}
|
||||
}
|
||||
|
||||
function setBigImage(source) {
|
||||
var source_url = document.getElementById(source).getAttribute("src")
|
||||
var dest_url = document.getElementById("aircraft_image1-1").getAttribute("src")
|
||||
document.getElementById("aircraft_image1-1").setAttribute("src", source_url)
|
||||
document.getElementById(source).setAttribute("src", dest_url)
|
||||
}
|
||||
+4
-69
@@ -45,7 +45,7 @@ function playPLS(url, title) {
|
||||
// PLS INFO
|
||||
const proxyurl = "http://" + window.location.hostname + ":7000/";
|
||||
var request = $.ajax({
|
||||
url: 'json/liveatc.json',
|
||||
url: 'information/liveatc.json',
|
||||
timeout: 5000,
|
||||
cache: true,
|
||||
dataType: 'json'
|
||||
@@ -80,7 +80,7 @@ function playPause() {
|
||||
function listStations() {
|
||||
document.getElementById("atc_selector").innerHTML = ""
|
||||
var request = $.ajax({
|
||||
url: 'json/liveatc.json',
|
||||
url: 'information/liveatc.json',
|
||||
timeout: 5000,
|
||||
cache: true,
|
||||
dataType: 'json'
|
||||
@@ -118,7 +118,7 @@ function selectState(state) {
|
||||
var node = document.createElement("hr")
|
||||
document.getElementById("atc_selector").appendChild(node)
|
||||
var request = $.ajax({
|
||||
url: 'json/liveatc.json',
|
||||
url: 'information/liveatc.json',
|
||||
timeout: 5000,
|
||||
cache: true,
|
||||
dataType: 'json'
|
||||
@@ -165,7 +165,7 @@ function selectAirport(airport, state) {
|
||||
var node = document.createElement("hr")
|
||||
document.getElementById("atc_selector").appendChild(node)
|
||||
var request = $.ajax({
|
||||
url: 'json/liveatc.json',
|
||||
url: 'information/liveatc.json',
|
||||
timeout: 5000,
|
||||
cache: true,
|
||||
dataType: 'json'
|
||||
@@ -188,71 +188,6 @@ function selectAirport(airport, state) {
|
||||
|
||||
}
|
||||
|
||||
//DEPRECATED - NOT USED - GENERATES FILE
|
||||
function startPulling() {
|
||||
var json = {}
|
||||
|
||||
FetchPending = $.ajax({
|
||||
url: 'json/us_airports.json',
|
||||
timeout: 5000,
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
});
|
||||
FetchPending.done(function (data) {
|
||||
var us_airports = data
|
||||
for (state in us_airports) {
|
||||
for (airport in us_airports[state].airports) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://127.0.0.1:5000/cmd", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
console.log(xhr.response)
|
||||
let a = $(data);
|
||||
if (json[airport_json[airport].state]) {
|
||||
|
||||
} else {
|
||||
json[airport_json[airport].state] = {}
|
||||
}
|
||||
|
||||
if (json[airport_json[airport].state].airports) {
|
||||
|
||||
} else {
|
||||
json[airport_json[airport].state].airports = {}
|
||||
}
|
||||
if (a('font.body > font[color="red"]').html()) {
|
||||
json[airport_json[airport].state].airports[airport].feeds = "ERROR"
|
||||
} else {
|
||||
var feedName = a('table.body > tbody > tr > td[bgcolor="lightblue"]');
|
||||
n = 0
|
||||
json[airport_json[airport].state].airports[airport].feeds = {}
|
||||
json[airport_json[airport].state].airports[airport].name = airport_json[airport].name
|
||||
for (b in feedName) {
|
||||
let title = a(b).find("strong").text();
|
||||
json[airport_json[airport].state].airports[airport].feeds[n] = {}
|
||||
json[airport_json[airport].state].airports[airport].feeds[n].name = title
|
||||
n++
|
||||
}
|
||||
var pageurl = a('table.body > tbody > tr:nth-child(4) > td')
|
||||
i = 0
|
||||
for (url in pageurl) {
|
||||
let title = a(url).find("a").attr('href');
|
||||
if (title) {
|
||||
json[airport_json[airport].state].airports[airport].feeds[i].url = title
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
xhr.send(JSON.stringify({
|
||||
command: "https://www.liveatc.net/search/?icao=" + airport
|
||||
}));
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function HHMMSS(time) {
|
||||
var sec_num = parseInt(time, 10); // don't forget the second param
|
||||
var hours = Math.floor(sec_num / 3600);
|
||||
|
||||
File diff suppressed because one or more lines are too long
+3
-3
@@ -4,7 +4,7 @@ function initializeSchedulesPage() {
|
||||
document.getElementById("itin_body").innerHTML = ""
|
||||
document.getElementById("itin_img").setAttribute("src", 'images/black.jpg')
|
||||
FetchPending = $.ajax({
|
||||
url: 'json/liveatc.json',
|
||||
url: 'information/liveatc.json',
|
||||
timeout: 5000,
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
@@ -141,7 +141,7 @@ function retrieveSchedule(airport, state) {
|
||||
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://"+window.location.hostname+":5000/cmd", true);
|
||||
xhr.open("POST", "http://"+window.location.hostname+":5000/curl", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
@@ -251,7 +251,7 @@ function retrieveSchedule(airport, state) {
|
||||
}
|
||||
}
|
||||
xhr.send(JSON.stringify({
|
||||
command: "curl https://flightaware.com/live/airport/" + airport
|
||||
url: "https://flightaware.com/live/airport/" + airport
|
||||
}));
|
||||
|
||||
}
|
||||
+6
-29
@@ -246,6 +246,12 @@ function initialize() {
|
||||
document.getElementById("graphs_holder").setAttribute("class", "graphs_s")
|
||||
document.getElementById("graphs_holder").setAttribute("src", "http://localhost/graphs1090/graphs" + graph_types[starting_graph] + "2h.png")
|
||||
$("#loader").removeClass("hidden");
|
||||
|
||||
if (navigator.userAgent === "RPI") {
|
||||
document.getElementById("body").style.cursor = "none"
|
||||
} else {
|
||||
|
||||
}
|
||||
// Get receiver metadata, reconfigure using it, then continue
|
||||
// with initialization
|
||||
$.ajax({
|
||||
@@ -1014,10 +1020,6 @@ function selectPlaneByHex(hex, autofollow) {
|
||||
Planes[SelectedPlane].clearLines();
|
||||
Planes[SelectedPlane].updateMarker();
|
||||
$(Planes[SelectedPlane].tr).removeClass("selected");
|
||||
document.getElementById("radar_flight_info").style.display = "none"
|
||||
document.getElementById("radar_flight_loading").style.display = "block"
|
||||
document.getElementById("radar_aircraft_info").style.display = "none"
|
||||
document.getElementById("radar_aircraft_loading").style.display = "block"
|
||||
document.getElementById("lock_button").disabled = false
|
||||
closeSidebar()
|
||||
document.getElementById("tableinfo").style.display = "block"
|
||||
@@ -1029,13 +1031,8 @@ function selectPlaneByHex(hex, autofollow) {
|
||||
// (unless it was a doubleclick..)
|
||||
if (SelectedPlane === hex && !autofollow) {
|
||||
hex = null;
|
||||
document.getElementById("radar_flight_info").style.display = "none"
|
||||
document.getElementById("radar_flight_loading").style.display = "block"
|
||||
document.getElementById("radar_aircraft_info").style.display = "none"
|
||||
document.getElementById("radar_aircraft_loading").style.display = "block"
|
||||
document.getElementById("lock_button").disabled = false
|
||||
closeSidebar()
|
||||
radarRadarTabSwitch()
|
||||
document.getElementById("tableinfo").style.display = "block"
|
||||
|
||||
}
|
||||
@@ -1046,23 +1043,14 @@ function selectPlaneByHex(hex, autofollow) {
|
||||
document.getElementById("aircraft_tab_background").setAttribute('src', "images/black.jpg")
|
||||
tabBackgroundImage()
|
||||
expandSidebar()
|
||||
radarRadarTabSwitch()
|
||||
updateFlightTab()
|
||||
document.getElementById("tableinfo").style.display = "none"
|
||||
Planes[SelectedPlane].selected = true;
|
||||
Planes[SelectedPlane].updateLines();
|
||||
Planes[SelectedPlane].updateMarker();
|
||||
$(Planes[SelectedPlane].tr).addClass("selected");
|
||||
document.getElementById("radar_flight_info").style.display = "none"
|
||||
document.getElementById("radar_flight_loading").style.display = "block"
|
||||
document.getElementById("radar_aircraft_info").style.display = "none"
|
||||
document.getElementById("radar_aircraft_loading").style.display = "block"
|
||||
} else {
|
||||
SelectedPlane = null;
|
||||
document.getElementById("radar_flight_info").style.display = "none"
|
||||
document.getElementById("radar_flight_loading").style.display = "block"
|
||||
document.getElementById("radar_aircraft_info").style.display = "none"
|
||||
document.getElementById("radar_aircraft_loading").style.display = "block"
|
||||
}
|
||||
|
||||
if (SelectedPlane !== null && autofollow) {
|
||||
@@ -1096,15 +1084,4 @@ function resetMap() {
|
||||
OLMap.getView().setCenter(ol.proj.fromLonLat([CenterLon, CenterLat]));
|
||||
|
||||
selectPlaneByHex(null, false);
|
||||
}
|
||||
|
||||
function toggleOffline() {
|
||||
// Activates Offline Mode
|
||||
if (OfflineMode === true) {
|
||||
OfflineMode = false
|
||||
console.log("False")
|
||||
} else {
|
||||
OfflineMode = true
|
||||
console.log("True")
|
||||
}
|
||||
}
|
||||
+14
-119
@@ -82,17 +82,6 @@ function ktsToMPH(num) {
|
||||
return num * 1.15078
|
||||
}
|
||||
|
||||
function showInformation() {
|
||||
document.getElementById("settings_information").style.display = "block"
|
||||
document.getElementById("settings_default").style.display = "none"
|
||||
|
||||
}
|
||||
|
||||
function showDefault() {
|
||||
document.getElementById("settings_default").style.display = "block"
|
||||
document.getElementById("settings_information").style.display = "none"
|
||||
}
|
||||
|
||||
function volUp() {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/audio", true);
|
||||
@@ -139,6 +128,7 @@ function changeMapBounds(btm_left, top_right) {
|
||||
long_east: btm_left[0],
|
||||
long_west: top_right[0]
|
||||
}
|
||||
console.log(json)
|
||||
xhr.send(JSON.stringify(json));
|
||||
}
|
||||
|
||||
@@ -177,42 +167,6 @@ function modal() {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
}
|
||||
modal2()
|
||||
}
|
||||
|
||||
function modal2() {
|
||||
var modal = document.getElementById("image_modal");
|
||||
var btn = document.getElementById("img_button");
|
||||
var span = document.getElementById("close_modal2");
|
||||
btn.onclick = function () {
|
||||
modal.style.display = "block";
|
||||
}
|
||||
span.onclick = function () {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
window.onclick = function (event) {
|
||||
if (event.target == modal) {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
}
|
||||
modal3()
|
||||
}
|
||||
|
||||
function modal3() {
|
||||
var modal = document.getElementById("aircraft_modal");
|
||||
var btn = document.getElementById("aircraft_button");
|
||||
var span = document.getElementById("close_modal3");
|
||||
btn.onclick = function () {
|
||||
modal.style.display = "block";
|
||||
}
|
||||
span.onclick = function () {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
window.onclick = function (event) {
|
||||
if (event.target == modal) {
|
||||
modal.style.display = "none";
|
||||
}
|
||||
}
|
||||
modal4()
|
||||
}
|
||||
|
||||
@@ -250,7 +204,7 @@ function getInitialVolume() {
|
||||
|
||||
function getCPUTemp() {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true);
|
||||
xhr.open("GET", "http://" + window.location.hostname + ":5000/cputemp", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
@@ -262,9 +216,7 @@ function getCPUTemp() {
|
||||
document.getElementById("internal_temperature").style.color = hsl_col_perc(temp_percentage, 0, 120)
|
||||
}
|
||||
}
|
||||
xhr.send(JSON.stringify({
|
||||
command: "vcgencmd measure_temp"
|
||||
}));
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
function readBrightnessLevel() {
|
||||
@@ -312,25 +264,6 @@ function setBrightness(direction) {
|
||||
}
|
||||
}
|
||||
|
||||
function offlineToggle() {
|
||||
if (document.getElementById("switch-1").checked) {
|
||||
openRadar()
|
||||
document.getElementById("metar_button").disabled = true;
|
||||
document.getElementById("liveatc_button").disabled = true;
|
||||
document.getElementById("player").pause()
|
||||
document.getElementById("itinerary_button").style.opacity = .4
|
||||
document.getElementById("itinerary_button").classList.remove("pointer")
|
||||
document.getElementById("itinerary_button").removeAttribute("onclick")
|
||||
} else {
|
||||
document.getElementById("metar_button").disabled = false;
|
||||
document.getElementById("liveatc_button").disabled = false;
|
||||
document.getElementById("itinerary_button").style.opacity = 1
|
||||
document.getElementById("itinerary_button").classList.add("pointer")
|
||||
document.getElementById("itinerary_button").setAttribute("onclick", "goItinerary()")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function lockPlane() {
|
||||
selectPlaneByHex(SelectedPlane, true);
|
||||
document.getElementById("lock_button").disabled = true
|
||||
@@ -340,7 +273,7 @@ function sendCMD(cmd) {
|
||||
if (cmd === "update") {
|
||||
var output = ""
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true);
|
||||
xhr.open("GET", "http://" + window.location.hostname + ":5000/update", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
@@ -360,14 +293,12 @@ function sendCMD(cmd) {
|
||||
}
|
||||
}
|
||||
}
|
||||
xhr.send(JSON.stringify({
|
||||
command: "sudo git pull"
|
||||
}));
|
||||
xhr.send();
|
||||
}
|
||||
if (cmd === "getbranch") {
|
||||
var output = ""
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true);
|
||||
xhr.open("GET", "http://" + window.location.hostname + ":5000/branch", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
@@ -396,7 +327,7 @@ function sendCMD(cmd) {
|
||||
snackbarContainer.MaterialSnackbar.showSnackbar(data);
|
||||
var output = ""
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true);
|
||||
xhr.open("GET", "http://" + window.location.hostname + ":5000/shutdown", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
@@ -404,9 +335,7 @@ function sendCMD(cmd) {
|
||||
output = xhr.response
|
||||
}
|
||||
}
|
||||
xhr.send(JSON.stringify({
|
||||
command: "cd /usr/local/bin && sudo x728softsd.sh"
|
||||
}));
|
||||
xhr.send();
|
||||
}
|
||||
if (cmd === "restart") {
|
||||
var snackbarContainer = document.getElementById('no-updates-snackbar');
|
||||
@@ -416,7 +345,7 @@ function sendCMD(cmd) {
|
||||
snackbarContainer.MaterialSnackbar.showSnackbar(data);
|
||||
var output = ""
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true);
|
||||
xhr.open("GET", "http://" + window.location.hostname + ":5000/reboot", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
@@ -424,9 +353,7 @@ function sendCMD(cmd) {
|
||||
output = xhr.response
|
||||
}
|
||||
}
|
||||
xhr.send(JSON.stringify({
|
||||
command: "cd /usr/local/bin && sudo reboot"
|
||||
}));
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
|
||||
@@ -472,7 +399,7 @@ function changeColorMode() {
|
||||
const themeStylesheet = document.getElementById('theme')
|
||||
//const themeToggle = document.getElementById('theme-toggle')
|
||||
if (themeStylesheet.href.includes('light')) {
|
||||
|
||||
themeStylesheet.href = 'css/ui2-dark.css'
|
||||
document.getElementById("logo").setAttribute("src", "images/dark/logo.png")
|
||||
document.getElementById("radar_image").setAttribute("src", "images/dark/radar.png")
|
||||
document.getElementById("itinerary_image").setAttribute("src", "images/dark/itinerary.png")
|
||||
@@ -496,10 +423,10 @@ function changeColorMode() {
|
||||
|
||||
function changeBranch(branch) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/cmd", true);
|
||||
xhr.open("POST", "http://" + window.location.hostname + ":5000/setbranch", true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/json');
|
||||
xhr.send(JSON.stringify({
|
||||
command: "sudo git checkout " + branch
|
||||
command: branch
|
||||
}));
|
||||
sendCMD("getbranch")
|
||||
}
|
||||
@@ -567,23 +494,6 @@ function itinAirportDepartures() {
|
||||
document.getElementById("itin_info").style.display = "none"
|
||||
}
|
||||
|
||||
function radarRadarTabSwitch() {
|
||||
document.getElementById("radar_radar_tab").style.display = "block"
|
||||
document.getElementById("radar_flight_tab").style.display = "none"
|
||||
document.getElementById("radar_aircraft_tab").style.display = "none"
|
||||
}
|
||||
|
||||
function radarFlightTabSwitch() {
|
||||
document.getElementById("radar_radar_tab").style.display = "none"
|
||||
document.getElementById("radar_flight_tab").style.display = "block"
|
||||
document.getElementById("radar_aircraft_tab").style.display = "none"
|
||||
}
|
||||
|
||||
function radarAircraftTabSwitch() {
|
||||
document.getElementById("radar_radar_tab").style.display = "none"
|
||||
document.getElementById("radar_flight_tab").style.display = "none"
|
||||
document.getElementById("radar_aircraft_tab").style.display = "block"
|
||||
}
|
||||
|
||||
function changeGraphsTime() {
|
||||
var time = document.getElementById("graphs_time").value
|
||||
@@ -621,13 +531,6 @@ function changeGraph(direction) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toTitleCase(str) {
|
||||
return str.toLowerCase().split(' ').map(function (word) {
|
||||
return (word.charAt(0).toUpperCase() + word.slice(1));
|
||||
}).join(' ');
|
||||
}
|
||||
|
||||
function hsl_col_perc(percent, start, end) {
|
||||
var a = percent / 100,
|
||||
b = (end - start) * a,
|
||||
@@ -636,12 +539,4 @@ function hsl_col_perc(percent, start, end) {
|
||||
// Return a CSS HSL string
|
||||
return 'hsl(' + c + ', 100%, 50%)';
|
||||
// hsl_col_perc(bed_percent, 0, 120)
|
||||
}
|
||||
|
||||
function toggleMarkers() {
|
||||
if (text_labels) {
|
||||
text_labels = 0
|
||||
} else {
|
||||
text_labels = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
Generated
-11
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"olcs": {
|
||||
"version": "2.13.0",
|
||||
"resolved": "https://registry.npmjs.org/olcs/-/olcs-2.13.0.tgz",
|
||||
"integrity": "sha512-5H41vMRdyvDcy4BWm+6V7vkS7glK+jVpUysVRqhzPnXjwvJG9NnvMxKBhAjBG07Lh9QAKAPMLnQ+RWDofN707Q=="
|
||||
}
|
||||
}
|
||||
}
|
||||
+41
-3
@@ -50,14 +50,52 @@ def volume():
|
||||
level = os.popen('vol').read()
|
||||
return str(level)
|
||||
|
||||
@app.route('/cmd',methods = ['POST'])
|
||||
def command():
|
||||
@app.route('/curl',methods = ['POST'])
|
||||
def curl():
|
||||
if request.method == 'POST':
|
||||
json = request.get_json()
|
||||
output = os.popen("cd /usr/share/dump1090-mutability/html && "+json['command']).read()
|
||||
output = os.popen("curl "+json['url']).read()
|
||||
#output = os.popen(json['command']).read()
|
||||
return str(output)
|
||||
|
||||
@app.route('/cputemp',methods = ['GET'])
|
||||
def cputemp():
|
||||
if request.method == 'GET':
|
||||
output = os.popen("vcgencmd measure_temp").read()
|
||||
return str(output)
|
||||
|
||||
@app.route('/update',methods = ['GET'])
|
||||
def update():
|
||||
if request.method == 'GET':
|
||||
output = os.popen("sudo git pull").read()
|
||||
return str(output)
|
||||
|
||||
@app.route('/branch',methods = ['GET'])
|
||||
def branch():
|
||||
if request.method == 'GET':
|
||||
output = os.popen("sudo git branch | grep -F '*'").read()
|
||||
return str(output)
|
||||
|
||||
@app.route('/shutdown',methods = ['GET'])
|
||||
def shutdown():
|
||||
if request.method == 'GET':
|
||||
output = os.popen("cd /usr/local/bin && sudo x728softsd.sh").read()
|
||||
return str(output)
|
||||
|
||||
|
||||
@app.route('/reboot',methods = ['GET'])
|
||||
def reboot():
|
||||
if request.method == 'GET':
|
||||
output = os.popen("cd /usr/local/bin && sudo reboot").read()
|
||||
return str(output)
|
||||
|
||||
@app.route('/setbranch',methods = ['POST'])
|
||||
def setbranch():
|
||||
if request.method == 'POST':
|
||||
json = request.get_json()
|
||||
output = os.popen("cd /usr/share/dump1090-mutability/html && sudo git checkout " +json['branch']).read()
|
||||
return str(output)
|
||||
|
||||
|
||||
@app.after_request
|
||||
def after_request(response):
|
||||
|
||||
@@ -32,26 +32,6 @@ app.use(function (req, res, next) {
|
||||
next();
|
||||
});
|
||||
|
||||
/*
|
||||
function getData() {
|
||||
//console.log('http://localhost:7000/data-live.flightradar24.com/zones/fcgi/feed.js?faa=1&bounds='+bounds.lat_north.toFixed(3)+'%2C'+bounds.lat_south.toFixed(3)+'%2C'+bounds.long_east.toFixed(3)+'%2C'+bounds.long_west.toFixed(3)+'&satellite=1&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&maxage=14400&gliders=1&stats=1')
|
||||
const options = {
|
||||
url: 'http://localhost:7000/data-live.flightradar24.com/zones/fcgi/feed.js?faa=1&bounds=' + bounds.lat_north.toFixed(3) + '%2C' + bounds.lat_south.toFixed(3) + '%2C' + bounds.long_east.toFixed(3) + '%2C' + bounds.long_west.toFixed(3) + '&satellite=1&mlat=1&flarm=1&adsb=1&gnd=1&air=1&vehicles=1&estimated=1&maxage=14400&gliders=1&stats=1',
|
||||
headers: {
|
||||
'x-requested-with': 'request',
|
||||
"origin": "*",
|
||||
"timeout": 4000
|
||||
}
|
||||
};
|
||||
request(options, function (error, response, body) {
|
||||
if (body) {
|
||||
//console.log(body)
|
||||
parseData(body)
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
function getData() {
|
||||
var xhr = new XMLHttpRequest()
|
||||
xhr.open("POST", "http://127.0.0.1:5000/cmd", true);
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
cd "/mnt/c/Users/Nicholas Pease/Offline Documents/cors-anywhere"
|
||||
export PORT=7000
|
||||
node server.js &
|
||||
|
||||
cd "/mnt/c/Users/Nicholas Pease/OneDrive/Documents/AviationAssistant/python"
|
||||
python api_pc.py &
|
||||
|
||||
cd "/mnt/c/Users/Nicholas Pease/OneDrive/Documents/AviationAssistant/"
|
||||
python -m http.server 9500
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
sudo python /usr/share/dump1090-mutability/html/python/battery.py & > /dev/null 2>&1 &
|
||||
sudo python /usr/share/dump1090-mutability/html/python/api.py & > /dev/null 2>&1 &
|
||||
sudo node /usr/share/dump1090-mutability/html/scripts/internet_data.js & > /usr/share/dump1090-mutability/html/scripts/log &
|
||||
sudo node /usr/share/dump1090-mutability/html/scripts/internet_data.js & > /dev/null 2>&1 &
|
||||
/usr/bin/wget http://server1.nicholaspease.com:6500/reports/liveatc.json -O /home/pi/dump1090-info/liveatc.json
|
||||
|
||||
export PORT=8080
|
||||
sudo node /home/pi/cors-anywhere/server.js
|
||||
Reference in New Issue
Block a user