Commit Graph

65 Commits

Author SHA1 Message Date
Andrew Nacin
877ffc087f Cleanups for audio/video metadata, see [27862].
see #27574.


git-svn-id: https://develop.svn.wordpress.org/trunk@27864 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-30 21:07:04 +00:00
Scott Taylor
149f36ed35 Metadata for audio and video files:
* Make attachment metadata for audio files editable by providing a metabox on the Edit Media page
* Standardize on using the attachment title everywhere
* Label the Caption and Description fields for audio and video appropriately
* Make the playlist Underscore templates more straightforward

See #27574.



git-svn-id: https://develop.svn.wordpress.org/trunk@27862 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-30 19:27:31 +00:00
Scott Taylor
e94f08380e Return the default mime icon for playlist items that don't have a featured image in wp_prepare_attachment_for_js().
See [27640].



git-svn-id: https://develop.svn.wordpress.org/trunk@27813 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-28 12:49:48 +00:00
Andrew Nacin
65007189cf Galleries: Avoid doubling up clearing br elements.
props drozdz.
fixes #25537.


git-svn-id: https://develop.svn.wordpress.org/trunk@27800 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-28 02:40:47 +00:00
Scott Taylor
8312fca652 Make sure Playlist states that are audio are marked as such with proper localized strings.
See #27554.


git-svn-id: https://develop.svn.wordpress.org/trunk@27789 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-27 18:36:03 +00:00
Scott Taylor
85de422f33 Move counting of attachments for audio/video to the backend, instead of using a reduce function in JS.
See #27554.



git-svn-id: https://develop.svn.wordpress.org/trunk@27788 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-27 18:15:09 +00:00
Scott Taylor
9384ee1bf3 There is no more video-playlist shortcode. To use video, it is now [playlist type="video" ....]. Also deleting core playlist styles. The style attribute is still supported, defaulting to light. Our core style support was 4-5 CSS rules.
See #27552. Leaving open for comments and potential bugs.



git-svn-id: https://develop.svn.wordpress.org/trunk@27785 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-27 17:57:30 +00:00
Scott Taylor
4a58d1a91b Pass the default mime-type icon as the image for a track when a featured image is not selected for an item in a playlist. Image display in general can be toggled on/off in the modal via Playlist Settings.
Fixes #27525.



git-svn-id: https://develop.svn.wordpress.org/trunk@27735 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-26 12:44:42 +00:00
Scott Taylor
323f9c0eb9 Don't make mce-view a dependency for media-audiovideo. Make media-audiovideo and wp-playlist dependencies for mce-view and only enqueue mce-view in the admin in wp_enqueue_media(). MCE views don't need to be included when media is loaded on the front end.
Fixes #27509.



git-svn-id: https://develop.svn.wordpress.org/trunk@27733 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-26 12:10:21 +00:00
Helen Hou-Sandi
ccc5f363c0 Use Dashicon-style images for mime type icons. Actually moving to Dashicons via the font can be explored later, but has theme/plugin implications and requires too many changes to make it for 3.9. props melchoyce for the icons. fixes #26650.
git-svn-id: https://develop.svn.wordpress.org/trunk@27726 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-25 21:09:34 +00:00
Andrew Nacin
71917873d4 Introduce HTML5 caption support.
When a theme supports HTML5 captions via add_theme_support( 'html5', 'caption' ), figure and figcaption will be used instead of div and p.

There's a bonus. But first, some history: Captions were introduced with an inline style set for the container. This remains, as it is there to force captions to wrap. But this inline style included an extra 10 pixels, which have vexxed theme developers for years. While these pixels were designed to ensure padding around floated images, modern themes handle this with grace. The additional pixels thus feel encumbering.

As the new HTML5 gallery support avoids outputting default gallery styles (again, irking theme developers for years; see #26697), the new HTML5 caption support will also ditch these 10 pixels of unwanted hand-holding. 

The 10 pixels are also removed entirely in the visual editor (and more styles may also disappear here; see #26642), giving themes the power necessary to match the frontend styles.

The filter img_caption_shortcode_width added in 3.7 to work around this madness (see #14380) is skipped entirely when the theme supports HTML5 captions.

props obenland, azaozz.
see #26642. also fixes #9066.


git-svn-id: https://develop.svn.wordpress.org/trunk@27668 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 02:04:56 +00:00
Andrew Ozz
263d9c7f33 Plupload: switch to urlstream upload method when the 'flash' runtime is used in non IE browsers. This ensures cookies are sent but limits the maximum file size that flash can handle.
By default only IE9 and older use flash so this change is mostly for completeness. It would affect only the (extremely rare) cases where a plugin disables the html5 runtime.

git-svn-id: https://develop.svn.wordpress.org/trunk@27662 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-23 23:44:20 +00:00
Scott Taylor
0697544056 Turn on thumbnail support for attachment:audio and attachment:video. Change conditionals to check for theme OR post type support when determining whether to turn on the Featured Image UI pieces in the admin.
Fixes #27460.



git-svn-id: https://develop.svn.wordpress.org/trunk@27657 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-23 02:34:39 +00:00
Scott Taylor
42e7ed7c78 General code cleanup and improving video sizing in the admin:
* Abstract the setting of a primary button and its callback in `wp.media.view.MediaFrame.MediaDetails`
* Account for the existence or non-existence of `$content_width` in the TinyMCE views for video
* Make sure video models always have dimensions, even if they are the defaults
* For browsers that are not Firefox, don't use a timeout when setting the `MediaElementPlayer` instance in TinyMCE views

See #27320.



git-svn-id: https://develop.svn.wordpress.org/trunk@27655 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-22 23:25:08 +00:00
Scott Taylor
5c0f7ae4fb Unifying media controls and supporting playlists in the editor:
* Support a `caption` attribute for audio and video shortcodes
* In `wp.media.audio|video`, rename `update` to `shortcode` to allow these models to share the same mixins as `wp.media.collection` subclasses
* When sending an audio or video shortcode to the editor, create a default caption if the user hasn't entered one. This currently only displays in the editor, not on the front end. Captions aren't tied to a specific attachment here because external sources are supported.
* In the `wp.mce.media` mixin, in the `edit` method, read `attr` instead of `data` when attempting to parse the encoded shortcode. `data` does not automatically update when the attribute changes. This was a blessing to debug.
* Add `wp.mce.media.PlaylistView` to support playlist views in TinyMCE
* Expose `WPPlaylistView` to global scope and suppress auto-parsing of playlist nodes when in the admin. Allow `WPPlaylistView` to be passed `metadata` on creation instead of requiring a JSON blob to be parsed.
* Remove all of the playlist logic from the `wpgallery` TinyMCE plugin.
* In `wp_prepare_attachment_for_js()` return more data for audio/video so that playlists can have parity in the admin/front end.

See #27320.



git-svn-id: https://develop.svn.wordpress.org/trunk@27640 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-20 13:33:00 +00:00
Andrew Nacin
0b74a67262 Only enqueue the image editor in the media modal in the admin.
props gcorne.
see #21811.


git-svn-id: https://develop.svn.wordpress.org/trunk@27625 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 21:15:50 +00:00
Andrew Nacin
8c3ac32372 More translation cleanups.
Affects widgets (see #27112), custom headers (see #21785), theme installer (see #27055, reverts [27614]), and some media stuff. Untranslates some complicated strings that need additional study.

see #27453.


git-svn-id: https://develop.svn.wordpress.org/trunk@27620 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 08:17:08 +00:00
Scott Taylor
54c541cfc6 Create a new file, media-audiovideo.js, to house all of the audio and video JS code in core.
UX Changes:
* Don't add a menu item for "Add Audio|Video Source"
* In the Audio|Video Details modal, add buttons and some suggestive text for adding alternate playback sources
* Don't show "Create Audio|Video Playlist" menu items until the user has uploaded audio or video files

See #27437.



git-svn-id: https://develop.svn.wordpress.org/trunk@27608 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 05:30:27 +00:00
Scott Taylor
d018152785 Account for preload="metadata" in audio and video shortcodes when multiple versions of the same <source> appear on the page by appending a query arg to "cache-bust" passed sources. The query arg is used to make the sources "unique." They will still be cached by the browser and won't bust the cache on every request.
Fixes #26779.



git-svn-id: https://develop.svn.wordpress.org/trunk@27519 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-13 03:41:53 +00:00
Scott Taylor
61bc04deff Change string "Create Playlist" to "Create Audio Playlist." Open new tickets for individual issues.
Fixes #26631. 



git-svn-id: https://develop.svn.wordpress.org/trunk@27512 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-12 04:39:28 +00:00
Andrew Nacin
6f2544944f Add header image uploads with cropping to the customizer.
props mcsf, ehg, gcorne.
see #21785.


git-svn-id: https://develop.svn.wordpress.org/trunk@27497 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-11 04:12:17 +00:00
Scott Taylor
c2cd0d6215 Add a filter and document it: playlist_styles. Allows users to roll their own playlist themes.
Props DrewAPicture for the docs.
See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27488 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-09 23:36:57 +00:00
Scott Taylor
c87fc83bf8 Playlists:
* Add an action, `wp_playlist_scripts`, where a user can turn off all default script and style loading for playlists and roll their own.
* Move the script and style loading for playlists to a function, `wp_playlist_scripts( $type )`, that hooks into `wp_playlist_scripts`.
* Make the `<noscript>` playlist output an `<ol>`, instead of a list of links with no surrounding markup.

See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27486 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-09 22:44:22 +00:00
Scott Taylor
d39e5ecafd Video editing in the media modal:
* Add a state: `Add Subititles`
* Add `text/vtt` to the list of allowed mime-types, files end in `.vtt`. `.srt` files are served as `text/plain`.
* The content body of a video shortcode should be used for adding `<track>` elements only. This happens dynamically in the modal. If added by hand, they can still be parsed and managed.

See #27016.



git-svn-id: https://develop.svn.wordpress.org/trunk@27481 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-09 10:31:36 +00:00
Scott Taylor
3c8d2a99f2 Audio/Video shortcodes in the media modal:
* Make a generic model, `wp.media.model.PostMedia`, which replaces `wp.media.model.PostAudio` and `wp.media.model.PostVideo`
* Make a generic library, `wp.media.controller.MediaLibrary`, which replaces `wp.media.controller.ReplaceVideo` and `wp.media.controller.ReplaceAudio`
* `wp.media.controller.MediaLibrary` is used to create new states that want to load a library filtered by type, making it incredibly simple to add states to frames. See `wp.media.view.MediaFrame.VideoDetails` and `wp.media.view.MediaFrame.AudioDetails`.

UX changes:

* Add the ability to manage HTML5 fallbacks - add additional `<source>`s or remove specific `<source>`s
* In the Video Details state, add the ability to select a poster image

See #27016.



git-svn-id: https://develop.svn.wordpress.org/trunk@27478 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-09 05:24:10 +00:00
Scott Taylor
67512aa18a Audio/Video shortcodes in the media modal:
* Add `embedMimes` to `_wpMediaViewsL10n`
* Use `escape` instead of `interpolate` when setting attributes in Underscore templates
* When creating the `<audio>` and `<video>` tags dynamically, set inner `<source>` nodes instead of the `src` attribute and properly set the mime-type per source as the `type` attribute. This is also drastically reduces the amount of code used to generate the tags.

See #27016.



git-svn-id: https://develop.svn.wordpress.org/trunk@27476 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-09 01:00:53 +00:00
Andrew Nacin
f225973b62 Allow $crop in add_image_size() to receive crop anchors (top, left, right, bottom, center).
This also applies to set_post_thumbnail_size() and image_resize_dimensions().

props bradt, wonderboymusic, DH-Shredder.
fixes #19393.


git-svn-id: https://develop.svn.wordpress.org/trunk@27472 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-08 06:13:27 +00:00
Helen Hou-Sandi
55e1b4c982 At long last, a first pass at bringing the image editor into the media modal. props gcorne, DH-Shredder, tomauger. see #21811.
git-svn-id: https://develop.svn.wordpress.org/trunk@27445 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-06 22:54:32 +00:00
Scott Taylor
0c8f553115 Add TinyMCE placeholders for audio and video shortcodes.
* Add `wp.media.mixin`.
* Add `wp.media.audio` and `wp.media.video`.
* Add `wp.media.model.PostAudio` and `wp.media.model.PostVideo`
* Add `wp.media.controller.AudioDetails` and `wp.media.controller.VideoDetails`.
* Add `wp.media.controller.ReplaceAudio` and `wp.media.controller.ReplaceVideo`.
* Add `wp.media.view.MediaFrame.AudioDetails` and `wp.media.view.MediaFrame.VideoDetails`.
* Add `wp.media.view.AudioDetails` and `wp.media.view.VideoDetails`.
* Update the `wpgallery` TinyMCE plugin.
* Display audio and video players in the media modal when shortcode is clicked.
* Provide a UI to edit shortcode attributes in the media modal.
* Provide a UI to replace the `src` media file in an `audio` or `video` shortcode.

See #27016.



git-svn-id: https://develop.svn.wordpress.org/trunk@27411 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-05 15:06:00 +00:00
Helen Hou-Sandi
83b61e9400 Add a class attribute to the caption shortcode to allow for additional classes on the caption container. props rhyswynne, mcadwell. fixes #25295.
git-svn-id: https://develop.svn.wordpress.org/trunk@27404 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-05 04:53:33 +00:00
Andrew Nacin
73a077d32b Rename maybe_regenerate_attachment_metadata() to wp_maybe_generate_attachment_metadata(), to match wp_generate_attachment_metadata().
fixes #26825.


git-svn-id: https://develop.svn.wordpress.org/trunk@27397 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-04 20:06:14 +00:00
Andrew Nacin
f0b330e994 Do not output default gallery styles if the theme has opted into HTML5 galleries.
fixes #27045. see #26697.


git-svn-id: https://develop.svn.wordpress.org/trunk@27396 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-04 18:52:34 +00:00
Scott Taylor
07f14d6434 * Videos should always render at the same aspect ratio.
* Don't force a pseudo-mime-type for `.m4v` files
* Uniformly adapt to `$content_width` when setting video dimensions on the front end
* Add the `height` attribute to the initial `<video>` in the video playlist JS template
* Add some defensive/responsive CSS for a/v on the Edit Media page

See #27243.



git-svn-id: https://develop.svn.wordpress.org/trunk@27328 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-28 21:27:40 +00:00
Scott Taylor
6736936a43 Some playlist cleanup:
* Check properties against the `window` object when using `_.isUndefined()` on globals
* Fix a typo for `$safe_type` introduced in [27311]

See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27320 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-27 21:37:36 +00:00
Andrew Ozz
2dd4f585aa Remove debugging cruft, see #25663
git-svn-id: https://develop.svn.wordpress.org/trunk@27318 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-27 20:14:35 +00:00
Andrew Ozz
11586e8ebe Upgrade Plupload to 2.1.1, props kovshenin, see #25663
git-svn-id: https://develop.svn.wordpress.org/trunk@27316 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-27 20:00:55 +00:00
Scott Taylor
1a78a56e98 In the tracklist for playlist, fall back to title if there is no caption.
Props bassgang.
See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27312 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-27 15:21:37 +00:00
Scott Taylor
ad0751a29c Add some security hardening to passed playlist attributes.
Props xknown.
See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27311 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-27 15:19:53 +00:00
Andrew Nacin
f45fa1f0a3 Introduce HTML5 gallery support.
When a theme supports HTML5 galleries via add_theme_support( 'html5', 'gallery' ), figure and figcaption will be used instead of definition list markup.

props obenland.
fixes #26697.


git-svn-id: https://develop.svn.wordpress.org/trunk@27302 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-26 22:19:11 +00:00
Scott Taylor
7a21b05378 Make sure data.meta always exists when rendering tracklists. Use $theme_width when rendering media tag in playlist template instead of recalculating.
Props helen.



git-svn-id: https://develop.svn.wordpress.org/trunk@27269 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-25 19:29:49 +00:00
Scott Taylor
a99056fd24 Get the proper image size for an item's thumb in playlist JSON.
See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27245 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-24 21:09:14 +00:00
Scott Taylor
e46f8428fd Supply mime-type instead of extension for an item's type property in playlist JSON.
See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27244 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-24 21:05:00 +00:00
Drew Jaynes
268b688247 Inline documentation improvements for wp_get_playlist().
* Adds a missing `@param` description in the PHPDoc.
* Adds hook documentation for the `post_playlist` filter.
* Other comment cleanup.


git-svn-id: https://develop.svn.wordpress.org/trunk@27240 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-24 19:41:24 +00:00
Scott Taylor
9ff3e7c214 Add core support for Playlists and Video Playlists.
* Playlists operate like galleries in the admin. 
* Provide default UI and JS support in themes using MediaElement and Backbone. 
* The shortcodes are clickable, editable, and configurable using the media modal. 
* Playlists support images for each item, whether or not the current theme supports images for `attachment:audio` and `attachment:video`
* Playlists respond to `$content_width` and resize videos accordingly.
* All playlist data is included inline, using a script tag with `type="application/json"`, allowing anyone to unenqueue the WP playlist JS and roll their own.
* Playlist styles are minimal and work out of the box in the last 5 default themes. They inherit and adapt to the current theme's font styles, and their rules are easily overrideable.

See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27239 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-24 18:07:51 +00:00
Scott Taylor
ae603ef26d Allow pseudo post types attachment:audio and attachment:video to get the media modal on Edit Media when they support featured images.
Introduces `post_supports_thumbnails( $post )` and `theme_supports_thumbnails( $post )` to cut down on duplicated code everytime this needs to be checked. There will be more cases forthcoming.

See #26631.



git-svn-id: https://develop.svn.wordpress.org/trunk@27209 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-20 17:49:30 +00:00
Andrew Nacin
ee280cf8dd has_image_size()'s parameter should be required. see [27139], see #26951.
git-svn-id: https://develop.svn.wordpress.org/trunk@27140 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-08 23:52:40 +00:00
Drew Jaynes
c0a7cd58e7 Inline documentation tweaks for has_image_size() and remove_image_size().
See #26951.


git-svn-id: https://develop.svn.wordpress.org/trunk@27139 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-08 22:54:47 +00:00
Andrew Nacin
baeadcfedc Add remove_image_size() and tests for it and has_image_size(), added in [27128].
props mordauk, markoheijnen.
fixes #26768. see #26951.


git-svn-id: https://develop.svn.wordpress.org/trunk@27129 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-08 00:40:15 +00:00
Scott Taylor
d80685a46b Introduce has_image_size( $name ), a utility function that helps avoid loading the $_wp_additional_image_sizes global.
Props mordauk.
Fixes #26951.



git-svn-id: https://develop.svn.wordpress.org/trunk@27128 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-08 00:19:29 +00:00
Scott Taylor
d6cb8c399e Introduce maybe_regenerate_attachment_metadata( $attachment ). On the Edit Media screen, call it for Audio and Video files.
The functions checks if the item is lacking metadata altogether. If a video or audio file was uploaded prior to 3.6, it does not have any metadata. This tries to fix it. Implements locking via a transient to protect against this running in parallel with another request.

This is the minimum viable product for #26825, but leaving the ticket open unless this function needs to be called in other places.

See #26825.



git-svn-id: https://develop.svn.wordpress.org/trunk@27127 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-07 22:40:32 +00:00