zyratlo opened a new pull request, #8963:
URL: https://github.com/apache/texera/pull/8963

   ### What changes were proposed in this PR?
   
   > [!NOTE]
   > Stacked on #8912, which is stacked on #8911 and #8910. Until those merge, 
this diff also shows their commits.
   
   This PR lets users convert R files, using the R script conversion from 
#8911. It is the second UI PR for R support (#8009), after R notebooks in 
#8912. R folders follow in their own PR.
   
   **Import modal.** An "R File" tab after Python Folder, laid out like the 
Python File tab: its own diagram, a description, and an upload row that accepts 
`.R` and `.r`. It is one more entry in the `IMPORT_TABS` list from #8912, which 
is all the language and tab logic it needs.
   
   **Disabled, not hidden.** As with the R Notebook option in #8912, the tab is 
always shown. When `rNotebookMigrationEnabled` is off it is greyed out, cannot 
be selected, and its title shows the tooltip "R is not enabled on this 
deployment."
   
   **Dispatch.** A small per language table now holds each language's script 
extension and messages. For R, the dashboard accepts `.ipynb` or `.R` / `.r`, 
and anything else gets "Please upload an R Jupyter Notebook (.ipynb) or an R 
(.R) file." R files go through the R script conversion, and a file that cannot 
be read gets R wording. Python's messages are unchanged.
   
   **Assets.** A new R file diagram, at the same size and border as the others. 
`frontend/LICENSE-binary` adds it to the Material Symbols entry.
   
   #### Demo video (waiting time cut out)
   
   
https://github.com/user-attachments/assets/fc1dc88a-452b-41ca-a972-22e4e9617e53
   
   #### R File disabled on a deployment without R
   
   <img width="308" height="88" alt="image" 
src="https://github.com/user-attachments/assets/261f86ac-77a0-4a7f-99ff-6a15da1310f5";
 />
   
   ### Any related issues, documentation, discussions?
   
   Part of #8009
   Parent-issue #4301
   
   The plan is in https://github.com/apache/texera/discussions/8866. Language 
mismatches between the upload and the selected tab are tracked in #8929.
   
   ### How was this PR tested?
   
   * `notebook-import-modal.component.spec.ts`, four new tests: the tab is 
disabled with its tooltip while the R flag is off and a click does not select 
it; while the flag is on it shows its diagram, accepts `.R,.r` and reports the 
R language; and submit passes `"r"`. The tab count assertion now expects four 
tabs, and the tooltip lookup finds each tooltip by the element it is attached 
to, since the modal now has two.
   * `user-workflow.component.spec.ts`, three new tests: `.R` and `.r` convert 
as R scripts, and an unreadable R file gets R wording. The R test from #8912 
now rejects a `.py`, since `.R` is accepted here, and the Python script 
assertion now expects `"python"`.
   
   The full frontend suite passes.
   
   Checked by hand against a local stack. With the R flag off, the R File tab 
is disabled, ignores clicks and shows its tooltip. With it on, the tab shows 
its diagram, description and `.R,.r` upload row, a staged file clears on 
changing tabs, and no tab scrolls. An R file converted end to end with a live 
model.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Claude Opus 5.5)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to