Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9a37358

Browse files
Merge branch 'dev' into charts
2 parents3533ef9 +f2b7d10 commit9a37358

File tree

7 files changed

+70
-24
lines changed

7 files changed

+70
-24
lines changed

‎client/packages/lowcoder/src/comps/comps/selectInputComp/stepControl.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ let StepControlBasicComp = (function () {
151151
constonChange=(index:number)=>{
152152
if(props.selectable==false)return;
153153
constnewIndex=Math.max(0,index);
154+
if(props.options[newIndex]?.disabled){
155+
return;
156+
}
154157
setCurrent(newIndex);
155158
if(props.options[newIndex]?.value!==undefined){
156159
props.value.onChange(newIndex+1+"");// Convert back to 1-based index for display.
@@ -198,6 +201,7 @@ let StepControlBasicComp = (function () {
198201
title={option.label}
199202
subTitle={option.subTitle}
200203
description={option.description}
204+
disabled={option.disabled}
201205
status={option.statusas"error"|"finish"|"wait"|"process"|undefined}
202206
icon={props.showIcons&&hasIcon(option.icon)&&option.icon||undefined}
203207
/>

‎client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnSwitchComp.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,13 @@ const childrenMap = {
6969

7070
constgetBaseValue:ColumnTypeViewFn<typeofchildrenMap,boolean,boolean>=(props)=>props.switchState;
7171

72+
letonEvent:(eventName:string)=>Promise<unknown[]>;
73+
7274
exportconstSwitchComp=(function(){
7375
returnnewColumnTypeCompBuilder(
7476
childrenMap,
7577
(props,dispatch)=>{
78+
onEvent=props.onEvent;
7679
constvalue=props.changeValue??getBaseValue(props,dispatch);
7780
constCheckBoxComp=()=>{
7881
return(
@@ -106,6 +109,8 @@ export const SwitchComp = (function () {
106109
disabled={false}
107110
onChange={(checked,e)=>{
108111
props.onChange(checked);
112+
onEvent?.("change");
113+
onEvent?.(checked ?"true" :"false");
109114
}}
110115
/>
111116
</Wrapper>

‎client/packages/lowcoder/src/comps/comps/tableComp/column/simpleColumnTypeComps.tsx

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { trans } from "i18n";
77
import{useStyle}from"comps/controls/styleControl";
88
import{ButtonStyle}from"comps/controls/styleControlConstants";
99
import{Button100}from"comps/comps/buttonComp/buttonCompConstants";
10+
import{IconControl}from"comps/controls/iconControl";
11+
import{hasIcon}from"comps/utils";
1012

1113
exportconstColumnValueTooltip=trans("table.columnValueTooltip");
1214

@@ -20,7 +22,7 @@ export const ButtonTypeOptions = [
2022
value:"default",
2123
},
2224
{
23-
label:trans("text"),
25+
label:trans("table.text"),
2426
value:"text",
2527
},
2628
]asconst;
@@ -32,23 +34,36 @@ export const ButtonComp = (function () {
3234
onClick:ActionSelectorControlInContext,
3335
loading:BoolCodeControl,
3436
disabled:BoolCodeControl,
37+
prefixIcon:IconControl,
38+
suffixIcon:IconControl,
3539
};
3640
returnnewColumnTypeCompBuilder(
3741
childrenMap,
3842
(props)=>{
3943
constButtonStyled=()=>{
4044
conststyle=useStyle(ButtonStyle);
45+
consthasText=!!props.text;
46+
consthasPrefixIcon=hasIcon(props.prefixIcon);
47+
consthasSuffixIcon=hasIcon(props.suffixIcon);
48+
consticonOnly=!hasText&&(hasPrefixIcon||hasSuffixIcon);
49+
4150
return(
4251
<Button100
4352
type={props.buttonType}
4453
onClick={props.onClick}
4554
loading={props.loading}
4655
disabled={props.disabled}
4756
$buttonStyle={props.buttonType==="primary" ?style :undefined}
48-
style={{margin:0}}
57+
style={{
58+
margin:0,
59+
width:iconOnly ?'auto' :undefined,
60+
minWidth:iconOnly ?'auto' :undefined,
61+
padding:iconOnly ?'0 8px' :undefined
62+
}}
63+
icon={hasPrefixIcon ?props.prefixIcon :undefined}
4964
>
50-
{/* prevent the button from disappearing */}
51-
{!props.text ?" " :props.text}
65+
{hasText ?props.text :(iconOnly ?null :" ")}
66+
{hasSuffixIcon&&!props.loading&&<spanstyle={{marginLeft:hasText ?'8px' :0}}>{props.suffixIcon}</span>}
5267
</Button100>
5368
);
5469
};
@@ -62,6 +77,12 @@ export const ButtonComp = (function () {
6277
label:trans("table.columnValue"),
6378
tooltip:ColumnValueTooltip,
6479
})}
80+
{children.prefixIcon.propertyView({
81+
label:trans("button.prefixIcon"),
82+
})}
83+
{children.suffixIcon.propertyView({
84+
label:trans("button.suffixIcon"),
85+
})}
6586
{children.buttonType.propertyView({
6687
label:trans("table.type"),
6788
radioButton:true,

‎client/packages/lowcoder/src/pages/userAuth/register.tsx

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -95,25 +95,28 @@ function UserRegister() {
9595
setSigninEnabled(LOWCODER_EMAIL_AUTH_ENABLED==='true');
9696
},[serverSettings]);
9797

98+
constfetchOrgsByEmail=()=>{
99+
fetchOrgPaginationByEmail({
100+
email:' ',
101+
pageNum:1,
102+
pageSize:10,
103+
})
104+
.then((resp)=>{
105+
if(resp.success){
106+
constorgList=resp.data||[];
107+
if(orgList.length){
108+
// in Enterprise mode, we will get org data in different format
109+
constselectedOrgId=orgList[0]?.id||orgList[0]?.orgId;
110+
setDefaultOrgId(selectedOrgId);
111+
dispatch(fetchConfigAction(selectedOrgId));
112+
}
113+
}
114+
})
115+
}
116+
98117
useEffect(()=>{
99118
if(isEnterpriseMode){
100-
// dispatch(fetchConfigAction());
101-
fetchOrgPaginationByEmail({
102-
email:' ',
103-
pageNum:1,
104-
pageSize:10,
105-
})
106-
.then((resp)=>{
107-
if(resp.success){
108-
constorgList=resp.data||[];
109-
if(orgList.length){
110-
// in Enterprise mode, we will get org data in different format
111-
constselectedOrgId=orgList[0]?.id||orgList[0]?.orgId;
112-
setDefaultOrgId(selectedOrgId);
113-
dispatch(fetchConfigAction(selectedOrgId));
114-
}
115-
}
116-
})
119+
fetchOrgsByEmail();
117120
}
118121
},[isEnterpriseMode]);
119122

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiServiceImpl.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,23 @@ protected Mono<AuthUser> authenticate(String authId, @Deprecated String source,
9898
})
9999
.flatMap(findAuthConfig -> {
100100
context.setAuthConfig(findAuthConfig.authConfig());
101+
// Check if email/password is superadmin before checking EMAIL provider enable
101102
if (findAuthConfig.authConfig().getSource().equals("EMAIL")) {
102-
if(StringUtils.isBlank(context.getOrgId())) {
103+
if(StringUtils.isBlank(context.getOrgId())) {
103104
context.setOrgId(Optional.ofNullable(findAuthConfig.organization()).map(Organization::getId).orElse(null));
104105
}
106+
// --- Superadmin check start ---
107+
if (contextinstanceofFormAuthRequestContextformContext) {
108+
Stringemail =formContext.getLoginId();
109+
Stringpassword =formContext.getPassword();
110+
StringsuperAdminEmail =commonConfig.getSuperAdmin().getUserName();
111+
StringsuperAdminPassword =commonConfig.getSuperAdmin().getPassword();
112+
if (StringUtils.equalsIgnoreCase(email,superAdminEmail) &&StringUtils.equals(password,superAdminPassword)) {
113+
// Allow superadmin login even if EMAIL provider is disabled
114+
returnMono.just(findAuthConfig);
115+
}
116+
}
117+
// --- Superadmin check end ---
105118
if(!findAuthConfig.authConfig().getEnable()) {
106119
returnMono.error(newBizException(EMAIL_PROVIDER_DISABLED,"EMAIL_PROVIDER_DISABLED"));
107120
}

‎server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/authentication/GenericAuthenticateTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public void testGoogleLoginSuccess(WireMockRuntimeInfo wmRuntimeInfo) {
182182
})
183183
.verifyComplete();
184184

185-
Mockito.framework().clearInlineMocks();
185+
//Mockito.framework().clearInlineMocks();
186186
}
187187

188188
privateStringgetEmailAuthConfigId() {

‎server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/common/TestRedisConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
importjava.util.concurrent.atomic.AtomicInteger;
1111

1212
@SuppressWarnings("UnstableApiUsage")
13-
//@TestConfiguration
13+
@TestConfiguration
1414
publicclassTestRedisConfiguration {
1515

1616
privatestaticfinalAtomicIntegerSTATE =newAtomicInteger(0);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp