1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00
Commit Graph

3877 Commits

Author SHA1 Message Date
David Leek
15950e4ea0
feat: release plan template milestone UI listing strategies (#8933) 2024-12-09 13:39:36 +01:00
Mateusz Kwasniewski
4b443e2a57
fix: adjust favorite icon placement (#8930) 2024-12-06 12:38:40 +01:00
Nuno Góis
ff9492d4f7
fix: permission button unintended full width behavior (#8920)
Follow-up to https://github.com/Unleash/unleash/pull/8882

The referenced PR caused an unintended behavior by making the button
behave like a normal button would on certain parent containers.
Previously, the span wrapper caused a side effect that restricted the
button’s width, which we were relying on.

By setting some initial styling properties, this PR should hopefully
satisfy both use cases.


![image](https://github.com/user-attachments/assets/2c5a4a97-51ff-426c-b5da-7b00d5d6516a)


![image](https://github.com/user-attachments/assets/f8f3fc13-df19-44d5-8fce-4bb0dc323d4e)


![image](https://github.com/user-attachments/assets/80625e88-0d1a-4c83-93d7-250351dae3a4)
2024-12-05 09:23:06 +00:00
Min Nyan Lin
50929c5e4a
refactor: Autocomplete component in PlaygroundCodeFieldset (#8912)
Custom context fields that have a list of allowed values, show values with autocomplete list
2024-12-04 16:07:29 +01:00
Nuno Góis
c6668b411b
chore: improve release plan events and add them to event timeline (#8895)
https://linear.app/unleash/issue/2-3043/improve-release-plan-events-and-add-them-to-the-event-timeline

Improves release plan events and adds them to the event timeline.

This will break the events in Enterprise but that's okay, we can follow
up with the Enterprise PR to fix them.


![image](https://github.com/user-attachments/assets/862818a5-d9bf-4006-beca-786fd6265759)
2024-12-02 12:35:48 +00:00
Nuno Góis
772f9f4f81
chore: update release plans icon (#8894)
https://linear.app/unleash/issue/2-3042/update-release-plans-feature-icon

Updates the icon for the release plans feature.


![image](https://github.com/user-attachments/assets/d7ede926-040c-4102-a59d-e096852dbc27)
2024-12-02 11:51:18 +00:00
Mateusz Kwasniewski
40769c8106
fix: swap subscribe and unsubscribe events (#8900) 2024-12-02 10:28:54 +01:00
Thomas Heartman
f833cf58eb
1-3060: remove features export import flag (#8890)
This PR removes all references to the `featuresExportImport` flag.

The flag was introduced in [PR
#3411](https://github.com/Unleash/unleash/pull/3411) on March 29th 2023,
and the flag was archived on April 3rd. The flag has always defaulted to
true.

We've looked at the project that introduced the flag and have spoken to CS about it: we can find no reason to keep the flag around. So well remove it now.
2024-12-02 09:26:06 +00:00
Nuno Góis
048afe6f37
test: loosen up useTrafficData test (#8901)
This should make the test more consistent as we don't need to be super
strict here.

Example of this failing:
https://github.com/Unleash/unleash/actions/runs/12115287823/job/33773589104?pr=8900
2024-12-02 09:15:54 +00:00
Thomas Heartman
39bf8f6068
1-3163: align copy to seats used and change in -> over (#8889)
Changes "licensed users" to "seats used" as requested. Also slightly
adjusts the copy a few other places.
2024-11-29 10:46:31 +01:00
Mateusz Kwasniewski
b6d4a5f9bc
feat: favorites take less space (#8888) 2024-11-29 10:12:31 +01:00
Nuno Góis
226b48930e
fix: permission button tooltip behavior (#8882)
https://linear.app/unleash/issue/2-3039/fix-the-tooltip-behavior-in-permission-buttons

Improves the tooltip behavior of our permission button component.

This is achieved by removing the extra `span` element that is wrapping
the `Button` component.

#### Before

The tooltip is not correctly aligned with the button. The lower section
of the button is not clickable.


![image](https://github.com/user-attachments/assets/bd5eb4d8-5b59-476f-80b1-227d7afeac2f)

#### After

The tooltip is correctly aligned with the button. Every visible part of
the button is clickable.


![image](https://github.com/user-attachments/assets/3c6271dd-8537-4f75-bd49-38e4b9ae307e)
2024-11-28 16:38:11 +00:00
Nuno Góis
f75cf1dc60
chore: release plans small misc improvements (#8879)
https://linear.app/unleash/issue/2-3038/release-plans-misc-ux-improvements

Includes various UX improvements focused on release plans:
- **New milestone status:** Introduced a "Paused" status for milestones.
A milestone is marked as "Paused" when it is active but the associated
environment is disabled.
- **Status display:** Paused milestones are labeled as "Paused (disabled
in environment)" for clarity.
- **Styling cleanup:** Removed unused disabled styling in the release
plan component.
- **Accordion stability:** Fixed visual shifting in milestone accordions
when toggling.
- **Strategy count:** Updated the "View Strategies" label to reflect the
total number of strategies in the milestone.
- **Edge case handling:** Improved rendering for milestones without
strategies.
- **Component extraction:** Refactored milestone status into a
standalone component.
- **Component organization:** Grouped milestone-specific components
under a `ReleasePlanMilestone` parent folder.
- **Template card cursor enhancement:** Set the cursor on the template
card to "pointer", so we better reflect the interactivity of the
element.
- **Template card created by enhancement:** Added an avatar for the
"Created by" field in release plan template cards, replacing the
creator's ID.
- **Navigation improvement:** After creating or editing a release plan
template, users are now redirected back to the release management page.


![image](https://github.com/user-attachments/assets/b0717dc6-3049-4612-9b46-f37a4fa887a3)


![image](https://github.com/user-attachments/assets/a17daafa-f961-4269-9522-39769912752c)
2024-11-28 15:18:27 +00:00
Mateusz Kwasniewski
8d1ebf6527
fix: ignore segment order in diff calculation (#8880) 2024-11-28 15:33:03 +01:00
Melinda Fekete
c83199db89
Remove admonitions from Proxy docs (#8860) 2024-11-28 14:08:09 +01:00
Mateusz Kwasniewski
6e9b65b09c
refactor: extract add strategy diff (#8877) 2024-11-28 10:12:55 +01:00
Mateusz Kwasniewski
0d72cfbba8
feat: view diff in edit segment CR (#8874) 2024-11-28 09:29:19 +01:00
Mateusz Kwasniewski
303711abeb
test: strategy variant tests in CRs (#8873) 2024-11-27 16:19:56 +01:00
Thomas Heartman
eaca09b35a
chore: add licensed user data to the licensed users box (#8868)
This change adds actual data from the server to the licensed users box
in the users header.

It also extracts the open sidebar button into its own component so
that we don't re-fetch the data when we open the sidebar. That's the
same issue we've had with project status and project creation screens,
etc.
2024-11-27 14:27:07 +01:00
Nuno Góis
679e9d12ef
chore: release template sidebar (#8871)
https://linear.app/unleash/issue/2-3026/release-template-sidebar-documentationcommand

Implements the release plan template form sidebar / description.

Took some liberties in the text compared to what we had in our sketches.
Also includes some slight refactoring.


![image](https://github.com/user-attachments/assets/529bf306-b545-4efa-8330-afc19782765a)
2024-11-27 13:16:27 +00:00
David Leek
9044d4c537
feat: add variants to release plan template strategies (#8870) 2024-11-27 13:32:17 +01:00
Mateusz Kwasniewski
f629773fef
fix: show variant diff on applied CR (#8869) 2024-11-27 13:31:30 +01:00
Mateusz Kwasniewski
570f8d2c34
feat: Change request applied diff for update strategy (#8859) 2024-11-27 12:51:11 +01:00
Thomas Heartman
41fb95dd56
fix: Use a proper dark theme for the activity graph (#8865)
This PR adds a proper dark theme for the activity graph. We previously
used the exact same theme for both light and dark modes.

Before:

![image](https://github.com/user-attachments/assets/1f119dca-4a87-49e3-9f3e-13163bd060c2)


After (different chart):

![image](https://github.com/user-attachments/assets/798c320c-a1b4-4634-b72e-cdb0d7a2c4a4)


I'm also passing in the theme explicitly as the `colorScheme` property.
Without that prop, the graph uses your system color scheme (according to
the docs), which may not be the same as your Unleash theme color scheme.

To avoid getting visible borders for the activity squares, I've added a `svg rect` override on the containing element that sets the svg rect strokes to be invisible.
2024-11-27 11:26:05 +01:00
Thomas Heartman
0e8365e47d
fix: user header layout on narrow screens (#8858)
This PR throws in a number of fixes to the UsersHeader's invite link and
licensed users components:

- Change the border colors from the primary purple to being a standard
border color
- Fix text / button wrapping in the invite link component. It now wraps
such that the button goes onto the row below the text if it cannot fit
on the same row. The text within the button will not wrap until it
absolutely has to (and is on its own line).
- Fix the wrapping behavior of the licensed users box: the bottom row
("seats used 30 days" and "view graph over time") will now wrap at the
same time as the other button in the other box.
- Fix some text sizes within the licensed users box
- Fix the button to look more like a link in the licensed users box

Most of it is pretty standard fare, but I've taken a slightly different
route when it comes to the licensed users box component.

I switched the whole component to be a "figure" instead of an article. I
was trying to figure out how I could make it behave the way we wanted
visually while still linking the "seats over 30 days" to the "11 /25"
counter text. The examples on MDN use things such as code snippets,
poems, quotes, etc, in addition to the more common image elements. And
in a way, 11/25 is a figure representing the number of seats used, so I
went with that for now. That said, I'd be very interested to hear some
other takes on this.

Now, because the `figcaption` has to be the first or last element of a
`figure` element, I had to include the "open sidebar" button inside the
caption, which isn't ideal. But I can live with it, I think.

Before:

![image](https://github.com/user-attachments/assets/60e14aad-89d6-4f04-b6f9-1eafb178639c)

![image](https://github.com/user-attachments/assets/61f6dee0-4a4f-428e-9e01-d68a78644a89)

![image](https://github.com/user-attachments/assets/c405d929-a53f-4d33-a6b2-9f73fa1260b4)

After:

![image](https://github.com/user-attachments/assets/d55817f1-5500-46c6-afd3-e7e7f38e3cec)

![image](https://github.com/user-attachments/assets/65dbf4ee-cd06-404f-b82c-09bcf65250e9)

![image](https://github.com/user-attachments/assets/c82a2dc7-3f9b-4ba2-9d16-1d0376c7bd2a)
2024-11-27 11:21:18 +01:00
Nuno Góis
29c0a3a557
chore: adapt billing page to custom billing scenarios (#8862)
https://linear.app/unleash/issue/2-3030/improve-the-billing-page-behavior-for-instances-with-custom-billing

Adapts the billing page to support custom billing scenarios.

Here’s how it will appear in such cases (notice a new "Your billing is
managed by Unleash" text, with no visible button to update billing
information):


![image](https://github.com/user-attachments/assets/39d7418a-1f22-41b3-9360-ca7c40a2ce7d)
2024-11-27 08:59:25 +00:00
David Leek
219006c856
feat: release plan template strategy types, constraints, segments (#8861) 2024-11-27 08:20:46 +01:00
Nuno Góis
ff164a0667
Revert "chore: adapt billing page to custom billing scenarios"
This reverts commit 13fbcec5b3.
2024-11-26 14:22:04 +00:00
Nuno Góis
13fbcec5b3
chore: adapt billing page to custom billing scenarios 2024-11-26 14:20:59 +00:00
Nuno Góis
14403d7836
chore: release plans flow in flag environments (#8843)
https://linear.app/unleash/issue/2-2816/add-release-plan-to-feature-flag-from-release-template

https://linear.app/unleash/issue/2-2818/list-release-plan-with-milestones-in-feature-flag-environment-section

https://linear.app/unleash/issue/2-2819/removing-release-plan-from-feature

Implements the release plan flow in the feature flag environment.

You can now manage release plans in a feature flag environment by adding
or removing them, as well as start milestones.


https://github.com/user-attachments/assets/24db9db4-7c3a-463e-b48a-611358f2b212
2024-11-26 09:15:24 +00:00
Mateusz Kwasniewski
90440c0439
feat: view diff in change requests (#8852) 2024-11-26 09:28:17 +01:00
Jaanus Sellin
1990ede59f
chore: rename toggle to feature (#8855) 2024-11-26 10:24:59 +02:00
Jaanus Sellin
7906bfb177
chore: rename toggle to flag (#8854) 2024-11-26 09:57:43 +02:00
David Leek
2078dcc46a
chore: milestone strategy tabs (#8851) 2024-11-26 08:42:56 +01:00
Tymoteusz Czech
1433878f32
fix: change requests placeholder (#8724)
If project does not have CRs configured, show correct info.
2024-11-25 17:54:25 +01:00
Tymoteusz Czech
8093a0d512
Update sidebar size (#8831)
Small visual change that will make UI easier to use on medium size
screens.
2024-11-25 15:06:42 +01:00
Thomas Heartman
99f2b70da3
fix: show data for last 30 days where we say we do (#8850)
This change updates the stat for archived flags "this month".

Turns out we were accessing the wrong property on the data object.

Additionally, changes the label to say "last 30 days" instead of "this
month"  because that's more accurate.
2024-11-25 13:09:03 +00:00
Mateusz Kwasniewski
dc7c46786a
fix: keep change request type in table (#8849) 2024-11-25 14:05:54 +01:00
Mateusz Kwasniewski
4f87f1e0b9
feat: deleting strategy variants indicator (#8840) 2024-11-25 10:46:35 +01:00
David Leek
79224ef9e5
chore: switch to using milestoneId instead of index (#8845) 2024-11-25 10:38:12 +01:00
Jaanus Sellin
9a269e3597
feat: licensed users chart (#8844)
Currently showing 2 lines, because backend is not sorting the data.


![image](https://github.com/user-attachments/assets/905001fb-2020-45b2-a1f4-ba497b594e61)
2024-11-25 10:03:21 +02:00
David Leek
f985cb1deb
feat: selector dropdown for milestone new strategy (#8841) 2024-11-25 07:59:58 +01:00
Mateusz Kwasniewski
c85c877c93
fix: link typo for upgrade (#8842) 2024-11-22 16:09:58 +01:00
Jaanus Sellin
b4bf68a4d2
chore: update orval schema (#8839) 2024-11-22 13:19:29 +02:00
gitar-bot[bot]
9b4e646a98
[Gitar] Cleaning up stale flag: onboardingUI with value true (#8832)
[![Gitar](https://raw.githubusercontent.com/gitarcode/.github/main/assets/gitar-banner.svg)](https://gitar.ai)
  This automated PR permanently enables the `onboardingUI` feature flag.
  
  ---
This automated PR was generated by [Gitar](https://gitar.ai). View
[docs](https://gitar.ai/docs).

---------

Co-authored-by: Gitar <noreply@gitar.ai>
2024-11-22 11:55:24 +02:00
Jaanus Sellin
172e34d3e9
feat: licensed seats sidebar (#8834)
Currently mock data, next step is to create chart and connect to
backend.


![image](https://github.com/user-attachments/assets/4b91a3ea-b42a-4c6e-b953-803ff5765c07)
2024-11-22 11:37:41 +02:00
Mateusz Kwasniewski
cf741c6845
chore: update utm links (#8835) 2024-11-22 10:04:41 +01:00
Thomas Heartman
705a0e50d1
fix: isOss check + minor UI things (#8828)
This PR fixes the isOss check for the licensed users component. It also
addresses two things in the UI:

1. It right-aligns the text on the button so that when we get narrower,
the text doesn't slide to the center. There's a few more things that we
can fix later, though. When you press it, it'll still show the entire
button layout:

![image](https://github.com/user-attachments/assets/ea4606be-614a-455e-921f-45ed8d40df23)
And when you focus it with a keyboard it still looks like a button. 

We can get around that by using a regular button and just styling it a
bit, but making the text align will take some extra jimmying around (not
done in this pr, but got stashed changes for it)

![image](https://github.com/user-attachments/assets/33b2f32b-0027-45bf-84f2-4a5e99ef38b2)

But this is what it'd look like now with centered text: 

![image](https://github.com/user-attachments/assets/fe4c6b28-ede1-4418-a471-c2b6b959aacf)



2. It wraps the entire left column in a `p` tag, because they belong
together. They're not two logical paragraphs. So instead, we wrap them
in spans and surround them in a
p. `Display: contents` makes the p "invisible", so its children act as
if
they're children of the container above it instead.
2024-11-22 09:26:52 +01:00
Tymoteusz Czech
0b68fff0b7
Personal dashboard - enterprise info banner (#8825)
Info banner for personal dashboard
2024-11-21 15:21:01 +01:00
Tymoteusz Czech
f8ae7fd539
refactor: optimize png (#8826)
No visual difference and around -30% size
2024-11-21 14:20:03 +01:00
Jaanus Sellin
358683278c
chore: hide project status widgets for oss (#8827)
Hiding 2 widgets for oss.
2024-11-21 15:17:38 +02:00
Jaanus Sellin
b72ce90102
feat: archived tooltip alignment (#8820)
From


![image](https://github.com/user-attachments/assets/168cd7ef-6976-47a3-9d2b-e12e45161039)


To


![image](https://github.com/user-attachments/assets/2c2c9593-7079-40b7-ab32-0f9d21c0f9e2)

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-11-21 14:12:14 +02:00
Mateusz Kwasniewski
c927c6f32b
feat: create project upgrade link (#8822) 2024-11-21 12:09:44 +01:00
Thomas Heartman
4ded068de7
1-3144: extract project status into own component. (#8823)
This way, we don't need to reload the entire project page just to
open/close it.

Will probably resolve the performance issues.
2024-11-21 12:03:19 +01:00
Thomas Heartman
52a456a759
fix: fix status sidebar top padding (#8817)
This PR improves handling of very narrow screens for the project status
header:
- Add a right margin so that it won't overlap with the close button.
- Make it so the icon in the header doesn't shrink.
2024-11-21 11:30:37 +01:00
Jaanus Sellin
72fd087fbf
chore: make project status fit on 1080 height (#8818)
![image](https://github.com/user-attachments/assets/a51f50fc-b0b2-4657-94f2-8d095f59898d)

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-11-21 12:10:16 +02:00
Thomas Heartman
248d859b80
fix: cleanup should be completed (#8819)
This PR changes the term "cleanup" to "completed" for the lifecycle
summary.
2024-11-21 11:05:32 +01:00
Jaanus Sellin
c18952f374
feat: licensed users ui rework (#8809)
1. Moved link creation bottom next to licensed users view
2. Created licensed users component
3. Added flag

OSS:

![image](https://github.com/user-attachments/assets/cfb2b971-3861-4093-91a5-f3118b906029)
All others

![image](https://github.com/user-attachments/assets/e8cf712f-7e66-44f6-9965-1bb785e4f3fc)
2024-11-21 11:46:40 +02:00
Mateusz Kwasniewski
4a769d14a5
feat: upgrade sso (#8813) 2024-11-20 16:42:34 +01:00
Tymoteusz Czech
01bd877a81
feat: info about unlimited projects option (#8814)
- refactored projects list header
- added info about unlimited projects to open-source version
2024-11-20 16:40:19 +01:00
Nuno Góis
b7af9b7ec3
chore: PAYG traffic bundles (#8805)
https://linear.app/unleash/issue/2-2989/unleash-payg-auto-traffic-billing

Integrates auto traffic bundle billing with PAYG.

Currently assumes the PAYG traffic bundle will have the same
`$5/1_000_000` cost as the existing Pro traffic bundle, with the same
`53_000_000` included requests. However some adjustments are included so
it's easier to change this in the future.
2024-11-20 15:20:50 +00:00
Mateusz Kwasniewski
332440491a
feat: remove bold/strong from personal dashboard events (#8330) 2024-11-20 15:40:48 +01:00
Mateusz Kwasniewski
8e7c63ac68
feat: upgrade change requests (#8812) 2024-11-20 15:16:28 +01:00
Thomas Heartman
640c16fc22
fix: center health widgets and text (#8810)
This change updates how the health widgets are aligned with their
text. They used to be aligned towards the top; now, they're centered.
2024-11-20 14:44:07 +01:00
Thomas Heartman
d661096fb7
fix: don't break personal dashboard charts if the flag is called . (#8807)
This PR fixes an issue where the personal dashboard would fail to render
if the flag was called `.` (Curiously, it was not an issue with `..`;
probably because they end up accessing different URLs).

I've taken the very pragmatic approach here of saying "right, we know
that `.` and `..` cause issues, let's just not even try to fetch data
for them".

The option, of course, is to bake in more error handling in the
components, but due to how we've got hooks depending on each other, it's
a bit of a rabbit hole to go down. I think this is a good compromise for
now.

So now, you'll get this instead:

![image](https://github.com/user-attachments/assets/827b1800-d2aa-443e-ba0c-b0b1643ec3f1)

I've also gone and updated the text for when we get a metrics fetching
error, because this probably isn't due to the flag name anymore. If it
is, we want to know.
2024-11-20 14:38:57 +01:00
Mateusz Kwasniewski
61df153a5b
feat: upgrade more environments (#8804) 2024-11-20 12:56:59 +01:00
Thomas Heartman
04b2b488f6
chore(1-3133): change avg health to current health in project status (#8803)
This PR updates the project status service (and schemas and UI) to use
the project's current health instead of the 4-week average.

I nabbed the `calculateHealthRating` from
`src/lib/services/project-health-service.ts` instead of relying on the
service itself, because that service relies on the project service,
which relies on pretty much everything in the entire system.

However, I think we can split the health service into a service that
*does* need the project service (which is used for 1 of 3 methods) and a
service (or read model) that doesn't. We could then rely on the second
one for this service without too much overhead. Or we could extract the
`calculateHealthRating` into a shared function that takes its stores as
arguments. ... but I suggest doing that in a follow-up PR.

Because the calculation has been tested other places (especially if we
rely on a service / shared function for it), I've simplified the tests
to just verify that it's present.

I've changed the schema's `averageHealth` into an object in case we want
to include average health etc. in the future, but this is up for debate.
2024-11-20 11:41:45 +01:00
Thomas Heartman
0f91c6b0c2
fix: link to unhealthy flags filter (#8802)
This change updates the "view unhealthy flags" link in the project
status sidebar to use the correct filter. The previous link was put in
before we had a filter for potentially stale, so this updates the link
to use that filter.
2024-11-20 09:37:39 +00:00
Mateusz Kwasniewski
ec44c5b5e4
chore: remove personal dashboard UI flag (#8795) 2024-11-20 09:24:08 +01:00
David Leek
5406d4d8d5
chore: addReleasePlan api hook use template id in payload (#8801) 2024-11-20 08:52:24 +01:00
David Leek
74535e98a3
chore: hide release plan template permissions behind feature flag (#8799) 2024-11-20 07:59:45 +01:00
Thomas Heartman
b23dd940af
feat: add potentially stale filter to flags filter (#8798)
This PR adds the option to select potentially stale flags from the UI.

It also updates the name we use for parsing from the API: instead of
`potentiallyStale` we use `potentially-stale`. This follows the
precedent set by "kill switch" (which we send as 'kill-switch'), the
only other multi-word option that I could find in our filters.
2024-11-19 16:37:32 +02:00
David Leek
8935a01d90
feat: create and edit release plan template milestones (#8768) 2024-11-19 13:52:07 +01:00
Tymoteusz Czech
9d96052a3b
fix: update users session warning in users table (#8794) 2024-11-19 10:36:04 +00:00
Mateusz Kwasniewski
04a7b05ac3
chore: stop using personal dashboard UI flag (#8793) 2024-11-19 10:51:37 +01:00
Tymoteusz Czech
cd0a65a279
feat: change max session count warning to 4 devices (#8792) 2024-11-19 10:26:52 +01:00
Tymoteusz Czech
7820ca62ad
feat: show max count of sessions that users have to an admin (#8781)
Add info about large number of parallel sessions per user.
2024-11-18 15:15:56 +00:00
Thomas Heartman
18591dd017
fix: use the correct design token color for the health chart background (#8783)
This change swaps out the color of the health chart "unfilled" section
for `theme.palette.background.application`. This is the same color
that's used in the sketches, so it should apply better for dark mode.

Why? I noticed that the graph looks choppy in dark mode, so figured
I'd go and investigate. This update makes it look a lot smoother.

Light mode looks the same as before.

Before (notice the leaking light grey):

![image](https://github.com/user-attachments/assets/535ca24b-756b-460c-a7ab-78daf28d68ba)


After:

![image](https://github.com/user-attachments/assets/98d4c0de-bde3-4d10-9210-fdd0bf5dc572)
2024-11-18 14:07:40 +02:00
Thomas Heartman
a55a956772
1-3120: remove project connected environments (#8775)
Remove everything related to the connected environment count for project
status. We decided that because we don't have anywhere to link it to at
the moment, we don't want to show it yet.
2024-11-18 12:01:25 +01:00
Thomas Heartman
fb9c754008
feat: combine health and status widgets (#8782)
This PR combines the health and status widgets into a single widget. It
adds a new row with information on your unhealthy flags.

The stat prettifies large numbers to avoid overflows for very large
numbers. To keep it in line with the SVG, I've extracted some of the
constants so we can share them for size calculation.


![image](https://github.com/user-attachments/assets/0b66b6ba-b88c-412e-838f-bd5e7867cdc3)

When it folds, it uses the "space-around" algorithm to make the two
stats occupy their own positions:

![image](https://github.com/user-attachments/assets/eb3a4f0e-31fa-4895-ba12-c6f910112204)

The number uses a custom background color in dark mode because elevation
1 and 2 are the same there:

![image](https://github.com/user-attachments/assets/fa405c33-f38a-4fea-bf20-e1d9bf21bb1c)
2024-11-18 12:01:08 +01:00
David Leek
0ce976a0d5
feat: implement call to add release-plan to feature environment (#8778) 2024-11-18 09:30:29 +01:00
Tymoteusz Czech
6d4e2e991f
fix: device count flag without variant (#8773) 2024-11-15 13:05:50 +01:00
Tymoteusz Czech
9d5fceb5bf
feat: show users with multiple parallel sessions (#8756) 2024-11-15 10:34:38 +00:00
Thomas Heartman
f89bc33645
1-3125: Update project navigation for the simplified view (#8770)
The changes are:
- Change "Flags" to "Overview"
- Also hide "Insights" and "Health"
- Change "Project settings" to "Settings"
2024-11-15 09:56:41 +00:00
Thomas Heartman
046573174b
fix(a11y): Fix keyboard navigation issues with sidebar (#8769)
This PR fixes a number of keyboard accessibility issues with the
feedback sidebar. They are (in no particular order):
1. The radio inputs don't have a focus style for `focus-visible` (when
keyboard focused).
2. There's two close buttons there for some reason? One is invisible,
but you can tab to it?
3. The sidebar doesn't trap focus, so you can tab out of the modal and
continue tabbing through the main page (with the modal still open)
4. The sidebar doesn't steal focus. When you open it, your focus remains
on the button you used to open it. So if you want to navigate to it, you
have to go through the entire page (behind the modal) to get to it.
5. The sidebar can't be closed by 'escape'.

The fixes are:
1. Apply the same styles when focus visible as when hover
2. Wrap the component in the `BaseModal` component
3. Wrap the component in the `BaseModal` component
4. Wrap the component in the `BaseModal` component
5. Wrap the component in the `BaseModal` component

(see a theme here?)

Additionally, because the base modal has its own `open` state, I removed
the wrapping conditionally render, reducing nesting by one stop. Most of
the changes in the file are just whitespace changes.


![image](https://github.com/user-attachments/assets/28832756-cfb3-4ced-8b8c-a344edced036)

I considered also applying an auto-focus to the first input in the
sidebar, but our linter doesn't like it. Additionally MDN lists the
following [accessibility
concerns](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus#accessibility_concerns)

> Automatically focusing a form control can confuse visually-impaired
people using screen-reading technology and people with cognitive
impairments. When autofocus is assigned, screen-readers "teleport" their
user to the form control without warning them beforehand.
>
> Use careful consideration for accessibility when applying the
autofocus attribute. Automatically focusing on a control can cause the
page to scroll on load. The focus can also cause dynamic keyboards to
display on some touch devices. While a screen reader will announce the
label of the form control receiving focus, the screen reader will not
announce anything before the label, and the sighted user on a small
device will equally miss the context created by the preceding content.

So I'll leave it off.
2024-11-15 10:24:53 +01:00
Thomas Heartman
b4d19862d7
1-3122: refetch CR notifs on actions (#8767)
Refetch actionable change requests whenever you perform an action on a
change request. This ensures that the change request notifications are
up-to-date for you. Of course, it can still get out of sync if someone
else performs an action on the change request, but that's more of an
edge case.
2024-11-15 10:02:36 +01:00
Mateusz Kwasniewski
b3437b8c34
feat: Max sessions limit (#8765) 2024-11-15 09:57:17 +01:00
Thomas Heartman
5d36862ddb
feat: add project status feedback (#8764)
This PR adds the feedback component to the project status page. When you
open the feedback modal, we close the status sidebar. Exiting the
feedback modal takes you back to the project page.

As a bonus: fixes the background color of the health grid, which was a
little bit off.


![image](https://github.com/user-attachments/assets/6e7e61cb-75f4-44ac-9efd-632b40ccab51)


![image](https://github.com/user-attachments/assets/6e049719-cff3-4b85-8f02-e0174b515ab2)
2024-11-15 10:51:00 +02:00
Nuno Góis
6db6cc2bd6
refactor: remove unused component UserSeats (#8757)
https://linear.app/unleash/issue/2-2974/remove-unused-component-userseats

Removes the unused component `UserSeats`.
2024-11-15 08:45:32 +00:00
Mateusz Kwasniewski
5a2663a451
test: session deleted toast (#8754) 2024-11-15 09:31:42 +01:00
Thomas Heartman
2014d367f8
1-3073: close sidebar when you click a link within it (#8763)
This change makes it so that the project status sidebar will close
when you follow a link within it. We do that by using JS event
bubbling and attaching a handler on the modal parent. We can listen
for events and check whether the target is an anchor and, if so, close
the modal.
2024-11-15 07:36:22 +00:00
Jaanus Sellin
1af204e0f0
feat: now pay as you go billing banner has link (#8761)
My intuition wanted to click on it to start paying, but it did not work.
Changed condition to show it for pay as you go.


![image](https://github.com/user-attachments/assets/d14ad947-ce4a-48cb-8bbd-c1d6dfb84a0a)
2024-11-15 09:26:49 +02:00
Thomas Heartman
c9b674f7ab
fix: Project Status UI fixes (#8762)
This PR fixes a few small UI issues reported by UX. It:
- Adds hover colors to the lifecycle boxes
- Adjusts the font size for the health widget to match project resources
and lifecycle
- Makes the `view health over time tooltip` take you to the insights
page with the current project preselected


![image](https://github.com/user-attachments/assets/f672a577-1b01-4d45-98da-d5c367c9a0bc)
2024-11-15 07:16:09 +00:00
Thomas Heartman
7e96033c4a
3111-1: Wires up stale data from the API (#8752)
Builds on the backend code added in
https://github.com/Unleash/unleash/pull/8751

This wires up the front end to use the data returned from the API
2024-11-14 14:23:05 +00:00
Thomas Heartman
5d32d149cd
feat: add stale flag count to project status payload (#8751)
This PR adds stale flag count to the project status payload. This is
useful for the project status page to show the number of stale flags in
the project.
2024-11-14 14:10:10 +00:00
Thomas Heartman
b4e2d5d270
Add close button, fix layout, refactor (#8755)
This PR consists of cleanup for the project status modal as well as
adding the missing button.

I've added inline comments to explain the different steps.

It now looks like this:

![image](https://github.com/user-attachments/assets/29a3c0b7-770c-4019-aaed-b363c5804138)
2024-11-14 15:00:32 +01:00
Nuno Góis
395a4b6be3
chore: PAYG billing (#8743)
https://linear.app/unleash/issue/CTO-95/unleash-billing-page-for-enterprise-payg

Adds support for PAYG in Unleash's billing page.

Includes some refactoring, like splitting Pro and PAYG into different
details components. We're now also relying on shared billing-related
constants (see `BillingPlan.tsx`). This should make it much easier to
change any of these values in the future. I already changed a few that
were static / wrongly relying on instanceStatus.seats (we decided we're
not doing that for now).


![image](https://github.com/user-attachments/assets/97a5a420-a4f6-4b6c-93d6-3fffddbacbc7)
2024-11-14 11:29:05 +00:00
Tymoteusz Czech
3699646680
Restore additional feedback page (#8750)
Partial revert of 656483d819
Reuse search feedback.
2024-11-14 12:01:45 +02:00
Mateusz Kwasniewski
4fabf49706
feat: show deleted user sessions (#8749) 2024-11-14 10:30:31 +01:00
Thomas Heartman
9440b52464
feat: Add stale flags counter (#8741)
This PR adds the stale flag component to the health grid. In doing so,
it also reworks the layout of the health row (now a grid) and updates
the health component.

In addition to removing the text from the component, I have adjust the
SVG a bit to make it not shrink on smaller screens and have adjusted
it's spacing, so that it's not full of dead space at the bottom. This
makes it easier to style because it doesn't add 15px of invisible
content.

This PR also touches up a few other visual issues I found, such as
header level and sidebar width.

Wide:

![image](https://github.com/user-attachments/assets/acb57b17-eb7f-4b69-9bfa-1113bb748467)

Medium:

![image](https://github.com/user-attachments/assets/a57331b0-825f-4b20-9b05-3ecd81804f5d)

Narrow:

![image](https://github.com/user-attachments/assets/65c6e8d1-1783-4354-b71b-2867eabcc9ec)
2024-11-14 08:55:21 +00:00