Commit Graph

2008 Commits

Author SHA1 Message Date
Scott Taylor e1fee3abc6 MCE Views: don't (re-)render views if the format of the content is "raw" to avoid adding additional undo levels on undo/redo.
Props gcorne.
Fixes #27416.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27387 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 20:41: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 608177d39b In `media.model.PostMedia`, for these 2 scenarios:
* `src` is set, and 'Add a Source' results in the same file (or a file with the same extension) being added
* `src` is set, and 'Replace Audio|Video' is used, which will add a model property named by the attachment's extension

... call `model.unset( 'src' )`.

See #27389.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 13:00:14 +00:00
Scott Taylor 56b919e651 Make `media.view.VideoDetails.prepareSrc` a static class method instead of an instance method. Properly pairs it with its incrementing `instances` property.
See #27389.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27378 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 12:43:15 +00:00
Scott Taylor e47bc77616 Load MediaElement's CSS when TinyMCE is loaded via `$mce_css` in `editor_settings()`. Add some baseline styles in `wp-content.css` for audio, video, and embed tags to ensure their `max-width` is `100%`, regardless of whether MEjs is implemented in TinyMCE.
See #27389.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 12:34:16 +00:00
Andrew Ozz 93ec80e732 Modals: darken all overlays, update all box-shadows and headings, correct thickbox styling, make the link modal narrower and bring back the animation (css transition). Props avryl, see #26952
Built from https://develop.svn.wordpress.org/trunk@27532


git-svn-id: http://core.svn.wordpress.org/trunk@27375 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 05:55:16 +00:00
Andrew Ozz 1ebf6bc9ee Drag/drop upload: don't trigger on "local" dragging, hide the overlay on click. Props kovshenin, fixes #19845
Built from https://develop.svn.wordpress.org/trunk@27531


git-svn-id: http://core.svn.wordpress.org/trunk@27374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-14 00:42:14 +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 a945b2738f Add a class property to `wp.media.view.MediaDetails` called `instances` that is incremented every time the class is invoked. This mimics what happens in the shortcodes: the sources receive an incremented cache-buster so that the browser won't ignore the file when `preload="metadata"` is set.
See #26779.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27363 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-13 03:55:15 +00:00
Scott Taylor 8705921741 In `wp.media.view.AttachmentFilters`, when creating its inner HTML content, pass `filter.text` via `.html( str )` instead of `.text( str )` to allow more formatting options.
Props tlovett1.
Fixes #25010.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-13 03:19:15 +00:00
Helen Hou-Sandí 326f49688f Ensure the correct model is selected when editing an image from gallery mode. props gcorne. fixes #27363.
Built from https://develop.svn.wordpress.org/trunk@27517


git-svn-id: http://core.svn.wordpress.org/trunk@27360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-12 22:05:15 +00:00
Helen Hou-Sandí 9aafd2294d Smooth out some display and race condition issues with the media modal loading spinner. props kadamwhite, gcorne. see #24859.
Built from https://develop.svn.wordpress.org/trunk@27516


git-svn-id: http://core.svn.wordpress.org/trunk@27359 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-12 21:07:14 +00:00
Andrew Ozz 2a7918390b TinyMCE modals: re-enable the Close button in charmap, fix arrows in listboxes, add and position dashicons to the menu (when visible), see #26952
Built from https://develop.svn.wordpress.org/trunk@27513


git-svn-id: http://core.svn.wordpress.org/trunk@27356 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-12 08:19:14 +00:00
Andrew Ozz d1008b2dfe wpLink: bring back the Cancel link, improve responsive styles, see #26952
Built from https://develop.svn.wordpress.org/trunk@27510


git-svn-id: http://core.svn.wordpress.org/trunk@27353 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-12 03:07:15 +00:00
Andrew Nacin 69ccc8b53d JS linting for [27497].
see #21785.

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


git-svn-id: http://core.svn.wordpress.org/trunk@27340 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-11 04:20:14 +00:00
Andrew Nacin a589d9d757 Add header image uploads with cropping to the customizer.
props mcsf, ehg, gcorne.
see #21785.

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


git-svn-id: http://core.svn.wordpress.org/trunk@27339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-11 04:13:16 +00:00
Andrew Ozz 05e23f7506 wpLink: stop using UI dialog, restyle the modal, add better responsive behaviour.
Fix UI dialog styling to match the rest of the admin styling.
Props avryl, see #26952
Built from https://develop.svn.wordpress.org/trunk@27494


git-svn-id: http://core.svn.wordpress.org/trunk@27336 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-11 00:04:14 +00:00
Scott Taylor 394feb8f91 Add a class, `wp-playlist-playing`, to the currently loaded track when tracks are displayed. Add some subtle styles for light and dark playlist themes.
See #27321.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27333 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-10 00:15: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
Scott Taylor 8e2e99fd0c Since audio and video shortcodes don't point at actual attachments, don't persist the library's selection. Move the media instructions in the block that scrolls.
See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27324 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 06:24:15 +00:00
Scott Taylor 90da8aab4a Add `wp.media.view.MediaFrame.MediaDetails`, which `wp.media.view.MediaFrame.AudioDetails` and `media.view.MediaFrame.VideoDetails` extend. The subclasses subsequently only need to set `createStates()` and `bindHandlers()`, as well as any missing toolbar views.
See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27323 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 06:05:14 +00:00
Scott Taylor f7af18e1d6 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.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 05:25:15 +00:00
Scott Taylor f0863476f5 In `wp.media.model.PostAudio` and `wp.media.model.PostVideo`, use Underscore's `unset` method when clearing out properties when the attachment changes.
See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27321 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 01:06:14 +00:00
Scott Taylor dc00fc7e7f 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.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 01:01:14 +00:00
Andrew Ozz c3212baa4d Limit the drag/drop upload only to newer browsers (IE10+), add a fullscreen dropzone in DFW mode, props kovshenin, see #19845
Built from https://develop.svn.wordpress.org/trunk@27464


git-svn-id: http://core.svn.wordpress.org/trunk@27309 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-08 01:35:15 +00:00
Andrew Ozz a8a20f4bb7 Set minimum z-index for the TinyMCE modals and adjust the z-index in DFW, see #26952
Built from https://develop.svn.wordpress.org/trunk@27460


git-svn-id: http://core.svn.wordpress.org/trunk@27305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-08 00:41:16 +00:00
Scott Taylor 818bf7c6af When `MEDIA_TRASH` is true, show the proper context in the `attachment-details` sidebar. Without this fix, it always showed "Delete Permanently."
Props toszcze.
Fixes #26783.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27300 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-07 16:42:14 +00:00
Scott Taylor 3b212f7e0f JSHint addendum to [27450].
See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27299 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-07 08:44:15 +00:00
Scott Taylor 7f15998947 Videos in the media modal:
* Support rendering of chromeless YouTube when a video shortcode's `src` is a YouTube URL. 
* Don't instantiate an instance of `MediaElementPlayer` until after the view has been attached to the DOM and the view's `ready` event has fired.
* Don't set `poster` for videos when its value is empty. Much like `src` in the `img` tag - when empty, it will assume and load the current window's URL.
* When removing a player instance, don't call the `pause` method if the playback is not native.

See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27298 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-07 08:32:14 +00:00
Andrew Ozz 88a47ecd06 TinyMCE editimage: show the toolbar on `mouseup` to avoid accidental clicks on the buttons, fixes #24409
Built from https://develop.svn.wordpress.org/trunk@27451


git-svn-id: http://core.svn.wordpress.org/trunk@27297 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-07 06:34:14 +00:00
Scott Taylor 52fdb09e2d Support the `autoplay` attribute, even when the plugin type for a MediaElement instance is Flash. In the media modal, `wp.media.view.VideoDetails` and `wp.media.view.AudioDetails` now extend a unified `wp.media.view.MediaDetails` class which contains all of the player creation and destruction logic. The `remove()` method mimics the `mejs.MediaElementPlayer.remove()` method, but does not re-add the audio/video tag to the DOM. The MEjs method is especially problematic when the tag has `autoplay="true"` and the view has been detached but not destroyed.
Fixes #25077.
See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27296 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-07 05:52:14 +00:00
Andrew Ozz 2b697a3d84 TinyMCE: add Ctrl+K, the "de-facto standard" shortcut to open wpLink, fixes #27305
Built from https://develop.svn.wordpress.org/trunk@27449


git-svn-id: http://core.svn.wordpress.org/trunk@27295 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-07 03:09:14 +00:00
Andrew Ozz 6f1668c43d TinyMCE:
- Restore the "link" button state to disabled by default and enabled when text or image is selected.
- Remove the (recently added) default `link` plugin, not needed for `wpLink`.
See #27309
Built from https://develop.svn.wordpress.org/trunk@27447


git-svn-id: http://core.svn.wordpress.org/trunk@27293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-07 02:02:13 +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 023b419727 Call the correct `remove()` method on the MEjs instance when exiting the media modal.
See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27290 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 20:13:15 +00:00
Scott Taylor eda85e17ca Cleanup audio/video shortcodes in the media modal:
* On the controller's `update`, `replace`, and `close` events, call `detach()` on the frame
* Cleanup the HTML ouput of the Underscore templates.
* Move some logic from the Underscore template to the `VideoDetails` view class.

See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27287 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 19:06:16 +00:00
Scott Taylor ba27ced46b Add a loading indicator to the Media Library.
Props kadamwhite, gcorne, kovshenin.
Fixes #24859.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27285 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 17:46:15 +00:00
Scott Taylor 01c0b48822 Make widget customizer code pass JSHint.
Fixes #27298.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27283 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 16:45:15 +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
Andrew Ozz f0bfa77a4a TinyMCE: add the <hr> plugin and button, see #27159
Built from https://develop.svn.wordpress.org/trunk@27428


git-svn-id: http://core.svn.wordpress.org/trunk@27275 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 00:54:14 +00:00
Andrew Ozz 79441fc1c1 TinyMCE: remove border-radius and padding from placeholder images, props avryl, see #27106
Built from https://develop.svn.wordpress.org/trunk@27427


git-svn-id: http://core.svn.wordpress.org/trunk@27274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 00:29:15 +00:00
Andrew Ozz 62d68cc992 TinyMCE: when parsing [caption] and the width attribute is missing, recreate it from the image tag width, fixes #23103
Built from https://develop.svn.wordpress.org/trunk@27426


git-svn-id: http://core.svn.wordpress.org/trunk@27273 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 00:13:14 +00:00
Scott Taylor 9aa05f8681 Add a timestamp to the urls passed to `<audio>` and `<video>` in the modal to ensure that cached view instances aren't referenced by MEjs. Pause the player when closing the controller's modal.
See #27016, #26779.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 21:37:13 +00:00
Andrew Nacin e853a9cc57 Add widget management to the customizer.
This brings in the Widget Customizer plugin: https://wordpress.org/plugins/widget-customizer/.

props westonruter, shaunandrews, michael-arestad, johnregan3, akeda, topher1kenobe, topquarky, bobbravo2, ricardocorreia. And for good measure, props westonruter.
see #27112.

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


git-svn-id: http://core.svn.wordpress.org/trunk@27266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 20:41: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 0ccc1d52ac Audio doesn't have the same quirks as video in the media modal. We don't have to aggressively destroy the `mejs` instance.
See #27016.


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


git-svn-id: http://core.svn.wordpress.org/trunk@27261 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 18:32:14 +00:00