#392 Use React for widget loading
Merged by abompard. Opened by abompard.
abompard/fedora-hubs feature/react-widgets  into  develop

Download 392.patch

OK, this is very possibly the biggest pull request I've created (yet).
I tried to break it up into smaller commits, separating the backend and the frontend, but the UI change is such a rewrite there isn't really a way to split it up.
The good news is that the widget framework has almost not changed, so there probably won't be a need to update widget currently being worked on by the rest of the team. If there is such a need, I'm willing to adapt them.

There's a lot of new JS dependencies so please run npm install in the hubs/static/client directory to pick them up.

In general, this change makes the UI much faster, dynamic, modular and future-proof. No need to change page to edit or reorder widgets, for example. Changes are applied instantly. The SSE update system is also much cleaner.

I'm available if you have any questions of course.

rebased onto fdabc6a32b6c0295d174e2477876c947e0ce02b9

18 new commits added

  • Inform the JS UI of the public build path
  • Add the new and reworked React UI
  • Remove dead JS code
  • Make the Streams page use React too
  • Make the Halp REST API similar to the main REST API
  • React-based widgets are allowed to have no root view
  • Prepare the root view to use React only for the UI
  • Hubs and widgets expose 'props' to the JS UI
  • The widget panel wrapper is handled in React
  • Widget add and config panels are now React-based
  • Use a REST API for hub and widget config
  • Add the hub's right width as a property with a setter
  • Sort widgets by index by default
  • Use functions for widget parameter validators
  • Make auth testing closer to real auth
  • Make auth and user change more robust
  • Reformat spaces
  • Migrate to webpack 2+

19 new commits added

  • Inform the JS UI of the public build path
  • Various minor refactoring
  • Add the new and reworked React UI
  • Remove dead JS code
  • Make the Streams page use React too
  • Make the Halp REST API similar to the main REST API
  • React-based widgets are allowed to have no root view
  • Prepare the root view to use React only for the UI
  • Hubs and widgets expose 'props' to the JS UI
  • The widget panel wrapper is handled in React
  • Widget add and config panels are now React-based
  • Use a REST API for hub and widget config
  • Add the hub's right width as a property with a setter
  • Sort widgets by index by default
  • Use functions for widget parameter validators
  • Make auth testing closer to real auth
  • Make auth and user change more robust
  • Reformat spaces
  • Migrate to webpack 2+

1 new commit added

  • Add JS lint to tox

@abompard This surely has increased the performance of hubs. Good to merge. (Just check the semi-colon issue that I told about on IRC).

Great, thanks! I'll fix this and merge.

20 new commits added

  • Add JS lint to tox
  • Inform the JS UI of the public build path
  • Various minor refactoring
  • Add the new and reworked React UI
  • Remove dead JS code
  • Make the Streams page use React too
  • Make the Halp REST API similar to the main REST API
  • React-based widgets are allowed to have no root view
  • Prepare the root view to use React only for the UI
  • Hubs and widgets expose 'props' to the JS UI
  • The widget panel wrapper is handled in React
  • Widget add and config panels are now React-based
  • Use a REST API for hub and widget config
  • Add the hub's right width as a property with a setter
  • Sort widgets by index by default
  • Use functions for widget parameter validators
  • Make auth testing closer to real auth
  • Make auth and user change more robust
  • Reformat spaces
  • Migrate to webpack 2+

Pull-Request has been merged by abompard

Metadata