Skip to content

Commit f221aeb

Browse files
authored
ui.actions.deleteObject for quilt config editor (#4692)
1 parent c5bd6ba commit f221aeb

File tree

6 files changed

+52
-1
lines changed

6 files changed

+52
-1
lines changed

catalog/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ where verb is one of
1818

1919
## Changes
2020

21+
- [Fixed] Add missing `deleteObject` property to GUI config editor to enable/disable delete buttons for files and directories ([#4692](https://github.com/quiltdata/quilt/pull/4692))
2122
- [Changed] Hide file and directory delete buttons in Bucket tab by default; enable with `ui.actions.deleteObject` ([#4689](https://github.com/quiltdata/quilt/pull/4689))
2223
- [Added] Display detailed permission error messages when bucket add/update fails due to insufficient S3 permissions ([#4670](https://github.com/quiltdata/quilt/pull/4670))
2324
- [Added] Support `prefixes` field in bucket configuration for prefix-scoped bucket access ([#4670](https://github.com/quiltdata/quilt/pull/4670))

catalog/app/components/FileEditor/QuiltConfigEditor/BucketPreferences/BucketPreferences.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@ const I18N_FIELDS = {
170170
'ui.actions.copyPackage': '"PUSH TO BUCKET" on the package page',
171171
'ui.actions.createPackage':
172172
'"CREATE PACKAGE" on the package list and bucket listing pages',
173+
'ui.actions.deleteObject':
174+
'Buttons to delete files and directories under the "BUCKET" tab',
173175
'ui.actions.deleteRevision': '"DELETE REVISION" menu item on the package page',
174176
'ui.actions.downloadObject': 'Download buttons under the "BUCKET" tab',
175177
'ui.actions.downloadPackage': 'Download buttons under the "PACKAGES" tab',

catalog/app/components/FileEditor/QuiltConfigEditor/BucketPreferences/State.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ describe('components/FileEditor/QuiltConfigEditor/BucketPreferences/State', () =
121121
actions:
122122
copyPackage: false
123123
createPackage: false
124+
deleteObject: false
124125
deleteRevision: true
125126
downloadObject: false
126127
downloadPackage: false
@@ -230,6 +231,7 @@ describe('components/FileEditor/QuiltConfigEditor/BucketPreferences/State', () =
230231
actions:
231232
copyPackage: false
232233
createPackage: false
234+
deleteObject: false
233235
deleteRevision: true
234236
downloadObject: false
235237
downloadPackage: false
@@ -284,6 +286,7 @@ describe('components/FileEditor/QuiltConfigEditor/BucketPreferences/State', () =
284286
).toStrictEqual({
285287
'ui.actions.copyPackage': false,
286288
'ui.actions.createPackage': false,
289+
'ui.actions.deleteObject': false,
287290
'ui.actions.deleteRevision': true,
288291
'ui.actions.downloadObject': false,
289292
'ui.actions.downloadPackage': false,

catalog/app/components/FileEditor/QuiltConfigEditor/BucketPreferences/State.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ export interface TypedValue<V extends KeyedValue['value']> {
1616

1717
export type KeyedValue<K extends Key = Key> = TypedValue<NonNullable<Defaults[K]>>
1818

19-
function childOfBool<T>(parent: undefined | boolean | Record<string, T>, key: string) {
19+
function childOfBool<T, K extends string>(
20+
parent: undefined | boolean | Partial<Record<K, T>>,
21+
key: K,
22+
) {
2023
return typeof parent === 'boolean' ? parent : parent?.[key]
2124
}
2225

@@ -33,6 +36,7 @@ function parseUser(config: string) {
3336
return {
3437
'ui.actions.copyPackage': childOfBool(json?.ui?.actions, 'copyPackage'),
3538
'ui.actions.createPackage': childOfBool(json?.ui?.actions, 'createPackage'),
39+
'ui.actions.deleteObject': childOfBool(json?.ui?.actions, 'deleteObject'),
3640
'ui.actions.deleteRevision': childOfBool(json?.ui?.actions, 'deleteRevision'),
3741
'ui.actions.downloadObject': childOfBool(json?.ui?.actions, 'downloadObject'),
3842
'ui.actions.downloadPackage': childOfBool(json?.ui?.actions, 'downloadPackage'),
@@ -78,6 +82,7 @@ type Defaults = Required<ReturnType<typeof parseUser>>
7882
const sys: Defaults = {
7983
'ui.actions.copyPackage': true,
8084
'ui.actions.createPackage': true,
85+
'ui.actions.deleteObject': false,
8186
'ui.actions.deleteRevision': false,
8287
'ui.actions.downloadObject': true,
8388
'ui.actions.downloadPackage': true,
@@ -137,6 +142,7 @@ export function parse(config: string, ext: Partial<Defaults>) {
137142
return {
138143
'ui.actions.copyPackage': val('ui.actions.copyPackage', user, ext),
139144
'ui.actions.createPackage': val('ui.actions.createPackage', user, ext),
145+
'ui.actions.deleteObject': val('ui.actions.deleteObject', user, ext),
140146
'ui.actions.deleteRevision': val('ui.actions.deleteRevision', user, ext),
141147
'ui.actions.downloadObject': val('ui.actions.downloadObject', user, ext),
142148
'ui.actions.downloadPackage': val('ui.actions.downloadPackage', user, ext),

catalog/app/components/FileEditor/QuiltConfigEditor/BucketPreferences/__snapshots__/BucketPreferences.spec.tsx.snap

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,24 @@ exports[`components/FileEditor/QuiltConfigEditor/BucketPreferences/BucketPrefere
6969
</span>
7070
</label>
7171
</div>
72+
<div
73+
class="MuiFormControl-root"
74+
>
75+
<label
76+
class="MuiFormControlLabel-root"
77+
>
78+
<div
79+
id="checkbox"
80+
>
81+
false
82+
</div>
83+
<span
84+
class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"
85+
>
86+
Buttons to delete files and directories under the "BUCKET" tab
87+
</span>
88+
</label>
89+
</div>
7290
<div
7391
class="MuiFormControl-root"
7492
>
@@ -768,6 +786,24 @@ exports[`components/FileEditor/QuiltConfigEditor/BucketPreferences/BucketPrefere
768786
</span>
769787
</label>
770788
</div>
789+
<div
790+
class="MuiFormControl-root"
791+
>
792+
<label
793+
class="MuiFormControlLabel-root"
794+
>
795+
<div
796+
id="checkbox"
797+
>
798+
false
799+
</div>
800+
<span
801+
class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"
802+
>
803+
Buttons to delete files and directories under the "BUCKET" tab
804+
</span>
805+
</label>
806+
</div>
771807
<div
772808
class="MuiFormControl-root"
773809
>

catalog/app/utils/BucketPreferences/BucketPreferences.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ const defaultGallery: GalleryPreferences = {
144144
}
145145

146146
function getDefaultPreferences(bucket?: string): BucketPreferences {
147+
// NOTE: if you add values here,
148+
// also update UI values for editor
149+
// in app/components/FileEditor/QuiltConfigEditor/BucketPreferences/State.tsx
147150
return {
148151
ui: {
149152
actions: {

0 commit comments

Comments
 (0)