Solid file manager

Forgot to report back, but tested the updated master branch some days ago and it’s been working fine for me ever since - no problems so far :slight_smile:

You also asked for feature requests, so here’s some:

  • List view: showing files in a list rather than grid (toggle)
  • Meta data: showing more meta data for files (when available), like the Data link in default Pod browser.
  • ACL edit: (but I think you already had that on the Todo?)
  • Folder favorites/bookmarks: But not sure if it’s possible to save it (local storage perhaps?)
  • OpenWith: Not sure if this is possible either, but would be cool if you could send the file url to another app and use that for viewing/editing the content.

Well just some suggestions, keep up the good work! :slight_smile:

2 Likes

Thanks for your suggestions :))

I’m currently refactoring the code base with the goal of making it more maintainable (using typescript, eslint, adding some test cases and restructuring where seems useful). I guess this will take about one week, but afterwards adding new features should be less error-prone and therefore faster to develop.

Up next:

Probably in the next month

  • .acl support for copying (not editing yet) as this could lead to unexpected results when copying/renaming something
  • copy/extract to exact location (so it’s possible to copy from a public pod folder to a private pod)
  • better update behavior (currently the user needs to make a full refresh for updating)
  • bugfixes (e.g. Ctrl+click for selecting multiple specific items)

Outlook:

Probably in the next two months

  • open/edit .acl of item
  • menu for access permissions (.acl edit with UI)
  • removal confirmation (with option to “Don’t show this again”)
  • overwriting confirmation

In consideration:

  • using multiple accounts (depends on support from solid-auth-client and would probably need some time for the UI)
  • list view (would take a bit time to make it look good for desktop and mobile)
  • meta data (probably as info menu, or displaying in the bottom when selected and in the list view)
  • OpenWith… (I already thought about this, and wasn’t sure how exactly this should look like. My first idea was to make an assoc with "[Display name]: "https://url.to.app/?url=${URL}" where the user hast to take care of passing the url. My second thought was, that this should be in some preferences file in the solid pod. My third thought was, it could be done by an extension which automatically forwards it (but that would depend on extensions and isn’t that nice anyways). And also it could be nice, if there is an “Suggested Apps” list with file types and corresponding apps which could be used (good for finding new apps, but enforces some standard apps). Also the logic behind this could be coded into a package which is independent from the UI implementation. So all in all I think that’s something which should firstly be discussed and developed outside of the solid-filemanager.

One of the main reason for the “In consideration” not being the next in the road map is, that I’m not so familiar with creating responsive and accessible UI yet. But they are still on the roadmap :slight_smile:

So yeah, that’s the rough roadmap I see for the solid-filemanager. But as I am not sure how much time exactly I’ll have for this project and the goals and priorities could (and likely will) change in the future it’s just a broad idea of what will come, not an exact timetable :))

3 Likes

Sound like a good plan! :slight_smile:

I’m not a coder so can’t help much with that, but ready for testing stuff whenever it’s needed.

And yeah agree about your considerations about OpenWith - this should indeed be a more standarized system, so it can be shared. I must admit I still find the solid apps a bit confusing - all the app permission issues, config and hosting makes it all a bit challenging. But I like the idea of storing default content mapping on a pod, and even better if we could store the app preferences and other metadata there as well.

Is there some other thread or place where this is already being discussed?

I like your idea of keeping those things in a small package or library as well, so it’s easy for all app developers to implement it.

1 Like

A workaround for that would be to bookmark the exact urls with your browser (e.g. Solid Filemanager). While this reloads the app, it could be nice to use it for opening the app at a specific location. But I understand that the convenience of this is far from an inbuilt bookmarks feature.

Well yeah that also work, why didn’t I think of that - tested it now, works fine :slight_smile:

1 Like

Yeah, I’ve found an issue in the spec repository on github about implementing it server side (if I understood it correctly): Can we have some sort of "open with" predicate? · Issue #126 · solid/solid-spec · GitHub
But there is also another one which seems suitable for client side use: Implement App Registry first draft · Issue #109 · solid/solid · GitHub
(I’ve asked for clarification on latter, as the last update was in 2016).

1 Like

And I feel you, I’ve needed some time to understand that solid pods are basically a cloud storage which uses some open standards. And that RDF is actually rather similar to json (imo). They both say: “some-attribute has value xyz”. RDF just tries to give it common keys.

I’ve moved the project to typescript and had to make adjustments in every js and jsx file (so basically everything). It should behave the same over all, but as this required lots of changes (~100 modified files) I can’t assure everything works fine.

So I would really appreciate it if you can test out the new version: https://solid-filemanager.solid.community/public/nightly/ (make sure to make a full refresh if you previously used it to update)

Bugs/Inconsistencies I am aware of:

  • the choose location dialog (for copy and move) now uses a single click for entering a folder (instead of a double click)
1 Like

Hi,

I’ve tested the new version a bit, and as far as I can tell, it works just like before - ie. good job on the migration! :slight_smile:

1 Like

New dWeb Post: How to use Solid Filemanager on SAFE Network, by community member JayBird:

2 Likes

Hi Otto,
I forked the solid file manager, at first this was only to play with a Solid app and also learn React.
I had some problem with actions and Redux but this smart when you understand how it works!
I added a treeview, correctly working, but had to use some bad trick about authentication because I don’t understand how your modules are protected.
I saw the log in/out actions and how they are run from app.txt but what happens is your modules quietly wait for authentication as mine, e.g. the treeview, doesn’t and of course crashes.
Can you please send me some short explanations I can use to dig deepeer?
Thanks and congratulations for your work!

1 Like

Do you still have the problem? I’ve tried your version on github and it seemed to work (I had to change the okilele urls in the code first)

In general, I’d suggest to use solid-file-client instead of solid-auth-client for the login methods in Actions/Actions.ts if you need solid-file-client. I didn’t read all the changes you’ve made, but I think it should work.

In App.tsx you call the initApp method using mapDispatchToProps. And behind it the updateLoginStatus method in Action. This is Ok. But in the same time the render method of App.tsx launches
<TreeView />
<FileList />
My treeview crashes unless I encapsulate it in
await FileClient.popupLogin().then(… This works but hugly …
as your FileList waits for authentication, what I don’t undestand.