-
Notifications
You must be signed in to change notification settings - Fork 113
Adding a button to generate a report for a workflow #2770
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Suggestions:
|
bobbai00
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job! The code is much clearer now.
Please take care of the comments. Also functionality-wise, can you see if there is a way to embed the operator icon into the exported image?
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
635468b to
2456359
Compare
7f73525 to
c84f0d0
Compare
… the yarn format:fix
4dcb6f1 to
3c4fe25
Compare
bobbai00
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments.
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
7aac413 to
4d495b8
Compare
bobbai00
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
add notificationService
add notificationService
2c60511 to
1fac658
Compare
bobbai00
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. left some comments
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
add short comments
add short comments
1882b52 to
0f788b1
Compare
|
A few comments:
|
|
The description says: "After running the workflow, click the bottom below." What if the user clicks the button before the execution is finished? If it's not clickable, can we disable the button before the execution? |
I think it is clickable before finishing execution in this pr. But after adding the outcomes of operators as part B, if the user clicks the button before the execution is finished, the report will not include the outcome. I have edited the description. I will try to disable it after adding the outcomes of operators. |
core/gui/src/app/workspace/service/report-print/report-print.service.ts
Outdated
Show resolved
Hide resolved
|
Change the subject to something like: "Adding a button to generate a report for a workflow" |
59749ec to
521ed07
Compare
core/gui/src/app/workspace/service/report-generate/report-generate.service.ts
Show resolved
Hide resolved
core/gui/src/app/workspace/service/report-generate/report-generate.service.ts
Outdated
Show resolved
Hide resolved
bcb2b1d to
059cd1c
Compare
cd147df to
5dd95fd
Compare
chenlica
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM now after the changes.
Thank you for your time and patience. |
This PR enhances the report generation functionality by integrating comprehensive operator results handling, allowing for more detailed and informative reports. This PR is a continuation and enhancement of the previous PR, which can be found at the following link: #2770 The file was modified in this PR: ReportGenerationService getAllOperatorResults(operatorIds: string[]): Collects all operator results from the workflow, processes them, and generates an HTML report containing both the workflow snapshot and the results for each operator. The final report is automatically downloaded with a file name derived from the workflow name. retrieveOperatorInfoReport(operatorId: string,allResults: { operatorId: string; html: string }[]): Fetches and processes the result for a given operator, generating an HTML snippet that is included in the final report. Handles different result types, including paginated results and snapshot results. generateReportAsHtml(workflowSnapshot: string, allResults: string[], workflowName: string): Generates a comprehensive HTML file containing the workflow snapshot and all operator results, then triggers a download of the report. The file name is created using the workflow name, ensuring easy identification of the report. The file was changed in this PR: MenuComponent onClickGenerateReport: Displays a notification indicating that the report generation has started, collects the operator results using getAllOperatorResults from ReportGenerationService, and then calls generateReportAsHtml to generate and download the comprehensive HTML report. Operation Process: Click the button below to generate the report with detailed operator results and the workflow snapshot.  Here is a part of the example report.  
…ion (#2807) This PR enhances the report generation functionality by adding Operator JSON and Comments Section. This PR is a continuation and enhancement of the previous PR, which can be found at the following link: #2770 and #2792 1. The file was modified in this PR: ReportGenerationService retrieveOperatorInfoReport(operatorId: string,allResults: { operatorId: string; html: string }[]): Implements a 'Toggle Detail' button beneath each operator, allowing users to expand and view the operator's corresponding JSON, formatted using a JSON viewer. Adds a comments section below each operator, enabling users to leave their own comments. It can be use 2. generateReportAsHtml(workflowSnapshot: string, allResults: string[], workflowName: string): Generates a comprehensive HTML file containing the workflow snapsho, all operator results, operator details, and comments section ,then triggers a download of the report. add 'Download Workflow JSON' button, allowing user download the whole JSON file directly from the report. Operation Process: Click the button below to generate the report with detailed operator results and the workflow snapshot.  Here is a part of the example report.  
This PR enhances the report generation functionality by adding animation during the process. This PR is a continuation and enhancement of the previous PR: Adding a button to generate a report for a workflow: #2770 Enhancing Report Generation by adding Operator Results: #2792 Enhancing Report Generation by Adding Operator Json and Comments Section : #2807 Ai Flag: #2818 and #2808 Key Changes: **menu.component.ts:** At the start, notification.blank is called to display a message, and notification.remove is used to remove it at the end. Upon successful generation, this.notificationService.success is invoked. **notification.service.ts:** notification.blank and notification.remove have been added. Screenshot of the notification:  
#2816) This PR enhances the report generation functionality by addingStory-teller Ai based on Ai flag. This PR is a continuation and enhancement of the previous PR: Adding a button to generate a report for a workflow: #2770 Enhancing Report Generation by adding Operator Results: #2792 Enhancing Report Generation by Adding Operator Json and Comments Section : #2807 Ai Flag: #2818 and #2808 **New Methods:** checkAiAssistantEnabled(): Validates whether the AI Assistant feature is enabled by checking the availability of the required API key. This function ensures that subsequent AI-based functionalities are executed only when the AI Assistant is available. generateComment(operatorInfo: any): Generates insightful comments for each operator using OpenAI’s GPT model, tailored for a highly educated audience but one that might not have deep statistical knowledge. The comments are plain text, enhancing the overall readability and value of the report. generateSummaryComment(operatorInfo: any): Produces a concise, insightful summary comment that highlights key findings, trends, and areas of improvement across the workflow, focusing particularly on UDFs. This function is crucial for providing a comprehensive understanding of the workflow to users. **Enhanced Methods:** retrieveOperatorInfoReport(operatorId: string, allResults: { operatorId: string; html: string }[]): Implements the checkAiAssistantEnabled, generateComment, and generateSummaryComment functions to enrich the operator information section in the generated reports. The function now adds a "Toggle Detail" button beneath each operator, allowing users to expand and view the operator’s corresponding JSON, formatted using a JSON viewer. Additionally, a comments section is added below each operator, enabling users to leave or view AI-generated comments. generateReportAsHtml(workflowSnapshot: string, allResults: string[], workflowName: string): Generates a comprehensive HTML file containing the workflow snapshot, all operator results, operator details, and comments. This method integrates AI-generated comments and a summary section at the end of the report. It also introduces a "Download Workflow JSON" button, allowing users to download the entire workflow JSON file directly from the report. **Operation Process:** Click the button below to generate the report with detailed operator results and the workflow snapshot.  To turn on the ai feature, you need to modify the following sections in application.udf  For example, to turn on the openai:  Here is a part of the example report.  
This PR enhances the report generation functionality by integrating comprehensive operator results handling, allowing for more detailed and informative reports. This PR is a continuation and enhancement of the previous PR, which can be found at the following link: #2770 The file was modified in this PR: ReportGenerationService getAllOperatorResults(operatorIds: string[]): Collects all operator results from the workflow, processes them, and generates an HTML report containing both the workflow snapshot and the results for each operator. The final report is automatically downloaded with a file name derived from the workflow name. retrieveOperatorInfoReport(operatorId: string,allResults: { operatorId: string; html: string }[]): Fetches and processes the result for a given operator, generating an HTML snippet that is included in the final report. Handles different result types, including paginated results and snapshot results. generateReportAsHtml(workflowSnapshot: string, allResults: string[], workflowName: string): Generates a comprehensive HTML file containing the workflow snapshot and all operator results, then triggers a download of the report. The file name is created using the workflow name, ensuring easy identification of the report. The file was changed in this PR: MenuComponent onClickGenerateReport: Displays a notification indicating that the report generation has started, collects the operator results using getAllOperatorResults from ReportGenerationService, and then calls generateReportAsHtml to generate and download the comprehensive HTML report. Operation Process: Click the button below to generate the report with detailed operator results and the workflow snapshot.  Here is a part of the example report.  
…ion (#2807) This PR enhances the report generation functionality by adding Operator JSON and Comments Section. This PR is a continuation and enhancement of the previous PR, which can be found at the following link: #2770 and #2792 1. The file was modified in this PR: ReportGenerationService retrieveOperatorInfoReport(operatorId: string,allResults: { operatorId: string; html: string }[]): Implements a 'Toggle Detail' button beneath each operator, allowing users to expand and view the operator's corresponding JSON, formatted using a JSON viewer. Adds a comments section below each operator, enabling users to leave their own comments. It can be use 2. generateReportAsHtml(workflowSnapshot: string, allResults: string[], workflowName: string): Generates a comprehensive HTML file containing the workflow snapsho, all operator results, operator details, and comments section ,then triggers a download of the report. add 'Download Workflow JSON' button, allowing user download the whole JSON file directly from the report. Operation Process: Click the button below to generate the report with detailed operator results and the workflow snapshot.  Here is a part of the example report.  
This PR enhances the report generation functionality by adding animation during the process. This PR is a continuation and enhancement of the previous PR: Adding a button to generate a report for a workflow: #2770 Enhancing Report Generation by adding Operator Results: #2792 Enhancing Report Generation by Adding Operator Json and Comments Section : #2807 Ai Flag: #2818 and #2808 Key Changes: **menu.component.ts:** At the start, notification.blank is called to display a message, and notification.remove is used to remove it at the end. Upon successful generation, this.notificationService.success is invoked. **notification.service.ts:** notification.blank and notification.remove have been added. Screenshot of the notification:  
#2816) This PR enhances the report generation functionality by addingStory-teller Ai based on Ai flag. This PR is a continuation and enhancement of the previous PR: Adding a button to generate a report for a workflow: #2770 Enhancing Report Generation by adding Operator Results: #2792 Enhancing Report Generation by Adding Operator Json and Comments Section : #2807 Ai Flag: #2818 and #2808 **New Methods:** checkAiAssistantEnabled(): Validates whether the AI Assistant feature is enabled by checking the availability of the required API key. This function ensures that subsequent AI-based functionalities are executed only when the AI Assistant is available. generateComment(operatorInfo: any): Generates insightful comments for each operator using OpenAI’s GPT model, tailored for a highly educated audience but one that might not have deep statistical knowledge. The comments are plain text, enhancing the overall readability and value of the report. generateSummaryComment(operatorInfo: any): Produces a concise, insightful summary comment that highlights key findings, trends, and areas of improvement across the workflow, focusing particularly on UDFs. This function is crucial for providing a comprehensive understanding of the workflow to users. **Enhanced Methods:** retrieveOperatorInfoReport(operatorId: string, allResults: { operatorId: string; html: string }[]): Implements the checkAiAssistantEnabled, generateComment, and generateSummaryComment functions to enrich the operator information section in the generated reports. The function now adds a "Toggle Detail" button beneath each operator, allowing users to expand and view the operator’s corresponding JSON, formatted using a JSON viewer. Additionally, a comments section is added below each operator, enabling users to leave or view AI-generated comments. generateReportAsHtml(workflowSnapshot: string, allResults: string[], workflowName: string): Generates a comprehensive HTML file containing the workflow snapshot, all operator results, operator details, and comments. This method integrates AI-generated comments and a summary section at the end of the report. It also introduces a "Download Workflow JSON" button, allowing users to download the entire workflow JSON file directly from the report. **Operation Process:** Click the button below to generate the report with detailed operator results and the workflow snapshot.  To turn on the ai feature, you need to modify the following sections in application.udf  For example, to turn on the openai:  Here is a part of the example report.  
This PR introduces the functionality with a button in the menu to generate an initial report with a snapshot of the workflow.
generateWorkflowSnapshot(workflowName: string): Captures a snapshot of the workflow editor as a base64-encoded PNG image URL. It ensures all image resources are loaded before taking the snapshot using html2canvas.
generateReportAsHtmll(workflowSnapshotURL: string, workflowName: string): Generates an HTML file containing the workflow snapshot and triggers a download of the file. The file name is derived from the workflow name.
onClickGenerateReport: Displays a notification indicating the report generation has started, calls generateWorkflowSnapshot from ReportGenerationService to capture the workflow snapshot, and then calls generateResultsAsHtml to generate and download the HTML report.
Operation Process:Click the button below.

Here is the generated report.
