To participate you must create an account on apostrophenow.com. If you have already done so, click Login.

Ticket #20 (accepted enhancement)

Opened 8 months ago

Last modified 38 hours ago

Refinements to Media Browser & Pagination

Reported by: rickybanister Owned by: dordille
Priority: major Milestone: 1.5
Component: apostrophePlugin: Media Version:
Keywords: 1.5rc Cc: johnnyoffline, boutell, agilbert
Symfony version:

Description

We need a few more features in the media browser to make it more scalable and user-friendly.

A display of the total number of media items would help.

The ability to specify how many items can be viewed per page. 20, 50, 100, All. Perhaps 'All' is hidden if it's a ridiculous number. Say, over 200.

Thirdly, a choice of your grid view.
* You can view a scrolling list of full 720px width images
* Our default two-up grid
* A smaller three- or four-up grid displaying only titles and no other meta information
* A grid of six square thumbnails 100px x 100px with no meta information.

new media browser interface and pagination

Attachments

media-browser.png (132.0 kB) - added by rickybanister 8 months ago.
new media browser interface and pagination

Change History

Changed 8 months ago by rickybanister

new media browser interface and pagination

Changed 8 months ago by dordille

There are a two approaches I can take to handle this, thought I would put them out there to get feedback from everyone.

I cam currently am thinking of making the main templates for the media browser overly configurable with the ability to create new views in the application config.

The other option would be to create new templates for each type of view. This would involve creating two new templates for each view.

Both of these methods will involve some restructuring of the css, specifically the media item classes need to be altered to allow more flexible view types.

Changed 8 months ago by dordille

  • status changed from new to accepted

Changed 7 months ago by agilbert

  • sensitive set to 0
  • milestone set to 1.1

Changed 7 months ago by johnnyoffline

Dan,

When this is in a good state where you want me to style it, assign this ticket to me with any relevant info, migrates, usage stuff whatever I need to make it go!

Thanks,

John

Changed 6 months ago by boutell

This is good stuff but heed Rick's advice to not offer "All" if there are more than a certain #

Changed 4 months ago by dordille

  • milestone changed from 1.4 to 1.5

Changed 2 days ago by geoffd

  • keywords 1.5rc added

Changed 40 hours ago by tboutell

If this hasn't been started yet it might be best to keep it simple and just teach the current template to pull different sizes, tiling rules and "show metadata/don't show metadata"flags from app.yml...

The current size preset name can be a user attribute rather than living in the URL, that will make it easier to get this done in the time available.

Important note: that if you change size we must either reset to page 1 or calculate a page # that will approximately show the same stuff given the # of items per page in the new page size. What we can't do is leave them stranded at page 100 when there is nothing on page 100 given the new size. We shouldn't strand them at page 100 when that shows completely different stuff, either.


Changed 39 hours ago by johnnybenson

Can't you peg the change in page # to the ID of the first media item returned for that page?

If you choose to display smaller thumbnails, just query the ID of that first item and send the user to the new page #

Changed 38 hours ago by tboutell

That's actually pretty hard/slow/tricky from a database query perspective. Glomming through everything looking for an item ID = exactly the sort of thing you are trying to avoid by having pagination (well, you're trying to make life easier for people, but you're also avoiding massive database trundlage)

However, you can multiply the old page # by the old # of items and divide by the new # of items to get to a reasonable page. I suggest doing that.

Note: See TracTickets for help on using tickets.