Skip to content

Commit 116e978

Browse files
committed
Reinstate schema import, remove unneccesary components. Fixes: Hyperfoil#1676
1 parent 7b2c7a3 commit 116e978

14 files changed

+99
-380
lines changed

horreum-web/src/components/ExportImport.tsx

-122
This file was deleted.

horreum-web/src/components/ImportButton.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default function ImportButton({label, onLoad, onImport, onImported}: Impo
3636
}
3737
return (
3838
<>
39-
<Button variant="secondary" onClick={() => setOpen(true)}>
39+
<Button style={{marginRight: "16px", width: "100pt"}} variant="secondary" onClick={() => setOpen(true)}>
4040
{label || "Import"}
4141
</Button>
4242
<Modal

horreum-web/src/components/SavedTabs.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export function modifiedFunc(ref: TabFunctionsRef) {
2424
}
2525

2626
type SavedTabProps = FragmentTabProps & {
27+
canSave: boolean
2728
onSave(): Promise<any>
2829
onReset?(): void
2930
isModified(): boolean
@@ -63,7 +64,7 @@ export default function SavedTabs(props: SavedTabsProps) {
6364
onSave={() => {
6465
const childProps = children[activeKey.current].props
6566
if ("onSave" in childProps) {
66-
return childProps.onSave().then(_ => {
67+
return childProps.onSave?.().then(_ => {
6768
blocker.proceed?.()
6869
if (props.afterSave) {
6970
return props.afterSave()
@@ -91,7 +92,7 @@ export default function SavedTabs(props: SavedTabsProps) {
9192
<FragmentTab key={i} {...c.props} />
9293
))}
9394
</FragmentTabs>
94-
{props.canSave !== false && "onSave" in children[activeKey.current].props && (
95+
{props.canSave !== false && "canSave" in children[activeKey.current].props && (children[activeKey.current].props as SavedTabProps).canSave && (
9596
<ActionGroup style={{ marginTop: 0 }}>
9697
<Button
9798
variant="primary"
@@ -101,7 +102,7 @@ export default function SavedTabs(props: SavedTabsProps) {
101102
const childProps = children[activeKey.current].props
102103
if ("onSave" in childProps) {
103104
childProps
104-
.onSave()
105+
.onSave?.()
105106
.then(() => {
106107
if (props.afterSave) {
107108
return props.afterSave()

horreum-web/src/domain/admin/Admin.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export default function Admin() {
2929
title="Administrators"
3030
fragment="administrators"
3131
onSave={saveFunc(adminFuncsRef)}
32+
canSave={true}
3233
onReset={resetFunc(adminFuncsRef)}
3334
isModified={modifiedFunc(adminFuncsRef)}
3435
>
@@ -38,6 +39,7 @@ export default function Admin() {
3839
title="Teams"
3940
fragment="teams"
4041
onSave={saveFunc(teamsFuncsRef)}
42+
canSave={true}
4143
onReset={resetFunc(teamsFuncsRef)}
4244
isModified={modifiedFunc(teamsFuncsRef)}
4345
>

horreum-web/src/domain/schemas/Schema.tsx

+13-3
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ import TeamSelect from "../../components/TeamSelect"
3838
import Transformers from "./Transformers"
3939
import Labels from "./Labels"
4040
import {Access, getSchema, Schema as SchemaDef, schemaApi, Banner as BannerData} from "../../api"
41-
import SchemaExportImport from "./SchemaExportImport"
4241
import {AppContext} from "../../context/appContext";
4342
import {AppContextType} from "../../context/@types/appContextTypes";
4443
import { TimeoutBanner, TimeoutBannerProps } from "../../Banner"
44+
import ExportButton from "../../components/ExportButton";
4545

4646
type SchemaParams = {
4747
schemaId: string
@@ -314,6 +314,7 @@ export default function Schema() {
314314
title="General"
315315
fragment="general"
316316
onSave={save}
317+
canSave={true}
317318
onReset={() => {
318319
setModifiedSchema(schema)
319320
}}
@@ -332,6 +333,7 @@ export default function Schema() {
332333
title="JSON schema"
333334
fragment="json-schema"
334335
onSave={save}
336+
canSave={true}
335337
onReset={() => {
336338
setModifiedSchema(schema)
337339
setEditorSchema(schema?.schema ? toString(schema?.schema) : undefined)
@@ -384,6 +386,7 @@ export default function Schema() {
384386
title="Transformers"
385387
fragment="transformers"
386388
onSave={saveFunc(transformersFuncsRef)}
389+
canSave={true}
387390
onReset={resetFunc(transformersFuncsRef)}
388391
isModified={modifiedFunc(transformersFuncsRef)}
389392
>
@@ -397,6 +400,7 @@ export default function Schema() {
397400
title="Labels"
398401
fragment="labels"
399402
onSave={saveFunc(labelsFuncsRef)}
403+
canSave={true}
400404
onReset={resetFunc(labelsFuncsRef)}
401405
isModified={modifiedFunc(labelsFuncsRef)}
402406
>
@@ -405,12 +409,18 @@ export default function Schema() {
405409
<SavedTab
406410
title="Export"
407411
fragment="export"
408-
onSave={() => Promise.resolve()}
409412
onReset={noop}
413+
canSave={false}
414+
onSave={() => Promise.resolve()}
410415
isHidden={!isTester}
411416
isModified={() => false}
412417
>
413-
<SchemaExportImport id={schemaIdVal} name={schema?.name || "schema"} />
418+
419+
<Form isHorizontal>
420+
<FormGroup label="Export" fieldId="export">
421+
<ExportButton name={schema?.name || "schema"} export={() => schemaApi.exportSchema(schemaIdVal)} />
422+
</FormGroup>
423+
</Form>
414424
</SavedTab>
415425
</SavedTabs>
416426
</CardBody>

horreum-web/src/domain/schemas/SchemaExportImport.tsx

-83
This file was deleted.

horreum-web/src/domain/schemas/SchemaImportButton.tsx

-29
This file was deleted.

0 commit comments

Comments
 (0)