Commit graph

1075 commits

Author SHA1 Message Date
Ed Sanders 6459de6978 Move module pre-loading from DAT.init to ArticleTarget
This makes this feature available on Mobile as well.

Change-Id: I26a2af63b3665f5563f8562f1a8e94287cad439f
2018-06-10 16:07:44 +01:00
David Lynch d3824dee76 DesktopArticleTarget: Section-scroll as part of restoring the page
We were scrolling to the edited section when we saved the page, and otherwise
reverting scroll position to the top if we just abandoned the edit. This
unifies these cases, so any section-edit which leaves the editor will scroll
to the section being edited. (If section==new and the edit is abandoned, it'll
scroll to the last section on the page.)

Bug: T194631
Change-Id: Ic2aca68b3127c435545644912b96212bcfa6648d
2018-05-25 16:30:22 -05:00
David Lynch 4d5fc16a9a MobileArticleTarget: Include placeholder for references
Cite's a08febb0afa2d changed the rules for adding the Cite button to the
toolbar – it now requires a placeholder slot in the toolbar, rather than
finding the link tool and adding itself after that. As ve.init.mw.Target
was updated for this it kept working on desktop, but MobileArticleTarget
completely overrides the toolbar, and was missed.

Bug: T195191
Change-Id: I55c9de9e736bb83f5f05028f2fc07af0ad996050
2018-05-24 17:18:50 +00:00
David Lynch c76c41f3dc DesktopArticleTarget: on escape close toolbar dialogs first
Pressing escape will close toolbar dialogs (find/symbols/etc) if they're open
instead of trying to teardown the editing surface.

Bug: T190068
Change-Id: I27080649392f17344c901269029368fa0b3c2963
2018-05-19 19:29:34 +02:00
jenkins-bot 60ef3af0b1 Merge "Fix position of inspectors/context inside dialogs" 2018-05-18 14:55:01 +00:00
Bartosz Dziewoński dfe65db5bb Fix position of inspectors/context inside dialogs
Override #addSurface instead of #getSurfaceConfig, so that the
$overlayContainer option only applies to the "main" surface of the
Target rather than all of the surfaces (including those in
TargetWidgets).

Bug: T194433
Change-Id: I61c609e2d52814b4547fb5292a0bfb237c4c218f
2018-05-18 14:26:00 +00:00
David Lynch 150fb16008 MobileArticleTarget: fix deprecated toolbar calls
Change-Id: If7d4b52c29e9648f17eda2d62f8fcdad744f82ae
2018-05-18 15:59:15 +02:00
Ed Sanders 9b8e501333 MobileArticleTarget: Show both edit modes in edit switcher, for consistency
Change-Id: I48193db0d8282e31265e95884878eb81cbaeeedd
2018-05-16 15:20:25 +00:00
jenkins-bot 4ca3f1661d Merge "ArticleTarget: Change rendering of category preview" 2018-05-15 13:28:57 +00:00
David Lynch 5d19272aa1 ArticleTarget: Change rendering of category preview
Just generate the standard wiki skin markup for categories. Adjust linkcache to always know
whether links are hidden categories. (It previously knew *sometimes*,
depending on whether a MWCategoryWidget had interacted with that category.)

Make the save dialog preview use the same method as the bottom-of-editor preview.

Bug: T194092
Change-Id: I37fea15eaef0a5847f27ce41dd92370a4bf353b6
2018-05-13 16:40:59 -05:00
Ed Sanders 900b74e9a9 Update VE core submodule to master (14bcc9256)
New changes:
14bcc9256 Give toolbars groups names

Local changes:
Give toolbars groups names

Also create an empty placeholder group for reference tools.
This allows targets to specify if they should show them.

Depends-On: Iccaf35cf941cb47ad55e8d98373461f5eaff5fed
Change-Id: I0bace5e5fe05f9c214d57a74c478b48a7dcaec3b
2018-05-13 18:09:33 +01:00
Ed Sanders 5974c59b97 Follow-up Ifdc951fdc: Don't use target when it doesn't exist
Change-Id: Idf546f7b1d2c12f59b5024f3365665214e4e5f49
2018-05-07 21:22:09 +01:00
jenkins-bot 95d831c2de Merge "Create getters for localised APIs (getContentApi/getLocalApi)" 2018-05-07 15:51:45 +00:00
Ed Sanders 478b0bcbb9 Create getters for localised APIs (getContentApi/getLocalApi)
Pass through the current document when available, otherwise
assume the current surface's document.

Also add a getter for getPageName, so that can vary based
on the target document.

Bug: T193856
Change-Id: Ifdc951fdc6a43b924d102e3fcd7e59e52023757b
2018-05-05 14:32:55 +01:00
jenkins-bot 1f6cf4883d Merge "ve.init.mw.DesktopArticleTarget.init: Edit the latest revision when viewing a FlaggedRevs-stable one" 2018-05-05 01:03:04 +00:00
Bartosz Dziewoński 192a232410 ve.init.mw.DesktopArticleTarget.init: Edit the latest revision when viewing a FlaggedRevs-stable one
When the user is viewing the last stable revision of a page which has
newer unreviewed revisions, FlaggedRevs wants us to open the latest
(unreviewed) revision of the page for editing.

Use the JS config variable 'wgFlaggedRevsEditLatestRevision', provided
by FlaggedRevs since change I4c9804fe2c4924e28770807881379ddca4fd8b76.

Also add an extra comment about loading latest revisions in general.

Bug: T165283
Depends-On: I4c9804fe2c4924e28770807881379ddca4fd8b76
Change-Id: Ic47491e690153d0ad87ce64bfc9e7a28a06fc6e2
2018-05-04 22:04:02 +00:00
David Lynch 3f91a27809 DesktopArticleTarget: track mwedit.ready even if skipping temp editor for new sections
Bug: T193206
Change-Id: I78555b84bde3d5bd14b032862e5a020121fc5c2e
2018-05-02 11:35:42 -05:00
jenkins-bot ffac6b14dd Merge "Check link 'host' in onEditSectionLinkClick" 2018-04-30 15:17:45 +00:00
Ed Sanders f8cebb8f51 Follow-up Ib7e769e: Fix typos in static method calls
Also move desktop-only methods to DesktopArticleTarget.

Bug: T193217
Change-Id: Icc2bb6602a62057da9f841793d8fe06d9814230e
2018-04-30 11:05:43 +01:00
Ed Sanders ad170023e6 Check link 'host' in onEditSectionLinkClick
Bug: T193323
Change-Id: Id67798e5689af9d528bf29bb1b42047adaedaabd
2018-04-30 10:57:45 +01:00
Ed Sanders cddf206f5b Set surface's $overlayContainer in DesktopArticleTarget
Logically depends on Ia96b1a89dd9582303b80be85b3971cf3341cad24.

Bug: T166217
Change-Id: Icc54f87bac46d39e8c49010ed052e1db66827f06
2018-04-27 21:55:12 +00:00
jenkins-bot fd082e577b Merge "ve.init.mw.DesktopArticleTarget: Setup toolbar before section title input" 2018-04-24 16:24:42 +00:00
Bartosz Dziewoński e3378e6d77 ve.init.mw.DesktopArticleTarget: Setup toolbar before section title input
When we set up the new section title input and possibly set its value
(preloading from URL query, or from autosave), the "Save" button on
the toolbar must already exist, because we try to enable it.

Bug: T192901
Change-Id: I3bba86a8c8a9b81014d425db256ff49f06bdaea6
2018-04-24 18:11:42 +02:00
Ed Sanders 1f4baa7b58 Teardown target before reloading article
Ensures that auto-save data is cleared after
creating a new article, or restoring a revision.

Bug: T192770
Change-Id: I348b8522c1a935d7db1243ba8fcbd5b24e3383a2
2018-04-23 21:30:37 +01:00
jenkins-bot 6902e81768 Merge "Use ellipsis on toolbar save/publish button" 2018-04-17 18:34:17 +00:00
Ed Sanders 11eaab48c8 Move redirect building methods from DesktopArticleTarget to ArticleTarget
These are not specific to desktop.

Also make the static builders static, and move VE target specific
code to caller, such as the click handler.

Change-Id: Ib7e769e3d6d339b9e66e1bc924480b0b0d5db17d
2018-04-02 17:32:24 +01:00
David Lynch d77ea2bf16 DesktopArticleTarget: use -published message instead of -saved
Bug: T183901
Change-Id: I09f6e44f9f743f079ca5504ec06706c764ce6e25
2018-03-27 10:49:03 -05:00
jenkins-bot 58f9cf7050 Merge "Autosave section title when adding new section in source mode" 2018-03-26 21:19:26 +00:00
Ed Sanders 28d8d2923e [BREAKING CHANGE] Use upstream tryTeardown instead of close in MobileArticleTarget
Change-Id: I33bcc98bc75ab049568de47faceb3f3390df5901
2018-03-26 15:32:55 +01:00
Ed Sanders 307e6c2922 Move some deactivation code from DesktopArticle to ArticleTarget
Also rename tryDeactive to tryTeardown.

Change-Id: Ie89d59a62826bcfe3d30ad04f89d3c4211cc34f4
2018-03-26 15:32:55 +01:00
jenkins-bot 2c96d24c76 Merge "Avoid jQuery.parseHTML" 2018-03-20 21:44:37 +00:00
jenkins-bot 0ed47a025e Merge "Only use pre-computed measurements for position loading bar" 2018-03-20 21:44:36 +00:00
Ed Sanders 0f56af016d Use ellipsis on toolbar save/publish button
Bug: T189803
Depends-On: Ic29717a660de5e80ee2a37f583b2a61c11fa87c4
Change-Id: Idaf80ea7e6ae9ffa165a8638af886bf6ab21a7f0
2018-03-20 19:46:36 +00:00
jenkins-bot ff21c17c37 Merge "Remove unnecessary attachToolbarSaveButton override" 2018-03-20 17:25:11 +00:00
Ed Sanders b80075a5e4 Avoid jQuery.parseHTML
Change-Id: Iaf5cbe27b8883d6e4c468a3b4dae11438d264894
2018-03-16 15:43:03 +00:00
Ed Sanders a1dffa2dd7 Only use pre-computed measurements for position loading bar
Change-Id: I5fc17a432de8030a6154c4e961ac10c73f391a79
2018-03-16 15:39:21 +00:00
jenkins-bot 79f27a5447 Merge "Clear VE autosave whenever WikiEditor is loaded" 2018-03-14 18:25:48 +00:00
jenkins-bot 3c861d7ed1 Merge "Clear auto-save when switching to fallback wikitext editor" 2018-03-14 17:55:44 +00:00
Ed Sanders e0419f8388 Autosave section title when adding new section in source mode
Change-Id: Idcbe2f12e3eb0bb85e2c986885bd8084b16dbe5b
2018-03-12 12:25:12 +00:00
Ed Sanders e78379a395 Attach deactivate code to namespace tab ('Main'/'Article')
Bug: T189380
Change-Id: I9f05722b9a1c740f9f982d9c5690d48046f19fdd
2018-03-10 19:07:11 +00:00
Ed Sanders c3c3c60f1f Clear VE autosave whenever WikiEditor is loaded
Bug: T189381
Change-Id: I21a76dc32327d6c6e72a793d9b579cb7b6a5e32e
2018-03-10 18:34:17 +00:00
Ed Sanders ec6d9b235a Clear auto-save when switching to fallback wikitext editor
Bug: T189381
Change-Id: Id89fa2a673ad8aef3826c0ef862770bf522bbdcf
2018-03-10 18:04:44 +00:00
Ed Sanders 8b208c80d5 Remove unnecessary attachToolbarSaveButton override
It's identical to the code inherited form ArticleTarget.

Change-Id: I7fe7a48b0614f2ac2665ece042bb95a6f77303ad
2018-03-10 16:20:30 +00:00
Ed Sanders 19d9e9eb98 Tag TODO comments with bug number
Change-Id: I965e8d4bed4fdfa24738ca5cce0ae3f51e7f2b40
2018-02-28 14:36:42 +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 05a504887d Drop IE10 support
Change-Id: Ib1cb8fb32c499ba0bdc87ec55e1e2e95d2eb39ec
Depends-On: I68c882e64fba95d5e1bf41f64658fcef7524dcf5
2018-02-22 00:47:38 +00:00
jenkins-bot 8d3e702976 Merge "Disable tempWikitextEditor for section=new on talk pages" 2018-02-21 01:29:58 +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 119e9ef0f6 Remove IE9 workaround
Change-Id: Ifcb1690934ece7d373c764591e00740d6f1238ee
2018-02-13 10:45:16 +00:00