Setup and migration UI refactor (#1190)

* Make config instance-based
* Remove config dependency in paths
* Refactor config init
* Allow startup without database
* Get system status at UI initialise
* Add setup wizard
* Cache and Metadata optional. Database mandatory
* Handle metadata not set during full import/export
* Add links
* Remove config check middleware
* Stash not mandatory
* Panic on missing mandatory config fields
* Redirect setup to main page if setup not required
* Add migration UI
* Remove unused stuff
* Move UI initialisation into App
* Don't create metadata paths on RefreshConfig
* Add folder selector for generated in setup
* Env variable to set and create config file.
Make docker images use a fixed config file.
* Set config file during setup
This commit is contained in:
WithoutPants
2021-04-12 09:31:33 +10:00
committed by GitHub
parent c38660d209
commit f6ffda7504
52 changed files with 1467 additions and 682 deletions

View File

@@ -281,6 +281,20 @@ export const useLatestVersion = () =>
});
export const useConfiguration = () => GQL.useConfigurationQuery();
export const mutateSetup = (input: GQL.SetupInput) =>
client.mutate<GQL.SetupMutation>({
mutation: GQL.SetupDocument,
variables: { input },
refetchQueries: getQueryNames([GQL.ConfigurationDocument]),
update: deleteCache([GQL.ConfigurationDocument]),
});
export const mutateMigrate = (input: GQL.MigrateInput) =>
client.mutate<GQL.MigrateMutation>({
mutation: GQL.MigrateDocument,
variables: { input },
});
export const useDirectory = (path?: string) =>
GQL.useDirectoryQuery({ variables: { path } });
@@ -690,6 +704,17 @@ export const useMetadataUpdate = () => GQL.useMetadataUpdateSubscription();
export const useLoggingSubscribe = () => GQL.useLoggingSubscribeSubscription();
export const querySystemStatus = () =>
client.query<GQL.SystemStatusQuery>({
query: GQL.SystemStatusDocument,
fetchPolicy: "no-cache",
});
export const useSystemStatus = () =>
GQL.useSystemStatusQuery({
fetchPolicy: "no-cache",
});
export const useLogs = () =>
GQL.useLogsQuery({
fetchPolicy: "no-cache",