diff --git a/.github/ISSUE_TEMPLATE/feature request.yml b/.github/ISSUE_TEMPLATE/feature request.yml new file mode 100644 index 0000000..f33324e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature request.yml @@ -0,0 +1,4 @@ +name: Feature Request +about: Request a new feature +title: "[FEAT]: " +labels: [feature, review] \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/issue report.yml b/.github/ISSUE_TEMPLATE/issue report.yml new file mode 100644 index 0000000..4ab3ea0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue report.yml @@ -0,0 +1,60 @@ +name: Issue Report +description: File an issue report +title: "[BUG]: " +labels: [bug, review] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + - type: textarea + id: what-happened + attributes: + label: What happened? + description: "A clear and concise description of what the bug is." + placeholder: "When I do X, I see Y." + validations: + required: true + - type: textarea + id: what-should-happen + attributes: + label: What should have happened? + description: "A clear and concise description of what you expected to happen." + placeholder: "When I do X, I should see Z." + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: How to reproduce the bug? + description: "A clear and concise description of how to reproduce the bug." + placeholder: "Steps to reproduce the behavior:" + value: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + - type: textarea + id: logs + attributes: + label: Relevant log output + description: "Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks." + render: shell + - type: textarea + id: other-details + attributes: + label: Other details + description: "Anything else you'd like to add?" + - type: textarea + id: system-details + attributes: + label: System details + description: "Please fill out the following details about your system depending on how relevant (always include Cosmos Version!)." + value: | + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + validations: + required: true \ No newline at end of file diff --git a/client/src/menu-items/support.jsx b/client/src/menu-items/support.jsx index b48cb4c..335353e 100644 --- a/client/src/menu-items/support.jsx +++ b/client/src/menu-items/support.jsx @@ -1,5 +1,5 @@ // assets -import { GithubOutlined, QuestionOutlined } from '@ant-design/icons'; +import { GithubOutlined, QuestionOutlined, BugOutlined } from '@ant-design/icons'; import DiscordOutlined from '../assets/images/icons/discord.svg' import DiscordOutlinedWhite from '../assets/images/icons/discord_white.svg' import { useTheme } from '@mui/material/styles'; @@ -45,6 +45,15 @@ const support = { icon: QuestionOutlined, external: true, target: true + }, + { + id: 'bug', + title: 'Found a Bug?', + type: 'item', + url: 'https://github.com/azukaar/Cosmos-Server/issues/new/choose', + icon: BugOutlined, + external: true, + target: true } ] }; diff --git a/client/src/pages/config/users/configman.jsx b/client/src/pages/config/users/configman.jsx index 848d6ae..fdcf273 100644 --- a/client/src/pages/config/users/configman.jsx +++ b/client/src/pages/config/users/configman.jsx @@ -28,6 +28,7 @@ import { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons'; import AnimateButton from '../../../components/@extended/AnimateButton'; import RestartModal from './restart'; import { WarningOutlined, PlusCircleOutlined, CopyOutlined, ExclamationCircleOutlined , SyncOutlined, UserOutlined, KeyOutlined } from '@ant-design/icons'; +import { CosmosInputText, CosmosSelect } from './formShortcuts'; const ConfigManagement = () => { @@ -61,6 +62,8 @@ const ConfigManagement = () => { GenerateMissingAuthCert: config.HTTPConfig.GenerateMissingAuthCert, HTTPPort: config.HTTPConfig.HTTPPort, HTTPSPort: config.HTTPConfig.HTTPSPort, + SSLEmail: config.HTTPConfig.SSLEmail, + HTTPSCertificateMode: config.HTTPConfig.HTTPSCertificateMode, }} validationSchema={Yup.object().shape({ Hostname: Yup.string().max(255).required('Hostname is required'), @@ -76,10 +79,11 @@ const ConfigManagement = () => { HTTPConfig: { ...config.HTTPConfig, Hostname: values.Hostname, - GenerateMissingTLSCert: values.GenerateMissingTLSCert, GenerateMissingAuthCert: values.GenerateMissingAuthCert, HTTPPort: values.HTTPPort, HTTPSPort: values.HTTPSPort, + SSLEmail: values.SSLEmail, + HTTPSCertificateMode: values.HTTPSCertificateMode, } } @@ -106,8 +110,8 @@ const ConfigManagement = () => { } }} > - {({ errors, handleBlur, handleChange, handleSubmit, isSubmitting, touched, values }) => ( -
+ {(formik) => ( + @@ -119,17 +123,17 @@ const ConfigManagement = () => { - {touched.MongoDB && errors.MongoDB && ( + {formik.touched.MongoDB && formik.errors.MongoDB && ( - {errors.MongoDB} + {formik.errors.MongoDB} )} @@ -144,14 +148,14 @@ const ConfigManagement = () => { name="LoggingLevel" id="LoggingLevel" select - value={values.LoggingLevel} - onChange={handleChange} + value={formik.values.LoggingLevel} + onChange={formik.handleChange} error={ - touched.LoggingLevel && - Boolean(errors.LoggingLevel) + formik.touched.LoggingLevel && + Boolean(formik.errors.LoggingLevel) } helperText={ - touched.LoggingLevel && errors.LoggingLevel + formik.touched.LoggingLevel && formik.errors.LoggingLevel } > @@ -182,17 +186,17 @@ const ConfigManagement = () => { - {touched.Hostname && errors.Hostname && ( + {formik.touched.Hostname && formik.errors.Hostname && ( - {errors.Hostname} + {formik.errors.Hostname} )} @@ -204,17 +208,17 @@ const ConfigManagement = () => { - {touched.HTTPPort && errors.HTTPPort && ( + {formik.touched.HTTPPort && formik.errors.HTTPPort && ( - {errors.HTTPPort} + {formik.errors.HTTPPort} )} @@ -226,17 +230,17 @@ const ConfigManagement = () => { - {touched.HTTPSPort && errors.HTTPSPort && ( + {formik.touched.HTTPSPort && formik.errors.HTTPSPort && ( - {errors.HTTPSPort} + {formik.errors.HTTPSPort} )} @@ -249,17 +253,28 @@ const ConfigManagement = () => { For security reasons, It is not possible to remotely change the Private keys of any certificates on your instance. It is advised to manually edit the config file, or better, use Environment Variables to store them. - - - } - label="Generate missing HTTPS Certificates automatically (Default: true)" + + + + { + formik.values.HTTPSCertificateMode === "LETSENCRYPT" && ( + - - + ) + } @@ -297,16 +312,16 @@ const ConfigManagement = () => {

- {errors.submit && ( + {formik.errors.submit && ( - {errors.submit} + {formik.errors.submit} )}