Skip to content

Project Status

Will Rogers edited this page Dec 18, 2020 · 39 revisions

Some tasks that might be good for new starters are highlighted in bold. If you plan to look at one of these tasks, put your name beside it, and let people know in the Slack channel.

Larger work packages

  • Widget interface - Will Rogers
    • Prop types at runtime
    • Default props
    • Widget registration
    • How functional widgets should share common code
    • Can a widget define its own new prop type?
  • Positioning and layouts
    • Which of the possibilities of CSS positioning should be available?
  • Filesystem layout and file serving
    • URL formats
  • Opening files in different screen locations
  • Performance and benchmarking - Tim Guite
    • Coniql
    • Websocket performannce, including arrays
    • Benchmarking suite
    • JS code
  • Plotting (2D and 3D) - Bryan Tester
    • Server-side plotting
    • Nivo charts, plotly
    • Recharts
    • uplot
    • visx/curves
    • How does Jupyter do plotting?
  • Use widget library e.g. Material, Ant Design, Semantic UI
  • Understand Z-ordering and click pass-through
    • EDM click pass through widgets to those beneath. Is this useful? How easy would it be?
  • Themes, styles and classes
  • JavaScript VTypes and handling EPICS7 - Will Rogers
    • Use Coniql's tartiflette branch
    • Do we need to handle arbitrary structures?
  • Load EDM files directly
  • Databrowser
    • This depends on plotting capability
  • GDA UIs
  • Integrating with other webapps
    • Synchweb
  • Launching other applications from the web UI
  • Packaging as an Electron app
  • Editor
  • Formula functions as in Phoebus
  • Review existing projects
  • Javascript build system
  • Documentation
  • Code review from front-end experts

Medium-sized tasks

  • Handle multiple PVs on one widget (see Phoebus widget runtime code)
    • Could all these PVs be part of a single device?
  • Define rule capabilities
  • Prototype Pyburt UI
  • Simplify 'wrappers' and avoid extra divs where possible
  • Allow group-box style border on any widget
  • Allow PV values to be used as symbols, as in the EDM MenuMuxPV widget
  • Make widget parsing more generic:
    • allow complex parsers to create multiple props
    • allow widgets to provide their own custom parsers
    • forbid unrecognised fields (at least in json files)
  • Investigate React Testing Library - Will Rogers
  • Alarm sensitivity (see Alarm sensitivity) - Will Rogers

Fixes

  • Document how to run a soft IOC, Coniql and cs-web-proto
  • Load different CS-Studio screens and assess how well they work - George Sheppard
  • Try to create a beamline synoptic more closely - George Sheppard
    • This might suggest new widgets or capabilities to add
  • Add widgets for all the graphical elements that Phoebus has
  • Handle unrecognised protocol (xyz://) better
  • Make demo PVs update less quickly
    • This is easy to reproduce but will end up exploring how Redux works in the app
  • Handle alignment of groups in .bob files
  • Position class name clashes with built-in Position type
  • Disable action button when writing to read-only PV
  • Text update jitters when number turns negative
  • Close drawer widget when an item is selected
  • The dynamic page widget adds a border at the top where the close button sits. Could this be removed?
  • If you have two tabs open with the same name and close one, both tabs close (dynamic tabs widget).
Clone this wiki locally