Commit graph

6514 commits

Author SHA1 Message Date
Ed Sanders a46b30a161 Show notification when document is recovered (or fails)
Change-Id: Id2f6651ba7743c05043bbbe64cd9cb7bd762d74b
2018-02-27 20:54:18 +00:00
jenkins-bot c44390e6f8 Merge "Use session storage to auto-save" 2018-02-27 20:20:31 +00:00
jenkins-bot 92470ae024 Merge "Always set sourceMode=true on dm.MWWikitextSurface" 2018-02-27 16:49:09 +00:00
Ed Sanders 76caef6b4b Use session storage to auto-save
Ensure we start with the same HTML (i.e. if an edit has
been made since the crash-recovery):
* Whenever an article target is activated, stash the initial
  document html, other parsoid response data, and the request
  parameters (pageName, mode, section) in session storage.
* Whenever an article is fetched through the target loader,
  recover from session storage if the request parameters match.

Store transactions:
* On document transaction (debounced) append the latest
  changes to session storage.
* If a document state is recovered from session storage,
  attempt to re-apply the stored transactions.

Clear transactions:
* Whenever the target is torn down (i.e. save, deliberately
  closing the editor to go back to read mode)

Other:
* If writing to session storage fails once, disable future
  attempts for that session (assume storage quota exceeded)
* Disable tempWikitextEditor when recovering. We don't have
  the transaction code loaded yet to perform the recovery.

Bug: T57370
Depends-On: I3832243fc347a99641fcb7e39a887a153c9a3b22
Depends-On: I448fb566fe9f7f5b5a76e88b70ca000e3d35b415
Change-Id: Id9d877f903cf4796a52f90991c030417a9f8786f
2018-02-27 12:19:06 +00:00
Ed Sanders 366219e953 Always set sourceMode=true on dm.MWWikitextSurface
Change-Id: Id46d5ef9c8a585784b8fbd55418d012fff96823f
2018-02-27 12:19:06 +00:00
Ed Sanders 31f7015260 Whitelist style tags from Parsoid, e.g. TemplateStyles
Bug: T188143
Change-Id: I7a30d8a8c40de8b786d59c8bf0ebcb77f2baeb2a
2018-02-26 16:52:01 +00:00
jenkins-bot 72756d5a26 Merge "MWImageNode: getHashObject -> getHashObjectForRendering" 2018-02-24 13:42:15 +00:00
Ed Sanders d17121d1f3 MWImageNode: getHashObject -> getHashObjectForRendering
The latter was introduced for this very purpose: defining
which attributes affect the rendering (in this case the
thumbnail URL). getHashObject should be reserved for making
full semantic comparisons.

Bonus: Don't distinguish between block/inline images
for URL caching purposes.

Change-Id: I6e6d2547a0d110f07c4d18b8179c168d8c251059
2018-02-24 12:44:53 +00:00
David Lynch abe3d0a4a5 DiffPage.init: Enforce a valid diff mode
Bug: T173400
Change-Id: I48b97e10fc6c6e2ca84563b58dd0bb8f42fa251f
2018-02-22 11:48:37 -06:00
jenkins-bot 3d93d195c7 Merge "Drop IE10 support" 2018-02-22 00:55:50 +00:00
Ed Sanders 05a504887d Drop IE10 support
Change-Id: Ib1cb8fb32c499ba0bdc87ec55e1e2e95d2eb39ec
Depends-On: I68c882e64fba95d5e1bf41f64658fcef7524dcf5
2018-02-22 00:47:38 +00:00
Jforrester 2e87e03a29 Merge "ve.ce.MWGalleryNode: Ensure we always have a focusable element" 2018-02-22 00:33:23 +00:00
jenkins-bot c5cc11079b Merge "ve.ui.MWGalleryDialog: Handle galleries with 0 items" 2018-02-22 00:31:30 +00:00
Bartosz Dziewoński 180eb91f3f Increase selector specificity for .ve-ce-focusableNode-invisibleIcon
Otherwise our width/height rules are overridden by OOUI styles.

Change-Id: I2bbf81231615e6fcfd95573f5f590b5101e66bdf
2018-02-21 22:30:45 +01:00
Bartosz Dziewoński a5e2f60d7e ve.ce.MWGalleryNode: Ensure we always have a focusable element
For galleries with 0 items, this would previously return an empty
jQuery collection, which caused funny rendering issues later.

Bug: T75230
Change-Id: Ia68e4f1b74b5ec494fa3d86f0b792f69eadb02fb
2018-02-21 22:22:49 +01:00
Bartosz Dziewoński 3d422bac2a ve.ui.MWGalleryDialog: Handle galleries with 0 items
We still don't allow inserting such galleries, but we can handle them
in existing content.

Bug: T75230
Change-Id: I5d7350f00871ac295b0ebc00a633b44570347d85
2018-02-21 22:11:41 +01:00
jenkins-bot dd94837192 Merge "MWTemplateTitleInputWidget: recover gracefully if TemplateData not present" 2018-02-21 18:14:12 +00:00
David Lynch bd64b58071 MWTemplateTitleInputWidget: recover gracefully if TemplateData not present
Bug: T187917
Change-Id: Ica0c853e1a7bc908651260df115d59d1939a7939
2018-02-21 11:53:56 -06:00
jenkins-bot 8d3e702976 Merge "Disable tempWikitextEditor for section=new on talk pages" 2018-02-21 01:29:58 +00:00
Derk-Jan Hartman 249c52b6a4 Hide historical diff controls when UA doesn't support JS
Bug: T187780
Change-Id: If29974323ef21016edbbb66870914a6dc37e7bbb
2018-02-20 16:54:31 +00:00
jenkins-bot 8f33fc6225 Merge "Add clearfix to diff page's visual diff element" 2018-02-20 16:52:39 +00:00
jenkins-bot d040645244 Merge "Avoid jQuery.parseHTML" 2018-02-20 16:50:06 +00:00
Ed Sanders 7fe496d8ef Avoid hiding generated #toc
Bug: T187636
Change-Id: I713479616feddb01c48c9bb6dda2f9c4aaf182e0
2018-02-20 16:18:27 +00:00
Ed Sanders fcf6ea9e67 Add clearfix to diff page's visual diff element
Bug: T187687
Change-Id: I4de925964fde7b0fffc6540ba821f9a8162cffe7
2018-02-20 15:04:25 +00:00
Ed Sanders ee5b80aeee Avoid jQuery.parseHTML
Bug: T187713
Change-Id: Ic156d6fb670fa2f79cf3c1d5fe0c6272b53b6440
2018-02-19 15:41:20 +00:00
Ed Sanders f2e7361460 Disable tempWikitextEditor for section=new on talk pages
The temp editor doesn't know about the title input
widget yet, so disable for now.

Bug: T185633
Change-Id: I3e44dcc30ee8372080c7cd8c5fc27eb167e24fc6
2018-02-16 18:32:41 +00:00
Ed Sanders 33858c6818 MWSaveDialog: Another check to see if visual diff is still visible
Bug: T187282
Change-Id: Ia29a335bf6b1bad0eeb55b54094475c7fcc18dfe
2018-02-16 15:21:12 +00:00
James D. Forrester dd3dddb98c Follow-up 0a7a845a4: Missed one
Change-Id: I252cb6678df9df503e07b635384a713f052a8abe
2018-02-14 14:25:07 -08:00
jenkins-bot 0c05b46bff Merge "Remove IE9 workaround" 2018-02-13 17:37:29 +00:00
Ed Sanders e0b7fbe6f8 NWE preview: Avoid skin style clash
Bug: T187075
Change-Id: I6ac6eebca3bd89ce19fb64f6e95809c4d595bc8b
2018-02-13 16:22:56 +00:00
Ed Sanders 119e9ef0f6 Remove IE9 workaround
Change-Id: Ifcb1690934ece7d373c764591e00740d6f1238ee
2018-02-13 10:45:16 +00:00
James D. Forrester b6c18b2d49 Don't try to insertMetas at 0,0, just at 0 now (lest we crash)
Bug: T187112
Change-Id: I56e39276637ea018c1ec742d833d115ee881a5d5
2018-02-12 19:32:23 +00:00
Fomafix 8079d081d0 Remove /* global confirm, alert */
The browser functions alert() and confirm() are not used.

Change-Id: I1b069937fe1548298d55a3e6616e189b72c3e8fa
2018-02-12 10:49:11 +01:00
jenkins-bot 3d0d5667bc Merge "ve.ui.MWWikitextSurface: Implement textSelection 'replaceSelection', 'encapsulateSelection'" 2018-02-08 23:58:24 +00:00
jenkins-bot b2400138a5 Merge "ve.ui.MWWikitextSurface: Make 'textSelection' API chainable methods really chainable" 2018-02-08 19:44:36 +00:00
Bartosz Dziewoński 5ce321bc60 ve.ui.MWWikitextSurface: Implement textSelection 'replaceSelection', 'encapsulateSelection'
Bug: T185917
Depends-On: I39bbbce20336a1286a07bf8032acdfb8a7e0cdb6
Depends-On: I05086ddce2ddd857ff88eba75cfdb6bf877bd924
Change-Id: I1e7ed33275d0a97f4b0b3c9756bbef2f3f3ad73c
2018-02-08 19:50:17 +01:00
Bartosz Dziewoński 5f36aac24c ve.ui.MWWikitextSurface: Make 'textSelection' API chainable methods really chainable
Change-Id: I1292021a4a8dee70cfa203a040f176996e4a13ff
2018-02-08 19:48:33 +01:00
Ed Sanders b14480f49b Assume wpTextbox1 has an API registered already
Bug: T186743
Change-Id: I19b085dfbf6229854c3d70807ffe83685ca811fe
2018-02-07 20:12:51 +00:00
Ed Sanders cefa0ebf7b Add trailing linebreak to NWE's temporary wikitext editor
Bug: T185632
Change-Id: I8225b08484e535668e8b0bd33eb3b8b09b80ff35
2018-02-02 11:10:18 +00:00
jenkins-bot 7dd6aea2d6 Merge "NWE: Use internal paste in compatible browsers" 2018-01-30 17:41:05 +00:00
jenkins-bot e613c8edc4 Merge "Load modules for preview" 2018-01-30 17:40:45 +00:00
jenkins-bot 8e1ec692d8 Merge "textSelection: Implement getCaretPosition" 2018-01-30 16:48:00 +00:00
jenkins-bot 5e2e0013ae Merge "Implement simple methods from $.textSelection API" 2018-01-30 16:47:19 +00:00
Ed Sanders 9e16e1cbd4 textSelection: Implement getCaretPosition
Bug: T185992
Depends-On: Id60f4b8aa177564f5252508ce6cff2424eb03fc8
Change-Id: I1a1a953dfbb299a15ba9d4d3e624e6779e72d11c
2018-01-30 10:54:02 +00:00
Ed Sanders aeb4f2f2b7 Implement simple methods from $.textSelection API
This should make it easier for some gadgets to work
with NWE.

Bug: T185992
Change-Id: Ic60440f345b8226fb5acaeb966e25eb003ad7866
2018-01-30 10:53:49 +00:00
Volker E e64ede5b49 Remove unnecessary and low-contrast opacity
Change-Id: I4853a77679687d23059c118914df42a1d3c2785c
2018-01-29 23:51:08 -08:00
Ed Sanders 9770c80615 Load modules for preview
Bug: T147702
Change-Id: I94f6bdf122d4e2c9fba3103f36c438980ce8228d
2018-01-29 22:35:00 +00:00
James D. Forrester 4ce103abb9 Update VE core submodule to master (c5fddd508)
New changes:
21a5d55b8 [BREAKING CHANGE] Store metadata as block nodes in the main data list
2f9868aae Localisation updates from https://translatewiki.net.
7a224cf4b Remove <style> tags from pasteTarget ASAP
fb4e894b6 Workaround missing child selector in OOUI for menuLayout
fa4f35281 rebaser: Fix sequencing of server operations
931ee29f6 SurfaceSynchronizer: Also translate selections that are not mentioned in the change
d232b8f04 Disable undo/usurp within SurfaceSynchronizer
d1b7fc597 ve.dm.Change: Truncate stores as well as transactions on conflict
7606f684d rebaser: Only apply artificial delay to submitChange events
9473e8b42 Toolbars: Replace $.width with clientWidth/offsetWidth
abb8f2075 ve.ui.DesktopContext: Remove unused CSS
050414205 ve.ui.DesktopContext: Remove old unnecessary CSS
7b8cbb830 Failing test case for losing annotations
5447d33e4 CommentNode: Protect against call after teardown
bf98ca2b6 Rebaser: Use better hack for disabling history commands
90c07f46c Rebaser: uninitialize fully
2a59016e4 Move updatingName recursion guard out of debounce

Bug: T56299
Bug: T185532
Bug: T185544
Bug: T185599
Bug: T185716
Bug: T185747
Change-Id: I45251811e3fbb3323a25ca5cf364e4cb94aa1d01
2018-01-29 08:43:08 -08:00
jenkins-bot d7d026425c Merge "Make visual diffs the default in visual mode" 2018-01-27 00:21:24 +00:00
Ed Sanders 35311ad66d NWE: Use internal paste in compatible browsers
Bug: T185730
Change-Id: I9410707e6e491fe1cbe0b367fccb94a29a1b3145
2018-01-25 17:40:26 -08:00
jenkins-bot 97fbd5619c Merge "Public API for the tempWikitextEditor" 2018-01-24 00:53:11 +00:00
jenkins-bot a77eea97b3 Merge "Sync tempWikitextEditor just before building target, not on every change" 2018-01-24 00:50:41 +00:00
jenkins-bot 14e557e936 Merge "Use jQuery 3 .catch( fn ) instead of .then( null, fn )" 2018-01-24 00:06:11 +00:00
Ed Sanders 8afe6c5c6d Public API for the tempWikitextEditor
Allows users to know when the widget has been constructed,
and access it (e.g. to set an initial selection)

Bug: T185279
Change-Id: I3678996bcf644cc889dd168ac3ce48b5c3633ec1
2018-01-23 15:30:51 -08:00
Bartosz Dziewoński a0e2afef8e Use jQuery 3 .catch( fn ) instead of .then( null, fn )
Change-Id: I676eec0acf25690c2b2dd0b9a414be5fee887395
2018-01-23 15:25:15 -08:00
Ed Sanders d294006d7b Sync tempWikitextEditor just before building target, not on every change
Also ensure tempWikitextEditor is always torn down, even if
target setup fails.

Change-Id: Idc30a9dc00491b8c85353d73cb9ff70afea1d51c
2018-01-23 15:13:10 -08:00
jenkins-bot f52ee56a02 Merge "Toolbars: Replace $.height with clientHeight/offsetHeight" 2018-01-23 23:01:37 +00:00
Ed Sanders 154f49e964 Toolbars: Replace $.height with clientHeight/offsetHeight
Bug: T185599
Change-Id: I43fbce8f221553e9ae03f8385f39a19de01e8eb7
2018-01-23 12:32:16 -08:00
jenkins-bot 53cd2346dc Merge "MWWikitextStringTransferHandler: Perform Parsoid cleanup on result" 2018-01-22 23:43:18 +00:00
David Lynch d97b734352 MWWikitextStringTransferHandler: Perform Parsoid cleanup on result
Parsoid markup delivered as a result of a paste was being handled differently.

Bug: T183173
Change-Id: Ic563d2c5cd1f663f35860892b369fb7ba34b9c55
2018-01-22 14:43:19 -08:00
Ed Sanders 3077bbe51c Remove Firefox support comment
This line isn't solely for supporting FF52, that is the order
in which it is called (move after attach, not before),
but that matches all our other widgets, so not sure
it needs commenting.

Change-Id: I6f3cc5687f1e4b995dff700d0765d14de1927d51
2018-01-22 11:27:46 -08:00
jenkins-bot 97b04fbea5 Merge "NWE: Don't attempt to set selection on unattached textarea" 2018-01-22 19:22:11 +00:00
Ed Sanders f2568c8d7d NWE: Don't attempt to set selection on unattached textarea
Prevents an exception being thrown in Firefox <= 52.

Bug: T185304
Change-Id: Ic9a43e3cf12d4cc566cebb328f8e807e464af634
2018-01-22 18:58:26 +00:00
David Chan c7b76329ad Use ve.dm.MetaList without explicitly requiring metadata index
For future compatibility with Ib5174b0dcba1c24f44d889e08140bee31a064011 .

Change-Id: I15f252ce5d36bc0c38c5f5035e5176bf5e6d96e5
2018-01-21 18:33:28 -08:00
David Lynch a52dc16244 Update TitleInput's getTitle to getMWTitle
cb92c72c63274b332dc81edf473b1b3979ab4bdf in MW core changed this.

Bug: T185231
Change-Id: I9084a11bd40e46bddbcd1922ff549703bc90f60f
2018-01-18 11:39:23 -06:00
jenkins-bot d5bf4d41de Merge "Remember preferred diff viewer" 2018-01-18 15:37:35 +00:00
jenkins-bot 31e7006610 Merge "getSelectedItem() -> findSelectedItem()" 2018-01-17 17:29:36 +00:00
Ed Sanders a1e2cb237c Resize link context item after getting description
Descriptions can run to more than two lines.

Bug: T183650
Change-Id: I3d0a5787cab19abc4851340b08fe4a109e7aec31
2018-01-17 16:06:28 +00:00
Ed Sanders 0169701257 getSelectedItem() -> findSelectedItem()
Change-Id: Idf90335d06800b690063c7b2a781e822f0ee7ba9
2018-01-17 13:39:13 +00:00
Ed Sanders e70fe7c1a1 Make visual diffs the default in visual mode
Bug: T178248
Change-Id: I9fe22862d4415df034a0054f934c9ebd1d731a5d
2018-01-17 13:31:07 +00:00
Ed Sanders 7661081ab9 Remember preferred diff viewer
Separate the preference by surface mode, so you can
use a different preference for NWE.

Bug: T178691
Change-Id: Ib8494a4562ce766a7c8ef7ec1447d06f5d0f17c5
2018-01-17 13:31:07 +00:00
jenkins-bot 140ec5f2ab Merge "NWE: Show temporary wikitext input widget while loading" 2018-01-16 18:13:47 +00:00
Ed Sanders b1ea5d618a Don't pass wikitext to requestPageData if unmodified
Bug: T184875
Change-Id: I41a72a9c7546fafc834bf837e507d9359872ff11
2018-01-14 16:16:47 +00:00
Arlo Breault 25e3662c00 Remove autoGenerated hack
Reverts some of 471e40e

Depends-On: I2b5c7ff552b3322be74f79a81936c41d58fecabc
Change-Id: Ibfcd4ced6c58c1cd0d362af3bdb43ce4e6879941
2018-01-12 11:52:42 -05:00
jenkins-bot 2091b8634a Merge "Use section fragment after-save even if the query is empty" 2018-01-10 21:41:59 +00:00
jenkins-bot 2ea64bdd27 Merge "Change save dialog accesskey to be entirely off the trigger" 2018-01-10 21:30:51 +00:00
Ed Sanders 886faf2adc NWE: Show temporary wikitext input widget while loading
Bug: T184614
Change-Id: I2e4964cb6329660957815dcb9a74d2ad24d5256b
2018-01-10 21:34:53 +01:00
jenkins-bot 9768750cd3 Merge "Use findItemFromData instead getItemFromData" 2018-01-10 19:54:30 +00:00
David Lynch 64944c119a Use mw.storage instead of localStorage
mw.storage catches errors, so we won't crash horribly when the user has
localStorage disabled / full.

Bug: T181822
Change-Id: I212994eb535b9a8fb5f6c09deaa10b16c3d7f10e
2018-01-10 11:44:24 -06:00
David Lynch a89c79dc79 Change save dialog accesskey to be entirely off the trigger
Accesskeys in this situation are unreliable cross-browser. Firefox won't
trigger the accesskey inside the dialog. We can manually simulate it, via the
existing trigger.

Bug: T121183
Change-Id: Ib919d8b9fcd9324a517037bcc6ef93a26d1488b9
2018-01-08 11:52:06 -06:00
Ed Sanders c41fd90a15 MWImageModel: Check selectedNode exists before asking for property
Bug: T180521
Change-Id: I1c10929abd6f5c4afa03a65904bc76fc82f8fcbb
2018-01-08 15:31:13 +00:00
David Lynch 874ba30ce8 Use section fragment after-save even if the query is empty
Bug: T181075
Change-Id: If2d1107982d3f947330c750c635ee221ab71610f
2018-01-05 11:55:38 -06:00
Bartosz Dziewoński 23158de319 Fix context menu for mobile TargetWidgets
Depends on Ica66325a8267d14f25fbc537b956573d1d3cc336 in VE core.

Bug: T157084
Change-Id: I9d9839d7e96eb1ef254e11554acfb955750a2915
2018-01-04 16:53:40 +00:00
jenkins-bot 683ac88fcc Merge "doc: Bump copyright year" 2018-01-03 19:20:07 +00:00
James D. Forrester 0a7a845a42 doc: Bump copyright year
Change-Id: I0b299c840ede1a1b8552cecfc70c5760ab036181
2018-01-03 17:45:07 +00:00
jenkins-bot fad1466d84 Merge "Fix editfont size in source mode" 2018-01-03 01:12:25 +00:00
jenkins-bot 75d4300ba6 Merge "ve.ui.MWSettingsPage: Fix doc comment" 2018-01-02 20:11:33 +00:00
Ed Sanders 459ce75cb2 Fix editfont size in source mode
Bug: T182320
Change-Id: I777a1a80cb9887bc473aecb5d7b25fd6454a3d60
2018-01-02 19:20:18 +00:00
Bartosz Dziewoński 4987c07793 Move things that are not modules out of modules/ directory
* Move SpecialCollabPad.php to /.
* Move screenshots for BetaFeatures to images/.
* Move localisation messages to i18n/.

Change-Id: I874ae135a3ac58118c3dea105136c8c8b6fb41bc
2018-01-02 11:05:23 +01:00
Bartosz Dziewoński 5f7e60e938 Remove unused files loading-ltr.gif, loading-rtl.gif
No longer in use since 6d8fbd8221.

Change-Id: If0392c49985fdd5b07c336e17eb5360e0a71770a
2018-01-02 10:47:32 +01:00
Translation updater bot 93b4371954 Localisation updates from https://translatewiki.net.
Change-Id: I304a6848db09772c9603b19a1dbc386f80f0d109
2018-01-01 09:21:05 +01:00
Bartosz Dziewoński 578c55b7c1 ve.ui.MWSettingsPage: Fix doc comment
Change-Id: Iff4e8854124340a30081009221cde5b2831c81f3
2017-12-30 03:26:13 +00:00
Translation updater bot 327f3c1219 Localisation updates from https://translatewiki.net.
Change-Id: I809d676bdb78d17f0a6866ca05f021c3e9c64bdf
2017-12-29 10:07:04 +01:00
Translation updater bot f7c0a70b9e Localisation updates from https://translatewiki.net.
Change-Id: I39cb150918eaee64b034e88a4726a31c04f29331
2017-12-28 10:00:15 +01:00
Prateek Saxena ecd663c4a0 Use findItemFromData instead getItemFromData
Depends-on: Ia2110f71d1642f61451cb8acc7e8a930d0feb31f
Bug: T76630
Change-Id: I379da96a42c440c7d2d5dc2f3de2773c03546c04
2017-12-28 11:53:29 +05:30
Translation updater bot 6e46084b89 Localisation updates from https://translatewiki.net.
Change-Id: Ife309d8d0cce6332fee9ff23796a92c3d8c6f53b
2017-12-27 10:32:31 +01:00
Translation updater bot 035ccf0d7e Localisation updates from https://translatewiki.net.
Change-Id: Ic3ef5d2e35085be6121a442740ab8c6fd188721d
2017-12-23 22:27:16 +01:00
Translation updater bot 906956aae7 Localisation updates from https://translatewiki.net.
Change-Id: I81e6aa591bec1ac4ca53a4ab0b4f0e3a31af20fb
2017-12-20 23:23:06 +01:00
Translation updater bot 90cdac7b46 Localisation updates from https://translatewiki.net.
Change-Id: I7c7ae2a3327ad676a4db0461d871dd2d276ac86d
2017-12-18 23:07:22 +01:00
jenkins-bot 5457615129 Merge "Add section id to URI fragment on save" 2017-12-18 10:55:35 +00:00