Commit Graph

91 Commits

Author SHA1 Message Date
omarreiss
bdbaccce37 General: Explicitly assigns all JS globals to the window.
Many variables in the JavaScript were defined in the global scope without being explicitly assigned to the window. When built with Webpack, the code gets encapsulated in anonymous functions and those implicit globals get assigned to the wrong scope. This patch prevents that from happening.

Fixes #44371. See #43731.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-19 13:33:24 +00:00
atimmer
bde558be2f Docs: Add file doc @output annotations.
These annotations make it clear to the reader of a JavaScript source
where the build process outputs to. These annotations can later be
integrated in a webpack configuration. This way there is one source of
truth.

The `build` folder is omitted from the paths, because a single JS file
shouldn't not be responsible of knowing where outputs in general will
end up at. A file only knows its output location relative to the
project.

Props adamsilverstein, herregroen, omarreiss, pento.
Fixes #44361.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43175 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-06-28 02:30:15 +00:00
Andrea Fercia
ffedf3d752 Accessibility: Widgets: Make the "Available Widgets" section operable with a keyboard.
For a number of years, the "Available Widgets" section has been off-limits for
keyboard users. Now it can be used also with the keyboard. This change introduces
also some improvements for assistive technologies.

- makes the widget toggles focusable and adds an `aria-expanded` attribute to indicate their state
- improves the toggles labelling to clarify context (add/edit)
- changes the controls to choose a sidebar from list items to buttons
- adds an `aria-label` attribute to the buttons to clarify their purpose
- adds an `aria-pressed` attribute to the buttons to indicate which one is selected
- improves color contrast of the selected button
- uses a `wp.a11y.speak()` message to announce to screen reader users when a widget has been added to a sidebar
- moves focus back to the toggle button when closing a widget

See #40677.

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


git-svn-id: http://core.svn.wordpress.org/trunk@42624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-03-07 22:27:31 +00:00
Weston Ruter
443594dd00 Widgets: Prevent checkValidity from running on a form when widget is first adding to sidebar.
Amends [41352].
See #23120.
Fixes #43003 for trunk.

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


git-svn-id: http://core.svn.wordpress.org/trunk@42350 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-01-17 01:24:30 +00:00
atimmer
1f707de9dd Docs: Improve wp-admin JSDoc structural data globally.
JSDoc takes it structural data from `@namespace`, `@lends` and `@memberOf`. This change fixes these tags for all JavaScript files in the wp-admin folder.

* Add jsdoc configuration to parse wp-admin/js files. Use `jsdoc -c jsdoc.conf.json` to generate JSDoc.
* Define all used namespaces using `@namespace`.
* Define each usage of the extend function as a prototype assignment using `@lends`.
* Add `@alias` if JSDoc cannot detect the correct name automatically.

This has previously been corrected for all `wp-includes` JavaScript files: [41351].

Props herregroen.
Fixes #42485.

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


git-svn-id: http://core.svn.wordpress.org/trunk@42232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-12-15 13:42:46 +00:00
Weston Ruter
6c05b7bef2 Widgets: Clear dirty flag on widgets admin screen when widget is deleted to prevent irrelevant confirmation prompt when leaving.
Props hazimayesh, felipeelia.
Amends [41352], [41813].
See #23120, #42127.
Fixes #41894.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-10 20:39:47 +00:00
Weston Ruter
7cb66a5353 Widgets: Allow deletion even when widget form fails validity checks.
Props felipeelia.
Amends [41352].
See #23120.
Fixes #42127.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41647 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-10 18:07:51 +00:00
Andrea Fercia
8c7a2b1d54 Accessibility: Improve the sidebar toggles in the Widgets screen.
- uses button elements for the toggles
- uses `aria-expanded` on the toggles to communicate to assistive technologies the panels expanded/collapsed state
- adds the "circular focus" style to the toggles to give users a clear indication of the currently focused element
- standardizes CSS class names to `.toggle-indicator` and `.handlediv` as these names are already used across the admin for similar controls

Props monikarao, xavortm, mihai2u, Kopepasah.
Fixes #37013.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-09-27 16:29:44 +00:00
Weston Ruter
9b5d71bad0 Widgets: Add dirty state tracking for widgets on admin screen.
* Mark a widget as dirty when a field input triggers a `change` or `input` event; clear dirty state when widget is successfully saved.
* Disable Save button and re-label "Saved" when widget not dirty.
* Show AYS dialog when leaving widgets admin screen with unsaved changes.
* When widgets are dirty, expand all unsaved widgets at AYS check and focus on first one.
* Change "Close" link to "Done"; hide link when widget is dirty and reveal when saved.
* The "Done" link persistently appears in the Customizer even after making a change (when the widget is dirty) because changes are autosaved into the changeset.
* Prevent saving widget when form fails `checkValidity`.
* Fix frequency of triggering of `change` event on the rich Text widget's `textarea` limited now to when there are actual changes.
* Add a class of `widget-dirty` to widget containers when the widget has unsaved changes.

Props westonruter, timmydcrawford, melchoyce.
Fixes #41610, #23120.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41185 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-09-08 19:11:43 +00:00
Andrea Fercia
1d739a0925 Accessibility: Make some Widgets buttons real buttons.
Links used as UI controls that behave like buttons, should be buttons.
- changes the widgets "toggle", "Delete", and "Close" links to buttons
- uses `aria-expanded` to announce the state of the toggle buttons
- increases a bit the clickable area of the toggle
- ensures the "circular focus" doesn't get cut-off in some browsers by centering the toggle arrows
- uses a `<span>` element with an `aria-hidden` attribute to hide CSS generated font icons from assistive technologies
- standardizes on `.toggle-indicator:before` rather than `:after`
- changes two `#f00` reds in `#dc3232`, see #35622

Fixes #31476.

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


git-svn-id: http://core.svn.wordpress.org/trunk@40356 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-04-19 21:14:44 +00:00
Andrea Fercia
eeefec932f Administration: Improve the usage of the button CSS classes.
Introduces some consistency in the usage of the button CSS classes, fixes the
focus style for accessibility and responsiveness of the buttons.

- Adds the `button` class to all primary buttons make them responsive
- Removes all `secondary-button` classes and replaces it with button when needed. `button-secondary` shouldn't be used and exists just for backward compatibility reasons
- Replaces classes inside `submit_button()` with a shorthand for some buttons, and use an empty string for the default `button` class. Passing `button` is unnecessary
- Adjusts `get_submit_button()` to remove empty items

Props iseulde, dimchik, chris_d2d, mhowell, afercia.
Fixes #27314, #37138, #37448.

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


git-svn-id: http://core.svn.wordpress.org/trunk@38615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-09-28 19:54:28 +00:00
Andrew Ozz
71ac079074 Widgets: add a button to delete all inactive widgets simultaneously for better UX.
Props cdog.
Fixes #19159.
Built from https://develop.svn.wordpress.org/trunk@35317


git-svn-id: http://core.svn.wordpress.org/trunk@35283 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-21 05:23:26 +00:00
Andrea Fercia
6b449abadc Accessibility: bump headings one level up on the Appearance > Widgets screen for a better headings hierarchy.
Props mrahmadawais, afercia.
Fixes #33659.
Built from https://develop.svn.wordpress.org/trunk@35015


git-svn-id: http://core.svn.wordpress.org/trunk@34980 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-10 16:34:25 +00:00
Scott Taylor
ab777c54cc Ensure that widget carets close when dragging an expanded widget.
Props sdavis2702, mindctrl.
Fixes #33578.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34133 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-15 03:10:24 +00:00
Andrew Ozz
e5340ea63f Widgets screen: while dragging a widget over a closed sidebar refresh only the widgets in the current sidebar instead of all widgets in all sidebars.
Props chriscct7. Fixes #33015.
Built from https://develop.svn.wordpress.org/trunk@33354


git-svn-id: http://core.svn.wordpress.org/trunk@33326 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-22 01:25:26 +00:00
Andrew Ozz
b2e725eb27 Fix opening closed widget areas when dragging a widget over them.
Props polevaultweb. Fixes #13524.
Built from https://develop.svn.wordpress.org/trunk@33088


git-svn-id: http://core.svn.wordpress.org/trunk@33059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-05 18:20:24 +00:00
Konstantin Obenland
e460d37da0 Open closed widget areas when dragging onto them.
Allows dropping Widgets into the correct spot of a given sidebar, no matter
whether that sidebar is open or closed. Removes a step from the setup process
for closed sidebars.

Props polevaultweb.
Fixes #13524.


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


git-svn-id: http://core.svn.wordpress.org/trunk@32985 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-01 00:58:24 +00:00
John Blackbourn
acec5066f6 Switch to pointer tolerance for improved drag and drop behaviour when reordering widgets.
Props jkudish, MikeHansenMe.
Fixes #20791

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


git-svn-id: http://core.svn.wordpress.org/trunk@32659 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-03 22:59:25 +00:00
Andrew Ozz
999ae33a2e Widgets:
- Fix dragging to the bottom of the screen.
- Fix hiding of the dragged widget when dragging over a closed sidebar.
- Fix the admin menu position and scrolling when all widget containers are folded.
Fixes #32094 for trunk.
Built from https://develop.svn.wordpress.org/trunk@32480


git-svn-id: http://core.svn.wordpress.org/trunk@32450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-10 00:32:31 +00:00
Helen Hou-Sandí
3ac1a19529 Spinners: Toggle a class instead of show/hide.
Toggling spinners also now uses visibility instead of display, so that the space is always reserved and nothing moves around unexpectedly.

props cdog, MikeHansenMe, valendesigns.
fixes #22839. see #31875, #30725.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-03 04:52:27 +00:00
Scott Taylor
6ffa051689 Replace flagrant instances of .html('') with .empty().
Props OriginalEXE, SergeyBiryukov.
Fixes #27034.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31671 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-09 19:44:26 +00:00
Sergey Biryukov
ee6af4f40c Widgets: Toggle widget arrow when the widget is closed using Close link.
props senff.
fixes #29617.
Built from https://develop.svn.wordpress.org/trunk@29726


git-svn-id: http://core.svn.wordpress.org/trunk@29500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-09-10 17:36:15 +00:00
Dominik Schilling
8e7e53b22e Widgets: Toggle widget arrow when widget is open/closed.
props MikeHansenMe.
fixes #26748.
Built from https://develop.svn.wordpress.org/trunk@28235


git-svn-id: http://core.svn.wordpress.org/trunk@28063 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-01 14:09:16 +00:00
Dominik Schilling
0c5d4db466 Widgets: Trigger jQuery events for widget updates.
* `widget-added` when a widget is added to a sidebar
* `widget-updated` when a widget is updated
A jQuery object of the widget is passed along to the event handler. Same events are used in the Widget Customizer, see [27909].

fixes #19675.
Built from https://develop.svn.wordpress.org/trunk@27969


git-svn-id: http://core.svn.wordpress.org/trunk@27799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-06 19:06:14 +00:00
Ryan Boren
07c16fd23c The Pinking Shears stir from their slumber, awakened by what may seem, to those
innocent in the ways of The Shears, a triviality, a nothing-of-consequence. But there are consequences indeed for recklessly trailing your whitespace. Naturally, they a dire!

One, two! One, two! And through and through
The Pinking Shears went snicker-snack!
They plucked your tail and with your space
They went sniksnuking back.

Let me tell you, that can be uncomfortable, so always pre-sniksnuk your trailing whites. May The Shears be with you.

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


git-svn-id: http://core.svn.wordpress.org/trunk@26738 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-11 19:49:11 +00:00
Andrew Ozz
765b617a8c Widgets: jshint cleanup of widgets.js, see #25821.
Built from https://develop.svn.wordpress.org/trunk@26703


git-svn-id: http://core.svn.wordpress.org/trunk@26593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-05 23:14:09 +00:00
Andrew Nacin
d0e4753aef Widgets: Add click-to-add widgets to the bottom (not top) of the target sidebar.
fixes #25821.

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


git-svn-id: http://core.svn.wordpress.org/trunk@26586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-05 22:27:11 +00:00
Andrew Nacin
b8882b3511 Widgets: Only scroll to the newly clicked-and-added widget if it is out of the viewport.
props shaunandrews.
see #25821.

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


git-svn-id: http://core.svn.wordpress.org/trunk@26585 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-05 22:22:11 +00:00
Andrew Ozz
b0a9fb217a Widgets: on clicking Add, don't move the chooser out of the widget early as that makes is visible at the bottom of the screen. Remove the cloned copy of it instead. Part-props jeremyfelt, fixes #26417.
Built from https://develop.svn.wordpress.org/trunk@26651


git-svn-id: http://core.svn.wordpress.org/trunk@26541 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-05 00:02:11 +00:00
Andrew Ozz
04d8ac5830 Widgets: highlight all drop zones (open and closed sidebars) on starting to drag a widget to indicate "droppability", fixes #26168.
Built from https://develop.svn.wordpress.org/trunk@26474


git-svn-id: http://core.svn.wordpress.org/trunk@26372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-29 17:58:10 +00:00
Andrew Ozz
29af7b55f3 Widgets: remove leftover debug bits and fix jshint warnings in widgets.js, see #25952.
Built from https://develop.svn.wordpress.org/trunk@26427


git-svn-id: http://core.svn.wordpress.org/trunk@26327 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-27 01:42:09 +00:00
Andrew Ozz
f46e743343 Widgets: drop onto closed sidebars.
- Make dropping a widget easier by preventing the source sidebar from resizing while the widget is being dragged.
- Move widgets dropped on closed sidebars to the top. UI Sortable places them randomly near the bottom.
- Fix possible regression in wp_list_widget_controls(), add an optional argument to output the sidebar name inside the sortable container.
- Updated styles for sidebar description and widget-hover class.
Part props shaunandrews, fixes #25952.
Built from https://develop.svn.wordpress.org/trunk@26426


git-svn-id: http://core.svn.wordpress.org/trunk@26326 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-27 01:30:10 +00:00
Andrew Ozz
c944323a4f Widgets:
- Don't deactivate "draggable" on the widget when the chooser is open. Makes it possible to still drag the "widget-in-question".
- Change the chooser's HTML id to a class to avoid collisions when cloning.
- Refresh the "sortable" positions when an open widget is dragged. Fixes problems moving the widget up or down in the same sidebar.
See #25821
Built from https://develop.svn.wordpress.org/trunk@26366


git-svn-id: http://core.svn.wordpress.org/trunk@26267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-24 22:07:10 +00:00
Andrew Ozz
1aa122be5e Widgets:
- Prevent dragging of the widget-in-question when the chooser is open.
- Don't show more than one spinner when saving widgets positions.
- Disable selecting of text in the widget title. Prevents selecting/highlighting most of the screen when dragging on slower devices.
See #25821.
Built from https://develop.svn.wordpress.org/trunk@26306


git-svn-id: http://core.svn.wordpress.org/trunk@26210 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-21 19:28:10 +00:00
Sergey Biryukov
6927ba52b1 Fix JSHint errors in widgets.js.
props jorbin.
fixes #26127.
Built from https://develop.svn.wordpress.org/trunk@26287


git-svn-id: http://core.svn.wordpress.org/trunk@26192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-20 11:12:11 +00:00
Andrew Ozz
30b1c76a01 Widgets: split the sidebars in two containers so there are no empty spaces when they are shown in two columns and some are open, other closed. See #25952.
Built from https://develop.svn.wordpress.org/trunk@26285


git-svn-id: http://core.svn.wordpress.org/trunk@26190 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-20 04:45:10 +00:00
Andrew Ozz
4070cdcf66 Widgets:
- Fix support for expanding (wide) widgets in the Inactive Widgets area.
- Remove resizing of the sidebars height.
- Stop removing unneeded "for" attributes from labels inside the widgets. Was a fix for IE6 odd behaviour.  

See #26117.
Built from https://develop.svn.wordpress.org/trunk@26277


git-svn-id: http://core.svn.wordpress.org/trunk@26182 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-20 01:35:10 +00:00
Andrew Ozz
8de3d7d15e Widgets:
- Remove the !important styles that were overriding the widget width when expanded.
- Fix missing border-bottom from widgets when dragged and expanded.
Props shaunandrews, see #26117.
Built from https://develop.svn.wordpress.org/trunk@26275


git-svn-id: http://core.svn.wordpress.org/trunk@26180 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-19 23:47:10 +00:00
Andrew Ozz
c19660468b Widgets: move the chooser inside the selected widget so it inherits the width, add some keyboard shortcuts: tab to select, enter to append and escape to cancel. Props shaunandrews, see #25821
Built from https://develop.svn.wordpress.org/trunk@26271


git-svn-id: http://core.svn.wordpress.org/trunk@26176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-19 18:03:09 +00:00
Matt Thomas
87ce6cc5c3 Bring in the widgets component of MP6. See #25858.
* A cleaner UI, with a simpler design for available and inactive widgets, and more emphasis on your sidebars.
* Available widgets and sidebars expand to two columns at larger screen sizes making it easier to manage sites with lots of sidebars.
* New dropzone indicator for empty sidebars.

Props shaunandrews, joen, iammattthomas.


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


git-svn-id: http://core.svn.wordpress.org/trunk@26051 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-13 20:06:06 +00:00
Andrew Ozz
753e745796 Merge the Widgets Area Chooser feature plugin. First run, see #25821
Built from https://develop.svn.wordpress.org/trunk@26054


git-svn-id: http://core.svn.wordpress.org/trunk@25979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-08 23:05:10 +00:00
Andrew Nacin
9e2d46819e Revert [22387]. see #14466. see #22374.
git-svn-id: http://core.svn.wordpress.org/trunk@22406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-06 22:36:24 +00:00
Andrew Nacin
bc93c0fdc5 Prefix sidebar IDs on the widgets screen with "sidebar-". props batmoo. fixes #14466.
git-svn-id: http://core.svn.wordpress.org/trunk@22387 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-05 23:17:25 +00:00
Andrew Nacin
1acd8b556f New HiDPI spinner. Uses clean <span class="spinner"></span> markup.
Be on the lookout for weirdness.
props lessbloat. see #21456.



git-svn-id: http://core.svn.wordpress.org/trunk@22019 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-26 19:57:44 +00:00
Andrew Nacin
2710bcade1 Switch to .min for compressed JS and CSS files.
* This moves our "development" versions from .dev.js to .js (same for css).
 * The compressed version then moves from .js to .min.js (same for css).

By switching to the standard .min convention, it sets expectations for developers,
and works nicely with existing tools such as ack.

fixes #21633.



git-svn-id: http://core.svn.wordpress.org/trunk@21592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-08-23 00:04:18 +00:00
bumpbot
2e494f8e08 Compress scripts/styles: 3.5-alpha-21282.
git-svn-id: http://core.svn.wordpress.org/trunk@21282 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-07-18 22:58:20 +00:00
bumpbot
02192b7f71 Compress scripts/styles: 3.5-alpha-21220.
git-svn-id: http://core.svn.wordpress.org/trunk@21220 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-07-05 20:58:21 +00:00
bumpbot
c600e21e43 Compress scripts/styles: 3.4-beta3-20629.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20629 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-27 20:58:24 +00:00
azaozz
ce992634cc Fix the workaround for UI Draggable to include single instance widgets (do they still exist?), see #17952
git-svn-id: http://svn.automattic.com/wordpress/trunk@18774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-09-25 18:53:34 +00:00
azaozz
e7e4ceed22 Update jQuery to 1.6.4, update jQuery UI to 1.8.16, add the rest of UI, add workaround for a regression in UI Draggable, see #17952
git-svn-id: http://svn.automattic.com/wordpress/trunk@18757 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-09-23 05:03:31 +00:00