-
-
Notifications
You must be signed in to change notification settings - Fork 338
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
Spreadsheet view, sorting, grouping #363
Conversation
…frontend_sorting
…optimize render during scroll
…frontend_sorting
…frontend_sorting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a formal review, but I'm curious about why did the third party code was copied over rather than installed via npm
and imported?
@dhruvkb They were not copied, they were ported from React to Svelte, and stripped down to bare essentials. We also have additional functionality over them to better suit our needs. |
Isn't |
@dhruvkb react-window is the original work, it was created by the same author who created react-virtualized. svelte-window is a port of react-window (It's mentioned on the readme of svelte-window). Our component is also a port of react-window. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pavish I only reviewed the licensing portions of the PR, I'll review the functionality separately.
README.md
Outdated
@@ -4,6 +4,7 @@ Mathesar is a project to make databases easier to use for non-technical users. O | |||
|
|||
We are currently in early development and hope to release an alpha version by late 2021. Please see the [Mathesar wiki](https://wiki.mathesar.org/) for more information about the project. | |||
|
|||
Mathesar is open source under the GPLv3 license - see [LICENSE](LICENSE). It also contains derivatives of third-party open source modules. See the list and respective licenses in [THIRDPARTY](THIRDPARTY). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mathesar is open source under the GPLv3 license - see [LICENSE](LICENSE). It also contains derivatives of third-party open source modules. See the list and respective licenses in [THIRDPARTY](THIRDPARTY). | |
Mathesar is open source under the GPLv3 license - see [LICENSE](LICENSE). It also contains derivatives of third-party open source modules licensed under the MIT license. See the list and respective licenses in [THIRDPARTY](THIRDPARTY). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please move this under a "License" header at the bottom of the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes made in 2e798b1
THIRDPARTY
Outdated
Mathesar contains derivatives of the following components that are subject to | ||
separate license terms. Your use of these derivatives is subject to the separate | ||
license terms applicable to each component, in addition to Mathesar's license. | ||
The full text of all referenced licenses is appended at the end of this file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's better to have a LICENSES
folder where we copy the actual LICENSE
file from the project that includes the copyright information.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that would best meet this clause from the MIT license.
The above copyright notice and this permission notice (including the next
paragraph) shall be included in all copies or substantial portions of the
Software.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes made in 2e798b1
THIRDPARTY
Outdated
/mathesar_ui/src/sections/table-view/virtual-list/detectElementResize.ts | ||
|
||
|
||
ALL LICENSE TEXTS: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove this when you add the LICENSES
folder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes made in 2e798b1
The functionality looks good to me! It's nice to be able to do things with the data, the grouping seems to work well. It's confusing to have to click on "Group by Column" to ungroup the data, but I assume that's just a consequence of the implementation not being complete. I'd very much like @zackkrida to take a look at this PR since it's a big frontend structural change. |
…frontend_sorting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good on the license front.
@zackkrida Can you get to this today? If not, I'll merge it and we can address review comments in future PRs.
From our A8C discussions, @zackkrida is AFK for the coming few days (not sure why I didn't remember this sooner, he's been AFK last week as well). I would recommend merging to prevent blocking further work. |
Thanks @dhruvkb! Merged. |
@kgodey @pavish Some retroactive thoughts: This is lovely work! I noticed a small alignment issue that is resolved by removing
Otherwise, virtualization and server-loaded pagination seem to be working well together. I'd like to see the initial result count loaded much larger, and perhaps even a larger 'buffer' of items visualized above and below the virtualized items currently in the viewport. I do feel like while browsing through a large table I see a lot of empty rows I don't think it's unreasonable to load 100s or even 1000s of rows initially on page load, but these sorts of # are going to need to be continually updated anyway to best balance perceived user performance with metrics like the average row size, column count, row count, etc. |
Hey @zackkrida , thank you so much :) Regarding the alignment issue, could you please share the browser you're using and it's version. The On data loading, I agree that there are a lot of empty rows while scrolling. Currently, it works the following way:
|
Related to #343, #344
This PR contains:
Note:
Checklist
Update index.md
).master
branch of the repositoryvisible errors.
Developer Certificate of Origin
Developer Certificate of Origin