diff --git a/.gitignore b/.gitignore index 25ab2bc..1708808 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ *.swp *.pyc *.log -js/mobile.js -js/init_plot.js -css/mobile.css -cache.manifest +/index.html +/service-worker.js +/js/version.json tiles/ diff --git a/.htaccess b/.htaccess deleted file mode 100644 index 3d763d3..0000000 --- a/.htaccess +++ /dev/null @@ -1,38 +0,0 @@ - - # Compress HTML, CSS, JavaScript, Text, XML and fonts - AddOutputFilterByType DEFLATE application/javascript - AddOutputFilterByType DEFLATE application/rss+xml - AddOutputFilterByType DEFLATE application/vnd.ms-fontobject - AddOutputFilterByType DEFLATE application/x-font - AddOutputFilterByType DEFLATE application/x-font-opentype - AddOutputFilterByType DEFLATE application/x-font-otf - AddOutputFilterByType DEFLATE application/x-font-truetype - AddOutputFilterByType DEFLATE application/x-font-ttf - AddOutputFilterByType DEFLATE application/x-javascript - AddOutputFilterByType DEFLATE application/xhtml+xml - AddOutputFilterByType DEFLATE application/xml - AddOutputFilterByType DEFLATE font/opentype - AddOutputFilterByType DEFLATE font/otf - AddOutputFilterByType DEFLATE font/ttf - AddOutputFilterByType DEFLATE image/svg+xml - AddOutputFilterByType DEFLATE image/x-icon - AddOutputFilterByType DEFLATE text/css - AddOutputFilterByType DEFLATE text/html - AddOutputFilterByType DEFLATE text/javascript - AddOutputFilterByType DEFLATE text/plain - AddOutputFilterByType DEFLATE text/xml - - # Remove browser bugs (only needed for ancient browsers) - BrowserMatch ^Mozilla/4 gzip-only-text/html - BrowserMatch ^Mozilla/4\.0[678] no-gzip - BrowserMatch \bMSIE !no-gzip !gzip-only-text/html - Header append Vary User-Agent - - -AddType text/cache-manifest .manifest -AddType text/cache-manifest .appcache - -AddType application/x-font-woff .woff -AddType application/x-font-ttf .ttf -AddType application/vnd.ms-fontobject .eot -AddType image/svg+xml .svg diff --git a/DEVELOPER_README.md b/DEVELOPER_README.md index 3272308..6f38d04 100644 --- a/DEVELOPER_README.md +++ b/DEVELOPER_README.md @@ -4,6 +4,6 @@ To get a copy of the code and run a test web server: 1. [Fork the repository](https://github.com/projecthorus/sondehub-tracker/fork) by visiting [https://github.com/projecthorus/sondehub-tracker/fork](https://github.com/projecthorus/sondehub-tracker/fork). 2. Clone the repository with your git tool of choice. -3. Run `build.sh` to compile the javascript files. (This requires Java to be installed and in your path.) +3. Run `build.sh` to generate `index.html`, `service-worker.js`, and `js/version.json`. 4. Run `python serve.py` to run a simple web server to (This requires python 3.x) 5. Visit [http://localhost:8000](http://localhost:8000) to view the local version of the server! diff --git a/Dockerfile b/Dockerfile index fbb1bdb..53107d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:latest -RUN apk add --no-cache python3 openjdk11 sed git +RUN apk add --no-cache python3 sed git WORKDIR /app ADD . . diff --git a/README.md b/README.md index ce5a68a..42427be 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A fork of [habitat-mobile-tracker](https://github.com/rossengeorgiev/habitat-mob ![mobile tracker screenshot](resources/mobiletracker-screencap.png "mobile tracker screenshot") A webapp for tracking radiosondes. Works an desktop and mobile devices. -The SondeHub tracker is a continuation of [spacenear.us/tracker](http://spacenear.us/tracker). +The SondeHub tracker is a continuation of the [HabHub Tracker](http://tracker.habhub.org). ## Features @@ -36,8 +36,6 @@ Pull requests are welcome. ## Installation -Requirements: Java - $ git clone https://github.com/projecthorus/sondehub-tracker.git $ ./build.sh $ python serve.py diff --git a/build.sh b/build.sh index fd6e6d2..948cde1 100755 --- a/build.sh +++ b/build.sh @@ -1,45 +1,22 @@ #!/bin/bash -# compile stylesheet -echo -n "Compiling CSS... " -cd css -rm -f mobile.css -cat base.css skeleton.css layout.css habitat-font.css main.css leaflet.css leaflet.fullscreen.css skewt.css > mobile.tmp -java -jar "../tools/yuicompressor-2.4.8.jar" --type=css mobile.tmp > mobile.css -rm -f mobile.tmp -cd .. -echo "Done!" - -#compile javascript -echo -n "Compiling JavaScript... " -cd js -rm -f mobile.js init_plot.js -# precompiled libs -cat jquery* >> mobile.js +set -e VERSION="`git rev-parse --short HEAD`" +BUILD_DATE="`date -u +%Y-%m-%dT%H:%M:%SZ`" -# compile the rest -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge iscroll.js >> mobile.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge chasecar.lib.js | sed "s/{VER}/$VERSION/" >> mobile.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge tracker.js >> mobile.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge app.js >> mobile.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge colour-map.js >> mobile.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge xdata.js >> mobile.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge station.js >> mobile.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge format.js >> mobile.js - -#compile plot lib and config -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge _jquery.flot.js >> init_plot.js -java -jar "../tools/yuicompressor-2.4.8.jar" --type=js --disable-optimizations --nomunge plot_config.js >> init_plot.js - -cd .. +# create version check file +echo -n "Generating js/version.json... " +echo "{\"build_date\": \"$BUILD_DATE\", \"version\": \"$VERSION\", \"refresh\": 86400}" > js/version.json echo "Done!" -echo -n "Generate cache.manifest..." - -sed "s/^\(# version\) .*$/\1 $VERSION `date +%s`/" cache.manifest-dev > cache.manifest +# cache fixes +echo -n "Generating index.html... " +sed -e "s/{VER}/$VERSION/" -e "s/{BUILD_DATE}/$BUILD_DATE/" index.template.html > index.html +echo "Done!" +echo -n "Generating service-worker.js... " +sed -e "s/{VER}/$VERSION/" service-worker.template.js > service-worker.js echo "Done!" -echo "Build version: $VERSION" +echo "Build version: $VERSION Build date: $BUILD_DATE" diff --git a/cache.manifest-dev b/cache.manifest-dev deleted file mode 100644 index 701d56c..0000000 --- a/cache.manifest-dev +++ /dev/null @@ -1,75 +0,0 @@ -CACHE MANIFEST -# version {VERSION} - -# gogole maps files -http://maps.google.com/maps/api/js?v=3.22&sensor=false&libraries=map,common,controls,util,marker,onion,kml,ga,infowindow,stats,poly,overlay,weather,weather_impl,geometry&language=en_us&key=AIzaSyCOqkcNey4CCyG4X0X5qxHAhCgD8g5DwXg -http://fonts.googleapis.com/css?family=Roboto:300,400,500,700 -http://maps.gstatic.com/mapfiles/undo_poly.png -http://maps.gstatic.com/mapfiles/mv/imgs8.png -http://maps.gstatic.com/mapfiles/transparent.png -http://maps.gstatic.com/mapfiles/api-3/images/mapcnt3.png -http://maps.gstatic.com/mapfiles/api-3/images/google_white2_hdpi.png -http://maps.gstatic.com/mapfiles/api-3/images/google_white2.png -http://maps.gstatic.com/mapfiles/openhand_8_8.cur - -# app files -img/closedhand.cur -img/openhand.cur -img/logo.png -img/blank.png -img/marker-you.png -img/apple-touch-icon.png -img/markers/hab_nyan.gif -img/markers/nyan.gif -img/markers/antenna-green.png -img/markers/balloon-red.png -img/markers/balloon-blue.png -img/markers/balloon-green.png -img/markers/balloon-purple.png -img/markers/balloon-cyan.png -img/markers/balloon-orange.png -img/markers/balloon-yellow.png -img/markers/balloon-rpi.png -img/markers/car-blue.png -img/markers/car-green.png -img/markers/car-red.png -img/markers/car-yellow.png -img/markers/parachute-blue.png -img/markers/parachute-green.png -img/markers/parachute-red.png -img/markers/parachute-yellow.png -img/markers/parachute-cyan.png -img/markers/parachute-orange.png -img/markers/parachute-purple.png -img/markers/parachute-rpi.png -img/markers/payload-blue.png -img/markers/payload-cyan.png -img/markers/payload-green.png -img/markers/payload-orange.png -img/markers/payload-purple.png -img/markers/payload-red.png -img/markers/payload-yellow.png -img/markers/payload-rpi.png -img/markers/shadow.png -img/markers/target-blue.png -img/markers/target-cyan.png -img/markers/target-green.png -img/markers/target-orange.png -img/markers/target-purple.png -img/markers/target-red.png -img/markers/target-yellow.png -img/hab-spinner.gif -css/mobile.css -js/mobile.js -js/init_plot.js -font/HabitatFont.eot -font/HabitatFont.svg -font/HabitatFont.ttf -font/HabitatFont.woff -font/Roboto-regular.woff - -NETWORK: -* - -FALLBACK: -/ index.html diff --git a/css/base.css b/css/base.css index 8c20088..016fe3e 100644 --- a/css/base.css +++ b/css/base.css @@ -29,257 +29,572 @@ /* #Reset & Basics (Inspired by E. Meyers) ================================================== */ - html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; } - sup { - font-size: smaller; - vertical-align: +0.4em; } - sub { - font-size: smaller; - vertical-align: -0.25em; } - article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { - display: block; } - body { - line-height: 1; } - ol, ul { - list-style: none; } - blockquote, q { - quotes: none; } - blockquote:before, blockquote:after, - q:before, q:after { - content: ''; - content: none; } - table { - border-collapse: collapse; - border-spacing: 0; } +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +sup { + font-size: smaller; + vertical-align: +0.4em; +} + +sub { + font-size: smaller; + vertical-align: -0.25em; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} + +body { + line-height: 1; +} + +ol, +ul { + list-style: none; +} + +blockquote, +q { + quotes: none; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} /* #Basic Styles ================================================== */ - body { - background: #fff; - font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #666; - -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */ - -webkit-text-size-adjust: 100%; - } +body { + background: #fff; + font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #666; + -webkit-font-smoothing: antialiased; + /* Fix for webkit rendering */ + -webkit-text-size-adjust: 100%; +} /* #Typography ================================================== */ - h1, h2, h3, h4, h5, h6 { - font-weight: normal; } - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; } - h1 { font-size: 46px; line-height: 50px; margin-bottom: 14px;} - h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; } - h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; } - h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; } - h5 { font-size: 17px; line-height: 24px; } - h6 { font-size: 14px; line-height: 21px; } - .subheader { color: #777; } - - p { margin: 0 0 20px 0; } - p img { margin: 0; } - p.lead { font-size: 21px; line-height: 27px; color: #777; } - - em { font-style: italic; } - strong { font-weight: bold; color: #333; } - b { font-weight: bold; } - small { font-size: 80%; } +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: normal; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + font-weight: inherit; +} + +h1 { + font-size: 46px; + line-height: 50px; + margin-bottom: 14px; +} + +h2 { + font-size: 35px; + line-height: 40px; + margin-bottom: 10px; +} + +h3 { + font-size: 28px; + line-height: 34px; + margin-bottom: 8px; +} + +h4 { + font-size: 21px; + line-height: 30px; + margin-bottom: 4px; +} + +h5 { + font-size: 17px; + line-height: 24px; +} + +h6 { + font-size: 14px; + line-height: 21px; +} + +.subheader { + color: #777; +} + +p { + margin: 0 0 20px 0; +} + +p img { + margin: 0; +} + +p.lead { + font-size: 21px; + line-height: 27px; + color: #777; +} + +em { + font-style: italic; +} + +strong { + font-weight: bold; + color: #333; +} + +b { + font-weight: bold; +} + +small { + font-size: 80%; +} /* Blockquotes */ - blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; } - blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; } - blockquote cite { display: block; font-size: 12px; color: #555; } - blockquote cite:before { content: "\2014 \0020"; } - blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; } - - hr { border: solid #ddd; border-width: 1px 0 0; clear: both; height: 0; } +blockquote, +blockquote p { + font-size: 17px; + line-height: 24px; + color: #777; + font-style: italic; +} + +blockquote { + margin: 0 0 20px; + padding: 9px 20px 0 19px; + border-left: 1px solid #ddd; +} + +blockquote cite { + display: block; + font-size: 12px; + color: #555; +} + +blockquote cite:before { + content: "\2014 \0020"; +} + +blockquote cite a, +blockquote cite a:visited, +blockquote cite a:visited { + color: #555; +} + +hr { + border: solid #ddd; + border-width: 1px 0 0; + clear: both; + height: 0; +} /* #Links ================================================== */ - a, a:visited { color: #333; text-decoration: underline; outline: 0; } - a:hover, a:focus { color: #000; } - p a, p a:visited { line-height: inherit; } +a, +a:visited { + color: #333; + text-decoration: underline; + outline: 0; +} + +a:hover, +a:focus { + color: #000; +} + +p a, +p a:visited { + line-height: inherit; +} /* #Lists ================================================== */ - ul, ol { margin-bottom: 20px; } - ul { list-style: none outside; } - ol { list-style: decimal; } - ol, ul.square, ul.circle, ul.disc { margin-left: 30px; } - ul.square { list-style: square outside; } - ul.circle { list-style: circle outside; } - ul.disc { list-style: disc outside; } - ul ul, ul ol, - ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; } - ul ul li, ul ol li, - ol ol li, ol ul li { margin-bottom: 6px; } - li { line-height: 18px; margin-bottom: 12px; } - ul.large li { line-height: 21px; } - li p { line-height: 21px; } +ul, +ol { + margin-bottom: 20px; +} + +ul { + list-style: none outside; +} + +ol { + list-style: decimal; +} + +ol, +ul.square, +ul.circle, +ul.disc { + margin-left: 30px; +} + +ul.square { + list-style: square outside; +} + +ul.circle { + list-style: circle outside; +} + +ul.disc { + list-style: disc outside; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin: 4px 0 5px 30px; + font-size: 90%; +} + +ul ul li, +ul ol li, +ol ol li, +ol ul li { + margin-bottom: 6px; +} + +li { + line-height: 18px; + margin-bottom: 12px; +} + +ul.large li { + line-height: 21px; +} + +li p { + line-height: 21px; +} /* #Images ================================================== */ - img.scale-with-grid { - max-width: 100%; - height: auto; } +img.scale-with-grid { + max-width: 100%; + height: auto; +} /* #Buttons ================================================== */ - .button, - button, - input[type="submit"], - input[type="reset"], - input[type="button"] { - background: #eee; /* Old browsers */ - background: #eee -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */ - background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */ - background: #eee -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */ - background: #eee -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */ - background: #eee -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */ - background: #eee linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */ - border: 1px solid #aaa; - border-top: 1px solid #ccc; - border-left: 1px solid #ccc; - margin-right: 1px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - color: #444; - display: inline-block; - font-size: 11px; - font-weight: bold; - text-decoration: none; - text-shadow: 0 1px rgba(255, 255, 255, .75); - cursor: pointer; - line-height: normal; - padding: 8px 10px; - font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; } - - .button:hover, - button:hover, - input[type="submit"]:hover, - input[type="reset"]:hover, - input[type="button"]:hover { - color: #222; - background: #ddd; /* Old browsers */ - background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */ - background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */ - background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */ - background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */ - background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */ - background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */ - border: 1px solid #888; - border-top: 1px solid #aaa; - border-left: 1px solid #aaa; } - - .button:active, - button:active, - input[type="submit"]:active, - input[type="reset"]:active, - input[type="button"]:active { - border: 1px solid #666; - background: #ccc; /* Old browsers */ - background: #ccc -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */ - background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */ - background: #ccc -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */ - background: #ccc -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */ - background: #ccc -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */ - background: #ccc linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ } - - .button.full-width, - button.full-width, - input[type="submit"].full-width, - input[type="reset"].full-width, - input[type="button"].full-width { - width: 100%; - padding-left: 0 !important; - padding-right: 0 !important; - text-align: center; } - - /* Fix for odd Mozilla border & padding issues */ - button::-moz-focus-inner, - input::-moz-focus-inner { - border: 0; - padding: 0; - } - - .button.disabled, - button.disabled, - input[type="submit"].disabled, - input[type="reset"].disabled, - input[type="button"].disabled { - border: 1px solid #aaa; - color: #aaa; - background: #fff; - } +.button, +button, +input[type="submit"], +input[type="reset"], +input[type="button"] { + background: #eee; + /* Old browsers */ + background: #eee -moz-linear-gradient(top, rgba(255, 255, 255, .2) 0%, rgba(0, 0, 0, .2) 100%); + /* FF3.6+ */ + background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, .2)), color-stop(100%, rgba(0, 0, 0, .2))); + /* Chrome,Safari4+ */ + background: #eee -webkit-linear-gradient(top, rgba(255, 255, 255, .2) 0%, rgba(0, 0, 0, .2) 100%); + /* Chrome10+,Safari5.1+ */ + background: #eee -o-linear-gradient(top, rgba(255, 255, 255, .2) 0%, rgba(0, 0, 0, .2) 100%); + /* Opera11.10+ */ + background: #eee -ms-linear-gradient(top, rgba(255, 255, 255, .2) 0%, rgba(0, 0, 0, .2) 100%); + /* IE10+ */ + background: #eee linear-gradient(top, rgba(255, 255, 255, .2) 0%, rgba(0, 0, 0, .2) 100%); + /* W3C */ + border: 1px solid #aaa; + border-top: 1px solid #ccc; + border-left: 1px solid #ccc; + margin-right: 1px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + color: #444; + display: inline-block; + font-size: 11px; + font-weight: bold; + text-decoration: none; + text-shadow: 0 1px rgba(255, 255, 255, .75); + cursor: pointer; + line-height: normal; + padding: 8px 10px; + font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.button:hover, +button:hover, +input[type="submit"]:hover, +input[type="reset"]:hover, +input[type="button"]:hover { + color: #222; + background: #ddd; + /* Old browsers */ + background: #ddd -moz-linear-gradient(top, rgba(255, 255, 255, .3) 0%, rgba(0, 0, 0, .3) 100%); + /* FF3.6+ */ + background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, .3)), color-stop(100%, rgba(0, 0, 0, .3))); + /* Chrome,Safari4+ */ + background: #ddd -webkit-linear-gradient(top, rgba(255, 255, 255, .3) 0%, rgba(0, 0, 0, .3) 100%); + /* Chrome10+,Safari5.1+ */ + background: #ddd -o-linear-gradient(top, rgba(255, 255, 255, .3) 0%, rgba(0, 0, 0, .3) 100%); + /* Opera11.10+ */ + background: #ddd -ms-linear-gradient(top, rgba(255, 255, 255, .3) 0%, rgba(0, 0, 0, .3) 100%); + /* IE10+ */ + background: #ddd linear-gradient(top, rgba(255, 255, 255, .3) 0%, rgba(0, 0, 0, .3) 100%); + /* W3C */ + border: 1px solid #888; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; +} + +.button:active, +button:active, +input[type="submit"]:active, +input[type="reset"]:active, +input[type="button"]:active { + border: 1px solid #666; + background: #ccc; + /* Old browsers */ + background: #ccc -moz-linear-gradient(top, rgba(255, 255, 255, .35) 0%, rgba(10, 10, 10, .4) 100%); + /* FF3.6+ */ + background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255, 255, 255, .35)), color-stop(100%, rgba(10, 10, 10, .4))); + /* Chrome,Safari4+ */ + background: #ccc -webkit-linear-gradient(top, rgba(255, 255, 255, .35) 0%, rgba(10, 10, 10, .4) 100%); + /* Chrome10+,Safari5.1+ */ + background: #ccc -o-linear-gradient(top, rgba(255, 255, 255, .35) 0%, rgba(10, 10, 10, .4) 100%); + /* Opera11.10+ */ + background: #ccc -ms-linear-gradient(top, rgba(255, 255, 255, .35) 0%, rgba(10, 10, 10, .4) 100%); + /* IE10+ */ + background: #ccc linear-gradient(top, rgba(255, 255, 255, .35) 0%, rgba(10, 10, 10, .4) 100%); + /* W3C */ +} + +.button.full-width, +button.full-width, +input[type="submit"].full-width, +input[type="reset"].full-width, +input[type="button"].full-width { + width: 100%; + padding-left: 0 !important; + padding-right: 0 !important; + text-align: center; +} + +/* Fix for odd Mozilla border & padding issues */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +.button.disabled, +button.disabled, +input[type="submit"].disabled, +input[type="reset"].disabled, +input[type="button"].disabled { + border: 1px solid #aaa; + color: #aaa; + background: #fff; +} /* #Forms ================================================== */ - fieldset { - margin-bottom: 20px; } - input[type="text"], - input[type="password"], - input[type="email"], - textarea, - select { - border: 1px solid #ccc; - padding: 6px 4px; - outline: none; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #888; - margin: 0; - max-width: 100%; - background: #fff; } - select { - padding: 0; } - input[type="text"]:focus, - input[type="password"]:focus, - input[type="email"]:focus, - textarea:focus { - border: 1px solid #aaa; - color: #444; - -moz-box-shadow: 0 0 3px rgba(0,0,0,.2); - -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2); - box-shadow: 0 0 3px rgba(0,0,0,.2); } - textarea { - min-height: 60px; } - label, - legend { - display: block; - font-weight: bold; - font-size: 13px; } - select { - width: 220px; } - input[type="checkbox"] { - display: inline; } - label span, - legend span { - font-weight: normal; - font-size: 13px; - color: #444; } +fieldset { + margin-bottom: 20px; +} + +input[type="text"], +input[type="password"], +input[type="email"], +textarea, +select { + border: 1px solid #ccc; + padding: 6px 4px; + outline: none; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #888; + margin: 0; + max-width: 100%; + background: #fff; +} + +input[type="text"]:focus, +input[type="password"]:focus, +input[type="email"]:focus, +textarea:focus { + border: 1px solid #aaa; + color: #444; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .2); + box-shadow: 0 0 3px rgba(0, 0, 0, .2); +} + +textarea { + min-height: 60px; +} + +label, +legend { + display: block; + font-weight: bold; + font-size: 13px; +} + +select { + width: 220px; +} + +input[type="checkbox"] { + display: inline; +} + +label span, +legend span { + font-weight: normal; + font-size: 13px; + color: #444; +} /* #Misc ================================================== */ - .remove-bottom { margin-bottom: 0 !important; } - .half-bottom { margin-bottom: 10px !important; } - .add-bottom { margin-bottom: 20px !important; } - .no-margin { margin: 0 !important; padding: 0; } - - +.remove-bottom { + margin-bottom: 0 !important; +} + +.half-bottom { + margin-bottom: 10px !important; +} + +.add-bottom { + margin-bottom: 20px !important; +} + +.no-margin { + margin: 0 !important; + padding: 0; +} \ No newline at end of file diff --git a/css/layout.css b/css/layout.css index 009cdaf..8ebfd8f 100644 --- a/css/layout.css +++ b/css/layout.css @@ -164,3 +164,35 @@ header h1{ font-weight: normal; font-style: normal; } */ + +#reload_warning { + position: absolute; + left: 20px; + bottom: 20px; + font-size: 12; + width: 300px; + height: auto; + background-color: white; + z-index: 10; + box-shadow: rgba(9, 20, 66, 0.25) 0px 20px 32px -8px; + border: #ddd solid; + padding: 10px; + border-width: 1px; + display: none; +} + +#banner { + display: none +} +@media only screen and (min-width: 768px){ + #banner { + line-height: 1.1; + font-size: small; + display: block; + margin-left: 300px; + text-align: center; + overflow-y: auto; + font-weight: bold; + height: 100%; + } +} \ No newline at end of file diff --git a/css/main.css b/css/main.css index e273a77..ee57d7f 100644 --- a/css/main.css +++ b/css/main.css @@ -99,11 +99,13 @@ body { #timebox { top: 7px; right: 5px; + width: 205px; } #lookanglesbox { top: 40px; right: 5px; + width: 205px; } #timebox.past svg path { diff --git a/img/apple-touch-icon.png b/img/apple-touch-icon.png index b16c0d7..380f8a3 100644 Binary files a/img/apple-touch-icon.png and b/img/apple-touch-icon.png differ diff --git a/img/ardc_logo_small.png b/img/ardc_logo_small.png new file mode 100644 index 0000000..9fe7e31 Binary files /dev/null and b/img/ardc_logo_small.png differ diff --git a/img/graw_logo_small.png b/img/graw_logo_small.png new file mode 100644 index 0000000..dedb4f3 Binary files /dev/null and b/img/graw_logo_small.png differ diff --git a/img/icons/icon_x192.png b/img/icons/icon_x192.png index 618ae3a..bcf4bac 100644 Binary files a/img/icons/icon_x192.png and b/img/icons/icon_x192.png differ diff --git a/img/icons/icon_x512.png b/img/icons/icon_x512.png index 9654aad..5795d0f 100644 Binary files a/img/icons/icon_x512.png and b/img/icons/icon_x512.png differ diff --git a/img/icons/maskable_icon_x128.png b/img/icons/maskable_icon_x128.png index ed395e1..1101d10 100644 Binary files a/img/icons/maskable_icon_x128.png and b/img/icons/maskable_icon_x128.png differ diff --git a/img/icons/maskable_icon_x192.png b/img/icons/maskable_icon_x192.png index 1ec5586..87b550d 100644 Binary files a/img/icons/maskable_icon_x192.png and b/img/icons/maskable_icon_x192.png differ diff --git a/img/icons/maskable_icon_x384.png b/img/icons/maskable_icon_x384.png index ef558c9..31c9d5c 100644 Binary files a/img/icons/maskable_icon_x384.png and b/img/icons/maskable_icon_x384.png differ diff --git a/img/icons/maskable_icon_x48.png b/img/icons/maskable_icon_x48.png index 56ae4a7..dad2250 100644 Binary files a/img/icons/maskable_icon_x48.png and b/img/icons/maskable_icon_x48.png differ diff --git a/img/icons/maskable_icon_x512.png b/img/icons/maskable_icon_x512.png index f00d755..8dff53a 100644 Binary files a/img/icons/maskable_icon_x512.png and b/img/icons/maskable_icon_x512.png differ diff --git a/img/icons/maskable_icon_x72.png b/img/icons/maskable_icon_x72.png index 1388186..34e3a9e 100644 Binary files a/img/icons/maskable_icon_x72.png and b/img/icons/maskable_icon_x72.png differ diff --git a/img/icons/maskable_icon_x96.png b/img/icons/maskable_icon_x96.png index febd7c0..4d7b7a3 100644 Binary files a/img/icons/maskable_icon_x96.png and b/img/icons/maskable_icon_x96.png differ diff --git a/img/logo.png b/img/logo.png deleted file mode 100644 index cc06274..0000000 Binary files a/img/logo.png and /dev/null differ diff --git a/img/markers/balloon-adafruit.png b/img/markers/balloon-adafruit.png deleted file mode 100644 index 4c715f2..0000000 Binary files a/img/markers/balloon-adafruit.png and /dev/null differ diff --git a/img/markers/balloon-blue.png b/img/markers/balloon-blue.png deleted file mode 100644 index 9888487..0000000 Binary files a/img/markers/balloon-blue.png and /dev/null differ diff --git a/img/markers/balloon-buzz.png b/img/markers/balloon-buzz.png deleted file mode 100644 index 17097b5..0000000 Binary files a/img/markers/balloon-buzz.png and /dev/null differ diff --git a/img/markers/balloon-cyan.png b/img/markers/balloon-cyan.png deleted file mode 100644 index 9eae707..0000000 Binary files a/img/markers/balloon-cyan.png and /dev/null differ diff --git a/img/markers/balloon-green.png b/img/markers/balloon-green.png deleted file mode 100644 index 126a0b0..0000000 Binary files a/img/markers/balloon-green.png and /dev/null differ diff --git a/img/markers/balloon-invisible.png b/img/markers/balloon-invisible.png deleted file mode 100644 index 19464e9..0000000 Binary files a/img/markers/balloon-invisible.png and /dev/null differ diff --git a/img/markers/balloon-iss.png b/img/markers/balloon-iss.png deleted file mode 100644 index 23d2a49..0000000 Binary files a/img/markers/balloon-iss.png and /dev/null differ diff --git a/img/markers/balloon-orange.png b/img/markers/balloon-orange.png deleted file mode 100644 index b0c5d09..0000000 Binary files a/img/markers/balloon-orange.png and /dev/null differ diff --git a/img/markers/balloon-pop.png b/img/markers/balloon-pop.png index cb65773..eac488b 100644 Binary files a/img/markers/balloon-pop.png and b/img/markers/balloon-pop.png differ diff --git a/img/markers/balloon-purple.png b/img/markers/balloon-purple.png deleted file mode 100644 index e129b1c..0000000 Binary files a/img/markers/balloon-purple.png and /dev/null differ diff --git a/img/markers/balloon-red.png b/img/markers/balloon-red.png deleted file mode 100644 index f079bfe..0000000 Binary files a/img/markers/balloon-red.png and /dev/null differ diff --git a/img/markers/balloon-rob.png b/img/markers/balloon-rob.png deleted file mode 100644 index 819a558..0000000 Binary files a/img/markers/balloon-rob.png and /dev/null differ diff --git a/img/markers/balloon-rpi.png b/img/markers/balloon-rpi.png deleted file mode 100644 index c340631..0000000 Binary files a/img/markers/balloon-rpi.png and /dev/null differ diff --git a/img/markers/balloon-shockpink.png b/img/markers/balloon-shockpink.png deleted file mode 100644 index 49ad112..0000000 Binary files a/img/markers/balloon-shockpink.png and /dev/null differ diff --git a/img/markers/balloon-thereg.png b/img/markers/balloon-thereg.png deleted file mode 100644 index f26068f..0000000 Binary files a/img/markers/balloon-thereg.png and /dev/null differ diff --git a/img/markers/balloon-yellow.png b/img/markers/balloon-yellow.png deleted file mode 100644 index 66fc042..0000000 Binary files a/img/markers/balloon-yellow.png and /dev/null differ diff --git a/img/markers/balloon.svg b/img/markers/balloon.svg new file mode 100755 index 0000000..8966505 --- /dev/null +++ b/img/markers/balloon.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/markers/car-blue.png b/img/markers/car-blue.png deleted file mode 100644 index 09192f0..0000000 Binary files a/img/markers/car-blue.png and /dev/null differ diff --git a/img/markers/car-green.png b/img/markers/car-green.png deleted file mode 100644 index c42da50..0000000 Binary files a/img/markers/car-green.png and /dev/null differ diff --git a/img/markers/car-purple.png b/img/markers/car-purple.png deleted file mode 100644 index a281513..0000000 Binary files a/img/markers/car-purple.png and /dev/null differ diff --git a/img/markers/car-red.png b/img/markers/car-red.png deleted file mode 100644 index ce44c92..0000000 Binary files a/img/markers/car-red.png and /dev/null differ diff --git a/img/markers/car-teal.png b/img/markers/car-teal.png deleted file mode 100644 index f0e6fe8..0000000 Binary files a/img/markers/car-teal.png and /dev/null differ diff --git a/img/markers/car-yellow.png b/img/markers/car-yellow.png deleted file mode 100644 index 5c35476..0000000 Binary files a/img/markers/car-yellow.png and /dev/null differ diff --git a/img/markers/car.svg b/img/markers/car.svg new file mode 100644 index 0000000..c277ce8 --- /dev/null +++ b/img/markers/car.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/markers/parachute-blue.png b/img/markers/parachute-blue.png deleted file mode 100644 index ff4dc5d..0000000 Binary files a/img/markers/parachute-blue.png and /dev/null differ diff --git a/img/markers/parachute-cyan.png b/img/markers/parachute-cyan.png deleted file mode 100644 index bf83a49..0000000 Binary files a/img/markers/parachute-cyan.png and /dev/null differ diff --git a/img/markers/parachute-green.png b/img/markers/parachute-green.png deleted file mode 100644 index f41d7e1..0000000 Binary files a/img/markers/parachute-green.png and /dev/null differ diff --git a/img/markers/parachute-orange.png b/img/markers/parachute-orange.png deleted file mode 100644 index e3f2d16..0000000 Binary files a/img/markers/parachute-orange.png and /dev/null differ diff --git a/img/markers/parachute-purple.png b/img/markers/parachute-purple.png deleted file mode 100644 index adae959..0000000 Binary files a/img/markers/parachute-purple.png and /dev/null differ diff --git a/img/markers/parachute-red.png b/img/markers/parachute-red.png deleted file mode 100644 index 603c60f..0000000 Binary files a/img/markers/parachute-red.png and /dev/null differ diff --git a/img/markers/parachute-rpi.png b/img/markers/parachute-rpi.png deleted file mode 100644 index ad421b6..0000000 Binary files a/img/markers/parachute-rpi.png and /dev/null differ diff --git a/img/markers/parachute-yellow.png b/img/markers/parachute-yellow.png deleted file mode 100644 index 4d85a51..0000000 Binary files a/img/markers/parachute-yellow.png and /dev/null differ diff --git a/img/markers/parachute.svg b/img/markers/parachute.svg new file mode 100644 index 0000000..8b10853 --- /dev/null +++ b/img/markers/parachute.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/markers/payload-blue.png b/img/markers/payload-blue.png deleted file mode 100644 index c03caee..0000000 Binary files a/img/markers/payload-blue.png and /dev/null differ diff --git a/img/markers/payload-cyan.png b/img/markers/payload-cyan.png deleted file mode 100644 index 226bfa8..0000000 Binary files a/img/markers/payload-cyan.png and /dev/null differ diff --git a/img/markers/payload-green.png b/img/markers/payload-green.png deleted file mode 100644 index f524a73..0000000 Binary files a/img/markers/payload-green.png and /dev/null differ diff --git a/img/markers/payload-orange.png b/img/markers/payload-orange.png deleted file mode 100644 index 20e5b05..0000000 Binary files a/img/markers/payload-orange.png and /dev/null differ diff --git a/img/markers/payload-purple.png b/img/markers/payload-purple.png deleted file mode 100644 index 80e1e1a..0000000 Binary files a/img/markers/payload-purple.png and /dev/null differ diff --git a/img/markers/payload-recovery-planned.png b/img/markers/payload-recovery-planned.png new file mode 100644 index 0000000..e314714 Binary files /dev/null and b/img/markers/payload-recovery-planned.png differ diff --git a/img/markers/payload-red.png b/img/markers/payload-red.png deleted file mode 100644 index 7ad8acc..0000000 Binary files a/img/markers/payload-red.png and /dev/null differ diff --git a/img/markers/payload-rpi.png b/img/markers/payload-rpi.png deleted file mode 100644 index 9f533fb..0000000 Binary files a/img/markers/payload-rpi.png and /dev/null differ diff --git a/img/markers/payload-yellow.png b/img/markers/payload-yellow.png deleted file mode 100644 index e9b7bb5..0000000 Binary files a/img/markers/payload-yellow.png and /dev/null differ diff --git a/img/markers/payload.svg b/img/markers/payload.svg new file mode 100644 index 0000000..b89d7d6 --- /dev/null +++ b/img/markers/payload.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/markers/target-blue.png b/img/markers/target-blue.png deleted file mode 100644 index fae5796..0000000 Binary files a/img/markers/target-blue.png and /dev/null differ diff --git a/img/markers/target-cyan.png b/img/markers/target-cyan.png deleted file mode 100644 index ba30743..0000000 Binary files a/img/markers/target-cyan.png and /dev/null differ diff --git a/img/markers/target-green.png b/img/markers/target-green.png deleted file mode 100644 index 56b4682..0000000 Binary files a/img/markers/target-green.png and /dev/null differ diff --git a/img/markers/target-orange.png b/img/markers/target-orange.png deleted file mode 100644 index 4b353b6..0000000 Binary files a/img/markers/target-orange.png and /dev/null differ diff --git a/img/markers/target-purple.png b/img/markers/target-purple.png deleted file mode 100644 index 4510158..0000000 Binary files a/img/markers/target-purple.png and /dev/null differ diff --git a/img/markers/target-red.png b/img/markers/target-red.png deleted file mode 100644 index 5987df9..0000000 Binary files a/img/markers/target-red.png and /dev/null differ diff --git a/img/markers/target-yellow.png b/img/markers/target-yellow.png deleted file mode 100644 index 8dc2d08..0000000 Binary files a/img/markers/target-yellow.png and /dev/null differ diff --git a/img/markers/target.svg b/img/markers/target.svg new file mode 100644 index 0000000..e80875e --- /dev/null +++ b/img/markers/target.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/sondehub_au.png b/img/sondehub_au.png new file mode 100644 index 0000000..069c3c0 Binary files /dev/null and b/img/sondehub_au.png differ diff --git a/img/sondehub_supporters.kra b/img/sondehub_supporters.kra new file mode 100644 index 0000000..6728b1b Binary files /dev/null and b/img/sondehub_supporters.kra differ diff --git a/img/splash/splash-wide.png b/img/splash/splash-wide.png index d7eff35..59b1fcb 100644 Binary files a/img/splash/splash-wide.png and b/img/splash/splash-wide.png differ diff --git a/index.html b/index.template.html similarity index 81% rename from index.html rename to index.template.html index cf46f36..964bc91 100644 --- a/index.html +++ b/index.template.html @@ -9,6 +9,7 @@ + @@ -19,19 +20,45 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +
- - + +
-
@@ -289,10 +369,10 @@

Chase Mode

Callsign - +
- Notice: If you enable this, your location will be uploaded to SondeHub; making it publicly visible on the map. + Notice: If you enable this, your location will be uploaded to SondeHub, making it publicly visible on the map for up to 12 hours.

@@ -320,48 +400,20 @@

Chase Mode

none

-

Report Recovery

-
-
- You can report a recovery here. Enter the serial number (no type code, e.g. 'S1234567'), tick recovered/not recovered, and add some notes. If the sonde is not on the map, type its callsign into the top-left search box and press enter to retrieve historical data. You can then mark it as recovered. Optionally, you can use your location instead of the sonde's last location. -
-
- Serial - -
-
- Recovery Success -
- - -
-
-
- Use Car Position -
- - -
-
-
- Notes - -
-
- Report Result - none -
-
-
-
-
- -
+ Recovery reporting is now on the recoveries tab! (Balloon icon)
+
+
+
Zoom in for realtime data!
+
+ +