From 92de8fb396265d057f18aab4de0bc8aff4b90188 Mon Sep 17 00:00:00 2001 From: f0x52 Date: Sat, 19 Aug 2023 14:33:15 +0200 Subject: [feature] Instance rules (#2125) * init instance rules database model, admin api * expose instance rules in public instance api * public /api/v1/instance/rules route * GET ruleById * createRule route * createRule auth check * updateRule * deleteRule * list rules on about page * ruleGet auth * add about page ids for anchors * process and store adding violated rules to reports * admin api models for instance rules * instance rule edit frontend * change rule inputs to textareas * database fixes after rebase (#2124) * remove unused imports * fix db migration column name * fix tests * fix more tests * fix postgres error with wrongly used Ident * add some tests, fiddle with rule model a bit, fix postgres migration * swagger docs --------- Co-authored-by: tsmethurst --- web/source/settings/admin/settings.js | 127 ---------------------------------- 1 file changed, 127 deletions(-) delete mode 100644 web/source/settings/admin/settings.js (limited to 'web/source/settings/admin/settings.js') diff --git a/web/source/settings/admin/settings.js b/web/source/settings/admin/settings.js deleted file mode 100644 index ec986a6c4..000000000 --- a/web/source/settings/admin/settings.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - GoToSocial - Copyright (C) GoToSocial Authors admin@gotosocial.org - SPDX-License-Identifier: AGPL-3.0-or-later - - 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 . -*/ - -"use strict"; - -const React = require("react"); - -const query = require("../lib/query"); - -const { - useTextInput, - useFileInput -} = require("../lib/form"); - -const useFormSubmit = require("../lib/form/submit"); - -const { - TextInput, - TextArea, - FileInput -} = require("../components/form/inputs"); - -const FormWithData = require("../lib/form/form-with-data"); -const MutationButton = require("../components/form/mutation-button"); - -module.exports = function AdminSettings() { - return ( - - ); -}; - -function AdminSettingsForm({ data: instance }) { - const form = { - title: useTextInput("title", { - source: instance, - validator: (val) => val.length <= 40 ? "" : "Instance title must be 40 characters or less" - }), - thumbnail: useFileInput("thumbnail", { withPreview: true }), - thumbnailDesc: useTextInput("thumbnail_description", { source: instance }), - shortDesc: useTextInput("short_description", { source: instance }), - description: useTextInput("description", { source: instance }), - contactUser: useTextInput("contact_username", { source: instance, valueSelector: (s) => s.contact_account?.username }), - contactEmail: useTextInput("contact_email", { source: instance, valueSelector: (s) => s.email }), - terms: useTextInput("terms", { source: instance }) - }; - - const [submitForm, result] = useFormSubmit(form, query.useUpdateInstanceMutation()); - - return ( -
-

Instance Settings

- - -
-

Instance thumbnail

-
- {form.thumbnailDesc.value - -
-
- - - -