Files
kopia/htmlui/src/SetupGCS.js
Jarek Kowalski 3b87902433 Kopia UI improvements for repository management (#592)
* cli: added --tls-print-server-cert flag

This prints complete server certificate that is base64 and PEM-encoded.

It is needed for Electron to securely connect to the server outside of
the browser, since there's no way to trust certificate by fingerprint.

* server: added repo/exists API

* server: added ClientOptions to create and connect API

* server: exposed current-user API

* server: API to change description of a repository

* htmlui: refactored connect/create flow

This cleaned up the code a lot and made UX more obvious.

* kopia-ui: simplified repository management UX

Removed repository configuration window which was confusing due to
the notion of 'server'.

Now KopiaUI will automatically launch 'kopia server --ui' for each
config found in the kopia config directory and shut it down every
time repository is disconnected.

See https://youtu.be/P4Ll_LR4UVM for a quick demo.

Fixes #583
2020-09-07 08:00:19 -07:00

35 lines
1.2 KiB
JavaScript

import React, { Component } from 'react';
import Form from 'react-bootstrap/Form';
import { validateRequiredFields, handleChange, RequiredField, OptionalField } from './forms';
export class SetupGCS extends Component {
constructor(props) {
super();
this.state = {
...props.initial
};
this.handleChange = handleChange.bind(this);
}
validate() {
return validateRequiredFields(this, ["bucket"])
}
render() {
return <>
<Form.Row>
{RequiredField(this, "GCS Bucket", "bucket", { autoFocus: true, placeholder: "enter bucket name" })}
{OptionalField(this, "Object Name Prefix", "prefix", { placeholder: "enter object name prefix or leave empty", type: "password" })}
</Form.Row>
<Form.Row>
{OptionalField(this, "Credentials File", "credentialsFile", { placeholder: "enter name of credentials JSON file" })}
</Form.Row>
<Form.Row>
{OptionalField(this, "Credentials JSON", "credentials", { placeholder: "paste JSON credentials here", as: "textarea", rows: 5 })}
</Form.Row>
</>;
}
}