1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-11-10 01:19:53 +01:00
Commit Graph

944 Commits

Author SHA1 Message Date
Tymoteusz Czech
0e2f7374e5
Feat: update variants placement (#9832) 2025-04-24 16:01:35 +02:00
Tymoteusz Czech
a38bf8ea4c
feat: remove sort by user on flags overview (#9826)
We don't aggregate all users, for filters on flags overview. Let's drop this filter
2025-04-24 13:37:30 +02:00
Tymoteusz Czech
d60ea1acd4
feat: redirect logic refactor (#9734) 2025-04-17 12:07:08 +02:00
Tymoteusz Czech
9d2174534f
refactor: deprecate old ConstraintAccordion and point to new version (#9613)
Code for constraint accordion was copy-pasted before previous
improvement. Old version is still in use for Segments. When we get to
improving constraint editing we should rebuild segments editing, without
use of this code.
2025-04-17 11:16:32 +02:00
Mateusz Kwasniewski
1e027dcf4f
feat: adjust filter UI (#9720) 2025-04-08 14:32:30 +02:00
Thomas Heartman
6ea823f011
fix: restore focus style to the env switch (#9707)
Removes the "disableRipple" prop from the FeatureToggleSwitch component,
thereby restoring its focus styles, so that keyboard users can see where
their focus is at.

I don't know the reason this was added originally (the PR doesn't say
anything about it), but the prop changes nothing when hovering with the
mouse, but it does remove focus styles for keyboard navigation.

By removing it, we can bring the focus style back. As far as I can tell,
there's no other difference between the two states.

Both of these screenies have focus on the toggle, but in the first
screenie there's no way to tell.

With the prop:
<img width="397" alt="image"
src="https://github.com/user-attachments/assets/b9a5d764-ec5a-4d3b-b79d-0b52d7bd6891"
/>


Without the prop:
<img width="445" alt="image"
src="https://github.com/user-attachments/assets/3c95c7a6-91de-4ed2-9942-e9fc794e9d40"
/>

Because the component is used in multiple places, this also fixes this
issue in the project flag list (and maybe elsewhere too):
<img width="336" alt="image"
src="https://github.com/user-attachments/assets/6582c58b-fabe-40ce-a141-06b22189a462"
/>
2025-04-07 15:50:07 +03:00
Thomas Heartman
07d11c7a87
Refactor: cleaner project status modal link handling (#9694)
Removes random booleans, uses more explicit functions.
2025-04-03 12:29:03 +00:00
Thomas Heartman
a02fe7a245
fix: project status modal links don't work (#9693)
Fixes a bug where project status modal links wouldn't work.

The reason they didn't work is because we modified the query params on
modal close, and because we manually close the modal when you click a
link (because otherwise it'd stay open when you navigated to other
project pages), we inadverdently reset the URL.

I'm not entirely sure why setting the search params would modify the URL
itself, but I'm guessing that's related to the implementation.

One way to solve this is to indicate whether we're closing the modal
because a link was clicked or not, and only modify the query params if
that is not the case.
2025-04-03 13:13:18 +02:00
Thomas Heartman
3447b03e1c
Fix(1-3564)/hide project owner if system (#9686)
Hides owner avatars in cases where the owner type is "system". Touches
dashboard and project card owners.

Back when all projects required owners, we introduced the new project
cards that have the owner listed in the footer. Because, theoretically,
you weren’t allowed to create projects without owners, the only project
that should ever be without an owner was the default project. So we
thought it made sense to say that it was owned by the system.

But now that owners are optional, that doesn't necessarily make sense
anymore. As such, we'll just hide their avatars to begin with.

<img width="726" alt="image"
src="https://github.com/user-attachments/assets/950cd909-c891-48f1-9ef7-fd74922a5990"
/>

<img width="1497" alt="image"
src="https://github.com/user-attachments/assets/f4d213f5-febb-46f8-89f0-899e77652e07"
/>

Because the components expected the avatars to be there, we now need to
set an explicit min-height on them, so that they don't collapse.
Luckily, we can use the default avatar height (and also force that so
that they change in tandem) and use that in both places.
2025-04-03 10:43:58 +02:00
Thomas Heartman
72e71b714d
fix: link to "view more insights" from dashboard goes to status modal (#9684)
Updates the link from the project dashboard page to take you to the
project status modal instead of the old insights page.

We didn't have a way to auto-open the modal before, so I added a query
param to control it.
2025-04-02 13:57:37 +00:00
Thomas Heartman
f6e786a6c0
Remove caseInsensitiveInOperators flag (#9670)
The flag has never made it out of dev, and has not been turned on
consistently since 2023. There was a project for it, but we have since
abandoned it.
2025-04-01 14:57:32 +02:00
Tymoteusz Czech
6e947a8ba6
fix: linter rule for hooks (#9660) 2025-04-01 14:33:17 +02:00
Fredrik Strand Oseberg
aa6c422165
Feat/tag type frontend display (#9630)
Add frontend for displaying tag colors
2025-03-31 11:55:49 +02:00
Mateusz Kwasniewski
f97924eb36
feat: enforce change request settings in create project dialog (#9637) 2025-03-27 16:15:09 +01:00
Mateusz Kwasniewski
53a4f61260
feat: enabled change requests reacting to available environments (#9631) 2025-03-27 13:46:29 +01:00
Mateusz Kwasniewski
6b793677b9
feat: preselect change request settings in create project (#9625) 2025-03-27 12:17:21 +01:00
Nuno Góis
0d0530b61c
chore: rename access matrix to access overview (#9531)
https://linear.app/unleash/issue/2-3344/new-name-access-overview-instead-of-access-matrix

Renames Access Matrix to Access Overview, both internally (code) and
externally (UI).
2025-03-13 15:23:58 +00:00
Nuno Góis
6b888abe10
chore: remove project at least one owner constraint (#9517)
https://linear.app/unleash/issue/2-3393/remove-project-at-least-one-owner-constraint

Removes our constraint that the project must have at least one owner.
2025-03-12 10:37:20 +00:00
Thomas Heartman
7dd89034aa
chore: use new designs for project default strategies (#9447)
Implements the new strategy list design for default strategies. Moves
the old impl into a legacy file. Also: removes the description from the
strategy item. From my digging, we only showed this for default strategy
items and it didn't really provide any useful information. The only
other place you can add a description is for custom strategies (at least
that I could find), but these are deprecated and we never show the
description when you apply the strategy anyway.

Rendered:

![image](https://github.com/user-attachments/assets/fb244f10-0a19-42f5-a517-090d6703c76a)

Without the flag (nothing changes):

![image](https://github.com/user-attachments/assets/62159338-8b26-4cb2-825d-e20965c6558d)
2025-03-10 16:09:32 +01:00
Mateusz Kwasniewski
3059d23446
feat: always show features table (#9446) 2025-03-10 10:19:36 +01:00
Thomas Heartman
2e086161eb
refactor: strategy draggable item is now proj/env agnostic (#9411)
Updates `StrategyDraggableItem` (and `StrategyItem`) to be project/env
agnostic. They now instead expect you to pass in the required header
items (CR badges, strategy actions) at the call site. Updates their
usage in the feature env accordion, and the release plan card.

All components that have been updated are part of the new overview
rework. The legacy components (which are used when the flag is off)
remain untouched.

Also makes a few small tweaks explained in inline comments.

## Rendered 

Milestone card (with flag on):

![image](https://github.com/user-attachments/assets/828d5fe4-4b07-4ebe-86cd-1ab24608ba31)

Milestone card (with flag off):

![image](https://github.com/user-attachments/assets/10e37cc4-e5e4-4a07-a4f9-5e5f5c388915)


Feature env accordion (flag on (no change)):

![image](https://github.com/user-attachments/assets/2e5db9e7-24b1-4b3e-9434-4705e5737157)


Feature env accordion (flag off):

![image](https://github.com/user-attachments/assets/469970b6-ab57-4332-a99f-8f8e2e645230)
2025-03-05 10:34:55 +01:00
Simon Hornby
f3ede7681f
chore: flip UI and backend validation for project env disabling (#9395) 2025-03-03 17:13:41 +02:00
Melinda Fekete
eee212f3f0
Update docs for data and privacy (#9397) 2025-02-28 16:28:32 +01:00
Thomas Heartman
d5d172647c
chore: deprecate envAccordion colors; update non-legacy components (#9378)
Deprecates the `envAccordion` colors (`expanded` and `disabled`) and
updates the components that I do not expect to be deprecated as part of
the strategy facelift project to use `elevation1` instead.

The difference is very slight. envAccordion.expanded:

![image](https://github.com/user-attachments/assets/affaa000-11a7-45af-ac1e-1454281615d8)

Elevation 1:

![image](https://github.com/user-attachments/assets/6baa7219-7a6b-4e5d-bd55-1da9e284e7ed)
2025-02-27 15:29:37 +01:00
Thomas Heartman
000ee66692
fix: long flag names push table to overflow and flag descriptions are not truncated (#9350)
Addresses two issues related to flag names and descriptions overflowing:

1: In the project flag overview, long flag names push the environments
off screen. This is handled by setting overflow-wrap: anywhere on the
offending text. The text will now use ellipses instead.

Before full-width: 

![image](https://github.com/user-attachments/assets/1c63481a-6733-4f6e-a3a7-46c9035c38f7)

Before narrower:

![image](https://github.com/user-attachments/assets/86cf3531-8259-42f0-9905-4a22dd7f98a7)


After full-width:

![image](https://github.com/user-attachments/assets/e13fa6ff-4cbe-4f6e-8530-b089a8343c65)

After narrower:

![image](https://github.com/user-attachments/assets/c4df0e5d-e32f-4909-9351-afc864383c7b)

2: On the flag page, long descriptions are rendered in their entirety,
even if that's not sensible. They are now truncated after five lines.
There is a tooltip that shows the full text, or you can go the flag
settings to see the full description.

Before:

![image](https://github.com/user-attachments/assets/121ffeac-b92b-4b9b-bb79-17bf5d4ef734)


After:

![image](https://github.com/user-attachments/assets/cd4ff0c2-e110-42c1-8ce6-e0e897823420)


After (with tooltip):

![image](https://github.com/user-attachments/assets/90c147e4-a397-4e60-8318-9a08c4e069aa)


---

Note, I don't think this is necessarily the perfect solution (it'd be
nice to get tooltips for overflowing flag names a "show full
description" disclosure button instead of the stupidly long tooltip),
but I think it's a step in the right direction.
2025-02-25 13:39:30 +01:00
Thomas Heartman
b15502ec5e
fix(1-3377): handle singular counts in project status lifecycle boxes (#9317)
If the average number of days in a stage is 1, use `1 day` instead of
`1 days`.

Likewise, if your total number of archived flags is 1, use `1 flag
archived` instead of `1 flags archived`.

I grepped through the file, but couldn't find any other hardcoded
instances of "flags" or "days", so I think this is everything.
2025-02-17 12:41:04 +00:00
Tymoteusz Czech
54e4fd2190
chore: remove lifecycle v2 flag (#9224) 2025-02-06 14:54:45 +01:00
Mateusz Kwasniewski
c68a542a63
refactor: project users virtual autocomplete (#9196) 2025-02-04 10:04:36 +01:00
Mateusz Kwasniewski
ec014c0fdf
feat: limit user filter options (#9179) 2025-01-31 10:09:29 +01:00
Fredrik Strand Oseberg
1fba4e10d1
fix: tabs not growing to fill all available space (#9161)
Fix an issue where tabs would fill out all available space, now it's
left aligned.
2025-01-28 14:17:02 +01:00
Tymoteusz Czech
50ab2c9d61
feat: rename lifecycle stages (#9102)
Name names for "lifecycle" stages, and aligning frontend types.
2025-01-16 08:41:11 +00:00
Tymoteusz Czech
91cebc5afc
fix: text overflow on project users access page (#8853)
Remove scrollbar in project settings - user roles
2025-01-10 09:51:42 +01:00
Jaanus Sellin
73515d78ce
chore: remove simplifyProjectOverview flag (#9068)
Remove the flag and delete unused components.
2025-01-08 14:10:40 +02:00
Melinda Fekete
c8300fed00
Simplify Unleash docs updates (#8925) 2024-12-17 14:36:16 +01:00
Tymoteusz Czech
828ecf8d63
fix: migrations e2e test (#8965)
Onboarding changed e2e test that should run before migration.
2024-12-12 11:19:03 +01:00
Thomas Heartman
c860d8e434
chore: remove console.log 2024-12-10 14:39:57 +01:00
Thomas Heartman
b2c58102dd
chore(unl-204): remove uses of toast text and confetti (#8941)
As of PR #8935, we no longer support both text and title, and confetti
has been removed.

This PR:
- removes `confetti` from the toast interface
- merges `text` and `title` into `text` and updates its uses across the
codebase.
- readjusts the text where necessary.
2024-12-10 13:38:04 +00:00
Mateusz Kwasniewski
4b443e2a57
fix: adjust favorite icon placement (#8930) 2024-12-06 12:38:40 +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
Mateusz Kwasniewski
b6d4a5f9bc
feat: favorites take less space (#8888) 2024-11-29 10:12:31 +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
Jaanus Sellin
7906bfb177
chore: rename toggle to flag (#8854) 2024-11-26 09:57:43 +02: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
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
Mateusz Kwasniewski
cf741c6845
chore: update utm links (#8835) 2024-11-22 10:04:41 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Mateusz Kwasniewski
730200c05b
test: flaky flag type selection (#8677) 2024-11-06 14:51:43 +01: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
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
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
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
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
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
Thomas Heartman
dc1847420c
feat: use actionable change request data in UI (#8613)
This PR hooks up the actionable change request data to the counter in
the UI. It:
- creates a getter for the data. It only exposes data. We don't really
care about error or loading for this (it's not an important piece of
data), so we don't expose that just yet.
- Adds orval-generated schema
- Uses the hook in the UI.

It also stwitches the previous "notification badge" for MUI's built-in
badge. We already use that badge component for the event timeline, so I
thought it would make sense to do it here too. Overall, the effect is
pretty good, but there's a few kinks we might wanna work out. I'll make
a follow-up for that (worked out in this PR after all)
2024-11-01 10:08:51 +01:00
Jaanus Sellin
2934f85743
feat: hide archive tab when simplify enabled (#8611)
No archive anymore


![image](https://github.com/user-attachments/assets/885b44f8-ac74-44cf-b5ff-760f9384b05e)
2024-10-31 13:28:28 +02:00
Jaanus Sellin
90ed7b6079
feat: archived row styling (#8608)
1. Added badge
2. Added archived row styling. Button not clickable and gray


![image](https://github.com/user-attachments/assets/a15a3b1d-4caa-448b-a9ed-b60de4115cb7)
2024-10-31 12:30:00 +02:00
Thomas Heartman
9f297052c4
feat: initial setup of change request notification indicator (#8606)
This PR adds the initial bit of code required to set up the change
request indicator, but it's not functional yet: I've hardcoded the value
0 for now, which also hides the notifications.

This PR also hides the previous project change request overview.


![image](https://github.com/user-attachments/assets/afbd7f37-d47f-41f2-b653-7584acdc2cde)

![image](https://github.com/user-attachments/assets/a662e359-3052-4031-9d09-5e4bf2566445)

I'll make a follow-up to the API when it's ready to hook it up.
2024-10-31 10:19:08 +01:00
Jaanus Sellin
65c7f77980
feat: hide archive UI behind flag (#8591)
This new UI needs more work and we are soon making 6.4 release, I do not
want to release it without flag. Putting it behind flag.
2024-10-30 11:52:01 +02:00
Jaanus Sellin
5f67dcefcd
feat: archive is now part of project feature list (#8587)
![image](https://github.com/user-attachments/assets/6218a1f7-1ef7-49f8-85d0-c6ee1c34d954)
2024-10-30 10:38:42 +02:00