Commit Graph

29108 Commits

Author SHA1 Message Date
Boone Gorges
1101444648 Improve 'orderby' syntax for WP_User_Query.
This changeset ports a number of 'orderby' features from `WP_Query` and
`WP_Comment_Query`:

* Allow multiple 'orderby' values to be passed as a space-separated list.
* Allow multiple 'orderby' values to be passed as a flat array.
* Allow multi-dimensional 'orderby', with orderby fields as array keys and ASC/DESC as the corresponding values.

See #31265.
Built from https://develop.svn.wordpress.org/trunk@31663


git-svn-id: http://core.svn.wordpress.org/trunk@31644 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 16:06:27 +00:00
Boone Gorges
09a9ce9e0a Tests for some existing 'orderby' functionality in WP_*_Query classes.
* In `WP_Query` and `WP_Comment_Query`, ensure that 'orderby' can parse multiple values for 'orderby' when passed as a space-separated string.
* In `WP_User_Query`, ensure that "shorthand" orderbys (like 'login' and 'name') are converted to their full versions (like 'user_login' and 'display_name').

See #31265.
Built from https://develop.svn.wordpress.org/trunk@31662


git-svn-id: http://core.svn.wordpress.org/trunk@31643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 15:45:31 +00:00
Dominik Schilling
08f0376f91 Customizer: Add audio/video previews for upload controls.
props celloexpressions, Fab1en, wonderboymusic.
fixes #30850.
Built from https://develop.svn.wordpress.org/trunk@31661


git-svn-id: http://core.svn.wordpress.org/trunk@31642 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 11:06:29 +00:00
Drew Jaynes
b1a59e9d30 Add a missing @since 4.2.0 tag to the DocBlock for wp_attachment_is().
See #25275.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31641 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 07:12:28 +00:00
Drew Jaynes
b84904051b Better document parameters and the return for the newly-introduced wp_attachment_is().
Also adds a changelog entry to the DocBlock for `wp_attachment_is_image()` to denote that it serves as a wrapper for `wp_attachment_is()` as of 4.2.0.

See [31645]. See #25275.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31640 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 07:09:28 +00:00
Jeremy Felt
80d13281ed Return HTTP status code 403 in network admin when access is forbidden.
When the error message "You do not have permission to access this page" is used in network admin screens, return an HTTP status code of 403 to match. Previously: [30356] and [31300].

Props yo-l1982.

Fixes #31422.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 06:00:28 +00:00
Jeremy Felt
3c4b95c1e3 Return HTTP status code 500 by default in ms_not_installed()
In admin views, specify a response code of 500 when using `wp_die()` to show an expanded message for a broken or missing multisite installation.

On front end views, use `dead_db()` rather than `die()` to generate the generic "Error establishing a database connection" message. `dead_db()` sets a status code of 500 by default and allows for the override of this generic error with a `db-error.php` template.

Props craig-ralston, jeremyfelt.

Fixes #30002.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31638 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 05:35:26 +00:00
Jeremy Felt
63ceacb67a Improve experience when deleting users from a multisite network.
When deleting a user who is not associated with any sites, the current messaging can be confusing as only users associated with at least one site actually appear on the confirmation page for deletion.

This experience can be improved by showing all users being deleted as well as their current site associations.

* If an empty array of users is passed, don't attempt to confirm deletion.
* If one user is passed, show a message crafted for a user of one.
* If multiple users are passed, show a message crafted for many.
* Show the pending results of all users to be deleted.
* Update messaging around the deletion/confirmation process to be less misleading.

Props Idealien, HarishChaudhari, DrewAPicture.

Fixes #18132.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31637 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 04:40:28 +00:00
Andrew Ozz
be207e6550 PressThis: make the Preview button "subtle".
See #31458.
Built from https://develop.svn.wordpress.org/trunk@31655


git-svn-id: http://core.svn.wordpress.org/trunk@31636 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 01:50:26 +00:00
Andrew Ozz
9716d171c7 PressThis: add preview functionality. Opens the preview in a new window or a tab next to the source tab.
Fixes #31458.
Built from https://develop.svn.wordpress.org/trunk@31654


git-svn-id: http://core.svn.wordpress.org/trunk@31635 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 01:17:26 +00:00
Boone Gorges
b421255fc8 When passing $full to get_posts_by_author_sql(), make sure a 'post_type' clause is included in results.
This change makes the 'post_type' clause in `wp_list_authors()` redundant, so
we remove it. Third-party plugins using `get_posts_by_author_sql()` may have
similarly redundant clauses, but this won't change the results returned by the
SQL queries.

Also adds unit tests for `get_posts_by_author_sql()`.

Props pbearne.
Fixes #30354.
Built from https://develop.svn.wordpress.org/trunk@31653


git-svn-id: http://core.svn.wordpress.org/trunk@31634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 01:15:28 +00:00
Drew Jaynes
6486a233c0 Remove a duplicate mention of the default value for the $number argument in get_terms().
Props iandunn.
Fixes #31526.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-07 01:05:26 +00:00
Andrew Ozz
a27967aa05 PressThis:
- Close the sidebar on moving the focus outside of it (by clicking or by "tabbing").
- Fix a (weird) structural CSS problem where clicks go through the sidebar when it is open.
- Clean up the JS a bit.
Fixes #31457.
Built from https://develop.svn.wordpress.org/trunk@31651


git-svn-id: http://core.svn.wordpress.org/trunk@31632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 22:57:26 +00:00
Scott Taylor
47efbd9dcb Update NPM Grunt packages: compress, concat, copy, imagemin and uglify
Props netweb.
Fixes #31489.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31631 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 21:15:37 +00:00
Scott Taylor
ae90e6a536 Update grunt-contrib-jshint to 0.11.0
Props netweb.
Fixes #31488.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 21:08:29 +00:00
Scott Taylor
6dd747f27c Update grunt-sass to 0.18.0.
Props netweb.
Fixes #31343.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31629 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 21:05:46 +00:00
Scott Taylor
70aec9e406 Add unit tests for wp_attachment_is(), checks the whitelist and arbitrary extension.
See #25275.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31628 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 20:38:26 +00:00
Scott Taylor
aabe0bcc2c After [31645], for the default case, return the result of checking the extension against the passed type.
See #25275.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31627 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 20:28:26 +00:00
Scott Taylor
8f0b626d13 Introduce a function, wp_attachment_is( $type, $post = 0 ), to collapse the logic for determining whether an attachment is an image, audio, or video.
This is admittedly a first pass. There needs to be a generic handler for when any other type is passed, but for now it accepts the whitelist.

See #25275.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 20:26:26 +00:00
Lance Willett
04ff214073 Twenty Fifteen: add ARIA attributes to menu toggle.
See #31527, props davidakennedy, lance.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31625 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 17:34:26 +00:00
Scott Taylor
38df7e5048 For our MediaElement 2.16.4 build + monkey patches, also add from the illustrious dd32:
https://github.com/johndyer/mediaelement/pull/1423

Props dd32.
See [31444], #31541.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 15:47:26 +00:00
Helen Hou-Sandí
b6393c9d77 Media: UI tweaks for Insert from URL.
"Title" field is now labeled as "Link Text", to reflect how it's actually used. It's also hidden whenever the embed is updating, to make it clearer that something is happening. Embed dimension fields are shown below the preview, much like image property fields are shown below.

fixes #29476, see #31139.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31623 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 15:03:25 +00:00
Helen Hou-Sandí
7ce4256d4d Comments: Show more identifying information for moderation and editing.
Attempting to moderate comments without context about the post is more difficult than necessary. The comment moderation screen you are sent to via email link was also in need of some better visual treatment.

props thaicloud, seanchayes, adamsilverstein.
see #23988.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31622 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 14:06:24 +00:00
Boone Gorges
305cf8b95e Allow $autoload setting to be changed for existing options using update_option().
[31628] made it possible to pass an `$autoload` param to `update_option()` that
applies when the option does not yet exist in the database. The current
changeset introduces parity for existing options: the `$autoload` setting
for existing options can be changed via the `$autoload` parameter. For internal
simplicity, `$autoload` is ignored for existing options when `$value` is not
also changed.

This changeset also moves `update_option()` tests into their own class.

Props dd32.
Fixes #26394.
Built from https://develop.svn.wordpress.org/trunk@31640


git-svn-id: http://core.svn.wordpress.org/trunk@31621 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 13:57:26 +00:00
Boone Gorges
3acf36fe48 Ensure that an array of object IDs is passed to the 'get_object_terms' filter.
Originally introduced in [31581].

Props doublesharp.
Fixes #18828.
Built from https://develop.svn.wordpress.org/trunk@31639


git-svn-id: http://core.svn.wordpress.org/trunk@31620 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 13:18:26 +00:00
Drew Jaynes
68bbc0e43d Correct the $number argument description in get_terms() to reflect that an empty string or 0 will return all possible results, not -1.
Previously, it was noted that -1 would return all possible results. However, as the value of `$number` is passed through `absint()`, -1 would actually be converted to 1, thereby producing unexpected results.

Props iandunn.
Fixes #31526.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 08:05:25 +00:00
Andrew Ozz
5abac389fa PressThis: when server-side parsing, filter small images by the width and height attributes if set.
See #31373.
Built from https://develop.svn.wordpress.org/trunk@31637


git-svn-id: http://core.svn.wordpress.org/trunk@31618 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 02:03:27 +00:00
Andrew Ozz
0ba8fe0132 PressThis: fix toggling of aria-expanded attribute.
Props afercia, see #31373.
Built from https://develop.svn.wordpress.org/trunk@31636


git-svn-id: http://core.svn.wordpress.org/trunk@31617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 01:51:25 +00:00
Andrew Ozz
bcad925af4 PressThis:
- Fix error when checking for empty array keys.
- Add better DailyMotion embed support.
Props stephdau, see #31373.
Built from https://develop.svn.wordpress.org/trunk@31635


git-svn-id: http://core.svn.wordpress.org/trunk@31616 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 01:17:24 +00:00
Scott Taylor
e4952687f6 Audio previews need top margin on Edit Media screen.
Fixes #31524.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 22:45:26 +00:00
Scott Taylor
b8341a472d When adding post_type to $sendback in wp-admin/post.php, use add_query_arg() instead of string concatenation.
Props podpirate.
Fixes #31492.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31614 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 22:31:24 +00:00
Scott Taylor
ba977671b6 In the modal state for Embed previews, only show the Title field when the preview fails.
Props johnbillion, wonderboymusic.
See #29476.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 21:03:25 +00:00
Scott Taylor
c06316b7ab Whitespace after [31630].
Built from https://develop.svn.wordpress.org/trunk@31631


git-svn-id: http://core.svn.wordpress.org/trunk@31612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 20:14:24 +00:00
Scott Taylor
b05ff18586 Add oEmbed support for Tumblr.
Props elliottcarlson.
See #31180.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 20:13:25 +00:00
Scott Taylor
e1e8782304 Use browserify's watch mechanism in tandem with grunt watch. Makes building media bundles about 10 (million) times faster.
Make the `browserify` config more dynamic to make future additions easier and to ensure proper use of `SOURCE_DIR`.

Props iseulde, wonderboymusic.
See #28510.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 19:49:26 +00:00
Boone Gorges
11ec50e453 Introduce $autoload parameter to update_option().
When creating an option via `add_option()`, the `$autoload` param allows you to
tell WP whether the option should be loaded as part of the 'alloptions' cache
during every pageload. `update_option()`, when used with a non-existent option
calls `add_option()` internally. The new `$autoload` param in `update_option()`
is passed along to `add_option()` in cases where the option does not yet exist.

The associated unit tests are skipped on multisite due to an issue that causes
`WP_INSTALLING` to force cache misses. See #31130.

Props codix, nofearinc, MikeHansenMe.
Fixes #26394.
Built from https://develop.svn.wordpress.org/trunk@31628


git-svn-id: http://core.svn.wordpress.org/trunk@31609 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 19:13:25 +00:00
Scott Taylor
cd49531b14 Ugrade to MediaElement 2.16.4:
https://github.com/johndyer/mediaelement/compare/2.16.2...2.16.4

Includes PRs from WordPress folk:
1a74854abf
f438256f5c
8b9856accd

Monkey-patch MediaElement to restore H264 support to Chromium.

Documented here:
https://core.trac.wordpress.org/ticket/31541#comment:1

See #31541.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31608 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 16:54:26 +00:00
Scott Taylor
da7359b060 After [31620], when checking for HTTP URLs, make sure we are checking the shortcode body instead of an indexed attribute.
See #31139.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31607 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 16:26:25 +00:00
Scott Taylor
ae85d506e6 When editing/viewing the details of a [video] shortcode that has Vimeo as its source, and Froogaloop has not already been lazy-loaded, check the details of the state's model for the video src, instead of the HTML element.
See #29267.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31606 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 16:15:25 +00:00
Scott Taylor
f9c138b4c4 detached affects the wp() call for the media list table, so switch our new $_GET key to detach.
See #6820.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 15:59:27 +00:00
Boone Gorges
ec26a08d3c Pinking shears in unit test files.
Built from https://develop.svn.wordpress.org/trunk@31623


git-svn-id: http://core.svn.wordpress.org/trunk@31604 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 13:15:53 +00:00
Boone Gorges
55e32049e3 In PHPUnit test classes, parent::tearDown() should be the last thing done in tearDown() methods.
`WP_UnitTestCase::tearDown()` restores the test environment to the default
conditions, including rolling back the MySQL transaction that the test takes
place in, resetting globals, and unhooking test-specific filters. As such, all
teardown routines for specific tests should happen before the parent class's
`tearDown()` method is called. Failure to do so can cause database locks on
certain configurations, among other problems.

See #31537.
Built from https://develop.svn.wordpress.org/trunk@31622


git-svn-id: http://core.svn.wordpress.org/trunk@31603 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 13:15:25 +00:00
Andrew Ozz
36610e072b TinyMCE wpView: revert decoding of HTML entities. Doesn't work in old IE and needs to be more selective. Keep the change from .html() to .text() when getting the content of a node. See #31412.
Built from https://develop.svn.wordpress.org/trunk@31621


git-svn-id: http://core.svn.wordpress.org/trunk@31602 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 12:36:28 +00:00
Scott Taylor
cc953717b7 Allow inline editing of width and height parameters while previewing an embed in the media modal:
* Use `wp.shortcode()` instead of manually constructing a shortcode in `views/embed/link`
* Allow a URL to transition to a shortcode (and vice versa) when returning an embed to TinyMCE
* In `WP_Embed`, store the last URL and last set of attributes requested in class properties
* `wp_ajax_parse_embed()`, allow `[embed]`s to have attributes. Return `attr` in the response.

This is a first pass to allow broad testing with recent MCE view changes. 

See #31139.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31601 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 06:00:26 +00:00
Scott Taylor
d3471e9850 Allow attachments to be Detached from their parent in media grid and list modes.
See #6820.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31600 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 05:35:28 +00:00
Scott Taylor
0250aebf2a Media modules: set $ to Backbone.$, instead of jQuery, so fewer globals are imported.
See #28510.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31599 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 04:12:26 +00:00
Boone Gorges
34715e3b1a In get_next_comments_link(), ensure proper pagination when no 'cpage' query var is found.
The 'cpage' query var is only set when using `comments_template()` to display
comments. If displaying them in a context where 'cpage' is not yet set, the
default value should be 1, not 0.

Props MomDad, couturefreak.
Fixes #20319.
Built from https://develop.svn.wordpress.org/trunk@31617


git-svn-id: http://core.svn.wordpress.org/trunk@31598 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 03:57:24 +00:00
Scott Taylor
7ba0674183 [31468] reverted this in the 4.1 branch, also reverting in trunk.
See #30725.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31597 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 03:50:28 +00:00
Boone Gorges
b3e11db20b Respect comment_date and comment_date_gmt params in wp_new_comment().
Props solarissmoke, oso96_2000.
Fixes #14279.
Built from https://develop.svn.wordpress.org/trunk@31615


git-svn-id: http://core.svn.wordpress.org/trunk@31596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 03:00:26 +00:00
Boone Gorges
8c48f9400e In wp_get_attachment_url(), convert to HTTPS when possible.
`wp_get_attachment_url()`, via `wp_upload_dir()`, uses 'siteurl' to generate
attachment URLs. When a site is SSL-optional on the front end - ie, 'siteurl'
is non-HTTPS, but SSL is available - a number of situations can arise where
non-HTTPS attachment URLs cause browser mixed-content warnings:

a) SSL is forced in the admin and `wp_get_attachment_url()` is used to generate the `<img>` tag for an inserted image. In these cases, the post content will contain non-HTTPS. Viewing/editing this post in the Dashboard will result in non-HTTPS images being served in an SSL environment.
b) `wp_get_attachment_url()` is used in a theme to generate an `<img>` `src` attribute on a public page. When viewing that page over SSL, the images will have HTTP URLs.

This changeset switches attachment URLs to HTTPS when it's determined that the
host supports SSL. This happens when 'siteurl' is non-SSL, but the current page
request *is* over SSL, and the host of the current request matches the host of
the URL being generated.

Props joemcgill, boonebgorges.
Fixes #15928.
Built from https://develop.svn.wordpress.org/trunk@31614


git-svn-id: http://core.svn.wordpress.org/trunk@31595 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-05 02:39:24 +00:00