Skip to content

Commit 1c85f26

Browse files
committed
Conflicts resolved and rollbackFlag report added in new design
1 parent 81c4e04 commit 1c85f26

File tree

6 files changed

+42
-23
lines changed

6 files changed

+42
-23
lines changed

src/utils/reportGenerator/reportGenerator.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ export function generateHtmlTable<T>(reportFrameworkParameters: ReportFrameworkP
2121
const reportHeaderLabel: string = reportFrameworkParameters.reportHeaderLabel;
2222
const indexedKey: string = reportFrameworkParameters.indexedKey;
2323
const showMigrationBanner: boolean = reportFrameworkParameters.showMigrationBanner;
24+
const rollbackFlags: string[] = reportFrameworkParameters.rollbackFlags || [];
25+
const rollbackFlagName: string = reportFrameworkParameters.rollbackFlagName;
26+
const commandType: 'assess' | 'migrate' = reportFrameworkParameters.commandType || 'assess';
2427

2528
const transformedHeader: TableHeaderCell[][] = transform(headerColumns);
2629
const tableId = `report-table-${reportTableInstance++}`;
@@ -203,8 +206,12 @@ export function generateHtmlTable<T>(reportFrameworkParameters: ReportFrameworkP
203206
</div>`;
204207

205208
let rollbackFlagsHtml = '';
206-
if (reportFrameworkParameters.rollbackFlags && reportFrameworkParameters.rollbackFlagName) {
207-
rollbackFlagsHtml = generateRollbackFlagsHtml(reportFrameworkParameters.rollbackFlags, reportFrameworkParameters.rollbackFlagName);
209+
if (rollbackFlags && rollbackFlagName) {
210+
const flagNames = rollbackFlagName.split(',').map(flag => flag.trim());
211+
const matchingFlags = flagNames.filter(flag => rollbackFlags.includes(flag));
212+
if (matchingFlags.length > 0) {
213+
rollbackFlagsHtml = generateRollbackFlagsHtml(rollbackFlags, matchingFlags.join(', '), commandType);
214+
}
208215
}
209216

210217
return `
@@ -307,20 +314,26 @@ function createIndexedRow<T>(row: T, indexedKey: string, columns: Array<TableCol
307314
}
308315
return rows;
309316
}
310-
export function generateRollbackFlagsHtml(rollbackFlags: string[], flagName: string): string {
311-
if (!rollbackFlags.includes(flagName)) {
317+
export function generateRollbackFlagsHtml(rollbackFlags: string[], flagNames: string, commandType: 'assess' | 'migrate' = 'assess'): string {
318+
const flagNameArray = flagNames.split(',').map(flag => flag.trim());
319+
const matchingFlags = flagNameArray.filter(flag => rollbackFlags.includes(flag));
320+
321+
if (matchingFlags.length === 0) {
312322
return '';
313323
}
324+
325+
const actionText = commandType === 'migrate' ? matchingFlags.length > 1 ? 'were' : 'was' : 'will be';
326+
314327
return `
315328
<div class="slds-box" style="background-color: white; margin-top: 20px;">
316329
<div class="slds-text-heading_medium">Rollback Flags Disabled</div>
317330
<div style="margin-block: 15px">
318-
<p>The following rollback flag will be disabled during migration:</p>
331+
<p>The following rollback flag${matchingFlags.length > 1 ? 's' : ''} ${actionText} disabled during migration:</p>
319332
<ul class="slds-list_dotted">
320-
<li class="slds-item slds-text-color_destructive">${flagName}</li>
333+
${matchingFlags.map(flag => `<li class="slds-item slds-text-color_destructive">${flag}</li>`).join('')}
321334
</ul>
322335
<p>
323-
<strong>Note:</strong> This flag will no longer be supported after migration. For assistance, please contact support.
336+
<strong>Note:</strong> ${matchingFlags.length > 1 ? 'These ' : 'This '} flag${matchingFlags.length > 1 ? 's will' : ' will'} no longer be supported after migration. For assistance, please contact support.
324337
</p>
325338
</div>
326339
</div>`;

src/utils/reportGenerator/reportInterfaces.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,5 @@ export interface ReportFrameworkParameters<T> {
7878
showMigrationBanner: boolean;
7979
rollbackFlags?: string[];
8080
rollbackFlagName?: string;
81+
commandType?: 'assess' | 'migrate';
8182
}

src/utils/resultsbuilder/DRAssessmentReporter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export class DRAssessmentReporter {
124124
},
125125
];
126126

127-
const reportFrameworkParameters: ReportFrameworkParameters<DRAssessmentReporter> = {
127+
const reportFrameworkParameters: ReportFrameworkParameters<DataRaptorAssessmentInfo> = {
128128
headerColumns: headerColumn,
129129
columns,
130130
rows: dataRaptorAssessmentInfos,
@@ -135,6 +135,7 @@ export class DRAssessmentReporter {
135135
showMigrationBanner: true,
136136
rollbackFlags,
137137
rollbackFlagName: 'RollbackDRChanges',
138+
commandType: 'assess',
138139
};
139140
// Render table
140141
const tableHtml = generateHtmlTable(reportFrameworkParameters);

src/utils/resultsbuilder/IPAssessmentReporter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ export class IPAssessmentReporter {
115115
showMigrationBanner: true,
116116
rollbackFlags,
117117
rollbackFlagName: 'RollbackIPChanges',
118+
commandType: 'assess',
118119
};
119120
// Render table
120121
const tableHtml = generateHtmlTable(reportFrameworkParameters);

src/utils/resultsbuilder/OSAssessmentReporter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ export class OSAssessmentReporter {
192192
showMigrationBanner: true,
193193
rollbackFlags,
194194
rollbackFlagName: 'RollbackOSChanges',
195+
commandType: 'assess',
195196
};
196197

197198
// Render table

src/utils/resultsbuilder/index.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export class ResultsBuilder {
4646

4747
this.logger.info('Generating migration report dashboard');
4848
this.generateMigrationReportDashboard(orgDetails, this.getFormattedDetails(results, relatedObjectMigrationResult));
49+
4950
this.logger.info('Pushing assets');
5051
pushAssestUtilites('javascripts', resultsDir);
5152
pushAssestUtilites('styles', resultsDir);
@@ -319,6 +320,16 @@ export class ResultsBuilder {
319320
];
320321

321322
this.logger.info(`Generating table body for result: ${result.name}`);
323+
324+
// Determine which rollback flag to use based on component type
325+
let rollbackFlagNames: string[] = [];
326+
const componentName = result.name.toLowerCase();
327+
if (componentName.includes('datamapper') || componentName.includes('data mapper')) {
328+
rollbackFlagNames = ['RollbackDRChanges'];
329+
} else if (componentName.includes('omniscript') || componentName.includes('integration procedure')) {
330+
rollbackFlagNames = ['RollbackOSChanges', 'RollbackIPChanges'];
331+
}
332+
322333
const reportFrameworkParameters: ReportFrameworkParameters<MigratedRecordInfo> = {
323334
headerColumns,
324335
columns,
@@ -328,6 +339,9 @@ export class ResultsBuilder {
328339
ctaSummary: [],
329340
reportHeaderLabel: `${resultConstants.title}`,
330341
showMigrationBanner: true,
342+
rollbackFlags: orgDetails.rollbackFlags,
343+
rollbackFlagName: rollbackFlagNames.join(','),
344+
commandType: 'migrate',
331345
};
332346

333347
tablebody = generateHtmlTable(reportFrameworkParameters);
@@ -428,6 +442,9 @@ export class ResultsBuilder {
428442
ctaSummary: [],
429443
reportHeaderLabel: `${apexConstants.title}`,
430444
showMigrationBanner: false,
445+
rollbackFlags: orgDetails.rollbackFlags,
446+
rollbackFlagName: 'RollbackApexChanges',
447+
commandType: 'migrate',
431448
};
432449

433450
const html = `<html>${this.createHeadWithScript(
@@ -526,19 +543,4 @@ export class ResultsBuilder {
526543
// </html>`;
527544
// fs.writeFileSync(resultsDir + '/' + lwcConstants.componentName + '.html', html);
528545
// }
529-
private static generateRollbackFlagsReport(enabledFlags: string[]): string {
530-
return `
531-
<div class="slds-box" style="background-color: white">
532-
<div class="slds-text-heading_medium">Rollback Flags Disabled</div>
533-
<div style="margin-block: 15px">
534-
<p>The following rollback flags were disabled during migration:</p>
535-
<ul class="slds-list_dotted">
536-
${enabledFlags.map((flag) => `<li class="slds-item slds-text-color_destructive">${flag}</li>`).join('')}
537-
</ul>
538-
<p>
539-
<strong>Note:</strong> These flags are no longer supported after migration. For assistance, please contact support.
540-
</p>
541-
</div>
542-
</div>`;
543-
}
544546
}

0 commit comments

Comments
 (0)