@@ -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 ++ } ` ;
@@ -202,6 +205,15 @@ export function generateHtmlTable<T>(reportFrameworkParameters: ReportFrameworkP
202205 ${ ctaSummary && ctaSummary . length > 0 ? ctaButton : '' }
203206 </div>` ;
204207
208+ let rollbackFlagsHtml = '' ;
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+ }
215+ }
216+
205217 return `
206218 <div class="report-wrapper">
207219 <div id="scrollable-wrapper" class="scrollable-wrapper">
@@ -231,6 +243,7 @@ export function generateHtmlTable<T>(reportFrameworkParameters: ReportFrameworkP
231243 <script src="./reportGeneratorUtility.js" defer></script>
232244 <link rel="stylesheet" href="./reportGenerator.css">
233245 </div>
246+ ${ rollbackFlagsHtml }
234247 ` ;
235248}
236249
@@ -301,3 +314,27 @@ function createIndexedRow<T>(row: T, indexedKey: string, columns: Array<TableCol
301314 }
302315 return rows ;
303316}
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 ) {
322+ return '' ;
323+ }
324+
325+ const actionText = commandType === 'migrate' ? matchingFlags . length > 1 ? 'were' : 'was' : 'will be' ;
326+
327+ return `
328+ <div class="slds-box" style="background-color: white; margin-top: 20px;">
329+ <div class="slds-text-heading_medium">Rollback Flags Disabled</div>
330+ <div style="margin-block: 15px">
331+ <p>The following rollback flag${ matchingFlags . length > 1 ? 's' : '' } ${ actionText } disabled during migration:</p>
332+ <ul class="slds-list_dotted">
333+ ${ matchingFlags . map ( flag => `<li class="slds-item slds-text-color_destructive">${ flag } </li>` ) . join ( '' ) }
334+ </ul>
335+ <p>
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.
337+ </p>
338+ </div>
339+ </div>` ;
340+ }
0 commit comments