nextcloud / tables

🍱 Nextcloud tables app
https://apps.nextcloud.com/apps/tables
GNU Affero General Public License v3.0
143 stars 24 forks source link

refactor vue-tabulator #93

Closed datenangebot closed 1 year ago

datenangebot commented 1 year ago

For now the vue-tabulator component is used to create the table view inside the tables app. The repo https://github.com/angeliski/vue-tabulator is not up to date. Last commit > 2 years ago. How to handle that? Maybe we should replace it.

Info: The tabulator framework is up to date and gets commits all the time. But the most are from only one contributor. That might be a little bit to risky as a basement for the tables app?!

Options:

  1. Implement own wrapper for tabulator
  2. take another table framework -> NC default???
  3. write an own table component -> make NC default?!

Question to all contributors, but specially: @juliushaertl I would love to hear your opinion on that.

juliushaertl commented 1 year ago

I guess it depends on what requirements we have for such a table component. We may want to consider lazy loading, sorting and filtering capabilities especially in regards to how we want to perform such tasks on larger data sets. Maybe something we should chat about soonish to see if we can do performant filtering in the backend or if that should be offloaded to the frontend. In the backend case we might be able to use a rather simplified table component we build on our own.

For some research we could check if there are other well maintained vue libraries for table rendering as well.

datenangebot commented 1 year ago

Collection of requirements I see

the asterik means nice to have for further features that might come up

Possible tools

Vue Easytable

https://happy-coding-clans.github.io/vue-easytable/#/en/demo

Vue good table

https://github.com/borisflesch/vue-good-table-next https://xaksis.github.io/vue-good-table/

Vue materialize datatable

https://github.com/MicroDroid/vue-materialize-datatable looking great, but only vue 2?

Tabulator

https://tabulator.info/docs/5.4/frameworks#vue

>>> Comparison table <<<

datenangebot commented 1 year ago

I think I will start and try out to make an own table. Reasons for it are:

  1. (Easy) Usage of native NC vue components -> Auto updates, perfect look&feel
  2. No dependencies on single maintainer projects
  3. best adjustment opportunities for performance, lazy loading etc.
juliushaertl commented 1 year ago

Thanks for the nice overview on the research. Would agree that implementing custom components for that seems to be the most feasible option.

datenangebot commented 1 year ago

custom component ready for testing. Shipped with v0.3.0.