Compare commits

...

5 Commits

Author SHA1 Message Date
61c2fd5412 feat: fix the issue of jumping back to the login page after resetting password (#1288)
* fix: redirect to login page

* fix: front end router

* fix: front end router

* fix: signup page router

* fix: redirect to login page
2022-11-13 12:16:49 +08:00
d542208eb8 feat: fix select language box overlay (#1289)
* fix: select language box overlay

* fix: select language box position

* fix: select language box position

* fix: select language box position
2022-11-13 10:52:22 +08:00
f818200c95 feat: fix empty organization in adapter edit page (#1274) 2022-11-08 21:03:15 +08:00
5bc2e91344 fix: fix typo (#1264) 2022-11-06 21:14:26 +08:00
295f732b18 Show tag in i18n 2022-11-06 20:19:31 +08:00
19 changed files with 141 additions and 101 deletions

View File

@ -142,7 +142,7 @@ func IsAllowed(subOwner string, subName string, method string, urlPath string, o
userId := fmt.Sprintf("%s/%s", subOwner, subName)
user := object.GetUser(userId)
if user != nil && user.IsAdmin && subOwner == objOwner {
if user != nil && user.IsAdmin && (subOwner == objOwner || (objOwner == "admin" && subOwner == objName)) {
return true
}

View File

@ -120,7 +120,7 @@ class AccountTable extends React.Component {
},
},
{
title: i18next.t("provider:visible"),
title: i18next.t("organization:Visible"),
dataIndex: "visible",
key: "visible",
width: "120px",
@ -133,7 +133,7 @@ class AccountTable extends React.Component {
},
},
{
title: i18next.t("organization:viewRule"),
title: i18next.t("organization:View rule"),
dataIndex: "viewRule",
key: "viewRule",
width: "155px",
@ -160,7 +160,7 @@ class AccountTable extends React.Component {
},
},
{
title: i18next.t("organization:modifyRule"),
title: i18next.t("organization:Modify rule"),
dataIndex: "modifyRule",
key: "modifyRule",
width: "155px",

View File

@ -59,7 +59,7 @@ class AdapterEditPage extends React.Component {
}
getOrganizations() {
OrganizationBackend.getOrganizations(this.state.organizationName)
OrganizationBackend.getOrganizations("admin")
.then((res) => {
this.setState({
organizations: (res.msg === undefined) ? res : [],
@ -195,7 +195,7 @@ class AdapterEditPage extends React.Component {
{Setting.getLabel(i18next.t("general:Organization"), i18next.t("general:Organization - Tooltip"))} :
</Col>
<Col span={22} >
<Select virtual={false} style={{width: "100%"}} value={this.state.adapter.organization} onChange={(value => {this.updateadapterField("organization", value);})}>
<Select virtual={false} style={{width: "100%"}} value={this.state.adapter.organization} onChange={(value => {this.updateAdapterField("organization", value);})}>
{
this.state.organizations.map((organization, index) => <Option key={index} value={organization.name}>{organization.name}</Option>)
}

View File

@ -123,7 +123,7 @@
.login-form {
text-align: center;
padding: 10px;
padding: 30px;
}
.login-content {

View File

@ -105,7 +105,7 @@ class ProviderTable extends React.Component {
},
},
{
title: i18next.t("provider:canSignUp"),
title: i18next.t("provider:Can signup"),
dataIndex: "canSignUp",
key: "canSignUp",
width: "120px",
@ -122,7 +122,7 @@ class ProviderTable extends React.Component {
},
},
{
title: i18next.t("provider:canSignIn"),
title: i18next.t("provider:Can signin"),
dataIndex: "canSignIn",
key: "canSignIn",
width: "120px",
@ -139,7 +139,7 @@ class ProviderTable extends React.Component {
},
},
{
title: i18next.t("provider:canUnlink"),
title: i18next.t("provider:Can unlink"),
dataIndex: "canUnlink",
key: "canUnlink",
width: "120px",
@ -156,7 +156,7 @@ class ProviderTable extends React.Component {
},
},
{
title: i18next.t("provider:prompted"),
title: i18next.t("provider:Prompted"),
dataIndex: "prompted",
key: "prompted",
width: "120px",

View File

@ -13,7 +13,7 @@
// limitations under the License.
import React from "react";
import {Link, useHistory} from "react-router-dom";
import {Link} from "react-router-dom";
import {Tag, Tooltip, message} from "antd";
import {QuestionCircleTwoTone} from "@ant-design/icons";
import {isMobile as isMobileDevice} from "react-device-detect";
@ -752,7 +752,7 @@ export function getLoginLink(application) {
} else if (authConfig.appName === application.name) {
url = "/login";
} else if (application.signinUrl === "") {
url = path.join(application.homepageUrl, "login");
url = path.join(application.homepageUrl, "/login");
} else {
url = application.signinUrl;
}
@ -764,9 +764,8 @@ export function renderLoginLink(application, text) {
return renderLink(url, text, null);
}
export function redirectToLoginPage(application) {
export function redirectToLoginPage(application, history) {
const loginLink = getLoginLink(application);
const history = useHistory();
history.push(loginLink);
}

View File

@ -104,7 +104,7 @@ class SignupTable extends React.Component {
},
},
{
title: i18next.t("provider:visible"),
title: i18next.t("provider:Visible"),
dataIndex: "visible",
key: "visible",
width: "120px",
@ -126,7 +126,7 @@ class SignupTable extends React.Component {
},
},
{
title: i18next.t("provider:required"),
title: i18next.t("provider:Required"),
dataIndex: "required",
key: "required",
width: "120px",
@ -143,7 +143,7 @@ class SignupTable extends React.Component {
},
},
{
title: i18next.t("provider:prompted"),
title: i18next.t("provider:Prompted"),
dataIndex: "prompted",
key: "prompted",
width: "120px",

View File

@ -17,6 +17,7 @@ import {Link} from "react-router-dom";
import {Button, Popconfirm, Switch, Table, Upload} from "antd";
import {UploadOutlined} from "@ant-design/icons";
import moment from "moment";
import * as OrganizationBackend from "./backend/OrganizationBackend";
import * as Setting from "./Setting";
import * as UserBackend from "./backend/UserBackend";
import i18next from "i18next";
@ -28,6 +29,7 @@ class UserListPage extends BaseListPage {
this.state = {
classes: props,
organizationName: props.match.params.organizationName,
organization: null,
data: [],
pagination: {
current: 1,
@ -271,6 +273,15 @@ class UserListPage extends BaseListPage {
width: "110px",
sorter: true,
...this.getColumnSearchProps("tag"),
render: (text, record, index) => {
const tagMap = {};
this.state.organization?.tags?.map((tag, index) => {
const tokens = tag.split("|");
const displayValue = Setting.getLanguage() !== "zh" ? tokens[0] : tokens[1];
tagMap[tokens[0]] = displayValue;
});
return tagMap[text];
},
},
{
title: i18next.t("user:Is admin"),
@ -387,6 +398,11 @@ class UserListPage extends BaseListPage {
searchText: params.searchText,
searchedColumn: params.searchedColumn,
});
const users = res.data;
if (users.length > 0) {
this.getOrganization(users[0].owner);
}
}
});
} else {
@ -403,10 +419,24 @@ class UserListPage extends BaseListPage {
searchText: params.searchText,
searchedColumn: params.searchedColumn,
});
const users = res.data;
if (users.length > 0) {
this.getOrganization(users[0].owner);
}
}
});
}
};
getOrganization(organizationName) {
OrganizationBackend.getOrganization("admin", organizationName)
.then((organization) => {
this.setState({
organization: organization,
});
});
}
}
export default UserListPage;

View File

@ -23,6 +23,7 @@ import {CountDownInput} from "../common/CountDownInput";
import * as UserBackend from "../backend/UserBackend";
import {CheckCircleOutlined, KeyOutlined, LockOutlined, SolutionOutlined, UserOutlined} from "@ant-design/icons";
import CustomGithubCorner from "../CustomGithubCorner";
import {withRouter} from "react-router-dom";
const {Step} = Steps;
const {Option} = Select;
@ -166,7 +167,7 @@ class ForgetPage extends React.Component {
values.userOwner = this.state.application?.organizationObj.name;
UserBackend.setPassword(values.userOwner, values.username, "", values?.newPassword).then(res => {
if (res.status === "ok") {
Setting.redirectToLoginPage(this.state.application);
Setting.redirectToLoginPage(this.state.application, this.props.history);
} else {
Setting.showMessage("error", i18next.t(`signup:${res.msg}`));
}
@ -550,4 +551,4 @@ class ForgetPage extends React.Component {
}
}
export default ForgetPage;
export default withRouter(ForgetPage);

View File

@ -30,6 +30,7 @@ import {CountDownInput} from "../common/CountDownInput";
import SelectLanguageBox from "../SelectLanguageBox";
import {withTranslation} from "react-i18next";
import {CaptchaModal} from "../common/CaptchaModal";
import {withRouter} from "react-router-dom";
const {TabPane} = Tabs;
@ -339,7 +340,7 @@ class LoginPage extends React.Component {
title="Sign Up Error"
subTitle={"The application does not allow to sign up new account"}
extra={[
<Button type="primary" key="signin" onClick={() => Setting.redirectToLoginPage(application)}>
<Button type="primary" key="signin" onClick={() => Setting.redirectToLoginPage(application, this.props.history)}>
{
i18next.t("login:Sign In")
}
@ -784,7 +785,6 @@ class LoginPage extends React.Component {
<div className="login-content" style={{margin: this.parseOffset(application.formOffset)}}>
{Setting.inIframe() ? null : <div dangerouslySetInnerHTML={{__html: application.formCss}} />}
<div className="login-panel">
<SelectLanguageBox id="language-box-corner" style={{top: "50px"}} />
<div className="side-image" style={{display: application.formOffset !== 4 ? "none" : null}}>
<div dangerouslySetInnerHTML={{__html: application.formSideHtml}} />
</div>
@ -800,6 +800,7 @@ class LoginPage extends React.Component {
{/* {*/}
{/* this.state.clientId !== null ? "Redirect" : null*/}
{/* }*/}
<SelectLanguageBox id="language-box-corner" style={{top: "55px", right: "5px", position: "absolute"}} />
{
this.renderSignedInBox()
}
@ -816,4 +817,4 @@ class LoginPage extends React.Component {
}
}
export default withTranslation()(LoginPage);
export default withTranslation()(withRouter(LoginPage));

View File

@ -22,6 +22,7 @@ import i18next from "i18next";
import AffiliationSelect from "../common/AffiliationSelect";
import OAuthWidget from "../common/OAuthWidget";
import SelectRegionBox from "../SelectRegionBox";
import {withRouter} from "react-router-dom";
class PromptPage extends React.Component {
constructor(props) {
@ -190,7 +191,7 @@ class PromptPage extends React.Component {
if (redirectUrl !== "" && redirectUrl !== null) {
Setting.goToLink(redirectUrl);
} else {
Setting.redirectToLoginPage(this.getApplicationObj());
Setting.redirectToLoginPage(this.getApplicationObj(), this.props.history);
}
} else {
Setting.showMessage("error", `Failed to log out: ${res.msg}`);
@ -234,7 +235,7 @@ class PromptPage extends React.Component {
title="Sign Up Error"
subTitle={"You are unexpected to see this prompt page"}
extra={[
<Button type="primary" key="signin" onClick={() => Setting.redirectToLoginPage(application)}>
<Button type="primary" key="signin" onClick={() => Setting.redirectToLoginPage(application, this.props.history)}>
{
i18next.t("login:Sign In")
}
@ -272,4 +273,4 @@ class PromptPage extends React.Component {
}
}
export default PromptPage;
export default withRouter(PromptPage);

View File

@ -26,6 +26,7 @@ import {CountDownInput} from "../common/CountDownInput";
import SelectRegionBox from "../SelectRegionBox";
import CustomGithubCorner from "../CustomGithubCorner";
import SelectLanguageBox from "../SelectLanguageBox";
import {withRouter} from "react-router-dom";
const formItemLayout = {
labelCol: {
@ -541,7 +542,7 @@ class SignupPage extends React.Component {
title="Sign Up Error"
subTitle={"The application does not allow to sign up new account"}
extra={[
<Button type="primary" key="signin" onClick={() => Setting.redirectToLoginPage(application)}>
<Button type="primary" key="signin" onClick={() => Setting.redirectToLoginPage(application, this.props.history)}>
{
i18next.t("login:Sign In")
}
@ -562,7 +563,7 @@ class SignupPage extends React.Component {
application: application.name,
organization: application.organization,
}}
style={{width: !Setting.isMobile() ? "400px" : "250px"}}
style={{width: !Setting.isMobile() ? "400px" : "300px"}}
size="large"
>
<Form.Item
@ -600,7 +601,7 @@ class SignupPage extends React.Component {
if (linkInStorage !== null && linkInStorage !== "") {
Setting.goToLink(linkInStorage);
} else {
Setting.redirectToLoginPage(application);
Setting.redirectToLoginPage(application, this.props.history);
}
}}>
{i18next.t("signup:sign in now")}
@ -633,7 +634,6 @@ class SignupPage extends React.Component {
<div className="login-content" style={{margin: this.parseOffset(application.formOffset)}}>
{Setting.inIframe() ? null : <div dangerouslySetInnerHTML={{__html: application.formCss}} />}
<div className="login-panel" >
<SelectLanguageBox id="language-box-corner" style={{top: "50px"}} />
<div className="side-image" style={{display: application.formOffset !== 4 ? "none" : null}}>
<div dangerouslySetInnerHTML={{__html: application.formSideHtml}} />
</div>
@ -645,6 +645,7 @@ class SignupPage extends React.Component {
{
Setting.renderLogo(application)
}
<SelectLanguageBox id="language-box-corner" style={{top: "55px", right: "5px", position: "absolute"}} />
{
this.renderForm(application)
}
@ -660,4 +661,4 @@ class SignupPage extends React.Component {
}
}
export default SignupPage;
export default withRouter(SignupPage);

View File

@ -311,15 +311,16 @@
"Favicon": "Févicon",
"Is profile public": "Is profile public",
"Is profile public - Tooltip": "Is profile public - Tooltip",
"Modify rule": "Modify rule",
"New Organization": "New Organization",
"Soft deletion": "Weiche Löschung",
"Soft deletion - Tooltip": "Weiche Löschung - Tooltip",
"Tags": "Tags",
"Tags - Tooltip": "Tags - Tooltip",
"View rule": "View rule",
"Visible": "Visible",
"Website URL": "Website-URL",
"Website URL - Tooltip": "Unique string-style identifier",
"modifyRule": "modifyRule",
"viewRule": "viewRule"
"Website URL - Tooltip": "Unique string-style identifier"
},
"payment": {
"Confirm your invoice information": "Confirm your invoice information",
@ -452,6 +453,9 @@
"Bucket": "Eimer",
"Bucket - Tooltip": "Storage bucket name",
"Can not parse Metadata": "Metadaten können nicht analysiert werden",
"Can signin": "Can signin",
"Can signup": "Can signup",
"Can unlink": "Can unlink",
"Category": "Kategorie",
"Category - Tooltip": "Unique string-style identifier",
"Channel No.": "Channel No.",
@ -494,12 +498,14 @@
"Path prefix": "Path prefix",
"Port": "Port",
"Port - Tooltip": "Unique string-style identifier",
"Prompted": "Prompted",
"Provider URL": "Provider-URL",
"Provider URL - Tooltip": "Unique string-style identifier",
"Region ID": "Region ID",
"Region ID - Tooltip": "Region ID - Tooltip",
"Region endpoint for Internet": "Region Endpunkt für Internet",
"Region endpoint for Intranet": "Region Endpunkt für Intranet",
"Required": "Required",
"SAML 2.0 Endpoint (HTTP)": "SAML 2.0 Endpoint (HTTP)",
"SMS account": "SMS account",
"SMS account - Tooltip": "SMS account - Tooltip",
@ -543,13 +549,8 @@
"Type - Tooltip": "Unique string-style identifier",
"UserInfo URL": "UserInfo URL",
"UserInfo URL - Tooltip": "UserInfo URL - Tooltip",
"alertType": "alarmtyp",
"canSignIn": "canSignIn",
"canSignUp": "canSignUp",
"canUnlink": "canUnlink",
"prompted": "gefragt",
"required": "benötigt",
"visible": "sichtbar"
"Visible": "Visible",
"alertType": "alarmtyp"
},
"record": {
"Is Triggered": "Wird ausgelöst"

View File

@ -311,15 +311,16 @@
"Favicon": "Favicon",
"Is profile public": "Is profile public",
"Is profile public - Tooltip": "Is profile public - Tooltip",
"Modify rule": "Modify rule",
"New Organization": "New Organization",
"Soft deletion": "Soft deletion",
"Soft deletion - Tooltip": "Soft deletion - Tooltip",
"Tags": "Tags",
"Tags - Tooltip": "Tags - Tooltip",
"View rule": "View rule",
"Visible": "Visible",
"Website URL": "Website URL",
"Website URL - Tooltip": "Website URL - Tooltip",
"modifyRule": "modifyRule",
"viewRule": "viewRule"
"Website URL - Tooltip": "Website URL - Tooltip"
},
"payment": {
"Confirm your invoice information": "Confirm your invoice information",
@ -452,6 +453,9 @@
"Bucket": "Bucket",
"Bucket - Tooltip": "Bucket - Tooltip",
"Can not parse Metadata": "Can not parse Metadata",
"Can signin": "Can signin",
"Can signup": "Can signup",
"Can unlink": "Can unlink",
"Category": "Category",
"Category - Tooltip": "Category - Tooltip",
"Channel No.": "Channel No.",
@ -494,12 +498,14 @@
"Path prefix": "Path prefix",
"Port": "Port",
"Port - Tooltip": "Port - Tooltip",
"Prompted": "Prompted",
"Provider URL": "Provider URL",
"Provider URL - Tooltip": "Provider URL - Tooltip",
"Region ID": "Region ID",
"Region ID - Tooltip": "Region ID - Tooltip",
"Region endpoint for Internet": "Region endpoint for Internet",
"Region endpoint for Intranet": "Region endpoint for Intranet",
"Required": "Required",
"SAML 2.0 Endpoint (HTTP)": "SAML 2.0 Endpoint (HTTP)",
"SMS account": "SMS account",
"SMS account - Tooltip": "SMS account - Tooltip",
@ -543,13 +549,8 @@
"Type - Tooltip": "Type - Tooltip",
"UserInfo URL": "UserInfo URL",
"UserInfo URL - Tooltip": "UserInfo URL - Tooltip",
"alertType": "alertType",
"canSignIn": "canSignIn",
"canSignUp": "canSignUp",
"canUnlink": "canUnlink",
"prompted": "prompted",
"required": "required",
"visible": "visible"
"Visible": "Visible",
"alertType": "alertType"
},
"record": {
"Is Triggered": "Is Triggered"

View File

@ -311,15 +311,16 @@
"Favicon": "Favicon",
"Is profile public": "Is profile public",
"Is profile public - Tooltip": "Is profile public - Tooltip",
"Modify rule": "Modify rule",
"New Organization": "New Organization",
"Soft deletion": "Suppression du logiciel",
"Soft deletion - Tooltip": "Suppression de soft - infobulle",
"Tags": "Tags",
"Tags - Tooltip": "Tags - Tooltip",
"View rule": "View rule",
"Visible": "Visible",
"Website URL": "URL du site web",
"Website URL - Tooltip": "Unique string-style identifier",
"modifyRule": "modifyRule",
"viewRule": "viewRule"
"Website URL - Tooltip": "Unique string-style identifier"
},
"payment": {
"Confirm your invoice information": "Confirm your invoice information",
@ -452,6 +453,9 @@
"Bucket": "Seau",
"Bucket - Tooltip": "Storage bucket name",
"Can not parse Metadata": "Impossible d'analyser les métadonnées",
"Can signin": "Can signin",
"Can signup": "Can signup",
"Can unlink": "Can unlink",
"Category": "Catégorie",
"Category - Tooltip": "Unique string-style identifier",
"Channel No.": "Channel No.",
@ -494,12 +498,14 @@
"Path prefix": "Path prefix",
"Port": "Port",
"Port - Tooltip": "Unique string-style identifier",
"Prompted": "Prompted",
"Provider URL": "URL du fournisseur",
"Provider URL - Tooltip": "Unique string-style identifier",
"Region ID": "ID de la région",
"Region ID - Tooltip": "ID de région - infobulle",
"Region endpoint for Internet": "Point de terminaison de la région pour Internet",
"Region endpoint for Intranet": "Point de terminaison de la région pour Intranet",
"Required": "Required",
"SAML 2.0 Endpoint (HTTP)": "SAML 2.0 Endpoint (HTTP)",
"SMS account": "SMS account",
"SMS account - Tooltip": "SMS account - Tooltip",
@ -543,13 +549,8 @@
"Type - Tooltip": "Unique string-style identifier",
"UserInfo URL": "UserInfo URL",
"UserInfo URL - Tooltip": "UserInfo URL - Tooltip",
"alertType": "Type d'alerte",
"canSignIn": "canSignIn",
"canSignUp": "canSignUp",
"canUnlink": "canUnlink",
"prompted": "invitée",
"required": "Obligatoire",
"visible": "Visible"
"Visible": "Visible",
"alertType": "Type d'alerte"
},
"record": {
"Is Triggered": "Est déclenché"

View File

@ -311,15 +311,16 @@
"Favicon": "ファビコン",
"Is profile public": "Is profile public",
"Is profile public - Tooltip": "Is profile public - Tooltip",
"Modify rule": "Modify rule",
"New Organization": "New Organization",
"Soft deletion": "ソフト削除",
"Soft deletion - Tooltip": "ソフト削除 - ツールチップ",
"Tags": "Tags",
"Tags - Tooltip": "Tags - Tooltip",
"View rule": "View rule",
"Visible": "Visible",
"Website URL": "Website URL",
"Website URL - Tooltip": "Unique string-style identifier",
"modifyRule": "modifyRule",
"viewRule": "viewRule"
"Website URL - Tooltip": "Unique string-style identifier"
},
"payment": {
"Confirm your invoice information": "Confirm your invoice information",
@ -452,6 +453,9 @@
"Bucket": "バケツ入りバケツ",
"Bucket - Tooltip": "Storage bucket name",
"Can not parse Metadata": "メタデータをパースできません",
"Can signin": "Can signin",
"Can signup": "Can signup",
"Can unlink": "Can unlink",
"Category": "カテゴリ",
"Category - Tooltip": "Unique string-style identifier",
"Channel No.": "Channel No.",
@ -494,12 +498,14 @@
"Path prefix": "Path prefix",
"Port": "ポート",
"Port - Tooltip": "Unique string-style identifier",
"Prompted": "Prompted",
"Provider URL": "プロバイダー URL",
"Provider URL - Tooltip": "Unique string-style identifier",
"Region ID": "地域ID",
"Region ID - Tooltip": "リージョンID - ツールチップ",
"Region endpoint for Internet": "インターネットのリージョンエンドポイント",
"Region endpoint for Intranet": "イントラネットのリージョンエンドポイント",
"Required": "Required",
"SAML 2.0 Endpoint (HTTP)": "SAML 2.0 Endpoint (HTTP)",
"SMS account": "SMS account",
"SMS account - Tooltip": "SMS account - Tooltip",
@ -543,13 +549,8 @@
"Type - Tooltip": "Unique string-style identifier",
"UserInfo URL": "UserInfo URL",
"UserInfo URL - Tooltip": "UserInfo URL - Tooltip",
"alertType": "alertType",
"canSignIn": "canSignIn",
"canSignUp": "canSignUp",
"canUnlink": "canUnlink",
"prompted": "プロンプトされた",
"required": "必須",
"visible": "表示"
"Visible": "Visible",
"alertType": "alertType"
},
"record": {
"Is Triggered": "トリガーされます"

View File

@ -311,15 +311,16 @@
"Favicon": "Favicon",
"Is profile public": "Is profile public",
"Is profile public - Tooltip": "Is profile public - Tooltip",
"Modify rule": "Modify rule",
"New Organization": "New Organization",
"Soft deletion": "Soft deletion",
"Soft deletion - Tooltip": "Soft deletion - Tooltip",
"Tags": "Tags",
"Tags - Tooltip": "Tags - Tooltip",
"View rule": "View rule",
"Visible": "Visible",
"Website URL": "Website URL",
"Website URL - Tooltip": "Unique string-style identifier",
"modifyRule": "modifyRule",
"viewRule": "viewRule"
"Website URL - Tooltip": "Unique string-style identifier"
},
"payment": {
"Confirm your invoice information": "Confirm your invoice information",
@ -452,6 +453,9 @@
"Bucket": "Bucket",
"Bucket - Tooltip": "Storage bucket name",
"Can not parse Metadata": "Can not parse Metadata",
"Can signin": "Can signin",
"Can signup": "Can signup",
"Can unlink": "Can unlink",
"Category": "Category",
"Category - Tooltip": "Unique string-style identifier",
"Channel No.": "Channel No.",
@ -494,12 +498,14 @@
"Path prefix": "Path prefix",
"Port": "Port",
"Port - Tooltip": "Unique string-style identifier",
"Prompted": "Prompted",
"Provider URL": "Provider URL",
"Provider URL - Tooltip": "Unique string-style identifier",
"Region ID": "Region ID",
"Region ID - Tooltip": "Region ID - Tooltip",
"Region endpoint for Internet": "Region endpoint for Internet",
"Region endpoint for Intranet": "Region endpoint for Intranet",
"Required": "Required",
"SAML 2.0 Endpoint (HTTP)": "SAML 2.0 Endpoint (HTTP)",
"SMS account": "SMS account",
"SMS account - Tooltip": "SMS account - Tooltip",
@ -543,13 +549,8 @@
"Type - Tooltip": "Unique string-style identifier",
"UserInfo URL": "UserInfo URL",
"UserInfo URL - Tooltip": "UserInfo URL - Tooltip",
"alertType": "alertType",
"canSignIn": "canSignIn",
"canSignUp": "canSignUp",
"canUnlink": "canUnlink",
"prompted": "prompted",
"required": "required",
"visible": "visible"
"Visible": "Visible",
"alertType": "alertType"
},
"record": {
"Is Triggered": "Is Triggered"

View File

@ -311,15 +311,16 @@
"Favicon": "Иконка",
"Is profile public": "Is profile public",
"Is profile public - Tooltip": "Is profile public - Tooltip",
"Modify rule": "Modify rule",
"New Organization": "New Organization",
"Soft deletion": "Мягкое удаление",
"Soft deletion - Tooltip": "Мягкое удаление - Подсказка",
"Tags": "Tags",
"Tags - Tooltip": "Tags - Tooltip",
"View rule": "View rule",
"Visible": "Visible",
"Website URL": "URL сайта",
"Website URL - Tooltip": "Unique string-style identifier",
"modifyRule": "modifyRule",
"viewRule": "viewRule"
"Website URL - Tooltip": "Unique string-style identifier"
},
"payment": {
"Confirm your invoice information": "Confirm your invoice information",
@ -452,6 +453,9 @@
"Bucket": "Ведро",
"Bucket - Tooltip": "Storage bucket name",
"Can not parse Metadata": "Невозможно разобрать метаданные",
"Can signin": "Can signin",
"Can signup": "Can signup",
"Can unlink": "Can unlink",
"Category": "Категория",
"Category - Tooltip": "Unique string-style identifier",
"Channel No.": "Channel No.",
@ -494,12 +498,14 @@
"Path prefix": "Path prefix",
"Port": "Порт",
"Port - Tooltip": "Unique string-style identifier",
"Prompted": "Prompted",
"Provider URL": "URL провайдера",
"Provider URL - Tooltip": "Unique string-style identifier",
"Region ID": "ID региона",
"Region ID - Tooltip": "Идентификатор региона - Подсказка",
"Region endpoint for Internet": "Конечная точка региона для Интернета",
"Region endpoint for Intranet": "Конечная точка региона Интранета",
"Required": "Required",
"SAML 2.0 Endpoint (HTTP)": "SAML 2.0 Endpoint (HTTP)",
"SMS account": "SMS account",
"SMS account - Tooltip": "SMS account - Tooltip",
@ -543,13 +549,8 @@
"Type - Tooltip": "Unique string-style identifier",
"UserInfo URL": "UserInfo URL",
"UserInfo URL - Tooltip": "UserInfo URL - Tooltip",
"alertType": "тип оповещения",
"canSignIn": "canSignIn",
"canSignUp": "canSignUp",
"canUnlink": "canUnlink",
"prompted": "запрошено",
"required": "обязательный",
"visible": "видимый"
"Visible": "Visible",
"alertType": "тип оповещения"
},
"record": {
"Is Triggered": "Срабатывает"

View File

@ -311,15 +311,16 @@
"Favicon": "图标",
"Is profile public": "用户个人页公开",
"Is profile public - Tooltip": "关闭后,只有全局管理员或同组织用户才能访问用户主页",
"Modify rule": "修改规则",
"New Organization": "添加组织",
"Soft deletion": "软删除",
"Soft deletion - Tooltip": "启用后,删除用户信息时不会在数据库彻底清除,只会标记为已删除状态",
"Tags": "标签集合",
"Tags - Tooltip": "可供用户选择的标签的集合",
"View rule": "查看规则",
"Visible": "是否可见",
"Website URL": "网页地址",
"Website URL - Tooltip": "网页地址",
"modifyRule": "修改规则",
"viewRule": "查看规则"
"Website URL - Tooltip": "网页地址"
},
"payment": {
"Confirm your invoice information": "确认您的发票信息",
@ -452,6 +453,9 @@
"Bucket": "存储桶",
"Bucket - Tooltip": "Bucket名称",
"Can not parse Metadata": "无法解析元数据",
"Can signin": "可用于登录",
"Can signup": "可用于注册",
"Can unlink": "可解绑定",
"Category": "分类",
"Category - Tooltip": "分类",
"Channel No.": "Channel No.",
@ -494,12 +498,14 @@
"Path prefix": "路径前缀",
"Port": "端口",
"Port - Tooltip": "端口号",
"Prompted": "注册后提醒绑定",
"Provider URL": "提供商URL",
"Provider URL - Tooltip": "提供商URL",
"Region ID": "地域ID",
"Region ID - Tooltip": "地域ID",
"Region endpoint for Internet": "地域节点 (外网)",
"Region endpoint for Intranet": "地域节点 (内网)",
"Required": "是否必填项",
"SAML 2.0 Endpoint (HTTP)": "SAML 2.0 Endpoint (HTTP)",
"SMS account": "SMS account",
"SMS account - Tooltip": "SMS account - Tooltip",
@ -543,13 +549,8 @@
"Type - Tooltip": "类型",
"UserInfo URL": "UserInfo URL",
"UserInfo URL - Tooltip": "UserInfo URL - 工具提示",
"alertType": "警报类型",
"canSignIn": "可用于登录",
"canSignUp": "可用于注册",
"canUnlink": "可解绑定",
"prompted": "注册后提醒绑定",
"required": "是否必填项",
"visible": "是否可见"
"Visible": "是否可见",
"alertType": "警报类型"
},
"record": {
"Is Triggered": "已触发"