summaryrefslogtreecommitdiff
path: root/web/source/settings/admin/settings.js
diff options
context:
space:
mode:
authorLibravatar f0x52 <f0x@cthu.lu>2022-10-03 16:46:38 +0200
committerLibravatar GitHub <noreply@github.com>2022-10-03 16:46:38 +0200
commit5249294a166c901469eeac1d3297e913b4a125e7 (patch)
treed68ff7bebbc0135d23c18520417c668155aa56f2 /web/source/settings/admin/settings.js
parent[performance] add user cache and database (#879) (diff)
downloadgotosocial-5249294a166c901469eeac1d3297e913b4a125e7.tar.xz
[chore] Bundler restructure (#880)
* re-structure bundler, settings panel files * add more info logging * tidy up CSS syntax errors * split into lib/ files * livereloading server * fix factor function for production builds * remove testing console.log * default to production env, saves 300kb bundle size
Diffstat (limited to 'web/source/settings/admin/settings.js')
-rw-r--r--web/source/settings/admin/settings.js110
1 files changed, 110 insertions, 0 deletions
diff --git a/web/source/settings/admin/settings.js b/web/source/settings/admin/settings.js
new file mode 100644
index 000000000..845a1f924
--- /dev/null
+++ b/web/source/settings/admin/settings.js
@@ -0,0 +1,110 @@
+/*
+ GoToSocial
+ Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+"use strict";
+
+const Promise = require("bluebird");
+const React = require("react");
+const Redux = require("react-redux");
+
+const Submit = require("../components/submit");
+
+const api = require("../lib/api");
+const submit = require("../lib/submit");
+
+const adminActions = require("../redux/reducers/instances").actions;
+
+const {
+ TextInput,
+ TextArea,
+ File
+} = require("../components/form-fields").formFields(adminActions.setAdminSettingsVal, (state) => state.instances.adminSettings);
+
+module.exports = function AdminSettings() {
+ const dispatch = Redux.useDispatch();
+
+ const [errorMsg, setError] = React.useState("");
+ const [statusMsg, setStatus] = React.useState("");
+
+ const updateSettings = submit(
+ () => dispatch(api.admin.updateInstance()),
+ {setStatus, setError}
+ );
+
+ return (
+ <div>
+ <h1>Instance Settings</h1>
+ <TextInput
+ id="title"
+ name="Title"
+ placeHolder="My GoToSocial instance"
+ />
+
+ <TextArea
+ id="short_description"
+ name="Short description"
+ placeHolder="A small testing instance for the GoToSocial alpha."
+ />
+ <TextArea
+ id="description"
+ name="Full description"
+ placeHolder="A small testing instance for the GoToSocial alpha."
+ />
+
+ <TextInput
+ id="contact_account.username"
+ name="Contact user (local account username)"
+ placeHolder="admin"
+ />
+ <TextInput
+ id="email"
+ name="Contact email"
+ placeHolder="admin@example.com"
+ />
+
+ <TextArea
+ id="terms"
+ name="Terms & Conditions"
+ placeHolder=""
+ />
+
+ {/* <div className="file-upload">
+ <h3>Instance avatar</h3>
+ <div>
+ <img className="preview avatar" src={instance.avatar} alt={instance.avatar ? `Avatar image for the instance` : "No instance avatar image set"} />
+ <File
+ id="avatar"
+ fileType="image/*"
+ />
+ </div>
+ </div>
+
+ <div className="file-upload">
+ <h3>Instance header</h3>
+ <div>
+ <img className="preview header" src={instance.header} alt={instance.header ? `Header image for the instance` : "No instance header image set"} />
+ <File
+ id="header"
+ fileType="image/*"
+ />
+ </div>
+ </div> */}
+ <Submit onClick={updateSettings} label="Save" errorMsg={errorMsg} statusMsg={statusMsg} />
+ </div>
+ );
+}; \ No newline at end of file