Skip to content
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

Dynamic group mirroring the file system. #10930

Open
koppor opened this issue Feb 26, 2024 · 11 comments
Open

Dynamic group mirroring the file system. #10930

koppor opened this issue Feb 26, 2024 · 11 comments
Assignees
Labels
📍 Assigned Assigned by assign-issue-action (or manually assigned) component: groups component: ui good first issue An issue intended for project-newcomers. Varies in difficulty.

Comments

@koppor
Copy link
Member

koppor commented Feb 26, 2024

As user, I organize my PDFs in folders. Example:

Related_Work_Collection
├── Quantum_Computing
│   ├── Algorithms
│   │   ├── Quantum_Factorization_Overview.pdf
│   │   └── Grover_Search_Implementation.pdf
│   ├── Error_Correction
│   │   ├── Topological_Qubits_and_Error_Correction.pdf
│   │   └── Quantum_Codec_Principles.pdf
│   └── Hardware
│       └── Superconducting_Qubits_Advancements.pdf
├── Machine_Learning
│   ├── Neural_Networks
│   │   ├── Deep_Learning_Architectures.pdf
│   │   └── CNN_for_Image_Recognition.pdf
│   ├── Reinforcement_Learning
│   │   └── RL_in_Video_Games.pdf
│   └── Natural_Language_Processing
│       ├── BERT_and_Transformers.pdf
│       └── Sentiment_Analysis_Techniques.pdf
└── Environmental_Science
    ├── Climate_Change
    │   └── Impact_of_Climate_Change_on_Biodiversity.pdf
    ├── Renewable_Energy
    │   ├── Solar_Energy_Trends.pdf
    │   └── Wind_Power_Innovations.pdf
    └── Conservation
        ├── Wildlife_Conservation_Strategies.pdf
        └── Marine_Protection_Efforts.pdf

When one wants to have this hierarchy in JabRef, one needs to manually create groups and sub groups.

A new type of group "Directory structure" should be created:

image

JabRef then mirrors the directory structure in the group tree. Sub groups are automatically created.

Currently: Only inbound mirroring. Use WatchService to watch for changes.

All BibEntries having a file in the selected directory belong to that group.

File added to a folder -> automatically added to the respective group and a new BibEntry created (with PDF import)

Implementation hint:

  • A user selects the root directory, all sub groups are automatically updated (created and remved) by JabRef upon file system changes.
  • Implement a DirectoryUpdateMonitor (similar to org.jabref.model.util.FileUpdateMonitor) which watches directories and sends updates to the group tree (see third bullet point at Add FileMonitor for LaTeX citations #10937 (comment) in another context)

Future work:

  1. Group moved -> On file system also renames and BibTeX entry "files" field adapted accordingly
  2. Group renamed -> On file system also renamed and BibTeX entry "files" field adapted accordingly
  3. file moved -> entry assigned to another group BibTeX entry "files" field adapted accordingly

Related issues:

@Siedlerchr
Copy link
Member

The other way round is working:

With file directory pattern, JabRef can automatically create subfolders and move the files into the directory based on the defined pattern. As an example, you have a single folder, e.g. papers for all your PDFs linked to their corresponding entry in JabRef. Now you want to arrange them according to defined groups. Let's say you have two groups, Automation and Biology, with a couple of entries.
Now set the file directory pattern to: [groups:(unknown)]

https://docs.jabref.org/finding-sorting-and-cleaning-entries/filelinks#filename-format-and-file-directory-pattern

@eggestig
Copy link

eggestig commented Mar 2, 2024

Hi! We are a group of 5 uni students who'd like to try and tackle this issue. We would love to be assigned to this issue and if there's anything extra to help us get started that would be much appreciated as well!

@ThiloteE ThiloteE moved this from Free to take to Reserved in Candidates for University Projects Mar 2, 2024
@ThiloteE ThiloteE added the FirstTimeCodeContribution Triggers GitHub Greeter Workflow label Mar 2, 2024
AntonSederlin added a commit to eggestig/jabref that referenced this issue Mar 7, 2024
- 4 new tests that validate the correcteness of "dirGroupFilePathValidator"
- Put an entry in CHANGELOG.md for our added functionality.
@koppor koppor removed the FirstTimeCodeContribution Triggers GitHub Greeter Workflow label Mar 22, 2024
@koppor koppor moved this from Reserved to Free to take in Candidates for University Projects Mar 22, 2024
@koppor koppor added good first issue An issue intended for project-newcomers. Varies in difficulty. FirstTimeCodeContribution Triggers GitHub Greeter Workflow labels Mar 22, 2024
@koppor koppor removed the FirstTimeCodeContribution Triggers GitHub Greeter Workflow label Mar 22, 2024
@github-project-automation github-project-automation bot moved this to Free to take in Good First Issues Mar 22, 2024
@JabRef JabRef deleted a comment from github-actions bot Mar 22, 2024
@JabRef JabRef deleted a comment from github-actions bot Mar 22, 2024
@upfrog
Copy link

upfrog commented Jun 20, 2024

Howdy! I'd love to give this issue a go. Could I please be assigned to it?

@koppor koppor added the FirstTimeCodeContribution Triggers GitHub Greeter Workflow label Jun 20, 2024
@koppor koppor moved this from Free to take to Reserved in Candidates for University Projects Jun 20, 2024
@koppor koppor moved this from Free to take to Reserved in Good First Issues Jun 20, 2024
Copy link
Contributor

Welcome to the vibrant world of open-source development with JabRef!

Newcomers, we're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀

@upfrog
Copy link

upfrog commented Aug 26, 2024

Howdy - I just wanted to document that I haven't abandoned this. I foolishly grabbed this issue before a bunch of travelling, but that's all over now.

@koppor
Copy link
Member Author

koppor commented Oct 15, 2024

@upfrog Any updates?

@koppor koppor added the 📍 Assigned Assigned by assign-issue-action (or manually assigned) label Oct 15, 2024
@ThiloteE ThiloteE moved this from Assigned to Free to take in Candidates for University Projects Nov 15, 2024
@ThiloteE ThiloteE moved this from Assigned to Free to take in Good First Issues Nov 15, 2024
@jpbochicchio
Copy link

Hello - I would like to take this one. Can you please assign it to me?

Thanks!

@koppor
Copy link
Member Author

koppor commented Nov 25, 2024

/assign @jpbochicchio

Copy link
Contributor

👋 Hey @jpbochicchio, thank you for your interest in this issue! 🎉

We're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀

⏳ Please note, you will be automatically unassigned if the issue isn't closed within 90 days (by 23 February 2025). A maintainer can also add the "📌 Pinned"" label to prevent automatic unassignment.

@koppor koppor moved this from Free to take to Assigned in Candidates for University Projects Nov 25, 2024
@koppor koppor moved this from Free to take to Assigned in Good First Issues Nov 25, 2024
@InAnYan
Copy link
Member

InAnYan commented Nov 27, 2024

A crazy observation:

In theory, if this feature will be implemented, JabRef could become a file-manager 😆 (though, additional machinery is needed for that: 1) represent files as bib -- this is easy, 2) represent folders as groups -- will be implemented in this issue.

@koppor
Copy link
Member Author

koppor commented Nov 29, 2024

In theory, if this feature will be implemented, JabRef could become a file-manager 😆

Yeah - and hopefully more knowledge-centered than TagSpaces.

@koppor koppor removed the FirstTimeCodeContribution Triggers GitHub Greeter Workflow label Feb 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📍 Assigned Assigned by assign-issue-action (or manually assigned) component: groups component: ui good first issue An issue intended for project-newcomers. Varies in difficulty.
Projects
Status: Assigned
Status: Assigned
Development

No branches or pull requests

7 participants