Skip to content

Commit 2098bd6

Browse files
committed
Merge branch 'dev' of github.com:contentstack/migration-v2-node-server into feature/re-redux-legacy
2 parents 5d612b6 + 02011ae commit 2098bd6

File tree

14 files changed

+285
-101
lines changed

14 files changed

+285
-101
lines changed

api/src/models/FieldMapper.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ interface Advanced {
1010
Multiple: boolean;
1111
Unique: boolean;
1212
NonLocalizable: boolean;
13+
EmbedObject: boolean;
14+
EmbedObjects:any;
15+
MinChars: string;
16+
MaxChars: number;
1317
}
1418

1519
/**

api/src/services/contentMapper.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ const putTestData = async (req: Request) => {
5151
const id = field?.id?.replace(/[{}]/g, "")?.toLowerCase() || uuidv4();
5252
field.id = id;
5353
fieldIds.push(id);
54-
return { id, projectId, isDeleted: true, ...field };
54+
return { id, projectId, isDeleted: false, ...field };
5555
});
5656
FieldMapperModel.update((data: any) => {
5757
data.field_mapper = [...(data?.field_mapper ?? []), ...fields];
@@ -419,7 +419,7 @@ const updateContentType = async (req: Request) => {
419419
if (fieldIndex > -1 && field?.ContentstackFieldType !== "") {
420420
FieldMapperModel.update((data: any) => {
421421
data.field_mapper[fieldIndex] = field;
422-
data.field_mapper[fieldIndex].isDeleted = false;
422+
//data.field_mapper[fieldIndex].isDeleted = false;
423423
});
424424
}
425425
});

api/src/services/org.service.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const getAllStacks = async (req: Request): Promise<LoginServiceType> => {
3838
},
3939
})
4040
);
41-
41+
// console.info(err, res);
4242
if (err) {
4343
logger.error(
4444
getLogMessage(
@@ -63,10 +63,12 @@ const getAllStacks = async (req: Request): Promise<LoginServiceType> => {
6363
);
6464
});
6565
}
66-
const locale = await getStackLocal(token_payload, stacks);
66+
// const locale:any[]
67+
// const locale = await getStackLocal(token_payload, stacks);
6768
return {
6869
data: {
69-
stacks: locale,
70+
// stacks: locale,
71+
stacks,
7072
},
7173
status: res.status,
7274
};

ui/src/App.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Suspense } from 'react';
1+
import { Suspense, useEffect } from 'react';
22
import { Provider } from 'react-redux';
33
import { PersistGate } from 'redux-persist/integration/react';
44
import { FullPageLoader } from '@contentstack/venus-components';
@@ -18,6 +18,20 @@ import { useNetworkCheck } from './components/NetworkProvider';
1818
function App() {
1919
const isOnline = useNetworkCheck();
2020

21+
useEffect(() => {
22+
const selectModal = document.querySelector('.ReactModalPortal');
23+
24+
if (selectModal instanceof HTMLElement) {
25+
if (!isOnline) {
26+
// Hide the modal by setting display to none
27+
selectModal.style.display = 'none';
28+
} else {
29+
// Show the modal by setting display to block
30+
selectModal.style.display = 'block';
31+
}
32+
}
33+
}, [isOnline]);
34+
2135
return (
2236
<>
2337
{isOnline ? (
@@ -38,5 +52,4 @@ function App() {
3852
</>
3953
);
4054
}
41-
4255
export default App;

ui/src/cmsData/region_login.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"_metadata": { "uid": "cs77a3bf15c456afbb" }
5454
},
5555
{
56-
"region": "EU",
56+
"region": "GCP_NA",
5757
"service_icon": {
5858
"uid": "blt57dafa9c1472b46f",
5959
"created_at": "2024-07-29T10:57:59.058Z",
@@ -82,7 +82,7 @@
8282
}
8383
},
8484
{
85-
"region": "AZURE_EU",
85+
"region": "EU",
8686
"service_icon": {
8787
"uid": "bltbe45879eac0025d8",
8888
"created_at": "2023-10-31T06:59:22.783Z",
@@ -106,7 +106,7 @@
106106
"_metadata": { "uid": "csf578f8fbea1ae0c0" }
107107
},
108108
{
109-
"region": "GCP_NA",
109+
"region": "AZURE_EU",
110110
"service_icon": {
111111
"uid": "blt85d2a7024c613199",
112112
"created_at": "2023-10-31T07:00:56.567Z",

ui/src/components/AdvancePropertise/advanceProperties.interface.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ export interface UpdatedSettings {
116116
* Indicates whether the component is non-localizable.
117117
*/
118118
NonLocalizable?: boolean;
119+
120+
Multiple?: boolean;
121+
122+
EmbedObjects?: any
119123
}
120124

121125
/**

ui/src/components/AdvancePropertise/index.tsx

Lines changed: 59 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ import { ContentType } from '../ContentMapper/contentMapper.interface';
2222
// Styles
2323
import './index.scss';
2424

25+
interface ContentTypeOption {
26+
label: string;
27+
value: string;
28+
}
29+
2530
/**
2631
* Component for displaying advanced properties.
2732
* @param props - The schema properties.
@@ -44,17 +49,23 @@ const AdvancePropertise = (props: SchemaProps) => {
4449
allowImagesOnly: props?.value?.AllowImagesOnly,
4550
nonLocalizable: props?.value?.NonLocalizable,
4651
embedObject: true,
47-
embedAssests: true
52+
embedAssests: true,
53+
multiple: props?.value?.Multiple,
54+
embedObjects: props?.value?.EmbedObjects
4855
});
4956

57+
const embedObjects = props?.value?.EmbedObjects?.map((item: string) => ({
58+
label: item,
59+
value: item,
60+
}));
5061
// State for content types
5162
const [contentTypes, setContentTypes] = useState<ContentType[]>([]);
52-
const [ctValue, setCTValue] = useState(null);
63+
const [ctValue, setCTValue] = useState<ContentTypeOption[] | null>(embedObjects);
64+
const [embedObjectslabels, setEmbedObjectsLabels] = useState<string[]>(props?.value?.EmbedObjects);
5365

5466
useEffect(() => {
5567
fetchContentTypes('');
5668
}, [])
57-
5869
/**
5970
* Fetches the content types list.
6071
* @param searchText - The search text.
@@ -77,16 +88,27 @@ const AdvancePropertise = (props: SchemaProps) => {
7788
[field]: (event.target as HTMLInputElement)?.value
7889
}));
7990

91+
const currentToggleStates = {
92+
...toggleStates,
93+
[field]: (event.target as HTMLInputElement)?.value,
94+
};
95+
8096
props?.updateFieldSettings(
8197
props?.rowId,
8298
{
99+
...props?.value,
83100
[field?.charAt(0)?.toUpperCase() + field?.slice(1)]: (event.target as HTMLInputElement)?.value,
84101
validationRegex: '',
85-
Mandatory: false,
86-
Multiple: false,
102+
MinChars: currentToggleStates?.minChars,
103+
MaxChars:currentToggleStates?.maxChars,
104+
Mandatory: currentToggleStates?.mandatory,
105+
Multiple: currentToggleStates?.multiple,
87106
Unique: false,
88-
NonLocalizable: false,
89-
EmbedObject: false
107+
NonLocalizable: currentToggleStates?.nonLocalizable,
108+
EmbedObject: currentToggleStates?.embedObject,
109+
EmbedObjects: embedObjectslabels,
110+
MinRange: currentToggleStates?.minRange,
111+
MaxRange: currentToggleStates?.maxRange,
90112
},
91113
checkBoxChanged
92114
);
@@ -103,22 +125,35 @@ const AdvancePropertise = (props: SchemaProps) => {
103125
...prevStates,
104126
[field]: value
105127
}));
106-
128+
const currentToggleStates = {
129+
...toggleStates,
130+
[field]: value,
131+
};
132+
107133
props?.updateFieldSettings(
108134
props?.rowId,
109135
{
110136
[field?.charAt(0)?.toUpperCase() + field?.slice(1)]: value,
111137
validationRegex: '',
112-
Mandatory: false,
113-
Multiple: false,
138+
Mandatory: currentToggleStates?.mandatory,
139+
Multiple: currentToggleStates?.multiple,
114140
Unique: false,
115-
NonLocalizable: false,
116-
EmbedObject: false
141+
NonLocalizable: currentToggleStates?.nonLocalizable,
142+
EmbedObject: currentToggleStates?.embedObject,
143+
EmbedObjects : embedObjectslabels
117144
},
118145
checkBoxChanged
119146
);
120147
};
121148

149+
useEffect(() => {
150+
151+
if (ctValue && Array.isArray(ctValue)) {
152+
const labels = ctValue.map((item) => item.label);
153+
setEmbedObjectsLabels(labels);
154+
}
155+
}, [ctValue]);
156+
122157
// Option for content types
123158
const option = Array.isArray(contentTypes)
124159
? contentTypes.map((option) => ({ label: option?.otherCmsTitle, value: option?.otherCmsTitle }))
@@ -323,7 +358,18 @@ const AdvancePropertise = (props: SchemaProps) => {
323358
<Select
324359
value={ctValue}
325360
isMulti={true}
326-
onChange={setCTValue}
361+
onChange={(selectedOptions:any) => {
362+
setCTValue(selectedOptions);
363+
const embedObject = selectedOptions.map((item: any) => item.label);// Update the state with the selected options
364+
props?.updateFieldSettings(
365+
props?.rowId,
366+
{
367+
validationRegex : toggleStates?.validationRegex || '',
368+
EmbedObjects: embedObject
369+
},
370+
true,
371+
);
372+
}}
327373
options={option}
328374
placeholder="Select Content Types"
329375
version='v2'
@@ -334,16 +380,6 @@ const AdvancePropertise = (props: SchemaProps) => {
334380
/>
335381
)}
336382

337-
<div className='ToggleWrap'>
338-
<ToggleSwitch
339-
label="Embed Asset(s)"
340-
labelColor="primary"
341-
labelPosition="right"
342-
checked={toggleStates?.embedAssests}
343-
disabled={toggleStates?.embedAssests}
344-
onChange={handleToggleChange && ((e: React.MouseEvent<HTMLElement>) => handleToggleChange('embedAssests', (e.target as HTMLInputElement)?.checked, true))}
345-
/>
346-
</div>
347383
</>
348384
)}
349385
{props?.fieldtype !== 'Global' && (
@@ -357,18 +393,6 @@ const AdvancePropertise = (props: SchemaProps) => {
357393
/>
358394
</div>
359395
)}
360-
361-
{props?.fieldtype === 'File' && (
362-
<div className='ToggleWrap'>
363-
<ToggleSwitch
364-
label="Allow Images Only"
365-
labelColor="primary"
366-
labelPosition="right"
367-
checked={toggleStates?.allowImagesOnly}
368-
onChange={handleToggleChange && ((e: React.MouseEvent<HTMLElement>) => handleToggleChange('allowImagesOnly', (e.target as HTMLInputElement)?.checked, true))}
369-
/>
370-
</div>
371-
)}
372396

373397
<div className='ToggleWrap'>
374398
<Tooltip

ui/src/components/Card/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ const CardList = ({ project }: ProjectType) => {
7070
// }, [selectedOrganisation?.value, project?.id]);
7171

7272
return (
73-
<div style={{ margin: '0 20px 20px 0' }}>
73+
<div style={{ margin: '0 19px 20px 0' }}>
7474
<div onClick={() => onClickProject(project?.id || '')}>
7575
<div className="ProjectCard">
7676
<div className='ProjectCardWrapper'>

ui/src/components/Common/Card/card.scss

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,6 @@
143143
* CSS class for a centered card title.
144144
* Adds a margin of 10px to the title.
145145
*/
146-
.centered-card-title {
147-
margin: 10px;
148-
}
149-
.centered-card-title{
150-
margin: 10px;
151-
}
152-
153146
.centered-card-title {
154147
margin: 10px;
155148
p {

ui/src/components/ContentMapper/contentMapper.interface.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ export interface Advanced {
7373
Unique?: boolean;
7474
NonLocalizable?: boolean;
7575
EmbedObject?: boolean;
76+
EmbedObjects?:any;
77+
MinChars?: string;
78+
MaxChars?: number;
79+
MinRange?: number,
80+
MaxRange?: number,
7681
}
7782

7883
export interface ItemStatus {

0 commit comments

Comments
 (0)