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

User configurable default filters for tables #8300

Closed
jasonyates opened this issue Jan 10, 2022 · 12 comments
Closed

User configurable default filters for tables #8300

jasonyates opened this issue Jan 10, 2022 · 12 comments
Labels
type: feature Introduction of new functionality to the application

Comments

@jasonyates
Copy link

NetBox version

3.1.5

Feature type

New functionality

Proposed functionality

Allow the Netbox administrator and/or logged in user to configure default filters for tables.

This could link with #7759

Use case

In some situations it could be beneficial to have administrator defined (or user defined) default filters for certain tables. My use case specifically is with Circuits. We recently migrated all of our circuit data from an in-house tool over to Netbox including historical data. As it stands, we have 300+ circuits however only ~150 are currently active. 9/10 I'm only looking in Netbox for active circuit information so it would be useful to have a default filter applied to that table to only show Active circuits.

Database changes

No response

External dependencies

No response

@jasonyates jasonyates added the type: feature Introduction of new functionality to the application label Jan 10, 2022
@sdktr
Copy link
Contributor

sdktr commented Jan 11, 2022

Related to userfavorites #8248 ?

@jeremystretch
Copy link
Member

Allow the Netbox administrator and/or logged in user to configure default filters for tables.

I find it difficult to imagine the workflow for this. For example, what happens if a user clears any applied filters? Would that clear all filters, or would it restore their default set? How would you distinguish between the two.

Maybe instead of having a default, we could allow users to define and save filter presets, and NetBox would just remember the last-used preset. I'm not sure exactly what a preset would look like, but it would really only need to map a user and object type to a JSON dict of applied filters, with a descriptive name. If this sounds reasonable I can put some more thought into it and open a new FR.

@jeremystretch jeremystretch added the status: under review Further discussion is needed to determine this issue's scope and/or implementation label Jan 14, 2022
@jasonyates
Copy link
Author

jasonyates commented Jan 15, 2022

I find it difficult to imagine the workflow for this. For example, what happens if a user clears any applied filters? Would that clear all filters, or would it restore their default set? How would you distinguish between the two.

In my mind if a user was to clear filters, it would clear them as opposed to restoring to the admin defined default. The intention isn't to stop users getting to data, it's to guide them to the most relevant data by pre-loading a filter.

Maybe instead of having a default, we could allow users to define and save filter presets, and NetBox would just remember the last-used preset. I'm not sure exactly what a preset would look like, but it would really only need to map a user and object type to a JSON dict of applied filters, with a descriptive name. If this sounds reasonable I can put some more thought into it and open a new FR.

This works too. Perhaps once you have a filter created, on the applied filters section the ability to save it as a default view (and clear it) would be a good first step. If there was the ability to save filters via the API too then I could leverage that to apply a filter for my users thus rending the "admin default" not required.

@jeremystretch
Copy link
Member

In my mind if a user was to clear filters, it would clear them as opposed to restoring to the admin defined default.

Right, but how would you convey that in the UI? For example, if I have a default filter set for sites and I navigate to /dcim/sites/, is it going to apply the default filter? If so, what query parameters would I specify to not apply the filter? I'd want to avoid doing anything to declare a negative (e.g. ?default_filter=False).

@jasonyates
Copy link
Author

Right, but how would you convey that in the UI? For example, if I have a default filter set for sites and I navigate to /dcim/sites/, is it going to apply the default filter? If so, what query parameters would I specify to not apply the filter? I'd want to avoid doing anything to declare a negative (e.g. ?default_filter=False).

Why would you need an option to not apply the filter with a query parameter? As a netbox administrator i'm trying to reduce some of the noise within the application for the majority of my users. In my example for the FR, the data we store around circuits is crucial and we have a genuine use case for keeping historical circuit data (billing disputes months after disconnect etc) but the number of people that need to access that historical data is small compared to our user base.

What i'm proposing is to allow me as an administrator of the system to define a default filter and have that automatically applied for all users when they first visit a table view e.g. /dcim/circuits/ - If a user wants to remove the filter to see all of the data they just clear it as they normally would had they defined it themselves e.g.

Screenshot 2022-01-15 at 09 30 38

@Ryujn91
Copy link

Ryujn91 commented Jan 16, 2022

I have a similar use / need for functionality like this.

Ours is specific to sites / devices. we have hundreds of branches but typically this is fairly static data so is not needed as often, however the DC's are much more dynamic. having a mechanism where when loading these pages it applies a default filter to display a specific site but users were still free to filter anyway they needed.

This just helps to remove noise from the off, i'm not sure how it would be implemented but just thought id second the desire to see such functionality.

@github-actions
Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.

@github-actions github-actions bot added the pending closure Requires immediate attention to avoid being closed for inactivity label Mar 18, 2022
@jeremystretch
Copy link
Member

jeremystretch commented Apr 6, 2022

Sorry, this fell off my radar.

Why would you need an option to not apply the filter with a query parameter?

Consider the screenshot above. Presumably, this is what the user sees when visiting /circuits/circuits/, without specifying any filters (because they've been defined as defaults). So what happens when they want to deactivate the default filter(s)? You can't just return to the default URL; you need some way to declare that the default filter should no longer be applied.

One solution would be to redirect the user to a URL with the default filters applied. For example, navigating to /circuits/circuits/ would return a 302 redirect pointing to /circuits/circuits/?status=active. I'm not sure if that would become problematic.

@jeremystretch jeremystretch removed the pending closure Requires immediate attention to avoid being closed for inactivity label Apr 6, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Jun 7, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.

@github-actions github-actions bot added the pending closure Requires immediate attention to avoid being closed for inactivity label Jun 7, 2022
@UlrikNN
Copy link

UlrikNN commented Jun 22, 2022

Hi, We would love this functionality :) We are looking to keep our history in the database by tagging deleted/scrapped items as "Deleted" A default, user clearable filter would ensure thet a user normally sees "live" stuff but still can show historical entities when need arises. Hope this posting avoids the "pending closure" status ;)

Looking forward to any responses!

@jeremystretch
Copy link
Member

IMO #9623 (also opened by @jasonyates) is a more preferable approach to this use case, as it would likely be less error-prone.

@jeremystretch
Copy link
Member

I'm going to close this FR in favor of #9623, both for the implementation problem I cited above and because IMO the proposal in #9623 would be more powerful.

@jeremystretch jeremystretch removed status: under review Further discussion is needed to determine this issue's scope and/or implementation pending closure Requires immediate attention to avoid being closed for inactivity labels Jul 7, 2022
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: feature Introduction of new functionality to the application
Projects
None yet
Development

No branches or pull requests

5 participants