mirror of
https://github.com/casdoor/casdoor.git
synced 2025-08-12 16:57:47 +08:00
Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6464bd10dc | ||
![]() |
db878a890e |
@@ -37,7 +37,7 @@ COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/conf/app.conf ./conf/app.co
|
|||||||
COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/version_info.txt ./go/src/casdoor/version_info.txt
|
COPY --from=BACK --chown=$USER:$USER /go/src/casdoor/version_info.txt ./go/src/casdoor/version_info.txt
|
||||||
COPY --from=FRONT --chown=$USER:$USER /web/build ./web/build
|
COPY --from=FRONT --chown=$USER:$USER /web/build ./web/build
|
||||||
|
|
||||||
ENTRYPOINT ["/server"]
|
ENTRYPOINT ["sudo","/server"]
|
||||||
|
|
||||||
|
|
||||||
FROM debian:latest AS db
|
FROM debian:latest AS db
|
||||||
|
@@ -31,15 +31,17 @@ type SigninMethod struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type SignupItem struct {
|
type SignupItem struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Visible bool `json:"visible"`
|
Visible bool `json:"visible"`
|
||||||
Required bool `json:"required"`
|
Required bool `json:"required"`
|
||||||
Prompted bool `json:"prompted"`
|
Prompted bool `json:"prompted"`
|
||||||
CustomCss string `json:"customCss"`
|
Type string `json:"type"`
|
||||||
Label string `json:"label"`
|
CustomCss string `json:"customCss"`
|
||||||
Placeholder string `json:"placeholder"`
|
Label string `json:"label"`
|
||||||
Regex string `json:"regex"`
|
Placeholder string `json:"placeholder"`
|
||||||
Rule string `json:"rule"`
|
Options []string `json:"options"`
|
||||||
|
Regex string `json:"regex"`
|
||||||
|
Rule string `json:"rule"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type SigninItem struct {
|
type SigninItem struct {
|
||||||
|
@@ -65,7 +65,7 @@ class SignupTable extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addRow(table) {
|
addRow(table) {
|
||||||
const row = {name: Setting.getNewRowNameForTable(table, "Please select a signup item"), visible: true, required: true, rule: "None", customCss: ""};
|
const row = {name: Setting.getNewRowNameForTable(table, "Please select a signup item"), visible: true, required: true, options: [], rule: "None", customCss: ""};
|
||||||
if (table === undefined) {
|
if (table === undefined) {
|
||||||
table = [];
|
table = [];
|
||||||
}
|
}
|
||||||
@@ -201,6 +201,25 @@ class SignupTable extends React.Component {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: i18next.t("provider:Type"),
|
||||||
|
dataIndex: "type",
|
||||||
|
key: "type",
|
||||||
|
width: "160px",
|
||||||
|
render: (text, record, index) => {
|
||||||
|
const options = [
|
||||||
|
{id: "Input", name: i18next.t("application:Input")},
|
||||||
|
{id: "Single Choice", name: i18next.t("application:Single Choice")},
|
||||||
|
{id: "Multiple Choices", name: i18next.t("application:Multiple Choices")},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Select virtual={false} style={{width: "100%"}} value={text} onChange={(value => {
|
||||||
|
this.updateField(table, index, "type", value);
|
||||||
|
})} options={options.map(item => Setting.getOption(item.name, item.id))} />
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: i18next.t("signup:Label"),
|
title: i18next.t("signup:Label"),
|
||||||
dataIndex: "label",
|
dataIndex: "label",
|
||||||
@@ -261,7 +280,7 @@ class SignupTable extends React.Component {
|
|||||||
title: i18next.t("signup:Placeholder"),
|
title: i18next.t("signup:Placeholder"),
|
||||||
dataIndex: "placeholder",
|
dataIndex: "placeholder",
|
||||||
key: "placeholder",
|
key: "placeholder",
|
||||||
width: "200px",
|
width: "110px",
|
||||||
render: (text, record, index) => {
|
render: (text, record, index) => {
|
||||||
if (record.name.startsWith("Text ")) {
|
if (record.name.startsWith("Text ")) {
|
||||||
return null;
|
return null;
|
||||||
@@ -274,6 +293,26 @@ class SignupTable extends React.Component {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: i18next.t("signup:Options"),
|
||||||
|
dataIndex: "options",
|
||||||
|
key: "options",
|
||||||
|
width: "180px",
|
||||||
|
render: (text, record, index) => {
|
||||||
|
if (record.type !== "Single Choice" && record.type !== "Multiple Choices") {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Select virtual={false} mode="tags" style={{width: "100%"}} value={text}
|
||||||
|
onChange={(value => {
|
||||||
|
this.updateField(table, index, "options", value);
|
||||||
|
})}
|
||||||
|
options={text?.map((option) => Setting.getOption(option, option))}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: i18next.t("signup:Regex"),
|
title: i18next.t("signup:Regex"),
|
||||||
dataIndex: "regex",
|
dataIndex: "regex",
|
||||||
|
Reference in New Issue
Block a user