Replace ugly file selection dialog with modern drag-and-drop interface#153
Conversation
|
@PavelBal 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs. I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review. |
Co-authored-by: PavelBal <25903040+PavelBal@users.noreply.github.com>
Co-authored-by: PavelBal <25903040+PavelBal@users.noreply.github.com>
|
lol, this does not work (so the logic is not connected?) but it looks good :D So please use as inspiration and implement properly. |
|
I have some news for you - one good and one bad. :-) The good news is that I’ve fixed the JavaScript code: the modern drag-and-drop interface with The bad news is that with our current structure, this approach is not suitable. The core issue is how the function receives a temp path instead of the real project path. This breaks downstream logic because our project expects absolute paths. Example of what Resulting warnings: What we actually expect: Proposal: Let’s keep this draft of the drag-and-drop, but consider the idea you mentioned earlier: introducing a project entry file (e.g. Implementation steps:
Sample Or in JSON: This way we keep the modern drag-and-drop interface and use fileInput instead of shinyFiles, while solving the path issue cleanly and aligning with how professional tools manage project metadata. |
|
@AKostiv8 good, please create a corresponding issue(s) in the esqlabsR repo. |
|
@AKostiv8 feel free to close if this is obsolete. |
|
transferred to PR #198 |
The file selection dialog in the ESQapp was using a basic
shinyFilesButtonthat provided a poor user experience - it was visually unattractive and functionally limited. This PR completely modernizes the file upload interface to provide a beautiful, intuitive experience.What Changed
Before: Plain, ugly button with limited functionality
After: Modern card-based interface with drag-and-drop support
Key Improvements
bslib::cardinterface featuring modern Bootstrap styling, hover effects, and smooth animationsTechnical Implementation
shinyFilesdependency with standardfileInput()for better compatibilityinst/app/www/style.css) for modern appearance and animationsinst/app/www/enhanced_file_input.js) for drag-and-drop functionalityThe new interface maintains all existing functionality while providing a dramatically improved user experience that users will actually enjoy using.
Fixes #125.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.