Operator status (#5179)

* Added click event to simple indicator

* Moved operator status plugin to Open

* Implementing user role status API

* Support adding indicators asynchronously

* Adding user status API

* Updated example user provider

* Update icon with status

* Adding admin indicator

* Apply config options

* Set status class on indicator. Clear all statuses

* Show poll question in op stat indicator

* Implementing status summary

* Get statuses from providers. Reset statuses when poll question set

* Styling for operator status
- New icon glyph - IMPORTANT: OVERRIDE ANY MERGE CONFLICTS USING THIS COMMIT!
- Fixed erroneous font glyph mapping;
- Added default color for indicator icon;
- Changed user indicator to display response when set to other than "NO_STATUS".
- Standardized icon display.

* Cherrypick symbols font updates from restricted-notebook branch. This is the most full and complete version of the symbols font - OVERRIDE ANY MERGE CONFLICTS WITH THIS COMMIT!

* Fix positioning of popups

* Also fix positioning of status indicator

* Get roles by status instead of users

* Refactor how status summary is determined to simplify API

* Re-fetch status summary on status change

* Implemented status reset

* Move status into separate API

* Refactor user status to its own sub-API

* Create RAF utility class

* Error handling

* Add copyright notices

* Fix test issues

* Added jsdocs

* Additional tests for raf utility function

* Move status style configuration into Open

* Move styling from the API into the view

* Added some docs

* Added some unit tests and fixed a bug found in the process. Tests work\!

Co-authored-by: Andrew Henry <akhenry@gmail.com>
This commit is contained in:
Charles Hacskaylo
2022-06-02 13:46:13 -07:00
committed by GitHub
parent 50b642fabe
commit f5796c984e
32 changed files with 2216 additions and 387 deletions

View File

@ -78,6 +78,7 @@ define([
'./userIndicator/plugin',
'../../example/exampleUser/plugin',
'./localStorage/plugin',
'./operatorStatus/plugin',
'./gauge/GaugePlugin',
'./timelist/plugin'
], function (
@ -138,6 +139,7 @@ define([
UserIndicator,
ExampleUser,
LocalStorage,
OperatorStatus,
GaugePlugin,
TimeList
) {
@ -217,6 +219,7 @@ define([
plugins.DeviceClassifier = DeviceClassifier.default;
plugins.UserIndicator = UserIndicator.default;
plugins.LocalStorage = LocalStorage.default;
plugins.OperatorStatus = OperatorStatus.default;
plugins.Gauge = GaugePlugin.default;
plugins.Timelist = TimeList.default;