[wp-trac] [WordPress Trac] #21390: Upload/Insert media revamp
WordPress Trac
noreply at wordpress.org
Sun Nov 4 22:59:13 UTC 2012
#21390: Upload/Insert media revamp
----------------------------+--------------------------
Reporter: nacin | Owner: koopersmith
Type: task (blessed) | Status: accepted
Priority: high | Milestone: 3.5
Component: Media | Version: trunk
Severity: normal | Resolution:
Keywords: |
----------------------------+--------------------------
Comment (by koopersmith):
In [changeset:"22362"]:
{{{
#!CommitTicketReference repository="" revision="22362"
Streamlining media, part I.
The main goal here is to rearrange the media components in a modularized
structure to support more linear workflows. This is that structure using
the pre-existing workflows, which will be improved over the course of the
next few commits.
This leaves a few pieces a bit rough around the edges: namely gallery
editing and selecting a featured image.
The fine print follows.
----
'''Styles'''
* Tightened padding around the modal to optimize for a smaller default
screen size.
* Added a light dashed line surrounding the modal to provide a subtle cue
for the persistent dropzone (which is evolving into a power user feature
since we now have a dedicated `upload` state).
* Add a size for `hero` buttons.
* Remove transitions from frame subviews (e.g. menu, content, sidebar,
toolbar).
----
'''Code'''
`wp.media.controller.StateManager`
* Don't fire `activate` and `deactivate` if attempting to switch to the
current state.
`wp.media.controller.State`
* Add a base state class to bind default methods (as not all states will
inherit from the `Library` state).
* On `activate`, fire `activate()`, `menu()`, `content()`, `sidebar()`,
and `toolbar()`.
* The menu view is often a shared object (as its most common use case is
switching between states). Assign the view to the state's `menu`
attribute.
* `menu()` automatically fetches the state's `menu` attribute, attaches
the menu view to the frame, and attempts to select a menu item that
matches the state's `id`.
`wp.media.controller.Library`
* Now inherits from `wp.media.controller.State`.
`wp.media.controller.Upload`
* A new state to improve the upload experience.
* Displays a large dropzone when empty (a `UploaderInline` view).
* When attachments are uploaded, displays management interface (a
`library` state restricted to attachments uploaded during the current
session).
`wp.media.view.Frame`
* In `menu()`, `content()`, `sidebar()`, and `toolbar()`, only change the
view if it differs from the current view. Also, ensure `hide-*` classes
are properly removed.
*
`wp.media.view.PriorityList`
* A new container view used to sort and render child views by the
`priority` property.
* Used by `wp.media.view.Sidebar` and `wp.media.view.Menu`.
* Next step: Use two instances to power `wp.media.view.Toolbar`.
`wp.media.view.Menu` and `wp.media.view.MenuItem`
* A new `PriorityList` view that renders a list of views used to switch
between states.
* `MenuItem` instances have `id` attributes that are tied directly to
states.
* Separators can be added as plain `Backbone.View` instances with the
`separator` class.
* Supports any type of `Backbone.View`.
`media.view.Menu.Landing`
* The landing menu for the 'insert media' workflow.
* Includes an inactive link to an "Embed from URL" state.
* Next steps: only use in select cases to allot for other workflows (such
as featured images).
`wp.media.view.AttachmentsBrowser`
* A container to render an `Attachments` view with accompanying UI
controls (similar to what the `Attachments` view was when it contained the
`$list` property).
* Currently only renders a `Search` view as a control.
* Next steps: Add optional view counts (e.g. "21 images"), upload buttons,
and collection filter UI.
`wp.media.view.Attachments`
* If the `Attachments` scroll buffer is not filled with `Attachment`
views, continue loading more attachments.
* Use `this.model` instead of `this.controller.state()` to allow
`Attachments` views to have differing `edge` and `gutter` properties.
* Add `edge()`, a method used to calculate the optimal dimensions for an
attachment based on the current width of the `Attachments` container
element.
* `edge()` is currently only enabled on resize, as the relative
positioning and CSS transforms used to center thumbnails are suboptimal
when coupled with frequent resizing.
* Next steps: For infinite scroll performance improvements, look into
absolutely positioning attachment views and paging groups of attachment
views.
`wp.media.view.UploaderWindow`
* Now generates a `$browser` element as the browse button (instead of a
full `UploaderInline` view). Using a portable browse button prevents us
from having to create a new `wp.Uploader` instance every time we want
access to a browse button.
`wp.media.view.UploaderInline`
* No longer directly linked to the `UploaderWindow` view or its
`wp.Uploader` instance.
* Used as the default `upload` state view.
`wp.media.view.Selection`
* An interactive representation of the selected `Attachments`.
* Based on the improved workflows, this is likely overkill. For
simplicity's sake, will probably remove this in favor of
`SelectionPreview`.
----
see #21390.
}}}
--
Ticket URL: <http://core.trac.wordpress.org/ticket/21390#comment:40>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list