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

3658 Commits

Author SHA1 Message Date
Mateusz Kwasniewski
5cd657065f
feat: copy strategy to current environment (#7730) 2024-08-02 09:46:57 +02:00
Tymoteusz Czech
8aa812e0f5
feat: Orphaned tokens - new API tokens list icon (#7693)
Moving warning icon from "projects" column, to left icon.
2024-08-01 14:31:42 +00:00
Mateusz Kwasniewski
5668bfb7d4
feat: preview changes button (#7722) 2024-08-01 11:59:35 +02:00
Tymoteusz Czech
4aa3a64530
feat: UI for playground of change requests (#7721)
## About the changes
UI draft
2024-08-01 11:16:35 +02:00
Thomas Heartman
f1e95108d1
Wip: split out avatar group; use same tooltip for all avatars (#7681)
Extracts the Avatar Group component into a `common` component and adds a
standard tooltip to all avatars.

Relates to linear issue 1-2606

This is a suggestion / proof of concept for how we can solve it. While I
think we can merge this as is, I'd also be happy to take any discussions
on other ways to approach it etc.

## Why are these changes made together?

Because extracting the avatar group without adding the new tooltip data
made the existing tooltip misbehave (it'd show up in the top left of the
screen, not synced to the avatar in any way).

I probably could have (and still can if you think it's prudent) split it
out such that the avatar gets a standardized tooltip first (and disable
it for the group card avatars), and split out the avatars in a
follow-up. Happy to do that if you think it's better.

## What does this mean? 

It used to be that we had no consistent way of dealing with avatars and
tooltips. Some places had them, some places didn't. This change makes it
so that all avatars that we can show tooltips for will get the same
tooltip.

Previously, we had at least 4 different ways of dealing with tooltips:
- The HTML tooltip (that would be standardized with this PR) in the
project flags table

![image](https://github.com/user-attachments/assets/91098d31-a5e3-4091-9125-332fe5d106fd)
- The "title" that you'd get on your user avatar

![image](https://github.com/user-attachments/assets/39062b61-db8c-4bd5-9fa3-3ecc9bc192ee)
- The group card list tooltip

![image](https://github.com/user-attachments/assets/0d4a696a-e944-446c-8bff-4dcec02d8afb)
- And sometimes you'd get nothing at all

![image](https://github.com/user-attachments/assets/8975afaf-9ca1-4eb6-b443-9ab94b52bbd8)

with this change, we'll always show the same kind of tooltip if we can:


![image](https://github.com/user-attachments/assets/974c592c-c844-4b65-8a55-05e84d3df130)

## What goes in the tooltip? 

We use the `UserAvatar` component for a fair few different things and I
didn't want to extract separate components for all the different use
cases. Instead, I wanted to get an overview over what we use it for and
what is relevant info to show.

I found all the places we used it and tried to form an opinion. 

This tooltip will work with a user's email, name, username, and id. If
there is no user (such as for empty avatars and avatars displaying only
"+n" for remaining members), we show no tooltip.

Following the example set by the group card avatars, we'll try to use
email or username (in that order) as the main bit of text. If the user
has an email or a username and also a name, the name will be used as
secondary text.

If the user does not have an email or username, but has a name, we'll
use the name as the main text.

If the user does not have an email, a username, or a name, we'll try to
show "User ID: N" if they have an id.

If they do not have a username, a name, an email, or an ID, we bail out
and show nothing.

## Why can you disable the tooltip?

In some cases, you might want to disable the tooltip because you have
more information to feed into it. An example of that is in the project
flags table, where we want to show more information in cases where the
user is 'unknown':


![image](https://github.com/user-attachments/assets/758b4e86-e934-47e3-91ce-ce900f76bc54)


## Additional fixes

This PR also adds a few lines of CSS to fix a minor avatar layout bug.

Before:

![image](https://github.com/user-attachments/assets/0150efbf-c51a-40bb-898f-7ddd3565ce21)


After:

![image](https://github.com/user-attachments/assets/f337cf68-c572-4610-b1de-a27749325da8)
2024-08-01 10:45:24 +02:00
Thomas Heartman
7db42453b1
feat: add filter dropdowns to event log pages (#7711)
Adds placeholder filter buttons (that don't work at all) yet to the
three event logs.

Flag logs get to choose to and from dates, created by, and event type.

Project logs get all that flag logs get + a filter for flag.

The global log gets all project log filters + a project filter.

There's still work to be done to add data to createdBy, eventType, to
hook it up to the API, and to finalize the layout, but I wanted to get a
rough outline in to iterate on later. The eventType icon will also need
to be decided on.


![image](https://github.com/user-attachments/assets/06a65301-9cc5-45ed-b753-2b9235d64ea6)
2024-08-01 08:23:22 +02:00
Thomas Heartman
2822746fc1
refactor: Make event log look and act like other pages (#7704)
Updates the way the event log works. Previously, we'd use the
`displayInline` parameter to disable padding and border. However,
recent pages (including project overview etc) have moved away from
this look.

By bringing the event log into line with how those other pages look,
it'll be easier to make designs for the new filtering capability align
with other Unleash filters.

## Changes

The eventlog is used in three places. In two of them, it used to not
have a separating border. However, when we look at other screens that
have seen recent work (such as feature flags), we see that they *do*
have a separator, so bringing the event log in line seems like a
reasonable change.

Project flags list (notice the separator):

![image](https://github.com/user-attachments/assets/9b56a53d-38ef-4492-b1f8-f40ad5f3b6eb)


Here's what they look like before and after the change:

### Global event log
Before: 

![image](https://github.com/user-attachments/assets/ccf428f6-3491-4c60-a853-13c50ae771f0)

After (no change):

![image](https://github.com/user-attachments/assets/cfc74538-285c-4565-bd38-dfb5e421e966)


### Project event log

Before:

![image](https://github.com/user-attachments/assets/80ef1a36-3b13-4e76-8d59-534d63f0e6bd)


After:

![image](https://github.com/user-attachments/assets/7380518c-f6dc-4d4f-b085-48ed3761bb20)


### Flag event log

Before:

![image](https://github.com/user-attachments/assets/345a5d72-d358-49fd-967c-f6cb0706a4f6)


After:

![image](https://github.com/user-attachments/assets/b4e0d8e9-e79c-477e-8fc4-181c366207fc)
2024-07-31 09:46:47 +02:00
Jaanus Sellin
24e2c4030b
feat: new event search flag (#7699)
Add `newEventSearch` flag
2024-07-31 08:59:42 +02:00
Tymoteusz Czech
b585ead6df
fix: avoid react key warnings in tables (#7694)
Refactoring to get rid of `A props object containing a "key" prop is being spread into JSX` warning
2024-07-30 13:09:12 +02:00
Thomas Heartman
08aba91832
fix: flex layout used the wrong axes for layout. (#7696)
This change fixes an issue where the flex layouts for collaborator
info used the wrong axes for layout (row instead of column and vice
versa), causing the component to look wonky.

Before:

![image](https://github.com/user-attachments/assets/695a9f67-ef07-4b3c-936f-69b2f2d62a28)

After:

![image](https://github.com/user-attachments/assets/a0a2c73a-2787-4985-807b-012bb4db94a4)
2024-07-30 09:17:02 +02:00
Thomas Heartman
344e599b09
fix: don't cut off hover-color of favorite button (#7691)
This PR fixes a minor visual issue where the "favorite project" button's
hover outline would get cut off due to its container having `overflow:
hidden`.

The overflow value was introduced in
[#7575](https://github.com/Unleash/unleash/pull/7575) as way to handle
long project names. We didn't discover the hover issue back then because
it's not apparent unless you hover the fav star.

I found the solution in the CSS-tricks post [Preventing a Grid
Blowout](https://css-tricks.com/preventing-a-grid-blowout/). To quote
the article, the reason this works is that:

> the minimum width of a grid column is auto. (The same is true for flex
items, by the way.)
>
> And since auto is entirely based on content, we can say it is
“indefinitely” sized, its dimensions flex. If we were to put an explicit
width on the column, like 50% or 400px, then we would say it is
“definitely” sized.
>
> To apply our fix, we need to make sure that there is the column has a
definite minimum width instead of auto.

Before:

![image](https://github.com/user-attachments/assets/d9296afd-326e-4712-a389-f1bc3a1f821e)


After:

![image](https://github.com/user-attachments/assets/2fd88a51-08be-4bc4-8969-cd6ebbaf255c)

Additionally, I've removed a duplicate declaration of font size,
removing the deprecated version.
2024-07-29 17:03:47 +02:00
Mateusz Kwasniewski
21ab80b753
feat: health stats insights explanation (#7690) 2024-07-29 15:19:20 +02:00
Thomas Heartman
0fe0079053
fix: use nested flexboxes instead of grid area (#7654)
This change removes the use of grid area from the collaborators
component, replacing it with a nested flexbox setup.
2024-07-29 12:55:52 +02:00
Tymoteusz Czech
d825b49f43
fix: health stats number (#7688)
Prevent showing "undefined%" in new Health statistics.
2024-07-29 12:49:03 +02:00
Tymoteusz Czech
5c4bc6f7a0
fix: FeatureForm - not jsx comment (#7689) 2024-07-29 11:32:14 +01:00
Mateusz Kwasniewski
94588c12d4
feat: human readable project names in insight charts (#7686) 2024-07-29 11:52:14 +02:00
Thomas Heartman
1cd1f982ee
fix: allow editors to submit flag form (#7687)
This change is a follow-up to
https://github.com/Unleash/unleash/pull/7685 and fixes another
instance of the same issue.

It wasn't caught previously, because the permissions are passed as
props here, and not used directly.


![image](https://github.com/user-attachments/assets/e8c4cb90-92e3-42ca-9c15-458b5b9d37c2)
2024-07-29 09:45:52 +00:00
Thomas Heartman
80cff0a5fa
fix: allow editors to create flags again (#7685)
This change fixes a bug where editors were suddenly unable to create
flags. The issue is that the new project creation dialog used a
permission button, but didn't supply the project ID.
2024-07-29 09:24:32 +00:00
Thomas Heartman
f24f8a896c
fix: break long project/flag names in the event log to prevent overflow (#7684)
This change sets the `overflow-wrap` property for the definition list
values in the event log. This is to prevent long project/flag names
from making the left-hand side of the card suuuper wide, causing
overflow of the whole container.

Before: 

![image](https://github.com/user-attachments/assets/4f813d71-731d-4bb8-86b0-89ff235b2244)

After:

![image](https://github.com/user-attachments/assets/6739d3f0-552b-47c7-8dca-4235a737367e)
2024-07-29 08:54:43 +00:00
Thomas Heartman
a42970a153
fix: Avoid weird spacing between title and collab mode icon (#7683)
This change fixes an issue where the title of the project would be
pushed all the way to the right when the project was set to "private".

The cause was that the container with the project mode and the title
was a flex box with `justifyContent` set to `space-between`.

Removing that line fixes the issue, and the contents align to the
start of the box. There are no other elements in that container, so it
does not affect anything else.

Before:

![image](https://github.com/user-attachments/assets/e8024e3f-8c68-4ed8-b135-ae49f24664b4)


After:

![image](https://github.com/user-attachments/assets/c5039e59-4ea4-49bb-b391-89864e7520d0)
2024-07-29 08:18:52 +00:00
Thomas Heartman
3a3aaad37d
feat: Use a toggling button for impression data on/off (#7682)
Instead of using a dropdown list for impression data, this PR introduces
a new config button that is a switch type button. It will be filled
(contained) when impression data is on and will be outlined when
impression data is off.

Off:

![image](https://github.com/user-attachments/assets/4710c8aa-a853-43c3-bf3b-86dbbf1a2779)


On:

![image](https://github.com/user-attachments/assets/08316155-83d1-45a2-941f-1c49c254a02b)
2024-07-29 08:05:35 +00:00
Jaanus Sellin
4df8fd3810
feat: redirect to new feature flag creation (#7679)
Currently found only one instance that is using `create-toggle`. So
changed behaviour for that.
2024-07-26 14:27:02 +03:00
Thomas Heartman
9b2c0bf55b
fix: shorten max project name width in feature toggles creation form (#7678)
This change sets the max project name label width to 20ch instead of
30ch.

At 30ch, the button is wide enough that it causes the buttons always
to overflow. At 20, it's about as wide as the impression data button,
and it renders on one line.


Before:

![image](https://github.com/user-attachments/assets/8d28a948-dfa1-4f75-bc8d-473ceb322631)

After:

![image](https://github.com/user-attachments/assets/c73ccc58-13ab-4b33-a82e-275130494c3d)
2024-07-26 12:08:58 +02:00
Thomas Heartman
39cda30dab
chore: update description/docs for the new feature creation dialog fields (#7677)
This PR updates the text used to describe the different fields used in
the new creation dialog.

It also removes a redundant aria attribute (that MUI already handles).
2024-07-26 09:57:22 +00:00
Thomas Heartman
c7bb6c5179
fix: prevent long project names from blowing out the form (#7673)
This change prevents long project names from blowing the form out of
proportion.

To do so, it:
1. sets `whitespace: no-wrap` on the button labels. Judging by the other
styles, this was the intention all along, but it didn't really come up
until now.

2. It also sets the label width for projects to 30ch,so that you'll get
to see quite a bit of the project name before it gets cut off.

It would be possible to set a dynamic width for this button based on the
longest project name, but I'm not sure it adds much value, so I'm
leaning towards keeping it simple.

Here's what the dynamic width would look like:

``` tsx
    const projectButtonLabelWidth = useMemo(() => {
        const longestProjectName = projects.reduce(
            (prev: number, type: { name: string }) =>
                prev >= type.name.length ? prev : type.name.length,
            0,
        );
        return `${Math.min(longestProjectName, 30)}ch`;
    }, [projects]);
```

What it looks like:

![image](https://github.com/user-attachments/assets/51bca3f6-aeb3-4a41-b57e-5ebd9baa3ef6)
2024-07-26 11:39:43 +02:00
Thomas Heartman
c0d7be040d
fix: make config dropdown list generic over values (#7676)
This PR makes the config dropdown list generic over its values, so that
you can pass stuff that isn't strings.

It also updates the existing impression data button to use booleans
instead.
2024-07-26 11:38:29 +02:00
Jaanus Sellin
b55d6f46d0
feat: add tags selection to feature creation (#7674)
![image](https://github.com/user-attachments/assets/539bd2a0-d036-4a8d-9752-fd60c7e4bf24)
2024-07-26 12:13:56 +03:00
Thomas Heartman
6e34ae4ada
fix: project icon sizing and color (#7672)
This PR fixes the project icon sizing and color in the create feature
form. However, it includes a little more cleanup work.

1. I've switched out the previous project icon with a new one. The
difference? The old one had lots of whitespace around it, which made
sizing it awkward.
2. I've added a wrapping Icon component to common. The idea was taken
from this thread on the MUI GitHub about how to make imported icons
behave consistently with MUI icons.
3. Because I've switched the icon and added a new component, I've also
gone and updated the other places we used the old icon, so that we're
consistent about the usage.

In create dialog form:

![image](https://github.com/user-attachments/assets/9b5caed7-cd50-437b-82bb-1d7ccbfaac3f)

Updated icon in:
Project card component

![image](https://github.com/user-attachments/assets/4ce809f4-4083-4554-ac4c-3597d9bf42df)


Project creation form

![image](https://github.com/user-attachments/assets/4227416f-a56d-41ed-96a4-99b71a11dbf7)


Sidebar and command bar (it's actually larger here, but maybe that's
okay? Previous project was kinda small):

![image](https://github.com/user-attachments/assets/72b8aa2e-6970-4c11-9a4d-250648b44ad9)

(Previous sidebar and command bar):

![image](https://github.com/user-attachments/assets/bcef9208-9819-4742-87a1-3a20d50d741c)


I'd be willing to leave the sidebar and command bar for now if we think
it's better to leave them using the same size as previously, but we can
talk about that. I think it's better in the sidebar; undecided about the
command bar.

Bonus changes: I fixed some typos
2024-07-26 10:26:16 +02:00
Thomas Heartman
d96da453a4
fix: show the selected project's name on the button, not its ID (#7671)
This change makes it so that we show the name of the project that is
selected on the selection button instead of the ID. There is a chance
that the name is not unique, but I'm willing to take that risk (plus
it's how we do it today).

I've used a useMemo for this, because we have to scan through a list
to find the right project. Sure, it's always a small list (less than
500 items, I should think), but still nice to avoid doing it every
render. Happy to remove it if you think it obfuscates something.

We *could* also use a `useState` hook and initialize it with the right
value, update when it changes, but I actually think this is a better
option (requires less code and less "remember to update this when that
changes").
2024-07-26 09:27:25 +02:00
Thomas Heartman
464568dace
fix: Hide project selection option in CreateFeatureDialog when OSS (#7669)
This change wraps the project selection option in the
CreateFeatureDialog in a conditional that hides it when Unleash is
OSS.

OSS doesn't have access to the project creation API, so there's no
point in showing this.
2024-07-25 17:59:47 +02:00
Thomas Heartman
2c41cbbd3c
fix: validate project names on blur (#7668)
This fix validates the project name when you blur the field in the new
project form. The only instances where it'll be wrong is if you have
just whitespace or an empty string, but you'll be notified immediately.

Also removes some unused variables and parameters that I found.
2024-07-25 12:43:38 +00:00
Thomas Heartman
dc37503b7d
fix: Capitalize input labels (#7667)
This change makes it so that all form input labels start with a
capital letter, regardless of the data we use to generate them.

Also fixes a leftover toggle -> flag renaming.
2024-07-25 12:27:46 +00:00
Jaanus Sellin
10489c7534
feat: added PoC for the new feature creation dialog (#7666)
![image](https://github.com/user-attachments/assets/82412746-34b3-48f2-95b1-1cdfdeb1ea72)
2024-07-25 15:12:48 +03:00
Thomas Heartman
eb7208025f
chore: create shared dialog form template (#7663)
This PR extracts the dialog form that we created for the new project
form into a shared component in the `common` folder.

Most of the code has been lifted and shifted, but there's been some
minor adjustments along the way. The main file is
`frontend/src/component/common/DialogFormTemplate/DialogFormTemplate.tsx`.
Everything else is just cleanup.
2024-07-25 13:41:09 +02:00
Tymoteusz Czech
369518cd7d
Feat: webhook markdown (#7658)
Add ability to format format event as Markdown in generic webhooks,
similar to Datadog integration.
Closes https://github.com/Unleash/unleash/issues/7646

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-25 09:45:20 +00:00
Thomas Heartman
245c3e119d
chore: add flag configuration for the new flag creation flow (#7662)
Add a new flag and default it to true for local development.
2024-07-25 11:12:58 +02:00
Nuno Góis
d8c5466099
chore: show latest integration event on card (#7656)
https://linear.app/unleash/issue/2-2443/show-the-latest-integration-event-result-on-that-integrations-card

Shows the latest event on the integration card.

Also renames one of the folders to make its contents clearer.

<img width="1184" alt="image"
src="https://github.com/user-attachments/assets/2465d68b-d580-4fc9-9376-c6d55d0f19e0">
2024-07-24 14:23:29 +01:00
Nuno Góis
8a20ae999f
chore: keep latest integration events for each integration configuration (#7652)
https://linear.app/unleash/issue/2-2469/keep-the-latest-event-for-each-integration-configuration

This makes it so we keep the latest event for each integration
configuration, along with the previous logic of keeping the latest 100
events of the last 2 hours.

This should be a cheap nice-to-have, since now we can always know what
the latest integration event looked like for each integration
configuration. This will tie-in nicely with the next task of making the
latest integration event state visible in the integration card.

Also improved the clarity of the auto-deletion explanation in the modal.
2024-07-24 13:52:57 +01:00
Jaanus Sellin
3f76882465
fix: recently visit should only use main paths (#7655)
Recently visited should only be main paths, so look like this
**/segments** **/projects** and not have multiple slashes inside.
2024-07-24 15:04:33 +03:00
Jaanus Sellin
647ba7b9cb
feat: separate command bar and search hotkeys (#7651)
Currently, the command bar and search hotkeys are conflicting. I am now
separating them and assigning search an extra modifier key: Shift.
2024-07-24 12:46:03 +03:00
Thomas Heartman
e2b90ae91d
fix: add workaround for tooltip (#7649)
This PR adds the UI part of feature flag collaborators. Collaborators are hidden on windows smaller than size XL because we're not sure how to deal with them in those cases yet.
2024-07-24 09:33:29 +00:00
Nuno Góis
e63503e832
chore: add integration events modal (#7648)
https://linear.app/unleash/issue/2-2441/create-integration-events-modal

Adds the integration events modal to the UI, allowing us to visualize
them. This is the core of the UI work for this feature.

<img width="587" alt="image"
src="https://github.com/user-attachments/assets/f64cbb8c-1c01-4638-a661-5943ad7a890c">

### Example: Success

<img width="1277" alt="image"
src="https://github.com/user-attachments/assets/578bc7dc-d37d-4c0a-b74a-4bd33e859b51">

### Example: Success with errors

<img width="1255" alt="image"
src="https://github.com/user-attachments/assets/f784104d-7f11-4146-829d-6b3a3808815b">

### Example: Failed

<img width="1254" alt="image"
src="https://github.com/user-attachments/assets/543f857d-3877-4c17-92eb-58e6f038b8ac">
2024-07-24 08:14:16 +01:00
Nuno Góis
cf4435ca2d
chore: integration events hook (#7641)
https://linear.app/unleash/issue/2-2440/create-new-integration-event-hooks

Adds a frontend hook for integration events, allowing us to easily fetch
paginated integration events for a specific integration configuration
id.
2024-07-23 10:27:40 +01:00
Nuno Góis
3acaaf6719
fix: check for admin in signal endpoints hook (#7642)
This avoids a 403 on `api/admin/signal-endpoints` for non-admins when
browsing the integrations page.
2024-07-22 15:32:35 +01:00
Thomas Heartman
0f0a680af3
chore: don't ask OSS users to reach out to CS (#7633)
The limit card says to contact cs@getunleash if you're at the limits,
but we probably don't want to show that to OSS customers (it's not
terrible, just not very helpful), so let's hide it for OSS.

Instead, we'll ask them to try the community slack.

Screenie:


![image](https://github.com/user-attachments/assets/5a5dc292-3878-4181-98ac-f1ce4583d8a3)
2024-07-22 11:03:10 +02:00
Mateusz Kwasniewski
a0ba44d9f4
chore: feature collaborators flag (#7623) 2024-07-19 10:11:39 +02:00
Tymoteusz Czech
242f59ba4e
New health stats component (#7620)
New style for widget
2024-07-18 15:48:47 +02:00
Mateusz Kwasniewski
d1959dd0e2
feat: filter project flags by state (#7618) 2024-07-18 14:52:27 +02:00
Thomas Heartman
41203340fd
fix: use a fullscreen loader for the initial redirect load (#7619)
This PR fixes a minor visual glitch where the initial Unleash load might
display a jumping loading icon. The reason was that the initial
redirect's loader wasn't marked as a fullscreen loader.
2024-07-18 14:50:59 +02:00
Tymoteusz Czech
19121f234e
Insights layout (#7610)
Refactored insights page - stats and charts relevant to the same metric
are now combined into a single widget.
2024-07-18 12:43:52 +02:00
Thomas Heartman
906edec1b6
feat: show info on healthy flags in health tooltip (#7611)
This PR updates the tooltips for the health chart to also include
information on how healthy flags there are. The user could make this
calculation themselves before, but it'd require them to subtract the sum
of stale and potentially stale flags from the total. This makes it so
that they don't have to do the calculation.

I've also included a bar for the healthy flags in the overview, so that
it's easier to see how large a portion it is compared to the others.

Also: clean up some uses of the now-deprecated VFC.


![image](https://github.com/user-attachments/assets/fa33b5ec-b5aa-472d-8ee3-329c5ed0d0c6)
2024-07-18 10:24:58 +02:00
Mateusz Kwasniewski
06f5073fce
test: insights filtering (#7612) 2024-07-17 15:03:02 +02:00
Christopher Kolstad
d397819fd3
feat: Make SAML dialog aware that it might be configured via env (#7606)
Same as the OIDC changes we merged yesterday, this makes the frontend
ready for disabling SAML configuration page, if the SAML_ environment
variables are set.

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-17 10:57:34 +00:00
Tymoteusz Czech
6e4e58aee8
fix: insights sticky header (#7607)
Insights header should show below banners in insights v2
2024-07-17 10:02:55 +00:00
Mateusz Kwasniewski
39f6cbd66c
feat: insights filters (#7608) 2024-07-17 11:30:58 +02:00
Mateusz Kwasniewski
d2ef9e27ed
refactor: insights actions container relaxed width (#7603) 2024-07-16 17:27:11 +02:00
Thomas Heartman
cfd20703b2
fix: toast error doesn't tell you what the error is (#7601)
This change improves the toast error message for auth settings by
preferring the message from the error's details list if it exists. If
it doesn't it'll still fall back to the original error message.

Before:

![image](https://github.com/user-attachments/assets/6ecb425c-7d6d-4cb9-844e-c7c2ff7088b2)

After:

![image](https://github.com/user-attachments/assets/87d827a8-7f52-40c1-a2c6-ca2d1d3abfb4)
2024-07-16 15:10:44 +02:00
Mateusz Kwasniewski
248f879553
chore: remove share insights button (#7600) 2024-07-16 15:10:34 +02:00
Tymoteusz Czech
7b2532ea4f
New insights layout - feature flag (#7598)
Preparing insights component for refactoring and enhancements.
2024-07-16 12:24:30 +00:00
Christopher Kolstad
7ed1d770a8
feat: make frontend aware that OIDC can be configured through env (#7597)
Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-16 13:53:30 +02:00
Thomas Heartman
e43109a2cb
fix: prevent long names from breaking form layouts (#7591)
This PR fixes a couple instances where long resource names would break
form and input layouts.

I've added comments to the various files to explain what they're doing
and why.

## Discussion point:

I've now set the width of project selector to be as narrow as it can
with wrapped text. In the main interfaces, it's much better, but on the
page where you can move a flag, it is quite narrow. However, I still
think it's better (no chance of it being wider than the whole screen).
We might want to find another way, but regardless, it'll only show up
with real edge cases.

## Fixes (screenies)

### API token creation form

**Files**:
- `frontend/src/component/common/FormTemplate/FormTemplate.styles.ts`
- `frontend/src/component/common/FormTemplate/FormTemplate.tsx`

Before:

![image](https://github.com/user-attachments/assets/cef31208-2cce-479e-902e-ed7d3c3c9571)

After:

![image](https://github.com/user-attachments/assets/b0832193-11f5-427d-9df1-d9baca0a91e7)


### New feature flag form

**Files**:
- `frontend/src/component/common/GeneralSelect/GeneralSelect.tsx`

Before:

![image](https://github.com/user-attachments/assets/2ac6f791-af19-4f7e-a8ea-2fc356f18fb2)

After:

![image](https://github.com/user-attachments/assets/13b91812-c00a-49e8-9409-67fab4eaaf01)

### Project select popover

**Files**

- `frontend/src/component/common/GeneralSelect/GeneralSelect.tsx`
-
`frontend/src/component/feature/FeatureView/FeatureSettings/FeatureSettingsProject/FeatureProjectSelect/FeatureProjectSelect.tsx`

Before:

![image](https://github.com/user-attachments/assets/e81a4cef-1402-4b9c-b1a8-c22493c794bd)

After:

![image](https://github.com/user-attachments/assets/604dada9-6555-48e3-a81d-dda72bd9ccf0)

But also:

![image](https://github.com/user-attachments/assets/7e935fe5-b7f0-4674-8d94-a8c8a6176a3c)
2024-07-16 10:47:46 +02:00
Jaanus Sellin
7d88b901a3
feat: remove first item selection (#7596) 2024-07-16 11:27:37 +03:00
Jaanus Sellin
0a4ef3b49f
feat: select first item after query (#7592)
Now after search is done, the first item will be selected
2024-07-16 09:28:34 +03:00
Jaanus Sellin
aaf66022af
feat: show all results in the same time (#7590)
Previously, when the result box was loading, it returned projects and
menu items first. After the feature search response came back, it also
showed the features, but this made the component jump around too much.
Now, everything is shown when the feature result comes back, reducing
the jumping around.
2024-07-15 16:37:11 +03:00
Thomas Heartman
d32990ec4c
fix: make loader not exlpode to 100vh in unnecessary locations (#7589)
This change fixes an issue with the loader where it would explode its
parent component to 100vh even when that was not called for.

To do so, I've added the a new `type` prop to the component, to
distinguish between `fullscreen` and `inline` usage. The `fullscreen`
type sets the height to 100vh, while the `inline` type sets it to
100%.

Now, this doesn't directly make the loader fullscreen (it just makes
sure it's at least as tall as the screen), so maybe the prop name is
misleading. I'd be happy to change it (or to even extract this into
two separate components) if that's preferable. Other potential prop
names could be `height`, which is very direct, or `usage`, which I
think better describes what we do. Like with `type`, I'd like to
communicate the intended behavior more that the actual implementation,
so I'm leaning towards either `type` or `usage`.

## Screenies

I've gone through all the usages of the loader, and checked how each one
works. Here they are:

### Loader in environment variants

I wasn't able to trigger this manually, but it's apparently there

Old (ignore the banner placement; that's firefox's screenshot tool
acting up)

![image](https://github.com/user-attachments/assets/f5d0a709-6815-4838-9ad4-c8f79a54ad0e)

New:

![image](https://github.com/user-attachments/assets/c7538146-b8af-4253-89ed-55d1eb37d6a5)

### Project setting forms

Old:

![image](https://github.com/user-attachments/assets/f8b55899-4483-470a-8d3a-3d11761ec8c7)

New:

![image](https://github.com/user-attachments/assets/29157004-6662-494b-9939-2f34977a9c63)

### Rollout strategy

Old:

![image](https://github.com/user-attachments/assets/5c699a06-37bd-4b3b-a3e3-f613ca7c88d5)

New (no discernible change):

![image](https://github.com/user-attachments/assets/f52178fe-9d26-4ebb-bd48-8a1c4a7e2f04)

### Advanced playground

Old:

![image](https://github.com/user-attachments/assets/43f7183b-cefc-4e29-961e-5d7e18d29be9)

New:

![image](https://github.com/user-attachments/assets/082d94dc-36e0-483c-b7a9-bd75e727c0d5)

### Loading screen / initial redirect

Old:

![image](https://github.com/user-attachments/assets/dbb8b1af-d585-4d48-8431-5379afd4f653)

New (no new component props):

![image](https://github.com/user-attachments/assets/842e766f-0ea7-4396-9696-b88509e24d77)

New (with new props):

![image](https://github.com/user-attachments/assets/e6ffd303-f24e-478d-88d9-b4fa57f307e4)
2024-07-15 14:41:45 +02:00
Mateusz Kwasniewski
3ade609956
feat: user seats component (#7583) 2024-07-12 15:39:37 +02:00
Thomas Heartman
9d7eec5951
fix: update cache, even when the total is 0 (#7582)
This PR fixes a bug where we wouldn't update the `useFeatureSearch`
hook's cached `total` value if the new total was `0`. The reason this
failed is that we would only update it if `data?.total`. Because `0` is
a falsy value, the check would fail.
2024-07-12 14:47:50 +02:00
Tymoteusz Czech
e7627becec
feat: API Tokens limit - UI (#7561)
When approaching limit or limit reached for the number of API tokens, we
show a corresponding message.
2024-07-12 14:44:46 +02:00
Thomas Heartman
f0b49db06a
docs: document resource limits (#7567)
This PR adds the first version of the resource limit documentation. It
also corrects the link in the `Limit` component.

In addition to the new limits from the soft limits project, I've also
added the limits from the signals project.

## Discussion points

I've set the Pro resource limits to projects and envs to the same value
as on the [plans & pricing](https://www.getunleash.io/pricing) page
instead of the actual hard soft limit. I think that makes messaging
easier and more consistent.

However, this does present us with a bit of a problem. Because we've
been pretty consistent at saying "no, you can't have more projects" for
Pro. But we're saying it's easy to change (when in actuality the limit
isn't enforced 💁🏼 )

## Screenie

It looks a little bit like this (but check the files or preview for the
actual text content)

![image](https://github.com/Unleash/unleash/assets/17786332/56cadc00-5a8e-4820-8b11-d059112934da)
2024-07-11 14:10:49 +02:00
Tymoteusz Czech
d440d3230a
feat: show orphaned API tokens (#7569)
Add a visual indication that a token was scoped to projects that have
been deleted.
2024-07-11 14:06:22 +02:00
Thomas Heartman
d7adee3f64
chore: fix project name overflow (#7575)
Fix overflow in long project names. Show ellipsis where it overflows.


![image](https://github.com/Unleash/unleash/assets/17786332/4723134b-b667-47ab-83e8-02cb3cda9093)


![image](https://github.com/Unleash/unleash/assets/17786332/7f4f0b5b-bc03-460d-8ba1-e0cda51e9a5c)


![image](https://github.com/Unleash/unleash/assets/17786332/8b6528f0-2ed8-4a26-9d22-42fa356583c8)
2024-07-11 10:00:38 +02:00
Christopher Kolstad
f65afff6c1
feat: Disallow repeating last 5 passwords. (#7552)
We'll store hashes for the last 5 passwords, fetch them all for the user
wanting to change their password, and make sure the password does not
verify against any of the 5 stored hashes.

Includes some password-related UI/UX improvements and refactors. Also
some fixes related to reset password rate limiting (instead of an
unhandled exception), and token expiration on error.

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-09 16:18:35 +02:00
Tymoteusz Czech
f6c05eb877
API tokens - virtualized table (#7531)
API tokens table in both main list and project API tokens list can now
support more items - it doesn't slow the browser down if there is >500
items.
2024-07-09 13:22:55 +02:00
Mateusz Kwasniewski
2aea6e688c
feat: project limits ui (#7558) 2024-07-09 11:04:23 +02:00
Mateusz Kwasniewski
46b1eedcc7
feat: constraints values limit in a strategy UI (#7557) 2024-07-08 15:08:16 +02:00
Thomas Heartman
8f8ff13cc5
feat: add limit warning for feature flags (#7556)
This PR adds the Limit component to the feature flag creation form.

At the limit: 

![image](https://github.com/Unleash/unleash/assets/17786332/86f17565-5c75-4265-8e3b-5200222345ec)

Approaching the limit:

![image](https://github.com/Unleash/unleash/assets/17786332/af041d78-fcd3-4aa6-b415-9738cbfbae1b)

Below the limit threshold (no change):

![image](https://github.com/Unleash/unleash/assets/17786332/79ddc3ee-6e52-44d3-8d0b-0ebae90707a7)
2024-07-08 15:06:21 +02:00
Mateusz Kwasniewski
5ed4ccc981
feat: constraints limit in a strategy UI (#7555) 2024-07-08 13:10:00 +02:00
Thomas Heartman
ef80d7f81e
ui limits for flags (#7541)
This PR disables the "create feature flag" button when you've reached
the limits.

This one is a little more complex than the other UI limits, because we
also have to take into account the project feature limit. I've tried to
touch as little as possible, but I _have_ extracted the calculation of
both limits into a single hook.
2024-07-08 10:27:01 +02:00
Mateusz Kwasniewski
e7d07486a1
feat: limit segments component (#7553) 2024-07-08 09:03:08 +02:00
Alexandru Savin
9fae7801ed
feat: New Relic integration (#7492)
## About the changes
Add New Relic integration based on issue #878.


![image](https://github.com/Unleash/unleash/assets/1612455/05523b73-398b-413d-b760-26bf2feec2db)


![image](https://github.com/Unleash/unleash/assets/1612455/1ec01f52-0c1a-46a7-aa5b-5ca80004dcf8)


<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

<!-- Does it close an issue? Multiple? -->
Closes #878
2024-07-05 15:16:00 +02:00
David Leek
9ad7266aa1
chore: use a command bar shadow thats visible in darkmode as well (#7551) 2024-07-05 14:54:11 +02:00
Thomas Heartman
94926b7802
chore: don't prevent users from entering the env form when they're at the limit (#7549)
This change reverts the changes related to the button in particular
that were introduced in #7500. The button is now always enabled, and
the actual resource warning and creation blocking happens in the form,
courtesy of #7548.
2024-07-05 13:11:00 +02:00
Tymoteusz Czech
1d7cd2e274
feat: update description on project deletion (#7539)
Improving the project deletion experience by adding information about
API keys and refining the messaging, making it easier to comprehend.
2024-07-05 11:07:47 +00:00
Mateusz Kwasniewski
963d051632
feat: Limit environments component (#7548) 2024-07-05 13:03:51 +02:00
Jaanus Sellin
c802442846
feat: add solid border for contrast (#7550)
Now it is better to see the command bar.


![image](https://github.com/Unleash/unleash/assets/964450/a59bdabd-5a14-45a5-b8ca-594b62853c59)
2024-07-05 14:01:10 +03:00
David Leek
2f9483441f
feat: command bar up down navigation (#7546) 2024-07-05 12:57:43 +02:00
Jaanus Sellin
165f02a3a4
fix: sidebar update active when navigated via command menu. (#7545)
Currently, if the location changes, it does not update the active item.
I added useEffect to update the active item.

This is required when the user navigates via the command menu.
2024-07-05 13:28:00 +03:00
David Leek
51a2b3aa0e
feat: hide command bar when losing focus (#7544) 2024-07-05 11:22:46 +02:00
Mateusz Kwasniewski
cad8a3c2df
feat: limit component used in strategies (#7542) 2024-07-05 09:09:28 +02:00
David Leek
233bf0757e
chore: fix command bar key prop usage (#7534) 2024-07-05 08:24:51 +02:00
David Leek
96a1996b41
chore: command bar remove strategy types as page suggestion (#7543) 2024-07-04 15:51:37 +02:00
Mateusz Kwasniewski
c93bfafb7f
feat: limit component (#7538) 2024-07-04 09:49:31 +02:00
Jaanus Sellin
8dd77f3bbd
fix: remove focus on ESC (#7535)
Now when pressing ESC, command bar will lose focus.


![image](https://github.com/Unleash/unleash/assets/964450/9aea3b2b-bf06-4910-96be-0a67472945af)
2024-07-03 22:15:59 +03:00
Gastón Fournier
bf2df49bd6
feat: change billing plan get in touch to support email (#7523) 2024-07-03 16:58:04 +02:00
Thomas Heartman
c5fdaeabd9
feat: UI limit for API tokens (#7532)
This PR activates the limit for API token creation in both the global
API token window and in the project-level API token tab.

Because the same button is used in two places, I encapsulated the
fetching of flags and resource limits within the button. I can be
convinced to pass the current API token count and the limit as
arguments, but I think this is the right solution for this case.
2024-07-03 12:36:48 +00:00
Jaanus Sellin
990ea1ffb2
feat: quick suggestions click close (#7533)
Now recently visited projects, features, pages will also close the
command bar.
2024-07-03 14:41:23 +03:00
Jaanus Sellin
fc95d459d0
feat: use different cache key for command bar (#7530)
Now command bar and search do not share same cache, so they wont
conflict anymore.
2024-07-03 14:28:47 +03:00
Mateusz Kwasniewski
d924519abb
feat: segments limit ui (#7528) 2024-07-03 12:34:16 +02:00
Jaanus Sellin
57c1a6edd5
feat: track interaction with search (#7526)
Now we will start tracking how users interact with search box. Whether
they open it manually or use CTRL K
2024-07-03 12:27:20 +03:00
Gastón Fournier
5832fc7d81
feat: what's new in Unleash (#7497)
https://linear.app/unleash/issue/2-2354/new-in-unleash-section-in-sidebar

Add a "New in Unleash" section in the side bar and use it to announce
signals and actions.


![image](https://github.com/Unleash/unleash/assets/14320932/b2b5b65a-1812-4fc9-addf-c47c3cc90af3)

Inside signals page we're also including a feedback button to try to
collect some insights.


![image](https://github.com/Unleash/unleash/assets/14320932/a2edb355-55e8-4939-b29d-2ba4e1f68001)

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-03 09:54:38 +02:00
David Leek
06971375cb
chore: fix command bar missing icons in quick suggestions (#7522) 2024-07-03 09:41:12 +02:00
David Leek
a463e8b1e6
chore: command bar feedback focus and text size (#7521) 2024-07-03 09:33:28 +02:00
Mateusz Kwasniewski
e9b643761c
feat: Project limit UI (#7518) 2024-07-02 15:29:58 +02:00
David Leek
0a2f7e5a61
chore: fix searchbar styling when focus is on results (#7517) 2024-07-02 13:15:57 +02:00
Jaanus Sellin
f42e74e7c5
chore: rename command bar files (#7516)
Now we have nice logical naming


![image](https://github.com/Unleash/unleash/assets/964450/c24041bc-db94-463e-aa9c-d7ecd484ab12)
2024-07-02 13:59:18 +03:00
Jaanus Sellin
1f48f9067a
fix: command menu hover (#7515)
Now command menu hover has same styling as sidebar


![image](https://github.com/Unleash/unleash/assets/964450/22dd869f-0256-4922-b56a-826f1f37ff45)
2024-07-02 13:34:40 +03:00
Tymoteusz Czech
e916deda74
fix: prevent project cell overflow on api keys table (#7472)
Preparations for virtualizing API tokens table - projects column for tokens with a list of projects assigned will not overflow the cell.
2024-07-02 12:10:02 +02:00
Jaanus Sellin
745c5a0454
fix: improve menu styling (#7513)
Now quick suggestions padding is not bigger than for pages. 


![image](https://github.com/Unleash/unleash/assets/964450/9708faab-67d4-4159-8af4-b203f7778f6b)
2024-07-02 12:33:37 +03:00
Jaanus Sellin
4eebf49423
feat: clear search string and close box after click (#7511)
Now when selecting an item from command menu, the search string is
cleared and command menu closed.
2024-07-02 11:12:08 +03:00
David Leek
85096ba3c6
feat: command bar results key down should exit/refocus input (#7509)
Refocuses command bar input field if command bar results has focus and
user starts to type. Closes if Escape button clicked
2024-07-02 09:56:25 +02:00
Thomas Heartman
be518af228
feat: use new environment limit in Unleash UI (#7500)
This PR updates the Unleash UI to use the new environment limit.

As it turns out, we already had an environment limit in the UI, but it
was hardcoded (luckily, its value is the same as the new default value
🥳).

In addition to the existing places this limit was used, it also disables
the "new environment" button if you've reached the limit. Because this
limit already exists, I don't think we need a flag for it. The only
change is that you can't click a button (that should be a link!) that
takes you to a page you can't do anything on.
2024-07-02 06:14:15 +00:00
Mateusz Kwasniewski
57b253c050
feat: constraint values limit UI (#7501) 2024-07-01 15:05:44 +02:00
Jaanus Sellin
c907199d23
feat: command bar feedback (#7485)
![Screenshot from 2024-07-01
13-04-57](https://github.com/Unleash/unleash/assets/964450/4d5c96a2-0cfc-47a9-9323-f7ce1b27da3d)
![Screenshot from 2024-07-01
13-05-03](https://github.com/Unleash/unleash/assets/964450/79f9c289-4c62-4a3e-b612-c88ff8ca434d)
2024-07-01 14:15:51 +03:00
Gastón Fournier
79628d3e7d
chore: change get in touch email and use biome from node_modules (#7496) 2024-07-01 12:07:07 +02:00
David Leek
20da40d38d
feat: move recording recently visited into separate component (#7494) 2024-07-01 10:35:02 +02:00
Mateusz Kwasniewski
3525928fea
feat: configurable strategies limit (#7488) 2024-07-01 10:03:26 +02:00
David Leek
bdce76e84a
chore: command bar refactor of search result items for consistent styling and icons (#7483) 2024-06-28 12:40:44 +02:00
David Leek
d01aba955a
chore: rename recent and page suggestions (#7484)
Renames and moves recently visited and page suggestions to match name
pattern
2024-06-28 13:18:27 +03:00
Mateusz Kwasniewski
5bd32f264d
feat: strategy limit to 30 (#7473) 2024-06-28 11:18:44 +02:00
Jaanus Sellin
82a53fa9b3
feat: introduce large cache for swr (#7470)
Previously, clearing the SWR cache cleared all entries. Now you can
configure the cache size.

1. This makes the search more fluid. Previously, if you went back and
forth on pages, you were always sent to the loading state.
2. This also solves the issue where the command bar search cleared the
cache for all other searches.
3. Additionally, it addresses the problem where the global search
cleared the cache for project search.
2024-06-28 10:44:35 +03:00
Mateusz Kwasniewski
b67c73a578
chore: resource limits flag (#7471) 2024-06-27 14:25:07 +02:00
Christopher Kolstad
f4e3388606
task: Yarn v4 (#7457)
Moves to Yarn v4

---------

Co-authored-by: Alvin Bryan <107407814+alvinometric@users.noreply.github.com>
2024-06-27 12:52:43 +02:00
Jaanus Sellin
82822a735b
feat: command bar track events (#7469)
Start tracking plausible events

1. Log the search keywords that returned 0 results
2. Track all clicks, based on source(search/recents/pages), type etc.
2024-06-27 12:48:57 +03:00
Tymoteusz Czech
083273b49b
fix: prevent strategy variant weight from going into negative numbers on Frontend (#7460)
Added validation if sum goes over 100%. Remaining split is never negative
2024-06-27 09:06:59 +00:00
Tymoteusz Czech
1cdbd21212
fix: strategy form buttons spacing (#7468) 2024-06-27 11:04:06 +02:00
Tymoteusz Czech
4c1d8dd423
fix: banner duplication on strategy edit with change requests (#7452)
## About the changes
Only one banner info about the outcome of strategy edit should appear
when change requests are enabled.


![image](https://github.com/Unleash/unleash/assets/2625371/72e734b4-14b2-4179-9d31-6382f4c9575d)


[issue/1-2292](https://linear.app/unleash/issue/1-2292/bug-do-not-show-feature-toggle-is-currently-enabled-banner-when-change)
2024-06-27 10:04:02 +02:00
Jaanus Sellin
e8511789fd
feat: command menu items can have description as tooltip now (#7455)
![image](https://github.com/Unleash/unleash/assets/964450/7a55a1a7-7aea-4f9c-96ac-46adf2edd36f)
2024-06-26 12:39:53 +03:00
Jaanus Sellin
b5e329e22d
feat: search only features when there is search string (#7450)
Now the search hook is inside another component, so we do not get
searches without search query.
Also we had 2 state variable handing the search query. Removed one of
them.
2024-06-25 16:17:17 +03:00
David Leek
ffe306714b
feat: tweak command bar UI styles to match sketches (#7447) 2024-06-25 14:30:39 +02:00
Jaanus Sellin
ed9d0cccbc
feat: now able to search pages (#7446)
Now can search pages
2024-06-25 15:29:36 +03:00
Mateusz Kwasniewski
7e5ce08ea8
fix: long project name display (#7435) 2024-06-25 12:22:03 +02:00
Jaanus Sellin
3961c1abf0
feat: now command bar will not search behind the scene (#7443)
Previously it was doing request to search behind to scenes, when noone
was using the nav bar. This fixes it.
2024-06-25 12:53:23 +03:00
Thomas Heartman
8ef59cd45d
chore: change "toggle updated" to "flag updated" in toast message (#7439)
This message appears to have been missed when we did the previous
migration from "toggle" to "flag".
2024-06-25 09:34:44 +02:00
Thomas Heartman
0af5bbad38
chore: remove createProjectWithEnvironmentConfig and newCreateProjectUI flags (#7429)
This PR removes the last two flags related to the project managament
improvements project, making the new project creation form GA.

In doing so, we can also delete the old project creation form (or at
least the page, the form is still in use in the project settings).
2024-06-24 12:53:55 +02:00
Nuno Góis
4736084e00
fix: check for permission in group access assignment (#7408)
Fix project role assignment for users with `ADMIN` permission, even if
they don't have the Admin root role. This happens when e.g. users
inherit the `ADMIN` permission from a group root role, but are not
Admins themselves.

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2024-06-18 17:06:34 +01:00
Thomas Heartman
1f4126e495
fix: make rendering of new project form independent of rendering the project list (#7405)
This change takes the rendering of the new project form component and
puts in a child component of the project list, thereby
significantly speeding up the time it takes to render the form if you
have lots of projects (about to 10x for 50 projects on my machine).

The reason it was so slow before was that the open state of the form
component was stored in the project list component. This meant that
whenever you wanted to open or close the form, you'd have to rerender
the entire project list.

This change abstracts that process into the new ProjectCreationButton
component. This component takes care of checking the feature flag for
whether to render the dialog or to send the user to the old form, and
takes care of state management for the dialog.

Because this is a child component of the project list, it does not
cause rerenders of the entire project list.
2024-06-18 09:36:36 +02:00
Thomas Heartman
ccc332a764
chore: delete ice cream icon 🍦 (#7403)
This was added back in may 2021
(https://github.com/Unleash/unleash-frontend/pull/285), but was never
used. Maybe it's time
to remove it.
2024-06-17 11:26:06 +02:00
Jaanus Sellin
10d2a295c7
feat: menubar is not dependant on query params anymroe (#7399)
Previously since query params were changing by global search, and
menubar was also altering them, they were conflicting. Menubar does not
need query params as state. So using search hook directly.
2024-06-14 12:26:52 +03:00
David Leek
9b789ea5ef
feat: command bar pages and name resolving (#7397) 2024-06-14 11:22:55 +02:00
Mateusz Kwasniewski
7e565760f6
fix: lifecycle button permissions (#7395) 2024-06-14 10:26:54 +02:00
Jaanus Sellin
09d9676d66
feat: command bar search projects (#7388)
Now can search for projects.
Also adding debounce to not spam backend with requests. Also the UI is
less flickery.
2024-06-13 14:47:34 +03:00
Tymoteusz Czech
582b33e121
Feat: feature view created by field - frontend (#7382)
add "Created by:" to feature overview meta and align other items
2024-06-13 13:00:57 +02:00
Mateusz Kwasniewski
1c2aa128be
fix: exclude lifecycle from stale checks (#7386) 2024-06-13 12:37:29 +02:00
David Leek
50316a2f23
feat: command bar last visited: improve project/feature icons and paths (#7383) 2024-06-13 09:43:39 +02:00
David Leek
507a2bca83
chore: add some tests for the useRecentlyVisited hook (#7380) 2024-06-13 08:38:51 +02:00
Jaanus Sellin
21088b745d
feat: search features from command bar (#7378)
Now searching works in command bar

1. Currently piggybacking on the search hook, but I think it is not fast
enough, and also it is using the query params as the global search. This
causes some weird behaviour in UI. This probably means we will create
separate endpoint for this.


![image](https://github.com/Unleash/unleash/assets/964450/a24f41ae-93d7-4ebe-a92b-c20dfe7cb666)
2024-06-12 21:24:22 +03:00
Mateusz Kwasniewski
77a5b85d6b
feat: recent project by name (#7375) 2024-06-12 13:40:05 +02:00
Gastón Fournier
a0fce0ec12
Revert "fix: yarn v4 requires prepack instead of prepare script when building…" (#7373)
Reverts Unleash/unleash#7371
2024-06-12 13:25:51 +02:00
Jaanus Sellin
ffe1305934
feat: extract global feature search (#7372)
We need global search for command menu, so extracting into separate
hook.
2024-06-12 13:32:13 +03:00
Christopher Kolstad
a971c770e9
task: Yarn v4 (#7345)
Trying again, this time with correct .gitignore already setup, and a
workflow configured to try what was failing prior to our revert.
2024-06-12 11:18:21 +02:00
Thomas Heartman
4c4d6e8aeb
chore: use new ScreenReaderOnly component in config buttons (#7352)
This PR uses the new ScreenReaderOnly component in existing code,
replacing custom code with a shared component.
2024-06-12 11:04:47 +02:00
Thomas Heartman
2191de7713
chore: disable filtering for unknown users (#7369)
This PR disables the filtering capability in the front end for unknown
users.

Modifying the back end to support filtering for unknown users is not
something we want to do yet. It's possible, but it requires adding a lot
of special cases to the handling code (refer to [PR
#7359](https://github.com/Unleash/unleash/pull/7359)), which we'd like
to avoid if possible. To avoid annoying cases where the filtering
doesn't work as expected and breaks user expectations, we're disabling
the filtering capability for unknown users in the front end.

We can consider whether to enable back-end results for unknown in the future if we get
user feedback that it's important.

This PR works by changing the avatar cell component. When the user has
id 0 (and is therefore unknown), we:
- set aria-disabled to true. This alerts users with assistive tech that
the button is disabled, but it doesn't take it out of the tab order, so
it's not mysteriously missing.
- change the tooltip text, telling users that they can't filter by
unknown users.
- disable the avatar callback function, so clicking on the avatar
doesn't do anything.

The accompanying tests assert this functionality.

I considered also updating the screen reader text, but I think that
would add more confusion or be more information than the user needs.
According to MDN's article on the [aria-disabled
attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-disabled):

> [the aria-disabled] declaration will inform people using assistive
technologies, such as screen readers, that such elements are not meant
to be editable or otherwise operable.
2024-06-12 07:41:40 +00:00
Jaanus Sellin
7fc87e1647
feat: clean up command bar props (#7368)
A lot of things were passed in for search, but since we only have single
command bar, we do not need them and it was bloating our component.
2024-06-12 09:24:16 +03:00
Tymoteusz Czech
3c109a7577
Feat/change request comments formatting (#7360) 2024-06-11 15:49:22 +02:00
David Leek
576dd04dc5
feat: command bar poc (#7350)
Command bar PoC using clone of search

---------

Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-06-11 15:27:59 +03:00
Thomas Heartman
cfcf13980e
chore: use HTML (custom) tooltip for permission switches (#7355)
This PR changes the environment permission switch to use the HTML
tooltip instead of the default MUI tooltip. This aligns with how we've
been doing tooltips recently.

The main driver behind this change was that the project flag table used
two different tooltips. This makes it so that they all look the same,
but it also impacts other places that use the same switch.

In feature flag table:

![image](https://github.com/Unleash/unleash/assets/17786332/4d411285-c00e-41ec-95f9-9e6855d46661)

On flag page:

![image](https://github.com/Unleash/unleash/assets/17786332/11de1daf-7d0f-4214-8dc7-10b11631ce58)

In project env table:


![image](https://github.com/Unleash/unleash/assets/17786332/cc7a3a99-e48c-4989-9a14-2d5d4035a3cb)
2024-06-11 14:03:35 +02:00
Jaanus Sellin
3acb3ad2c2
feat: upgrade from react v17 to v18 (#7265)
**Upgrade to React v18 for Unleash v6. Here's why I think it's a good
time to do it:**
- Command Bar project: We've begun work on the command bar project, and
there's a fantastic library we want to use. However, it requires React
v18 support.
- Straightforward Upgrade: I took a look at the upgrade guide
https://react.dev/blog/2022/03/08/react-18-upgrade-guide and it seems
fairly straightforward. In fact, I was able to get React v18 running
with minimal changes in just 10 minutes!
- Dropping IE Support: React v18 no longer supports Internet Explorer
(IE), which is no longer supported by Microsoft as of June 15, 2022.
Upgrading to v18 in v6 would be a good way to align with this change.

TS updates:
* FC children has to be explicit:
https://stackoverflow.com/questions/71788254/react-18-typescript-children-fc
* forcing version 18 types in resolutions:
https://sentry.io/answers/type-is-not-assignable-to-type-reactnode/

Test updates:
* fixing SWR issue that we have always had but it manifests more in new
React (https://github.com/vercel/swr/issues/2373)

---------

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2024-06-11 13:59:52 +03:00
Mateusz Kwasniewski
5225452bfd
fix: remove stale stats widget (#7353) 2024-06-11 12:39:24 +02:00
Thomas Heartman
3643016a0e
feat: filter by user when interacting with the avatar (#7347)
This PR lets you filter by flag creator by interacting with the user's
avatar.


Additionally, I've switched the custom popover for the standard tooltip
that we use elsewhere in the table. This gives the table a more cohesive
feel. As such, I have also deleted the component created in a previous
PR, because it's no longer in use anywhere.

It now looks like this (when tabbed to; notice the focus ring):


![image](https://github.com/Unleash/unleash/assets/17786332/d321d9df-0b17-49c3-bea7-89331df3f994)
2024-06-11 12:15:35 +02:00
Mateusz Kwasniewski
76c8cbad0c
feat: global search by flag type (#7346) 2024-06-11 10:14:29 +02:00
Thomas Heartman
24c0976d56
feat: add popover to users in flags list (#7344)
This PR adds a popover to the user avatars in the flag list.

The popover is similar to the one used for projects and groups, but it
differs in a few ways:
- There's less padding. There's quite a lot of padding in the other
popovers, and it felt like too much for this table.
- It only shows one bit of text (the user's name/username/email). The
other popovers show email and name/username, but we don't have all that
information, so this is a stripped down version.

Flag list popover:

![image](https://github.com/Unleash/unleash/assets/17786332/6a86f638-ba6d-48e0-87e2-078b582697cf)

Group popover:

![image](https://github.com/Unleash/unleash/assets/17786332/d5fc7172-8fcb-4fac-87c4-05f211c0938c)

or if no email

![image](https://github.com/Unleash/unleash/assets/17786332/51955ead-849f-4bfc-81aa-e1852677647c)
2024-06-11 09:40:48 +02:00
Jaanus Sellin
f0f339ead3
fix: revert yarn4 (#7334)
Reverting yarn4, because we are stuck on broker build for couple of days
now.
2024-06-10 14:35:18 +03:00
Thomas Heartman
df3ca10a6d
chore: make the User Avatar size configurable (#7332)
This change makes the width of the user avatar configurable via a new
"avatarWidth" property.

It also sets the width to be `theme.spacing(3)` (currently 24px) for the
feature flag table.

It looks like this now:

![image](https://github.com/Unleash/unleash/assets/17786332/5e12ddad-234e-4e81-9eff-303b116991bb)

It used to look like this:


![image](https://github.com/Unleash/unleash/assets/17786332/357f7a52-7765-4f38-8700-c9884b6c49f0)
2024-06-10 12:43:27 +02:00
Christopher Kolstad
57ddfc9255
fix: yarnv4 requires shebangs in shell scripts to allow execution (#7323) 2024-06-07 14:29:00 +00:00
Mateusz Kwasniewski
7df1321128
test: filter by created by/author (#7307) 2024-06-06 13:20:38 +02:00
Mateusz Kwasniewski
a91b77a7ce
feat: filter by created by (#7306) 2024-06-06 12:59:11 +02:00
Mateusz Kwasniewski
bb3498adb6
chore: orval types for flag creator (#7305) 2024-06-06 12:11:41 +02:00
Mateusz Kwasniewski
2cc4b5faab
feat: display created by user in search (#7292) 2024-06-06 11:51:54 +02:00
Christopher Kolstad
63f3212624
fix: trim sso URL fields (#7301)
What the title says. There are input values that are whitespace
sensitive, so this will trim clientId and entity field, preventing the
form from sending leading or trailing whitespace. Will make a PR on
enterprise as well to trim on the backend as well.
2024-06-06 10:01:24 +02:00
Mateusz Kwasniewski
92d7d9aafe
chore: orval search created by feature (#7290) 2024-06-05 14:40:13 +02:00
Mateusz Kwasniewski
c869ea35e4
fix: project settings table overflow (#7288) 2024-06-05 14:05:41 +02:00
Thomas Heartman
05b7f6f4d9
fix: involuntarily scrolled to the top when mousing off group/project avatars (#7287)
This PR fixes a bug where if you navigated to the projects page via the
menu, scrolled down, and hovered over a project's avatars, you'd be
scrolled to the top of the page when you moused off the avatar.

Turns out this issue was also in the group cards. It seems to be that
the popover attempts to restore focus back to where you where, which, if
you navigated via the menu, is at the top of the page. Because these
popovers don't have any focusable content, we can disable that
functionality.

Additionally, I've disabled the scroll lock when the popover is open.
The scroll lock made it impossible to scroll when one of the popovers is
open, which is confusing as a user.
2024-06-05 13:46:36 +02:00
Mateusz Kwasniewski
e621c7a2a5
feat: Preview dependency (#7284) 2024-06-05 10:05:41 +02:00
Thomas Heartman
c129541df6
feat: adds information about project modes to the project creation form (#7250)
This change adds information about the project modes to the new
project creation form, using the tooltip for project creation modes.

In doing so, it updates the config button tooltip to accept extra
elements and adds styling for them.

What it looks like: 


![image](https://github.com/Unleash/unleash/assets/17786332/809fb48e-2404-416b-a867-6fa04978ccc1)

## a11y issues

This solution does present one problem: the popover doesn't get focus,
so it's impossible for you to scroll with only a keyboard. However, this
is something that's present in Unleash already, and not something that I
think would be easily solvable, so I don't think this is when we should
solve it.
2024-06-05 09:20:18 +02:00
Thomas Heartman
e5c3cc0c8d
chore: regenerate orval with new changes (#7283)
This PR generates new orval schemas with:
- new create tag schema
- updates from toggle to flag
- deprecation and obsolescence info
2024-06-05 09:14:50 +02:00
Thomas Heartman
3039fc3d59
fix: trying to create a tag that's too short gives errors (#7269)
1. Only suggest to create a tag value if the input is more than two
characters after trimming.
2. Ignore trailing and leading whitespace when considering which
autocomplete options to show
2024-06-05 08:47:50 +02:00
Mateusz Kwasniewski
fef77c1fde
feat: filter by feature type (#7273) 2024-06-05 08:17:54 +02:00
Thomas Heartman
257cd5513f
fix: display previously selected tags in dialog (#7271)
When opening a dialog where there's previously selected tags, also
render the previously selected tags.

This is consistent with how we do it for bulk tags.

So instead of showing this when you open the tag manager on a flag with
existing tags:

![image](https://github.com/Unleash/unleash/assets/17786332/c82393f6-9561-4f71-a64e-8537f10400d2)

We show this:

![image](https://github.com/Unleash/unleash/assets/17786332/8ae8acb7-fc13-4289-bae8-d58545f704f3)
2024-06-05 08:13:16 +02:00
Christopher Kolstad
0db5bc193f
task: upgraded semver dependency (and biome) (#7272)
Sorry for the extra noise here, but this seems to be the biome upgrade
altering formatting slightly.
2024-06-04 15:01:43 +02:00
Jaanus Sellin
9cb015a7db
fix: hide insights from sidebar for oss and kill switch (#7270) 2024-06-04 15:34:23 +03:00
Mateusz Kwasniewski
75529f465d
feat: clickable tags in project overview (#7263) 2024-06-04 11:08:38 +02:00
David Leek
927f911c62
chore: add a flag+ui flag for commandBarUI (#7264) 2024-06-04 08:50:13 +00:00
Thomas Heartman
048d604518
chore: update project overview to flags (#7247)
This PR changes the project screen by calling the main tab "flags"
instead of "overview". There isn't really an overview available on that
tab anymore, only a list of flags.
2024-06-04 09:35:17 +02:00
Jaanus Sellin
88dda1987f
feat: project health chart now goes from 0 to 100 to give perspective (#7249)
![image](https://github.com/Unleash/unleash/assets/964450/ab56de69-bed5-4b2c-8ff9-b1cc3db8dd4b)
2024-06-04 10:18:20 +03:00
Mateusz Kwasniewski
a1cecaf647
fix: mobile menu font size (#7252) 2024-06-03 15:28:28 +02:00
Mateusz Kwasniewski
7021763973
feat: explain stickiness (#7248) 2024-06-03 13:54:06 +02:00
Mateusz Kwasniewski
e6b0c4fdb5
fix: Prevent jumping content navbar switch (#7232) 2024-06-03 08:52:03 +02:00
Mateusz Kwasniewski
5eadce061c
feat: align list items on mode switch (#7229) 2024-05-31 13:40:35 +02:00
Mateusz Kwasniewski
6340ecd6bf
fix: demo steps should search the main table (#7227) 2024-05-31 12:29:55 +02:00
Thomas Heartman
de74faac46
chore: remove flag for new project cards (#7225)
This PR removes the flag for the new project card design, making it GA.

It also removes deprecated components and updates one reference (in the
groups card) to the new components instead.
2024-05-31 10:58:31 +02:00
Thomas Heartman
bea5929460
chore: remove project list split feature flags (#7224)
This PR removes all the feature flags related to the project list split
and updates the snapshot.

Now the project list will always contain "my projects" and "other
projects"
2024-05-31 10:38:23 +02:00
Thomas Heartman
f28989749b
fix: correctly align project card info when some cards have multi-line names (#7223)
This change updates the styling of the project card bodies so that
alignment of the project data (number of flags, members, health) stays
at the bottom of the project card body, even if some cards have longer
bodies than others. It also updates the icon placement so that it is
consistent even when the title is multi-line.

Before this change, the bottom row would be misaligned if some (but
not all) project cards on a row had names long enough to span multiple
lines. The project icon would also be misaligned

Before:

![image](https://github.com/Unleash/unleash/assets/17786332/1d1b99a3-263a-4472-8872-0ac59afd252b)

Misaligned project icon: 

![image](https://github.com/Unleash/unleash/assets/17786332/3b805728-c61d-409c-b293-45b37d096b45)



After:


![image](https://github.com/Unleash/unleash/assets/17786332/e81fcdbc-619a-4da3-a559-89af5acff656)

Icon alignment: 

![image](https://github.com/Unleash/unleash/assets/17786332/0e6f669f-1a25-4074-b8c0-6dbdcafbb828)
2024-05-31 10:37:51 +02:00
Thomas Heartman
abf4966a37
fix: handle overflowing avatars in the new project card (#7217)
This change prevents the project owner avatars in the new project card
footer from overflowing by making the number of avatars to show
configurable.

It defaults to 9, the old hard-coded number of avatars shown, but can
be configured.

The reason it overflows here is probably that the extra button in the
project card footer (the favorite) makes the footer smaller than what
we have for the group card footer.

Before: 

![image](https://github.com/Unleash/unleash/assets/17786332/972fe471-a78a-436a-a08d-18afefd2501e)

After:


![image](https://github.com/Unleash/unleash/assets/17786332/af569412-85e2-4b9b-97b8-12b91d372a70)
2024-05-30 12:01:17 +02:00
Thomas Heartman
1ac447141a
fix: handle long names in new project card footers (#7216)
This is a redo of #7215. I missed the case where you have multiple
owners, causing it to lay out weird in that case.

This version handles that by returning an empty div for the owners
instead to fill up that space.

![image](https://github.com/Unleash/unleash/assets/17786332/4d0944a8-988c-4507-a127-755bbda90921)


![image](https://github.com/Unleash/unleash/assets/17786332/14feee20-e1f7-4507-b53d-c70b7d2961dc)


There **are** edge cases where the owners wrap:

![image](https://github.com/Unleash/unleash/assets/17786332/159838e3-2ea1-4846-9d53-357b1377c8e0)


But that is also the case with the current implementation:

![image](https://github.com/Unleash/unleash/assets/17786332/3e3be245-5ca7-46d9-bb3f-a453c90b4b78)

And only happens at very specific breakpoints.
2024-05-30 10:59:44 +02:00
Thomas Heartman
669e21eef0
Revert "fix: handle long owner names for projects (#7215)"
This reverts commit 5c1cd49aaa.
2024-05-30 10:30:23 +02:00
Thomas Heartman
5c1cd49aaa
fix: handle long owner names for projects (#7215)
This change updates the new project card footer to better handle long
names. Previously, if a name was too long to fit on a single line,
it'd wrap. It didn't cause any layout shift, but it made the card look
off.

So instead of wrapping, we now truncate the name and add an ellipsis.

To achieve this, I changed the layout to grid instead of flexbox and
removed a nested flex container.

Before: 


![image](https://github.com/Unleash/unleash/assets/17786332/2074ac85-ce73-4292-beed-a3da05083a8d)

After:


![image](https://github.com/Unleash/unleash/assets/17786332/8302aae8-959f-4336-acd3-dbc207767d5a)

Other cards remain the same, as shown here (new code on left, old code
on right):


<img width="601" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/009c5d5d-3f9d-4640-86a1-3b6afcd04041">
2024-05-30 10:03:21 +02:00
Thomas Heartman
50c725e2a9
feat: add tooltips to new project creation form config buttons (#7213)
This PR adds tooltips to the new project creation form buttons to make
it clearer what they do. The tooltips tell you what the buttons do and
contains the same description that we use for docs.


![image](https://github.com/Unleash/unleash/assets/17786332/74667ff8-25b7-4daa-bb93-8938fe4e3dd2)

The tooltips will cover other buttons on narrow windows, but I think
that's an acceptable tradeoff


![image](https://github.com/Unleash/unleash/assets/17786332/9886f717-9db9-40bd-bd0b-0e6150896889)
2024-05-30 08:30:44 +02:00
Mateusz Kwasniewski
95f5f7a20b
feat: Recent flags (#7211) 2024-05-29 16:01:52 +02:00
Mateusz Kwasniewski
88c7e9aa0e
feat: move demo to the right (#7212) 2024-05-29 15:00:31 +02:00
Jaanus Sellin
6c8b1d8904
fix: when finding median time to production, ignore 0s (#7200)
We have an issue that if you open up Insights, the Time to Production
chart was showing nothing because it was taking the median across all
projects. You might have many new or empty projects where the median was
0 (no data).

For example, the median from [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 50.3, 140] was 0.

Now, we will remove the 0 values to have a more reasonable median.
2024-05-29 14:17:31 +03:00
Mateusz Kwasniewski
439ee63387
feat: Synced last viewed projects (#7208) 2024-05-29 12:58:14 +02:00
Thomas Heartman
0e7f1aab50
fix: sort segments before comparing in cr diff calculations (#7202)
This change fixes a bug where we would show the list of segments as
changed (causing a conflict) if their order wasn't the same in the
change as in the original.

By sorting the segments before comparing them, we can avoid this issue.

To avoid modifying the objects that are passed in (in case that has
knock-on effects anywhere), we copy the objects. And because `toSorted`
"only" has about 89% coverage now, I chose to use `sort` and spread the
arrays instead.
2024-05-29 12:46:51 +02:00
Jaanus Sellin
e79e36daae
fix: show 2 insights components to pro (#7207)
Currently it was showing only users. Now showing 2.
2024-05-29 12:42:53 +03:00
Mateusz Kwasniewski
25177e55f9
feat: Remove accordion line (#7205) 2024-05-29 11:28:51 +02:00
Mateusz Kwasniewski
75114e52f7
fix: footer overflow (#7203) 2024-05-29 11:11:36 +02:00
Jaanus Sellin
ef9f09b58c
feat: insights out of beta and expose 2 widgets to pro (#7177)
1. Remove beta badge
2. Remove exposure from oss
3. Expose 2 widgets to pro and rest to enterprise
2024-05-29 11:55:01 +03:00
Mateusz Kwasniewski
8d898c2ac9
feat: smart sticky expand/hide button (#7201) 2024-05-29 10:47:57 +02:00
Thomas Heartman
82d401be1b
fix: get rid of horizontal scrollbar on narrow screens in CreateProjectDialog (#7198)
This PR hides horizontal overflow in the dialog.

The pop-up docs that we have on small windows was causing a tiny bit of
overflow, giving us an annoying (and pretty useless) horizontal
scrollbar. We can hide that scrollbar by hiding horizontal overflow.
2024-05-29 08:55:11 +02:00
Thomas Heartman
0f3d93099d
fix: CR button shows docs for change requests when selected (#7196)
The props had been left out of the config button by mistake.

It also puts the CR table in a scrollable div that had been removed by
mistake.
2024-05-29 08:38:00 +02:00
Thomas Heartman
3aa7e89a3e
chore: fix button design on narrow screens for new project form (#7195)
This PR contains a few fixes for button designs on small screens for the
new project form.

It makes all buttons (config and actions) full-width and addresses some
sizing stuff.

It also caps the width of the stickiness button on non-small screens to
avoid shifting.




![image](https://github.com/Unleash/unleash/assets/17786332/83af0a1c-8eb0-4a6b-aa5c-491bbcfab8e9)
2024-05-29 08:37:52 +02:00
Thomas Heartman
06de5de85c
chore: code cleanup for new project form pt 2 (#7190)
This is the second part of the code cleanup job. It primarily consists
of breaking apart large files and organizing the code better
2024-05-29 08:10:47 +02:00
Mateusz Kwasniewski
2649c8e7cd
Fix: overflow sidebar cr banner (#7193) 2024-05-28 16:46:09 +02:00
Mateusz Kwasniewski
8e0b75102b
feat: Expand admin settings (#7192) 2024-05-28 16:09:23 +02:00
Mateusz Kwasniewski
dbc14fa7e9
feat: last viewed project (#7191) 2024-05-28 15:47:26 +02:00
Thomas Heartman
ff377cd704
chore: new project dialog code cleanup 1 (#7113)
This PR implements some initial cleanup work for the new project
creation dialog.

The primary focus here is to remove unused props and to use the same
logic for the configuration buttons regardless of the content (mode,
stickiness, envs, change requests).
2024-05-28 14:01:59 +02:00
Mateusz Kwasniewski
029d43bbcc
feat: project insights out of beta (#7188) 2024-05-28 12:53:50 +02:00
Simon Hornby
f16f8594f5
chore: deprecate custom strategies (#7186) 2024-05-28 12:33:53 +02:00
Mateusz Kwasniewski
0c4d4643bd
feat: Content padding matches top nav (#7187) 2024-05-28 12:33:21 +02:00
Mateusz Kwasniewski
d5730e1e8b
feat: Sidebar nav tweaks (#7185) 2024-05-28 12:15:40 +02:00
Mateusz Kwasniewski
5a9b015022
feat: currently selected nav item (#7182) 2024-05-28 12:03:52 +02:00
Thomas Heartman
c8fa7e477a
chore: allow CR selection when no envs are enabled (#7183)
This PR allows you to configure change requests for all environments
when no environments are enabled explicitly. This is the default state
of the form and makes it so that you can configure CRs even if you want
all envs enabled.

Additionally, it preserves the case where you configure CRs for an
environment and then disable all envs.

This is logic only. It's not available in the UI yet.
2024-05-28 11:35:06 +02:00
Thomas Heartman
2c7a654860
fix: use a fixed-width button label for CR selector in new project creation form (#7179)
This change makes the button label for the CR selector in the new
project creation form have a fixed width. It adds a missing wrapper
element.
2024-05-28 09:48:30 +02:00
David Leek
bc6b23c740
fix: attempt a react friendly fix of summing (#7151)
## About the changes

Summing on Billing page got a little wonky after changing how the
summing worked when the estimation flag is off. This attempts to return
it to previous way of showing numbers when flag is off

If you go directly to the billing page it will not add user calculations
to the total. If you however interact with the UI, like change tabs back
and forth, it will suddenly show the correct sum:


![image](https://github.com/Unleash/unleash/assets/707867/af6eeddf-be3f-42ae-a588-f57c30d739ca)


![image](https://github.com/Unleash/unleash/assets/707867/b4a0b832-a550-4e87-aa69-7b27f96d3beb)

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2024-05-28 09:08:23 +02:00
Jaanus Sellin
73f0cb6180
chore: switch insights ui flag to kill switch (#7166)
The flag is already set up in our Unleash instance.
2024-05-28 09:44:52 +03:00
Thomas Heartman
2698ddf704
fix: change request environment selector button label (#7176)
This change makes it so that the button for change request
environments reads correctly when:
1. You have no envs configured: "Configure change requests"
2. One env configured: "1 environment configured"
3. More than one env configured: "`n` environments configured"
2024-05-28 08:40:58 +02:00
Thomas Heartman
5f3eae7035
chore: rename component to match file name and american spelling (#7174)
Renames the create project dialog component to match the name of the
file (both using the same spelling of dialog)
2024-05-28 08:30:11 +02:00
Thomas Heartman
be0f073b89
chore: fix create project form environment selector button width (#7175)
This commit sets the width of the environment selector button to a
fixed width (wide enough to display "all environments").
2024-05-28 08:22:58 +02:00
Thomas Heartman
cae3d78ced
fix: make CR button wider always (#7173)
This change makes the CR button wider when you have environments
selected, reducing the difference between "no environments" and "envs
configured" states, thereby reducing the difference in the layout.
2024-05-28 07:23:49 +02:00
Thomas Heartman
10155935ae
fix: minor UI adjustments (#7117)
This PR contains two small UI improvements for the new project creation
form:

1. Wrap the action buttons when necessary (so that they don't become
unavailable when the window gets narrow enough.)
2. Make the change request table scrollable horizontally, so that it can
still be configured on narrow windows.

---------

Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-05-28 07:10:50 +02:00
Thomas Heartman
9a51f68f5f
chore: new create project dialog UI fixes (#7167)
This PR addresses several related fixes to the new project creation
dialog to prevent unnecessary growing and shifting:

- use a fixed width for the guidance sidebar
- use a fixed height for the guidance code snippet
- use a fixed height for the mobile guidance
- use a fixed width for the mode selector button
- cap description height

This is a little tricky because we don't want the changes for the dialog
to affect other forms. As such, I've added some new options you can use
when you create the guidance components / sidebar.
2024-05-28 07:10:34 +02:00
Mateusz Kwasniewski
f7214c6cd0
test: navigation sidebar (#7172) 2024-05-27 17:00:10 +02:00
Mateusz Kwasniewski
08629e9041
refactor: navigation sidebar (#7171) 2024-05-27 16:29:20 +02:00
Mateusz Kwasniewski
c8db321b3e
feat: Persist expand collapse (#7169) 2024-05-27 15:36:24 +02:00
Mateusz Kwasniewski
67148dbdc9
feat: UI tweak new sidebar (#7165) 2024-05-27 13:35:27 +02:00
Mateusz Kwasniewski
02c0744fc2
feat: user profile preview (#7150) 2024-05-27 12:32:21 +02:00
Mateusz Kwasniewski
17720d6185
feat: adjust change request banner for new layout (#7160) 2024-05-27 11:08:23 +02:00
David Leek
9ea66e8850
chore: remove deprecated legacy features endpoint (#7129)
This PR is part of #4380 - Remove legacy `/api/feature` endpoint.

## About the changes

### Frontend
- Removes the useFeatures hook
- Removes the part of StrategyView that displays features using this
strategy (not been working since v4.4)
- Removes 2 unused features entries from routes 

### Backend
- Removes the /api/admin/features endpoint
- Moves a couple of non-feature related tests (auth etc) to use
/admin/projects endpoint instead
- Removes a test that was directly related to the removed endpoint
- Moves a couple of tests to the projects/features endpoint
- Reworks some tests to fetch features from projects features endpoint
and strategies from project strategies
2024-05-27 09:24:09 +02:00
Mateusz Kwasniewski
68427f841b
feat: Persist navigation settings (#7144) 2024-05-24 13:21:12 +02:00
Mateusz Kwasniewski
8b5e39c997
feat: hide top nav (#7140) 2024-05-24 12:08:08 +02:00
Mateusz Kwasniewski
242f31c251
feat: More spacious layout (#7138) 2024-05-24 11:18:11 +02:00
Mateusz Kwasniewski
ebce31066a
feat: New mobile sidebar (#7135) 2024-05-24 09:35:03 +02:00
Mateusz Kwasniewski
292f43031a
feat: Navigation switch (#7132) 2024-05-24 08:55:05 +02:00
Mateusz Kwasniewski
79ed56ecfc
feat: Mini navigation sidebar (#7131) 2024-05-23 16:09:45 +02:00
Mateusz Kwasniewski
b783e89c88
feat: plan specific navigation (#7126) 2024-05-23 12:44:00 +02:00
Jaanus Sellin
a4c48a16a4
chore: update orval types after renaming (#7127) 2024-05-23 13:37:56 +03:00
Jaanus Sellin
b3dd460d2f
chore: rename toggle to flag #7 (#7125) 2024-05-23 13:19:49 +03:00
Mateusz Kwasniewski
be6837b53a
feat: navigation sidebar stub (#7121) 2024-05-23 10:49:11 +02:00
Jaanus Sellin
29e7c4035d
chore: rename toggle to flag #4 (#7114) 2024-05-22 16:26:22 +03:00
Thomas Heartman
be4bb86b92
fix: add accessible descriptions to the dropdowns (#7112)
This PR adds accessible descriptions to the dropdown widgets in the new
project creation form. The description is the same as we show in the
background
2024-05-22 14:02:05 +02:00
Thomas Heartman
57f66f3b55
fix: prevent single-select lists from reopening when you select an item from the search bar (#7111)
We have this very specific edge case in the new project form
dropdowns. It only occurs for the single-select lists and only if you
select an item via search.

When the search input is non-empty, you can use enter to select the
first item in the list.

For some reason, this also triggers a click on the underlying button
that opens the dropdown (I'm guessing this is to do with an underlying
focus).

To work around it, we create a variable that prevents you from opening
the dropdown if it is true. We set it to 'true' when you close it (for
single-selects), but also set single-millisecond timeout that sets it
to false thereafter.

This is much to short for the user to notice anything, but it prevents
the browser from noticing the click.
2024-05-22 13:53:35 +02:00
Thomas Heartman
78fcdbf132
feat: show docs with icons in sidebar (#7109)
Adds icons to sidebar documentation and removes the link when you can't
interact with it.

I'm a little concerned that this won't be very accessible at the moment,
because we don't announce that anything has changed (i.e. there's no way
to find out that the text has changed if you can't see it), and the text
isn't labeled as describing anything. (this is being addressed in #7110
)


![image](https://github.com/Unleash/unleash/assets/17786332/2f482aa1-b74d-4b0f-97aa-2dbc1d1f82f9)

There's a few caveats to this:
1. we don't set a min height at the moment. I've avoided this because we
use the sidebar a number of other places and I wanted to touch as little
as possible. This means we can still get height adjustments
2. The new project icon doesn't have the same proportions as the mui
icons. This adds some additional jank. We should probably look at this,
though.
2024-05-22 13:45:47 +02:00
Thomas Heartman
688bac9f87
chore: update input field text sizes (#7107)
Make sure that the main input fields have enough space between them and
that their size is correct in both light and dark modes.
2024-05-22 13:26:22 +02:00
Thomas Heartman
4a46c8adbf
fix: set min-height on dropdown item list (#7106)
This ensures that the dropdown items without checkbox are the same
height as the dropdown items with checkbox.
2024-05-22 13:25:39 +02:00
Thomas Heartman
c47154b939
fix: make dialog the right height and make it scroll if it's smaller (#7103)
I've marked the project creation dialog as "compact", so that it's only
as tall as it needs to be.

However, by default, compact forms don't scroll because they have
overflow set to hidden. This is a problem on very short windows. To get
around this, I've set overflow to unset on compact forms.

I've also removed `min-height: 0` which has some weird side effects on
the centered dialog. Instead, I'm setting `min-height` to `unset` if
it's compact.


![image](https://github.com/Unleash/unleash/assets/17786332/e7d5db52-32d3-47d9-b31f-c73a5bb8e00f)

This task also uncovered some inconsistencies and some borders that only
show up sometimes, so I've removed them too.
2024-05-22 13:24:42 +02:00
Jaanus Sellin
2fb95339ef
chore: change toggle to flag #3 (#7101) 2024-05-22 09:58:53 +03:00
Thomas Heartman
14fd624faa
fix: don't send change request info unless using the new form (#7102)
I realized that, in an oversight, the form now shows and sends project
CR config, even if the new form isn't active. The API just ignores it if
it doesn't understand it, so it's not very harmful, but it's better if
we don't send it at all. This PR does that.

It does not actually test that change request info isn't included (but
it does test ID inclusion). This is because:
- change request info is only included if we're enterprise. The rendered
version of the hook isn't by default.
- Setting up module mocking and making it work seems like a lot of work
for a small gain, considering we're probably going to be removing the
old form anyway.
- I've tested it locally.

Also adds some testing for the hook related to name validation and
payload creation
2024-05-22 08:44:39 +02:00
Jaanus Sellin
8542cafc9f
chore: rename toggle to flag #2 (#7097) 2024-05-22 08:20:11 +03:00
Mateusz Kwasniewski
ce67c4d944
fix: no requests before project loaded (#7096) 2024-05-21 15:54:09 +02:00
Jaanus Sellin
8897f2ea75
chore: rename toggle to flag #1 (#7092)
Rename feature toggle to feature flag in the UI and code.
Starting with low hanging fruits.
Trying to keep these ~100 LoC.
2024-05-21 15:18:00 +03:00
David Leek
c14fc54e33
fix: also check includedTraffic before calculating overage and showing warning (#7091)
## About the changes

Fixes a bug that would display the overage warning on
network/traffic-usage when included traffic was 0. (it assumed all
traffic was overage)


![image](https://github.com/Unleash/unleash/assets/707867/793f8cb2-7c1d-4f67-b0e9-45c32fcb78e6)
2024-05-21 12:41:19 +02:00
Jaanus Sellin
4f46f03843
fix: small improvements (#7090)
Fixing isAdmin method. It is not that critical, because that is mostly
for system users not real usage.
Also fixing wording for outdated sdks.
2024-05-21 12:40:52 +03:00
Mateusz Kwasniewski
8a6daeee1e
refactor: replace useProject with useProjectOverview (#7087) 2024-05-20 15:15:24 +02:00
Mateusz Kwasniewski
ee92001bf5
fix: deprecate useProjectNameOrId (#7086) 2024-05-20 14:20:13 +02:00
Mateusz Kwasniewski
0537d3d5f6
feat: switch to hook without features list (#7085) 2024-05-20 13:52:21 +02:00
Jaanus Sellin
3768331e9a
fix: make numbers in chart to locale string (#7084)
To get correct formatting to number, in our codebase we call
toLocaleString(). Added it also to this component.

From

![image
(20)](https://github.com/Unleash/unleash/assets/964450/f941a592-4b86-4b64-99c5-4e7e5d4ccaf2)

To 

![Screenshot from 2024-05-20
14-06-19](https://github.com/Unleash/unleash/assets/964450/abac4570-30be-4fa4-a6fd-24b3f70902e0)
2024-05-20 14:27:53 +03:00
Jaanus Sellin
17e340ab40
feat: project level outdated sdks, project level banner (#7083)
At first, I was creating a new component, Project Banner, which was 90%
of the old banner and 10% new code, but it did not feel right. The
current banner is actually smart enough to be used in any container. So
now, I have moved the outdated SDK banner to the project level.

I like the simplicity of the change.


![image](https://github.com/Unleash/unleash/assets/964450/e57c1ace-e8f9-4866-a063-6f9ae561c6c0)
2024-05-20 14:15:39 +03:00
Mateusz Kwasniewski
659b3391c3
fix: refresh project after import (#7082) 2024-05-20 12:25:23 +02:00
Mateusz Kwasniewski
50ee7fa779
fix: new strategy using default strategy (#7075) 2024-05-20 09:50:44 +02:00
David Leek
dfc0c3c63f
feat: refactor data usage into hooks, estimate monthly added fees (#7048)
- Refactors data processing and overage calculations to separate hooks
- Adds support for estimating traffic costs based on monthly usage up to
current point
- Adds accrued traffic charges to the billing page


![image](https://github.com/Unleash/unleash/assets/707867/39a837c2-5092-49b8-8bbf-46d8757635c0)


![image](https://github.com/Unleash/unleash/assets/707867/55ecfa5e-afe1-4cb6-9aa4-7dd67db4248c)
2024-05-17 15:27:32 +02:00
Mateusz Kwasniewski
08e05141f3
chore: remove e2e tests for legacy env variants (#7071) 2024-05-17 10:55:22 +02:00
Mateusz Kwasniewski
88e3b1b79e
feat: deprecate feature toggle variants at environment level (#7058) 2024-05-16 10:57:32 +02:00
andreas-unleash
9fc01233c6
fix: disable the create button when api call is made (#7063)
Prevends duplicate calls to api

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-05-16 10:52:12 +03:00
andreas-unleash
28ca626bac
fix: loading is causing a glitch that changes the size of the dialog for a split second (#7062)
The loading state of the FormTemplate is causing the form glitch. This
fixes it by removing the loading

Closes #
[1-2362](https://linear.app/unleash/issue/1-2362/fix-visual-glitch-when-you-submit-the-form)


https://github.com/Unleash/unleash/assets/104830839/1782ca09-a8b4-4fd1-92c1-111843869b25

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-05-16 09:59:56 +03:00
David Leek
793cd76e93
feat: move SCIM config into separate tab (#7055)
Moves SCIM config back into separate tab


![image](https://github.com/Unleash/unleash/assets/707867/910f2128-08de-4460-a9e8-a606342669cd)
2024-05-16 08:01:32 +02:00
Mateusz Kwasniewski
701c845f09
feat: uncomplete tracking (#7053) 2024-05-14 15:04:31 +02:00
Mateusz Kwasniewski
668cb81384
fix: omit yes no from stale data comparison (#7052) 2024-05-14 12:42:39 +02:00
Mateusz Kwasniewski
b2b8d94617
feat: lifecycle column extracted (#7049) 2024-05-14 09:24:54 +02:00
Mateusz Kwasniewski
56f2dd658e
feat: track complete event (#7047) 2024-05-13 14:51:28 +02:00
Thomas Heartman
20c3ef30f3
fix: make name validation work properly. (#7042)
Instead of using the `required` attribute, we manually make it
required. This is indicated visually by red error text if the value is
empty (or whitespace only). To indicate to screen readers that it is
required, we add the `aria-required` attribute.

We didn't previously validate if the name
was whitespace only.

Also: if no envs are selected, indicate that all will be included

This prevents this form value from ever being invalid.
2024-05-13 14:43:49 +02:00
Mateusz Kwasniewski
dfc065500d
feat: kept and discarded read model (#7045) 2024-05-13 14:24:31 +02:00
Jaanus Sellin
4241e36819
fix: lifecycle improvements/fixes (#7044)
1. Now completed modal works from project view
2. Changed text for modal
3. Now variant selection will only appear if there are any variants
2024-05-13 13:41:36 +03:00
Thomas Heartman
fddb78380e
fix: make the project submission work from the project creation modal (#7040)
It seems the code that was copied was copied from before we changed
the validation logic, so it wouldn't submit. This fixes that to remove
any ID validation in the new form.
2024-05-13 10:49:05 +02:00
Thomas Heartman
40e4e355e3
Chore: visually hide labels in the create project form (#7015)
This PR visually hides the labels in the new create project form.
They're still rendered for screen readers, however.

It means it looks like this now:


![image](https://github.com/Unleash/unleash/assets/17786332/718772e7-4691-41d6-a70a-bbfc795d60ec)
2024-05-13 07:33:06 +02:00
Mateusz Kwasniewski
74b943721c
fix: center last seen column (#7035) 2024-05-10 14:52:24 +02:00
Mateusz Kwasniewski
56ae53a4da
feat: pre-live should include disabled prod (#7031) 2024-05-10 13:53:01 +02:00
Mateusz Kwasniewski
60a67d4775
fix: Adjust meta data icons (#7026) 2024-05-10 11:46:32 +02:00
andreas-unleash
9fbb041bfd
feat: create project dialog (#7012)
Adds a redirect to `/projects?create=true` to keep the `projects/create`
url still usable.
Loads the form in a modal

Closes
[1-2296](https://linear.app/unleash/issue/1-2296/project-creation-move-to-modal)

<img width="1537" alt="Screenshot 2024-05-09 at 14 06 50"
src="https://github.com/Unleash/unleash/assets/104830839/c108c7ee-5751-4380-9766-11368281a11a">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-05-10 11:01:49 +03:00
Jaanus Sellin
3f983d061a
feat: mark completed ui selector (#7025)
![image](https://github.com/Unleash/unleash/assets/964450/c6baa90b-5abb-4ba4-a3d9-36af6b426ed6)
2024-05-09 16:55:09 +03:00
Mateusz Kwasniewski
3fc7714e78
feat: Lifecycle in project overview (#7024) 2024-05-09 13:38:18 +02:00
Mateusz Kwasniewski
476959df8e
refactor: extract feature lifecycle component (#7023) 2024-05-09 12:19:24 +02:00
Jaanus Sellin
79739a1d7f
feat: add completed status backend (#7022)
1. Implemented controller, service, store for status saving
2024-05-09 12:05:19 +03:00
Jaanus Sellin
28a7797aea
feat: feature lifecycle completed schema (#7021)
1. Added new schema and tests
2. Controller also accepts the data
3. Also sending fake data from frontend currently

Next steps, implement service/store layer and frontend
2024-05-09 09:51:44 +03:00
Thomas Heartman
b043bcdd4a
feat: front end can create projects without ids (#7009)
This PR updates the new project creation form to not include the project
ID in the payload (because it's generated by the back end now).
2024-05-08 14:57:07 +02:00
Thomas Heartman
9f532834c8
chore: update orval schemas (#7010)
Main purpose is to get the new deprecated `id` property in the project
creation payload required for
https://github.com/Unleash/unleash/pull/7009 to pass.
2024-05-08 14:44:27 +02:00
Ivar Conradi Østhus
ea9a232acc
fix: removed dupliacted component (#7013) 2024-05-08 14:44:21 +02:00
Ivar Conradi Østhus
64c10f9eff
poc: many strategies pagination (#7011)
This fixes the case when a customer have thousands of strategies causing
the react UI to crash. We still consider it incorrect to use that amount
of strategies and this is more a workaround to help the customer out of
a crashing state.

We put it behind a flag called `manyStrategiesPagination` and plan to
only enable it for the customer in trouble.
2024-05-08 14:20:51 +02:00
Jaanus Sellin
81439d23f3
feat: lifecycle is now navigatable by tab (#7005)
![image](https://github.com/Unleash/unleash/assets/964450/ef5677e0-36c7-4cd6-a908-baa164190367)
2024-05-08 15:19:12 +03:00
Mateusz Kwasniewski
f6e85171d9
feat: completed stage lists all environments (#7007) 2024-05-08 14:16:10 +02:00
Mateusz Kwasniewski
f30910f628
fix: optimize table placeholder loading (#7002) 2024-05-08 09:40:37 +02:00
Thomas Heartman
6477ccf34b
test: test how the project form deals with project envs and cr env interaction (#6997)
This PR adds some tests around how project envs and change request envs
interact in the new project form. It tests that:
1. If you remove an env from the project setup, that env is also removed
from the change request list.
2. If you try to enable CRs for an env that isn't enabled, nothing
happens.
2024-05-08 07:26:49 +02:00
Mateusz Kwasniewski
843aab7447
fix: remove columns from the search api query (#6996) 2024-05-07 14:44:09 +02:00
Mateusz Kwasniewski
8ae78236d2
chore: remove project overview refactor flag (#6897) 2024-05-07 13:58:56 +02:00
Jaanus Sellin
b69c294272
feat: pass metrics to feature component (#6994)
![image](https://github.com/Unleash/unleash/assets/964450/39bb4551-dc03-4931-8a7f-cd9c0ceda056)
2024-05-07 11:52:38 +03:00
Mateusz Kwasniewski
a45be8d10c
test: move tests from cypress to rtl (#6987) 2024-05-07 09:03:40 +02:00
Thomas Heartman
913f81b40c
feat: show documentation relating to the specific thing your configuring in the new project form (#6993)
This PR updates the documentation text in the new project form to show
the documentation relating to the specific thing you're configuring.
2024-05-07 08:56:53 +02:00
Thomas Heartman
07871e73e5
feat: configure CRs when creating projects (#6979)
This PR adds the ability to configure CRs when creating a project.

The design is unfinished, and the code certainly needs cleanup, but I'd
like to get this into sandbox so we can look at it.

Things that still need to be done:

1. What do we do about this button when the user has no environments
selected? As a rough draft, I've disabled it. However, we should make it
possible to navigate to and give you an explanation why it was disabled,
e.g. "You have no project environments selected. Please select at least
one project environment.".
2. The form design is not done: the width should be constant and not
jumpy the way it is now. Also, the search field is too wide.
3. I've made the desicion that if you deselect a project env, we also
remove that env from your CR config it it's in there.
4. Potential improvement: if you enable and then disable CRs for an env,
we *could* probably store the data in between, so that if you set
required approvers 5 and then disabled it, it'd still be 5 when you
re-enabled it. That sounds like a good user experience. We should also
be able to extend that to adding/removing environments from project
envs.
2024-05-07 08:14:28 +02:00
Mateusz Kwasniewski
5c27e75014
test: move 2 table tests from cypress to rtl (#6984) 2024-05-06 15:00:53 +02:00
Mateusz Kwasniewski
d01100fbf0
test: move import test from cypress to RTL to make it less flaky (#6982) 2024-05-06 14:40:47 +02:00
Jaanus Sellin
d698eccb4a
fix: badge should render children 0 value (#6981)
When passing 0 in as child, the 0 was not rendred. Fixed the badge
component and added tests.


![image](https://github.com/Unleash/unleash/assets/964450/d681b70c-5d55-4818-86ea-7d05fa86c7b3)
2024-05-06 13:24:52 +03:00
Jaanus Sellin
233b882c7b
feat: merge feature toggle details with feature meta info box (#6977)
![image](https://github.com/Unleash/unleash/assets/964450/5286eb36-311d-42f9-90da-832724cc41d0)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: andreas-unleash <andreas@getunleash.ai>
2024-05-06 12:17:54 +03:00
Thomas Heartman
bd0cd018c9
support setting mode and stickiness in new project form (#6972)
This PR is a combination of two PRs:

This PR adds a functioning environment selection button to the new project creation form. Selected environments are added to the payload and to the API preview.

The implementation is mostly lifted from the existing FilterItem component we have for search filters. However, our need here is less complex, so I've removed some of the things we don't need. There is still more cleanup to be done, however, but I'd like to implement the rest of the submenus first, to see what we really do need in the end.

---

This PR adds support for stickiness and project mode in the new project
creation form.

Achieve this, it does a few things:

1. Moves `resolveStickinessOptions` from
`frontend/src/component/feature/StrategyTypes/FlexibleStrategy/StickinessSelect/StickinessSelect.tsx`
and into a separate hook. This component was used by the old project
creation form. Because the new form has a different input, but needs the
same option, moved that code into a reusable hook.
2. It adds functioning buttons for project stickiness and mode.
3. It adds labels to the search inputs for the dropdowns. Inputs *must*
have labels to meet a11y requirements. However, the designs don't have
labels, so we can hide them visually. Though that leads to another issue
(refer to the screen shot below).
4. It updates the `SelectionButton` component to handle both single- and
multiselect cases. It instead exports these two subcomponents. These are
currently in one file, but I'll split them out into their separate files
in a later PR.

As a side effect of working with the selection buttons, it also improves
how we handle keyboard interaction for these buttons.

Here's what it looks like for single-select lists. Notice the missing
part of the input's border around the top (where the label *would* be if
we showed it). We should figure out how best to handle it. I've done
like this for now, but we can sort it out later.


![image](https://github.com/Unleash/unleash/assets/17786332/5af979c2-6635-481e-8d3e-5aad1c0ab46f)
2024-05-03 07:27:13 +02:00
Thomas Heartman
44e86fc068
chore: fix failing test; don't rely on a single item only (#6974)
This test is breaking right now because it tests a date picker, week 21
is approaching, and `findByText` only expects a single element. Checking
that we have *at least* one element fixes that breakage and I don't
think it should cause any issues.

Of course, that means that right now, this test would also pass even if
the expected button wasn't there, but it would stop passing in about
four weeks time.
2024-05-02 15:03:49 +02:00
Tymoteusz Czech
0bacd60caf
refactor: badge icon spacing (#6962)
Simplified after previous modifications
2024-04-30 14:14:04 +02:00
Thomas Heartman
4fea198d6c
chore: add project icon to new form (#6965)
Imports and uses the same project icon used on the project cards. Also
aligns the header better and makes the text lighter.


![image](https://github.com/Unleash/unleash/assets/17786332/bf5082b0-1f00-45bb-a639-864963b6fe77)
2024-04-30 13:18:27 +02:00
Thomas Heartman
cdbe26330e
feat: enable project creation through new form (#6961)
This PR allows very simple project creation. You can add a name and
description. The ID is generated for you at the moment (we'll fix this
later). Nothing else works, but the project is created successfully.
2024-04-30 13:00:58 +02:00
Thomas Heartman
f77f8a71f8
rough layout of the new form (#6960)
This PR adds a very rough first implementation of the look of the new
project form. *It is not final and does not work yet*.

The important part here is that the layout is roughly right (we'll
adjust spacing etc later) and that we've got all the basic elements
present.

I'll hook it up to actually work in an upcoming PR. 


![image](https://github.com/Unleash/unleash/assets/17786332/b941702f-ec1b-4d16-9628-ba560b0919f2)

The missing icon, text alignment, etc, will also be solved later.
2024-04-30 08:09:07 +02:00
Thomas Heartman
a66b3c65c1
chore: add flag for the new project creation form layout (#6959)
Add a flag to enable/disable the new UI for project creation.
This flag is separate from the impl on the back end so that we can
enable one without the other (but uses flag dependencies in Unleash, so
that we can never enable the new UI without the new back end).

I have not set the flag to `true` in server startup because the form
doesn't work yet, so it's a manual step for now.
2024-04-29 13:52:56 +02:00
David Leek
c048156e19
fix: disable SCIM for OIDC, nothing to test it on (#6937)
disable SCIM for OIDC, nothing to test it on
Also checks scim enabled before saving
2024-04-29 13:14:39 +02:00
Tymoteusz Czech
b6865a5a9d
feat: Project owners UI (#6949)
---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-04-29 11:51:44 +02:00
Ivar Conradi Østhus
3978c690e0
fix: Data usage metrics chart included per day annotion (#6941)
Added a small annotation to the chart on how much data is included in
the pro plan on average per day to make it easier to spot when a
customer average above the included threshold.


![image](https://github.com/Unleash/unleash/assets/158948/c3105f87-03e0-4b27-9e3f-53c749c78078)
2024-04-29 10:35:01 +02:00
David Leek
0ac9624caf
fix: fix UI issues with SCIM new token button (#6948)
Makes the regenerate token button in SCIM settings behave like the rest
of the grid (remove margin left, add margin bottom)


![image](https://github.com/Unleash/unleash/assets/707867/ff3ac26e-87b3-4862-aebd-cdba0011ddad)
2024-04-26 14:31:53 +02:00
Jaanus Sellin
9f6badf5df
feat: add ui test for mark completed button (#6953)
Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2024-04-26 14:31:20 +02:00
Tymoteusz Czech
514a18bf93
Update OpenAPI generated types for frontend (#6950) 2024-04-26 13:31:15 +02:00
Jaanus Sellin
7022ce8afb
feat: rever to live connected to backend (#6951)
![Screenshot from 2024-04-26
13-30-48](https://github.com/Unleash/unleash/assets/964450/03c57c62-bf51-440b-935d-46da729e3157)
![Screenshot from 2024-04-26
13-15-45](https://github.com/Unleash/unleash/assets/964450/c5ac44be-39dc-4b6c-97ec-5fc56b0cc111)
2024-04-26 13:43:38 +03:00
Jaanus Sellin
7d01dbb748
feat: feature completed connected to backend (#6947)
Connects feature complete to backend
2024-04-26 12:20:34 +03:00
Mateusz Kwasniewski
675e1a9f8b
feat: archive feature from lifecycle (#6938) 2024-04-26 09:29:07 +02:00
David Leek
d1bb65bebd
feat: scim assume control UI - move scim into sso configs (#6929)
- Adds support for the configuration option for SCIM taking over control
of users and groups
- Moves SCIM settings into SSO config pages (OIDC and SAML). SCIM
registers a callback to be invoked when saving in a parent SSO config
page
2024-04-25 15:39:56 +02:00
Mateusz Kwasniewski
19055b1e33
test: lifecycle tooltip (#6932) 2024-04-25 15:22:59 +02:00
Mateusz Kwasniewski
0eaf725e82
feat: lifecycle stage dates (#6926) 2024-04-25 13:30:00 +02:00
Mateusz Kwasniewski
44521c1c74
chore: remove variant dependencies flag (#6896) 2024-04-25 11:07:16 +02:00
Mateusz Kwasniewski
e6355f4676
feat: connect feature lifecycle to real API (#6921) 2024-04-25 09:18:05 +02:00
Ivar Conradi Østhus
1b2f983974
fix: improve traffic messaging summary (#6922)
Minor tweaks to traffic messaging summary.
2024-04-24 15:59:18 +02:00
Jaanus Sellin
143327844d
chore: clean up feedback component (#6918)
Removing the time based feedback
2024-04-24 14:22:18 +03:00
Mateusz Kwasniewski
9c883ca37d
feat: Completed stage UI (#6917) 2024-04-24 11:00:21 +02:00
Mateusz Kwasniewski
e91d471d17
feat: completed stage button (#6914) 2024-04-24 10:30:50 +02:00
Mateusz Kwasniewski
f63bae21f5
feat: live and pre-live stages UI (#6913) 2024-04-24 08:29:52 +02:00
Mateusz Kwasniewski
bf3366434c
feat: improve feature overview styling (#6910) 2024-04-23 15:08:59 +02:00
Mateusz Kwasniewski
18d317f1ff
feat: pass lifecycle stage to tooltip (#6904) 2024-04-23 11:19:24 +02:00
Mateusz Kwasniewski
d59f1adfe5
feat: Stage timeline styling (#6903) 2024-04-23 10:15:01 +02:00
Mateusz Kwasniewski
131e9dd6d6
feat: initial sketch for the lifecycle tooltip (#6899) 2024-04-23 08:56:18 +02:00
00Chaotic
13aa58e0e9
feat: allow admin login using demo auth (#6808)
This PR introduces a configuration option (`authentication.demoAllowAdminLogin`) that allows you to log in as admin when using demo authentication. To do this, use the username `admin`. 

## About the changes
The `admin` user currently cannot be accessed in `demo` authentication
mode, as the auth mode requires only an email to log in, and the admin
user is not created with an email. This change allows for logging in as
the admin user only if an `AUTH_DEMO_ALLOW_ADMIN_LOGIN` is set to `true`
(or the corresponding `authDemoAllowAdminLogin` config is enabled).

<!-- Does it close an issue? Multiple? -->
Closes #6398 

### Important files

[demo-authentication.ts](https://github.com/Unleash/unleash/compare/main...00Chaotic:unleash:feat/allow_admin_login_using_demo_auth?expand=1#diff-c166f00f0a8ca4425236b3bcba40a8a3bd07a98d067495a0a092eec26866c9f1R25)


## Discussion points
Can continue discussion of [this
comment](https://github.com/Unleash/unleash/pull/6447#issuecomment-2042405647)
in this PR.

---------

Co-authored-by: Thomas Heartman <thomasheartman+github@gmail.com>
2024-04-23 08:39:33 +02:00
Thomas Heartman
b6833d92aa
feat: split projects view into "my projects" and "other projects" (#6886)
This PR removes the previous "my projects" filter in favor always
splitting projects, but showing both on the main screen.

To make it a bit easier to work with, it also moves the project group
component into its own file, causing some extra lines of code change. My
apologies 🙇🏼
2024-04-22 13:16:53 +02:00
David Leek
2cb9ceaa72
feat: add selected month summary card for data usage (#6891)
## About the changes

Adds a summary card that sums up data usage for selected month, and for
Pro shows monthly quota and badge color according to monthly quota
2024-04-19 09:33:19 +02:00
Simon Hornby
6b5cdc2d24
fix: archive toggle no longer respects change request (#6882) 2024-04-18 13:10:22 +02:00
Tymoteusz Czech
fd4bcfffa5
Feat: new projects list (#6873)
New card view for list of projects.

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-04-18 11:20:01 +02:00
Jaanus Sellin
0572d37181
feat: restyle the project meta box (#6880)
Old:


![image](https://github.com/Unleash/unleash/assets/964450/14b1b2d4-ab54-4027-902c-f1a3028e7ab4)


New:


![image](https://github.com/Unleash/unleash/assets/964450/8eb07085-e253-4fb4-acf0-2ace2cc4ad2f)
2024-04-18 11:55:15 +03:00
Jaanus Sellin
f0ef7a6f31
feat: feature lifecycle getter hook (#6876) 2024-04-18 09:02:03 +03:00
Nuno Góis
bc0704581b
chore: UI SCIM guard for groups (#6866)
https://linear.app/unleash/issue/2-2113/ui-should-not-allow-manual-management-of-scim-managed-groups-in

Adds a UI SCIM guard when trying to manage groups.

The condition for the guard is:

 - Enterprise
 - SCIM flag enabled
 - SCIM setting enabled
 - SCIM group

Similar to https://github.com/Unleash/unleash/pull/6859
2024-04-17 08:27:56 +01:00
Jaanus Sellin
30ea2d91bd
chore: generate orval types (#6871) 2024-04-16 21:07:37 +03:00
Thomas Heartman
ef23cc0cc1
chore: add flag for improved project creation (#6870)
This PR adds the flag for the improved project creation flag to Unleash.
2024-04-16 14:57:52 +02:00
Nuno Góis
279d3431eb
chore: UI SCIM guard for users (#6859)
https://linear.app/unleash/issue/2-2092/ui-should-not-allow-manual-management-of-scim-managed-users-in-unleash

Adds a UI SCIM guard when trying to manage users.

The condition for the guard is:
 - Enterprise
 - SCIM flag enabled
 - SCIM setting enabled
 - SCIM user


![image](https://github.com/Unleash/unleash/assets/14320932/8a5451f1-0d6e-48ba-b090-bb5832c0e9ec)
2024-04-15 14:04:41 +01:00
Thomas Heartman
3d60c2acd0
feat: allow you to filter for "my projects" (#6855)
This change adds filtering functionality to the project list filter
buttons.

In this case, "my projects" is defined as any project that is marked as
a favorite OR (inclusive or) that you are a part of, as defined by your
user profile.
2024-04-15 11:17:53 +00:00
Jaanus Sellin
9aee1a7c42
feat: change time based feedback to button (#6837)
![image](https://github.com/Unleash/unleash/assets/964450/34070916-880d-41b6-809a-4046e3a1312f)
2024-04-15 12:44:35 +03:00
Tymoteusz Czech
e10ad7257f
Fix: insights loading (#6834)
Loading state for
- charts (placeholder data, animation)
- user stats - loading skeleton animation
- empty flags stats
- kept other "stat" widgets as-is, usually not visible
2024-04-15 09:46:56 +02:00
andreas-unleash
04e4201021
fix: insights menu point alignment (#6847)
What is says on the tin

Closes
[1-2288](https://linear.app/unleash/issue/1-2288/misalignment-insights-beta-menu-item)

<img width="1429" alt="Screenshot 2024-04-12 at 14 42 28"
src="https://github.com/Unleash/unleash/assets/104830839/6b428e6f-e3b7-42e5-aa6b-c807338f5231">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-12 15:23:09 +03:00
andreas-unleash
34e917f0ee
fix: Insights placement in drawer nav (#6846)
Moves the Insights nav menu item down to match desktop ordering

Closes #
[1-2290](https://linear.app/unleash/issue/1-2290/mobile-menu-insights-pops-up-as-the-first-item)
<img width="951" alt="Screenshot 2024-04-12 at 13 12 25"
src="https://github.com/Unleash/unleash/assets/104830839/c4222912-2fb9-4d01-8c82-e3288738f52c">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-12 14:22:53 +03:00
Thomas Heartman
945e086f81
feat: add "my projects" filter to projects list (#6831)
This PR adds the buttons (only UI, no functionality) to show either "all
projects" or "my projects".

The buttons use a styled button group and are hidden behind the new
`projectListFilterMyProjects` flag.

The button placement breaks with the previously established page header
pattern of having all actions moved to the right. To accommodate this
new placement, I created a new flex container in the header called
`leftActions`, which is essentially just a mirror of the normal actions.
I went with `leftActions` instead of `inlineStartActions` or something
similar because I think it's clearer, and I don't see us adapting
Unleash for different writing directions right now. We can always change
it later.

I have also slightly increased the end margin of the page header to
accommodate the new designs and to adjust the spacing before the
buttons. I adjusted the margin of the text instead of the padding of the
left actions because this will keep the spacing to the page header the
same on every page. Without it, we could end up in situations where the
spacing changes from page to page based on whether it has left actions
or not, which is probably undesirable.


![image](https://github.com/Unleash/unleash/assets/17786332/7d6ba98c-a34b-45d4-85f4-2b1c2f3dc0c8)


## Still to do:

### Hover colors

~~Find out what the right hover color variable is. I'm using the light
mode hover color for now, which works well in both light and dark modes
(looks nice and is AAccessible), but it's not the same as the hover
color for other buttons in dark mode.~~

Fixed ☝🏼 

### Small windows

Also worth noting: at around 500px, the layout shift starts to cause
problems and we end up with overlapping elements. How do we want to deal
with narrower screens? Today, the UI is pretty functional until we reach
about 250px. It would be nice to not increase that size.

The new version breaking at about 500px:

![image](https://github.com/Unleash/unleash/assets/17786332/bf4f70d7-13b7-410a-9de4-30f4873a2ab8)

The old version breaking at about 250px:

![image](https://github.com/Unleash/unleash/assets/17786332/2d4e1e9c-8442-471c-91e4-67c024736234)

### Margins

We also need to figure out how much space we want on smaller windows:


![image](https://github.com/Unleash/unleash/assets/17786332/b12804b1-a2db-4547-88d5-0d9d49221fe2)
2024-04-12 12:35:47 +02:00
Thomas Heartman
6f79688e2c
feat: display removed context props in the UI (#6844)
This PR shows context warnings in the UI if they exist.

That means that if you provide invalid properties on the top level,
you'll get the result back, but we'll also tell you that we didn't take
these properties into account.

Screenie:


![image](https://github.com/Unleash/unleash/assets/17786332/06c31b15-a52f-4a22-a1ac-4f326cc34173)
2024-04-12 12:35:33 +02:00
Nuno Góis
31bf7825c0
chore: SCIM guard for groups (#6845)
https://linear.app/unleash/issue/2-2111/api-should-not-allow-manual-management-of-scim-managed-groups-in

Introduces a SCIM guard for SCIM groups. SCIM groups should be managed
exclusively by the SCIM client, not Unleash.

We decided to be restrictive for now, completely covering all of the
write methods, but may fine-tune some of this at a later stage.

Will eventually be followed up by a UI-centric PR.
2024-04-12 10:01:57 +01:00
Thomas Heartman
442327eb07
fix: don't add project flag table state config to browser history (#6824)
This change specifies the update type as `replace` for the
`useQueryParams` hook used to set table state.

Primarily, this prevents the column selection from being added to the
browser
history and more importantly prevents you from changing your config by
navigating through browser history.

However, this also affects other table state, such as changing sorting
order etc. These will also no longer be added to the browser history.

---

Bug description:

In the project flag table, you can select which env columns to show.
However, adding and removing these envs get added as steps in your
browser history. This means that if you add 3 envs, you:

1. have to go back three times to get back to the previous page
2. In doing so, you also inadvertently revert the choices you mean,
which can be confusing.

Steps to reproduce:

1. Navigate to the project screen
2. Use the column selector to add/remove projects. Notice that the URL
changes for each selection you make.
3. After making one or more changes, use the browser's
back-functionality. Notice that you stay on the same page but that the
selected envs (and the URL) change.
2024-04-12 10:58:17 +02:00
Thomas Heartman
7e91cbe1c4
chore: update orval (#6842)
Includes updates for:
- playground
- parent variant 
- scim
- fetaure lifecycle
2024-04-12 10:32:23 +02:00
Nuno Góis
f4ef06f69b
chore: SCIM guard for users (#6836)
https://linear.app/unleash/issue/2-2093/api-should-not-allow-manual-management-of-scim-managed-users-in

Introduces a SCIM guard for SCIM users. SCIM users should be managed
exclusively by the SCIM client, not Unleash.

We decided to be restrictive for now, completely covering all of the
write methods, but may fine-tune some of this at a later stage.

Will eventually be followed up by a UI-centric PR.
2024-04-12 08:23:35 +01:00
David Leek
88b5bfcb29
chore(ui): add a separate feature flag for traffic visibility UI (#6832)
## About the changes

Adds a separate feature flag for the traffic data usage UI
2024-04-11 10:37:53 +02:00
Fredrik Strand Oseberg
a979ad802a
fix: replace true on important create screens (#6822)
This adds replace: true to navigate on the create feature toggle screen
and create project screen. This will make it so you don't go back to the
form after you have created the resource, replacing the entry in the
history with the new url. We can do this in more places, but some of
them require a bit more thought. For example when creating a user, you
navigate from the admin screen to the user page, and then back to the
same screen. Adding `{ replace: true }` in this context makes it so that
when you press back you end up on the same screen, because it's recorded
twice in history.

Another discussion point: 
* Would you expect the edit screens to also replace the history?
2024-04-11 09:20:33 +02:00
Thomas Heartman
c9beb864cd
fix: show all envs in project tables unless you've explicitly hidden some (#6812)
This PR changes the behavior of the project tables' environment columns
based on input from customers.

Up until now, you have been shown either the first project or the first
three projects in the list of the project's environment. The decision on
whether to show one or three is based on screen size. The breakpoint
appears to be about 1280px. Above that you get three, below it you get
one.

With this PR, we'll show you *all* environments by default, regardless
of screen size. However, that's just for the default values. If you
manually change column visibility, those changes will of course be
respected.

I've used a new package, `css-mediaquery`, to test that all screen sizes
show all envs.
2024-04-10 15:07:55 +02:00
Thomas Heartman
1a05bdad2e
chore: add flag for project list filter updates (#6825)
This PR adds the flag for the project list filter feature we're working
on at the moment.
2024-04-10 14:40:50 +02:00
andreas-unleash
e4ece8bcaa
feat: ttp stat should show No data when exactly 0 (#6823)
Currently the TimeToProduction stat shows `Fast` for ttp = 0 which is
wrong. Absolute 0 will only happen when there are no data.

Closes
[1-2281](https://linear.app/unleash/issue/1-2281/timetoproduction-stat-should-not-say-fast-when-value-is-0)

Before: 
 
<img width="321" alt="Screenshot 2024-04-10 at 14 25 48"
src="https://github.com/Unleash/unleash/assets/104830839/f6d3c7af-1674-41c4-b187-ee3bf8df05ba">

After:
<img width="360" alt="Screenshot 2024-04-10 at 14 25 38"
src="https://github.com/Unleash/unleash/assets/104830839/631ffbe5-475c-4c48-8790-47716e04887b">

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-10 14:47:22 +03:00
andreas-unleash
68a1ba3dec
feat: fill metrics summary missing datapoints with 0 (#6820)
Fills missing datapoints with 0s so that all metrics chart lines have
data for all datapoints.

Closes #
[1-2278](https://linear.app/unleash/issue/1-2278/fill-the-metrics-data-with-0s-when-not-enough-data-to-fill-the-chart)


Before: 
<img width="1547" alt="Screenshot 2024-04-10 at 12 48 22"
src="https://github.com/Unleash/unleash/assets/104830839/35885852-d986-4760-84e2-9e8ef61bedf0">
<img width="1550" alt="Screenshot 2024-04-10 at 12 48 44"
src="https://github.com/Unleash/unleash/assets/104830839/3385b8eb-08e2-4cc9-86b2-7b31b9fe81ef">

After:
<img width="1582" alt="Screenshot 2024-04-10 at 13 43 10"
src="https://github.com/Unleash/unleash/assets/104830839/d3713df3-869b-48ba-b2ab-095027b37506">
<img width="1545" alt="Screenshot 2024-04-10 at 13 42 49"
src="https://github.com/Unleash/unleash/assets/104830839/44a6e662-2e9f-4fe8-8299-c15ab8f8e261">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-10 14:38:45 +03:00
Fredrik Strand Oseberg
7f1c46a576
fix: show loading features only when loading is happening (#6817)
Previously, the dummy data would persist when there is no data coming
from the API. This causes us to display dummy data in the dora metrics
table which is not correct. This PR fixes that by only showing the
loading features when we are actually loading.
2024-04-10 12:43:22 +02:00
Thomas Heartman
70eb463443
chore: fix duplicate use of placeholder name (#6814)
Instead of using two placeholders both called "production", we rename
one of them to "development"
2024-04-10 12:36:09 +02:00
andreas-unleash
00d3490764
fix: Project select should not expand when selecting multiple projects (#6811)
Currently when you are selecting multiple projects, the autocomplete
expands indefinitely when focused.

This fixes that behaviour by limiting the project select to 1 visible
tag (even when focused) for Insights and 3 tags for Playground (same as
it was)

Closes
[1-2276](https://linear.app/unleash/issue/1-2276/limit-the-project-select-height-or-expand-its-length)



https://github.com/Unleash/unleash/assets/104830839/bf42a06e-8d30-49df-ac5b-a4a4f2685fa9

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-10 12:34:11 +03:00
andreas-unleash
fb9855c3fa
fix: Do not show the MetricsChartTooltip InfoSummary when all projects (#6810)
What it says on the tin

Closes #
[](https://linear.app/unleash/issue/1-2275/hide-bottom-part-of-metrics-tooltip-when-all-projects)
<img width="1677" alt="Screenshot 2024-04-09 at 16 57 13"
src="https://github.com/Unleash/unleash/assets/104830839/2369c6f4-a136-4635-b77b-63aa0087338e">
<img width="1678" alt="Screenshot 2024-04-09 at 16 55 53"
src="https://github.com/Unleash/unleash/assets/104830839/b29ec13d-5611-40a2-8dc6-af4c5a4ec97a">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-09 17:48:04 +03:00
Nuno Góis
032419aa76
chore: SCIM settings UI (#6800)
https://linear.app/unleash/issue/2-1981/ui-allow-users-to-set-up-scim

Adds UI for Provisioning (SCIM) settings.


![image](https://github.com/Unleash/unleash/assets/14320932/e24cf4dd-09d5-459d-bf8a-dd75a966d8eb)


![image](https://github.com/Unleash/unleash/assets/14320932/090a8279-1e98-4d4a-8e21-98cf311f1721)


![image](https://github.com/Unleash/unleash/assets/14320932/aca67619-6748-4848-8f1f-4de1deb90860)
2024-04-09 15:26:35 +01:00
andreas-unleash
48b8df8f4e
fix: Health tooltip when all projects should show % (#6809)
What it says on the tin

Closes #
[1-2274](https://linear.app/unleash/issue/1-2274/health-tooltip-when-all-projects-should-show-percent-values)
<img width="945" alt="Screenshot 2024-04-09 at 16 09 34"
src="https://github.com/Unleash/unleash/assets/104830839/5c8fc8d3-bee6-4bf2-976d-de6f3e3013ca">

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-09 16:20:32 +03:00
Tymoteusz Czech
2b3516dff1
refactor(insights): remove unused chart property (#6806) 2024-04-09 12:11:53 +02:00
Tymoteusz Czech
30336819f2
fix(insights): axis rendering after placeholder (#6805)
Chart options should change when it stops displaying a placeholder/cover. Without this we had axis missing on some renders.
2024-04-09 12:28:56 +03:00
andreas-unleash
2e0ca3150a
fix: fill the datasets with 0s when not enough data points (#6793)
Fills datasets that do not have all the datapoints with 0 so that every
line in the graph starts at the beginning and ends at the end of graph.

Closes #
[1-2256](https://linear.app/unleash/issue/1-2256/fill-the-data-with-0s-so-that-all-x-axis-labels-have-values)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2024-04-09 12:24:50 +03:00
andreas-unleash
60262e5d0b
fix: total flags and flags per user when all projects (#6787)
Fixes the flag stats flagsPerUser calculation and display value. 
Previously the calculation depended on project data which might not be
there with the permission changes

Closes #
[1-2255](https://linear.app/unleash/issue/1-2255/unable-to-render-total-number-of-flags-when-there-are-no-project-data)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-09 10:52:09 +03:00
andreas-unleash
e7a9f31eb4
fix: NotEnoughData hiding the header (#6798)
Before: 
<img width="884" alt="Screenshot 2024-04-08 at 15 52 41"
src="https://github.com/Unleash/unleash/assets/104830839/3784a1db-83a8-4414-bda8-3eed698476a2">


After:
<img width="879" alt="Screenshot 2024-04-08 at 16 04 54"
src="https://github.com/Unleash/unleash/assets/104830839/117dec8e-6419-448d-89b7-9f6640e59500">

Closes #
[1-2267](https://linear.app/unleash/issue/1-2267/fix-zindex-of-notenoughdata-component)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-09 10:29:23 +03:00
andreas-unleash
1d6634d5ae
fix: dark mode background (#6803)
Fixes a bug where the background of Legal values was white for dark mode


<img width="758" alt="Screenshot 2024-04-09 at 10 10 16"
src="https://github.com/Unleash/unleash/assets/104830839/6936be0f-fc60-49a3-b414-dbb32012f8be">

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-09 10:14:17 +03:00
andreas-unleash
130bc20683
Fix: time to production showing NaN when no data (#6799)
Before: 

<img width="1398" alt="Screenshot 2024-04-08 at 16 20 48"
src="https://github.com/Unleash/unleash/assets/104830839/892860f8-80de-4750-bad2-0e17ac221f1f">


After: 

<img width="1243" alt="Screenshot 2024-04-08 at 16 45 47"
src="https://github.com/Unleash/unleash/assets/104830839/3247c90a-f92f-4d4f-b407-275549b308bf">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-09 09:27:47 +03:00
Mateusz Kwasniewski
efda70ac5d
feat: feature lifecycle usage behind a flag (#6786) 2024-04-05 13:42:03 +02:00
David Leek
f29ecaf3c0
fix: strategy targeting numeric also check value field (#6774)
API returns both value and values fields. Empty values array causes ui
to think constraint doesnt have a value

This PR checks if value field exists and is empty before returning check
on values and length
2024-04-04 11:48:51 +02:00
andreas-unleash
d466f608c2
chore: convert newContextFieldUI to kill switch (#6752)
Converts `newContextFieldUI` release flag to
`disableShowContextFieldSelectionValues` kill switch.

The kill switch controls whether we show the value selection above the
search filed when > 100 values

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-03 15:02:05 +02:00
Mateusz Kwasniewski
501acd080a
chore: project overview refactor feedback behind a flag (#6772) 2024-04-03 13:55:12 +02:00
Jaanus Sellin
a664a449ef
chore: remove strategy form feedback (#6769) 2024-04-03 12:16:58 +02:00
Mateusz Kwasniewski
e0ea257f07
fix: tabs alignment (#6768) 2024-04-03 12:15:36 +02:00
andreas-unleash
717e541003
fix: make TTP stat show last week calculation (#6766)
Currently the median time to production stat is showing the aggregated
median across all dates.

This pr changes the calculation to only use the last week summary like
the rest of the stat widgets.
<img width="1665" alt="Screenshot 2024-04-03 at 11 25 31"
src="https://github.com/Unleash/unleash/assets/104830839/c6869b48-99bd-4f5b-a25e-7e0e3a2dc9ef">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-03 11:58:10 +03:00
Mateusz Kwasniewski
2cbb45de85
fix: loading state (#6765) 2024-04-03 10:20:04 +02:00
Mateusz Kwasniewski
d5b73694fa
test: manage variant dependency UI (#6756) 2024-04-02 13:52:47 +02:00
andreas-unleash
e7970186d0
Chore: semver constraint context fields improvements (#6730)
Increases the label width to make the whole box selectable
Adds a small gap to match the style

Closes #
[1-2233](https://linear.app/unleash/issue/1-2233/semver-constraint)


before:
![Screenshot 2024-03-28 at 14 19
39](https://github.com/Unleash/unleash/assets/104830839/bb4a0db7-4054-4c77-aa7f-5dabaff95b94)


after:
![Screenshot 2024-03-28 at 14 19
16](https://github.com/Unleash/unleash/assets/104830839/0dd6e56e-80c7-4771-ba84-93ad68484c8e)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-04-02 09:35:11 +03:00
Mateusz Kwasniewski
7f043c7cab
feat: variant dependencies ui (#6739) 2024-03-29 19:28:49 +01:00
andreas-unleash
c868b5a868
Feat: context field search and filter improvements (#6732)
Adds highlighting to search values 
Search also looks in `description`

behind a flag - it could possibly degrade performance when too many
items. Tested with 200 and it's ok but anything above might degrade:
Adds a Select/Unselect all button
Shows the selected values above the search 

Closes #
[1-2232](https://linear.app/unleash/issue/1-2232/context-field-ui-filter-and-search)



https://github.com/Unleash/unleash/assets/104830839/ba2fe56f-c5db-4ce7-bc3c-1e7988682984

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-29 15:44:34 +02:00
Mateusz Kwasniewski
664ceaea09
feat: disabled feature dependency (#6731) 2024-03-28 16:02:25 +01:00
andreas-unleash
81aff26394
Chore: constraint context field legal values improvement (#6729)
Improves how we show context field legal values in the new strategy
configuration.

Refactored makeStyles to styled components 

Closes #
[1-2235](https://linear.app/unleash/issue/1-2235/context-field-ui-in-strategy-configuration)

Before: 

![Screenshot 2024-03-28 at 12 19
12](https://github.com/Unleash/unleash/assets/104830839/43c62cf4-f344-476f-9ef6-75e388fab000)

After:

![Screenshot 2024-03-28 at 13 03
46](https://github.com/Unleash/unleash/assets/104830839/16dd03e0-bc67-402b-ba54-56fa1af136a5)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-28 14:15:14 +02:00
andreas-unleash
5b325568d1
Chore: context fields UI improvements when creating context field (#6714)
Styling adjustments based on
https://linear.app/unleash/issue/UNL-371/ui-improvement-createedit-context-field

- Remove maxWidth from container
- In ul - add maxHeight, padding and border and hide when :empty

Closes #
[UNL-371](https://linear.app/unleash/issue/UNL-371/ui-improvement-createedit-context-field)

Before: 
![Screenshot 2024-03-28 at 11 46
12](https://github.com/Unleash/unleash/assets/104830839/8150fb96-0a5a-4fd8-988a-82a42da51faf)

After:
![Screenshot 2024-03-28 at 11 47
03](https://github.com/Unleash/unleash/assets/104830839/186b806c-4557-42a8-b119-22d1b781cc57)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-28 13:07:04 +02:00
Mateusz Kwasniewski
99935fec94
feat: keep parent selection in edit dependency dialogue (#6727) 2024-03-28 11:15:26 +01:00
Mateusz Kwasniewski
089bc4851e
fix: remove duplicate banner (#6726) 2024-03-28 10:17:57 +01:00
gitar-bot[bot]
4932ae0539
[Gitar] Cleaning up stale feature flag: increaseUnleashWidth with value true (#6724)
Co-authored-by: Gitar Bot <noreply@gitar.co>
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-03-28 11:04:00 +02:00
Mateusz Kwasniewski
c12cb42885
fix: move outdated sdks check up (#6725) 2024-03-28 10:00:23 +01:00