Commit Graph

262 Commits

Author SHA1 Message Date
Andrew Ozz
a00d98a8c2 TinyMCE: bring back removal of the size-* class when the user soft-resizes an image, see #24409
git-svn-id: https://develop.svn.wordpress.org/trunk@27694 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-25 00:15:37 +00:00
Scott Taylor
98921c5ca0 Let us pass jshint:core.
git-svn-id: https://develop.svn.wordpress.org/trunk@27693 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 23:01:15 +00:00
Andrew Nacin
afde656058 Customizer header images: Fix randomizing headers.
props mcsf.
see #21785.


git-svn-id: https://develop.svn.wordpress.org/trunk@27688 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 19:15:32 +00:00
Andrew Nacin
d9ab8333c8 Media manager: Avoid a blank modal when an invalid image size class is set on the image.
props gcorne.
fixes #24409.


git-svn-id: https://develop.svn.wordpress.org/trunk@27687 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 19:00:15 +00:00
Sergey Biryukov
f966183e51 Fix typo in a comment. see #25663.
git-svn-id: https://develop.svn.wordpress.org/trunk@27681 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 09:08:36 +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
d534c8c3eb 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27659 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-23 03:35:50 +00:00
Scott Taylor
559cccfdd1 When an HTML5 fallback button is pressed in the Audio or Video Details state, filter the library by that specific mime-type when the Add Audio|Video Source is activated.
See #27389.



git-svn-id: https://develop.svn.wordpress.org/trunk@27658 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-23 03:15:35 +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
Dominik Schilling (ocean90)
2a1899e319 Widget Customizer: Fix 'WidgetCustomizerPreview' is undefined error in IE8/9.
* Move `WidgetCustomizerPreview` to `wp.customize.WidgetCustomizerPreview`
* Move `WidgetCustomizerPreview_exports` to export_preview_data()
* Use `_wpWidgetCustomizerPreviewSettings` to transfer settings to `wp.customize.WidgetCustomizerPreview`

see #27485.

git-svn-id: https://develop.svn.wordpress.org/trunk@27653 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-22 21:03:18 +00:00
Dominik Schilling (ocean90)
a3abe09be2 Customizer: Use the _.now() function from Undescore.js for the current timestamp. Date.now() isn't supported in IE8.
fixes #27477.

git-svn-id: https://develop.svn.wordpress.org/trunk@27651 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-22 10:53:10 +00:00
Scott Taylor
39197965e4 Fixes for jshint
git-svn-id: https://develop.svn.wordpress.org/trunk@27643 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-20 22:26:53 +00:00
Scott Taylor
f9dda7bea7 Add JSDoc blocks to media-audiovideo.js.
See #27016.



git-svn-id: https://develop.svn.wordpress.org/trunk@27642 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-20 22:22:25 +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 Ozz
9bac9f66d9 wpView: select/deselect views when moving the caret with the arrow keys, don't move the caret after deselect(), props gcorne, see #26959
git-svn-id: https://develop.svn.wordpress.org/trunk@27632 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-20 02:47:15 +00:00
Scott Taylor
598162885c Move wp.media.view.MediaDetails to media-audiovideo.js. This should have moved over with the rest.
See [27608].



git-svn-id: https://develop.svn.wordpress.org/trunk@27631 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-20 02:44:26 +00:00
Helen Hou-Sandi
d80da6c3f4 Further unify and refine media and view control styling. see #27320.
git-svn-id: https://develop.svn.wordpress.org/trunk@27628 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-20 00:47:21 +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
Helen Hou-Sandi
1d98cab1ef Ensure the media library spinner hides when displaying a cached result set. props kovshenin. see #24859.
git-svn-id: https://develop.svn.wordpress.org/trunk@27621 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 18:26:05 +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
844b799d6e JSHint fix for [27608].
git-svn-id: https://develop.svn.wordpress.org/trunk@27619 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 07:23:19 +00:00
Scott Taylor
ce1c3140ab Add MCE views for audio and video shortcodes. When the shortcode does not contain a source that supports native playback, just show the filename.
* Remove the audio/video shortcode parsing from the `wpgallery` plugin.
* Make `mce-view` a dependency of `media-audiovideo`
* Introduce `wp.mce.video`, `wp.mce.audio`, `wp.mce.media`, and `wp.mce.media.View`
* Rename `wp.media.audio|video.shortcode()` to `wp.media.audio|video.update()` since it is called on Update and returns a `wp.shortcode` object now.
* In `wp.mce.View.render()`, fire a `ready` event when the placeholder is being parsed and pass the current node to the event handler.

See #27389, #27437.



git-svn-id: https://develop.svn.wordpress.org/trunk@27615 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 07:01:56 +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
Andrew Ozz
e342b6a3a5 TinyMCE: update to 4.0.20, see #24067
git-svn-id: https://develop.svn.wordpress.org/trunk@27603 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 04:46:01 +00:00
Andrew Ozz
04f3b0e0a5 TinyMCE show/hide toolbar row: fix the value for getUserSetting('hidetb'): 0 == hidden, 1 == visible, see #24067
git-svn-id: https://develop.svn.wordpress.org/trunk@27602 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 02:29:12 +00:00
Andrew Ozz
15e74ab98a wpView: don't overlap floated elements, see #26959
git-svn-id: https://develop.svn.wordpress.org/trunk@27601 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-19 01:15:59 +00:00
Dominik Schilling (ocean90)
5358f081be Widget Customizer: Remove unused vars.
see #27112.

git-svn-id: https://develop.svn.wordpress.org/trunk@27588 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-18 18:34:26 +00:00
Dominik Schilling (ocean90)
c2a4665966 Widget Customizer: Restore highlighting of widgets in preview.
props westonruter.
see #27358.

git-svn-id: https://develop.svn.wordpress.org/trunk@27584 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-18 15:20:38 +00:00
Andrew Ozz
a053f70f11 wpView:
- Makes sure that the editor is focused when clicking on a wpview.
- When a view is the first or last node in the editor and a click on the area around the view adds a new paragraph, deselect the wpview so that the new paragraph is properly focused.
- When navigating via keyboard, select or deselect wpviews as appropriate.
Props gcorne, see #26959

git-svn-id: https://develop.svn.wordpress.org/trunk@27582 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-18 04:56:27 +00:00
Andrew Ozz
ed10dd815e TinyMCE gallery preview: fix editing the same gallery multiple times. Instead of .data() use .attr('data-...'), jQuery caches the former. Props gcorne, see #26959
git-svn-id: https://develop.svn.wordpress.org/trunk@27581 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-18 03:47:59 +00:00
Andrew Ozz
8e403519db TinyMCE gallery preview: fix errors when an image doesn't have/is smaller than thumbnail size, props gcorne, see #26959
git-svn-id: https://develop.svn.wordpress.org/trunk@27580 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-18 03:24:17 +00:00
Andrew Ozz
30a83e48e2 TinyMCE: move the caption and gallery toolbars to the right, fix selected gallery border/outline, see #27320
git-svn-id: https://develop.svn.wordpress.org/trunk@27579 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-18 02:29:45 +00:00
Andrew Ozz
20eabd30ef TinyMCE:
- Update the styling of the image caption and gallery toolbars.
- Fix issue where the hidden clipboard div in wpView.
- Switch to using the pencil dashicon for Edit.
- Add `max-width: 100%;` to images in the gallery preview and adjust column widths.
Props cramdesign, mattheu, gcorne, melchoyce, see #27320, fixes #27376, fixes #27354


git-svn-id: https://develop.svn.wordpress.org/trunk@27578 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-18 00:19:17 +00:00
Andrew Ozz
6d13e3e1ff Restyle the plugin install details modal to match the rest of the admin. Props avryl and paulwilde for initial mockup, see #26952
git-svn-id: https://develop.svn.wordpress.org/trunk@27559 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-16 18:27:38 +00:00
Andrew Ozz
0fdb6dadfb TinyMCE: add internal command and shortcut (Alt+Shift+X) for toggling <code>. Define a button that can be added to any toolbar as wp_code. See #6113
git-svn-id: https://develop.svn.wordpress.org/trunk@27545 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 22:42:59 +00:00
Scott Taylor
b6e2bd9f0e 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27544 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 20:40:44 +00:00
Scott Taylor
f2164771a7 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27542 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 20:25:31 +00:00
Scott Taylor
bfd0ac1099 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27539 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 14:35:49 +00:00
Scott Taylor
2ba763c9ba 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27538 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 13:47:24 +00:00
Scott Taylor
3d244e1fed 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27537 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 13:16:07 +00:00
Scott Taylor
5e1e5c53ec 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27536 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 12:59:28 +00:00
Scott Taylor
12792afdde Make media.view.VideoDetails.prepareSrc a static class method instead of an instance method. Properly pairs it with its incrementing instances property.
See #27389.



git-svn-id: https://develop.svn.wordpress.org/trunk@27535 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 12:42:57 +00:00
Scott Taylor
86722dfaaa 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27534 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 12:33:24 +00:00
Andrew Ozz
83501070d5 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
git-svn-id: https://develop.svn.wordpress.org/trunk@27532 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 05:54:16 +00:00
Andrew Ozz
a33829d1d0 Drag/drop upload: don't trigger on "local" dragging, hide the overlay on click. Props kovshenin, fixes #19845
git-svn-id: https://develop.svn.wordpress.org/trunk@27531 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-14 00:41:12 +00:00
Scott Taylor
bb02b06ad4 Revert [27528] until Flash in Firefox behaves :(
See #27389.



git-svn-id: https://develop.svn.wordpress.org/trunk@27530 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-13 23:38:14 +00:00
Scott Taylor
1c7d92ba50 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27528 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-13 23:09:06 +00:00
Scott Taylor
dc73f008ce 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27520 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-13 03:54:38 +00:00
Scott Taylor
abf794f75c 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.



git-svn-id: https://develop.svn.wordpress.org/trunk@27518 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-13 03:18:42 +00:00