1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-07-21 13:47:39 +02:00
Commit Graph

501 Commits

Author SHA1 Message Date
Jaanus Sellin
1990ede59f
chore: rename toggle to feature (#8855) 2024-11-26 10:24:59 +02:00
Thomas Heartman
04b2b488f6
chore(1-3133): change avg health to current health in project status (#8803)
This PR updates the project status service (and schemas and UI) to use
the project's current health instead of the 4-week average.

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

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

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

I've changed the schema's `averageHealth` into an object in case we want
to include average health etc. in the future, but this is up for debate.
2024-11-20 11:41:45 +01:00
David Leek
5406d4d8d5
chore: addReleasePlan api hook use template id in payload (#8801) 2024-11-20 08:52:24 +01:00
Thomas Heartman
a55a956772
1-3120: remove project connected environments (#8775)
Remove everything related to the connected environment count for project
status. We decided that because we don't have anywhere to link it to at
the moment, we don't want to show it yet.
2024-11-18 12:01:25 +01:00
David Leek
0ce976a0d5
feat: implement call to add release-plan to feature environment (#8778) 2024-11-18 09:30:29 +01:00
Thomas Heartman
b4d19862d7
1-3122: refetch CR notifs on actions (#8767)
Refetch actionable change requests whenever you perform an action on a
change request. This ensures that the change request notifications are
up-to-date for you. Of course, it can still get out of sync if someone
else performs an action on the change request, but that's more of an
edge case.
2024-11-15 10:02:36 +01:00
Thomas Heartman
5d32d149cd
feat: add stale flag count to project status payload (#8751)
This PR adds stale flag count to the project status payload. This is
useful for the project status page to show the number of stale flags in
the project.
2024-11-14 14:10:10 +00:00
Nuno Góis
395a4b6be3
chore: PAYG billing (#8743)
https://linear.app/unleash/issue/CTO-95/unleash-billing-page-for-enterprise-payg

Adds support for PAYG in Unleash's billing page.

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


![image](https://github.com/user-attachments/assets/97a5a420-a4f6-4b6c-93d6-3fffddbacbc7)
2024-11-14 11:29:05 +00:00
Mateusz Kwasniewski
4fabf49706
feat: show deleted user sessions (#8749) 2024-11-14 10:30:31 +01:00
David Leek
cb316f012c
feat: frontend initial page for creating release templates (#8732) 2024-11-13 11:03:19 +01:00
David Leek
7feba0c4d4
feat: edit release plan template (#8723) 2024-11-13 09:37:47 +01:00
Thomas Heartman
24a30e5ec3
Update orval for project status lifecycle (#8716)
Update schema and orval for project status to add lifecycle information
2024-11-12 09:28:27 +00:00
Nuno Góis
044e61454b
chore: list release templates in strategy popover (#8703)
https://linear.app/unleash/issue/2-2817/expand-the-strategy-dropdown-with-release-plan-templates

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

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


![image](https://github.com/user-attachments/assets/6f91175f-f941-4566-b56b-24007d5077da)
2024-11-08 14:26:01 +00:00
Jaanus Sellin
8a507b2eec
feat: connect project health frontend with backend (#8695)
1. Connected project health frontend with backend
2. Synced orval
2024-11-08 10:53:45 +02:00
David Leek
cfe19dee73
feat: deleting release-plan templates (#8678) 2024-11-06 15:55:26 +01:00
David Leek
fa597aa340
Feat/release management overview (#8672) 2024-11-06 14:02:42 +01:00
Thomas Heartman
8a5771dd50
chore (1-3076): add remaining "project resources" to status payload (#8660)
This PR adds member, api token, and segment counts to the project status
payload. It updates the schemas and adds the necessary stores to get
this information. It also adds a new query to the segments store for
getting project segments.

I'll add tests in a follow-up.
2024-11-06 11:46:04 +00:00
Mateusz Kwasniewski
b00d449c72
feat: read productivity report from profile (#8662) 2024-11-05 16:14:19 +01:00
Thomas Heartman
2b13aff4f1
feat: hook up project resources API to resources widget (#8657)
This PR wires up the connectedenvironments data from the API to the
resources widget.

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

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

Here's the loading state:

![image](https://github.com/user-attachments/assets/c9938383-afcd-4f4b-92df-c64b83f5b1df)
2024-11-05 14:50:51 +01:00
Jaanus Sellin
1cedc374c1
feat: activity widget (#8628)
It is still raw, next PRs add styling and date filtering for only single
year.


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

---------

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2024-11-05 12:50:14 +02:00
Mateusz Kwasniewski
b9df5060ca
feat: productivity report subscription UI (#8639) 2024-11-04 13:33:34 +01:00
Thomas Heartman
dc1847420c
feat: use actionable change request data in UI (#8613)
This PR hooks up the actionable change request data to the counter in
the UI. It:
- creates a getter for the data. It only exposes data. We don't really
care about error or loading for this (it's not an important piece of
data), so we don't expose that just yet.
- Adds orval-generated schema
- Uses the hook in the UI.

It also stwitches the previous "notification badge" for MUI's built-in
badge. We already use that badge component for the event timeline, so I
thought it would make sense to do it here too. Overall, the effect is
pretty good, but there's a few kinks we might wanna work out. I'll make
a follow-up for that (worked out in this PR after all)
2024-11-01 10:08:51 +01:00
Nuno Góis
f2256423d5
chore: adapt UI to server-side Unleash AI chat ownership (#8466)
https://linear.app/unleash/issue/2-2847/adapt-unleash-ai-chat-logic-to-new-server-side-chat-ownership-logic

Adapts the Unleash AI chat logic on the UI to the new server-side chat
ownership logic.
2024-10-17 09:50:27 +01:00
Nuno Góis
f63496d47f
chore: Unleash AI API hook (#8441)
https://linear.app/unleash/issue/2-2791/create-a-useaiapi-react-hook

Implements a basic Unleash AI API React hook that fits our initial needs
for interacting with this API through our frontend.

Also adds a new nice-to-have script to run the frontend set to the
`demo` base path, which matches our Cloud defaults. This way you can run
the latest local cloud with the latest local frontend in an easy way.
2024-10-14 13:29:29 +01:00
Tymoteusz Czech
226874fe23
fix($env): order API integration update (#8431) 2024-10-11 13:23:54 +03:00
Tymoteusz Czech
1fa918e4f7
feat($env): additional environments - API integration (#8424)
Make API calls from "order environments" dialog, improve validation
2024-10-11 09:01:35 +00:00
Thomas Heartman
67f036c0ab
feat: store dashboard state (#8382)
This PR stores the dashboard state (selected project and flag) in
localstorage so that you get taken back to the same project and flag
when you refresh the page or navigate away and back.

It also handles scrolling the selected items into view in case they're
below the fold.
2024-10-08 08:21:23 +02:00
Nuno Góis
3fb683ffd9
chore: make signals visible on event timeline for non admins (#8364)
https://linear.app/unleash/issue/2-2743/open-the-signal-query-endpoint-to-everyone-not-only-admins

The new signal query endpoint is now open for every Unleash user, not
only admins.

This PR allows non-admins to view signals in the event timeline. It also
updates the signals tooltip to be shown to all users, not just admins,
under the following assumptions:

- `!signalsSuggestionSeen` - Current user has not dismissed the signals
tip
- `isEnterprise()` - Enterprise instance
- `signalsEnabled` - The signals feature flag is enabled
- `!signalsLoading` - Signals have finished loading (avoids flickering)
- `signals.length === 0` - We can't find any signals in the selected
timespan
2024-10-04 12:39:57 +01: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
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
Mateusz Kwasniewski
147984f9d5
feat: display basic list of project events (#8291) 2024-09-27 14:02:30 +02:00
Mateusz Kwasniewski
fee2143edf
feat: Personal flags UI component (#8221) 2024-09-24 08:42:49 +02:00
Nuno Góis
355b3eb58a
chore: remove unused SCIM setting - assumeControlOfExisting (#8101)
This property is unused and should be removed.

This fixes a logged schema error:

```
Invalid response: {
    "schema": "#/components/schemas/scimSettingsSchema",
    "errors": [
        {
            "instancePath": "",
            "schemaPath": "#/required",
            "keyword": "required",
            "params": {
                "missingProperty": "assumeControlOfExisting"
            },
            "message": "must have required property 'assumeControlOfExisting'"
        }
    ]
}
```
2024-09-05 13:45:20 +01:00
Jaanus Sellin
f41a688edb
feat: welcome to project onboarding status rendering (#8076)
![image](https://github.com/user-attachments/assets/8a828f95-10bd-4294-b2f4-1d7f4e7f1a3d)
2024-09-04 12:17:33 +03:00
Tymoteusz Czech
6030900b40
refactor: replace IProjectCard with openapi type (#8043)
Makes type consistent between frontend and schema generated from backend.
2024-09-02 13:25:28 +00:00
Tymoteusz Czech
76ffdb2cd3
chore: update Frontend schema (#8037)
update types, fix frontend types issues in insights and archive
2024-09-02 14:41:17 +02:00
Jaanus Sellin
fc86f5b2fe
feat: align insights charts (#7984)
Now the left widget will use the same that as the last data point on the
right chart.
With this change, flags/users object never needs to be passed in.

**Next step is to remove the flags/users from the endpoint.**

Previous


![image](https://github.com/user-attachments/assets/b938e568-e32e-4ae8-beb9-d8de8aa2c5ec)

Now


![image](https://github.com/user-attachments/assets/182dfbbb-bf2e-42f9-a024-0c545c604f74)
2024-08-27 11:06:08 +03:00
gitar-bot[bot]
3a15fa7689
[Gitar] Cleaning up stale flag: integrationEvents with value true (#7940) 2024-08-21 14:25:24 +02:00
Tymoteusz Czech
3baeb4c541
feat: dialogs for project revive and delete (#7863)
Dialog needed to confirm revive/delete actions
2024-08-15 07:25:49 +00:00
Thomas Heartman
764d03767b
chore: begin front end cleanup (#7865)
Begins cleaning up the front end.

Removes the "legacy" event log component in favor of only using the new
one. What we do is simply not to show the filters if you're not on
enterprise.

This means that we'll get pagination (and maybe exports?) for everyone.

It also means that you can reverse-engineer the filters and use them
even on non-enterprise, as long as you're happy editing URLs manually.
However, putting it behind a flag on the front end always exposed that
kind of risk, so I don't think this is a bad move.
2024-08-14 10:03:28 +02:00
Tymoteusz Czech
f2b7e0278d
Projects archive UI (#7842)
Closes
[issue/1-2666](https://linear.app/unleash/issue/1-2666/archived-projects-view)
2024-08-13 14:33:11 +02:00
Gastón Fournier
376012ddd1
fix: remove flag from UI (#7857) 2024-08-13 11:44:16 +00:00
Thomas Heartman
1b892979d3
feat: add event creators data to filter (#7822)
Adds event creator data to the event creator filter.

It uses a new useEventCreators hook to fetch event creators from the new
API, and uses that to populate the event creators filter.
2024-08-13 10:41:55 +02:00
Thomas Heartman
245bdeae1e
chore: generate orval for event creators (#7823)
Updates our orval config to include event creator data
2024-08-12 15:07:26 +02:00
Mateusz Kwasniewski
a01305040d
feat: archive project form (#7797) 2024-08-08 09:29:28 +02:00
Thomas Heartman
cd7697db62
feat: new useEventSearch hook (#7757)
Creates a new useEventSearch hook based on the useFeatureSearch hook.
Moves the old useEventSearch hook into useLegacyEventSearch and updates
references to it.

I don't know yet whether this'll work entirely as expected, but I plan
on making any necessary configurations when I implement the state
management in a follow-up PR.

But because this is pretty much a straight copy-paste from
useFeatureSearch (only adjusting types, I think), I also think it might
be possible to turn this into a generic search template. Not sure if now
is the time, but worth thinking about, I think.
2024-08-05 13:12:45 +00:00
Mateusz Kwasniewski
4c55632313
chore: generate orval types (#7742) 2024-08-02 14:55:46 +02:00
Tymoteusz Czech
43c8152515
feat: Change request preview integration (#7743)
Use API to check change request evaluation
2024-08-02 14:35:48 +02:00
Thomas Heartman
643cfeb5bb
chore: use EventSchema instead of IEvent (#7732)
Changes the type used by the useEventSearch hook to be `EventSchema`
from OpenAPI instead. This is more accurate with what we're actually
getting. And crucially for the event log search, it contains the
`createdByUserId` property that we need to filter out events.

It's mostly a straightforward find and replace except for one instance
where we need to do some extra fiddling. There's an inline comment
explaining that.
2024-08-02 11:05:42 +02: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