Updated Folders etc (markdown)

Eric
2026-09-03 16:44:49 +10:00
parent 7d7a680f88
commit be18634ea8
+39 -17
@@ -3,6 +3,7 @@ Notes on folders
This is a scratch-pad work-in-progress of notes. Once the content settles down into something coherent we may create the issue or PR. This is a scratch-pad work-in-progress of notes. Once the content settles down into something coherent we may create the issue or PR.
> Folders are an independent layer above the brew system. They are collections of references/bookmarks providing alternative views into the existing brew space; they do not move, copy, modify, or otherwise alter brews.
## Previously on Github.. ## Previously on Github..
@@ -42,7 +43,9 @@ A URI/link chould be `/user/:userId/:folder-slug`
Folders exist as entities in their own table/collection. Folders exist as entities in their own table/collection.
Each folder is owned by one owner, and it only appears in the context of _their_ userpage. Each folder is owned by one user, and it only appears in the context of _their_ userpage.
It may contain references to brews owned by any user.
If the folder `isPublished` then the folder itself per se is visible on the owner's userpage by other users.
Multiple brews can be assigned to a folder by listing the `brew.shareID` in the folder entity. (This is distinct and different from a model where the association is achieved via an attribute on the brew entity). Multiple brews can be assigned to a folder by listing the `brew.shareID` in the folder entity. (This is distinct and different from a model where the association is achieved via an attribute on the brew entity).
@@ -79,10 +82,10 @@ are private folders publicly viewable?
- tags - tags
- ~~view counts~~ (useless?) - ~~view counts~~ (useless?)
- description - description
- brewCount - brewCount - how many visible brews this folder contains (considering `brew.isPublished`)
- put someone else's brews into your folder (e.g. faves, bookmarks, public resources) - put someone else's brews into your folder (e.g. faves, bookmarks, public resources)
- folders can have subfolders of their own - folders can have subfolders of their own
- move brews from folderA to folderB - move brews from folderA to folderB (a UI wrapper for "add to B, remove from A")
- ability to hit a button to publish all brews inside - ability to hit a button to publish all brews inside
- select multiple brews to file into a folder - select multiple brews to file into a folder
- folder password - folder password
@@ -92,7 +95,7 @@ are private folders publicly viewable?
The brew metadata panel and folder picker UI should only show the folders belonging to that user, but also maintain back-end the other user's folder assignments. The associating link between brew and folder is not maintained within the brew itself, but in the folder entity. The brew metadata panel and folder picker UI should only show the folders belonging to that user, but also maintain back-end the other user's folder assignments. The associating link between brew and folder is not maintained within the brew itself, but in the folder entity.
We do want to facilitate sharing of folder views. That is, a user could share `/user/erics/friday-game` to his Friday Game participants; or share publicly `/user/erics/monsters` to the world.. We do want to facilitate sharing of folder views. That is, a user could share `/user/erics/friday-game` to his Friday Game participants; or share publicly `/user/erics/monsters` to the world.
### Data structure ### Data structure
@@ -117,34 +120,52 @@ Add these to the minimal data structure (above)
### Problem: multiple authors ### Problem: multiple authors
If we do go with the brew-in-many-folders idea, then reflecting "this brew is in these of your folders" could be informative. Searching by filter or tag on the userpage should reveal any matching brews, even if hidden inside a folder, so that also implies a need for determining enclosing folder starting from brew.
If we do go with the brew-in-many-folders idea, then reflecting "this brew is in these of your folders" could be informative. Searching by filter or tag on the userpage should also show locally top-level folders that contain matching brews at any depth. ("Now, where did I put that brew?!?")
## Roadmap (needs review)
## Roadmap (outdated, needs revision)
More detail: More detail:
- create/delete/rename folders on user page ### MVP
- create/delete folders on user page
- give folder a title, and a slug
- make folder navigable by URL e.g. /users/:author/:slug
- navigate into folder by clicking, revealing visible contents
- navigate out of folder, up one level
- add/move brew to a folder on userpage (via picker UI)
- brew can be in multiple folders
- designate folder for brew in metadata pane (via picker UI) - designate folder for brew in metadata pane (via picker UI)
- create/delete/rename folders via picker UI (prereq: picker UI) - create/delete/rename folders via picker UI (prereq: picker UI)
- designate folder for brew on userpage (via picker UI)
- nested folders ### Next Version after MVP
- tags on brews (prereq: dumb flat folders)
- descriptions on brews
- folder properties editor (title, slug, description, tags, published, etc)
- nested folders (prereq: folder.subfolderIds structure, not folder.parentID))
- update picker UI for nested folders (prereq: nested folders) - update picker UI for nested folders (prereq: nested folders)
- brews in multiple folders (prereq: dumb flat folders, designate brew folder)
- tags on brews (prereq: dumb flat folders [see below *]) ### Later Versions
- tags visible/filterable on userpages (prereq: tags on brews)
- (published brews page) - use folders for Favouriting brews, including other authors
- tags on published brews page (prereq: tags on brews) - use folders for Bookmarking brews, including other authors
### Far Horizon Version
- smart folders
- smart folders (???)
## UI scratchings ## UI scratchings
@@ -172,6 +193,7 @@ Things that will need to be visually designed, and also programatically implemen
- should include option for initiating create-a-folder process - should include option for initiating create-a-folder process
- should include options for Cancel (i.e. do nothing) but also "Remove from Folder" - should include options for Cancel (i.e. do nothing) but also "Remove from Folder"
### Folder Tiles ### Folder Tiles
How a folder might appear in the userpage: How a folder might appear in the userpage:
@@ -179,7 +201,7 @@ How a folder might appear in the userpage:
Notes: Notes:
- the folder slug is displayed, and is also a link to the folder - the folder slug is displayed, and is also a link to the folder
- a count of brews within that folder (not counting subfolders) - a count of visible brews within that folder (not counting subfolders)
- a count of immediate subfolders (not counting deeper) - a count of immediate subfolders (not counting deeper)
- no date created/updated metadata (likely won't be the dates that users expect, e.g. date of most recently edited brew) - no date created/updated metadata (likely won't be the dates that users expect, e.g. date of most recently edited brew)