Commit Graph

156 Commits

Author SHA1 Message Date
Weston Ruter
e8e5a71a85 Docs: Improve phpdoc for WP_Customize_Manager, WP_Customize_Control, WP_Customize_Setting, and WP_Customize_Selective_Refresh.
Props 4nickpick, sagarprajapati, ketuchetan, BharatKambariya, mrahmadawais, westonruter.
Fixes #39671.

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


git-svn-id: http://core.svn.wordpress.org/trunk@40662 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-05-19 20:25:41 +00:00
Weston Ruter
6b5d960453 Customize: Clean up docs and code style for customize changes in 4.7.
* Adds missing `resolve`/`fail` for promise returned by `loadThemePreview`.
* Adds missing jsdoc blocks and tags.
* Adds missing phpdoc and makes corrections.

See #37770.
Fixes #38908.

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


git-svn-id: http://core.svn.wordpress.org/trunk@39285 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-23 06:05:32 +00:00
Helen Hou-Sandí
f94285d68c Customize: Make "Add New Page" buttons less intrusive.
They now better match the existing add functionality from the category metabox and are better separated from the surrounding inputs. All hail `.button-link`.

fixes #38164. see #35126.

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


git-svn-id: http://core.svn.wordpress.org/trunk@39134 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-10 02:56:30 +00:00
Drew Jaynes
5f4497f0af Docs: Fix multiple trivial typos throughout a variety of core files.
Props ottok.
Fixes #38489.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-31 06:28:32 +00:00
Weston Ruter
a86496aea4 Customize: Improve custom background properties UI.
Introduces new control for managing the background position. Adds control for setting the `background-size`.

Props cdog, celloexpressions, grapplerulrich, MikeHansenMe, FolioVision, afercia, helen, melchoyce, karmatosed, westonruter, Kelderic, sebastian.pisula.
Fixes #22058.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38891 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-26 06:52:29 +00:00
Weston Ruter
02ce8db6de Customize: Add explanatory note for custom_css control via textarea[placeholder] and expose any defined input_attrs on such textarea controls.
Props melchoyce, westonruter, celloexpressions.
See #37439.
Fixes #38493.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38876 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-25 22:52:10 +00:00
Weston Ruter
30a71555cb Customize: Allow page stubs to be created via dropdown-pages controls in the Static Front Page section.
This ability was previously added to nav menus via the available page items panel. The "Add New Page" button only appears when the `allow_addition` control param is supplied as `true`. Code is adapted from the Customize Posts feature plugin.

Props celloexpressions, westonruter.
See #38013, #34923.
Fixes #38164.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38849 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-25 06:31:31 +00:00
Weston Ruter
d84c343cc6 Customize: Let static_front_page section be contextually active based on whether there are any published pages.
If there are no pages when the customizer is opened, the `static_front_page` section will be hidden. As soon as a page is created in the customizer session, the `static_front_page` section will be revealed. Previously the section would not be registered if there were no pages. Page stubs created via nav menus will appear in the `dropdown-pages` controls for `page_for_posts` and `page_on_front`, and such page stubs will thus cause the `static_front_page` section to appear. Plugins that facilitate page creation in the customizer by filtering `get_pages` will also cause the section to appear.

See #34923.
Fixes #38013.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-09-20 00:47:30 +00:00
Scott Taylor
a3ffebce30 Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389.
See #36335.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38411 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-31 16:31:29 +00:00
Scott Taylor
390ceba6c7 Bootstrap: after r38409 and r38410, revert r38402 which reverted r38399.
This fixes the paths in `wp-vendor/` that were including `src`. I want to drop this in so we can find out what else will break.

See #36335.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38352 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-27 22:32:37 +00:00
Dion Hulse
0e31a46161 Bootstrap: Revert [38399] as it's broken /build/ and subsequently core.svn.wordpress.org.
The generated classmaps reference `/src/` files and operates in the assumption that the base directory is one level above `wp-settings.php`, which it isn't after our build processes are run.

See #36335

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


git-svn-id: http://core.svn.wordpress.org/trunk@38343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-27 14:37:32 +00:00
Scott Taylor
6a529648cf Bootstrap: Autoload classes using a Composer-generated PHP 5.2-compatible Autoloader.
* `wp-admin` and `wp-includes` are scanned for classes to autoload
* Several 3rd-party and Ryan McCue-shaped libraries are excluded when the classmap is generated, see `composer.json`: `autoload.exclude-from-classmap`
* `wp-vendor/autoload_52.php` is included at the top of `wp-settings.php` - no changes need to be made to unit tests to include the autoloader
* An avalanche of `require()` and `require_once()` calls that loaded class files have been removed from the codebase.

The following files have been added to `svn:ignore` - they are not 5.2-compatible and fail during pre-commit:
* src/wp-vendor/autoload.php
* src/wp-vendor/composer/autoload_real.php
* src/wp-vendor/composer/autoload_static.php
* src/wp-vendor/composer/ClassLoader.php

We favor these files instead:
* src/wp-vendor/autoload_52.php
* src/wp-vendor/composer/autoload_real_52.php
* src/wp-vendor/composer/ClassLoader52.php

When new PHP classes are added to the codebase, simply run `composer install` or `composer update` from the project root to update the autoloader.

The future is now.

See #36335.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38340 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-27 09:15:29 +00:00
Drew Jaynes
22adda2aa0 Hooks: Standardize naming of dynamic hooks to use interpolation vs concatenation.
Benefits gained in discoverability and self-documentation throughout core trump the negligible performance hit in using interpolation in hook names.

Props ramiy.
See #37748.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38248 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-22 18:25:31 +00:00
Drew Jaynes
e2c18aaf64 Docs: Standardize filter docs in the Customizer classes to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.

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


git-svn-id: http://core.svn.wordpress.org/trunk@37459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 18:10:29 +00:00
Drew Jaynes
fe3b007fdd Docs: Remove inline @see tags from function, class, and method references in inline docs.
Known functions, classes, and methods are now auto-linked in Code Reference pages following #meta1483.

Note: Hook references are still linked via inline `@see` tags due to the unlikelihood of reliably matching for known hooks based on a RegEx pattern.

See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@37308 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-02 04:00:28 +00:00
Drew Jaynes
0055c9746c Docs: Standardize on using :: for Class::method() references in WP_Customize_Control` inline docs.
See #32246. See #meta1483.

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


git-svn-id: http://core.svn.wordpress.org/trunk@37303 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-01 17:28:27 +00:00
Weston Ruter
2214f69e43 Customize: Allow controls to be registered without any associated settings.
* Improves parity between partials and controls. A partial or control can be settingless if instantiated with `settings` param as empty array (otherwise, if null, then the partial/control ID is used). 
* Eliminate need to create dummy settings that serve no purpose except to place a control in the UI.
* Removes dummy settings for `create_new_menu` and `new_menu_name`.
* Introduces `WP_Customize_Control::$capability` and `WP_Customize_Partial::$capability`, and if set checks them in the respective `check_capabilities()` methods.
* Prevents PHP fatal error from happening when non-existing settings are provided to control: "Call to a member function `check_capabilities()` on a non-object".
* Fixes issue where nav menu items and widgets were no longer working with selective refresh because cap check was failing.

See #27355.
Fixes #35926.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36656 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-24 18:28:28 +00:00
Drew Jaynes
23a6ee1af1 Docs: Hash notate properties and defaults for the benefit of $args parameter documentation for WP_Customize_Control::__construct().
See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36079 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-28 20:10:35 +00:00
Scott Taylor
68526a8bf1 Customize: move WP_Customize_Control subclasses to wp-includes/customize, they load in the exact same place.
See #34432.

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


git-svn-id: http://core.svn.wordpress.org/trunk@35353 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-24 18:57:25 +00:00
Andrea Fercia
1e1e7a9fc9 Customizer: Make the widgets "Reorder" and "Add a Widget" buttons... buttons.
For accessibility, UI controls should preferably be native controls. Adds
ARIA attributes and labels to improve accessibility and pair these buttons
with the ones in the Menu Customizer.

Props obenland, TomHarrigan, sanket.parmar, metodiew, afercia.

Fixes #33327.
Built from https://develop.svn.wordpress.org/trunk@35304


git-svn-id: http://core.svn.wordpress.org/trunk@35270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-20 20:15:26 +00:00
Scott Taylor
4f16590e8e Customizer: when available, show the description when rendering the dropdown-pages Control.
Props downstairsdev, MikeHansenMe, _smartik_.
Fixes #31540.

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


git-svn-id: http://core.svn.wordpress.org/trunk@35241 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-20 03:48:26 +00:00
Sergey Biryukov
11def634f6 Customizer: WP_Customize_Cropped_Image_Control should extend WP_Customize_Image_Control, since Site Icon can only an image.
Props paulwilde.
Fixes #34250.
Built from https://develop.svn.wordpress.org/trunk@35018


git-svn-id: http://core.svn.wordpress.org/trunk@34983 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-10 23:25:24 +00:00
Scott Taylor
addb8fe492 Customizer: make "Current header" clickable in the same way that "Background Image" is - will open the media modal.
Props umesh.nevase.
Fixes #33586.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34666 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-29 21:40:24 +00:00
Weston Ruter
208330f2dc Customizer: Defer embedding widget controls to improve DOM performance and initial load time.
The Menu Customizer feature includes a performance technique whereby the controls for nav menu items are only embedded into the DOM once the containing menu section is expanded. This commit implements the same DOM deferral for widgets but goes a step further than just embedding the controls once the widget area's Customizer section is expanded: it also defers the embedding of the widget control's form until the widget is expanded, at which point the `widget-added` event also fires to allow any additional widget initialization to be done. The deferred DOM embedding can speed up initial load time by 10x or more. This DOM deferral also yields a reduction in overall memory usage in the browser process.

Includes changes to `wp_widget_control()` to facilitate separating out the widget form from the surrounding accordion container; also includes unit tests for this previously-untested function. Also included are initial QUnit tests (finally) for widgets in the Customizer.

Fixes #33901.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34527 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-25 21:02:27 +00:00
Scott Taylor
ef87172270 foreach is a statement, not a function.
See #33491.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-25 20:28:22 +00:00
Helen Hou-Sandí
7e2cec4edb Customizer: Rename WP_New_Menu_Customize_Control to WP_Customize_New_Menu_Control for consistency.
props DrewAPicture.
fixes #33324.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33569 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-10 18:06:25 +00:00
Dominik Schilling
a5ed94ab62 Customizer: Add an aria-expanded attribute to Edit menu item toggles.
props afercia.
fixes #33129.
Built from https://develop.svn.wordpress.org/trunk@33483


git-svn-id: http://core.svn.wordpress.org/trunk@33450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-29 09:50:24 +00:00
Dominik Schilling
de86d6b18d Customizer: Add missing text or labels to some nav menu UI controls.
props afercia, celloexpressions, westonruter.
fixes #32715.
Built from https://develop.svn.wordpress.org/trunk@33413


git-svn-id: http://core.svn.wordpress.org/trunk@33381 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-24 20:28:25 +00:00
Weston Ruter
d5ce83c94c Customizer: Introduce customize_nav_menu_available_item_types and customize_nav_menu_available_items filters.
Allows for new available menu item types/objects to be registered in addition to filtering the available items that are returned for each menu item type/object.

Props valendesigns, imath, westonruter.
See #32832.
Fixes #32708.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33338 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-22 20:29:25 +00:00
Konstantin Obenland
146befe7bf Customizer: Add label for menu names when editing a menu.
Props celloexpressions.
Fixes #32726.


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


git-svn-id: http://core.svn.wordpress.org/trunk@33318 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-21 17:02:24 +00:00
Dominik Schilling
4dcfd3ec83 Customizer: Avoid duplicate IDs and remove role presentation from menu items reorder button. Follow-up to [33074].
props afercia.
fixes #32725.
Built from https://develop.svn.wordpress.org/trunk@33339


git-svn-id: http://core.svn.wordpress.org/trunk@33311 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-21 11:37:26 +00:00
Dion Hulse
412013a158 Allow HTML/entities in the Active Theme Name in the themes.php & Customizer templates.
Props iCaleb
Fixes #33036

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


git-svn-id: http://core.svn.wordpress.org/trunk@33299 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-20 01:46:24 +00:00
Weston Ruter
909dde9ce5 Customizer: Move "Menu options" heading outside of a nav menu auto-add control's label.
Standardizes capitalization. Amends [33189].

Props valendesigns.
Fixes #32820.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33289 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-17 22:42:24 +00:00
Konstantin Obenland
2883bbbb68 Customize: Provide a default way to save cropped images.
Allows plugins and themes to use `WP_Customize_Cropped_Image_Control` without
having to define their own way of saving the cropped image.

Props celloexpressions for initial patch.
Fixes #29211.


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


git-svn-id: http://core.svn.wordpress.org/trunk@33252 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-15 19:54:25 +00:00
Drew Jaynes
eb5b64112b Fix missing or inconsistent parameter descriptions for constructors in WP_Customize_Control, WP_Customize_Color_Control, WP_Customize_Media_Control, WP_Customize_Image_Control, WP_Customize_Background_Image_Control, WP_Customize_Site_Icon_Control, WP_Customizer_Header_Image_Control, and WP_Customize_Nav_Menu_Item_Control.
See #32891. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33188 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 20:25:24 +00:00
Drew Jaynes
34f0605186 Fix inline documentation syntax, and/or add missing @access tags for a variety of Customizer subclasses and methods added in 4.3.
See #32891.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33187 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 20:17:25 +00:00
Weston Ruter
ae50d09585 Customizer: Disambiguate a menu's auto-add pages option from preceding menu location checkboxes.
Creates a separate `nav_menu_auto_add` control type following the pattern of the `nav_menu_name` control type.

Props valendesigns.
Fixes #32820.

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


git-svn-id: http://core.svn.wordpress.org/trunk@33161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 08:40:26 +00:00
Dominik Schilling
daa51138fc Customizer: Merge two strings.
see #32576.
Built from https://develop.svn.wordpress.org/trunk@33164


git-svn-id: http://core.svn.wordpress.org/trunk@33136 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-11 20:05:24 +00:00
Konstantin Obenland
58af8a0784 Better context for autofocused elements for screen readers.
Props joedolson for initial patch.
Fixes #30706.


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


git-svn-id: http://core.svn.wordpress.org/trunk@33130 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-10 22:23:24 +00:00
Konstantin Obenland
f29e5044cd Site Icon: Add Customizer UI.
Second part of the Site Icon feature after [32994] introduced it for Settings.

Props celloexpressions.
See #16434.


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


git-svn-id: http://core.svn.wordpress.org/trunk@33126 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-10 21:33:24 +00:00
Sergey Biryukov
fa1b659d29 Merge two class attributes in WP_Customize_Media_Control::content_template() and wp_print_media_templates().
props nicholas_io.
fixes #32896.
Built from https://develop.svn.wordpress.org/trunk@33090


git-svn-id: http://core.svn.wordpress.org/trunk@33061 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-06 14:19:26 +00:00
Dominik Schilling
200463d781 Customizer: Improve descriptive text and focus for menu items reorder button.
props afercia.
fixes #32725.
Built from https://develop.svn.wordpress.org/trunk@33074


git-svn-id: http://core.svn.wordpress.org/trunk@33045 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-03 21:24:25 +00:00
Sergey Biryukov
9e445e3c30 Customizer: Add an aria-label attribute to the Add Items button to improve accessibility.
props afercia.
fixes #32713.
Built from https://develop.svn.wordpress.org/trunk@32981


git-svn-id: http://core.svn.wordpress.org/trunk@32952 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-28 04:28:24 +00:00
Scott Taylor
8b1286417e ob_get_contents() followed by ob_end_clean() can be replaced by ob_get_clean().
See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32936 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-27 01:12:24 +00:00
Scott Taylor
f61501f57f The query-attachments AJAX action immediately errors out if the user doesn't have the upload_files cap. As such, the Customizer shouldn't show buttons that launch the media modal when the user doesn't have the proper permissions to query attachments.
See #32654.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-23 18:20:27 +00:00
Dominik Schilling
095dfe5386 Customizer: Fix live preview for menu item titles.
Show also a default label for menu items without a label which are assigned to a menu. This is currently only supported in the Customizer, see #24146 for nav menus screen.

see #32576.
Built from https://develop.svn.wordpress.org/trunk@32895


git-svn-id: http://core.svn.wordpress.org/trunk@32866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-20 22:33:26 +00:00
Dominik Schilling
759bcdbad1 Customizer: Escape original title of menu items.
see #32576.
Built from https://develop.svn.wordpress.org/trunk@32893


git-svn-id: http://core.svn.wordpress.org/trunk@32864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-20 19:55:25 +00:00
Dominik Schilling
2e8245ba0e Customizer: Use valid markup for menu items.
Replace `<d(l|t)>` with `<div>` for `.menu-item-bar` and `.menu-item-handle`.

see #32724, #32721, #31817.
Built from https://develop.svn.wordpress.org/trunk@32889


git-svn-id: http://core.svn.wordpress.org/trunk@32860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-20 18:47:27 +00:00
Dominik Schilling
4fdc99d2d1 Customizer: Decode HTML entities in the label property of WP_Customize_Media_Control.
fixes #31631.
Built from https://develop.svn.wordpress.org/trunk@32885


git-svn-id: http://core.svn.wordpress.org/trunk@32856 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-20 18:15:26 +00:00
Scott Taylor
a75961da89 Add access modifier to WP_Customize_Nav_Menu_Item_Control::json()
See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-19 21:55:24 +00:00