Commit graph

156 commits

Author SHA1 Message Date
Ed Sanders 9770c80615 Load modules for preview
Bug: T147702
Change-Id: I94f6bdf122d4e2c9fba3103f36c438980ce8228d
2018-01-29 22:35:00 +00: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 2ea64bdd27 Merge "Change save dialog accesskey to be entirely off the trigger" 2018-01-10 21:30:51 +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
James D. Forrester 0a7a845a42 doc: Bump copyright year
Change-Id: I0b299c840ede1a1b8552cecfc70c5760ab036181
2018-01-03 17:45:07 +00:00
Ed Sanders 8f612fbe64 Pass editor mode (visual/source) to tracking code
Change-Id: Iba5d3c66ecbd2872d76ea12f795ef3bebaae9d81
2017-12-07 11:14:00 +00:00
Ed Sanders 38dba57e95 Follow-up I80d82ad87: Only add linebreak to non-empty documents
This is the same behaviour as the old editor, and
unbreaks editors that use placeholders.

Change-Id: I7b5a18f1fb0d41c5dc08d1b893c90db2bf3dbd86
2017-11-21 17:14:08 +00:00
Roan Kattouw f37caa6a6f Move source mode newline hack down to ArticleTarget
We need this hack when visually editing articles, but not in e.g. the
Flow integration. Move it down so that mw.Target has a clean
parseDocument method that can be used by Flow without undesirable
newlines being introduced.

Change-Id: I52bba88b3d33c3d6d16c4cf832f23f970a243abf
2017-11-17 13:15:27 -08:00
David Lynch 001b945513 ArticleTarget: remember whether we preloaded, so it can affect the save button
Idea being: preload use case is often "load content, maybe with parameters,
immediately save it", so we can treat it as being already-modified for saving
purposes.

Bug: T179063
Change-Id: I35ff04bc9cb5172edf8174832624145973aa1fdb
2017-10-30 16:40:57 -05:00
Ed Sanders 581847acb3 Show visual diffs in wikitext mode
Bug: T170371
Change-Id: I8fd9ed4f804444ec486c4df72125cdeb04da0d5f
2017-10-11 20:31:39 +01:00
Ed Sanders 43763f0a75 Target teardown refactor
* Rename 'deactivate' to 'tryDeactivate' as it may prompts
  the user to deactivate.
* Merge 'cancel' and 'teardownSurface' in to 'teardown',
  extending the parent method.
* Rename elementsThatHadOurAccessKey to $saveAccessKeyElements
  and move teardown to parent class where it is setup.
* Move toolbarSaveButton teardown to parent class where it is setup.
* Cleanup changeDocumentTitle

Depends-On: I9d97614695272dca6936ef6f3461178fcf0368a8
Change-Id: Ie998a04c21f6615b4415edf471310db5edca3b5a
2017-10-05 10:26:46 -07:00
Ed Sanders ff896e0be6 Always use trackingName for tracking
Change-Id: Ifc7d3275277628b310f5c017c43a76f5a7c25ea7
2017-10-02 22:20:53 +01:00
Bartosz Dziewoński 2b3998df4b ve.init.mw.ArticleTarget: Add 'wpUnicodeCheck' field to wikitext form submission
Bug: T177041
Change-Id: I28a7ec0710595977e5ec889016dd280d60e93034
2017-10-02 17:09:04 +02:00
Ed Sanders 1b8f8d8908 Replace wg(Relevant)PageName with target#pageName
The default value of target#pageName is wgRelevantPageName
but other targets my override this, or change it dynamically
(e.g. ContentTranslation).

Also remove duplicate setter of pageName in mw.ArticleTarget,
already set in mw.Target.

Change-Id: Iebd1def1d4142978a673afec584a0b663644d176
2017-09-26 13:22:00 +01:00
David Lynch c440a3576f DesktopArticleTarget: Support preloadtitle in source mode
Can't support it in visual mode, since there's no new-section handling at all.

Bug: T51622
Change-Id: I763d5fff156e9ef3893bd882fab1dc2d47121728
2017-09-18 10:18:37 -05:00
jenkins-bot 779dcc2164 Merge "ArticleTarget: Make save commands triggerable from anywhere" 2017-09-13 15:40:19 +00:00
Ed Sanders f9562838bf ArticleTarget: Make save commands triggerable from anywhere
Change-Id: Iea5b2ff1210b0b28a58017f198f55124c9a3348d
2017-09-13 12:00:19 +00:00
Ed Sanders ebce67b6ab Remove pageName/revision from ArticleTarget constructor
Other page state is read directly, rather than passed in.
If we come up with a use case for passing this in at a later
date we can reconsider the best way to do this.

Change-Id: Iee7e608c969776b89dbb38b3b56a5177e48344af
2017-09-13 12:57:37 +01:00
Ed Sanders 682787f312 Change ArticleTargetLoader#requestPageData API to use options object
Change-Id: I02e6218a8359b1cbc8fed1a34d68206a2a154d46
2017-09-13 12:57:37 +01:00
Bartosz Dziewoński df9e564b73 Stop requiring deprecated EditPage::getCheckboxes()
Instead, use getCheckboxesDefinition(), and build our save form
checkboxes from that rather than extracting them from the HTML.

The ability to have non-checkbox fields there is removed, as that was
never intentional and is now impossible.

To avoid transient problems during deployment (old JS code cached in
the user's browser receiving the new format of API responses), the old
property is kept in the API response. We should remove it next week.

Bug: T174613
Bug: T174686
Change-Id: I5bfca5e116fe790302c3b6ac1357e80237fb1ed2
2017-08-31 17:47:15 +02:00
David Lynch dc101c6169 mw.ArticleTarget: strip HTML tags entirely from source-mode summary
Bug: T173711
Change-Id: If8b354b2788285ea27472bf9a16544f8e5c091f8
2017-08-29 12:01:33 -05:00
jenkins-bot 7b17760ad6 Merge "ve.init.mw.ArticleTarget: Fix parsing of preview documents" 2017-08-01 17:40:51 +00:00
Bartosz Dziewoński e31ffa9199 ve.init.mw.ArticleTarget: Fix parsing of preview documents
ve.init.mw.Target.static.parseDocument requires that its parameter be
a complete HTML document with a single root tag, otherwise some of its
workarounds break horribly in IE 11 (and possibly Firefox).

Bug: T171600
Change-Id: Iaacf24f7bef40a24230fcfa08e15bab31b1587c0
2017-08-01 17:16:43 +00:00
David Lynch 5f6e186ed4 ArticleTarget: set local config to hide welcome dialog
This stops the welcome dialog from being displayed repeatedly if the user
edits the article multiple times in the same pageload.

Bug: T170983
Change-Id: I8cc5990e9acb1ac09a2d6dd95eef8042c70088c7
2017-07-19 14:29:49 -05:00
Ed Sanders 835a775a49 build: Upgrade grunt-eslint from 19.0.0 to 20.0.0
Mostly indent and regex fixes.

Change-Id: Iaf9d02363c78cb71deec5c4cab53a05b67f60600
2017-07-18 12:55:33 +01:00
jenkins-bot 05bc265198 Merge "Keep TOC in correct place in document" 2017-06-28 12:31:33 +00:00
Ed Sanders fd1adfb3b5 Keep TOC in correct place in document
Change-Id: I6ad8cd8cbd7ef902204408673eb096b7405abd24
2017-06-22 15:16:15 -07:00
Ed Sanders 11e6e25ac6 Clear all diff state when switching editors
Bug: T168618
Change-Id: I19ff5054b87568546bfe1202d67c5d863e1549be
2017-06-22 10:54:04 -07:00
Ed Sanders 9dd638a5ab Move preview document filtering into MWSaveDialog
Also:
* Make mw-content-DIR nest inside mw-body-content
* Use ve.filterMetaElements

Change-Id: Ic70c7dff0f74b81f92b8bd48e8092549947990ba
Depends-On: I478fe1f39164b9fd7e71987b818b8f668d1a7020
2017-06-20 23:50:44 +00:00
Ed Sanders 75d583a0d9 Use static parseDocument method
Change-Id: I545a58ffcbf1c7c57c197f4858958de835a40394
Depends-On: I5b36e187a5e8bb68b47b2fccf5b46c08b81b01d9
2017-06-08 14:43:09 +01:00
Ed Sanders f178061117 [DEPRECATING CHANGE] Make Target#createModelFromDom static
Change-Id: I019689f87ac0f7f40a8a7600029b5ce1bc92e77f
2017-06-08 14:35:31 +01:00
Bartosz Dziewoński 4f55d8066e Update for deprecation of OOjs UI openWindow/closeWindow promise
Bug: T166729
Change-Id: I95b85a8c0d488993c11da74e1d856fef6cf0ebb4
2017-06-02 00:21:58 +02:00
Ed Sanders 1a577b668d Move getWikitextFragment up to Target from ArticleTarget
Any MW target may want to get a wikitext fragment, not just
ArticleTargets. Requires us to move refreshEditToken up as well.

Change-Id: I27d30e20fefd5ba266d3d8e5f99383e9b4d4993a
2017-05-21 07:57:49 +00:00
Ed Sanders debcd678b5 Generate visual diff only after switching to visual diff tab
Bug: T164724
Change-Id: I48e49d4b68cc769b3e9d061983de4c78b5ad5c34
2017-05-09 10:09:39 +00:00
Ed Sanders 54fc920622 Captcha improvements
* Fix focus and resize/scroll into view after the
  captcha has loaded (so after the image has loaded
  for FancyCaptch).
* Add margin between input and captcha
* Enable enter-to-submit on captch input field.
* Unify code for simple/math/questy and correctly
  render math as HTML (by looking at the mime type)

Change-Id: I10433cefbfea8569674c120dde5b489570e20966
2017-05-02 17:49:12 +01:00
Ed Sanders 998ae22b2d Follow-up I488fd7e74: Adjust saveFail calls for new function signature
Bug: T164157
Change-Id: I41b946af5a8b80211b0672d7012835f2c9e1dc2b
2017-05-02 16:39:04 +01:00
Ed Sanders 7c0fc8d3b9 Fix minor lint errors and typos
* Commas that should be semicolons
* Unnecessary 'call's

Change-Id: I11a80702b5396a36e3deecc6e706a397cc354bd8
2017-04-29 12:36:17 +01:00
jenkins-bot b268b4f80f Merge "ve.init.mw.ArticleTarget: Only retry once after a 'badtoken' error" 2017-04-24 19:48:35 +00:00
Bartosz Dziewoński 371ac353cf ve.init.mw.ArticleTarget: Use a simpler error message when site is read-only
Sites like to customize 'readonlywarning' with things that we can't parse.
Instead, use 'apierror-readonly'. The old message is still shown in edit
notices.

Bug: T163455
Change-Id: I592accde17b256ecee27820df12d9d312499f8f7
2017-04-21 00:08:57 +02:00
Bartosz Dziewoński 91a75e3fef ve.init.mw.ArticleTarget: Only retry once after a 'badtoken' error
If we retry and get another 'badtoken' error, something is very wrong,
and trying again and again is probably pointless. This behavior also
matches how mw.Api#postWithToken handles bad tokens.

Bug: T163493
Change-Id: I488fd7e74e37922044491695d6c9025a45531281
2017-04-20 22:42:10 +02:00
Ed Sanders a6b4258f47 ArticleTarget: Refactor savedialog/target interaction
* Pass a wikitext promise, instead of wikitext
* Handle writing of content to the dialog from within
  the dialog.
* Handle diff errors within the dialog.
* Never disable the 'Return to save form' (approve) button
* Remove redundant messages

Change-Id: Ibd76e8951998f751abfb4f407682202c2f73ac7e
2017-04-10 10:29:41 -07:00
Ed Sanders 939a1f4005 VisualDiff: Fetch original doc from Parsoid if fromEditedState
Bug: T160741
Change-Id: Ied0641cc868a8dd4cf540eba75e1b248277a96b0
2017-04-09 22:28:53 +01:00
Ed Sanders 97f6bdd79a Make Target#getVisualDiff async
This will be required later when we have to fetch the original
document from the server before running a visual diff.

Change-Id: I351688f4d1fec892bc297f40c209939cbb2ccf95
2017-04-09 13:26:22 +01:00
David Lynch 758b2fd689 ArticleTarget: building summary in source mode, strip links from section titles
Bug: T162017
Change-Id: I76e96d1e36f7bad0b3e17d8bb842c6ad1172f8cc
2017-04-05 11:16:11 -05:00
James D. Forrester 8463524e18 MWSaveDialog: Run links through a render function for preview & visual diff
Provide a utility funcition in ve.init.mw.LinkCache to do this.

Also use this in ve.ce.MWTransclusionNode/ve.ui.MWPreviewElement, and
introduce to ve.ce.MWExtenionNode

Bug: T73900
Bug: T153535
Change-Id: Ieb9a0274b8c5ae1932c431546f09d18000fa6dd9
2017-03-31 10:51:35 +01:00
Ed Sanders 6d891dc049 Pass section when resolving conflicts in NWE
Bug: T154217
Change-Id: I61f69df228fcbe25840b166a2081cacdb0417431
2017-03-29 22:21:17 +01:00
Bartosz Dziewoński 645eb8e543 Don't use '#content #firstHeading', unnecessarily specific
Simply '#firstHeading' does fine.

Change-Id: I7c72496f0d58b86582bd33c018b618e1b75f2c7a
2017-03-29 17:37:29 +00:00
jenkins-bot 16918a08cf Merge "ve.init.mw.ArticleTarget: Don't construct element IDs dynamically" 2017-03-28 17:23:11 +00:00
Bartosz Dziewoński 6a9f8a1417 ve.init.mw.ArticleTarget: Don't construct element IDs dynamically
Easier to find the usages this way.

Change-Id: I38ce1389af1d30ff1f5e0214b68d094a67da046f
2017-03-28 19:01:46 +02:00