This commit is part of a series of commits fixing the usage of
API Token vs API Key, see e4100a2 for details.
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
In satellite_card.html we assume if telemetry_data_count returns a value then latest_data will also run fine. This adds some better handling in the off chance that it does not (like in an odd cache state)
Signed-off-by: Corey Shields <cshields@gmail.com>
package.json: Add satellite.js dependency
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
Move to satellite.js in map, drop satellite footprint
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
Remove gpredict.js dependency
Signed-off-by: Fabian P. Schmidt <kerel@mailbox.org>
Replace gpredict.js with satellite.js
Builds on the work of kerel-fs in !596 and #440, implements satellite.js for core TLE and SGP4 handling, deprecating and removing gpredict.js
fixes#440
does NOT fix#204
Signed-off-by: Corey Shields <cshields@gmail.com>
Adds the ability to sort on the 'status' column (which today does nothing) by setting the field by which datatables will sort on to sat.status
This also has the benefit of filtering on sat.status as well, though one would need to know the backend statuses to use (ie: 'alive' vs 'dead'). Not sure that is ideal but this is a quick fix.
Fixes#428
Signed-off-by: Corey Shields <cshields@gmail.com>
Various improvements to the stats page:
Added a legend of top chart items to the footer of bands and modes charts. Fixes#408
Added a (cached) count of decoded frames to the Satellites table. Fixes#400
Added a note about the cached nature of stats. Fixes#403
Signed-off-by: Corey Shields <cshields@gmail.com>
Hooray for success - we have tons of contributors in a 24 hr leaderboard!! Making this fit the screen a bit better and scrollable.
Fixes#402
Signed-off-by: Corey Shields <cshields@gmail.com>
Have to make this card a full width, even at col-xl-6 size it can shrink to stretch past the edge of the card. Adjusted a little more to make better visual use of the space as well.
Fixes#426
Signed-off-by: Corey Shields <cshields@gmail.com>
If the satellite has a transmitter that is flagged as 'bad_transmitter' (frequency coordination violation today), then show such in the Status card.
Fixes#250
Signed-off-by: Corey Shields <cshields@gmail.com>
Some accessibility improvements:
* fixed some buttons to be more compatible with keyboard focus
* added labels where missing for tab links where a screenreader might get confused by the fontawesome icon
* added a "Skip to main content" link
* labeled the search box
* added labels for some of our visual indicators for satellite and transmitter statuses
* ensured that "Focusable elements should have interactive semantics"
Fixes#414Fixes#417Fixes#418Fixes#419Fixes#420
Signed-off-by: Corey Shields <cshields@gmail.com>
Adds 2 fields to transmitter model, coordination (fixed set of choices, defaulting to blank) and coordination_url. API, UI, and tests are included.
Also introduces a bad_transmitter property to transmitter that will return true if any 'Uncoordinated' or '..Rejected' status is selected.
Fixes#311
Signed-off-by: Corey Shields <cshields@gmail.com>
Changes the admin email notifications to a backend celery task so that the UI does not block on it.
Also prevents this process from running twice as form_valid gets triggered for validation and saving.
Should fix#421
Signed-off-by: Corey Shields <cshields@gmail.com>
handle deep-linking of anchors into tabbed panes on the satellite and stats pages.
Fixes#399
Also clean up map visibility, only showing if a satellite has not re-entered *and* has a TLE associated with it (note, we are not testing for validity of the TLE).
Fixes#412
Signed-off-by: Corey Shields <cshields@gmail.com>
Image files were not getting uploaded due to the lack of enctype on the form.
Easy fix, hard discovery (sigh)
Fixes#413
Signed-off-by: Corey Shields <cshields@gmail.com>
Fix the toggling of the control-sidebar, the text coloring of the control-sidebar, and clean up html on the help page.
Signed-off-by: Corey Shields <cshields@gmail.com>
Adds a chart card showing the last month of decoded data as currently stored in influxdb.
Unfortunately there's no native way to count the number of 'entries' for a measurement across a given time, so we have to do a count(*) across all points. This returns a blob of <timestamp>, <count(pointa)>, <count(pointb)>, <...> and in almost (but not all) cases those counts will be identical but we have to account for it not, so I iterate over each timestamp (client side) and take the max count to assign to that point in time. Since we are doing a 30d query from influx with 1d aggregation this should not be too intensive.
Also cleaned up the coloring of the profile link buttons.
Signed-off-by: Corey Shields <cshields@gmail.com>