bihealth / sodar-server

SODAR: System for Omics Data Access and Retrieval
https://github.com/bihealth/sodar-server
MIT License
14 stars 3 forks source link

Add dynamic row loading in samplesheets Vue app #2031

Open mikkonie opened 1 month ago

mikkonie commented 1 month ago

I was sure there already was an open issue for this, but apparently not.

Currently, we provide the entire study with all study/assay table rows from an Ajax view into the client when loading the sample sheets Vue app. This was previously optimized into a condition enough to handle studies the size of N rows, but recently we have seen the introduction of studies the size of N*3 into our production server and the whole thing becomes way too unscalable.

AgGrid does provide APIs for dynamically loading data, so we should implement that. For the browser view with cache enabled, this should be quite simple: simply return rows x-y from the cached data.

For editing, things becomes more interesting. We do comparisons with table data within the client, so if we haven't loaded some data we can't compare to it. This has to be rethought somehow. It's also possibly we initially implement this only for the browser mode. I will think about it.

In any case, this should be done for the new Vue app version after doing #994 to avoid needless double work. In fact, it might require even waiting for the release where we drop the initial version of the app, but we'll see.

It would also make sense to look at #1559 while doing this, as that would optimize things further. Also related to #899, but that should definitely be done only after retiring the old app.

Tagging this tentatively for v1.2, but that may change.

Spec (WIP)