Commit graph

149 commits

Author SHA1 Message Date
proc c824dc383a Fix editnotice order in VisualEditor
Bug: T263255
Change-Id: I83e6910c4886cc5a0170dc05e60459f3427aebe5
2020-10-16 01:14:21 +01:00
Thiemo Kreuz e13781ce1f Remove non-helpful lines of documentation
These do nothing but repeating literally what the code already
says.

Change-Id: I93c4a60f190e17a845e37e48b1c0a80bde2292c0
2020-10-07 15:24:50 +02:00
Thiemo Kreuz 1230e25cbf Add missing constant visibility keywords
Not used outside of this class. Confirmed via CodeSearch.

Change-Id: I8ffed9ed88bc60e7529d277df5b474d85437ed6e
2020-09-09 16:59:39 +02:00
Bartosz Dziewoński 8415d7f7bf ApiVisualEditor: Fix 'false' used as content for non-existent system messages
getDefaultMessageText() returns false when the message doesn't exist.
It was incorrectly treated as a string by this code.

Follow-up to 3ec5e04a37.

Change-Id: Ib94a30697bd20133e46cbd31c14caf5f0c4169dd
2020-08-16 21:06:18 +02:00
jenkins-bot 5c75faed31 Merge "Move parseWikitextFragment up to ApiParsoidTrait" 2020-07-27 17:01:13 +00:00
Ed Sanders eb98439453 Move parseWikitextFragment up to ApiParsoidTrait
Rename to 'transformWikitext' and rename 'postHTML' to match.

Change-Id: Icb1f519c7a3a88f36c51479333be8cfb5617dbe0
2020-07-22 14:44:11 +01:00
Ed Sanders 9089993417 API: Use ParamValidator constants
Also drop mustBePosted functions as the default implement
is already correct.

Change-Id: Ib8e0fe3f2638892df768438c9f47f90b4ca66968
2020-07-20 21:43:59 +01:00
jenkins-bot e358865765 Merge "Replace uses of Revision constants" 2020-07-03 04:18:58 +00:00
Ed Sanders 3ec5e04a37 NWE: Pre-populate editor when editing system messages
This is the same behaviour as EditPage.php

Bug: T256999
Change-Id: Id33161982742c16222ba5d58d2e800ab04dccca2
2020-07-03 04:21:18 +02:00
DannyS712 5fb5bc3060 Replace uses of Revision constants
Bug: T257010
Change-Id: I20c7737d0d00b3f47c2781c1c968db6a74a68ad3
2020-07-03 00:40:59 +00:00
Bartosz Dziewoński c73953a5f7 Fix switching to visual with changes in non-RESTBase mode
Bug: T253467
Change-Id: I02a524a539530f1907f276ef80b666dd446ae6b3
2020-06-29 16:23:02 +00:00
Ed Sanders 703fbaa6a2 Factor out revision fetching and validation logic to ApiParsoidTrait
Change-Id: I7707b419afac2c11d7d0ca91a597ffc68e5e3fe4
2020-06-26 14:44:47 +02:00
Bartosz Dziewoński 1b86093b70 api: Specify PARAM_TYPE => 'text' for multi-line text parameters
This allows Special:ApiSandbox to display multi-line text boxes for
them, which makes testing the API easier.

Change-Id: I10541a8e9033d81740033da80d842f58d1d3e0de
2020-06-10 21:23:13 +02:00
jenkins-bot a28a263192 Merge "Drop linting from the VE API" 2020-06-04 17:12:54 +00:00
Ed Sanders f01d4ab35d Drop linting from the VE API
Calling the linter is very slow as the result is not
cached. Extensions needing this (DiscussionTools) should
just call the Linter extension API directly.

Bug: T253799
Change-Id: I994b52ca70c29a32900741a36087f10144396720
2020-06-04 18:51:38 +02:00
jenkins-bot c65b311ecb Merge "Tweaks in API code per code review" 2020-06-03 10:40:14 +00:00
Umherirrender 742d91fe37 Parse messages in string context
The current default for Message::__toString() is to parse, so this
keeps that behaviour unchanged.

Change-Id: I528a60c1d9c0f8c1596a15e06a764200a2b2565f
2020-05-24 14:46:40 +02:00
Bartosz Dziewoński 63638e380d Tweaks in API code per code review
Follow-up to If5c8d95560cbb078ae4980f4a912cbaeafe53d3e.

Change-Id: Iff72b5b21c0f5ce6a45cc48d6a8fc060159d7d23
2020-05-19 19:56:56 +02:00
Bartosz Dziewoński 0528f806fa Extract Parsoid/RESTBase stuff out of our API code
Goals:
* Allow other extensions to reuse these methods (maybe upstream them
  to MediaWiki core later)
* Allow ApiVisualEditorEdit to extend ApiEditPage. We'll be able to
  reuse its definitions for API parameters instead of duplicating
  them, and we won't have to pass around unrecognized parameters.

Bug: T252573
Change-Id: If5c8d95560cbb078ae4980f4a912cbaeafe53d3e
2020-05-12 21:17:29 +02:00
Bartosz Dziewoński d92e600d58 Simplify API modules setup
We go through all this trouble to pass the config to the API modules,
and then we don't use it at all (we removed the uses recently in
ce094c72d and d85d30f9b).

If we end up needing the config there again, we can just get it by using
MediaWikiServices::getInstance()->getConfigFactory()->makeConfig( 'visualeditor' )
anywhere we want, like we do all over the place in VisualEditorHooks.

Change-Id: I9d254a9946f0d24783baf68c409b10291a8fd1b3
2020-05-12 18:53:31 +02:00
Bartosz Dziewoński ae86f7290b ApiVisualEditor: Add option to return lint errors from Parsoid
Depends-On: I6bbe2fc5aea07c65eb99768f2c44ed42601792a3
Depends-On: I6bdf5635763ef8a44d44a031c64cd7f289261a32
Change-Id: I723ec766d1244d117f8d624440026fe5af0d3403
2020-04-21 22:49:29 +02:00
C. Scott Ananian ce094c72d4 Remove X-Parsoid-Variant configuration value, which is no longer needed
Reverts Ib1403638b12ec5808f6b81bd114949043aa9ac2e.

Bug: T229074
Change-Id: I9bbc02821d5ee82c9944516ab07d3cb380d2f3a8
2020-03-11 13:24:43 -04:00
jenkins-bot 248f1ea5e4 Merge "Pass a user when creating a new ParserOptions" 2020-03-04 08:12:02 +00:00
DannyS712 0dca373c62 Pass a user when creating a new ParserOptions
Bug: T246861
Change-Id: Idaed22f2b4c1a43be97b48a7718cb5a35a58edd1
2020-03-04 04:57:45 +00:00
Petr Pchelko 543d436d79 Remove usage of deprecated Revision::newRevisionFromTitle
Bug: T246284
Change-Id: I3ba2de7bda3bdc228cb4136d0190c43188b9b185
2020-03-03 20:16:43 -08:00
jenkins-bot 6cd05e686d Merge "Don't display duplicate protection notices when user can't edit" 2020-02-03 17:33:39 +00:00
Bartosz Dziewoński ba3f222e42 Don't display duplicate protection notices when user can't edit
In the core MediaWiki editor, the detailed messages about page
protection are only shown when the user is allowed to edit the page;
otherwise, a generic permission error is shown. Do the same here.

Change-Id: Ia0ca52b9bf556354218b2aa91f141b429b0c5880
2020-01-31 14:55:32 -08:00
Thalia cbf259a6ed ApiVisualEditor: Replace calls to deprecated Title methods
Replace Title::userCan with PermissionManager::userCan.

Replace Title::getUserPermissionsErrors with
PermissionManager::getPermissionErrors.

Change-Id: I1afec4ba62185c3cd555a10ae35cef01b7194221
2020-01-29 20:58:19 -08:00
jenkins-bot 4c8c0e0253 Merge "ApiVisualEditor: Refactor edit notice code" 2020-01-29 21:46:00 +00:00
jenkins-bot 430d890cfb Merge "Pass the "count" parameter to 'cascadeprotectedwarning'" 2020-01-29 21:45:34 +00:00
jenkins-bot c72e3fbd48 Merge "Display log entry underneath 'titleprotectedwarning'" 2020-01-29 21:30:11 +00:00
libraryupgrader 1baeb9ef0c build: Updating composer dependencies
* mediawiki/minus-x: 0.3.2 → 1.0.0
* mediawiki/mediawiki-phan-config: 0.9.0 → 0.9.1

Change-Id: Ibf55f382c586603967da0086f86bfe4924e7cf96
2020-01-26 18:27:39 +00:00
Bartosz Dziewoński a9066989f2 ApiVisualEditor: Refactor edit notice code
* Query permission errors for 'edit' and 'create' in the same way,
  and consistently with how MediaWiki core EditPage does it.

* Prefer using Title::getUserPermissionsErrors() instead of custom
  code for user blocks. The result is the same, except for an extra
  line like "You do not have permission to edit this page, for the
  following reason:".

  Note that this loses the 'type' => 'block' property on each notice,
  which was previously used to track when a block notice was shown.
  This was however removed in 96de1353d3,
  and could probably be re-implemented by using the root 'blockinfo'
  property anyway.

* When Title::getUserPermissionsErrors() returns multiple messages
  (for example, you're blocked *and* the page is protected),
  display them all in a list instead of only the first one, using
  OutputPage::formatPermissionsErrorMessage().

  That method returns wikitext, which we have to parse ourselves. This
  is a bit silly, but I found this approach in SpecialChangeContentModel
  in MediaWiki core, so it should be fine.

Change-Id: Ifaf95d8aab836e45665b1fbdf98dd1980a867d8c
2020-01-17 01:18:46 +01:00
Bartosz Dziewoński ac36b242c3 Pass the "count" parameter to 'cascadeprotectedwarning'
It will now correctly say "page" instead of "pages" when there is just one.

Change-Id: I7be6368da977a7eeba976ca63134efce3db1e01a
2020-01-17 01:17:30 +01:00
Bartosz Dziewoński 18c899374b Display log entry underneath 'titleprotectedwarning'
The message ends with "The latest log entry is provided below for
reference:", but we were not providing it. Use the same code as
'protectedpagewarning' and 'semiprotectedpagewarning', which behave
the same.

Change-Id: Ibe5463aa3d93cd1d6d6e3c0b9da82bfa2c813f86
2020-01-17 01:08:12 +01:00
jenkins-bot 523e9379c2 Merge "ApiVisualEditor.php: Add notices also when not blocked" 2020-01-16 23:29:36 +00:00
Umherirrender a7497703a7 Fix new documentation sniffs
Change-Id: If9fc2d1d29aefdcb61a5f69c28f7d50c86b3ac4a
2020-01-10 16:28:16 -08:00
libraryupgrader 6afa14fe4d build: Updating mediawiki/mediawiki-codesniffer to 29.0.0
The following sniffs are failing and were disabled:
* MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate
* MediaWiki.Commenting.FunctionComment.MissingParamName
* MediaWiki.Commenting.FunctionComment.MissingParamTag

Change-Id: If59d450236a7d1afa3c6a05536abea819535f984
2020-01-10 17:51:43 +00:00
James D. Forrester 2c77e88d2c doc: Bump copyright year for 2020
Change-Id: I30539877543dc2a57bd1428a00d10ac46d8fc294
2020-01-08 09:13:24 -08:00
lens0021 a01f28c8a3
ApiVisualEditor.php: Add notices also when not blocked
Bug: T241693
Change-Id: I2c4355f7a2398b742d635f1de0cf87d4ec527cb3
2020-01-06 17:41:17 +09:00
jenkins-bot 0d0ef6071f Merge "Remove an unused piece of code from ApiVisualEditor" 2019-12-18 10:30:22 +00:00
Thiemo Kreuz 8e4dc67ec7 Fix unchecked array access in ApiVisualEditor
I'm not sure if this qualifies as an actual fix. I don't really know
what this code is supposed to do. Maybe the bad array access is a hint
for a completely different error somewhere else. All this patch really
does is silencing the bad array access.

This line of code was introduced with I1b35b28 in May already. Why does
it start failing now?

Bug: T240961
Change-Id: I5ec2dc453e5d8db5d2f9e49058eda001ed021d3d
2019-12-18 08:22:25 +01:00
Thiemo Kreuz 0f4918e3e3 Remove an unused piece of code from ApiVisualEditor
Change-Id: I5ca2ad9df0decfada199d44366de8efc9f2b26ac
2019-12-18 08:17:01 +01:00
libraryupgrader c8de97fcd2 build: Updating mediawiki/mediawiki-phan-config to 0.9.0
Change-Id: Iaaea284190aa9306177b3ee945a75da631a89b93
2019-12-16 10:11:47 +00:00
David Lynch 46e7b3ba19 Config value for X-Parsoid-Variant
Bug: T229074
Change-Id: Ib1403638b12ec5808f6b81bd114949043aa9ac2e
2019-11-05 10:56:10 -06:00
James D. Forrester 2479f5c7f8 Drop use of wgParser, replaced in 1.32 and to be removed in 1.35
Bug: T160811
Change-Id: Id7332a19d64d83bcbccfd3ac89464dfea593cdc2
2019-10-28 20:10:14 +00:00
Bartosz Dziewoński f31bcc219f ApiVisualEditor: Fix preload handling further
Follow-up to 57ad605dc4.

Pass parameters like when switching from wikitext editor:
* bodyOnly=false
* stash=true

Bug: T233320
Change-Id: Ied2d9a48e884e033ef9d41b2da9cfa3599784ae0
2019-10-28 13:42:00 +01:00
Bartosz Dziewoński 57ad605dc4 ApiVisualEditor: Return 'etag' with 'content' for preloaded content
Previously we were not returning it, so when saving the edit, wikitext
syntax would not be preserved. This was probably not a big problem,
but I noticed it coming up in the logs for T233320.

Now making an edit starting with preloaded content behaves like
switching from wikitext to visual mode, rather than like starting the
edit in visual mode.

Similar to 679e777cfa.

Bug: T233320
Change-Id: Id1ee6877b103fa4274deec11b1b3cacbdcdae606
2019-10-23 22:24:52 +02:00
Bartosz Dziewoński f7ee7dc807 Try using structured logging again
The configuration of Wikimedia wikis should be fixed.

This reverts commit 04407e9eb1
and also makes similar changes to new logging code added in
5d1a67757a.

Bug: T234564
Change-Id: Ic999b050e68b71f5a1737366e16f133e5a557307
2019-10-21 17:04:23 +02:00
Daimona Eaytoy dd1d022c9d build: Bump mediawiki-phan-config to 0.8.0
Change-Id: Iafcf36672189c7729e9936634d95e585ed2247be
2019-10-20 12:27:16 +00:00
Bartosz Dziewoński 5d1a67757a Detect mangled etags from RESTBase and retry via MediaWiki API
Something is causing the 'ETag' headers produced by the "public"
RESTBase (queried directly from the client) to be mangled or lost.
My theory is that some proxy or browser extension is doing that.

When we detect a bad etag when fetching the page contents, discard
the result and try querying the "private" RESTBase via the MediaWiki
API (similar to what we do on private wikis, except there we talk
directly to Parsoid instead of RESTBase). After I463a84de63, that
returns the etag as part of the payload rather than HTTP headers,
and should pass unharmed through whatever is mangling the data.

Also compare and log the two etags.

Bug: T233320
Change-Id: I2ef0ca872597566f74b650aea71bf3f15747a6d7
2019-10-16 19:53:43 +02:00
Bartosz Dziewoński 679e777cfa ApiVisualEditor: Always return 'etag' with 'content'
For consistency, I guess. Also I need this in I2ef0ca8725.

Previously, when querying the HTML content of an existing page, we did
not return the 'etag', on the assumption that anyone who needs it will
instead query RESTBase directly.

Bug: T233320
Change-Id: I463a84de631598243893946ad1d060a9aa0b180e
2019-10-15 18:31:56 +00:00
Bartosz Dziewoński 04407e9eb1 Don't try to use structured data in structured logging, it doesn't work
Our log messages were being silently dropped. Experimentation revealed
that our structured logging system doesn't actually like it when we
try to log structured data.

See: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/VisualEditor/+/540464/3/includes/ApiVisualEditorEdit.php

Put it all in the message strings, whatever.

Change-Id: Iae778f95774df2e24b30387221e39e097e25a4cf
2019-10-02 23:13:40 +02:00
Bartosz Dziewoński 9ce8ae05c7 ApiVisualEditor: Add logging for RESTBase HTTP errors
Bug: T233127
Change-Id: Ide5138d8f8f462b9c3d7da10f26ff57c9d17f1c9
2019-10-02 01:00:32 +02:00
Bartosz Dziewoński c0eb57ed3b Remove Phan suppression for a fixed false positive
Unnecessary suppression causes build failures. Probably fixed by the
EditPage.php changes in e2e543f7c2a98f40c9b43ba3989d0f6689f4cb67.

Change-Id: I2ac7e95886ce6bef2ba08e1614728caae7d26442
2019-09-02 21:50:16 +02:00
Petr Pchelko c0d2d52e95 Remove usages of deprecated MWNamespace.
Bug: T11977
Change-Id: I6da497464a77286d5fd2d30a85e70de85fe1c868
2019-08-26 17:49:52 -07:00
daniel b898c417b4 Removes forward-compat code needed for method rename in core.
Depends-On: If47a93878f87d69800e5f305404c22528dac5e94
Change-Id: I2181f1a39b47078a32a8de68ac63d3144fc5b807
2019-07-23 21:38:52 +02:00
Umherirrender e1442aa343 Add phan
Change-Id: I7352036536c1c8415b681f48f3ee0dcec315c035
2019-05-31 14:48:22 +00:00
Thalia cdb3b880af Use MediaWiki\Block\DatabaseBlock instead of Block
This follows the rename of the Block class in I6d96b63ca0.

Change-Id: Ib652feb34b7f10726ec775ff2929ca12ed66a8e1
2019-05-31 15:34:00 +01:00
Bartosz Dziewoński b9835f75d3 Check if page is really editable and call #setReadOnly accordingly
There are various circumstances where the wgIsProbablyEditable check
gives incorrect results (hence the 'probably'):

* User is blocked (T111217)
* Page is protected from creation (T173763)
* Page is transcluded on a cascade-protected page (T217217)

Bug: T111217
Bug: T173763
Bug: T217217
Change-Id: I7df8909c31f29d2e7521bef8612c27cb61146a4d
2019-05-18 17:23:31 +02:00
Ed Sanders 3285b7dbe5 Initialize $restbaseHeaders to null
Bug: T223281
Change-Id: I8bead40c35323cd4082f55ac529f900403f76f37
2019-05-14 16:07:22 +01:00
Ed Sanders 3a4822c2fe Section switch from wikitext to VE
Use an API 'parse' call with a sectionid to trigger
a full document expansion using replaceSectionAtRev.

Then send this off the RESTBase to convert to HTML
and statsh.

Ensure the etag is passed back to the API response.

Bug: T117716
Bug: T223023
Change-Id: I1b35b28e428a1f86d2e34d90ddbe73361ce14818
2019-05-13 19:49:10 +01:00
daniel a15875e247 Add forward compat hack for getBlockInfo/getBlockAsResultStructure
This is necessary to allow the unmitigated removal of
ApiQueryUserInfo::getBlockInfo to be fixed. See discussion on
I84ed21641c44b2f65.

Change-Id: I9f40666a31bd4af50762c197c2ce5bf089a5e68c
2019-05-10 22:08:36 +02:00
Bartosz Dziewoński 636531808c ApiVisualEditor: Fix use of getBlockInfo()
The method ApiQueryUserInfo::getBlockInfo() was removed in unannounced
breaking change in MW core: I84ed21641c44b2f65ebe1980b0893d1846db3b34.
Apparently we're supposed to use the method from ApiBlockInfoTrait now.

Bug: T209599
Change-Id: I7ab5492310980b1527c7329faf65655330b8bef0
2019-05-08 22:36:38 +02:00
Marko Obrovac c32bce5add ArticleTargetLoader: Add stash=true query param to RB HTML fetching
RESTBase is changing the way it is storing HTML/data-parsoid renders. In
order to still support VE (and other editors) with quick access to HTML
and matching data-parsoid (needed later for transforming the modified
HTML to wikitext), VE now needs to let RESTBase know it intends to
perform a transformation call later on. In that case, RESTBase will make
sure to keep the matching data-aprsoid around for long enough.

Bug: T222639
Change-Id: I02672e29bd0f331794fd77d9e56f9cc6822d9b9e
2019-05-08 13:30:01 +02:00
Ed Sanders fae9fcb70c ApiVisualEditor: Return structured block info as well as formatted notice
Mobile builds its own block message from the block information,
rather than using parseAsBlock.

Bug: T209599
Change-Id: I8b200f258b50f7048aded22ec7ab81a49937c5a9
2019-04-30 20:41:03 +00:00
Dayllan Maza 96de1353d3 Remove block notice tracking
This is a clean up after collecting the necessary data related to
blocks and how often users see the block notices

See: https://phabricator.wikimedia.org/T189724

Bug: T214214
Change-Id: I532a0cd95009109ba25caa8dd31badd5c1900da7
2019-04-23 11:31:37 -04:00
Bartosz Dziewoński 018464a096 Treat ambiguous values in $wgVisualEditorAvailableNamespaces as names
The config option can contain either namespace names or IDs.

Bug: T219562
Change-Id: I6b3706ea7e26f69427ffac1603b093bcb8fdbd03
2019-03-29 01:08:03 +01:00
Bartosz Dziewoński a5c5257e71 Directly call action=query&prop=langlinks from JS rather than PHP wrapper
When this code was written in 2013 (1a5bdd5bd2),
the langlinks API did not have a way to return the language names (autonyms).
This has been added in 2014 (4ba3a9aea96ee21c035c69999be23580e23f4e0a).

Change-Id: I70edb846d94b1108b079caf5915532234190da8f
2019-03-18 23:27:44 +01:00
Bartosz Dziewoński c0ab5133eb ApiVisualEditor: Fix PHP warning caused by unexpected API metadata
Bug: T218464
Change-Id: I272ca718932cb9cd57d121c9f564c64e11f9deff
2019-03-18 23:01:09 +01:00
Umherirrender de8b4b5d29 Use php null coalesce operator ??
Change-Id: I756fa99084cbb86357ac840b3338d296863eecc4
2019-03-12 21:27:47 +01:00
Ed Sanders e3bb0b9e8b ApiVisualEditor: Separate out templatesUsed from metadata
Generating the templatesUsed list is relative slow, and is only
used in an obscure part of the editor, so only generate it when
needed.

Bug: T209078
Change-Id: I1cecdad65b80c4c9b1746e752ea4b41bc0fc0037
2019-02-25 13:01:43 +00:00
Ed Sanders 1890530b89 ApiVisualEditor: Remove red-link cache warming
Red-link metadata was added to Parsoid 18 months ago.
On long pages evaluating this information is very slow
(hundreds of milliseconds) and completely redundant.

Bug: T64803
Bug: T209078
Change-Id: I5b6c6da588301ed59fb21e1ce930f5b72db48e67
2019-02-22 17:49:11 +00:00
Umherirrender 57d00b7197 Improve param docs
Change-Id: Ib8e22c6029cb11635d6fe9cce17775f67a2a589a
2019-01-26 14:50:22 +01:00
James D. Forrester 3c293ea00c doc: Bump copyright year for 2019
Change-Id: I8991b97c980d4149f53eb5601036220ef3c0c440
2019-01-01 13:24:23 +00:00
Dayllan Maza ee02653eaf Change rules when displaying block log extract
Show log extract if the user is sitewide blocked or is partially
blocked and not allowed to edit their user page or user talk page.

The check on the block type is being added to keep it in sync with
what it is currently being done on core.

Bug: T203171
Change-Id: I00ebb5cbcb1ec14e778c2936187cbcebc0829163
2018-12-05 00:35:38 -05:00
Thalia 2516753c53 Rename configs for tracking block notices on visual editor
* Also make sure block notices have type 'block'.
* Remove old flag for tracking since we'll be using one
  from core

Change-Id: I4b66e73c8a4c4dd7bffd7c0239b1d5ec06eed12f
Depends-On: I6bd1c95548616677e1f72ba6bcfc6f2b551c1ca6
2018-11-28 15:26:15 -05:00
Dayllan Maza 3269bb136c Track when block notices are returned on the api
Tracking is behind $VisualEditorTrackBlockNotices config flag
which is set to false by default. Additional data will be logged
into a different bucket on the client and both metrics will be
considered with their known limitations.

The reason behind this is to get an idea on how frequently blocked
users attempt to edit a page. Similar tracking is being added to
MobileFrontend and mediawiki/core.

Bug: T201718
Change-Id: I51576276b97be0716c2c22348eaa756ffb04fe50
2018-11-19 23:02:02 -05:00
Bartosz Dziewoński 155f0d0337 ApiVisualEditor: Reuse core code for showing log extract
Our behavior is now closer to the core wikitext editor.

This results in two minor changes:
* `<li>` elements are now correctly wrapped in an `<ul>`.
* "View full log" link is now only shown if there are more entries.

Change-Id: I3f30446fca5cab83155ce26ee4e5ab213fc5847a
2018-11-05 22:25:07 +01:00
Alangi Derick 4fa5bb7c21 Fix phpDoc reference tags in VisualEditor
Should be "array" instead of "Array".

Change-Id: Ibdd4666e5cbab5a1ef0ceb8d52ffbd36390bba69
2018-10-31 19:05:59 +01:00
Nasty 124addddaf Fix parse wikitext fragment in paction wikitext.
Whenever wikitext content is inserted by the hook `EditFormPreloadText`,
it is always parsed to visual editor markup even when in wikitext mode.

Bug: T206838
Change-Id: I56f0fb9d4e1519af01155c35d4d0068076de4600
2018-10-12 19:17:29 +00:00
jenkins-bot 542004dcb9 Merge "Require Parsoid HTML 2.0.0, and handle its <audio> tags" 2018-10-02 20:47:59 +00:00
Ed Sanders d5d23ee4be Require Parsoid HTML 2.0.0, and handle its <audio> tags
Bug: T201081
Depends-On: I6514b9b0a85588c7eaae5e6989789656cfc3253a
Change-Id: I6052dcf3e414d9506ff7ec7a6b5d8f4eeb4a703a
2018-10-02 12:15:45 -07:00
Ed Sanders 164ccecf4d CollabPad: Show current sub-page as separate tab
Change-Id: I15da5a3122e7a0dfeb5131e528efa498a7cd1356
2018-09-17 16:25:42 +00:00
James D. Forrester 1f452626d6 ApiVisualEditor: Use MediaWikiServices rather than $wgContLang
Change-Id: Ie0a5deaa17db91f0866e35bd51e1e7067345d796
2018-08-14 17:10:40 +00:00
David Lynch 54e9de44c3 ApiVisualEditor: warn of deleted pages in edit notices
Replicate the EditPage#showIntro segment which shows a warning and the
deletion log if attempting to recreate an already-deleted page.

Bug: T199087
Change-Id: I3c680e712c010dc614710b3aa9f41c8ec17999a7
2018-07-12 11:34:22 -05:00
Ed Sanders bb1d7271cd Pass content language in Accept-Language header to RESTBase
Bug: T198186
Change-Id: I2176f68f76fa462de0c1c2c47365de62fda4abe0
2018-06-26 16:42:35 +01:00
Ed Sanders 1b116394cf Correct documentation of $title Title object and add type hints
Change-Id: I8108161e2330d54e9e3f9969ead9352cc5810fb0
2018-06-26 16:35:46 +01:00
C. Scott Ananian 83918e735a Follow-up I213bd946f: Correct URL of Parsoid HTML profile
The URL for the HTML profile used by Parsoid changed after 1.2.x, but
it was never updated in VE.

Change-Id: Id4ab8567dc907b71e790a04ab10044c1e081c8ce
2018-06-22 10:27:00 -07:00
C. Scott Ananian a13b8ae178 Update VE to request Parsoid HTML v1.7.0
The seasons change, and so do Parsoid HTML specifications...

Change-Id: I213bd946f6f1547f76a4ea352c7cb083ebadd602
2018-06-21 16:41:02 -04:00
James D. Forrester d4841abbb6 ApiVisualEditor: Defensively check that query prop revisions returns arrays
I can't see where this would return a string, but users are reporting that
they're getting that at times…

Bug: T193718
Change-Id: I6b635bacdd59431568bc5c679e455f67cb764df0
2018-05-25 21:04:38 +00:00
jenkins-bot 5904c25e83 Merge "ApiVisualEditor: Remove unused variable and add some type hints" 2018-04-03 19:33:32 +00:00
jenkins-bot 690c7c4280 Merge "doc: Document all public and protected PHP functions" 2018-04-03 19:29:41 +00:00
Kunal Mehta 3d48221600 ApiVisualEditor: Remove unused variable and add some type hints
Change-Id: Ic16d223a6bbdb4b80474d7749f6b4e6c4df8b65b
2018-04-03 11:21:11 -07:00
Kunal Mehta a087e447ae Avoid unnecessary use of RequestContext::getMain()
Change-Id: I4d226a0543e16aa22b28a6a403ce5c6892dc5924
2018-04-02 19:33:25 -07:00
James D. Forrester 31f667ccf7 doc: Document all public and protected PHP functions
Also move the maintenane script to a name that makes
MediaWiki.Files.ClassMatchesFilename.NotMatch not error,
and use the more restrictive licence tag usage for
MediaWiki.Commenting.LicenseComment.InvalidLicenseTag.

Change-Id: Ifa5518cd590ae83c6fd76f1dbb5a2ce40de4b119
2018-03-28 12:50:44 -07:00
James D. Forrester f9ab5fa6fe ApiVisualEditor: Replace use of ApiBase::dieUsage() with ::dieWithError()
Bug: T189205
Change-Id: Ic75594c0a9388814b4ecc887c4262cbbe858d7f9
2018-03-14 10:21:03 +01:00
David Lynch 468c913cb9 ApiVisualEditor: Update getPreloadContent's parseWikitextFragment call
9770c806 missed updating this call; update it to include bodyOnly parameter.

Bug: T186884
Bug: T186934
Change-Id: I616101f6bf3bd0b3af2236207c2ac217988d1724
2018-02-10 17:07:55 +00:00
James D. Forrester fa9438e5fa build: Move PHP files to expected paths
Principal code is in includes/*.php with the file named the same as the class it
contains. The maintenance script is moved to maintenance/ for clarity.

Change-Id: Icb4cdffb1bd4716e14f883d667def96671b42992
2018-02-07 12:31:08 -08:00
Renamed from ApiVisualEditor.php (Browse further)