- adminSettings() {
- return (
- <div>
- <h5>{i18n.t("admin_settings")}</h5>
- <form onSubmit={linkEvent(this, this.handleSiteConfigSubmit)}>
- <div class="form-group row">
- <label
- class="col-12 col-form-label"
- htmlFor={this.siteConfigTextAreaId}
- >
- {i18n.t("site_config")}
- </label>
- <div class="col-12">
- <textarea
- id={this.siteConfigTextAreaId}
- value={toUndefined(this.state.siteConfigHjson)}
- onInput={linkEvent(this, this.handleSiteConfigHjsonChange)}
- class="form-control text-monospace"
- rows={3}
- />
- </div>
- </div>
- <div class="form-group row">
- <div class="col-12">
- <button type="submit" class="btn btn-secondary mr-2">
- {this.state.siteConfigLoading ? (
- <Spinner />
- ) : (
- capitalizeFirstLetter(i18n.t("save"))
- )}
- </button>
- </div>
- </div>
- </form>
- </div>
- );
- }
-
- handleSiteConfigSubmit(i: AdminSettings, event: any) {
- event.preventDefault();
- i.state.siteConfigLoading = true;
- let form = new SaveSiteConfig({
- config_hjson: toUndefined(i.state.siteConfigHjson),
- auth: auth().unwrap(),
- });
- WebSocketService.Instance.send(wsClient.saveSiteConfig(form));
- i.setState(i.state);
- }
-
- handleSiteConfigHjsonChange(i: AdminSettings, event: any) {
- i.state.siteConfigHjson = event.target.value;
- i.setState(i.state);
- }
-