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

[Feature]-[800]:Server-side filtering for Tables #10486

Open
1 task done
lublak opened this issue Jan 19, 2022 · 40 comments
Open
1 task done

[Feature]-[800]:Server-side filtering for Tables #10486

lublak opened this issue Jan 19, 2022 · 40 comments
Assignees
Labels
Community Reported issues reported by community members Enhancement New feature or request High This issue blocks a user from building or impacts a lot of users Table Widget Widgets & Accelerators Pod Issues related to widgets & Accelerators Widgets Product This label groups issues related to widgets

Comments

@lublak
Copy link

lublak commented Jan 19, 2022

Is there an existing issue for this?

  • I have searched the existing issues

Summary

Binding of the data from the Filter fields to the data sources.

Why should this be worked on?

Currently, the filtering is client-side.
Especially with large amounts of data, I use serverside pageination.
But now it would be practical to integrate the data in sql as with serverside pagination. Table.filterJson next to Table.search and Table.pageNo would be really nice.

Front logo Front conversations

@Nikhil-Nandagopal
Copy link
Contributor

@lublak sort is already available. You can bind {{Table1.sortOrder.column}}. Server-side filtering is still missing today

@github-actions github-actions bot added Widgets Product This label groups issues related to widgets UI Building Pod labels Jan 24, 2022
@somangshu
Copy link
Contributor

@lublak this might be possible today even on the server side using the onSort event, which can be used to call an api, We also have an internal property {{Table1.sortOrder}} which gives you the column name and the order in which the user is asking you to sort, this is set to null when no column is set on sort.

Screenshot 2022-01-24 at 4 21 03 PM

@Nikhil-Nandagopal do you think this solves the problem? This is not well documented though. cc @Pranay105 @dilippitchika

@somangshu somangshu added the Documentation Improvements or additions to documentation label Jan 24, 2022
@github-actions github-actions bot added the Documentation Pod Issues related to user education label Jan 24, 2022
@Nikhil-Nandagopal
Copy link
Contributor

@somangshu it does but the same needs to be possible for filters as well

@somangshu
Copy link
Contributor

somangshu commented Jan 24, 2022

@Nikhil-Nandagopal agreed, we have an open issue for that, not yet prioritised, we might be able to get it up once we have the v2 for table. Though in no way this is dependent on the v2 implementation.

@somangshu
Copy link
Contributor

@Tooluloope I remember you working on the earlier feature set, Any comments on this, What is the effort required? Did we push this back for a reason?

@lublak lublak changed the title [Feature]: Serverside filtering and sort for Tables [Feature]: Serverside filtering for Tables Jan 26, 2022
@lublak
Copy link
Author

lublak commented Jan 26, 2022

Yes for sorting there is it available (but are we missing the serverside switch like the serverside pagination to disable all client side searching?)
Filtering is still completely missing.

@dilippitchika
Copy link
Contributor

Hey @lublak could you expand on the switch part? You have events called onSearchTextChanged and onSort.

If you bind a query to it, it will be triggered with the events making it server side, if you don't it will be done on the client side. Is this part of the table events unclear?

Agreed on the filtering part.

@lublak
Copy link
Author

lublak commented Jan 27, 2022

@dilippitchika
firefox_AmE1SbxE8Q
the Sort switch is also missing

Or "Enable client side sort"

@dilippitchika
Copy link
Contributor

Hey @lublak the reason we have "Server side Pagination" as a switch is because it needs extra properties for it to be configured and used.

For server side sort, we don't have a switch because once you configure the onSort action to bind to a query it is server side sort. You don't need an extra switch for it. When there is no query bound to onSort it uses client side sort.

The switch is only needed for server side if there are some extra properties which are needed to be filled.

@lublak
Copy link
Author

lublak commented Jan 28, 2022

@dilippitchika and what about "Enable client side search"? Why is this needed?

@Nikhil-Nandagopal
Copy link
Contributor

@lublak that is used to disable the client-side search when server-side search is applied way so that the client-side does not override the server-side search

@Tooluloope
Copy link
Contributor

@lublak Here's the issue to understand why we added the property
#5444

@dilippitchika
Copy link
Contributor

Today, we already expose all the filter properties using Table1.filters, we need to add a new onFilterUpdate action to support this.

@lublak
Copy link
Author

lublak commented Jan 31, 2022

@Nikhil-Nandagopal @Tooluloope thanks for the answer :) i understood now.
It's just a bit confusing when it's there for searching and not for sorting. I'm sorry I didn't understand it right away.

@somangshu somangshu added the Needs PRD Issue which are awaiting PRD label Feb 9, 2022
@somangshu
Copy link
Contributor

@dilippitchika in case there is enough clerity here with what needs to be implemented, Please move this to the backlog and unassign yourself

@danciaclara danciaclara added the Doc Rehaul Issues related to documentation rehaul label Aug 23, 2022
@ame-appsmith ame-appsmith changed the title [Feature]-[800]:Serverside filtering for Tables [Feature]-[800]:Server-side filtering for Tables Sep 2, 2022
@acron0
Copy link

acron0 commented Sep 26, 2022

This is a deal breaker for us, unfortunately. Any ideas when it might come around?

@somangshu
Copy link
Contributor

Hey @acron0, The dependency on this have been cleared, but we still havent prioritized this.

While I talk about this internally, can you explain your use case, Maybe we can suggest some workaround.

cc @dilippitchika

@dilippitchika
Copy link
Contributor

@dilippitchika dilippitchika removed the Doc Rehaul Issues related to documentation rehaul label Dec 9, 2022
@andrewdietekoki
Copy link

andrewdietekoki commented Dec 22, 2022

  1. TL;DR
    The design task was to accommodate for:
  • Switching On Server-Side Filtering property
  • Allowing a Column to be filterable or not.
  • Filterable Property reflected in Filter Dialog.
  • Filter Modes in Default Filters property.
  • Setting the Filter Data Format returned by the Table.filters
  • Allowing/Disallowing Column Filter Operators
  • Filter modes reflected in Table Filters (Desktop and Mobile)
  1. Screens Design

  2. Prototype

@danciaclara danciaclara removed Documentation Improvements or additions to documentation Documentation Pod Issues related to user education labels May 10, 2023
@m1ker1n
Copy link

m1ker1n commented Jul 11, 2023

Hi, is there any progress about the issue? I would like to use it too. I have a lot of fields to filter and I really like this popup.
image

@somangshu
Copy link
Contributor

Hey @m1ker1n, today we expose a field called as filters in the table widget that allows you to get the filters that are applied and maybe also use that in queries if required.

Screenshot 2023-07-12 at 3 58 37 PM

@m1ker1n
Copy link

m1ker1n commented Jul 12, 2023

Hey @m1ker1n, today we expose a field called as filters in the table widget that allows you to get the filters that are applied and maybe also use that in queries if required.

Screenshot 2023-07-12 at 3 58 37 PM

How should I observe filters changes to run new query with new parameters?

@somangshu
Copy link
Contributor

@m1ker1n apologies for the confusion, discussed this internally and found out that we need an action like onFilterUpdate on the table widget to complete this loop. This will not work as expected otherwise.

@eyyupguner
Copy link

@somangshu any upcoming news about the issue in near future

@somangshu
Copy link
Contributor

@eyyupguner can you please help me understand what you are looking for.
We haven’t yet prioritized this issue internally.

@eyyupguner
Copy link

@somangshu i have implemented the same logic with input boxes for my all columns but its hard to implement if you have lots of tables in your project and hard to manage their names etc.

@m1ker1n
Copy link

m1ker1n commented Sep 20, 2023

We created button "apply filters" which takes these filters and handles them. So user must click one more time after he chose them in popup to receive filtrated data from server

@Nikhil-Nandagopal Nikhil-Nandagopal added the Widgets & Accelerators Pod Issues related to widgets & Accelerators label Aug 6, 2024
@LagunaElectric
Copy link

@rahulbarwal @carinanfonseca Do we have an ETA for this?

@yonatang-cyera
Copy link

Hey @rahulbarwal @carinanfonseca , we'd very much like to utilize your built-in filters and connect them to our APIs for backend functionality - developing our own filters with "select" widgets creates a very high complexity and a UI which is not clean. It adds an additional level of maintenance and a complex UX. Also - this is for the most simple "AND" use case with exact match - for "contains" and "OR" conditions we'll need an even more complicated UI.
Your built-in filters are very user friendly and we'd like to utilize them with server side pagination. Using them today with server-side is unusable since they only filter the current page.
Same goes to other capabilities such as "download", but filters is our current focus.
It'll be very appreciated if you can provide an ETA.
An alternative can be an ability to "fork" your table as a custom component and a full control over its code.

Thanks!

image

@carinanfonseca
Copy link
Contributor

Hello @yonatang-cyera! I would love to have a short call with you about this topic to better understand how critical this topic is for you and to discuss some key points. Is this possible?

If yes, feel free to book a time that works best for you here.
I am looking forward to speaking with you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Community Reported issues reported by community members Enhancement New feature or request High This issue blocks a user from building or impacts a lot of users Table Widget Widgets & Accelerators Pod Issues related to widgets & Accelerators Widgets Product This label groups issues related to widgets
Projects
None yet
Development

Successfully merging a pull request may close this issue.