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

Files app favorites #2368

Closed
MTRichards opened this issue Mar 15, 2013 · 57 comments
Closed

Files app favorites #2368

MTRichards opened this issue Mar 15, 2013 · 57 comments

Comments

@MTRichards
Copy link
Contributor

As a user, I would like to be able to bookmark certain files to make them extremely easy to access quickly, so that I can open and display files quickly on my iPad and other devices without having to negotiate through all of my existing files on ownCloud.

Can we add a file bookmark?

@jancborchardt
Copy link
Member

With the probably upcoming sidebar in the next Files design #1936 it would indeed be good to have a »Favorites« category.

If we do that though we should make sure that from the outset these are synced to the mobile apps where we also use Favorites (which are saved for offline access. cc @rperezb @davivel @jgonzalezsolidgears

@DeepDiver1975
Copy link
Member

@MTRichards @jancborchardt OC7

@jancborchardt
Copy link
Member

@DeepDiver1975 yes, for sure. Thank you for going through the issues!

@jancborchardt jancborchardt modified the milestones: ownCloud 8, ownCloud 7 Jul 2, 2014
@jancborchardt
Copy link
Member

Setting to ownCloud 8. Now that we have the sidebar, this is much easier. :)

@jancborchardt
Copy link
Member

As a nice start, we could display an entry with the »Favorited on mobile« items in the sidebar.

@rperezb
Copy link

rperezb commented Jul 7, 2014

Ey @jancborchardt , »Favorited on mobile« can´t be shown on the web interface, at least for the moment, because they are stored internally on the device, furthermore, they deppend on each device.

@jancborchardt
Copy link
Member

@rperezb ok – so just as a note, if we want to do this »favorites« function, it would probably be good to sync them properly. :)

@PVince81
Copy link
Contributor

Let's use this ticket for designing and implementing the favorites feature.

CC @owncloud/designers

@PVince81 PVince81 modified the milestones: 2014-sprint-08-current, ownCloud 8 Nov 17, 2014
@PVince81
Copy link
Contributor

@PVince81
Copy link
Contributor

Note: the __FAVORITE__ tag is strictly private (for now) and will not be shared/shareable with other users.
But, should other users see whenever someone has favorited a shared file ?
Should "user2" be able to get a list of every public resource that "user1" has favorited ? (might need extra UI)

@ockham
Copy link
Contributor

ockham commented Nov 17, 2014

@PVince81 There already is code in lib/private/tags related to favorites:

You can mark and unmark an object as a favorite (which is internally using the tag name _$!<Favorite>!$_) using addToFavorites() and removeFromFavorites(). To list all favorites of a given object type, there's getFavorites().

@PVince81
Copy link
Contributor

I haven't looked into the code yet, but great to know that it exists already. Thanks for the info 😄

@ockham
Copy link
Contributor

ockham commented Nov 17, 2014

Yeah, please do check it out!

BTW, in my contacts groups (i.e. tags) sharing PR owncloud/contacts#668 , I'm not having other people's favorites shown to sharees, as I think starring a contact as a favorite is really something only meant to be useful to the owner.

@PVince81 PVince81 self-assigned this Nov 17, 2014
@karlitschek
Copy link
Contributor

@PVince81 yes. Favorites are completely private. Comments and attributes are not.

@PVince81
Copy link
Contributor

Should this be integrated into the files app or a separate app ?
Easiest is integrated as it will remove the need for having hooks in many places.
Having this "favorites" feature permanently there shouldn't hurt as it is non-intrusive.

@PVince81
Copy link
Contributor

Let me reformulate: I will put this directly into the "files" app unless someone has arguments against this.

@PVince81
Copy link
Contributor

Here is what I intend to do:

  • add a new entry in the sidebar called "Favorites"
  • add a new file list view that appears when clicking "Favorites". It will display a flat list of favorited files, similar to the shares list. Clicking on a file/folder will jump to "All files"
  • add a star icon to the left of the thumbnail (new column without header). The star will be yellow/activated when a file is starred, and grey when not starred (see existing star files in img). Clicking the star will show a spinner until the information is saved. The star will be visible in "All files", "Shared" and others (if possible)
  • add OCS API endpoint to get favorite files with an optional "path" param (Provide API endpoints for favorites/metadata/tags on files #12337)
  • make favorites list use the OCS API endpoint for favorites (no private ajax API) (Provide API endpoints for favorites/metadata/tags on files #12337)
  • make the regular file list "All files" call OCS API with the current folder as param to be able to show the stars
  • make sure there is an OCP call to get favorites from files (might exist already), use it from the OCS API endpoint

@owncloud/designers I'll leave it up to you to propose changes and provide with a proper star icon (if we don't have one already)

@ockham
Copy link
Contributor

ockham commented Nov 18, 2014

@PVince81 You are going to use the existing favorite mechanism I'm mentioning a bit further above, right?

@PVince81
Copy link
Contributor

Yes, I don't want to reinvent the wheel and will use whatever I find.
Is there a good example I could look at to find how to instantiate the "Tags" class and "TagMapper" ?
I'll probably have to look at the contacts code.

@ockham
Copy link
Contributor

ockham commented Nov 18, 2014

Yeah, that's pretty much the only app I'm aware of that's using it.

@PVince81
Copy link
Contributor

@ockham also if you're interested in working on this or part of this, feel free to join. I'll submit a WIP pull request at some point with some groundwork. Or at least I'll mention you in the PR for reviewing 😄

@ockham
Copy link
Contributor

ockham commented Nov 18, 2014

Cool. I'll be a bit busy in the next couple of weeks, so I can't promise anything, but I'll try to look into the PRs.

@PVince81
Copy link
Contributor

PVince81 commented Dec 3, 2014

So this means all the API will need to be available directly in core, which is fine.
From a UX point of view this is fine, the little star icon doesn't take much space and can easily be ignored.

My only concern is about performance: when reading the "favorites" information every time the file list is retrieved (either through WebDAV or web UI) there will be an additional performance hit. Putting "favorites" as a feature that cannot be disabled in core means that the potential performance hit will always be there (and I've yet to find a solution to avoid it)

@PVince81
Copy link
Contributor

PVince81 commented Dec 3, 2014

Until we find a good solution to avoid the potential performance issue I'll keep the code inside the "metadata" app. I can always move it back to core later if needed.

@jancborchardt
Copy link
Member

Putting "favorites" as a feature that cannot be disabled in core means that the potential performance hit will always be there

Ok, but in the case of the »Favorites« feature it’s pretty obvious that we’ll have to find a solution to the performance problem rather than burying the functionality, right? It’s a pretty core thing of any file manager / sync app nowadays.

@PVince81
Copy link
Contributor

PVince81 commented Dec 4, 2014

It doesn't need to be buried, we could also have that app enabled by default., with the option to disable it if people don't use it or have performance issues.

My concern is that we might not have time to solve this until OC 8, so we could keep favorites in this app for testing, and if it does work properly and isn't that big a deal on performance, then we can move it to core.

Anyway, I'll have a chat with @icewind1991 about the performance stuff next week, so we'll see.

@jancborchardt
Copy link
Member

Ok, cool.

@PVince81
Copy link
Contributor

PVince81 commented Dec 8, 2014

After discussing with @icewind1991 we decided to move the "tags injection" into the presentation layer. This is the part that might affect performance, we move it into "ajax/list.php" and later also in WebDAV.

This means that I can move that favorites code into core.
The "metadata" app will be empty until we start implementing tags.

@PVince81
Copy link
Contributor

This PR adds the "favorites" feature to core: #12360
Try it out!

There are still a few rough edges and additional tasks (make the API based on OCS, not REST and adding the "favorites" flag to the WebDAV response, hoping it won't slow down syncing)

@PVince81
Copy link
Contributor

TODOs:

@jancborchardt
Copy link
Member

This was added to master through the »Favorites« feature #12360 and will be released with ownCloud 8.

@PVince81
Copy link
Contributor

@jancborchardt this isn't finished, see TODO list above

@PVince81 PVince81 reopened this Dec 17, 2014
@Bugsbane
Copy link

Bugsbane commented Jan 4, 2015

What would be a thing of pure beauty, would be being able to share any given tag, in the exact same way we currently can share files.

I would love to be able to organize my photos according to my own system, and then have all the ones tagged "family" to automatically be shared with everyone in my family group, or to tag files with "client-updates" and automatically have them be shared with my client group.

Yes, I can manually share files with these groups now, but only files, and even then, it's still an extra step, for every single file, to have to tag it, and then also manually share it. I'm sure that having hundreds of individual files being manually shared must clutter the database more than just having the relevant files have a tag, and a single share entry to say that tag x is shared with y.

@DeepDiver1975
Copy link
Member

@PVince81 missing todos are topic for OC8.1 from my understanding - right?

@PVince81
Copy link
Contributor

PVince81 commented Jan 7, 2015

When I asked @karlitschek he said it's ok to implement the "tags cleanup" part as part of 8.0, as far as I understood.
However I think the changes might be bigger, but I'll give it a shot within the next weeks and we'll see from the PRs.

@PVince81
Copy link
Contributor

PVince81 commented Jan 7, 2015

@Bugsbane interesting idea. Can you make a separate enhancement ticket for this ?

@karlitschek
Copy link
Contributor

Yes. This can be seen as a bugfix. I don´t hope a lot of code is needed for that.

@Bugsbane
Copy link

Bugsbane commented Jan 8, 2015

@PVince81 Sure thing.

@PVince81 PVince81 changed the title Files app bookmarks Files app favorites Jan 8, 2015
@SergioBertolinSG
Copy link
Contributor

Related bugs of favorite feature:

Indirectly related:

@nickvergessen
Copy link
Contributor

@PVince81 this can be closed since all other sub tasks have their own tickets right?

@MorrisJobke
Copy link
Contributor

@nickvergessen Let's keep it open untill we have a label for the tags feature to not lose the list of tag related issues. Something like `feature:tags" came in my mind ;)

@PVince81 PVince81 modified the milestones: 8.1-next, 8.0-current Jan 20, 2015
@nickvergessen
Copy link
Contributor

The label has been created and added to all the ticket closing

@lock lock bot locked as resolved and limited conversation to collaborators Aug 13, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests