Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite of HTML tables with React #477

Merged
merged 130 commits into from
Nov 2, 2019
Merged

Rewrite of HTML tables with React #477

merged 130 commits into from
Nov 2, 2019

Conversation

PhilippWendler
Copy link
Member

This provides a complete rewrite of the HTML tables that table-generator produces. Instead of statically creating a HTML <table>, we now insert the data as JSON and use React to render a table dynamically. Furthermore, all the spaghetti code for interactive features like plots is now completely replaced by a proper architecture using React components, and there exists infrastructure to test this.

Some new features like better row filters and improvements have also been added based on a user study. But the main advantage is that it is now possible to open large tables in browsers without long waiting periods.

The studies and the rewrite were done by @bschor and a report about this is available as her Bachelor's thesis.

Users who whish to continue using the old tables can pass --static-table to table-generator, but we expect this to be removed in BenchExec 3.0.

Fixes #130 (sorting added)
Fixes #423 (summary tab with only header and footer of table added)
Closes #123 (all Javascript is now bundled in the HTML file)
Closes #195 (all Javascript is now bundled in the HTML file)
Closes #214 (filtering is now longer in an overlay, and much faster anyway)
Closes #237 (react-table is used)
Closes #296 (main table has only small header, full header is shown on summary tab)
Closes #297 (main table has only small header, full header is shown on summary tab)
Closes #375 (no longer applicable)

PhilippWendler and others added 24 commits October 29, 2019 11:15
This hopefully avoids the need to commit a 700 KB file everytime we change our
own Javascript code.
These licenses typically require that you attach the license if you
redistribute the code (which we do in the vendors.min.js file).
We do not use it, and there is nothing to cache for which we could use it.
This option is removed, and the previous kind of table can be generated
with "table-generator --static-table".
These tests compare created tables against expected files,
and for the dynamically-rendered new tables this does not make as much
sense. We need to find a better way to test these.
There shouldn't be any actual change, just rebuilt with latest node
Docker image.
On my machine the build seems to be deterministic and only changes if
some input files change, but on CI the result is different.
Not sure why.
@dbeyer
Copy link
Member

dbeyer commented Nov 2, 2019

Awesome! Thanks a lot @PhilippWendler and @laurabschor ! Can't wait using this for the competitions!

@PhilippWendler PhilippWendler merged commit d20b13b into master Nov 2, 2019
@PhilippWendler PhilippWendler deleted the react-table branch November 2, 2019 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment