Commit Graph

323 Commits

Author SHA1 Message Date
Daryl Koopersmith
737ed62a1c 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@22362 602fd350-edb4-49c9-b593-d223f7449a82
2012-11-04 22:59:12 +00:00
bumpbot
7bd3be3ca2 Compress scripts/styles: 3.5-beta2-22352.
git-svn-id: https://develop.svn.wordpress.org/trunk@22352 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-31 22:58:32 +00:00
Daryl Koopersmith
80cd7ad468 Fix positioning of attachment thumbnail overlays.
Prevents the overlay from blocking buttons inside the attachment preview, such as the remove button in the gallery editor.

see #21390.


git-svn-id: https://develop.svn.wordpress.org/trunk@22343 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-31 20:34:50 +00:00
Daryl Koopersmith
c67117e150 Media CSS: Remove inner shadow when attachment is selected. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22336 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-30 23:16:28 +00:00
Daryl Koopersmith
ee6bda8ddd Media JS: Improve handling of single attachments in selections.
* Adds `wp.media.model.Selection.single()` to specify a single item used in a multi-item selection.
* Fixes a bug where the `details` class would not be removed when "Clear Selection" was clicked.

see #21390.


git-svn-id: https://develop.svn.wordpress.org/trunk@22335 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-30 23:15:16 +00:00
bumpbot
936f82bb1f Compress scripts/styles: 3.5-beta2-22334.
git-svn-id: https://develop.svn.wordpress.org/trunk@22334 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-30 22:58:31 +00:00
Daryl Koopersmith
59c70a3061 Improve selection UI/behavior in the media modal.
* Moves handling which models are in the selection into the `Library` state.
* Adds highlight for the last-selected view in a multi-view state.
* A view must be the last-selected view before it can be deselected.

see #21390.


git-svn-id: https://develop.svn.wordpress.org/trunk@22332 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-30 21:09:45 +00:00
bumpbot
db035ece96 Compress scripts/styles: 3.5-beta2-22326.
git-svn-id: https://develop.svn.wordpress.org/trunk@22326 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-29 22:58:31 +00:00
Daryl Koopersmith
82270d36ef Improve attachment detailed preview styling. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22325 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-29 18:16:12 +00:00
Daryl Koopersmith
3ca8808c3b Add dynamic attachment view sizing. Removes the attachment view zooming in the process. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22324 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-29 18:05:03 +00:00
Daryl Koopersmith
bc29728df2 Add attachment details to the media sidebar.
* Also moves most of the `Frame` view's `createSelection` method to a real `Selection` model (which inherits from the `Attachments` model).
* Properly assigns the library within the `Gallery` state, allowing for the `Gallery` state to inherit from the `Library` state.

see #21390.


git-svn-id: https://develop.svn.wordpress.org/trunk@22323 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-29 15:13:02 +00:00
Daryl Koopersmith
6e387bb2db Add inline uploader UI to media modal sidebar. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22322 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-29 07:38:13 +00:00
Daryl Koopersmith
8fe5b79380 Add a sidebar to the media modal.
* Adds `wp.media.view.Sidebar`, to aid in rendering the sidebar.
* Removes the `directions` from the `Attachments` view and shifts search into a separate view (`wp.mce.view.Search`) that can be relocated at will. This also serves to simplify the `Attachments` view by removing the nested `list` and `$list` parameters.
* Show the toolbar on the featured image workflow, effectively requiring confirmation before closing the dialog.

see #21390, #21776, #21808.


git-svn-id: https://develop.svn.wordpress.org/trunk@22321 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-29 06:56:23 +00:00
Daryl Koopersmith
15c451d2f6 Give media a heart transplant.
Revises the concept of the media controller and workspace views (i.e. two central points of control) to be more granular. The main media object is now the `Frame`, which is a hybrid view and state machine.

The state machine is a collection of states, which are just generic instances of `Backbone.Model`. This circumvents the problem of juggling global parameters when changing states. Each state contains its own event loop. All events are also forwarded to the frame itself (as is the case in all model/collection relationships).

The frame view contains several regions, each of which can be overridden without harming or re-rendering the other regions. These work well when used in conjunction with the state machine events.

This removes the upload sidebar (don't worry, visible upload UI will return). Drag and drop uploading still works. The ability to upload has been abstracted into its own view (instead of being attached to the central workspace view).

Editing galleries is temporarily broken — the gallery creation and editing experiences will be unified in a future patch.

Adds events to detect dragging changes in `wp.Uploader` and adds methods to detect and leverage browser support for CSS3 transitions.

see #21390, #21809.


git-svn-id: https://develop.svn.wordpress.org/trunk@22320 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-28 23:29:17 +00:00
bumpbot
9252a8fcb9 Compress scripts/styles: 3.5-beta2-22315.
git-svn-id: https://develop.svn.wordpress.org/trunk@22315 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-26 22:58:34 +00:00
Andrew Ozz
c71700c7b4 Buttons:
- Update the install/initial configuration/repair screens buttons, props DrewAPicture
- Fix the welcome screen buttons and fine-tune the buttons css, props lessbloat

fixes #21598


git-svn-id: https://develop.svn.wordpress.org/trunk@22314 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-26 19:40:39 +00:00
bumpbot
a5d0972890 Compress scripts/styles: 3.5-beta2-22292.
git-svn-id: https://develop.svn.wordpress.org/trunk@22292 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-24 22:58:36 +00:00
Andrew Ozz
8564fb5851 Fix the buttons in IE, make them better in IE7, remove the default padding in Firefox, make all .button <a> and <input> look the same, fixes #21598
git-svn-id: https://develop.svn.wordpress.org/trunk@22289 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-24 01:33:59 +00:00
Andrew Ozz
108c09fdd3 Buttons: slightly bolder :focus styles, make the "Log In" button '.button-large', props lessbloat, see #21598
git-svn-id: https://develop.svn.wordpress.org/trunk@22288 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-24 01:27:56 +00:00
bumpbot
0a05a064cf Compress scripts/styles: 3.5-beta2-22287.
git-svn-id: https://develop.svn.wordpress.org/trunk@22287 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-23 22:58:40 +00:00
Andrew Nacin
8bccce8189 Reset box-sizing to toolbar CSS to avoid conflicts with themes. props betzster, fixes #21863.
git-svn-id: https://develop.svn.wordpress.org/trunk@22280 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-23 14:30:03 +00:00
bumpbot
d69a863ac2 Compress scripts/styles: 3.5-beta2-22269.
git-svn-id: https://develop.svn.wordpress.org/trunk@22269 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-22 22:58:34 +00:00
Andrew Ozz
1380819bfe Improve visible focus in the admin, props lessbloat, fixes #21324
git-svn-id: https://develop.svn.wordpress.org/trunk@22268 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-22 19:51:51 +00:00
bumpbot
7f2fa09f5c Compress scripts/styles: 3.5-beta2-22252. TinyMCE updated.
git-svn-id: https://develop.svn.wordpress.org/trunk@22252 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-16 22:58:39 +00:00
Andrew Ozz
7c30ff0dcb Accessibility shortcuts: new looks and fix for the WebKit focus bug, props lessbloat, fixes #21471
git-svn-id: https://develop.svn.wordpress.org/trunk@22249 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-16 21:26:59 +00:00
Daryl Koopersmith
9e8cd23bdb Add attachment display settings to the media modal.
* Add a media view for button groups.
* Add button dropdown containers.
* Add a dropdown property to the button media model.

fixes #22206, #21814, see #21390, #21813, #21598.


git-svn-id: https://develop.svn.wordpress.org/trunk@22247 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-16 19:25:17 +00:00
Daryl Koopersmith
b8b5c89522 Add a down arrow button. see #21598, #21390, #21813.
git-svn-id: https://develop.svn.wordpress.org/trunk@22245 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-16 15:42:34 +00:00
Daryl Koopersmith
55b4a66c55 Add button groups. see #21598, #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22242 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-16 13:34:01 +00:00
bumpbot
06399b2d14 Compress scripts/styles: 3.5-beta2-22241.
git-svn-id: https://develop.svn.wordpress.org/trunk@22241 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-15 22:58:34 +00:00
Daryl Koopersmith
201729df85 Revise and combine button selectors.
* Simplifies button selectors. Maintains backwards compatibility for several classes and makes creating new button styles considerably easier.
* Adds buttons documentation.
* Raw input submit/reset/button types now use default browser styles (instead of half-styled borders that did not look like buttons).
* Moves basic button color standardization to the beginning of wp-admin.

see #21598, #22197.



git-svn-id: https://develop.svn.wordpress.org/trunk@22239 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-15 21:25:25 +00:00
Daryl Koopersmith
2ec630204a Consolidate buttons CSS into a single file.
Adds `wp-includes/css/buttons.css` to consolidate buttons files and make them available in a modular fashion. Buttons are included automatically with the `colors` styles, and can be included independently by running:

	`wp_enqueue_style('buttons');`

fixes #22197, see #21598.


git-svn-id: https://develop.svn.wordpress.org/trunk@22236 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-15 14:55:29 +00:00
bumpbot
936cf22c7a Compress scripts/styles: 3.5-beta1-22204.
git-svn-id: https://develop.svn.wordpress.org/trunk@22204 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-11 22:58:47 +00:00
Daryl Koopersmith
a5fc058f89 Media Modal: Improve attachment remove button styles. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22184 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-11 04:11:47 +00:00
Daryl Koopersmith
7dbf364156 Media Modal: Remove the outline from the modal's close button. props lessbloat, see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22180 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-11 02:54:19 +00:00
Daryl Koopersmith
ce6ac7d7aa Media Modal: Increase delay of attachment zoom. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22179 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-11 01:28:41 +00:00
Daryl Koopersmith
2f6ad44bfd Media Modal: Reduce height on the attachment captions from three lines to two. see #21390, #21807.
git-svn-id: https://develop.svn.wordpress.org/trunk@22178 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-11 00:55:38 +00:00
Daryl Koopersmith
c32509dcf3 Media Modal: Remove unused CSS. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22177 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-11 00:37:23 +00:00
Daryl Koopersmith
b0d215a771 Media Modal: Show progress bars for uploading images, and adjust progress bar styles to compensate for the darker attachment background. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22176 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-11 00:36:42 +00:00
Daryl Koopersmith
d27568e703 Caption editing in the media modal library.
* Adds a `describe` option to the workflow controller to support inline caption editing.
* For images, descriptions are mapped to the `caption` attribute.
* For other media items, descriptions are mapped to the `title` attribute.
* Descriptions are saved when the textarea's `change` event fires (i.e. when the textarea is blurred).

fixes #21807, see #21390.


git-svn-id: https://develop.svn.wordpress.org/trunk@22173 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-10 23:32:48 +00:00
bumpbot
2a0622aaba Compress scripts/styles: 3.5-beta1-22172.
git-svn-id: https://develop.svn.wordpress.org/trunk@22172 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-10 22:58:38 +00:00
Daryl Koopersmith
14de8ad04a Show filenames for non-image attachments in the new media modal.
Also passes all attachment model attributes to the attachment view template by default (instead of selecting specific values).

see #21390, #21836.


git-svn-id: https://develop.svn.wordpress.org/trunk@22159 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-10 09:55:47 +00:00
Daryl Koopersmith
d4f1bc45ac Media JS: Improve markup and CSS of the modal view's title.
Also improves the accuracy of closing the modal when the backdrop is clicked (which became error-prone around the title bar in [22144]).

see #21390.


git-svn-id: https://develop.svn.wordpress.org/trunk@22158 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-10 09:40:22 +00:00
bumpbot
eeddc579d5 Compress scripts/styles: 3.5-beta1-22150.
git-svn-id: https://develop.svn.wordpress.org/trunk@22150 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-09 22:58:33 +00:00
Daryl Koopersmith
58fb98ff26 Media modal search box style updates. props helenyhou, see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22145 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-09 03:14:18 +00:00
Daryl Koopersmith
561c3b7837 Improve media modal title bar styling. props helenyhou, see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22144 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-09 02:56:39 +00:00
Daryl Koopersmith
adbb1b623a Increase the delay on the attachment zooming in the media modal. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22142 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-09 01:57:34 +00:00
Daryl Koopersmith
fe1645a0a9 Change the cursor to a pointer when hovering above an attachment in the media modal. see #21390.
git-svn-id: https://develop.svn.wordpress.org/trunk@22141 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-09 01:17:35 +00:00
Daryl Koopersmith
91a3c62b3f Better thumbnail previews in the image editor.
* Images are auto-cropped, then fit to the preview on hover (with a slight delay). This is an experiment; we'll see how it turns out.
* Various style changes.

see #21390.


git-svn-id: https://develop.svn.wordpress.org/trunk@22137 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-08 23:20:04 +00:00
bumpbot
2aab5aa3b0 Compress scripts/styles: 3.5-beta1-22128.
git-svn-id: https://develop.svn.wordpress.org/trunk@22128 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-07 02:27:48 +00:00
Daryl Koopersmith
96cb206e15 On the gallery creation screen, only display the remove icon on hover.
git-svn-id: https://develop.svn.wordpress.org/trunk@22125 602fd350-edb4-49c9-b593-d223f7449a82
2012-10-05 22:14:00 +00:00