Commit graph

707 commits

Author SHA1 Message Date
jenkins-bot d816492ca1 Merge "rm stray fileRepoPromise property from media dialog" 2017-01-03 20:24:34 +00:00
jenkins-bot 6599aaf3f4 Merge "Give focus to preview panel for keyboard scrolling" 2017-01-03 17:58:32 +00:00
James D. Forrester 122f49b2dd build: Bump file copyright notices for 2017
Change-Id: I3c20809e71cc0da58123e1b5f29c4f3aac945496
2017-01-03 08:58:33 -08:00
Ed Sanders c853475a1a Give focus to preview panel for keyboard scrolling
Bug: T154334
Change-Id: Ibc093e3111411b6183bf24528a2e0419ba8d40b6
2016-12-31 22:04:19 +00:00
Alex Monk d7cf29f1c0 rm stray fileRepoPromise property from media dialog
seems to have gone upstream to core's mw.widgets.APIResultsQueue

Change-Id: I3c2a6dbdca60ceadc9e7175e5f8ad83b7fc4b7a0
2016-12-24 18:59:48 +01:00
Bartosz Dziewoński 72569159b8 Add comments in some places where we really want to treat messages as HTML
Change-Id: I439338dabd4b031ed1c4cfc9d89af5a6f2971676
2016-12-20 10:50:15 +00:00
jenkins-bot 57d49550a0 Merge "Add shortcut for show preview and resolve access key conflicts" 2016-12-16 18:14:17 +00:00
Ed Sanders 4d134cfefc Add shortcut for show preview and resolve access key conflicts
Refactor save dialog setup so logic for canPreview/canReview
is external and passed in.

'Show preview' will show in the VE command help dialog until
I56c1036e6 is merged in core.

Bug: T149914
Change-Id: Id718ad622be43c03df61d12b8688d53462c59f36
2016-12-16 13:33:57 +00:00
Ed Sanders 9728d78126 Resolve URLs in show preview against correct base
Bug: T153277
Change-Id: Icaa6de4618de008fb2024d1dd428114688cb1043
2016-12-15 03:19:16 +00:00
Ed Sanders 22f4614eee Show save button on show preview page
Bug: T151261
Change-Id: If80bb8e4e9e412572ab88d13d07a3f92dd353b31
2016-12-13 18:10:09 +00:00
jenkins-bot c4dacd9d24 Merge "Don't focus save dialog during setup to avoid scroll jumping" 2016-12-13 15:31:23 +00:00
Ed Sanders 4064c91b8e Don't focus save dialog during setup to avoid scroll jumping
Bug: T153010
Change-Id: Ia535cd5d4ebfc01994f4e440bb5cb7efa5c40802
2016-12-13 12:57:34 +00:00
Ed Sanders 5a8106773c Support section=new in NWE
Bug: T150709
Change-Id: I1002b97060d642df0988da15860a36c13712bade
2016-12-13 12:20:55 +00:00
Alex Monk c843824c97 Batch gallery imageinfo requests via ImageInfoCache subclass
Also get rid of .join( '|' ) for API request parameters per Bartosz

Bug: T147067
Change-Id: If4444cca300d65e28d6fb9003fcac5e076a5129a
2016-12-06 22:10:19 +00:00
jenkins-bot 446a4e40c4 Merge "SaveDialog inherits from plain dialog, not FragmentDialog" 2016-12-06 19:37:41 +00:00
jenkins-bot bdd1a1b78c Merge "Scroll highlighted item into view in gallery dialog" 2016-12-06 18:30:22 +00:00
jenkins-bot 9b4bc7a3f2 Merge "Disable heights option in gallery dialog when mode is slideshow" 2016-12-06 18:28:51 +00:00
jenkins-bot a2e4d9fa82 Merge "Decrease height of gallery search results for better fit" 2016-12-06 18:23:38 +00:00
Ed Sanders 4f7bba4de9 SaveDialog inherits from plain dialog, not FragmentDialog
Change-Id: I934ab41567ea68e58cfa27451faf499febd68bd1
2016-12-04 11:09:56 +00:00
Thalia 2fd30fb7c5 Decrease height of gallery search results for better fit
Bug: T151509
Change-Id: I92c812952457df99251fc0b8f1a17d4e55fe52f7
2016-12-03 16:31:23 +00:00
Thalia 1b4d70324b Disable heights option in gallery dialog when mode is slideshow
Also disable relevant fields the first time the dialog is
opened, not just when the dropdown is changed.

Bug: T151482
Bug: T151512
Change-Id: Ic511e1832a9fcaaeaed71c1d495aecc65fdd1d3b
2016-12-03 16:00:32 +00:00
Thalia 0b9228a926 Scroll highlighted item into view in gallery dialog
Bug: T152053
Change-Id: I6b77f6c27d5629dc18e421f984cf31badfb2ff04
2016-12-03 15:46:58 +00:00
jenkins-bot e1e55aa730 Merge "Correct class/classes typo in gallery dialog" 2016-12-03 15:20:53 +00:00
Thalia 295dd380de Correct class/classes typo in gallery dialog
Bug: T152226
Change-Id: I569df87cf82359c13ad61a3ddffacd83f5f03bae
2016-12-03 13:03:02 +00:00
jenkins-bot 36d976c4c0 Merge "Save Dialog: add shortcut for opening to the review panel" 2016-12-02 00:36:40 +00:00
David Lynch 2bd34cebd4 Save Dialog: add shortcut for opening to the review panel
Create a new MWSaveDialogAction, which can be hooked up to triggers. Switch
the existing save dialog accesskey to just use the trigger system.
(Maintaining all the accesskey logic, so we don't change the shortcut on
people.)

Bug: T149914
Change-Id: I9b4ef8504148703556f802b266a517dd5098c06b
2016-12-01 18:16:18 -06:00
James D. Forrester a835f4f9d5 Use canonical ve.dm.TransactionBuilder.static.newFrom* methods
Change-Id: I082048a677baa2699d94e21548373952d52db61b
2016-12-01 10:43:10 -08:00
Ed Sanders 218742d806 Update VE core submodule to master (ae30d71)
New changes:
f58ddea DiffElement: Use document slices with full internal lists
83800c0 DebugBar: Remove hard-coded i18n
b4f89e1 Update OOjs UI to v0.18.1
40c7bf6 Factor out active node functionality from SectionNode for captions
2d967be Move 'mode' property to surface, rename target property to 'defaultMode'
5d8c214 wrapAllNodes in sourcefragment
dd3d9e5 Refactor ve.dm.Transaction
9d61aca Use canonical ve.dm.TransactionBuilder.static.newFrom* methods
df4f72a Make table caption node an active node
b79f72d Core source mode
7533ac4 Localisation updates from https://translatewiki.net.
ae30d71 SourceSurfaceFragment: Check range is not collapsed

Local changes:
Get edit mode from surface where possible

Depends-On: Iec758c1892d518ad4bc2c0d1aaf6ca00fa354323
Change-Id: Ifaf6a26078b2731b374aaad2cb40c08928de9c84
2016-12-01 10:40:01 -08:00
Thalia 4b9d1bed4f Fix "Add new image" button in the gallery dialog
Make sure the button is always visible in the
gallery dialog menu by fixing it to the bottom.

Bug: T151506
Change-Id: I560b0dffbaad9e18c6f7f703cb155356470580ee
2016-11-30 22:38:11 +00:00
jenkins-bot 745e919f97 Merge "Update VE core submodule to master (9625e8f)" 2016-11-29 20:46:54 +00:00
jenkins-bot 33db54ef28 Merge "Use upstream media search widget from core" 2016-11-29 20:04:46 +00:00
Ed Sanders aeafa6afca Update VE core submodule to master (9625e8f)
New changes:
f1297b8 [BREAKING CHANGE] Allow target widgets to be re-used

Local changes:
Re-use target widgets

Change-Id: I5decb918f398704d4b6c108a16fbc1cc073ef077
2016-11-29 11:48:15 -08:00
jenkins-bot 28a4b9f362 Merge "Handle missing pipes in Gallery syntax, and remove them when caption is empty" 2016-11-29 19:27:52 +00:00
Ed Sanders 44fee9b61d Wait until search panel is shown before setting a search query
Bug: T151659
Change-Id: I3eb3b903a8df1c7732da2a08e4b46b13b162617e
2016-11-29 11:13:54 -08:00
Ed Sanders 2ee9e62a4d Use upstream media search widget from core
Bug: T140166
Depends-On: If53ef7f4b62c7a5d4da565c14dd2a353778694e5
Change-Id: I28845e9c143e78d3a377f067606c62da212e3bf1
2016-11-29 17:19:14 +00:00
Ed Sanders 240ec23113 Handle missing pipes in Gallery syntax, and remove them when caption is empty
Bug: T146190
Change-Id: I703bcdf68b9631a47d839baf3abb42ff98b36bf2
2016-11-28 17:36:29 +00:00
jenkins-bot 6bcfed97a5 Merge "Separate out ArticleTarget as a module" 2016-11-26 23:22:32 +00:00
Ed Sanders 4fe6be1f34 Separate out ArticleTarget as a module
Also move save button command help registration to ArticleTarget.

Bug: T151096
Change-Id: I941d17254a2e20a82aa46fd538abf887d757c0c3
2016-11-24 12:35:41 +00:00
jenkins-bot 1909c445bb Merge "Allow the gallery dialog to insert duplicate images initially" 2016-11-24 04:13:03 +00:00
Ed Sanders 0334263718 Missing i18n in gallery dialog
Change-Id: I369d5b9d42a5fd6b4d1afc12508632a282591320
2016-11-24 00:09:49 +00:00
Thalia 003ec7b653 Allow the gallery dialog to insert duplicate images initially
Change I94f4fadd84cd3e prevents the gallery dialog from inserting
duplicate images into the gallery dialog after one request (e.g.
so double-clicking on an image in the search widget doesn't cause
the image to be inserted twice). However, galleries can
intentionally contain duplicates of the same image, so it is
possible to make a spearate request to insert a duplicate image.

When the dialog is first opened, it requests all the images in
the gallery at once, so the above change was causing the
duplicates in an existing gallery to be dropped. Duplicates
should be allowed to be inserted following this initial request.

Bug: T150894
Change-Id: I34353bc9b8db947488474c4be52292e0a1447705
2016-11-23 01:02:35 +00:00
Thalia 2364f530a3 Let gallery dialog handle unprefixed filenames
The namespace prefix before image filenames is optional
in galleries, but the API requires it. If the prefix is
omitted, add the file namespace prefix.

Change-Id: I3d126550c2ad2e84454122f92307ba4bc943780b
2016-11-23 00:20:32 +00:00
James D. Forrester f24e34de3c build: Bump eslint-config-wikimedia to v0.3.0 and make pass
Change-Id: I7449c11aa63c50fda667265c32021439cc53471f
2016-11-15 15:05:05 -08:00
jenkins-bot 65604802ac Merge "Fix attribute.style typo in gallery dialog" 2016-11-15 22:09:57 +00:00
Thalia 97af378bb5 Fix attribute.style typo in gallery dialog
Change-Id: I71162652df5e09c4d974e0f863ea661c4bd7902e
2016-11-14 22:26:39 +00:00
Thalia 810202395e Normalise filename after image is chosen in gallery dialog
Bug: T150638
Change-Id: Iead7d0d3f8aa6c864dc6fba7089bab0767035812
2016-11-14 22:04:25 +00:00
Ed Sanders 37ccaca2ec eslint: Re-enable wrap-iife and partially enable dot-notation
Change-Id: I4420d66f528dcb18ebe2b9f63996661b2969f833
2016-11-12 14:43:43 +00:00
jenkins-bot bce6aeb92a Merge "build: Replace jscs and jshint with eslint" 2016-10-28 18:43:15 +00:00
James D. Forrester 36befda61c build: Replace jscs and jshint with eslint
It's new, it's fresh, it's amazing, it's here.

Change-Id: I5dc784411f704685ed5cc763a2b2b1c5d3e5a610
2016-10-28 18:33:15 +00:00
jenkins-bot 7085796ec3 Merge "Don't allow an image to be inserted into a gallery twice simultaneously" 2016-10-28 02:29:19 +00:00
Ed Sanders 7bc59cd65c Set mode of save dialog after setting size so footer is correct height
Bug: T149274
Change-Id: Ic88b1c861029495e6098686d847deb181f62288e
2016-10-26 20:09:21 -07:00
Alex Monk 8414490dbf Don't allow an image to be inserted into a gallery twice simultaneously
One after the other is okay though.
Also fix this so that, if the user is fast enough, two images simultaneously
also works.

Bug: T148558
Change-Id: I94f4fadd84cd3ed97d9676043cadc64f0e09f0b9
2016-10-20 02:22:34 +01:00
Thalia 91ca88f6e8 Set gallery dialog to larger size when search panel is focused
Bug: T145246
Change-Id: I49b218f704d31b4f699fe39f414a84abbfffc093
2016-10-12 17:42:54 -07:00
jenkins-bot 9da0eaef03 Merge "Pre-load the article title in gallery dialog search" 2016-10-04 16:24:00 +00:00
Thalia 1d8d4accff Pre-load the article title in gallery dialog search
Bug: T145243
Change-Id: I4cd04dee4c875524ecdf90027dc878eb15f47ce6
2016-09-27 14:01:31 -07:00
Matthias Mullie 2b4948b0b6 Change mid-upload 'cancel' button to 'back'
Bug: T114938
Change-Id: I964708e1267223b181630b9bea5b19e2bdf242be
2016-09-22 16:13:57 +02:00
Ed Sanders 5e22ef30fe Add show preview to save dialog when in NWE
Bug: T142642
Change-Id: I679eaddfe9037dcf258d3ff7d1eaa44214f0e730
2016-09-07 21:35:49 +00:00
James D. Forrester deef47414a Vary the 'save' labels to 'publish' for public wikis
Bug: T131132
Change-Id: I4a497265661d5ce0f6144988b514509dfa1bddfd
Depends-On: I56634ed223778a0650cf36ac7256151b13c494f1
2016-08-25 09:37:52 -07:00
James D. Forrester b7c7d06968 Show a different label for buttons on create vs. modify
To align with the linked patch in MediaWiki core. Taking advantage of
the opportunity to use core's messages for these, and remove some dead
wood old messages that were never used like "restore" items in mobile.

Bug: T139033
Depends-On: Ie81b5edd275963a965cd44d0fd325cae9ee2f1a6
Change-Id: Ie00e94cc77cb750a7e8d1104366bb3dad65af8a4
2016-08-24 16:01:11 -07:00
Thalia d156af59aa Fetch default options for gallery dialog
Fetch default options for mode, image heights and image widths
rather than hard-coding them.

Bug: T139632
Change-Id: I1adc7987fdeb1258ee87ce46acbab469ea18116e
2016-08-05 14:08:20 -07:00
Ed Sanders 6064eb3dc4 Fix preview to use a valid document slice
An inline content node must exist inside a content branch node (paragraph).

Bug: T141306
Change-Id: I6bf2f99938940c1a5e34db16fbe582b15991a7c6
2016-07-26 16:06:07 +01:00
jenkins-bot 522b3498ce Merge "MWGalleryDialog: Add new 'slideshow' mode" 2016-07-21 00:54:08 +00:00
Thalia 84919b253b MWGalleryDialog: Don't set blank values for width, height
If width or height attributes are left empty in the form,
they are now undefined in mwData.

Bug: T140094
Change-Id: I76dadbd07a89ce762e42ce714f364ce74a9cc1f0
2016-07-12 22:14:59 +01:00
James D. Forrester 96ba688a87 MWGalleryDialog: Add new 'slideshow' mode
Change-Id: I73052def5e8c082f27606b2ff094834fd5d11908
2016-07-12 08:08:15 -07:00
Thalia 3e911ba266 Make gallery dialog caption field multiline
Also change remove button label from "Remove" to "Remove image".

Bug: T139421
Bug: T137982
Change-Id: I1b11eb44c672bad0d53d139d66e796a0657457f5
2016-07-06 17:24:12 +01:00
jenkins-bot 750078ab63 Merge "MWTemplateDialog: When opening the dialog, add in any unset suggested and required parameters" 2016-06-29 22:42:25 +00:00
James D. Forrester 832118e051 MWTemplateDialog: When opening the dialog, add in any unset suggested and required parameters
Bug: T97482
Change-Id: Iaf280355f442240aba4e1f74d3ee402fc5d329b0
2016-06-08 14:19:09 +00:00
Thalia 6fdbe9fd7e Make dialog for editing galleries
Make new graphical interface for editing existing
galleries and adding new galleries.

NB The dialog does not yet support rich text in the
image captions, nor does it provide separate fields for
e.g. link, alt text, etc. These are dependent on parsing
the text within the tag, which is yet to be implemented
by Parsoid. For now, these attributes should be
specified in wikitext in the image-specific caption
field.

Bug: T45037
Change-Id: I2b4082e991268241a15b9bbd6d85c94cdc2185f2
2016-06-07 13:53:02 +01:00
Ed Sanders 35c0a0dc69 Use cloneWithData
Change-Id: I7ffe3c7ab20d5f785a6642c8293f271f4dc08ff8
2016-05-30 21:40:07 +01:00
Ed Sanders 236e3d1241 [BREAKING CHANGE] Evalute block/inline state when inserting a transclusion node
Make some of the methods we currently use to render the node
static so we can re-use them before inserting. We do the evaluation
without inserting the node so as not to dirty the document and
transcation history.

In the unlikely case the request fails, just fallback to inline.

This only handles insertions for now as type changes on edit will be
very rare.

This changes the signature of insertTransclusionNode, which is used
in Cite and Citoid extensions.

Bug: T51784
Change-Id: Ibc2fc66e6866084b0a4deeb082c8a1ca412febb2
2016-05-16 09:19:13 +01:00
Alex Monk 349b1f5e57 Add WTE welcome dialog
Bug: T133800
Change-Id: I6eb43274e22f647958c3ab1b6d5c12b3dbea388e
2016-05-10 23:28:21 +00:00
Ed Sanders 3678b0c38a Attach template form after building
Building DOM trees while attached is much slower. This makes
things about twice as fast.

Remove unused StackLayout wrapper this.panels.

Bug: T134814
Change-Id: Idb269cf3f06c350ffe28b66e2e883c0a7a3348cd
2016-05-09 23:24:22 +01:00
Ed Sanders c516d897d2 Remove icon properties from windows
Windows stopped supporting icons a while ago.

Change-Id: I8a63152282a5968dcd17675330e31bd1ebe4b68b
2016-03-29 12:33:42 +01:00
David Lynch 0268e74a7f Template Dialog: pushPending while the dialog is closing
Double-clicking the "insert" button would double-insert the template. Counting
the close as a pending action avoids that.

Bug: T129725
Change-Id: I41af7c051fd54004cecd563d7a6cf8fdb452840f
2016-03-24 11:33:00 -05:00
Ed Sanders f5873ac1db CommandHelpDialog: Inherit non-corruptively
Change-Id: Ieb497eebe930e58a02552eb9d4305280c91c92c2
2016-03-14 20:03:52 +00:00
James D. Forrester d8eb68d7b6 Don't give the user the option to discard changes when changing editor
Bug: T128585
Change-Id: I02f31e46ae7b2dc7505ed55fc56cd00f538a90e3
2016-03-07 13:39:32 -08:00
Ed Sanders 67c207a6f5 Use abstract target widget creation
Change-Id: Ic7e43e80f4f48df99842cee702963d54205e5055
Depends-On: I6a667a641540b347052ea0c645af4e1e59cf333a
2016-03-03 11:49:44 -08:00
David Lynch 7486f74c6f MWMediaDialog: Only cache relevant information
Trim the cached image data from the media dialog down so that it only caches
the same information that would have been fetched for a non-uploaded image.
Consistency!

Bug: T126081
Change-Id: I0f057c111b66f29c6360e27f97256384f5320b75
2016-02-29 10:16:34 -06:00
jenkins-bot e39d8a744b Merge "Show welcome dialog on mobile too" 2016-02-29 03:02:03 +00:00
Ed Sanders 8f028813e5 CategoryWidget: Update to work with new DraggableGroupElement
Change-Id: Iefac99dba0e6b8ed3eaaa1d5f1d92e402e3cf2db
2016-02-25 16:07:50 -08:00
Alex Monk ced27f348f Show welcome dialog on mobile too
Bug: T112599
Change-Id: Ie04aab468c80dabc84e1386e7529138e1101450e
2016-02-25 22:03:00 +00:00
jenkins-bot 7bef4c9a20 Merge "Warn for empty summary when edit section used" 2016-02-25 18:56:57 +00:00
wctaiwan 5da37932a2 Warn for empty summary when edit section used
Warn the user about an empty edit summary when the "edit section"
link is used to trigger VE.

Re-does Ic7b456ca a different way.

Bug: T114857
Change-Id: I319c9c5bed47140a81eb409d490c9f82b89a49fe
2016-02-23 00:34:12 +00:00
jenkins-bot 74b2489276 Merge "Link to file description pages in media dialog" 2016-02-22 21:07:43 +00:00
Ed Sanders deb676e73d MediaDialog: Use CC logo from upstream (ooui-icons-wikimedia)
Change-Id: I4fabf5f8d87b9b21623883203b9d6965a0ff33a0
2016-02-21 18:20:30 +00:00
Alex Monk ca5cab52af Link to file description pages in media dialog
Bug: T125227
Change-Id: I243f5479ab27ab098d41db08ff4a53195d382577
2016-02-21 03:45:37 +00:00
Ed Sanders b70eb51491 MWMetaDialog: Fix setup of pages
Only call setup in ready process, as setup includes setting
focus. Defer fitInput call to category widget until transition
is finished so measurements are correct.

Change-Id: I49a30402cf58e36f16316e3ab04fa3349d19954e
2016-02-18 17:14:45 +00:00
James D. Forrester 1e0486a679 Remove all Extension:Cite code, now moved there
Depends-on: I39936ed83d5a60471a0a75da753f498e80aef234
Depends-on: Ifd853bf9f901065798bd0063aeaa786a3761aa71
Depends-on: I32c93c5118eafe5f071252290c58d3de8dacc81a
Change-Id: Iba0f25b3ebe4e5e63377da57afb760d6980f9907
2016-02-05 21:36:56 +00:00
Ed Sanders db5ed236dd Add controls for wikitable and sortable to table dialog
Bug: T95189
Depends-On: Ife3f3505b845db28dd29a07e9be1533c39726ce1
Change-Id: I1672d8cd2e138df1fad19dcfd948700942e87f2c
2016-02-01 10:58:42 -08:00
jenkins-bot f78dd8ad72 Merge "MWWelcomeDialog: Let the user switch editors" 2016-01-27 00:20:10 +00:00
James D. Forrester d8769edd01 MWWelcomeDialog: Let the user switch editors
Change-Id: If88942d866278f3012dae7972d464a3d2a6a4f82
2016-01-27 00:14:07 +00:00
Ed Sanders abb094babd MWTargetWidget: Add missing indent commands to blacklists
Bug: T124619
Change-Id: If2a5d98673db6e2d29fe49f1e7f5307437ba3866
2016-01-26 23:46:12 +00:00
James D. Forrester ada58df361 build: Bump file copyright notices for 2016
Change-Id: I3c618c196e504a80ca297a4132a17f1977a24fb7
2016-01-03 14:57:25 -08:00
jenkins-bot 46c2cafdf6 Merge "ExtensionPreviewDialog: Use a deep copy when preparing sub-doc for editing" 2015-12-16 06:44:45 +00:00
Ed Sanders f87d92a167 ExtensionPreviewDialog: Use a deep copy when preparing sub-doc for editing
Otherwise temporary changes to the previewNode will pollute the original
doc's model tree.

Bug: T121488
Change-Id: I6a6b3d904061b0ce6e0c513ad424aabc3c4472b5
2015-12-15 14:40:07 +00:00
Bartosz Dziewoński ca81362afd ve.ui.MWMediaDialog: Make the dialog higher (600px)
Avoids a scrollbar for option 4 of the A/B test from T120867.

Change-Id: I3eacb560117219febd6e08066599e2d4d42df219
2015-12-14 20:53:32 +01:00
jenkins-bot 3db4f22ecf Merge "MWSaveDialog: De-flag the 'return to save' button on diffs" 2015-12-10 21:51:01 +00:00
Ed Sanders 29f33a57d5 Rename mw.Target to mw.ArticleTarget
This makes way for a base mw.Target class which is
not specific to articles (e.g. Flow boards).

Bug: T97166
Change-Id: If72650bdf87aa9f195b004da0a4d815f1a8063a3
2015-12-10 16:26:20 +00:00
Ed Sanders ae26eefb05 Fix typos
Add some common ones to typos.json

Change-Id: I3830be4949ab6a5fd998d6937ed83e9f18091c2b
2015-12-09 16:47:13 +00:00
James D. Forrester ccc087c461 MWSaveDialog: De-flag the 'return to save' button on diffs
Change-Id: Icb7c07dae23b7f3ba1b4cdf6c73f17a1bbff1bdf
2015-12-08 13:31:44 -08:00