Feature Request: Library-to-Library copy

I was recently futzing around with two copies of my EF libraries, trying to get them in sync, when I tried to drag a couple files from one to the other, and then saw that I couldn’t. First I dragged it from one window into the source pane of the other, hoping to get it imported into the Library at root level, then onto one of the specific folders of the library. I feel like this would be a nice feature, since one advantage it would have over import from the finder is—theoretically—copying tags and notes as well.

Presumably you’ve thought about this; one question would be what to do with tags that aren’t in the destination library. I guess it would be nice if they were created (with icon, even!) there, but that might be undesirable to some.

Yes, that’s on my to-do list. I was planning to create the tags (with the same color and abbreviation) if they were absent, and otherwise use the existing tags with the same names.

You can do this in EagleFiler 1.2.

It would be great to be able to do this via Applescript. I’d like to set up a (small, easily loaded) “Incoming” library to receive dropped/captured files, which could then be moved to another library by Applescript and deleted from “Incoming”.

I don’t know the details of how you’d want this to work, but it sounds like it would be possible. You can tell EagleFiler, via AppleScript, to import a file that’s in another library, and you can also tell it to move files in the library to the trash.

What I would really like to do is move ALL the records in one library to another one. That’s where I am having trouble. I could manually select all the records and then move them, but I cannot figure out how to select them all via Applescript. I have tried several variants on “set theRecords to every library record of library document ‘xxx’” without success.

Well, you probably don’t want to select the records because you don’t need to control the user interface, just import the records. There are different ways to do this, but here’s a way that imports the top-level files/folders of one library into the top level of the other:

tell application "EagleFiler"
    tell library document 1
        backup metadata
        set _root to root folder
        set _records to _root's library records
        set _files to {}
        repeat with _record in _records
            copy _record's file to end of _files
        end repeat
    end tell
    tell library document 2
        import files _files
    end tell
end tell

At present, there’s no way to tell from AppleScript when the import is done so that you can move the records to the trash. This will be addressed in a future version of EagleFiler.

By the way, you don’t want to use “every library record” because that would give you each folder and all the items within each folder. Importing a folder will already import its contents.

Copying of data between Libraries
Michael,

Have 3 major EF libraries which are open all the time. Clippings and pdf are constantly being sent to the wrong library. This means culling and sorting all the time. Sure we can drag from one library to another.

Would it be possible to have the other libraries show up at the top of the library listing at the left of the EF window. Like servers and volumes show up at the top left-hand corner of Finder windows (as “Devices” or “Shared”). We could then just drag docs to the correct EF library.

Regards and Happy End Of Year to all. And congratulations to Michael for such a wonderful application.

Steve J

That sounds like a good idea. Thanks. However, before I do this I’m planning to make some changes so that one is less likely to import into the wrong library in the first place.

With EagleFiler 1.3, you can press Option-F1 to choose which library to import into.