pi-hole / web

Pi-hole Dashboard for stats and more
https://pi-hole.net
Other
2.02k stars 560 forks source link

Make the tables for TopClients & TopDomains behave like graph for ClientsOverTime #3072

Closed mwoolweaver closed 3 weeks ago

mwoolweaver commented 3 months ago

Thank you for your contribution to the Pi-hole Community!

Please read the comments below to help us consider your Pull Request.

We are all volunteers and completing the process outlined will help us review your commits quicker.

Please make sure you

  1. Base your code and PRs against the repositories developmental branch.
  2. Sign Off all commits as we enforce the DCO for all contributions
  3. Sign all your commits as they must have verified signatures
  4. File a pull request for any change that requires changes to our documentation at our documentation repo

What does this PR aim to accomplish?:

Make the tables for TopClients & TopDomains behave like graph for ClientsOverTime. Removes tables if there are no results (e.g. new installation or privacy mode enabled)

How does this PR accomplish the above?:

take the behavior found here on Line 28 https://github.com/pi-hole/web/blob/60ca1c7cb2b64c5dc7d3eafc21addabf3fce9f1e/scripts/pi-hole/js/index.js#L26-L31

and adds it to the functions for TopClients on L296 & TopDomains on L355

Link documentation PRs if any are needed to support this PR:


By submitting this pull request, I confirm the following:

  1. I have read and understood the contributors guide, as well as this entire template. I understand which branch to base my commits and Pull Requests against.
  2. I have commented my proposed changes within the code and I have tested my changes.
  3. I am willing to help maintain this change if there are issues with it later.
  4. It is compatible with the EUPL 1.2 license
  5. I have squashed any insignificant commits. (git rebase)
  6. I have checked that another pull request for this purpose does not exist.
  7. I have considered, and confirmed that this submission will be valuable to others.
  8. I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
  9. I give this submission freely, and claim no ownership to its content.

mwoolweaver commented 3 months ago

sorry for the 2 commits not sure how to squash them together from web not very familiar with git via cmd line.

these changes have been tested locally and do work as intended.

DL6ER commented 3 months ago

Personally, I think that it's fine like it is now after the most recent fix #3069. I seem to recall that it was indeed causing confusion before when the tables just "vanished" - it's now clear what is happening and users were anticipating some API failures.

Having it like it is right now allows users to tell the "no data" situation apart from something broken in the API as the tables are neither simply empty or magically vanish altogether. On the contrary, I think the graph shouldn't simply vanish, either.

mwoolweaver commented 3 months ago

On the contrary, I think the graph shouldn't simply vanish, either.

Honestly i was just looking to get to some consistency in behavior. The 5 graphs should behave the same whichever is chosen. As it is they do not do this.

rdwebdesign commented 3 months ago

The 5 graphs should behave the same whichever is chosen.

This is a personal point of view, but I don't see why they "should" behave the same (my personal opinion).

The previous PR (https://github.com/pi-hole/web/pull/3069) actually fixed the "infinity loading wheel", but there is nothing really broken in "Client activity over last 24" behavior.

Note: There are actually 4 graphics ("Total queries over last 24 hours", "Client activity over last 24 hours", "Query Types" and "Upstream servers") and 4 tables ("Top Permitted Domains", "Top Blocked Domains", "Top Clients (total)" and "Top Clients (blocked only)").

mwoolweaver commented 3 months ago

This is a personal point of view, but I don't see why they "should" behave the same (my personal opinion).

my thought was they represent the same data (client activity) so the behavior would be the same.

mwoolweaver commented 3 months ago

also worth noting is the following verbiage in the privacy settings:

Hide domains: Display and store all domains as hidden This disables the Top Permitted Domains and Top Blocked Domains tables on the dashboard

Hide domains and clients: Display and store all domains as hidden and all clients as 0.0.0.0 This disables all tables on the dashboard

i would assume disabled means "showing no data" instead of "not showing at all"

there's also no mention of the Client activity over last 24 hours graph being disabled or disappearing

rdwebdesign commented 3 months ago

This disables all tables on the dashboard

Exactly. It disables the tables (they don't collect or show data), but it doesn't hide them.