Rebased, Better Performance, Fixed Internet Aircraft #2

Merged
npease merged 44 commits from rewrite2022 into unstable 2022-06-04 18:24:37 -09:00
24 changed files with 2436 additions and 4364 deletions
+4 -1
View File
@@ -5,4 +5,7 @@ json/keys.json
/tiles/
/data/aircraft1.json
/data/battery.json
/data/
/data/
/.vscode/
/information_files/
/information/
-6
View File
@@ -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
-499
View File
@@ -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);
}
-21
View File
File diff suppressed because one or more lines are too long
-806
View File
@@ -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;
}
}
-756
View File
@@ -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;
}
}
-379
View File
@@ -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%;
}
-4
View File
@@ -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;
View File
+22 -163
View File
@@ -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;">&nbsp;(<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">&times;</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">&times;</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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
-1
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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
}
}
}
-11
View File
@@ -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
View File
@@ -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):
-20
View File
@@ -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);
-9
View File
@@ -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
View File
@@ -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