1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
Commit Graph

152 Commits

Author SHA1 Message Date
olav
49b8e7329e refactor: convert auth tests from Cypress to Jest (#864)
* refactor: replace data-test with data-testid

* refactor: add Jest tests for auth pages

* refactor: remove Cypress tests for auth pages

* refactor: remove questionable snapshots

* refactor: share test server setup/teardown

* refactor: restore auth page flex layout

* refactor: use toBeInTheDocument

* refactor: change recent data-test attrs to data-testid
2022-04-08 13:13:45 +02:00
Nuno Góis
1132a79f6d fix: reject duplicate segment names (#855)
* fix: reject duplicate segment names

* fix: useSegmentValidation now takes into account initial value

* refactor: add segments e2e test

* refactor: add github action from segments e2e test

* refactor: use enterprise edition for all e2e tests

* refactor: use enterprise edition for all e2e tests
2022-04-08 11:34:59 +01:00
Tymoteusz Czech
b23226370a feat: multi-project api access tokens (#857)
* fix: general select component typings

* custom multi-select for projects

* autocomplete element for token projects

* project multi-select with error handling

* projects in tokens list update

* multi-project tokens - select all button

* fix conflicting typescript changes

* improve multi-projects tokens form after review

* refactor multi-project select code structure

* test api token list projects column element

* simplify test renderer
2022-04-08 12:26:44 +02:00
olav
fb8d0e7efc fix: use the first project if there's no default project (#859)
* refactor: extract FeatureToggleListCreate component

* fix: use the first project if there's no default project
2022-04-07 11:08:05 +02:00
olav
a088866124 refactor: port some things to TS (#843)
* refactor: port useSort to TS

* refactor: port loadingFeatures to TS

* refactor: port admin index to TS

* refactor: port TagTypeList to TS

* refactor: merge route interfaces

* refactor: port common utils to TS

* refactor: fix snapshot date typo

* refactor: port Reporting utils to TS

* refactor: improve PermissionIconButton prop types
2022-04-06 12:22:24 +02:00
olav
dbb62631a6 feat: add FeedbackCES component (#826)
* refactor: add screen-reader-only util class

* refactor: move FeedbackNPS component

* feat: add FeedbackCES component

* refactor: improve hidden checkbox styles

* refactor: fix IFeedbackEndpointRequestBody source type

* refactor: remove unnecessary event.persist() calls

* refactor: remove disableEscapeKeyDown from FeedbackCES modal

* refactor: make textarea label customizable

* refactor: store feedback state on the backend

* refactor: add FeedbackCESForm snapshot test

* refactor: use extant IAuthFeedback type

* refactor: fix showNPSFeedback logic for multiple feedback types
2022-03-31 09:23:46 +02:00
Youssef Khedher
eeda7ab5e4 feat: add segments (#780)
* feat: create segmentation structure and list

* feat: remove unused deps and change route

* feat: change header style and add renderNoSegments

* fix: style table header

* feat: create useSegments hook

* feat: add segmentApi hook

* feat: create segment

* fix: errors

* feat: add contextfields list

* fix: remove user from create segment api

* feat: add form structure

* feat: add SegmentFormStepOne

* fix: tests and routes

* feat: add constraint view

* feat: UI to match the sketch

* feat: add constraint on context select

* fix: duplication

* fix adding constraints

Co-authored-by: olav <mail@olav.io>

* fix: input date not showing up in constraint view

Co-authored-by: olav <mail@olav.io>

* fix: minor bugs

Co-authored-by: olav <mail@olav.io>

* fix: create context modal in segment page

Co-authored-by: olav <mail@olav.io>

* fix: validate constraint before create segment

Co-authored-by: olav <mail@olav.io>

* feat: create useSegment hook

Co-authored-by: olav <mail@olav.io>

* feat: create edit component

Co-authored-by: olav <mail@olav.io>

* refactor: move constraint validation endpoint

* refactor: add missing route snapshot

* refactor: fix segment constraints unsaved/editing state

* refactor: remove create segment from mobile header menu

* refactor: update segments form description

* refactor: extract SegmentFormStepList component

* refactor: add an optional FormTemplate docs link label

* refactor: fix update segment payload

* feat: finish edit component

Co-authored-by: olav <mail@olav.io>

* refactor: move step list above segment form

* fix: update PR based on feedback

Co-authored-by: olav <mail@olav.io>

* refactor: fix constraint validation endpoint path

* refactor: improve constraint state field name

* refactor: extract AutocompleteBox component

* feat: add strategy segment selection

* refactor: add strategy segment previews

* refactor: fix double section separator line

* feat: disable deleting a usable segment

* refactor: warn about segments without constraints

* refactor: update text in delete segment dialogue

* refactur: improve arg names

* refactor: improve index var name

* refactor: clarify steps list logic

* refactor: use a required prop for the segment name

* refactor: use ConditionallyRender for segment deletion

* refactor: fix segments refetch

* refactor: improve CreateUnleashContext component names

* refactor: adjust segment form styles

* refactor: adjust text

* refactor: fix info icon tooltip hover target

* refactor: add missing aria attrs to preview button

* refactor: add strat name to delete segment modal

* refactor: fix segment chip text alighment

* refactor: use bulk endpoint for strategy segments

* refactor: fix imports after merge

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
Co-authored-by: olav <mail@olav.io>
2022-03-29 09:30:57 +02:00
Youssef Khedher
85950f104a chore: update paths 🧼 (#820) 2022-03-28 09:49:59 +01:00
Youssef Khedher
4589a19e03 fix: misc UI improvements (#806)
* fix: link color in project features

Co-authored-by: olav <mail@olav.io>

* fix: link in health page

Co-authored-by: olav <mail@olav.io>

* fix: keep sorting state in project toggles list

Co-authored-by: olav <mail@olav.io>

* fix: style link in the toggle list project

Co-authored-by: olav <mail@olav.io>

* refactor: update browser list

Co-authored-by: olav <mail@olav.io>

Co-authored-by: olav <mail@olav.io>
2022-03-25 15:30:52 +01:00
olav
cfc2338e78 refactor: use camel case for files and dirs (#817) 2022-03-25 12:34:20 +01:00
olav
2ca88b019a refactor: restrict API tokens to enabled environments (#809)
* refactor: add missing Tooltip wrapper elements

* refactor: rewrite useEnvironments

* refactor: disable environments in select box

* refactor: make sure initial environment is enabled
2022-03-23 12:55:00 +01:00
olav
d1e96501ec refactor: test useFeaturesFilter (#795) 2022-03-16 13:51:01 +01:00
Youssef Khedher
bee9fadbc9 feat: segments (#776)
* feat: create segmentation structure and list

* feat: remove unused deps and change route

* feat: change header style and add renderNoSegments

* fix: style table header

* feat: create useSegments hook

* feat: add segmentApi hook

* fix: ts and style errors

* feat: update PR based on feedback

* feat: add flag

* fix: test and formating

* fix: update PR based on feedback

* fix: add correct permission

* fix: mobile view for segments

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-03-16 13:19:27 +01:00
olav
9798cfd888 refactor: fix search crash on missing values (#794)
* refactor: fix search crash on missing values

* Update src/hooks/useFeaturesFilter.ts

* Update src/hooks/useFeaturesFilter.ts

* fix: update regex

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-03-16 11:26:08 +01:00
Fredrik Strand Oseberg
f52ca03b55 fix: show invalid token page when token error is received (#785) 2022-03-15 16:00:13 +01:00
olav
f0aa764d3e refactor: wait for UI config for CO flag (#781) 2022-03-11 16:18:38 +01:00
olav
419f655ef5 refactor: improve feature not found page (#774)
* refactor: improve feature not found page

* refactor: fix feature cache mutation mismatch
2022-03-10 10:52:50 +01:00
olav
baae88c7a5 feat: add new feature strategy create/edit pages (#739)
* refactor: add param helper hooks

* refactor: remove first add strategy link

* refactor: add more types to useStrategies

* refactor: port strategy utils to TS

* refactor: replace rollout strategy icon

* refactor: use a named export for useFeature

* refactor: add more types to useFeature

* refactor: adjust code box styles

* refactor: add missing PermissionButton variant prop

* refactor: add missing button icon label

* refactor: move common feature components

* refactor: fix StrategyConstraints error prop types

* refactor: fix GeneralStrategy prop types

* feat: add new feature strategy create/edit pages

* refactor: remove feature strategies page

* refactor: fix types in GeneralStrategy

* refactor: use ConstraintAccordion on the new pages

* refactor: use ConditionallyRender for remove button

* refactor: rename FeatureStrategyForm component

* refactor: use the Edit icon for feature strategies

* refactor: fix initial edit mode for new constraints

* refactor: add FeatureStrategyMenu to closed accordions

* refactor: allow editing multiple constraints

* refactor: show single-valued constraint value

* refactor: increase feature overview strategy width

* refactor: add remove button to feature overview strategies

* refactor: move createEmptyConstraint to own file

* refactor: disable submit button for invalid constraints

* refactor: fix nested paragraphs on the metrics page

* refactor: move create/edit feature strategy to modal

* refactor: always open new constraints in edit mode

* refactor: use a PermissionButton for the save button

* refactor: remvoe unsaved constraints on cancel

* refactor: clarify useConstraintsValidation logic

* refactor: remove unused strategy descriptions

* refactor: restore Rollout icon

* refactor: remove sidebar modal slide animation

* refactor: avoid constraint accordion toggle on edit/delete

* refactor: truncate long strategy names

* refactor: find the correct remove button
2022-03-09 14:59:24 +01:00
Youssef Khedher
ea401f3ec5 feat: add changeRole (#768)
* feat: add changeRole in project

* fix: update PR based on feedback

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-03-07 09:26:31 +01:00
Youssef Khedher
ee730e0708 Feat/custom strategy screen (#722)
* feat: setup new screen structure

* refactor: strategyParameter

* feat: add strategy input errors for required fields

* feat: add create strategy to routes

* feat: add EditStrategy component

* feat: edit strategy view and EditStrategy component

* feat: update EditStrategy component

* test: update snapshots

* fix: styles

* test: update snapshots

* refactor: rename StrategyForm and fix ts errors

* test: update snapshots

* fix: remove test route

* fix: update PR based on feedback

* fix: update PR based on feedback

* refactor: restore feature settings (#712)

* refactor: resotre feature settings

* fix: update PR based on feedback

* feat: add feature information in Metadata container

* fix: update PR based on feedback

* fix: update PR based on feedback

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>

* chore(deps): update dependency @types/react-dom to v17.0.13

* refactor: expect existing TS errors (#767)

* refactor: expect existing TS errors

* refactor: fail build on new TS errors

* fix: styles

* refactor: rename StrategyForm and fix ts errors

* fix: update PR based on feedback

* fix: cleaning up

* fix: remove errors and warnings

* fix: remove ts-expect-error and fix errors

* fix: ts errors

* Update src/component/strategies/StrategyView/StrategyView.tsx

* Update src/component/strategies/StrategyView/StrategyView.tsx

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: olav <mail@olav.io>
2022-03-04 23:39:41 +01:00
Fredrik Strand Oseberg
2c1353d0ea Feat/new constraints (#718)
* fix: add initial interface

* feat: create separate components

* feat: implement constraints for existing strategies

* feat: add searchfield

* fix: reset values on context change

* fix: key issue with duplicate values

* fix: increase auto hide duration of errors

* fix: types

* feat: resolve inputs

* fix: add date input

* fix: add filter

* fix: create strategy

* fix: remove unused deps

* feat: validation

* fix: type setError

* feat: handle currentTime based on client spec

* fix: date field

* feat: api validation

* fix: refactor

* fix: refactor

* feat: add compact

* fix: remove unused code

* feat: mobile optimisations

* fix: remove coalescing operator for constraint

* fix: clone deep

* fix: move parseDate

* fix: lift state up for value setting on dates

* fix: rename values

* fix: change type to interface

* fix: lazy initialise values

* fix: create operator type

* fix: update naming

* fix: naming

* fix: aria hidden

* fix: remove optional operator

* fix: rename new constraints

* fix: setup flag

* fix: refactor date check to date-fns

* fix: use date-fns for validation

* fix: detach validators from state

* refactor: move resolve input to it's own component

* fix: remove unused imports

* fix: change values container to overflow auto

* fix: update placeholder

* fix: update import

* fix: backwards compatability

* fix: hide paragraphs if not active

* fix: update path

* fix: update strategy text
2022-03-04 17:29:51 +01:00
olav
b3bf86ca84 refactor: expect existing TS errors (#767)
* refactor: expect existing TS errors

* refactor: fail build on new TS errors
2022-03-03 10:01:04 +01:00
olav
58667565f2 refactor: fix sorting features by last seen and created at (#755) 2022-03-01 10:35:20 +01:00
olav
3959e846e8 refactor: fix misc TS errors (#729)
* refactor: update test deps

* refactor: remove unused ts-expect-error annotations

* refactor: add missing arg and return types

* refactor: the loading prop is optional

* refactor: add missing arg and return types

* reafactor: fix value arg type

* refactor: fix missing array type

* refactor: the parameters field is an array

* refactor: use undefined instead of null in state

* refactor: add missing params type

* refactor: add missing children prop

* refactor: add missing array type

* refactor: add missing React imports

* refactor: use correct IProjectEnvironment type

* refactor: type errors as unknown

* refactor: the index prop is required

* refactor: fix date prop type

* refactor: fix tooltip placement prop type

* refactor: fix environments state type

* refactor: add missing arg types

* refactor: add guard for undefined field

* refactor: fix ChangePassword prop types

* refactor: fix MUI import paths

* refactor: add missing arg type

* refactor: fix showDialog prop type

* refactor: remove unused openUpdateDialog prop

* refactor: add missing non-null assertion

* refactor: remove unused types prop

* refactor: stricten API error handler types

* refactor: add missing undefined check

* refactor: add missing IProject id field

* refactor: fix ConditionallyRender condition prop types

* refactor: remove unused args

* refactor: add AddVariant prop types

* refactor: add types to UIContext

* refactor: fix event arg type

* refactor: add missing default impressionData field

* refactor: fix handleDeleteEnvironment prop args

* refactor: fix IFeatureMetrics field requirements

* refactor: add missing element types to ConditionallyRender

* refactor: remove unused ProjectAccess projectId prop

* refactor: add missing undefined check

* refactor: fix getCreateTogglePath arg type

* refactor: add missing IStrategyPayload import

* refactor: remove unused user arg

* refactor: add missing event arg type

* refactor: add missing style object types

* refactor: improve userApiErrors prop type

* refactor: the Dialogue onClose prop is optional

* refactor: fix the AddonEvents setEventValue prop type
2022-02-25 10:55:39 +01:00
olav
94ecaa80a8 refactor: improve feature toggle search state (#741)
* refactor: rename createPersistentGlobalStateHook helper

* refactor: move features filter state out of localStorage

* refactor: show search state in page title

* refactor: remove unused import

* refactor: add a state chip to SearchField

* refactor: improve var names
2022-02-23 15:08:44 +01:00
Fredrik Strand Oseberg
38c26ec052 fix: set admin permission (#736) 2022-02-23 13:47:32 +01:00
olav
33b5e4abac feat: add new feature metrics page (#716)
* refactor: ensure that [hidden] overrides other display styles

* refactor: use numeric font weights

* refactor: remove unnecessary Jest mock

* refactor: add a fullWidth prop to GeneralSelect

* refactor: remove unnecessary label id prop

* refactor: the showActive prop is optional

* refactor: add hooks for managing query string state

* refactor: add a hour/minute timestamp formatter

* refactor: add labels to button icons

* feat: add new feature metrics page

* refactor: remove prev feature metrics page

* refactor: use new metric boxes on overview page

* refactor: lazy-load the new metrics page

* refactor: fix type error when formatting unknown error

* refactor: extract interfaces for props

* refactor: destructure all props

* refactor: expand arg names

* refactor: reorg component dirs and files

* refactor: improve chart element label

* refactor: hide chart dots until hover

* refactor: add section titles to environments/applications

* refactor: simplify FeatureMetricsHours types

* refactor: sort chart tooltip items

* refactor: add more chart labels

* refactor: always show a dot in single point charts

* refactor: improve chart tooltip styles

* refactor: adjut metric page spacing

* refactor: decrease legend box size

* refactor: move date fmt fn inline

* refactor: improve chart legend styles

* refactor: increase Cypress timeouts

* refactor: sort environment and application chips

* refactor: format files

* refactor: use stable lists of apps and envs

* refactor: fix FeatureMetrics dir name

* refactor: avoid ScrollToTop on query string change

* refactor: use ConditionallyRender instead of inline condition

* refactor: use makeStyles instead of styled API
2022-02-21 13:47:54 +01:00
olav
016633dae9 refactor: format files (#719)
* refactor: fix deprecated prettier config name

* refactor: add fmt scripts

* refactor: check fmt during CI

* refactor: format files
2022-02-18 09:51:10 +01:00
olav
46bf92124d refactor: remove unused code (#721) 2022-02-18 08:26:26 +01:00
olav
878f892c50 refactor: fix misc test feedback (#709)
* refactor: keep feature toggle name when changing project

* refactor: add missing permission button tooltip

* refactor: add success toast on toggle revival

* refactor: add success toast on stale toggle

* refactor: fix initial user role checkbox value

* refactor: remove duplicated error message

* refactor: fix change-password error parsing

* refactor: remove inaccurate edit toggle toast text

* refactor: truncate long names in project cards

* refactor: truncate long project name in title

* refactor: add ellipses to truncated strings

* refactor: swap truncateString with StringTruncator

* refactor: remove unnecessary truncation

* refactor: mark context fields as optional

* refactor: show all errors from tag type creation

* refactor: show all errors from strategy create/update

* refactor: filter out empty strategies on create/update

* refactor: add an edit button to the addons list

* refactor: add missing labels

* refactor: catch errors from toggling stale features
2022-02-15 10:57:57 +01:00
olav
fceeb7da15 refactor: remove unused ProjectSelect props (#705)
* refactor: remove unused ProjectSelect props

* refactor: remove unused ensureRelativePath fn

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-02-14 15:48:25 +01:00
Fredrik Strand Oseberg
972ea43dfc fix: do not use formatApiPath on paths from API (#702)
* fix: do not use formatApiPath on paths from API

* fix: remove createRequest
2022-02-11 12:13:03 +01:00
Fredrik Strand Oseberg
c99decf5e0 remove: redux (#696)
* remove: redux

* fix: add sass back

* fix: update lock

* fix: remove fake access store import

'
2022-02-11 11:19:55 +01:00
Youssef Khedher
c2842c81e6 Refactor/strategies (#668)
* feat: add useStrategiesApi hook

* refactor: remove redux from strategies component

* refactor: CreateStrategy Component

* fix: remove ts errors

* refactor: change strategy-detail to functional component

* refactor: get strategy name from params

* refactor: use features hook and refactor toggle list link

* refactor: StrategiesList

* refactor: fix delete strategy function

* fix: ts errors

* refactor: CreateStrategy to StrategyForm

* feat: add toast for StrategyForm

* refactor: add StrategyView and delete old component

* refactor: StrategyDetails and clean unused files

* fix: cleanup unused code

* fix: add await

* fix: remove unused stores

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-02-11 00:08:55 +01:00
olav
213e8950d3 refactor: port login auth to TS/SWR (#680)
* refactor: allow existing tsc errors

* refactor: add missing component key

* refactor: port login auth to TS/SWR

* refactor: replace incorrect CREATE_TAG_TYPE with UPDATE_TAG_TYPE

* refactor: fix AccessProvider permission mocks

* refactor: add types to AccessContext

* refactor: fix file extension

* refactor: remove default export

* refactor: remove unused IAddedUser interface

* refactor: comment on the permissions prop

* refactor: split auth hooks

* feat: auth tests

* fix: setup separate e2e tests

* fix: naming

* fix: lint

* fix: spec path

* fix: missing store

* feat: add more tests

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-02-10 17:04:10 +01:00
Youssef Khedher
5a05bb44a6 Merge branch 'main' into refactor/applications 2022-02-10 11:14:10 +01:00
Youssef
df448e66e8 refactor: add application interface and add use applications output interface 2022-02-10 09:33:09 +01:00
Youssef
4d0d39891a fix: update PR based on feedback 2022-02-10 09:23:11 +01:00
Youssef Khedher
2a9a3ac569 refactor: refactor addons to TSX and remove unused files (#676)
* refactor: refactor addons to TSX and remove unused files

* refactor: change AddonIcon to getAddonIcon

* refactor: add PermissionButton instead of conditional render

* refactor: wrap icon buttons inside PermissionIconButtons

* feat: add confirm delete dialog

* fix: create addon form

* fix: refactor addons

* fix: remove addon store folder

* fix: update index

* fix: rebase

* fix: update exports

* fix: update snapshot

* fix: add dev dep

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-02-09 23:05:15 +01:00
Youssef
c10525108e refactor: add handleChange 2022-02-09 19:09:02 +01:00
Youssef
a6e1e60e2c refactor: change based on PR feedback 2022-02-09 16:15:07 +01:00
olav
010f766de9 refactor: replace ts-ignore with ts-expect-error (#681)
* refactor: replace ts-ignore with ts-expect-error

* refactor: remove unused ts-expect-errors
2022-02-09 13:39:18 +01:00
Youssef Khedher
08c4b60cef fix: project access (#621)
* feat: update useProjectApi hook

* fix: refactor to hooks

* fix: remove some ts errors

* fix: set message if error exists directly on response

* fix: remove console logs

* fix: typo

* delete: context2

* feat: filter added user from user add list

* fix: cleanup PR based on feedback

* fix: handle undefined roles in ProjectRoleSelect

* fix: use target value

* fix: type event

* fix: conflict

* fix: add appropriate types

* fix conflicts

* fix: explicit query

* fix: refactor list

* refactor: permission icon button

* fix: conflict

* fix: ts errors

* refactor: break list into its own component

* fix: use stringifed deps

* fix: explicit export

* fix: update pr according to comments

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-02-09 12:25:02 +01:00
Youssef Khedher
f58c284f70 Merge branch 'main' into refactor/applications 2022-02-08 13:44:42 +01:00
olav
fee1894c34 refactor: port global settings to TS/hooks (#679)
* refactor: add ref support to PermissionSwitch

* refactor: port global settings to TS/hooks

* refactor: fix file extension

* refactor: format file

* refactor: fix inconsistent locationSettings prop

* refactor: use correct locationSettings hook

* refactor: use objects for settings hooks
2022-02-08 13:36:32 +01:00
olav
ff8d983d7e refactor: port FeatureToggleList to TS/SWR (#663)
* refactor: remove unused FeatureToggleListItemChip

* refactor: remove unused archive.module.scss

* refactor: remove unused ShowArchive route

* refactor: port FeatureToggleList to TS/SWR

* refactor: fix IUseFeaturesOutput interface prefix

* refactor: remove unnecessary pages files

* refactor: persist the features sort/filter state

* refactor: format files

* refactor: fix FeatureToggleListContainer file name

* refactor: fix arrow function syntax

* refactor: improve storage helper comments
2022-02-08 12:06:25 +01:00
olav
f4d5ed03aa refactor: port auth admin to TS/SWR (#675)
* refactor: format files

* refactor: add missing RE UI config flag

* refactor: port admin auth index to TS/SWR

* refactor: port GoogleAuth to TS/SWR

* refactor: port OidcAuth to TS/SWR

* refactor: port SamlAuth to TS/SWR

* refactor: remove unused e-admin-auth store

* refactor: make AutoCreateForm an explicit export

* refactor: improve auth settings dir structure

* refactor: destructure authenticationType from uiConfig

* refactor: use setToastApiError to show errors

* refactor: format files

* refactor: remove invalid string fields from requests

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-02-08 11:44:41 +01:00
Youssef Khedher
f72756db00 Merge branch 'main' into refactor/applications 2022-02-08 09:25:02 +01:00
olav
234bab6cb4 refactor: port ReportCard to TS/SWR (#674)
* refactor: remove unused reporting code

* refactor: port ReportCard to TS/SWR
2022-02-07 15:30:33 +01:00
olav
72acf2309c refactor: port EventHistory to TS/SWR (#669)
* refactor: port EventHistory to TS/SWR

* refactor: fix interface type prefix

* refactor: split useEvents and useFeatureEvents hooks

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-02-04 14:25:56 +01:00
Youssef Khedher
25ca7b7216 refactor: add useInvoices hook (#656)
* refactor: add useInvoices hook

* refactor: invoiceList and InvoiceAdminPage

* fix: declare path outside of the hook

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-02-04 13:41:13 +01:00
Youssef
c316382ba5 refactor: create new EditApplication component 2022-02-04 11:27:59 +01:00
Fredrik Strand Oseberg
18287cdbd0 Fix/cleanup unused code (#651)
* fix: remove unused context code

* fix: refactor users

* fix: rename delete user

* fix: rename frontend

* fix: update feature view path

* fix: cleanup create feature

* fix: cleanup feature views

* fix: cleanup feature strategies

* fix: update paths

* fix: remove unused strategy components

* fix strategies link

* fix: update snapshots

* fix: import paths

* fix: add name to useEffect dependency
2022-02-04 10:36:08 +01:00
Youssef
47a1a47d28 refactor: add useApplicationsApi 2022-02-04 08:14:16 +01:00
Youssef
38e549d879 refactor: application-view to ApplicationView with useApplication hook 2022-02-04 07:56:17 +01:00
Youssef Khedher
899a0f330e feat: add impressionData switch to create feature form (#639)
* feat: add impressionData switch to create feature form

* fix: update text

* fix: styling

* fix: conflict

* fix: update link

* fix: remove unused styles

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-02-03 12:39:43 +01:00
Youssef
e25b7b0a22 refactor: remove redux from addons components 2022-02-01 14:12:53 +01:00
Youssef
f3ab91556b feat: create useAddons and useAddonsApi 2022-02-01 07:17:23 +01:00
Youssef Khedher
4571e3af81 feat: add useUiBootstrap hook and update send email state (#643)
* feat: add useUiBootstrap hook and update send email state in create user form

* fix: set email based on config

* fix: update cache key

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-01-28 17:20:57 +01:00
Ivar Conradi Østhus
6b632c83bf feat: allow enterprise to disable password based login (#629)
Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-01-26 13:28:51 +01:00
Fredrik Strand Oseberg
8462b00d5c fix: add pagination filter (#631) 2022-01-26 12:27:34 +01:00
Fredrik Oseberg
03d937d7e7 fix: remove console log 2022-01-24 15:45:01 +01:00
Fredrik Oseberg
125e7de91e fix: ts issues 2022-01-24 15:45:01 +01:00
Youssef Khedher
53cff04349 feat: add create and edit context screen (NEW) (#613)
* feat: add create and edit context screen

* feat: add edit button for contexts list

* fix: add legal values when press enter withou submit form

* fix: context form

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-01-24 15:43:45 +01:00
Youssef Khedher
39b5adb950 feat: add create and edit project screen (NEW) (#602)
* feat: add create and edit project screen

* feat: fix correct permission and validate projectId

* feat: remove unused variable and logs

* feat: remove unused import

* fix: delete unused project components

* fix: add unique validation

* fix: add unused import

* fix: project header

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-01-19 14:28:55 +01:00
Youssef Khedher
7baf8400ca feat: add create and edit screen for tag-types (NEW) (#603)
* feat: add create and edit screen for tag-types

* feat: update Edit and create component with permissions

* refactor: add TagForm type to react FC

* fix: routes

* fix: add edit button

* fix: update snapshot

* fix: update permission

* fix: permission

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-01-18 14:35:50 +01:00
Youssef Khedher
80e80805f7 feat: add edit and create user screen (NEW) (#601)
* feat: add edit and create user screen

* refactor: rename create user component

* fix: add missing documentation link

* fix: remove unused dependencies

* feat: add confirm screen

* refactor: change UserForm and delete unused components

* refactor: remove toast when create new user

* fix: add margin top to form elements

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2022-01-18 12:05:48 +01:00
Youssef Khedher
1b097f85d6 feat: add create and edit environment screen (NEW) (#605)
* feat: add create and edit environment screen

* fix: remove environment success screen

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-01-18 11:23:24 +01:00
Youssef Khedher
b209368c84 feat: add create api token screen (NEW PR) (#600)
* feat: add create api token screen

* fix: update headers

* fix: remove old api create

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2022-01-17 11:56:53 +01:00
Youssef Khedher
182d566895 feat/rbac roles (#562)
* feat: create screen

* fix: import accordion summary

* feat: add accordions

* fix: add codebox

* feat: select permissions

* fix: permission checker

* fix: update permission checker

* feat: wire up role list

* fix: change icon color in project roles list

* fix: add color to icon in project roles

* add confirm dialog on role deletion

* feat: add created screen

* fix: cleanup

* fix: update access permissions

* fix: update admin panel

* feat: add edit screen

* fix: use color from palette and show toast when fails

* fix: refactor

* feat: validation

* feat: implement checked all

* fix: experimental toast

* fix: error handling

* fix: toast

* feat: unique name validation

* fix: update toasts

* fix: remove toast

* fix: reset flag

* fix: remove unused vars

* fix: update tests

* feat: add error icon for toast

* fix: replace wrong import for setToastData

* feat: Patch keying on ui to handle uniqueness for permissions across multiple envs

* fix: hasAccess handles *

* fix: update permission switch

* fix: use flag for environments rbac

* fix: do not include check all keys in payload

* fix: filter roles

* fix: account for new permissions in variants list

* fix: use effect on length property

* fix: set polling interval on user

* 4.5.0-beta.0

* fix: set initial permissions correctly to avoid race condition

* fix: handle activeEnvironment when it is null

* fix: remove unused imports

* fix: unused imports

* fix: Include missing project in hasAccess for deleteinng a tag

* fix: Move add/delete tag to use update feature permissions

* fix: use rest parameter

* fix: remove sandbox from scripts

* 4.6.0-beta.1

* fix: remove loading deduping

* fix: disable editing on builtin roles

* fix: check all

* fix: feature overview environment

* fix: refetch user on project create

* fix: update snaphots

* fix: frontend permissions

* fix: delete create confirm

* fix: remove unused permission

* 4.6.0-beta.4

* fix: update permissions

* fix: permissions

* fix: set error to string

* 4.6.0-beta.5

* fix: add permissions for project view

* fix: add permissions to useEffect deps

* fix: update permission for move feature toggle

* fix: add permissions data to useEffect

* fix: move settings

* fix: key on confetti

* fix: refetch project permissions on environment create/delete

* fix: optional coalescing error object

* fix: remove logging error

* fix: reorder disable importance in permissionbutton

* fix: add project roles to menu

* fix: add disabled check to revive

* fix: update snapshots

* fix: change text to select all

* fix: change text to select

* 4.6.0-beta.6

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
Co-authored-by: sighphyre <liquidwicked64@gmail.com>
2022-01-14 15:50:02 +01:00
Fredrik Strand Oseberg
bd6212a88f fix: account for invalid token in SWR Provider (#561)
* fix: revalidate user on stale data

* fix: swr provider
2021-12-15 11:18:10 +01:00
Youssef Khedher
5de56256e1 feat: RBAC environment role list (#558)
* fix: move admin to components and add ProjectRoles route

* feat: fetch project roles and create project roles list

* fix: add pagination and update tests

* update projectRoles folder name

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2021-12-14 10:36:19 +01:00
Fredrik Strand Oseberg
1f133beb46 fix: reset loader when fetch receives 401 and fix no auth type (#549) 2021-12-06 15:43:08 +01:00
Youssef Khedher
c34d8439bd Feat/splash (#491)
* splash screen

* add styles for controllers

* feat: animated circles

* fix: remove unused code

* fix: folder structure

* create splash screens for envs

* add styles and ui changes

* fix: revert App.tsx

* add splash state to store

* add splash to app.tsx + add a loader

* fix: mobile view + desktop view

* fix: render splash condition + styling fix

* fix: change splash display to full screen

* Update src/hooks/api/actions/useSplashApi/useSplashApi.ts

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>

* fix: change function type

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>

* fix: disable incrementing counter when matching the components length.

* fix: add SWR configuration

* fix: spelling mistakes in splash screen

* fix: add keys and adjust styling

* fix: tests

* fix: tests

* fix: default command timeout

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2021-11-26 11:12:37 +01:00
Christopher Kolstad
83443627d9 feat: Use new Variants API (#518)
* feat: Use new Variants API

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2021-11-25 14:05:44 +01:00
Fredrik Strand Oseberg
c0da8ed6bc Feat/new toggle overview (#497)
* feat: toggle overview accordions

* feat: accordion metrics

* feat: result

* add permission button

* fix: remove feature environment container from strategies tab

* chore: delete unused code

* fix: remove console log

* fix: remove unused code

* fix: cleanup

* fix: refactor

* fix: add empty states

* fix: loading

* feat: mobile accordions

* fix: button

* fix: strategies

* fix: cleanup

* fix: remove unused params

* fix: strategy button container

* fix: alter gradual rollout id

* fix: update userid strategy item

* fix: string truncator

* fix: strategy link

* fix: strategies tab

* fix: remove unused imports

* fix: visual improvements

* fix: add border
2021-11-12 11:47:19 +01:00
Youssef Khedher
ed6efff643 Fix/variants: Fix delete one variant + remove switch when add first variant (#466)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2021-10-28 13:32:29 +02:00
Fredrik Strand Oseberg
57928d50c6 Fix/environment list sorting (#447)
* fix: wait for api call before refetching

* fix: set active environment from feature instead of cache

* fix: remove console logs

* fix: add permission icon button to project card

* fix: remove project button

* fix: empty tooltip if it is not passed

* fix: add refresh interval

* fix: permission buttons

* fix: project permission buttons

* fix: remove unused imports

* fix: add projectId
2021-10-20 12:05:44 +02:00
Fredrik Strand Oseberg
005daa3740 Fix/login redirect (#442)
* fix: use swr with login

* fix: remove metrics poller

* fix: do not allow retry on 401

* fix: create swr provider

* fix: move accessprovider

* fix: remove metrics poller test

* fix: hide password auth if disableDefault is set

* Update src/component/project/ProjectList/ProjectList.tsx

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

* fix: console log

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
2021-10-19 13:08:25 +02:00
Ivar Conradi Østhus
edd6706ffe fix: new create toggle page 2021-10-15 14:16:17 +02:00
Christopher Kolstad
6d42502792 Add default strategy type to strategy hook
- Fixes the missing sidebar while loading the strategy types
  Trello:
  https://trello.com/c/WJk8bI8l/490-feature-strategies-loading-state
2021-10-15 11:43:11 +02:00
Christopher Kolstad
4230fc98ed Feat/new metrics tab (#432)
* New metric tab if environment flag is active

* Prepare new metrics tab - need styling help!!
2021-10-15 10:05:10 +02:00
Christopher Kolstad
166c6fef0e Write a generic http thrower for status > 299 (#405)
* Write a generic http thrower for status > 299

* Perform location reload if user is no longer authorized, i.e if status === 401
2021-10-15 09:21:38 +02:00
Ivar Conradi Østhus
1058b4049c fix: envrionments should give understandable error if not possible to… (#433) 2021-10-14 19:58:57 +02:00
Christopher Kolstad
8a9dc32bad Create hook for fetching featureMetrics (#414)
* Create hook for fetching featureMetrics
2021-10-13 10:20:34 +02:00
Ivar Conradi Østhus
012cfc1806 fix: hide project CRUD actions for oss (#416) 2021-10-12 13:21:45 +02:00
Fredrik Strand Oseberg
7da3573edb Feat/visual enhancements (#404)
* fix: stale style

* fix: execution plan styling

* fix: paths

* fix: remove console logs

* fix: snapshots

* fix: add comma

* fix: update snapshots
2021-10-08 16:19:06 +02:00
Ivar Conradi Østhus
7406cbbaa7 fix: add clone feature toggle via API 2021-10-08 13:47:17 +02:00
Fredrik Strand Oseberg
37b818fce4 Feat/feature toggle view tags (#399)
* feat: new tags

* feat: archive

* wip: variants

* add support for deletion, variable/fixed weight toggle and weight editing

* Add confirmation dialogue for deleting variants

* feat: settings

* fix: recalculate on project name change

* feat: feature environment metrics

* feat: environment

* Add toggle for stale

* fix: refetch on create strategy

* fix: lint

* fix: update snapshots

* fix: add link to icon button

* fix: revert test user

* fix: increase size!

* fix: use permission attr for ResponsiveButton

* fix: dev dependency

* fix: theme

* fix: stale style

* Update src/component/feature/FeatureView2/FeatureSettings/FeatureSettingsMetadata/FeatureTypeSelect/FeatureTypeSelect.tsx

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

* Update src/component/feature/FeatureView2/FeatureVariants/FeatureVariantsList/FeatureVariantsList.tsx

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

* Update src/component/feature/FeatureView2/FeatureVariants/FeatureVariantsList/FeatureVariantsListItem/useDeleteVariantMarkup.tsx

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
Co-authored-by: Christopher Kolstad <git@chriswk.no>
2021-10-08 11:23:29 +02:00
Fredrik Strand Oseberg
47579e2616 Feat/toggle view (#389)
* feat: toggle view

* fix: navigation

* eat: toggle view

* fix: resolve lint

* fix: remove console logs

* fix: reimplement feature validation
2021-10-01 13:49:18 +02:00
Fredrik Strand Oseberg
87414c1c9c feat: e2e tests and mobile views (#348)
* fix: add sidebar button

* fix: set absolute positioned sidebar button

* feat: test setup

* fix: add tests for adding strategy

* fix: add delete  strategy test

* feat: add workflow

* feat: add vercel token

* fix: update project id

* fix: increase sleep

* fix: sleep

* fix: vercel

* fix: typo

* fix: vercel preview url action

* fix: yml formatting

* fix: steps

* fix: format

* fix: runs on

* fix: team id

* fix: teamid

* fix: add workflow

* fix: remove unused import

* fix: add token

* fix: add configuration

* fix: set env variables

* fix: use with

* feat: main navigation routes

* feat: mobile views

* fix: change spec name

* fix: update cypress project id

* fix: add record key

* fix: button positioning

* feat: permissions

* fix: custom strategy

* fix: remove unused action yml

* fix: update yarn lock

* fix: keys

* fix: remove videos and screenshots

* fix: add cyrpess folders to gitignore

* fix: env variable
2021-09-30 11:44:30 +02:00
Ivar Conradi Østhus
97893aa762 feat: project environments configuration (#365) 2021-09-30 10:24:16 +02:00
Fredrik Strand Oseberg
27988e4b30 Feat/environment strategies (#339)
* feat: strategies list

* feat: dnd

* fix: resolve reference issues

* feat: configure strategy wip

* feat: rearrange list

* feat: add debounce and execution plan

* feat: add separator

* feat: update strategy

* fix: feature strategy accordion key

* fix: localize parameter update logic

* feat: ts conversion

* fix: perf issues

* feat: production guard

* fix: clean up environment list

* fix: implement markup hooks for environment list

* feat: wip constraints

* fix: handle nested data structure reference issue

* fix: clone deep on child props

* fix: remove constraints check

* fix: revert to strategies length

* fix: refactor useFeature

* feat: cache revalidation

* fix: set correct starting tab

* fix: reset params on adding new strategy

* fix: refactor to use useSWR instead of local cache

* fix: check dirty directly from new params

* fix: dialogue ts

* fix: Clean-up typescript warnings

* fix: some more typescript nits

* feat: strategy execution

* feat: strategy execution for environment

* fix: refactor execution separator

* fix: remove unused property

* fix: add header

* fix: 0 value for rollout

* fix: update snapshots

* fix: remove empty deps

* fix: use constant for env type

* fix: use default for useFeatureStrategy

* fix: update snapshot

* Update src/component/feature/FeatureView2/FeatureStrategies/FeatureStrategiesEnvironments/FeatureStrategiesEnvironmentList/useDeleteStrategyMarkup.tsx

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

* Update src/component/feature/FeatureView2/FeatureStrategies/FeatureStrategyExecution/FeatureStrategyExecution.tsx

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

* Update src/component/feature/strategy/EditStrategyModal/general-strategy.jsx

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
Co-authored-by: UnleashTeam <79193084+UnleashTeam@users.noreply.github.com>
2021-09-27 13:35:32 +02:00
Ivar Conradi Østhus
1845eb95e6 feat: Add project and environment scoping to API keys (#336)
Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2021-09-26 22:41:38 +02:00
Fredrik Strand Oseberg
92f3f8af08 Feat/environment crud (#335)
* feat: add env

* fix: create environment form

* feat: create environment

* feat: add deletion protection

* fix: lift up state

* feat: add ability to update environment

* fix: remove env reset

* fix: remove link

* feat: add drag and drop sorting

* fix: remove unused imports

* feat: add methods to toggle env on/off

* feat: only make api call on drop

* fix: disabled text

* fix: add disabled indicator

* fix: add edit env payload

* fix: add E flag

* fix: cleanup

* fix: update snapshots

* fix: remove useFeature

* fix: change property to errorText

* fix: update tests

* fix: change menu

* fix: update snapshots

* feat: toggle view v2

* fix: handle error on sort order api call

* fix: remove unused import

* fix: useFeature

* fix: update tests

* fix: console logs

* fix: use try catch

* fix: update snapshots
2021-09-14 14:20:23 +02:00
Fredrik Strand Oseberg
728477e238 Feat/feature routes (#327)
* fix: setup new routes

* fix: copy toggle

* fix: link to correct project

* fix: redirect oss to default

* fix: update tests

* fix: edit path

* fix: remove invalid property

* fix: add project to test data

* fix: update paths to use features

* fix: update test data

* fix: update snapshots

* fix: only show button to add toggle if you have access

* fix: change heading

* fix: use new route

* fix: archive view

* fix: update snapshots

* fix: sorting headers

* fix: list headers

* fix: only show span if revive is present

* fix: add border to list

* fix: update snapshots

* fix: remove console log
2021-08-25 13:37:22 +02:00
Fredrik Strand Oseberg
1a63d91f95 Feat/new navigation (#314)
* feat: change color scheme

* feat: add navigation menu

* fix: add bg image

* fix: add archive and strategies to navigation

* fix: round corners

* feat: mobile view project details

* feat: mobile view navigation

* fix: only show menu if user is admin

* fix: rename navigation

* fix: only render relevant routes for oss context

* feat: add project actions

* feat: add icons

* feat: add breadcrumbs

* fix: place breadcrumbs absolutely

* fix: adjust breadcrumbs

* fix: toast

* fix: cleanup

* fix login

* fix: breadcrumbs

* fix: add billing link

* fix: links

* fix: feature view

* fix: path to go back

* fix: remove default value

* fix: remove unused imports

* refactor: delete outdated test

* fix: add item to filter in breadcrumb

* fix: remove console log
2021-07-16 15:41:54 +02:00
Fredrik Strand Oseberg
85a7c55fdf Feat/group by projects (#308)
This PR adds support for projects as a first class citizen, and toggling features on in different environments.
2021-07-07 11:04:36 +02:00
Fredrik Strand Oseberg
f0d6e45361 Feat/bootstrap (#281)
* feat: add bootstrap endpoint redux integration

* fix: remove useEffect from app

* feat: add path provider

* feat: browser router

* fix: delete path formatter

* fix: return absolute path if no basepath

* fix: format seenURI

* feat: get bootstrap uri from html

* fix: remove unused imports

* fix: remove initial loading call

* fix: wrap logout in formatApiPath

* feat: import logo

* feat: remove accessor from receiveConfig

* fix: update tests

* fix: update asset paths

* fix: remove data from app

* fix: revert moving access provider

* fix: remove build watch

* fix: remove console logs

* fix: update asset paths

* fix: remove path logic from base64

* fix: remove unused import

* set uiconfig

* change notification text

* fix: match uiConfig with expected format

* feat: add proclamation

* fix: move proclamation

* fix: remove unused imports

* fix: add target _blank

* fix: allow optional toast

* fix: return empty string if default value is present

* fix: set basepath to empty string if it matches default
2021-05-04 09:59:42 +02:00
Fredrik Strand Oseberg
1f46d3b21b Fix/cleanup (#276)
* chore: update changelog

* 4.0.0-alpha.10

* fix: add dnd provider as top level wrapper

* fix: add forgotten password link to password auth

* fix: remove unecceesary dnd component

* fix: check for usedTokenError
2021-04-27 09:48:00 +02:00