1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
Commit Graph

3824 Commits

Author SHA1 Message Date
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
Tymoteusz Czech
fecf57c467
fix: send UI error tracking (#8725)
Put error boundary inside of stats provider.
2024-11-13 16:13:05 +01:00
Thomas Heartman
088eaedbc3
feat: add tooltips to lifecycle boxes (#8739)
This pr adds tooltips to lifecycle boxes when they're hovered or
focused. There's also some small copy tweaks.

We decided to go with tooltips instead of buttons for this iteration
because it'd be an easier thing to implement, especially in regards to
keyboard navigation and avoiding overlapping other elements.

I've also not changed the background color of the tooltips just yet.
There's two reasons for this:
1. The practical reason is that our `HtmlTooltipComponent` doesn't allow
you to do that and I didn't wanna start messing about with that.

2. If all our other tooltips follow this color scheme, why not do the
same here? Especially because they're not buttons anymore, so using the
same color as other tooltips seems sensible.

![image](https://github.com/user-attachments/assets/2e0ebf26-6809-4952-87db-9b7d2838eed7)
2024-11-13 14:52:43 +01:00
Thomas Heartman
bc7511abd4
chore: prepare for lifecycle comments (#8733)
This PR is a preparation for adding lifecycle comments. It turns the
Lifecycle boxes into buttons, using MUI's
[`CardActionArea`](https://mui.com/material-ui/api/card-action-area/)
component, and allows you to select one at a time.

I'm not convinced about the a11y of this approach, but it appears to be
in line with what MUI suggests, so ...

I'll add the speech bubbles in a follow-up.

<img width="1059" alt="image"
src="https://github.com/user-attachments/assets/ad3f649f-10de-4418-a780-10321e90d001">
2024-11-13 12:02:33 +00:00
David Leek
cb316f012c
feat: frontend initial page for creating release templates (#8732) 2024-11-13 11:03:19 +01:00
Jaanus Sellin
b6f573c6b9
feat: coloring of health chart (#8731)
1. Now properly color the chart based on 0-25,25-75,75-100 thresholds.
2. Fix spacing
3. Fix wrong svg implementation


![image](https://github.com/user-attachments/assets/1bd2f565-3156-4b09-896c-e126335d182c)
2024-11-13 11:49:16 +02:00
Thomas Heartman
b87c47d7c4
1-3083: add remaining lifecycle header + tooltip (#8722)
This PR adds a header and a tooltip to the lifecycle widget. Most of the
changes in ProjectLifecycleSummary is indentation changes due to
wrapping the component in another row container.

Additionally, this PR touches the `HelpIcon` component because we'd like
the tooltip to be wider than what we currently set as the default for
the help icon. The help icon uses the html tooltip component, which has
a maxWidth prop, but it does not expose that. So I've adjusted it to let
you do that.



Header with tooltip:

![image](https://github.com/user-attachments/assets/6ae1984b-256b-4f09-8fa2-b86ac2c17558)
2024-11-13 10:16:35 +01:00
David Leek
7feba0c4d4
feat: edit release plan template (#8723) 2024-11-13 09:37:47 +01:00
Thomas Heartman
20c5a6f7ce
1-3095: small UI tweaks sidebar boxes (#8721)
This PR fixes three minor UI issues:
1. The modal is too wide. Turns out that `SidebarModal` has a fixed
width of 1300. `DynamicSidebarModal` does not, so that switch makes it
much leaner.
2. The lifecycle boxes should grow in width to fill whatever space they
have available.
3. If you have 1 flag in any of the stages, we should say "1 flag"
instead of "1 flags".

Sidebar before:

![image](https://github.com/user-attachments/assets/d33d82ca-e04b-416d-b731-9a37f8df3b08)


Sidebar after:

![image](https://github.com/user-attachments/assets/060be979-484a-4481-8781-d171b4211b45)


The lifecycle boxes at their very widest:

![image](https://github.com/user-attachments/assets/817e437f-a0ee-4a85-9018-16ff84cb3819)
2024-11-12 14:31:23 +01:00
Thomas Heartman
42198cee83
chore: handle edge cases (#8719)
Handle a couple edge cases related to project lifecycle metrics:
1. If the average time spent was less than a day, we'd show "0 days".
Now we show "less than a day" instead.
2. If the number of flags grows very large, it'd start pushing out the
lifecycle icon. Instead, we now format in nicely.

Before:

![image](https://github.com/user-attachments/assets/a43cf021-7eb0-4edf-ab21-b379c1600299)

![image](https://github.com/user-attachments/assets/6243167a-cb43-4de5-a64c-a5231477d1b6)



After:

![image](https://github.com/user-attachments/assets/3efa630d-708d-4238-a4aa-09cdbbe459c1)

![image](https://github.com/user-attachments/assets/aa773ab8-7719-47f3-a684-18bec829da35)
2024-11-12 12:16:33 +01:00
Thomas Heartman
3bc9fe9a9a
[wip] add data to ui (#8710)
Hooks up the project status lifecycle data to the UI. Adds some minor
refactoring as part of that effort.

## Other files

There's been some small changes to
`frontend/src/component/feature/FeatureView/FeatureOverview/FeatureLifecycle/FeatureLifecycleStageIcon.tsx`
and `frontend/src/hooks/useLoading.ts` as well to accommodate their
usage here and to remove unused stuff. The inline comments mention the
same thing but for posterity (especially after this is merged), the
comments are:

For
`frontend/src/component/feature/FeatureView/FeatureOverview/FeatureLifecycle/FeatureLifecycleStageIcon.tsx`:

> The icon only needs the name to pick.
https://github.com/Unleash/unleash/pull/7049 deliberately changed the
logic so that the completed stage gets the same icon regardless of its
status. As such, to make the icon easier to use other places (such as in
the lifecycle widget), we'll only require the name.

For `frontend/src/hooks/useLoading.ts`:
> There's no reason we should only be able to put refs on divs, as far
as I'm aware. TS was complaining that that a `ul` couldn't hold a div
reference, so I gave it a type parameter that defaults to the old
version.
2024-11-12 11:35:42 +01:00
Thomas Heartman
24a30e5ec3
Update orval for project status lifecycle (#8716)
Update schema and orval for project status to add lifecycle information
2024-11-12 09:28:27 +00:00
sjaanus
27091f886d
feat: update zindex to theme 2024-11-12 10:33:00 +02:00
Jaanus Sellin
920c3e66cd
feat: now tooltip will not be over the main content (#8714)
Now when pressing on new feature or import button, the tooltip will stay
in background.
2024-11-12 10:30:34 +02:00
Jaanus Sellin
76b7b247fc
feat: define activity labels (#8713)
Now the label for total activities is more correct.


![image](https://github.com/user-attachments/assets/1748cf25-9605-4701-b4ab-6a16e9b760eb)
2024-11-12 09:51:24 +02:00
Nuno Góis
044e61454b
chore: list release templates in strategy popover (#8703)
https://linear.app/unleash/issue/2-2817/expand-the-strategy-dropdown-with-release-plan-templates

Does what it says on the tin, lists release plan templates in the
strategy popover.

I think we should improve this popover soon, at least behind the
`flagOverviewRedesign` flag, but not in this PR.


![image](https://github.com/user-attachments/assets/6f91175f-f941-4566-b56b-24007d5077da)
2024-11-08 14:26:01 +00:00
Jaanus Sellin
da805f2036
feat: remove archive tooltip conditionally (#8702)
The archived functionality has been moved into the feature list, and we
are showing a tooltip. However, it doesn’t make sense to display it to
new customers, as they wouldn’t be familiar with the previous behavior.

I've introduced a "new/old user" classification, where I’m setting
08.11.2024 as the dividing line. All customers created after 08.11.2024
will be considered new, and we won’t display the tooltip for them.
Everyone else will be treated as old customers.

This approach means there will be a brief period from 08.11.2024 until
the release date where any customers created during this time will be
categorized as new, even if they still have access to the old archive.
For simplicity, I’m willing to accept this risk, as it's likely that in
95% of cases, for those few customers (0–10), they won’t need the
archive functionality immediately, so it’s acceptable not to display the
tooltip for them.

This setup is temporary in our code base and will be removed with a
feature flag.
2024-11-08 16:12:41 +02:00
Jaanus Sellin
5733f91347
feat: archived toggles do not show switch (#8696)
Archived toggles will not show switch anymore, but a dash.

![Screenshot from 2024-11-08
11-41-17](https://github.com/user-attachments/assets/d43de8ff-13c3-4f70-8f8f-b7e5bbc4d0bc)
2024-11-08 12:27:41 +02:00
Nuno Góis
b4fde58fa0
chore: flag overview page redesign - environments (#8683)
https://linear.app/unleash/issue/2-2826/enabling-environment-via-feature-flag-environment-section-header

https://linear.app/unleash/issue/2-2825/feature-flag-list-bottom-left-to-be-a-nav-section

Follow-up to: https://github.com/Unleash/unleash/pull/8663

Implements most of the remaining work for our flag overview page
redesign.

Most of the code you see is a straight copy/paste from our older
existing components, with the slight improvement here and there.

Includes some improvements to our vertical tabs component to suit our
use case.
Also updates the Demo flow accordingly. I did some manual tests and it
seems to work decently in both scenarios, whether `flagOverviewRedesign`
is enabled or not. The demo needs some love but that's a story for a
different PR and a different time.

Once again, due to the duplicate file pattern, we should remember to
clean this up if we decide to remove the flag.

<img width="1086" alt="image"
src="https://github.com/user-attachments/assets/0c375e34-cbb5-4ac4-a764-39a36b6c6781">
2024-11-08 09:56:46 +00:00
Jaanus Sellin
8a507b2eec
feat: connect project health frontend with backend (#8695)
1. Connected project health frontend with backend
2. Synced orval
2024-11-08 10:53:45 +02:00
Tymoteusz Czech
656483d819
chore: remove stale flags (#8689)
- `projectOverviewRefactorFeedback`
- `featureSearchFeedbackPosting`
- `featureSearchFeedback`
2024-11-08 09:40:17 +01:00
Nuno Góis
f669d9622e
fix: console warnings and errors related to event timeline and strategy form (#8692)
Fixes browser console warnings and errors related to the event timeline
and strategy form.

- **Event Timeline**: Addressed a warning where the environment filter
rendered with a default environment value (production) before
environments were fully loaded.
- **Strategy Form**: Resolved an error caused by forwarding the enabled
prop as a boolean.
2024-11-08 08:18:30 +00:00
Jaanus Sellin
73c608c578
feat: activity chart now shows full year (#8690)
Previously when there was no data, the activity chart showed as really
small. Now I am populating the start date and end date to draw out full
chart.


![image](https://github.com/user-attachments/assets/a051ad2e-6d62-4fa9-8cd0-7b5776f361d1)
2024-11-07 14:57:16 +02:00
Jaanus Sellin
8fc2032bfa
feat: health widget (#8686)
![image](https://github.com/user-attachments/assets/01bca9b5-ecc3-4b9e-ae58-a8af84685121)
2024-11-07 12:07:30 +02:00
Thomas Heartman
e224417116
1-3059: add initial visuals for lifecycle summary (#8679)
Add rough implementation of the lifecycle summary components.

This PR adds components for all the different lifecycle stages. We don't
have any data yet, so they're all hardcoded for now, just to get the
visuals right. I'm expecting the lines of code to drop and to
refactor/extract some structures as development continues.

For now, this is what they look like:


![image](https://github.com/user-attachments/assets/d7deacaa-83e1-46c2-bc28-8264416c1dd9)

Things to note:
- The lifecycle stage icon colors don't match up with the sketches, but
they match up with what we currently have in the app. If we change them,
we should change them together.
- This implementation does not contain the "Flag lifecycle" header or
the "view graphs" link.
2024-11-07 10:44:13 +01:00
Jaanus Sellin
ba79a633e4
fix: show archive tooltip only on project screen (#8685)
Fixing archive tooltip appearing on every filter in Unleash


![image](https://github.com/user-attachments/assets/5fc4ff0b-ddd7-4101-ac6b-141ea4b67c78)
2024-11-07 10:49:31 +02:00
David Leek
cfe19dee73
feat: deleting release-plan templates (#8678) 2024-11-06 15:55:26 +01:00
Mateusz Kwasniewski
730200c05b
test: flaky flag type selection (#8677) 2024-11-06 14:51:43 +01:00
Jaanus Sellin
21c44a4d42
fix: dashboard onboarding flow correct conditions (#8676)
Previously it never went to else clause. Because it was always
onboardingStarted.
2024-11-06 15:21:42 +02:00
Thomas Heartman
7c28d247d8
chore: remove project segments gate for oss users (#8666)
This change opens up the project segments page to OSS users. They
could navigate to it explicitly before, but would be told it was a
premium feature (which it is not (since 5.5)).

After this, it'll show up in the settings sidebar as for
pro/enterprise, and you'll get the actual segments table instead of
"this is a premium feature" message.


![image](https://github.com/user-attachments/assets/1fb0213a-4541-4f01-8f61-48725f4602e1)
2024-11-06 14:05:33 +01:00
David Leek
fa597aa340
Feat/release management overview (#8672) 2024-11-06 14:02:42 +01:00
Thomas Heartman
8a5771dd50
chore (1-3076): add remaining "project resources" to status payload (#8660)
This PR adds member, api token, and segment counts to the project status
payload. It updates the schemas and adds the necessary stores to get
this information. It also adds a new query to the segments store for
getting project segments.

I'll add tests in a follow-up.
2024-11-06 11:46:04 +00:00
Thomas Heartman
3d10887610
fix: prevent rendering too many hooks error (#8667)
We found an issue where we'd get a minified react error referencing the
LazyProjectExport component.


![image](https://github.com/user-attachments/assets/3cb76315-ccef-4fa6-968c-845ecf21bc0f)


We suspect that the issue might be the conditional rendering of this
component, so the fix is to always render it, but to use the flag to
check whether we should show the count or not.
2024-11-06 12:28:48 +01:00
Nuno Góis
328fac39a2
fix: console errors from highlight component and tag key prop placement (#8669)
Addressing some oversights that led to browser console errors.

This PR fixes console errors related to the recently introduced
highlight component (#8643) and tag row component in the new flag
metadata panel (#8663).
2024-11-06 11:09:33 +00:00
Nuno Góis
314a4d7113
chore: new feature flag overview metadata panel (#8663)
https://linear.app/unleash/issue/2-2920/update-the-flag-overview-metadata-properties-to-match-the-new-design

Updates the feature flag overview metadata panel to match the new
design.

This redesign is behind a feature flag, so we opted to go with a
duplicate file approach. We should remember to clean this up if we
decide to remove the flag.


![image](https://github.com/user-attachments/assets/0eb8464c-8279-46a8-9f64-9d914f56db36)
2024-11-06 10:41:39 +00:00
Jaanus Sellin
d6e722b7b3
feat: activity chart polish (#8665)
![image](https://github.com/user-attachments/assets/a97f5745-1300-473e-80af-54f0cfc985e1)
2024-11-06 12:00:42 +02:00
Nuno Góis
16e136e42c
chore: add flagOverviewRedesign flag (#8653)
https://linear.app/unleash/issue/2-2916/create-a-new-flag-for-the-new-feature-flag-overview-page-redesign

Adds the `flagOverviewRedesign` feature flag, allowing us to toggle the
new feature flag overview page redesign.
2024-11-05 15:53:15 +00:00
Mateusz Kwasniewski
b00d449c72
feat: read productivity report from profile (#8662) 2024-11-05 16:14:19 +01:00
Mateusz Kwasniewski
7c192378d6
chore: orval types (#8661) 2024-11-05 15:14:28 +01:00
Thomas Heartman
2b13aff4f1
feat: hook up project resources API to resources widget (#8657)
This PR wires up the connectedenvironments data from the API to the
resources widget.

Additionally, it adjusts the orval schema to add the new
connectedEnvironments property, and adds a loading state indicator for
the resource values based on the project status endpoint response.

As was discussed in a previous PR, I think this is a good time to update
the API to include all the information required for this view. This
would get rid of three hooks, lots of loading state indicators (because
we **can** do them individually; check out
0a334f9892)
and generally simplify this component a bit.

Here's the loading state:

![image](https://github.com/user-attachments/assets/c9938383-afcd-4f4b-92df-c64b83f5b1df)
2024-11-05 14:50:51 +01:00
Thomas Heartman
1cf8755929
chore: add initial styling bits to status modal (#8658)
This change adds a few small bits of styling to the status modal to
get us going. It:
- adds padding to the whole modal
- adds a row for the health and resources widgets
- add project health placeholder

It leaves the project activity widget alone for now.

it makes the modal look like this:


![image](https://github.com/user-attachments/assets/2074b2a9-7f1b-45c1-b947-7855ee80e0c9)
2024-11-05 13:27:53 +00:00
Jaanus Sellin
1cedc374c1
feat: activity widget (#8628)
It is still raw, next PRs add styling and date filtering for only single
year.


![image](https://github.com/user-attachments/assets/8cd4e74f-3ed4-4179-a193-a45a191c4933)

---------

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2024-11-05 12:50:14 +02:00
Jaanus Sellin
bfa9e0d6b4
fix: fix project settings path for oss (#8650)
**Issue fix:** Resolves #8618, where environments were incorrectly
appended to the route.
**Change:** Introduces `ossPath` specifically for OSS users, as OSS
lacks the default `/settings` path, starting instead from `api-access`.
2024-11-05 12:35:09 +02:00
gitar-bot[bot]
b491d9eb8b
[Gitar] Cleaning up stale flag: eventTimeline with value true (#8615)
[![Gitar](https://raw.githubusercontent.com/gitarcode/.github/main/assets/gitar-banner.svg)](https://gitar.ai)
This automated PR permanently enables the `eventTimeline` 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-05 09:33:30 +00:00
Nuno Góis
38bd50dc8a
refactor: introduce a highlight reusable component (#8643)
Follow-up to: https://github.com/Unleash/unleash/pull/8642

Introduces a reusable `Highlight` component that leverages the Context
API pattern, enabling highlight effects to be triggered from anywhere in
the application.

This update refactors the existing highlight effect in the event
timeline to use the new Highlight component and extends the
functionality to include the Unleash AI experiment, triggered by its
entry in the "New in Unleash" section.
2024-11-05 09:21:19 +00:00
Jaanus Sellin
2e64df671a
feat: orval schema update (#8647) 2024-11-05 11:04:11 +02:00
Thomas Heartman
9a5d965636
feat: style project resources component (#8636)
This PR adds full styling for the project resources UI widget, adding
icons, links, and sorting out the layout.

Light mode:
<img width="663" alt="image"
src="https://github.com/user-attachments/assets/51231c67-1a0f-4018-9603-c476dac3b03a">

Dark mode:
<img width="663" alt="image"
src="https://github.com/user-attachments/assets/8943e479-2ecb-4917-9fad-fb6e1f1649a5">

On narrower screens:
<img width="474" alt="image"
src="https://github.com/user-attachments/assets/e0133f79-c389-444c-8d82-226cffd1015c">
2024-11-05 07:55:13 +01:00
Nuno Góis
2e99452645
chore: add Unleash AI to New in Unleash (#8642)
https://linear.app/unleash/issue/2-2910/add-unleash-ai-to-new-in-unleash

Adds a new "Unleash AI" item to the "New in Unleash" section.

We don’t have documentation to link to yet, as this is still an
experimental feature. However, I’m considering adding a “Check it out”
button that highlights the button, which I can introduce in a separate
PR.


![image](https://github.com/user-attachments/assets/520362b2-627c-415e-b0bb-296825d5d8ee)
2024-11-04 14:20:26 +00:00
Tymoteusz Czech
e7c2bf0df0
fix: enterprise routes 404 when not logged in (#8640)
Evaluate `*` with login redirect before showing 404s.
2024-11-04 14:01:33 +01:00
Mateusz Kwasniewski
b9df5060ca
feat: productivity report subscription UI (#8639) 2024-11-04 13:33:34 +01:00
Thomas Heartman
0e75dc57cd
fix: text color in timeline event group for light mode (#8635)
The recent fix to dark mode's background color for events also
caused an issue with the text color in light mode. This change makes
it so that the text color is correct in both instances.

Before (light):
<img width="77" alt="image"
src="https://github.com/user-attachments/assets/d17a9b90-4d6c-4e41-a84c-b673b02a7313">


After (light + dark):
<img width="77" alt="image"
src="https://github.com/user-attachments/assets/7fca426d-eaae-44e1-a4b4-61728b09fa79">
<img width="77" alt="image"
src="https://github.com/user-attachments/assets/baf07ddb-3b89-4418-97d8-a19bb6646c3f">
2024-11-04 10:48:05 +01:00
Thomas Heartman
fc1a92cf50
chore: stub out project resources for status model (#8631)
This PR begins to stub out the project resources widget. I still need
one more piece of data and then to work on the styling, but it's a
placeholder for now. I've also moved the project status modal to its own
folder so we can group the widgets etc. I'd like to get that merged
quickly to avoid any future conflicts, which is why I'm making the PR
ready now.
2024-11-01 15:47:38 +01:00
Thomas Heartman
c9a564a556
chore: add placeholder project status sidebar (#8629)
This PR adds an empty placeholder sidebar for the project status
content.

It also adds a button to open the sidebar.

Additionally, because the button to open the sidebar takes the place of
the existing "import" button, the import button has also been moved down
to the filter row.

Of course, these changes are all behind the flag, so if nothing should
change if the flag is not enabled.


![image](https://github.com/user-attachments/assets/ca2d6136-5705-4ec0-9c26-21981827ca07)

![image](https://github.com/user-attachments/assets/383d2a09-ab56-4ff6-b801-df9da5a19765)
2024-11-01 12:04:22 +00:00
Thomas Heartman
bbe389d19e
chore: re-order project settings menu (#8626)
This PR re-orders the project settings menu according to the new design.
It also renames pages as specified. It does *not* add the new
"applications and sdks" link because we don't have that page yet.

I have not put this change behind a flag, because it's not a new feature
and doesn't really change the user experience. However, I'd be happy to
flag it if you think that's better.


![image](https://github.com/user-attachments/assets/42dc3348-e873-49b2-9bd7-8c3b3f4a2532)


The header for the user access tab has also been updated:

![image](https://github.com/user-attachments/assets/7c61da17-2b28-4f39-a9d4-83d9ec1903cd)
2024-11-01 09:29:25 +00:00