Closed tpendragon closed 1 year ago
Implications of this change:
This issue blocks migration away from webpacker because of an implementation detail in the browse everything react code
A first step might be removing the google drive feature.
Datadog keeps logs for 2 weeks. There are no logs showing an attempt to use google drive in the past 2 weeks: https://app.datadoghq.com/logs?query=service%3Afiggy%20%20%2Fbrowse%2Fproviders%2Fgoogle_drive%2Fauthorize&cols=host%2Cservice&index=&messageDisplay=inline&stream_sort=time%2Cdesc&viz=stream&from_ts=1663699135003&to_ts=1666291135003&live=true (vs file system: https://app.datadoghq.com/logs?query=service%3Afiggy%20%2Fbrowse%2Fproviders%2Ffast_file_system%2Fauthorize&cols=host%2Cservice&index=&messageDisplay=inline&stream_sort=time%2Cdesc&viz=stream&from_ts=1663699135003&to_ts=1666291135003&live=true). Note that this path, I believe, shows that someone selected that file source from the dropdown, not that they necessarily uploaded something with it. But it's the best I could find.
We lost the google analytics tracker in early August, but even when it was in place I don't think these browse everything routes render the layout so they don't get logged. I looked at may-june and I'm not seeing any stats on /browse.
I don't really think 2 weeks is long enough to conclude the feature's not in use.
@kelea99 says we can go forward with removing google drive. It has never worked very well and she's not aware of anyone using this ingest workflow. Kim will announce in the digital_library channel.
Replacements proposed:
re: vue finder, this looks relevant: https://github.com/jledentu/vue-finder/issues/190
Looking more at https://vue-finder.netlify.app/examples.html#basic-example. Maybe we can use the expand event instead of the selected event. The expand event does emit on leaf nodes. We still want to be able to select multiple files, so we would enable select on leaf nodes.
We could combine this with an info pane that autofills to ensure user has clarity on what they're about to ingest. Also use multiple hidden inputs so multiple file selection submits as an array.
Alternately. What if we write our own thing. We don't have a dependency on an external library that could cause us update headaches down the road. What if, for every node, you could define the label, who the children are, and whether it's selectable. This means ruby can say "this one will not ingest correctly"
Pros of writing our own thing:
decision: use our own vue component.
UI decisions still TBD. We know that the current UI has caused confusion and errors:
Some UI options we've discussed:
Particular UI considerations:
Mockups:
Implementation notes:
All data is held in the root/container. The child components fire events up and the container component manages the data updates.
Some outstanding questions:
ruby side: don't provide hidden files via api endpoint.
Current state:
Most of above is done. I did a regular JSON endpoint instead of GraphQL because it was just really, really easy. Bulk ingest is fully replaced.
There's a lot of styling that could be done and the file ingest portion needs done, which is the most complicated part.
We're running off of a branch which is a major version that may never get released, and the strategy of copying files locally during the browser session is resulting in being unable to upload large files from the Isilon.
Look at this when we remove it: https://github.com/pulibrary/figgy/pull/5315/files#diff-c1fd91cb1911a0512578b99f657554526f3e1421decdb9e908712beab57e10f9R61-R63