Commit Graph

92 Commits

Author SHA1 Message Date
Mark Jaquith b9eb0f72e3 Ensure that `wp.media.view.settings.post` is set before accessing the post's id
Avoids JS error in cases where media-editor is loaded individually
instead of with the whole `wp_enqueue_media()` process.

fixes #27836. props nacin
Built from https://develop.svn.wordpress.org/trunk@28149


git-svn-id: http://core.svn.wordpress.org/trunk@27980 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-16 15:26:15 +00:00
Scott Taylor 10b80870ee Only set the `poster` attribute automatically for videos when the image does not match the default mime-type icon. `wp_prepare_attachment_for_js()` is used in multiple contexts. This context requires disambiguation.
See [27659].


Built from https://develop.svn.wordpress.org/trunk@27980


git-svn-id: http://core.svn.wordpress.org/trunk@27810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-07 06:20:16 +00:00
Scott Taylor 2c88f6e941 [27640] supported a caption for audio and video shortcodes as part of a UX iteration for the related MCE views. These captions have since be excluded, so the extra code should be removed (it was there for this sole reason).
See #27320.


Built from https://develop.svn.wordpress.org/trunk@27979


git-svn-id: http://core.svn.wordpress.org/trunk@27809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-07 06:13:18 +00:00
Scott Taylor 4f868ad882 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.


Built from https://develop.svn.wordpress.org/trunk@27785


git-svn-id: http://core.svn.wordpress.org/trunk@27621 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-27 17:58:15 +00:00
Scott Taylor 16f93f3952 When inserting a video shortcode into the editor, set the `poster` attribute automatically if the video has a featured image attached to it.
See #27460.


Built from https://develop.svn.wordpress.org/trunk@27659


git-svn-id: http://core.svn.wordpress.org/trunk@27502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-23 03:36:15 +00:00
Scott Taylor 615dd5331b 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.


Built from https://develop.svn.wordpress.org/trunk@27640


git-svn-id: http://core.svn.wordpress.org/trunk@27483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-20 13:33:14 +00:00
Scott Taylor a17dd704c4 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.


Built from https://develop.svn.wordpress.org/trunk@27608


git-svn-id: http://core.svn.wordpress.org/trunk@27451 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-19 05:31:15 +00:00
Scott Taylor 12034fcc59 In `wp.media.mixin`, add `ua` and a `compat` map to separate and clarify browser detection and support. Leverage Underscore list iterators in `isCompatible()`.
See #27389.


Built from https://develop.svn.wordpress.org/trunk@27542


git-svn-id: http://core.svn.wordpress.org/trunk@27385 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 20:26:15 +00:00
Scott Taylor bd4085fac3 The `canPlayType` property for audio and video in JS is so bad that the official valid responses are "probably" and "maybe". There are many cases where we might want to know if an audio|video tag is gonna blow up in our face before even attempting to make a `MediaElementPlayer` instance out of it.
The best (and most cautious) way to tackle this is to whitelist types by browser. Imagine that one implemented MEjs in TinyMCE's rich editor mode, this would be very helpful.

Add `isCompatible( $media )` to `wp.media.mixin`. Future features will use this.

See #27389.


Built from https://develop.svn.wordpress.org/trunk@27539


git-svn-id: http://core.svn.wordpress.org/trunk@27382 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 14:36:14 +00:00
Scott Taylor 117d1bd31e Move `removePlayer()` and `unsetPlayer()` to `wp.media.mixin` so that other classes can take advantage of them.
* `removePlayer()` is an alternative to MediaElement's player removal method that does not re-add the audio|video element back to the DOM.
* `unsetPlayer()` will check for an existing `player` property on the passed instance and pause all players before calling `unsetPlayer()`

See #27389.


Built from https://develop.svn.wordpress.org/trunk@27538


git-svn-id: http://core.svn.wordpress.org/trunk@27381 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 13:48:15 +00:00
Scott Taylor 9432aaca82 Rather than extending `wp.media.mixin`, only borrow `coerce` when necessary in `wp.media.audio|video|collection`. `wp.media.mixin` will make sense to be mixed in for classes that expect to interact with the player. More universal methods can be added and inherited by all those who extend their prototype with it.
Assuming someone had implemented players in the editor, pause all players when switching between editor tabs. A method, `pauseAllPlayers`, has been added to `wp.media.mixin`.

See #27389.


Built from https://develop.svn.wordpress.org/trunk@27537


git-svn-id: http://core.svn.wordpress.org/trunk@27380 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 13:17:16 +00:00
Scott Taylor b4569b69dc Revert [27528] until Flash in Firefox behaves :(
See #27389.


Built from https://develop.svn.wordpress.org/trunk@27530


git-svn-id: http://core.svn.wordpress.org/trunk@27373 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-13 23:39:16 +00:00
Scott Taylor ba84f57083 Add MCE Views for audio and video. Please clear your browser cache so that you get the latest TinyMCE stylesheet.
* Move TinyMCE shortcode handling from `wpgallery` plugin to `mce-view.js`
* Force `preload="none"` when rendering media in the editor to ensure fast loading (I realize this sounds illogical)
* Move audio and video tag builder logic in `media-template.php` into PHP funcs that can be reused by any code passing `data.model` to an Underscore template
* Pause all players when moving between editor tabs and when moving from the editor to editing in the media modal.
* Rename `wp.media.audio|video.shortcode()` to the more appropriate `wp.media.audio|video.update()` that now returns a `wp.shortcode` object instead of a string.
* Add necessary MediaElement css files to `$mce_css`
* In `wp.mce.View.render()`, support multiple instances of the same shortcode
* When rendering `wp.mce.View`s, fire a ready event that passes the current MCE View root element as context 

See #27389.


Built from https://develop.svn.wordpress.org/trunk@27528


git-svn-id: http://core.svn.wordpress.org/trunk@27371 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-13 23:10:14 +00:00
Scott Taylor f078f3e10e 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.


Built from https://develop.svn.wordpress.org/trunk@27481


git-svn-id: http://core.svn.wordpress.org/trunk@27325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 10:32:15 +00:00
Helen Hou-Sandí 4bb7e03548 At long last, a first pass at bringing the image editor into the media modal. props gcorne, DH-Shredder, tomauger. see #21811.
Built from https://develop.svn.wordpress.org/trunk@27445


git-svn-id: http://core.svn.wordpress.org/trunk@27292 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 22:55:14 +00:00
Scott Taylor bc9838f86f We shall pledge to run `jshint` before committing.
Props nacin for the nudge.


Built from https://develop.svn.wordpress.org/trunk@27435


git-svn-id: http://core.svn.wordpress.org/trunk@27282 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 16:06:14 +00:00
Scott Taylor 09d8606428 Add some missing JSDoc blocks to media-related code.
See #27016.


Built from https://develop.svn.wordpress.org/trunk@27415


git-svn-id: http://core.svn.wordpress.org/trunk@27262 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 18:37:15 +00:00
Scott Taylor ff8844deae 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.


Built from https://develop.svn.wordpress.org/trunk@27411


git-svn-id: http://core.svn.wordpress.org/trunk@27258 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 15:06:14 +00:00
Andrew Nacin 482856e2e1 Add the ability to drag and drop files directly onto the editor.
The file will then begin to upload and the media manager will open.

props kovshenin.
see #19845.

Built from https://develop.svn.wordpress.org/trunk@27343


git-svn-id: http://core.svn.wordpress.org/trunk@27195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-01 21:34:17 +00:00
Scott Taylor 2ea01e110b Restore / re-tools some docs after [27313].
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27321


git-svn-id: http://core.svn.wordpress.org/trunk@27173 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 21:51:14 +00:00
Scott Taylor db1a8785b5 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.


Built from https://develop.svn.wordpress.org/trunk@27320


git-svn-id: http://core.svn.wordpress.org/trunk@27172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 21:38:17 +00:00
Scott Taylor cf1d899cc8 In `media-editor.js`, use `_.isUndefined()` when available.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27317


git-svn-id: http://core.svn.wordpress.org/trunk@27169 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 20:11:14 +00:00
Scott Taylor baeecbe763 This comment was pasted and does not apply to specified code block.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27315


git-svn-id: http://core.svn.wordpress.org/trunk@27167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 19:51:14 +00:00
Scott Taylor 45e748e57e `wp.media.collection` should be its own civilized instantiable class, not a wrapper/factory. The class shall contain no reference to specific instances, and shall not try to grab static properties of itself. `self`, meet `this`.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27313


git-svn-id: http://core.svn.wordpress.org/trunk@27166 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 19:22:14 +00:00
Scott Taylor 8a4ef32f7a Populate playlist setting values with their default value if they don't exist while parsing shortcode attributes.
Props kovshenin.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27308


git-svn-id: http://core.svn.wordpress.org/trunk@27161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 02:55:13 +00:00
Andrew Nacin 74f2a32f52 Fixed mixed spaces and tabs. Also remove trailing comma. see #26631.
Built from https://develop.svn.wordpress.org/trunk@27266


git-svn-id: http://core.svn.wordpress.org/trunk@27123 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-25 17:32:14 +00:00
Scott Taylor c0379aaafc Load default settings state when creating a new playlist in the media modal. Add a few missing inline `@this` annotations in `media-editor.js`.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27242


git-svn-id: http://core.svn.wordpress.org/trunk@27099 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 20:26:14 +00:00
Scott Taylor 943f295d2e 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.


Built from https://develop.svn.wordpress.org/trunk@27239


git-svn-id: http://core.svn.wordpress.org/trunk@27096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 18:08:16 +00:00
Scott Taylor 5d15ed5202 Access class directly instead of using `this` in the `shortcodeAttrs` method of any factory-generated `wp.media.collection`.
Fixes #27183.


Built from https://develop.svn.wordpress.org/trunk@27238


git-svn-id: http://core.svn.wordpress.org/trunk@27095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 13:01:14 +00:00
Scott Taylor 911442cdab Replace the current `wp.media.gallery` instance in `media-editor.js` with one that leverages `wp.media.collection`.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27213


git-svn-id: http://core.svn.wordpress.org/trunk@27070 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-20 18:13:14 +00:00
Scott Taylor 08b1c1b0f5 Add an abstraction of the gallery code in `media-editor.js` called `wp.media.collection`. This will be the basis for parsing `[gallery]`-like shortcodes in the media editor (thing playlists, collections of PDFs, etc).
There are currently no instances of this. Those will be forthcoming.

See #26631.


Built from https://develop.svn.wordpress.org/trunk@27212


git-svn-id: http://core.svn.wordpress.org/trunk@27069 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-20 18:07:12 +00:00
Andrew Nacin 6adabc6e4d Various JSHint fixes. see #26446.
Built from https://develop.svn.wordpress.org/trunk@27131


git-svn-id: http://core.svn.wordpress.org/trunk@26998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-08 00:52:12 +00:00
Scott Taylor e1759d668a For starters, [27050] is rad. This just cleans up some extra new lines that were littered about, updates *some* of the inline docs (needs more), moves `wp.media.controller.ImageDetails` closer to its parent class, and de-dupes some code in `media-template.php`.
See #24409.


Built from https://develop.svn.wordpress.org/trunk@27051


git-svn-id: http://core.svn.wordpress.org/trunk@26925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-28 23:21:13 +00:00
Scott Taylor f850ddd4f8 Add inline docs to each method of the namespaced objects in `media-editor.js`, explaining what each does. Add inline docs to params as well.
See #26870.


Built from https://develop.svn.wordpress.org/trunk@27005


git-svn-id: http://core.svn.wordpress.org/trunk@26882 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-22 18:38:11 +00:00
Scott Taylor f6b1f2202a Add the `@namespace` annotation where appropriate in `media-editor.js`. Also indicate the default value of a few params via the [options={}] syntax.
See #26870.


Built from https://develop.svn.wordpress.org/trunk@27000


git-svn-id: http://core.svn.wordpress.org/trunk@26877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-22 17:17:11 +00:00
Scott Taylor 60986d43b4 Remove debug cruft.
Props nacin.
See #26870.


Built from https://develop.svn.wordpress.org/trunk@26990


git-svn-id: http://core.svn.wordpress.org/trunk@26867 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-21 16:31:11 +00:00
Scott Taylor f473d5eef2 Disambiguate `this` and use the `@this` annotation in `media-editor.js`. This will become way more necessary in other places, but a few examples here show how confusing it can be.
See #26870.


Built from https://develop.svn.wordpress.org/trunk@26989


git-svn-id: http://core.svn.wordpress.org/trunk@26866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-21 16:30:11 +00:00
Scott Taylor 86aec42f7c Correct a type.
See #26870.


Built from https://develop.svn.wordpress.org/trunk@26988


git-svn-id: http://core.svn.wordpress.org/trunk@26865 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-21 15:57:16 +00:00
Scott Taylor ad4cf383cd Elaborate on JSDoc blocks for `media-editor.js`.
See #26870.


Built from https://develop.svn.wordpress.org/trunk@26987


git-svn-id: http://core.svn.wordpress.org/trunk@26864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-21 15:55:13 +00:00
Scott Taylor 8457a40032 Add initial JSDoc blocks to `media-editor.js`. The initial blocks are a baseline to work from and invite future iterations. Initial commit is to avoid commits this large in the future.
See #26870.


Built from https://develop.svn.wordpress.org/trunk@26984


git-svn-id: http://core.svn.wordpress.org/trunk@26861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-20 23:35:15 +00:00
Andrew Ozz 71101bc9e2 TinyMCE: fix `send_to_editor()`. It no longer needs to replace shortcode strings with html placeholers before inserting them in the editor. This is handled properly by the editor's `'BeforeSetContent'` event callbacks. See #24067.
Built from https://develop.svn.wordpress.org/trunk@26945


git-svn-id: http://core.svn.wordpress.org/trunk@26824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-14 23:35:11 +00:00
Andrew Ozz 855889f7aa TinyMCE 4.0.12, first run.
- Removes wp-tinymce-schema.js and mark-loaded.js, no longer needed.
- Removes the inlinepopups and most of the wpdialogs plugins; wpdialog.js is moved to wp-includes/js.
- Adds charmap, compat3x, image, link and textcolor plugins, previously contained in /themes/advanced.
- Updates the wordpress, wpeditimage, wpfullscreen, wpgallery and wplink plugins.
- Updates DFW, wp-admin/js/wp-fullscreen.js.
See #24067.
Built from https://develop.svn.wordpress.org/trunk@26876


git-svn-id: http://core.svn.wordpress.org/trunk@26759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-28 23:53:15 +00:00
Andrew Nacin 6292b4c519 Fix JSHint errors in 5 files.
props seanchayes.
fixes #26015, #26020, #26019, #26034, #26022.

Built from https://develop.svn.wordpress.org/trunk@26200


git-svn-id: http://core.svn.wordpress.org/trunk@26108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-15 05:16:09 +00:00
Andrew Nacin a30d69e534 Prevent the removal of a manual 'orderby' attribute in the gallery shortcode.
props nofearinc.
fixes #24868.

Built from https://develop.svn.wordpress.org/trunk@25720


git-svn-id: http://core.svn.wordpress.org/trunk@25633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-07 19:02:10 +00:00
Andrew Nacin 2c67dea9bc Media: Add awareness to Attachment Display Settings that audio and video can be embedded.
Also:
 * Add file length metadata to Attachment Details.
 * Round the kb/s bitrate on post.php.

fixes #24449.



git-svn-id: http://core.svn.wordpress.org/trunk@24777 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-23 05:39:08 +00:00
Andrew Nacin b14622b2ff Media: Render unsupported audio files as links instead of mediaelement. props kovshenin, fixes #23798.
git-svn-id: http://core.svn.wordpress.org/trunk@24519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-06-26 20:42:01 +00:00
Mark Jaquith e1923d4783 Restore code that returns the existing media object if it already exists.
props programmin, adamsilverstein. fixes #24062

git-svn-id: http://core.svn.wordpress.org/trunk@24447 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-06-19 21:55:17 +00:00
Ryan Boren 849765385b Respect the link to setting when inserting a gallery.
Props SergeyBiryukov
fixes #23298


git-svn-id: http://core.svn.wordpress.org/trunk@24161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-05-02 22:07:37 +00:00
Mark Jaquith 1f6d2f796a Force gallery state for gallery post format.
props lessbloat, wonderboymusic. fixes #24062.

git-svn-id: http://core.svn.wordpress.org/trunk@24087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-04-25 05:43:14 +00:00
Mark Jaquith 51e5c3436e Use attachment.url only if it is available, else fall back to props.url.
see #24046. see [24009].

git-svn-id: http://core.svn.wordpress.org/trunk@24017 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-04-17 17:57:51 +00:00