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

Add binary chart #2094

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open

Conversation

Terdious
Copy link
Contributor

@Terdious Terdious commented Jun 3, 2024

Pull Request check-list

To ensure your Pull Request can be accepted as fast as possible, make sure to review and check all of these items:

  • If your changes affects code, did your write the tests?
  • Are tests passing? (npm test on both front)
  • Is the linter passing? (npm run eslint on both front)
  • Did you run prettier? (npm run prettier on both front)
  • If you are adding a new features/services, did you run integration comparator? (npm run compare-translations on front)
  • Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to the community (french forum/english forum) for testing before merging.
  • If you are adding a new features/services which needs explanation, did you modify the user documentation? See the GitHub repo and the website.
  • Did you add fake requests data for the demo mode (front/src/config/demo.js) so that the demo website is working without a backend? (if needed) See https://demo.gladysassistant.com.

NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.

Description of change

Taken from the original PR: #Binary graph #1948
Thanks to @callemand for all the work done

Copy link

relativeci bot commented Jun 3, 2024

#2661 Bundle Size — 10.19MiB (+0.13%).

a27ae0b(current) vs e83d529 master#2649(baseline)

Warning

Bundle contains 3 duplicate packages – View duplicate packages

Bundle metrics  Change 3 changes Regression 1 regression
                 Current
#2661
     Baseline
#2649
Regression  Initial JS 5.5MiB(+0.25%) 5.49MiB
No change  Initial CSS 303.12KiB 303.12KiB
No change  Cache Invalidation 53.79% 53.79%
No change  Chunks 51 51
No change  Assets 171 171
Change  Modules 1491(+0.07%) 1490
No change  Duplicate Modules 21 21
Change  Duplicate Code 0.81%(-1.22%) 0.82%
No change  Packages 124 124
No change  Duplicate Packages 3 3
Bundle size by type  Change 1 change Regression 1 regression
                 Current
#2661
     Baseline
#2649
Regression  JS 7.28MiB (+0.19%) 7.27MiB
No change  IMG 2.48MiB 2.48MiB
No change  CSS 319.91KiB 319.91KiB
No change  Fonts 93.55KiB 93.55KiB
No change  Other 17.62KiB 17.62KiB
No change  HTML 13.58KiB 13.58KiB

Bundle analysis reportBranch Terdious:add-binary-chartProject dashboard

@Terdious Terdious mentioned this pull request Jun 3, 2024
9 tasks
Copy link

codecov bot commented Jun 4, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.41%. Comparing base (e83d529) to head (a27ae0b).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #2094   +/-   ##
=======================================
  Coverage   98.41%   98.41%           
=======================================
  Files         865      865           
  Lines       14169    14169           
=======================================
  Hits        13945    13945           
  Misses        224      224           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@Pierre-Gilles Pierre-Gilles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I created a device with 2 states in DB: opened at 3:32 in the morning, then closed at 7:32 in the morning :

Screenshot 2024-06-07 at 09 38 48

Then, I open Gladys and create a binary chart for this device :

Screenshot 2024-06-07 at 09 40 39

When I display the dashboard, the UI completely freezes and uses 100% CPU. I'm unable to do anything on the UI.

IMO there is something in the front that loops too much and blocks the JS

Copy link
Contributor

@Pierre-Gilles Pierre-Gilles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @Terdious ! Thanks for the changes :)

I have a few bugs when trying it:

  • Text is inside the "bar" :

Screenshot 2024-06-13 at 10 00 52

  • I get a freeze when saving the dashboard with a binary chart on a power plug

Here is the error :

Screenshot 2024-06-13 at 10 03 12

The payload :

Screenshot 2024-06-13 at 10 05 10

  • If I select a binary device, then unselect it, then select a non-binary device, I get a weird state where the chart type is unknown :

Before:

Screenshot 2024-06-13 at 10 06 34

After :

Screenshot 2024-06-13 at 10 06 49

  • When I'm using Gladys in English, the text inside the popup is in french:

Screenshot 2024-06-13 at 10 08 45

  • On mobile, the popup is outside of the screen :

IMG_8681

Thanks for this PR 🙂

@Terdious
Copy link
Contributor Author

Terdious commented Jun 17, 2024

  • Text is inside the "bar" :

I'm sorry but I tried to reproduce and despite zooming in / out changing resolution, etc. I never managed to get your result. On the other hand, before my previous modification I had the same problem, but I corrected it before your review

  • I get a freeze when saving the dashboard with a binary chart on a power plug

I added a console.log(deviceFeature); because I can't seem to reproduce. I tested all types of binary, tasmota and mqtt (including a power plug). And I have no problems with the units (everything is 'null'). Could you send me the logs?

  • If I select a binary device, then unselect it, then select a non-binary device, I get a weird state where the chart type is unknown

Corrected

  • When I'm using Gladys in English, the text inside the popup is in french

Corrected

  • On mobile, the popup is outside of the screen

Corrected. Display top left box

@Pierre-Gilles
Copy link
Contributor

@Terdious Thanks for the fixes!

Here is the payload that causes the freeze:

{"id":"e499dd5e-6482-4cbd-a73e-159d53c9b402","name":"Graph","selector":"graph","type":"main","visibility":"private","user_id":"275faa00-8a9c-4747-8fbe-417ddb966b16","created_at":"2024-06-10T08:20:20.784Z","updated_at":"2024-06-17T11:30:17.089Z","boxes":[[{"type":"chart","device_features":["mqtt-priseonoff"],"units":[null],"title":"Binaire","chart_type":"","interval":"last-day","display_axes":true}],[],[]]}

The response is 422 :

{
    "status": 422,
    "code": "UNPROCESSABLE_ENTITY",
    "properties": [
        {
            "message": "\"[0][0].chart_type\" is not allowed to be empty",
            "attribute": "boxes",
            "value": [
                [
                    {
                        "type": "chart",
                        "device_features": [
                            "mqtt-priseonoff"
                        ],
                        "units": [
                            null
                        ],
                        "title": "Binaire",
                        "chart_type": "",
                        "interval": "last-day",
                        "display_axes": true
                    }
                ],
                [],
                []
            ],
            "type": "Validation error"
        }
    ]
}

It's just because I didn't select the "chart type" ^^ It's maybe not related to this PR, but I wonder if we could make a fix to avoid freezing in this situation...

I have another feedback, now the date in english is not correct:

Screenshot 2024-06-17 at 13 29 13

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants