Skip to content

Commit 0aeec46

Browse files
Merge pull request #839 from contentstack/feature/affix
Feature/affix
2 parents 2d37d02 + 7775cd3 commit 0aeec46

File tree

7 files changed

+37
-22
lines changed

7 files changed

+37
-22
lines changed

ui/src/cmsData/legacyCms.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@
338338
"uid": "cs6c761d71844ac800"
339339
},
340340
"title": "Add Source Affix",
341-
"description": "Add a 2–5 character affix for the source name. Use only letters, no numbers or special characters",
341+
"description": "Add a 2–5 letter-only affix for the source name. The affix will function as a prefix if the content type UID matches with <a href=\"https://www.contentstack.com/docs/developers/create-content-types/restricted-keywords-for-uids\" target=\"_blank\">restricted UIDs</a>. The affix will function as a suffix for field UIDs. If left blank, \"cs\" will be used by default. Avoid numbers, special characters, and restricted keywords",
342342
"step_lock_text": "Editing this step is currently disabled. To make changes in Draft mode, please deactivate the migration",
343343
"lock": false,
344344
"active": false,

ui/src/components/LegacyCms/Actions/LoadPrefix.tsx

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const LoadPreFix = (props: LoadSelectCmsProps) => {
2929

3030
const dispatch = useDispatch();
3131

32-
const [prefix, setPrefix] = useState<string>(newMigrationData?.legacy_cms?.affix || '');
32+
const [prefix, setPrefix] = useState<string>(newMigrationData?.legacy_cms?.affix || 'cs');
3333

3434
const [isError, setIsError] = useState<boolean>(false);
3535
const [errorMessage, setErrorMessage] = useState<string>('');
@@ -76,7 +76,6 @@ const LoadPreFix = (props: LoadSelectCmsProps) => {
7676
isRestictedKeywordCheckboxChecked: isCheckedBoxChecked
7777
}
7878
};
79-
8079
dispatch(updateNewMigrationData(newMigrationDataObj));
8180
} else {
8281
setPrefix(value);
@@ -93,28 +92,37 @@ const LoadPreFix = (props: LoadSelectCmsProps) => {
9392
};
9493

9594
dispatch(updateNewMigrationData(newMigrationDataObj));
96-
9795
setIsError(false);
9896

9997
//call for Step Change
10098
props?.handleStepChange(props?.currentStep);
10199
return;
102100
}
103101
} else {
104-
setIsError(true);
105-
setErrorMessage('Please enter Affix');
102+
setIsError(false);
103+
setErrorMessage('');
104+
setIsRestrictedKey(false);
105+
setPrefix('');
106+
}
107+
});
108+
109+
const handleOnBlur = (value: string) => {
110+
if (isEmptyString(value?.trim())) {
111+
setIsError(false);
112+
setErrorMessage('');
113+
setIsRestrictedKey(false);
114+
setPrefix('cs');
106115
const newMigrationDataObj: INewMigration = {
107116
...newMigrationData,
108117
legacy_cms: {
109118
...newMigrationData?.legacy_cms,
110-
affix: value,
119+
affix: 'cs',
111120
isRestictedKeywordCheckboxChecked: isCheckedBoxChecked
112121
}
113122
};
114-
115123
dispatch(updateNewMigrationData(newMigrationDataObj));
116124
}
117-
});
125+
}
118126

119127
/**** ALL USEEffects HERE ****/
120128

@@ -136,6 +144,11 @@ const LoadPreFix = (props: LoadSelectCmsProps) => {
136144
aria-label="affix"
137145
disabled={newMigrationData?.legacy_cms?.uploadedFile?.isValidated}
138146
isReadOnly={newMigrationData?.legacy_cms?.uploadedFile?.isValidated}
147+
onBlur={(e: React.FocusEvent<HTMLInputElement>) => {
148+
handleOnBlur(e.target.value);
149+
150+
}}
151+
139152
/>
140153
{isError && <p className="errorMessage">{errorMessage}</p>}
141154
</div>

ui/src/components/LegacyCms/Actions/LoadUploadFile.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ const LoadUploadFile = (props: LoadUploadFileProps) => {
154154
setIsDisabled(true);
155155

156156
if (
157-
!isEmptyString(newMigrationData?.legacy_cms?.affix) &&
158157
!isEmptyString(newMigrationData?.legacy_cms?.selectedCms?.cms_id) &&
159158
!isEmptyString(newMigrationData?.legacy_cms?.selectedFileFormat?.fileformat_id)
160159
) {
@@ -358,15 +357,14 @@ const LoadUploadFile = (props: LoadUploadFileProps) => {
358357
setShowMessage(true);
359358
setValidationMessage('File validated successfully.');
360359
setIsDisabled(true);
361-
!isEmptyString(newMigrationData?.legacy_cms?.affix) ||
362360
!isEmptyString(newMigrationData?.legacy_cms?.selectedCms?.cms_id) ||
363361
(!isEmptyString(newMigrationData?.legacy_cms?.selectedFileFormat?.fileformat_id) &&
364362
props.handleStepChange(props?.currentStep, true));
365363
}
366364
if (newMigrationData?.legacy_cms?.uploadedFile?.reValidate) {
367365
setValidationMessage('');
368366
}
369-
if(!isEmptyString(newMigrationData?.legacy_cms?.affix) && !newMigrationData?.legacy_cms?.uploadedFile?.isValidated && !newMigrationData?.legacy_cms?.uploadedFile?.reValidate){
367+
if(!newMigrationData?.legacy_cms?.uploadedFile?.isValidated && !newMigrationData?.legacy_cms?.uploadedFile?.reValidate){
370368
setIsDisabled(false);
371369
}
372370
setReValidate(newMigrationData?.legacy_cms?.uploadedFile?.reValidate || false);
@@ -376,6 +374,7 @@ const LoadUploadFile = (props: LoadUploadFileProps) => {
376374
// }
377375
}, [isValidated, newMigrationData]);
378376

377+
379378
useEffect(() => {
380379
if (newMigrationData?.legacy_cms?.selectedFileFormat?.fileformat_id) {
381380
setFileFormat(newMigrationData?.legacy_cms?.selectedFileFormat?.fileformat_id);
@@ -448,7 +447,7 @@ const LoadUploadFile = (props: LoadUploadFileProps) => {
448447
isLoading={isLoading}
449448
loadingColor="#6c5ce7"
450449
version="v2"
451-
disabled={!(reValidate || (!isDisabled && !isEmptyString(newMigrationData?.legacy_cms?.affix)))}
450+
disabled={!(reValidate || (!isDisabled))}
452451
>
453452
Validate File
454453
</Button>

ui/src/components/LegacyCms/index.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ const LegacyCMSComponent = forwardRef(({ legacyCMSData, isCompleted, handleOnAll
142142
}
143143

144144
//Make Step 2 complete
145-
if (!isEmptyString(selectedCmsData?.cms_id) && (!isEmptyString(legacyCMSData?.affix) || !isEmptyString(newMigrationData?.legacy_cms?.affix))) {
145+
if (!isEmptyString(selectedCmsData?.cms_id) && (!isEmptyString(legacyCMSData?.affix) )) {
146146
setInternalActiveStepIndex(1);
147147
}
148148

@@ -197,22 +197,20 @@ const LegacyCMSComponent = forwardRef(({ legacyCMSData, isCompleted, handleOnAll
197197

198198
//Make Step 2 complete
199199
if (
200-
!isEmptyString(newMigrationData?.legacy_cms?.selectedCms?.cms_id) &&
201-
!isEmptyString(newMigrationData?.legacy_cms?.affix)
200+
!isEmptyString(newMigrationData?.legacy_cms?.selectedCms?.cms_id)
202201
) {
203202
setInternalActiveStepIndex(1);
204203
}
205204

206-
if(!isEmptyString(newMigrationData?.legacy_cms?.selectedCms?.cms_id) && !isEmptyString(newMigrationData?.legacy_cms?.affix) && newMigrationData?.legacy_cms?.uploadedFile?.isValidated){
205+
if(!isEmptyString(newMigrationData?.legacy_cms?.selectedCms?.cms_id) && newMigrationData?.legacy_cms?.uploadedFile?.isValidated){
207206
setInternalActiveStepIndex(3);
208207
}
209208
setisProjectMapped(newMigrationData?.isprojectMapped)
210209

211210
},[newMigrationData]);
212211

213212
useEffect(()=>{
214-
if(! isEmptyString(newMigrationData?.legacy_cms?.affix)
215-
&& !isEmptyString(newMigrationData?.legacy_cms?.selectedFileFormat?.title) &&
213+
if( !isEmptyString(newMigrationData?.legacy_cms?.selectedFileFormat?.title) &&
216214
! isEmptyString(newMigrationData?.legacy_cms?.selectedCms?.title) &&
217215
newMigrationData?.legacy_cms?.uploadedFile?.isValidated){
218216
setIsAllStepsCompleted(true);

ui/src/components/Stepper/HorizontalStepper/HorizontalStepper.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ const HorizontalStepper = forwardRef(
163163
-1 < newMigrationData?.legacy_cms?.currentStep &&
164164
newMigrationData?.legacy_cms?.currentStep < 2
165165
) {
166-
showNotification(newMigrationData?.legacy_cms?.currentStep + 1);
166+
// showNotification(newMigrationData?.legacy_cms?.currentStep + 1);
167167
} else if (
168168
newMigrationData?.destination_stack?.selectedStack === undefined ||
169169
newMigrationData?.destination_stack?.selectedStack === null ||

ui/src/components/Stepper/VerticalStepper/AutoVerticalStepper.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,12 @@ const AutoVerticalStepper = React.forwardRef<
9393
</Tooltip>
9494
) : null} */}
9595
</div>
96-
{data.description && <div className="stepper-discription"> {data.description}</div>}
96+
{data?.description && (
97+
<div
98+
className="stepper-discription"
99+
dangerouslySetInnerHTML={{ __html: data?.description }}
100+
/>
101+
)}
97102
</>
98103
);
99104
};

ui/src/services/api/upload.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export const uploadFilePath = () => {
4040
return `${UPLOAD_FILE_RELATIVE_URL}upload`;
4141
};
4242

43-
export const fileValidation = async (projectId: string, affix: string) => {
43+
export const fileValidation = async (projectId: string, affix = 'cs') => {
4444
try {
4545
const options = {
4646
headers: {

0 commit comments

Comments
 (0)