Noteworthy Dash UI changes
Adjustments in the
(+)add-vehicle dropdown to make sure the last entry at the end of the menu can be selected on some mobile devices.
The Admin option now opens the corresponding page under the User/Admin app (which was also recently improved).
3.9.0 (2019-10-31) - Improved frontend layout and responsiveness
Thanks to all of you that helped with testing and provided feedback during the pre-releases of this version.
Vehicle log table display responsiveness has been significantly improved: updates upon event loading, async notifications, change in event selection, text filtering, etc., should now get reflected in a much smoother way on both desktop and mobile even when loading thousands of events.
Note that your vehicle selection is no longer persisted in your browser's local storage in this version. This helps avoid or at least significantly reduce unnecessary similar updates across multiple browser tabs or windows, unless of course you explicitly select the same set of vehicles in those various sessions.
Key considerations and goals for this update included:
Reorganize the UI layout for clarity and better separation of elements and options:
- A main set of tabs for the explicitly selected vehicles and for the Map and the Summary.
- Each vehicle tab with its associated buttons (cell-connection-status, boat-mode, send-note) and sub-tabs: Log, Deployment, Data, Mission, Command, Docs, Config.
- A menu for less frequently-used options (including some advanced operations).
Facilitate and make more efficient the use of the application for multiple-vehicle selection in a single instance as well as for use in multiple browser tabs or windows, each with its own vehicle selection.
Remove the concept of "primary vehicle," which has proved confusing and error-prone for some important operations.
Address some significant performance/responsiveness issues that have become exacerbated as we have added more features (cell-conn status, asynchronous position updates on the map for tracking database assets, etc.), as well as with more concurrent user sessions and more multi-vehicle deployments.
Note also that the User/Admin page at https://okeanids.mbari.org/ (where users can create and update their account details, and admins can perform some special operations) has also been signficantly updated for both desktop and mobile.
3.8.1 - Various fixes and internal adjustments toward preparation of updated integrated TethyDash package.
3.9pre1 - As part of the above, also pre-released a version with reorganized UI layout and significantly improved responsiveness, see Roadmap#3.9. Feedback welcome!
This is a significant release mainly involving changes and fixes related with the proper dispatch of email notification settings:
The frontend side basically reflects the changes from the new backend (3.1.0) regarding the capture of email notification settings so they can be dispatched with proper distiction among certain events, for example, between "Direct" and "Sat" Comms. But the changes are mostly internal. The email notification settings dialog has not changed much, in fact it has been simplified a bit. Also, it's now possible to subscribe to
This was a pending task related with the general renaming and restructuring of event types, whose implementation started earlier this year.
- More internal adjustments toward addressing UI responsiveness in some interactions.
Avoid text overflow for latest event description in vehicle summary box.
Addressing responsiveness issues recently noted upon some actions in the UI (#46):
- A third-party library used for asynchronous computed properties has been found to be the issue, at least in part. Furtunately, upon upgrading to its latest version, responsiveness seems to have improved.
Set explicit color for 'pontus' and 'triton' (same colors as used in ODSS).
Fixed issue with event type selection: changes in selection were not properly reflected when switching between vehicle tabs.
- Fixed issue that prevented
profile_stationwaypoint trajectory from being displayed.
- Minor style adjustment in Summary tab (color deployment state label).
Ac Commsis now displayed instead of
Sat Commsfor events with
momsn >= 900000(and satisfying other relevant conditions). NOTE: this is an initial part of the needed adjustments to reflect this kind of events.
This version fixes issue about wrong display of waypoint trajectory with respect to scheduler. (#44)
In short, the adjusted logic is as follows:
- As before, the latest
Started mission <name>important event triggers the dispatch of the waypoint trajectory display;
- The following information is gathered to determine the waypoints, if any:
- Arguments in the corresponding mission file that refer to "latitude" or "longitude"
- All immediately preceeding
setcommands to override any such arguments
The tooltip on the map now shows last started mission, vehicle position at time of started mission event, and all collected (non-NaN) waypoints:
Besides the tooltip, clicking the waypoint trajectory will now open a popup with details about the relevant events:
The name of the mission as exposed in the
Started missionevent MUST exactly be the simple name (i.e., no path, no extension) of the mission file itself as exposed in the preceeding
runmission event. For example, if the started mission event is:
Started mission sci2, then Dash will recognize the preceding "load" command:
got command load ./Missions/Science/sci2.xmlfor purposes of collecting the relevant "set coordinate" commands happening in between those two events.
Extraction of lat/lon positions to collect the waypoints is ONLY based on:
Defined arguments in the mission with names
Longitude, plus same names with a numeric suffix, e.g.,
"Set" commands that look like the following (using "Lat" as example, but same coordinate names as above):
got command set <mission-name>.Lat<n> <val> degree, where
<n>is an optional numeric suffix.
emergencyevents, the original date (timestamp) of associated GPS fix is now exposed. This is an adjustment related with backend change #146 about better handling of emergency events for reporting purposes, in particular, when they have a bad associated timestamp.
Experimental basic display of a KML file on the map:
New option under the Map section in UI settings to load a KML file and store its contents in your browser's local storage (not in the backend):
Note: select a
.kmlfile from your local system, not a
.kmz, for example.
Then, use the Assets dropdown on the map to optionally display/hide the KML:
New option "Display vehicle name on latest position" under the Map section in the UI settings. Unselecting this option helps reduce cluttering specially when zooming out while having complicated vehicle tracks on the map. (Thanks Jim for the suggestion.)
Waypoint trajectory for
Science/sci2_flat_and_levelis now also displayed on the map.
In the map, under Assets>Stations, new button to center map at each station's location
Map center and zoom level are now "remembered" so they will be reflected upon a reload of the Dash3 page. (As other information, this is saved in the browser local storage.)
New "Boat mode" (#43). (Thanks Erik for the suggestion.)
- New button that opens dialog to enable/disable the boat mode.
- Primary vehicle position taken from latest loaded GPS fix.
- "Your position" (which is automatically reported by the browser as geolocation information gets available) is used to calculate distance and bearing to the vehicle. This position is also reflected on the map.
Instead of double-clicking, now a simple click (or tap) on the cell connection status icon opens the control dialog.
The cell connection status indicator, previously only shown for the primary vehicle in the main toolbar, is now also included in the following places:
For each vehicle in the Log tab when multiple vehicles are selected:
For each vehicle in the Summary tab:
(These adjustments are also part of some preparations toward an improved reorganization of the UI mainly regarding selected primary/additional vehicles.)
Adjustments related with new updated docker release.
Now the Summary tab has two sections, the first one for the selected vehicles as previously displayed, and a new section with all other vehicles with a basic summary having information about the latest deployment and mission. (#40)
The set of "stations" shown on the map can now be defined/edited in a more dynamic way in the backend. These are displayed on the UI as usual but along a "refresh" button to reflect any backend updates in such list of stations. (A future improvement is to allow the definition of such stations and other geometries in the UI itself.)
More complete tooltips for Argos and "Reached waypoint" positions on the map. They now include the timestamp and elapsed time, similarly as with other positions (e.g., GPS Fixes), as well as the "Argo quality" (LC) value in the case of the Argos position.
Fixed issue of Deployment tab not reflecting update upon switching back from the Log tab. (#38)
Some style adjustments.
Events timestamped in the future(*) are now retained in the Log table upon a refresh. The previous behavior was that they "disappeared" (temporarily) after been displayed by the asynchronous notification handling mechanism.
(*) Up to a 6-hour limit, consistent to what the TethysDash backend uses to persist such events in the database.
Elapsed time fragment now shown with a different, more visible color when actually indicating a timestamp in the future (wrt current time as reported by the browser).
The vehicle summary section included on the right-hand side of the map now does an automatic refresh when a different vehicle is just selected in the dropdown at the top right. (Thanks Chris P. for the suggestion!)
Reset password dialog now handles the Enter key similarly as clicking the Reset button, that is, staying open to inform the user about the further instructions (previously the dialog was quickly closed upon Enter).
Alignment/style adjustment in the email notification settings dialog.
More visible elapsed time (the fragment displayed next to the timestamps in the Log table).
Changed behavior when selecting the "primary" vehicle so it simply becomes an "exchange" with the current selection when the new primary comes from the current list of "additional" vehicles. Easier to explain with an example (see below).
(Please note: the overall primary/additional vehicle aspect and UI organization will undergo a general revision in a future version. The changes now can be considered provisional but hopefully useful in the mean time. As always, feedback is welcome!)
Example: Suppose you currently have this:
- Primary vehicle: makai
- Additional vehicles: tethys, daphne
If the new primary is from the additional vehicles list, say daphne, then the current primary, makai, is now moved to that list (instead of being discarded).
So, the result will be:
- primary vehicle: daphne
- additional vehicles: makai, tethys
The previously selected primary will only be completely discarded when selecting a new primary that is not among the additional vehicles.
Various external links (Watchbill, Help, and others) no longer open separate browser tabs/windows if clicked multiple times. (Thanks Steve H. for the suggestion!)
- Some internal adjustments (mostly timeout related) to the underlying queries to the tracking database that allow to include the positions of extra platforms on the map.
The refresh button in the Tracking DB asset selection dropdown (under the Frontend Settings dialog) now performs an actual reload of the list of available assets.
For a bit improved readability, added some top and bottom padding to the rows in Log table.
In Log table, we adjusted the description text for "Comms" Receive events as recently indicated in the google doc.
- Fixed issue in the email notification settings where any associated extra email addresses (for event notification purposes) were not explicitly associated with the main user account in the database. The symptom was no seeing the additional address in the dropdown menu in a subsequent interaction with the email settings dialog. If you were facing this issue, please simply re-add the extra email address. Any previously entered notification settings for the added address should immediately show up for any further editing.
Fixed "one-character-wide Component column" issue recently reported on Slack. The issue was noted on Safari, but the adjustment (explicitly set a minimum width) was applied in general. Tested on Safari, Chrome, and Firefox.
(A possible further adjustment when dealing with a narrow window on desktop is to switch to the single event list widget as used in the mobile version.)
New "Vehicle configuration worksheet" link included. Displayed as "VCWS" at the top of the page in desktop version (next to Watchbill), and spelled out in the left drawer.
Watchbill link now also included in mobile version.
Adjustments in the display of the events related with 'Direct Comms':
- 'Received' (not 'Receive')
- Removal of the 'mtmsn' fragment as it is irrelevant
Fixed issue in cell connection status icon that wrongly retained some of the info from the previous vehicle when changing the primary vehicle.
Reverted some recent minor changes (only style related) in the Summary tab that very strangely made the whole app completely unresponsive when just changing the primary vehicle. (Will need further investigation but this might be a bug in the underlying framework library.)
More consistent and efficient dispatch of event fetching actions:
Refresh action now makes a separate request for each selected vehicle (ie., primary one and any additional vehicles), with the maximum number of events in each case equal to the corresponding option in the settings dialog divided by the number of selected vehicles.
Load More buttons now dispatched only for the corresponding vehicle in the Log table, and not for all selected vehicles (as it should have been implemented since these buttons were added).
As now supported by TethysDash backend 2.9.3, using a more efficient query for vehicle events (in particular, to exclude
Asynchronously notified 'dataProcessed' events now also ignored (they were still being displayed in the popup notifications).
Send note dialog simplified: always to primary vehicle, which is the typical case (its name now displayed in the title of the dialog). But additional vehicles can still be associated (now in a dropdown menu). This change is related with an ongoing effort to improve the overall primary vehicle handling. (#35).
Password change operation now available in the Dash UI itself.
Style adjustments/fixes in the Summary tab and in various dialogs (including UI settings, tracking database platform selection dropdown, and sign-in/password-reset dialogs).
This is a significant release (also involving the TethysDash backend server) that completes the event type renaming and reorganization recently proposed by the LRAUV team. The event type documentation page has already been updated, and other pages are being updated as well. Please note that the changes are only reflected in the Dash UI as well as in email notifications and Slack messages. If you encounter any issues with this, please let us know!
- One more (hopefully final) revision of frontend logic to address the persistent issue preventing the cell connection status indicator from properly reflecting the status messages pushed from the backend. This has proved to be difficult to reproduce locally so I'm enabling this revision on okeanids for more conclusive tests. (#28)
- Fixed issue with focus being lost while typing a note.
Fixed formatting issue in the Log table exposed with recent Critical events with a very long single word (
Various style adjustments needed arising from recent upgrade of the underlying core library.
Improved display of email notification settings dialog regarding horizontal scrolling, on both desktop and mobile.
Workaround for vertical scrolling issue in Log table: A direct HTML
<table>(which doesn't have the scrolling issue) is used if number of displayed events is <= 3000; otherwise, the dynamic widget that can handle large numbers of rows (but that unfortunately has the potential scrolling issue) is used. (The 3000 threshold chosen based on a basic rendering performance assessment.)
As part of the event type renaming being implemented since v3.4.0, there is now an improved email notification settings dialog in the Dash3 UI itself.
To open the dialog, click the new "Email notifications" button under your account dropdown widget:
Besides reflecting the ongoing event type renaming, the new dialog provides an improved and also mobile friendly interface for managing your email notification settings (compared to the similar widget in the User/Admin interface webpage):
First phase of a general event type renaming has been implemented.
The new type names as they are displayed in the Dash UI are as follows:
Now Previously Log logPath Command Request command Deployment deploy GPS Fix gpsFix Mission Request run
The other names not listed above have just been capitalized.
The 'dataProcessed' event type is now not exposed in the Log table nor in the event type selection widget.
The "Run" tab has been renamed to "Mission".
- These changes will be implemented in an incremental fashion (initially at the frontend, user-visible level) while trying to avoid any impact regarding the use of the system. At this point the original type names will remain unchanged in TethysDash (both backend and frontend).
- Proposed renaming of "Sbd*" event types still to be implemented.
- Changes done as a general feature but also to address the occasional usability issues
when entering notes (#33):
All the relevant settings for the Note input are now user configurable, which in particular should facilitate testing under various combinations so we can better understand what might be causing the occasional glitches while editing the note.
These settings are persisted in the browser's local storage. By default, only the autocapitalize and emoji selection options are initially enabled.
- Adjustment in "repaint" logic for the Log table, which should help with the potential "excess" of scrolling for the repaint upon multiple concurrent updates (from async events in particular).
- Added a "back to top" button in Log table (bottom-right corner), especially useful in mobile version.
- A fix implemented to avoid the rendering of the Log table contents from getting distorted upon certain conditions (event type selection, async events, page resize). (#33).
Various style adjustments in log table including:
The lines in each 'command' and 'run' events are now split into blocks for easier inspection:
Column contents aligned at the top of each row.
word-break:break-allsetting in description column so text is easier to read (added by mistake).
- Some work on known issue about log table contents getting messed up upon certain actions. (Workaround continues to be scrolling up/down a page or two. Thanks for your patience.)
- Style/layout adjustments for mobile version
- Top header simplifed; now it only contains the current time and the reload button. The other pieces here were moved to the left drawer (version info, account button, async info).
- The section above the vehicle log list has been reorganized to make better
use of the space:
- event-type-selection and text filter on the left
- shore.log button and displayed events indicator on the right
- Thinner top header toolbar.
Size adjustments in login and password reset dialogs.
- Event type selection is now "saved" (in local storage) so it will be retained upon reloads of the page or when navigating back from other sites.
Now double-clicking the cell connection status icon opens a dialog with options for operators to enable and disable such ckeck on the server (#26).
- Some adjustments related with cell connection status indicator.
New indicator that shows the current cell connection status with a vehicle from shore (#18).
The indicator is located next to the Note button. This connection status is only displayed for the vehicle currently selected as "primary".
The color of the indicator will be:
- Green: cell connection checked successfully within the last ~5 secs
- Yellow: cell connection checked successfully within the last ~10 secs (all these params are preliminary)
- Red: when no successful cell connection check within the last 10 secs
- Gray: when no recent reports have been received from the backend (meaning that the corresponding check is not currently enabled for the particular vehicle).
The associated tooltip shows a bit of more detail about the status.
- The quick switching to the Log tab right upon running a mission seems to have been interrupting the actual sending of the mission. Workaround: wait for a bit (~2secs) before selcting the Log tab.
Similarly as with
Science/sci2, a dotted line is now also displayed on the map for the
Science/profile_stationwaypoint upon the corresponding "Started mission" event (#24).
- Log tab now selected right upon issuing a command or run (#12).
Buttons added at the bottom of the Log table to load more events from the backend database (#21).
This involved some significant adjustments mainly for performance reasons. In particular, a different table widget in the UI is now used to virtualize the display of a potentially large number of events. For a relatively small number of rows the new rendering may not seem as smooth compared with the previous version, but it should be performant enough even when dealing with several thousands of rows. For example, responsiveness with 20K rows (which would render the UI almost unusable with the previous widget), seems to be pretty satisfactory. Of course, please let us know if you are experiencing any serious (or not-so-serious) display issues.
The regular refresh action (either automatic or manual) continues to execute a full reload of the data in the UI according to the query parameters in the options popup dialog. In particular, there's now only a limit in the number of events to load for the refresh action itself. (The time window size parameter has been removed.)
Occasional rendering artifacts may occur in the table upon a selection of event types, text filtering, or addition of events –– just scroll down or up (PageDown, PageUp, etc.) and the rendering should quickly get corrected.
- Resolved issue about
Re-runNOT keeping changed values when launched from the Dash(3) web interface. The problem was in the old TethysDash, which still supports the Run feature itself. See log entry there for v2.8.5. (#17).
- Launch event now with "restart logs" command enabled by default. Command also enabled for the Recover event. (#20)
- The display of vehicle positions and waypoints on the map has been improved. Basically, now using small dots/circles with size independent of the zoom level. (#16)
- Auto-completion/capitalization/correction features have been disabled in the text area used for capturing notes.
- Positions of all selected tracking database assets are now automatically retrieved and displayed upon first load of the application. Subsequent updates will continue to rely on the usual asynchronous notifications as well as manual clicks of the "refresh" button in the particular position table (located on the right-hand side of the map area).
- Better display of gpsFix positions on the map, with tooltips including timestamp and elapsed time of corresponding event.
- Playback now also includes the positions of any tracking database assets
- Map: display of Argos positions is now disabled by default
- Log table: new 'shore.log' button to directly open vehicle's shore.log file (in separate bowser tab) according to latest dataProcess event
- Log table: 500 is now the default number of rows per page
- Map: the 'zoom-to-all' button now zooms to all available and selected vehicle positions (ie., considering all vehicles and not only GPS fixes).
- Send-note dialog: always initialize the is-bug flag to false.
- Various fixes and improvements.
- First pretty functional version now being used by operators.
- starting work on overhauled frontend version.