1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
Commit Graph

12468 Commits

Author SHA1 Message Date
Nuno Góis
401425e35c
chore: event timeline help icon (#8345)
https://linear.app/unleash/issue/2-2717/help-icon-in-the-event-timeline-component

Adds an help icon to the event timeline.

<img width="108" alt="image"
src="https://github.com/user-attachments/assets/261fd14a-4d33-4bae-ae2e-92d1dc47db6b">

<img width="332" alt="image"
src="https://github.com/user-attachments/assets/85c827d1-39e9-47ef-9602-7f2ea207e5ea">
2024-10-03 08:45:24 +01:00
Thomas Heartman
35a73a5b8e
fix: add grid w/container query for projects (#8344)
The main goals of this are:

1. Make it so that the layout grid doesn't break on small screens
2. Fix an issue where the border of the box didn't fit the outline
3. (Bonus): make the layout of the info box depend on the **box's**
size, not the screen size.

To achieve those goals, this PR:
1. Switches to using a native CSS grid instead of MUI's grid component.
This gives us more power over the layout in various different sizes.
2. Switches from putting borders on the boxes inside the grid, instead
makes the grid container the color of the border and uses gaps to create
borders.
3. If your browser supports it, it will use container queries to
determine whether we should display the layout as a multi-column grid or
in a single column.


Container query demo (both with the same screen sizes):

Sidebar closed: 

![image](https://github.com/user-attachments/assets/9a7d9a78-de92-4429-bf06-8e98fbf40ed0)

Sidebar open:

![image](https://github.com/user-attachments/assets/90e790ba-13db-485c-8f5e-ee60fe36dabb)
2024-10-03 07:02:12 +00:00
David Leek
9b1d9f57d3
chore: timeline plausible tracking (#8338) 2024-10-03 07:58:58 +02:00
Mateusz Kwasniewski
c1dde7691b
test: personal dashboard (#8343) 2024-10-02 18:30:04 +02:00
Nuno Góis
836adf52a1
chore: event timeline signals tip (#8342)
https://linear.app/unleash/issue/2-2723/add-signals-tip

Adds a tip to the event timeline regarding the usage of signals.

The conditions for it to show up are the following:
- `!signalsSuggestionSeen` - The current user has not closed the tip yet
- `isEnterprise()` - The Unleash instance is an Enterprise instance
(signals are currently Enterprise-only)
- `isAdmin` - The current user is an admin (signals are currently
admin-only)
 - `signalsEnabled` - The signals feature flag is currently enabled
- `!loading` - Signal endpoints have not finished loading (prevents
flickering)
- `signalEndpoints.length === 0` - The Unleash instance currently has
zero configured signal endpoints (signals feature is not being used)


![image](https://github.com/user-attachments/assets/8dd73e62-a341-4d12-97b1-4e011f7891c3)
2024-10-02 14:47:07 +01:00
Jaanus Sellin
9a64dfbfbe
feat: add logging for lifecycle prom metrics (#8341) 2024-10-02 15:49:15 +03:00
Gastón Fournier
6aef7ba84c
chore: remove unused flag (#8340)
Code affected by this flag was removed long time ago
2024-10-02 14:46:14 +02:00
Thomas Heartman
aa7d612934
fix: only ask for project details if we have a project ID (#8339)
This switches to using conditional SWR to fetch project details only
when you provide a project. This fixes an issue where we'd make
requests for `api/admin/personal-dashboard/undefined` (which will be a
404 in the future).
2024-10-02 12:30:56 +00:00
Mateusz Kwasniewski
e0ea1ff34a
fix: event styling personal dashboard (#8337) 2024-10-02 14:24:50 +02:00
Mateusz Kwasniewski
b975919395
feat: health trend insight (#8335) 2024-10-02 13:50:31 +02:00
Thomas Heartman
5abc3b4732
a11y: add labels to env/period selectors (#8329)
This PR adds labels to the environment and period selectors for the flag
metrics chart on the personal dashboard page. Because the period
selector is also used on the flag metrics page, I've also updated its
use there by removing a previous text label (which was just text, not an
associated `label` element).

Before:
Chart:

![image](https://github.com/user-attachments/assets/e150d786-3c00-4b49-851b-8073c4b97f4f)

Flag metrics:

![image](https://github.com/user-attachments/assets/de7f533d-d945-425b-ae6c-6eda02cea995)


After:
Chart:

![image](https://github.com/user-attachments/assets/a3336a8e-9745-4509-90e8-df999edec3fa)

Flag metrics:

![image](https://github.com/user-attachments/assets/ac2bf7bf-6454-4c63-a680-db4d1d4fb4b9)
2024-10-02 12:57:01 +02:00
Tymoteusz Czech
ed0123d88a
fix(onboarding): Node.js SDK link (#8334) 2024-10-02 10:31:57 +00:00
Jaanus Sellin
a71fafeb13
feat: add all outlined icons (#8332)
![image](https://github.com/user-attachments/assets/54826935-6323-434f-b789-459f7ac51739)
2024-10-02 13:22:59 +03:00
Tymoteusz Czech
3341d4aee9
fix(onboarding): update go snippet (#8333) 2024-10-02 10:14:29 +00:00
Jaanus Sellin
32849b6322
chore: update metrics interval from 5 to 1 (#8331) 2024-10-02 13:01:12 +03:00
Tymoteusz Czech
3ac2c17a8e
feat(onboarding): improve styles (#8323)
Adjust spacing between elements.
2024-10-02 11:20:26 +02:00
Thomas Heartman
aa28b78c30
chore: remove the projects? Property from ICreateGroupModel (#8246)
This property does not seem to be used anywhere, so we can remove it.

Can't find any references in code here or in enterprise. Let's try it
and see if it breaks.
2024-10-02 11:04:44 +02:00
Thomas Heartman
5f7e21f1e7
chore: test that owners and roles are returned (#8319)
Test that owners and roles are returned in the personal dashboard
project details response as expected.
2024-10-02 07:50:38 +00:00
Thomas Heartman
4c4b4aa922
refactor: use promise.all instead of sequential awaited calls (#8316)
This PR follows up on a comment made in
https://github.com/Unleash/unleash/pull/8314 and groups sequential
awaited calls into a single Promise.all instead.
2024-10-02 07:49:53 +00:00
Jaanus Sellin
e51e6cc507
feat: improve onboarding flow (#8327)
1. Refetch features when creating the flag. It took a while for it to
appear before.
2. Fix NodeJS snippet and make texts more clear.
2024-10-02 10:39:47 +03:00
Thomas Heartman
6936da7403
feat: handle owners and project roles in the UI (#8315)
This commit uses the now-included project owner and role information
to populate the owner/role section. If you have no roles, we'll tell
you that you don't instead of displaying an empty set of badges.
2024-10-02 09:37:02 +02:00
Mateusz Kwasniewski
f47ae12263
feat: personal dashboard project avg health scores (#8328) 2024-10-02 09:33:50 +02:00
Jaanus Sellin
a874ac085d
fix: fix tracking of menu bar for no search results (#8326)
Previously it sending plausible event before the query had loaded and
making false positives.
2024-10-02 09:54:07 +03:00
Nuno Góis
51bfccd8cc
chore: timeline event group icon when events are all same type (#8322)
https://linear.app/unleash/issue/2-2726/groups-should-show-the-timeline-event-type-icon-when-all-events-inside

Displays the event type icon for the group when all events within the
group share the same type.


![image](https://github.com/user-attachments/assets/9fc68b2b-da01-423e-b767-05ce87098b27)


![image](https://github.com/user-attachments/assets/76c3a6d6-1bae-499c-aeec-006ead30cea6)
2024-10-01 16:37:07 +01:00
Nuno Góis
5dae654022
refactor: implement an event timeline context and provider (#8321)
https://linear.app/unleash/issue/2-2730/refactor-the-event-timeline-state-management-to-a-context-and-provider

This PR refactors the state management for the **Event Timeline**
component by introducing a context and provider to improve accessibility
of state across the component tree.
2024-10-01 16:21:31 +01:00
dependabot[bot]
2d8bc3268f
chore(deps): bump rollup from 4.21.2 to 4.22.4 in /frontend (#8226) 2024-10-01 16:02:35 +02:00
GitHub Actions Bot
fe5e2aeffb chore: bump version to 6.3.0 2024-10-01 13:33:48 +00:00
David Leek
729acfd318
chore: timeline ux alignment (#8283)
https://linear.app/unleash/issue/2-2703/align-with-ux

Timeline UI/UX improvements after sync with UX, including:

- Added some spacing between each event in the grouping tooltip
- Aligned the x events occurred header with filter dropdown
- Improved the strategy icon somewhat so it doesn't look as off center
- New timeline icon
- Improve icon position relative to timestamp on each event in the
grouping tooltip
- Changed text color in dropdowns to a lighter gray
- Removed bold formatting in tooltip
- Adjusted paddings and margins
- Added close button
- Added shadow
- Added left border

There are a few details missing, which will be tackled in separate PRs.


![image](https://github.com/user-attachments/assets/b911696e-1a50-4968-9b73-b01af626d44e)

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-10-01 14:32:54 +01:00
Fredrik Strand Oseberg
4d97f59e62
fix: add missing awaits on events (#8320)
This PR adds missing awaits on the call to eventStore which were
revealed to be fire and forget when we added transactional support for
these methods.
2024-10-01 14:34:25 +02:00
Tymoteusz Czech
b03686dc3f
feat(onboarding): .NET snippet (#8307)
## About the changes
Quick-start for .NET
2024-10-01 14:20:49 +03:00
Mateusz Kwasniewski
bf787b6deb
feat: redirect to personal dashboard when no last project (#8318) 2024-10-01 13:11:29 +02:00
Tymoteusz Czech
a6ab5326a0
feat(onboarding): add links to examples (#8308)
## About the changes
Links from Unleash UI to
[Unleash/unleash-sdk-examples](https://github.com/Unleash/unleash-sdk-examples)


https://linear.app/unleash/issue/1-2869/add-codesandbox-links-to-unleashunleash
2024-10-01 10:58:21 +00:00
Fredrik Strand Oseberg
ab81528536
feat: add transactional support for access service (#8311)
Continuing splitting #8271 into smaller pieces. This PR adds
transactional support for access service.
2024-10-01 11:56:26 +02:00
Melinda Fekete
60206f88d3
Docs fixes (#7845) 2024-10-01 11:33:50 +02:00
Mateusz Kwasniewski
739ad07798
refactor: extract my projects component (#8317) 2024-10-01 11:33:03 +02:00
Thomas Heartman
96d8dc353a
feat: return project roles (#8314)
This PR updates the personal dashboard project endpoint to return owners
and roles. It also adds the impl for getting roles (via the access
store).

I'm filtering the roles for a project to only include project roles for
now, but we might wanna change this later.

Tests and UI update will follow.
2024-10-01 09:13:59 +00:00
Thomas Heartman
050e53e564
feat: return project owners (#8312)
This PR is part 1 of returning project owners and your project roles for
the personal dashboard single-project endpoint.

It moves the responsibility of adding owners and roles to the project to
the service from the controller and adds a new method to the project
owners read model to take care of it.

I'll add roles and tests in follow-up PRs.
2024-10-01 08:18:42 +00:00
Mateusz Kwasniewski
7ac283aa50
feat: skeleton loaders for personal dashboard (#8313) 2024-10-01 10:16:20 +02:00
Nuno Góis
a8eda9d61f
chore: event timeline signals (#8310)
https://linear.app/unleash/issue/2-2665/show-signals-in-the-event-timeline

Implements signals in the event timeline.

This merges events and signals into a unified `TimelineEvent`
abstraction, streamlining the data structure to only include properties
relevant to the timeline.

Key changes:
- Refactors the timeline logic to handle both events and signals through
the new abstraction.
- Introduces the `useSignalQuery` hook, modeled after `useEventSearch`,
as both serve similar purposes, albeit for different resource types.

Note: The signals suggestion alert is not included and will be addressed
in a future task.


![image](https://github.com/user-attachments/assets/9dad5c21-cd36-45e6-9369-ceca25936123)
2024-10-01 09:02:08 +01:00
Fredrik Strand Oseberg
dcb0228105
fix: handle empty strings on permissions gracefully in access service (#8306)
Splitting #8271 into smaller pieces. This first PR will focus on making
access service handle empty string inputs gracefully and converting them
to null before inserting them into the database.
2024-10-01 09:03:46 +02:00
Mateusz Kwasniewski
b037bfb71c
feat: include favorite projects in personal dashboard (#8309) 2024-09-30 16:48:58 +02:00
Mateusz Kwasniewski
6d16fc60ce
feat: Personal dashboard flag created (#8305) 2024-09-30 16:09:31 +02:00
Thomas Heartman
50c5af8632
feat: hook up admin / owner data to UI (#8300)
This PR hooks up the owners and admins of Unleash to the UI. They'll
only be visible in cases where you have no projects.

In addition, it adds Orval schemas for the new payload properties and
updates the generating schemas to fix some minor typing issues.
2024-09-30 13:40:33 +00:00
Thomas Heartman
e4cec6629d
test: test the dashboard admins property (#8303)
This PR adds tests for the new admins property of the personal dashboard
API payload.

It checks that only user admins are added and that their image URL is
not an empty string. In doing this, also fixes an issue where the image
URL wouldn't be generated correctly.

## Discussion points

Some of the test feels like it might be better testing on a deeper level
(i.e. the account store). However, from an initial glance, I think that
would require more setup and work, so I'm leaving it in the dashboard
test for now as that's where it's ultimately useful. But we can discuss
if we should move it.
2024-09-30 13:38:00 +00:00
Mateusz Kwasniewski
d7db80d948
feat: use onboarding status to conditionally show badge and message (#8304) 2024-09-30 15:30:18 +02:00
Mateusz Kwasniewski
ac90c942db
feat: add onboarding status to personal dashboard api (#8302) 2024-09-30 14:25:56 +02:00
Ivar Conradi Østhus
01afe87302
fix: extend feature_toggle_update counter with details about action (#8202)
Ideally `feature_lifecycle_stage_entered{stage="archived"}` would allow
me to see how many flags are archived per week.
It seems like the numbers for this is a bit off, and wanted to extend
our current `feature_toggle_update` counter with action details.
2024-09-30 12:16:03 +00:00
Mateusz Kwasniewski
6f7170dc40
feat: open unleash concepts (#8301) 2024-09-30 13:32:05 +02:00
Thomas Heartman
a4ea46dab6
feat: add Unleash admins to API payload (#8299)
Adds Unleash admins to the personal dashboard payload.

Uses the access store (and a new method) to fetch admins and maps it to
a new `MinimalUser` type. We already have a `User` class, but it
contains a lot of information we don't care about here, such as `isAPI`,
SCIM data etc.

In the UI, admins will be shown to users who are not part of any
projects. This is the default state for new viewer users, and can also
happen for editors if you archive the default project, for instance.

Tests in a follow-up PR
2024-09-30 11:01:30 +00:00
Mateusz Kwasniewski
751c2fa902
feat: last project events ui polishing (#8298) 2024-09-30 11:18:25 +02:00