Add app's TermsOfUse.

This commit is contained in:
Yang Luo 2021-08-03 21:00:07 +08:00
parent 9f5c6b1e05
commit acca9eacdc
3 changed files with 48 additions and 2 deletions

View File

@ -43,6 +43,7 @@ type Application struct {
SigninUrl string `xorm:"varchar(100)" json:"signinUrl"`
ForgetUrl string `xorm:"varchar(100)" json:"forgetUrl"`
AffiliationUrl string `xorm:"varchar(100)" json:"affiliationUrl"`
TermsOfUse string `xorm:"varchar(1000)" json:"termsOfUse"`
}
func GetApplications(owner string) []*Application {

View File

@ -27,6 +27,7 @@ import ProviderTable from "./ProviderTable";
import SignupTable from "./SignupTable";
import PromptPage from "./auth/PromptPage";
const { TextArea } = Input;
const { Option } = Select;
class ApplicationEditPage extends React.Component {
@ -280,6 +281,16 @@ class ApplicationEditPage extends React.Component {
}} />
</Col>
</Row>
<Row style={{marginTop: '20px'}} >
<Col style={{marginTop: '5px'}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("provider:Terms of Use"), i18next.t("provider:Terms of Use - Tooltip"))} :
</Col>
<Col span={22} >
<TextArea autoSize={{minRows: 1, maxRows: 6}} value={this.state.application.termsOfUse} onChange={e => {
this.updateApplicationField('termsOfUse', e.target.value);
}} />
</Col>
</Row>
<Row style={{marginTop: '20px'}} >
<Col style={{marginTop: '5px'}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("general:Providers"), i18next.t("general:Providers - Tooltip"))} :

View File

@ -14,7 +14,7 @@
import React from 'react';
import {Link} from "react-router-dom";
import {Form, Input, Checkbox, Button, Row, Col, Result} from 'antd';
import {Form, Input, Checkbox, Button, Row, Col, Result, Modal} from 'antd';
import * as Setting from "../Setting";
import * as AuthBackend from "./AuthBackend";
import i18next from "i18next";
@ -71,6 +71,7 @@ class SignupPage extends React.Component {
validEmail: false,
validPhone: false,
region: "",
isTermsOfUseVisible: false,
};
this.form = React.createRef();
@ -388,7 +389,11 @@ class SignupPage extends React.Component {
>
<Checkbox>
{i18next.t("signup:Accept")}&nbsp;
<Link to={"/agreement"}>
<Link onClick={() => {
this.setState({
isTermsOfUseVisible: true,
});
}}>
{i18next.t("signup:Terms of Use")}
</Link>
</Checkbox>
@ -397,6 +402,32 @@ class SignupPage extends React.Component {
}
}
renderModal() {
return (
<Modal
title={i18next.t("signup:Terms of Use")}
visible={this.state.isTermsOfUseVisible}
closable={false}
footer={[
<Button key="agree" type="primary" onClick={() => {
this.setState({
isTermsOfUseVisible: false,
});
}}>
{i18next.t("user:OK")}
</Button>,
// <Button key="decline" onClick={() => {
// this.props.history.goBack();
// }}>
// {i18next.t("signup:Decline")}
// </Button>,
]}
>
<div dangerouslySetInnerHTML={{__html: this.state.application.termsOfUse}} />
</Modal>
)
}
renderForm(application) {
if (!application.enableSignUp) {
return (
@ -493,6 +524,9 @@ class SignupPage extends React.Component {
</div>
</Col>
</Row>
{
this.renderModal()
}
</div>
)
}