Commit Graph

89 Commits

Author SHA1 Message Date
desrosj 0211c38565 Build/Test Tools: Support NodeJS 14.x in the 4.6 branch.
This updates the 4.6 branch to support the latest LTS version of NodeJS (currently 14.x), allowing the same version to be used across all WordPress branches that receive security updates as a courtesy.

This also replaces the `npm-shrinkwrap.json` with a `package-lock.json` file. Lock files were not supported in earlier versions of NPM, but can now be used.

In addition to backporting the package updates that happened after branching 4.6, dependencies that were removed in future releases have also been updated to their latest versions.

Props desrosj, dd32, netweb, jorbin.
Merges [42460-42461,42463,42887,43320,43323,43977,44219,44233,44728,45321,45765,46404,46408-46409,47404,47867-47869,47872-47873,48705,49636,49933,49937,49939,50017,50126,50176,50185] to the 4.6 branch.
See #52341.

Built from https://develop.svn.wordpress.org/branches/4.6@50206


git-svn-id: http://core.svn.wordpress.org/branches/4.6@49879 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-02-05 04:17:44 +00:00
Aaron Jorbin 8664f9f88b Build/Test Tools: Add npm-shrinkwrap.json to 4.5.
By shrinkwraping our dependencies, the same versions of everything will be installed no matter what rules the dependency package.json has specified.

fixes #37541.

Built from https://develop.svn.wordpress.org/branches/4.6@38177


git-svn-id: http://core.svn.wordpress.org/branches/4.6@38118 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-01 19:44:09 +00:00
Aaron Jorbin 262f3f2f7e Update grunt-contrib-uglify from ~0.10.0 to ~1.0.1
This changes every JS file in WordPress, so we need to test everything.

Props netweb.
See #36520.

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


git-svn-id: http://core.svn.wordpress.org/trunk@37178 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-04-15 16:10:37 +00:00
Scott Taylor c65b89be19 In `wp.media.model.Attachments.filters.type()`, return `true` earlier if `type` isn't set.
Props vivekbhusal.
Fixes #32746.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33062 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-06 15:34:26 +00:00
Aaron Jorbin c9307fc95a Update Grunt dev-dependencies
grunt-browserify : minor version update
grunt-contrib-cssmin : minor version update
grunt-contrib-imagemin : patch version update
grunt-contrib-jshint : patch version update
grunt-contrib-uglify : minor version update (causes some changes to minified JS)
grunt-includes : minor version update
grunt-sass : major version update ( underlying libsass update ).

Props wonderboymusic
See #31700


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


git-svn-id: http://core.svn.wordpress.org/trunk@32959 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-28 14:51:30 +00:00
Scott Taylor 8854256155 Because programming is fun. After [32915], `_.find()` will return `undefined` if an empty array is passed - in that case, the function should return `true`.
See #32746.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32887 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-23 19:43:25 +00:00
Scott Taylor 15bfe75f88 When filtering media by type in `wp.media.model.Attachments.filters.type()`, account for the library's `type` being an array of full mime-types.
Fixes #32746.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-23 19:40:26 +00:00
Scott Taylor 5e4616039c Move the built media JS files up a directory to their previous location and naming convention. This fidgets with part of [31373] and will maintain BC for those who were loading those files directly (not using the enqueue system).
Props iseulde, ocean90.
Fixes #31912.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32104 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-14 15:31:28 +00:00
Scott Taylor 6cb16f7a21 Remove unused media JS files.
See #28510.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31386 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-10 22:45:28 +00:00
Scott Taylor e3eaed1c78 Add two properties to `media.model.Attachments.propmap`: `include` and `exclude`, which are aliases for `post__in` and `post__not_in`.
This allows you to instantiate a library that includes and/or excludes specific attachments by passing a single ID or an array of IDs.

Example usage:
{{{
wp.media({frame: 'post', library: {include: [414, 415]}}).open()
wp.media({frame: 'post', library: {include: 414}}).open()
wp.media({frame: 'post', library: {exclude: [414, 415]}}).open()
wp.media({frame: 'post', library: {exclude: 414}}).open()
}}}

Fixes #26587.

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


git-svn-id: http://core.svn.wordpress.org/trunk@29531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-09-23 03:38:16 +00:00
Scott Taylor a0f2fe6599 After [29507], move unreachable code from `_requery()` to `Query.get()`.
Built from https://develop.svn.wordpress.org/trunk@29531


git-svn-id: http://core.svn.wordpress.org/trunk@29307 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-18 04:08:15 +00:00
Scott Taylor 4d20246173 Media Grid: `$.when` expects a splat. Disambiguation: change `cache` to `refresh` as the arg name for `_requery()`.
See [29490], #29145.

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


git-svn-id: http://core.svn.wordpress.org/trunk@29284 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-15 19:00:16 +00:00
Scott Taylor 571111022e Media Grid, support `MEDIA_TRASH`:
* Add a setting to `_wpMediaViewsL10n.settings`: `mediaTrash`
* In the attachment edit modal, properly toggle between Trash/Untrash
* In `media.view.Attachment`, add a method for `untrashAttachment`
* When creating the grid toolbar, switch the setting order of subviews so that `media.view.DeleteSelectedButton` can listen to the instance of `media.view.AttachmentFilters.All` to update the text in its UI.
* Add a new filter to `media.view.AttachmentFilters.All`, `trash`, when `settings.mediaTrash` is true
* Allow the cached queries in `Query.get()` to be flushed when race conditions exist and collections need to be refreshed. This is currently only being used when `MEDIA_TRASH` is set, to refresh the filtered/mirrored collections related to `all`, `trash`, and any already queried filter.
* Cleanup the bootstrapping of `media.view.MediaFrame.Manage`
* Allow `wp_ajax_query_attachments()` to return items from the trash when `MEDIA_TRASH` is `true`
* Allow `wp_ajax_save_attachment()` to set `post_status` when `MEDIA_TRASH` is `true`. It allows `wp_delete_post()` to be called, which will trash the attachment instead of deleting when the flag is set.

Props koop for the knowledge sharing and thought partnership.
See #29145.

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


git-svn-id: http://core.svn.wordpress.org/trunk@29268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-14 18:31:19 +00:00
Scott Taylor b7c8dee8f5 Media Grid: decouple the Grid and Edit modal frames. Next steps: we shouldn't have to reload the frame while paginating.
See #24716.

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


git-svn-id: http://core.svn.wordpress.org/trunk@28862 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-10 19:39:14 +00:00
Helen Hou-Sandí b5ef672c6b Grid view for the media library, first pass. This is alpha; expect imperfection. We will be iterating further.
props ericlewis, shaunandrews, wonderboymusic.
see #24716.

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


git-svn-id: http://core.svn.wordpress.org/trunk@28500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-05 22:01:18 +00:00
Andrew Ozz 0df02eb8ea Add hooks to the wpeditimage tinymce plugin and to the image details portion of the media modal.
- Add wp.media.events which is intended to be a global media event bus.
- Add a post-render event to the ImageDetails view that third-party code can leverage to add subviews.
- Performance improvement for the initialization of the PostImage model.
- A bit more markup to the image details template to make it easier to add a view to the advanced options.
Props gcorne, fixes #27698
Built from https://develop.svn.wordpress.org/trunk@28095


git-svn-id: http://core.svn.wordpress.org/trunk@27926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-13 04:02:15 +00:00
Andrew Ozz b41e23efac Edit image modal: check if full size exists before trying to use it for setting aspect ratio, props gcorne, see #27366
Built from https://develop.svn.wordpress.org/trunk@27948


git-svn-id: http://core.svn.wordpress.org/trunk@27778 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-04 18:01:17 +00:00
Andrew Ozz a3650b68cd Edit image modal:
- Make the calculation of the aspect ratio more robust.
- Better getting of the image height and width.
Props gcorne, see #27366
Built from https://develop.svn.wordpress.org/trunk@27942


git-svn-id: http://core.svn.wordpress.org/trunk@27772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-04 01:49:15 +00:00
Andrew Ozz a2e1d9f4c8 Edit Image modal:
- Fix issue with adding a link to an image that didn't have one previously.
- Adjust the look-and-feel of the advance options toggle so that it becomes a section heading that can be open/closed.
- Add a Custom Size option to the size drop-down that reveals fields for soft-resizing the image inserted into the post.
Props gcorne, and props sdasse for the design help, see #27366
Built from https://develop.svn.wordpress.org/trunk@27918


git-svn-id: http://core.svn.wordpress.org/trunk@27748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-03 03:21:15 +00:00
Andrew Nacin c4aab42b4b Media manager: Avoid a blank modal when an invalid image size class is set on the image.
props gcorne.
fixes #24409.

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


git-svn-id: http://core.svn.wordpress.org/trunk@27526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-24 19:01:15 +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 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 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 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
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 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
Scott Taylor 0347a8944e Update the versions of several `devDependencies` in `package.json`. `grunt-cssjanus` has been updated to `0.2.2`, we no longer need the fork. Run `npm install` to receive updates for `node_modules` in the project root.
Props yoavf, TobiasBg.
Fixes #26073.


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


git-svn-id: http://core.svn.wordpress.org/trunk@26927 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-29 04:43:30 +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
Andrew Ozz 33eedc570b Introduce Edit Image (single mode) in the media modal and use it to edit images inserted in the editor. Adds new feature: replace an image in the editor. Props gcorne, see #24409.
Built from https://develop.svn.wordpress.org/trunk@27050


git-svn-id: http://core.svn.wordpress.org/trunk@26924 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-28 21:17:12 +00:00
Andrew Nacin d8564963b8 Temporarily remove CSS preprocessing until we can get our Ruby dependency sorted out.
see #25858, #22862.

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


git-svn-id: http://core.svn.wordpress.org/trunk@26054 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-13 21:45:11 +00:00
Helen Hou-Sandí 437caa9972 Turns out it helps if you add those pesky Sass files if you're going to use a preprocessor. see #25858.
Built from https://develop.svn.wordpress.org/trunk@26139


git-svn-id: http://core.svn.wordpress.org/trunk@26050 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-13 19:54:14 +00:00
Andrew Nacin de7977d66c Move upgrader_process_complete for core to its proper place in Core_Upgrader.
This means it will be firing as a JS redirect is taking place if the update is from pre-3.4. Acceptable.

props dd32.
fixes #25659.

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


git-svn-id: http://core.svn.wordpress.org/trunk@25861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:58:23 +00:00
Drew Jaynes 4d1482cd0d Inline documentation for the `WP_Date_Query` class in wp-includes/date.php.
- Adds a complete hash notation for the `WP_Date_Query` arguments array.
- Adds missing documentation for the `date_query_valid_columns` and `get_date_sql` filter hooks.

Props aeg0125 for the incremental patches.
Fixes #25552.

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


git-svn-id: http://core.svn.wordpress.org/trunk@25860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:58:12 +00:00
Sergey Biryukov 6509e4e686 Declare args as a local variable. props greuben. fixes #25078.
Built from https://develop.svn.wordpress.org/trunk@25080


git-svn-id: http://core.svn.wordpress.org/trunk@25065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-22 02:11:08 +00:00
Bot (Assets) 6e798324e9 New develop.svn.wordpress.org repository based on the old core.svn repository.
* All WordPress files move to a src/ directory.
 * New task runner (Grunt), configured to copy a built WordPress to build/.
 * svn:ignore and .gitignore for Gruntfile.js, wp-config.php, and node.js.
 * Remove Akismet external from develop.svn. Still exists in core.svn.
 * Drop minified files from src/. The build process will now generate these.

props koop.
see #24976.

and see http://wp.me/p2AvED-1AI.


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


git-svn-id: http://core.svn.wordpress.org/trunk@25001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-07 05:49:02 +00:00
Bot (Assets) 4cd737c99d Compress scripts/styles: 3.6-RC2-24801.
git-svn-id: http://core.svn.wordpress.org/trunk@24801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-27 08:58:53 +00:00
Bot (Assets) 80158fee6c Compress scripts/styles: 3.6-RC1-24773.
git-svn-id: http://core.svn.wordpress.org/trunk@24773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-22 22:58:51 +00:00
Bot (Assets) 323c50372d Compress scripts/styles: 3.6-beta4-24653.
git-svn-id: http://core.svn.wordpress.org/trunk@24653 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-11 00:22:41 +00:00
Bot (Assets) 86dd4f184c Compress scripts/styles: 3.6-beta3-24372.
git-svn-id: http://core.svn.wordpress.org/trunk@24372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-05-26 08:58:56 +00:00
Bot (Assets) e1617a41e8 Compress scripts/styles: 3.6-beta3-24369.
git-svn-id: http://core.svn.wordpress.org/trunk@24370 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-05-26 06:58:58 +00:00
Bot (Assets) 5e6ce84da3 Compress scripts/styles: 3.6-beta1-24138.
git-svn-id: http://core.svn.wordpress.org/trunk@24138 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-04-29 17:46:49 +00:00
Bot (Assets) 0d19695389 Compress scripts/styles: 3.6-alpha-23894.
git-svn-id: http://core.svn.wordpress.org/trunk@23894 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-04-03 18:58:47 +00:00
Bot (Assets) 5c6f23dcef Compress scripts/styles: 3.6-alpha-23596.
git-svn-id: http://core.svn.wordpress.org/trunk@23596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-03-03 22:58:36 +00:00
Bot (Assets) dd4f8b9273 Compress scripts/styles: 3.5-RC3-23093.
git-svn-id: http://core.svn.wordpress.org/trunk@23093 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-12-06 05:26:39 +00:00
Bot (Assets) 1077e9ce03 Compress scripts/styles: 3.5-RC3-23059.
git-svn-id: http://core.svn.wordpress.org/trunk@23059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-12-05 02:58:34 +00:00
Bot (Assets) d3b24a0e15 Compress scripts/styles: 3.5-RC3-23047. TinyMCE updated.
git-svn-id: http://core.svn.wordpress.org/trunk@23047 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-12-04 22:44:27 +00:00
Bot (Assets) 392ade0221 Compress scripts/styles: 3.5-RC3-23035.
git-svn-id: http://core.svn.wordpress.org/trunk@23035 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-12-04 18:58:30 +00:00