Commit Graph

181 Commits

Author SHA1 Message Date
Scott Taylor
527b5b1405 In WP_Posts_List_Table::column_date(), the order of status and time should be switched. It doesn't make sense for phrases like "Last Modified" to occur AFTER the date. Should be before.
Props johnbillion, wonderboymusic.
Fixes #18641. 

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


git-svn-id: http://core.svn.wordpress.org/trunk@33974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-10 17:43:24 +00:00
Scott Taylor
c2a0336d22 Instead of [33713], allow WP_Posts_List_Table::get_bulk_actions() to check edit_posts AND delete_posts.
Props DeBAAT.
Fixes #29789.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33701 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 20:12:22 +00:00
Drew Jaynes
e8283a6f88 Docs: The type for the $t_time parameter in the post_date_column_time filter docs should be string, not array.
Props jjeaton
Fixes #33540.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33699 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 17:15:21 +00:00
Scott Taylor
b1c00f2653 Posts List Table:
Don't show bulk actions if the user can't edit posts.

Props DrewAPicture.
Fixes #29789.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33680 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-23 16:28:28 +00:00
Drew Jaynes
54b2e39fdd Docs: Add a changelog entry for the $post_type parameter added to the restrict_manage_posts hook in [33644].
Props pavelevap
Fixes #17891.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33658 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-21 16:12:25 +00:00
Scott Taylor
4254f22c2d In WP_Posts_List_Table::inline_edit(), check that $post_formats[0] is an array before traversing.
Props DrewAPicture.
Fixes #33025.


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


git-svn-id: http://core.svn.wordpress.org/trunk@33634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-20 20:19:25 +00:00
Scott Taylor
4694c477d3 Custom Post Types:
* Introduce `is_post_type_viewable( $post_type_object )`
* Separate the HTML bits from the translatable bits in the `post` messages array in `edit-form-advanced.php`
* Don't show certain UI pieces when a post is not viewable on the front end

When a custom post type item is not viewable on the front end, we don't want to show links to View it (on the front end) all over the admin. We also want to hide the Preview link, et al. We also want our admin messages to not contain said links.

Custom post types with `public_queryable` set to `false` are not viewable on the front end. 
`'page'` is viewable on the front end, but `'page'` is a `_builtin` type, and `public_queryable` is set to `false` when it is registered - see `WP::parse_request()` for when `public_queryable` gets used.

This is confusing, but also somewhat straightforward: to determine if a post type is viewable on the front end, we can check one way for `_builtin => true` and another way for `_builtin => false`:

`$post_type->publicly_queryable || ( $post_type->_builtin && $post_type->public )`

If a post type is `publicly_queryable`, it's viewable. If that value is `false`, it is viewable if it's a `_builtin` type that is also `public`.

I am in search of edge cases, so this shall land.

Props wonderboymusic, DrewAPicture.
See #17609.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-20 19:40:25 +00:00
Scott Taylor
3923017f82 The 'restrict_manage_posts' hook currently fires on the Post and Media list tables, but is passed zero arguments. Pass $post_type.
Props sunnyratilal, scribu.
Fixes #17891.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-19 06:23:25 +00:00
Scott Taylor
4d34e37311 List Tables:
* In `->handle_row_actions()`, bail immediately if `$primary` and `$column_name` do not match. Saves us a nesting level and avoids declaring code that is unusable.
* In `WP_List_Table::single_row_columns()`, allow `_column_{$name}` to be called dynamically by core to avoid having to override the entirety of `->single_row_columns()` in `WP_MS_Users_List_Table` and `WP_Posts_List_Table`
* In `WP_MS_Sites_List_Table`, `id` is not a column.

Props wonderboymusic, paulwilde.
Fixes #29881.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33242 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-14 17:47:24 +00:00
Helen Hou-Sandí
4182df24f8 List tables: Even more robust fallback for the primary column.
Since `WP_List_Table::get_default_primary_column()` can be overridden in a subclass and columns can be further filtered, it is possible to end up with a primary column that no longer exists. This is particularly evident in list tables for custom post types that have been altered via filter.

props ocean90.
fixes #32996.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33238 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-14 16:18:25 +00:00
Drew Jaynes
b2cc4de9b2 Add missing summaries, @access tags, and some parameter descriptions to methods added to WP_Posts_List_Table in 4.3.
See [32740]. See #32891.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33169 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 17:49:25 +00:00
Helen Hou-Sandí
9c3bc85649 Ensure error messages look like, well, errors.
props obenland, rachelbaker.
fixes #32475.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33088 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-07 23:11:24 +00:00
Helen Hou-Sandí
8eb7f71e6b List tables: A better responsive view.
Instead of truncating columns, the data that's already in the markup can now be toggled into view. Only seems appropriate to celebrate four years of contributing by finally doing the first thing I ever mocked up.

Known issues / concerns:
* Custom list tables that don't define a primary column will show nothing at all. These are not extremely common, as `WP_List_Table` isn't really recommended for plugin consumption, but it happens. We need to come up with some kind of fallback.
* Some visual elements, particularly whitespace, could use refining.
* Needs a11y review.
* Touch performance on iOS feels sluggish - is there anything we can do about that?
* Would this be better accordion-style (only one expanded at a time)?
* Is `wp_strip_all_tags()` good enough for column titles that have HTML in them? It's essentially a workaround for the fact that core's comments column does that for the icon, which maybe it shouldn't. Perhaps worth another ticket, as a markup change would be fairly independent.
* Visual hierarchy is not great when expanded (also worthy of another ticket).
* Quick edit now becomes noticeably more annoying to cancel out of, as you have to scroll all the way down and you lose your position from before it was opened. Again, worthy of another ticket.

props Michael Arestad, helen.
see #32395.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32987 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-01 01:31:25 +00:00
Scott Taylor
587c570efa After [32796], improve the accessibility and markup for instances of touch_time().
Props rianrietveld, afercia.
Fixes #31714.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32916 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-25 19:30:25 +00:00
John Blackbourn
b5973e92ec Introduce a no_terms label for taxonomies. This label is used when indicating that there are no terms in the given taxonomy associated with an object.
Fixes #32150
Props afercia

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


git-svn-id: http://core.svn.wordpress.org/trunk@32904 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-25 00:16:27 +00:00
Scott Taylor
b8f49cebee List table views: fix missing current class for "All" when logged in as an author.
Props afercia.
Fixes #32015.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-22 20:39:27 +00:00
Scott Taylor
86beb35f6d Use <button> instead of <a> for non-link links in Quick Edit.
Props afercia.
Fixes #32213.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32840 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-19 21:42:27 +00:00
Scott Taylor
b8eb353590 In WP_Posts_List_Table, move the <th> markup out of ->column_cb().
See #29881, [32740].

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


git-svn-id: http://core.svn.wordpress.org/trunk@32723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-13 15:14:24 +00:00
Scott Taylor
da0400e273 In WP_Posts_List_Table::column_title(), use is_post_type_hierarchical() instead of $this->hierarchical_display in the logic to determine whether the_excerpt() should be called.
Fixes #32187.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-13 14:42:26 +00:00
Scott Taylor
c11e433858 After [32740], in WP_Posts_List_Table::single_row() - $lock_holder is checked but unused, so the call to get_userdata() is unnecessary.
See #29881.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32713 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-12 20:48:26 +00:00
Scott Taylor
c1c7a7c14c After [32740], correct doc block typo.
See #29881.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-12 20:29:26 +00:00
Scott Taylor
3f4cadf4aa Override ->single_row_columns() in WP_Posts_List_Table.
Break apart the giant `switch` statement in `->single_row()` into `column_{$column_name}` methods.
To maintain the `->single_row_columns( $item )` interface, add a property, `$current_level`, to allow access to `$level`.

This list table class is now easier to subclass.

Props joehoyle, wonderboymusic.
See #29881.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-12 20:18:24 +00:00
Scott Taylor
da4c3d0fe4 In WP_Posts_List_Table::single_row():
* `get_the_terms()` can return `WP_Error`, so its return value should be checked before traversing.
* Correct the `@param` doc blocks

See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-12 18:50:25 +00:00
Konstantin Obenland
cb39d03501 Improve non-visual feedback for list table items without terms.
Props karpstrucking, afercia.
Fixes #32150.


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


git-svn-id: http://core.svn.wordpress.org/trunk@32695 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-11 09:28:31 +00:00
Helen Hou-Sandí
c87224eaf6 List tables: Use a class instead of inline styles for hidden columns.
fixes #32608.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32694 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-10 19:47:27 +00:00
Helen Hou-Sandí
3562ac028d List tables: Consolidate <td> output for posts.
see #25408.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-10 14:01:28 +00:00
Drew Jaynes
a69f867738 Fix syntax and add missing return descriptions for inline documentation introduced in [32644] for WP_Posts_List_Table.
See #25408. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32638 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-31 01:42:25 +00:00
Scott Taylor
6a08b00632 Add @access annotations to methods that have no doc block in wp-admin/includes/*.
Makes it easier to search for no doc blocks via `}[\n\t\r ]+(protected|private|public)`.

See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 21:32:24 +00:00
Scott Taylor
c6a4512b1b Add missing doc blocks to wp-admin/includes/*.
Fix some egregious uses of tabbing.
Some functions can simply return `apply_filters(...)` instead of setting a variable that is immediately returned.

See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 20:17:26 +00:00
Helen Hou-Sandí
4c0c7fd7ba List tables: introduce the concept of a "primary" column.
This becomes the column that contains the row actions, and allows for a more flexibility, particularly with custom post types and list tables. To (re)define the primary column, use the `list_table_primary_column` filter, which receives the column name and the screen ID as arguments.

props stephdau, DaveAl, jesin.
see #25408.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32614 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 02:41:25 +00:00
Scott Taylor
b56b9b3e5c Add @global annotations for wp-admin/*.
See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-28 21:41:30 +00:00
Sergey Biryukov
ed0da72d97 Replace echo __() with _e().
props marsjaninzmarsa.
fixes #32239.
Built from https://develop.svn.wordpress.org/trunk@32333


git-svn-id: http://core.svn.wordpress.org/trunk@32304 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-03 16:18:28 +00:00
Sergey Biryukov
aaafb3113a Bulk Edit: Properly associate the Format select with its label.
props afercia.
fixes #32210.
Built from https://develop.svn.wordpress.org/trunk@32329


git-svn-id: http://core.svn.wordpress.org/trunk@32300 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-30 16:04:24 +00:00
Drew Jaynes
0306f2c011 Fix filter doc vernacular for the quick_edit_show_taxonomy filter.
See [31308]. See #31888.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-04 16:08:26 +00:00
Drew Jaynes
4239756a47 Fix syntax for the $to_display parameter description in the DocBlock for WP_Posts_List_Table->_page_rows().
See [31730]. See #31888.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31989 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-04 16:04:28 +00:00
Drew Jaynes
8a3b21aad5 Add a return description to the DocBlock for WP_Posts_List_Table->is_base_request().
See [31828]. See #31888.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31988 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-04 16:01:27 +00:00
Scott Taylor
62279ae07d In WP_Posts_List_Table::get_views(), don't add the current class to the all status link if ->user_posts_count has a value, which triggers the additional mine status.
See [31828].
Fixes #24869.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-01 16:17:28 +00:00
Dominik Schilling
51854c53b4 Improve alignment of labels and inputs in Quick Edit.
props mattheu, valendesigns.
fixes #31408.
Built from https://develop.svn.wordpress.org/trunk@31890


git-svn-id: http://core.svn.wordpress.org/trunk@31869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-25 22:25:26 +00:00
Dion Hulse
cc903c3422 Remove ambiguity in the time display format in core, switches to using 24hr notation where am/pm isn't specified.
* `H:i - 09:54`
* `g:i a - 9:54 am`
* `F j, Y - January 3, 2015`

These shouldn't be used without a/A (am/AM)
* `h:i - 01:23`
* `G:i - 1:23`

Props iseulde. Fixes #31121

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


git-svn-id: http://core.svn.wordpress.org/trunk@31841 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-23 02:14:27 +00:00
Sergey Biryukov
e838ab315d After [31730], replace one more instance of array_shift() with reset() for better performance.
see #31259, #15459.
Built from https://develop.svn.wordpress.org/trunk@31841


git-svn-id: http://core.svn.wordpress.org/trunk@31823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-20 01:57:27 +00:00
Scott Taylor
55ae3f9ea0 Add WP_Posts_List_Table::is_base_request() to determine if the current "view" is the "All" (default) view.
Fixes #24869.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-19 02:26:26 +00:00
John Blackbourn
bb99536bf5 Introduce a new algorithm for displaying a hierarchical list of post objects in the WP_Posts_List_Table. This reduces processing time, reduces database queries, and substantially reduces memory use on sites with a high number of Pages.
Props nofearinc, rodrigosprimo, nacin, johnbillion.
Fixes #15459

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


git-svn-id: http://core.svn.wordpress.org/trunk@31711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-11 20:46:27 +00:00
Andrew Ozz
19dbf7b998 Improve table footer tab sequence by moving <tfoot> after <tbody>. Props afercia, rianrietveld, DrewAPicture. Fixes #30914.
Built from https://develop.svn.wordpress.org/trunk@31513


git-svn-id: http://core.svn.wordpress.org/trunk@31494 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-22 21:48:26 +00:00
Helen Hou-Sandí
62e65c3a35 Accessibility: remove remaining instances of accesskey.
It is a poorly implemented browser feature, not particularly discoverable, and causes more problems than it helps solve.

props afercia.
fixes #29715.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-04 03:46:24 +00:00
Boone Gorges
e4f8d5e0bc Fix 'quick_edit_show_taxonomy' filter so that can properly be used for overrides in all cases.
See #26948.
Built from https://develop.svn.wordpress.org/trunk@31308


git-svn-id: http://core.svn.wordpress.org/trunk@31289 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-30 19:29:22 +00:00
Boone Gorges
abce542e5f Introduce 'show_in_quick_edit' parameter for register_taxonomy().
Setting 'show_in_quick_edit' to false when registering a custom taxonomy will
hide the taxonomy when editing posts using Quick Edit.

The new 'quick_edit_show_taxonomy' filter allows this behavior to be filtered
on a finer scale, as when you want a given taxonomy to be hidden for one post
type but not for others.

Props hlashbrooke.
Fixes #26948.
Built from https://develop.svn.wordpress.org/trunk@31307


git-svn-id: http://core.svn.wordpress.org/trunk@31288 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-30 19:18:23 +00:00
Scott Taylor
02a1f35ac8 Fix some internal types that are passed to functions to avoid changing the acceptable types passed as arguments to those functions:
* In `WP_Importer->is_user_over_quota()`, the default value for the first argument for `upload_is_user_over_quota()` is `true`. Don't bother passing `1`.
* When calling `submit_button()` with no `$name`, pass empty string instead of `false`.
* The default value for the 2nd argument to `get_edit_post_link()` is `'display'`. Because PHP is PHP, passing `true` is the same as passing `'display'` or nothing. Don't bother passing `true`. 
* In `WP_User_Meta_Session_Tokens::drop_sessions()`, pass `0` instead of `false` to `delete_metadata()` as the value for `$object_id`, which expects an int. 

See #30799.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31201 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-16 22:51:21 +00:00
Scott Taylor
7f8b548df1 In HTML5, the action attribute is no longer required. Remove this attribute when empty.
The admin HTML is served with the HTML5 doctype.

"The action and formaction content attributes, if specified, must have a value that is a valid non-empty URL potentially surrounded by spaces." 
http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-action

Props voldemortensen.
Fixes #30126.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31181 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-16 04:16:24 +00:00
Helen Hou-Sandí
62a197d6bf List tables: Use CSS :nth-child() selectors for zebra striping.
Note that this does not fix issues related to comment quick edit. Internal linking also continues to use the `.alternate` class for now. IE8 and below gracefully degrade by not having zebra striping.

There is some hoop jumping with adding an extra table row to maintain zebra striping during quick edit. Documenting that here for future reference; it is also in the inline documentation.

fixes #30981 and #26060. see #25060.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31162 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-14 22:14:22 +00:00
Scott Taylor
194932fd6b Add a private field to WP_Posts_List_Table, $is_trash.
See #30891.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31146 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-12 16:22:22 +00:00