Commit graph

221 commits

Author SHA1 Message Date
jenkins-bot
643830035d Merge "Change rules when displaying block log extract" 2018-12-05 23:55:22 +00:00
Dayllan Maza
65bd5b5e65 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.

Bug: T203171
Change-Id: I9bcc50cfc1fad23f6bbbe5374a9a866f77bebc11
2018-12-05 22:58:46 +00:00
Jakub Vrana
47583421cf Remove unused parameter
Found by PHPStan.

Change-Id: I0480146fd7fce1d39db904f1c4b6dfa8314a74fe
2018-12-01 17:33:21 +01:00
Umherirrender
577eeaea91 Remove fixed phpcs:ignore
Follow-Up: I418345870e25fa37df0195ddc74193b54fe6d2a5
Change-Id: I0b3a546455c2f35d3aeadbdd31a07bdb1958a74c
2018-10-23 20:35:00 +02:00
James D. Forrester
553e40ca63 Follow-up T174035: Wrap inline ternary in brackets to make phpcs happy
Bug: T203805
Change-Id: I418345870e25fa37df0195ddc74193b54fe6d2a5
2018-10-22 09:23:22 -07:00
jenkins-bot
98744107cd Merge "Use OutputPage::wrapWikiTextAsInterface() to add safe <div> wrappers" 2018-10-22 02:00:35 +00:00
jenkins-bot
72e5b5af65 Merge "Use OutputPage::addWikiTextAsInterface() instead of untidy addWikiText()" 2018-10-22 01:49:58 +00:00
Bartosz Dziewoński
5f2cb872b5 ImagePage: Inherit parent's handling for action=render
ImagePage::render() was calling parent::view() instead of
parent::render(), thus skipping Article::render() entirely.
Therefore the logic to disable section edit links (and also,
to add an 'X-Robots-Tag: noindex' header) was not being used.
This fixes T65891 and T21415 for pages in 'File:' namespace.

Bug: T206546
Change-Id: I36ae716c9a363ae29b7a785cc41430301250baba
2018-10-18 05:08:11 +02:00
C. Scott Ananian
ade27ecba3 Use OutputPage::wrapWikiTextAsInterface() to add safe <div> wrappers
This ensures that broken messages can't break the <div> wrapper and
that the output is tidy.

Bug: T205624
Change-Id: I2511adf593a13528e205a82d9fcdc8a524d0a95f
2018-10-17 11:08:16 -04:00
C. Scott Ananian
c0ed262053 Use OutputPage::addWikiTextAsInterface() instead of untidy addWikiText()
This change ensures that the output is tidy, and is necessary to support
future parsers which will not be able to produce untidy output.

Bug: T198214
Change-Id: I743f4185a03403f8d9b9db010ff1ee4e9342e062
2018-10-17 10:35:28 -04:00
jenkins-bot
cf6fb41666 Merge "Re-namespace RevisionStore and RevisionRecord classes" 2018-10-10 05:16:45 +00:00
Brad Jorsch
dff469a408 Re-namespace RevisionStore and RevisionRecord classes
During development a lot of classes were placed in MediaWiki\Storage\.
The precedent set would mean that every class relating to something
stored in a database table, plus all related value classes and such,
would go into that namespace.

Let's put them into MediaWiki\Revision\ instead. Then future classes
related to the 'page' table can go into MediaWiki\Page\, future classes
related to the 'user' table can go into MediaWiki\User\, and so on.

Note I didn't move DerivedPageDataUpdater, PageUpdateException,
PageUpdater, or RevisionSlotsUpdate in this patch. If these are kept
long-term, they probably belong in MediaWiki\Page\ or MediaWiki\Edit\
instead.

Bug: T204158
Change-Id: I16bea8927566a3c73c07e4f4afb3537e05aa04a5
2018-10-09 10:22:48 -04:00
Bill Pirkle
ca9f1dabf3 Use job queue for deletion of pages with many revisions
Pages with many revisions experience transaction size exceptions,
due to archiving revisions.  Use the job queue to split the work
into batches and avoid exceptions.

Bug: T198176
Change-Id: Ie800fb5a46be837ac91b24b9402ee90b0355d6cd
2018-10-03 19:16:14 -05:00
Gergő Tisza
5174fa8364
Add audience parameter to PoolWorkArticleView
The old behavior was that the audience was RAW if the revision object
parameter got passed in, otherwise PUBLIC. This was undocumented and
not used outside core; this patch gets rid of it in favor of an
explicit argument.

Bug: T205578
Change-Id: Ic7cdb38f658f6d85c48ff13c7f84c64a45c9b1ee
2018-10-02 03:53:28 -07:00
Gergő Tisza
6e8d39c6e7
Add constant for the name of the 'main' slot for MCR
Bug: T202142
Change-Id: I97a74e5a029b014f3c2195188936d5c8233c1b7f
2018-09-24 16:52:12 -07:00
jenkins-bot
8bc630cead Merge "Article: Fix reference to view() in documentation comment" 2018-09-18 02:26:10 +00:00
Roan Kattouw
a9198f06c1 Article: Fix reference to view() in documentation comment
WikiPage::view() doesn't exist; Article::view() does.

Change-Id: I3fbffa15be4cff6cb3f5c7dc5cc178102472f25b
2018-09-18 02:11:42 +00:00
jenkins-bot
b7625d63a6 Merge "Introduce ContentHandler::getSecondaryDataUpdates." 2018-09-17 14:06:19 +00:00
Umherirrender
a4caa4d0c6 build: Updating mediawiki/mediawiki-codesniffer to 22.0.0
Added spaces around .
Removed empty return statement which are not required
Removed return after phpunit markTestIncomplete,
which is throwing to exit the test, no need for a return

Change-Id: I2c80b965ee52ba09949e70ea9e7adfc58a1d89ce
2018-09-16 15:51:11 +00:00
daniel
7960d5385f Introduce ContentHandler::getSecondaryDataUpdates.
This adds getSecondaryDataUpdates and getDeletionUpdates
to ContentHandler, and updates WikiPage and DerivedPageDataUpdates
to handle DataUpdates from all slots.

Bug: T194038
Bug: T194037
Change-Id: I75c96318f58a5cdda48484f7040ae41e6f42392a
2018-09-14 16:18:18 +02:00
jenkins-bot
0dafdebb2b Merge "Improve page display title handling for category pages" 2018-09-12 07:25:46 +00:00
daniel
4835a75ec5 Use RevisionRenderer for rendering ParserOutput
Bug: T174035
Bug: T174036
Change-Id: I1085b05d635dd954c143c8a398fae909632ba0a9
2018-09-11 15:25:39 +00:00
Niklas Laxström
d89704bc4c Improve page display title handling for category pages
One use case of display title is to localise page names with Translate
extension or without. While the page title changes, the subheadings still
say something like "Pages in category Foo/de".

Also converted one raw HTML message to be a parsed message.

First version of this patch caused an issue when previewing
because page title in h1 is not the same as page display title.

This issue is fixed by promoting page display title as it's own member
in OutputPage. Also added getUnprefixedDisplayTitle that attempts to
strip away the namespace prefix to mimic Title::getText() but which
works with display title instead.

Bug: T43720
Bug: T46197
Change-Id: I6097a873297eb57759252fc56ad6d02c44e4c366
2018-09-10 08:29:48 +02:00
daniel
9b6a3dcb1d Add tests for article viewing
Bug: T174035
Change-Id: I06dc78853169812b17e0bde733d9306ccd687564
2018-08-28 19:22:26 +02:00
Fomafix
6a022c8d20 Add type hint for ParserOutput
EditPage::getPreviewLimitReport is called by EditPage::showEditForm
with $output = null. Specify this in the @param tag and allow this by a
default value.

Change-Id: Iec8905aab736a1f254a57853c7cab935d008653e
2018-07-30 09:23:59 +02:00
Gergő Tisza
c767dfdea0
Deprecate public access to some DifferenceEngine properties
These had no business being public in the first place and there is
no usage in Gerrit. In case something does use them, it will probably
be broken by the refactoring that's soon to come, so the deprecation
warning makes it easier to figure out where the problem lies.

Change-Id: I72ba5cfbf91f4af16028ba4f8619df6a7168a786
2018-07-26 13:48:03 +02:00
Jack Phoenix
72f1866b92 Add new 'ArticleShowPatrolFooter' hook to allow extensions to decide if the [mark as patrolled] link should not be shown
Used on wikiHow to simply never show this particular link.

Change-Id: Id6b11135cc062798964a6b3e927ad665fd757616
2018-07-11 11:08:48 +03:00
Umherirrender
130ec2523d Fix PhanTypeMismatchDeclaredParam
Auto fix MediaWiki.Commenting.FunctionComment.DefaultNullTypeParam sniff

Change-Id: I865323fd0295aabd06f3e3c75e0e5043fb31069e
2018-07-07 00:34:30 +00:00
daniel
731a113aac MCR: rename $baseRevId paramter to match actual semantics.
The $baseRevId in WikiPage::doEditContent is used only to indicate what
revision an edit reverted to. It is not used to indicate the actual base
revision of an edit in any sense. Specifically, EditPage never sets it.

So, this change renames the parameter to $originalRevId to match $undidRevId.
It also renames PageUpdater::setBaseRevisionId to setOriginalRevisionId.
Further, this introduces a paramter to PageUpdater::hasEditConflict():

Before this change, PageUpdater::hasEditConflict() was based on the
revision set via PageUpdater::setBaseRevisionId(), assuming the semantics
of "base revision" used by EditPage. However, this is NOT how the $baseRevId
parameter in WikiPage works.

Bug: T197685
Change-Id: Ib78257d4d6ee7c4ec093d5706904c599b02c73e0
2018-06-22 11:57:59 +00:00
Max Semenik
1e680456b4 Get rid of call_user_func(_array)(), part 3
Also cleaned up nearby code in a couple places.

Change-Id: Ibf44ee7c0ceb739d7e79406e4ff39303c316e285
2018-06-10 02:21:24 +00:00
Reedy
16f1dc7549 Don't pass USE INDEX to a $dbType parameter
Bug: T192584
Change-Id: Ia2b761bad570532696419b4f23f84bc85ff2c0e8
2018-04-19 19:02:09 +00:00
Reedy
904210492c Follow-up 2c74b04356: Restore use of 'clearyourcache' message
Bug: T191800
Change-Id: I632fff6489e929847e7abc1d944277e3b0358314
2018-04-18 18:39:09 +00:00
James D. Forrester
225b462a50 Drop deprecated EnableAPI and EnableWriteAPI settings
The siteinfo API response's 'writeapi' value is now hard-set to true,
as are the ResourceLoader variables wgEnableAPI and wgEnableWriteAPI,
to be deprecated later.

Bug: T115414
Change-Id: I54ff9428b247ba203d67aba079149393f323d5a9
2018-04-18 00:30:34 +00:00
Fomafix
55185c2e39 Article.php: Use BCP 47 language code for HTML attribute lang
Change-Id: If2194fbb98cbab284aba74e127cc3953a5714b9b
2018-03-07 14:18:11 +01:00
Brad Jorsch
ccc1c08089 Update more forms to limit comments by codepoints rather than bytes
This updates the deletion forms, Special:Block, Special:EditTags,
Special:MovePage, Special:RevisionDelete, Special:Undelete, and
Special:UserRights to limit by code point count rather than by byte (or,
in some cases, by UTF-16 code unit).

Bug: T185948
Change-Id: I20d11d7cc4f58902cbcb6dda70af533bce6dd170
2018-02-26 13:16:19 -05:00
Brad Jorsch
2791fb0861 Hard-deprecate ParserOutput stateful transform methods
This also removes all the in-core calls that had been kept for the
benefit of extensions, and causes them to not have any effect since
anything that had been calling them was already either a no-op or will
probably be broken now that nothing in core is setting or checking the
flags.

Change-Id: Id22c1a5a6d6a249debb14063ae3f8838d105b634
2018-02-13 12:28:36 -05:00
Umherirrender
52d89ccc1f Fix back-compat method Article::updateRedirectOn
No reason to set $lastRevIsRedirect to null before pass it as argument

Change-Id: I5e3c54d828a381c682725a43e322e660186b38cb
2018-02-05 05:24:20 +00:00
Brad Jorsch
e74ba29aa6 Use ParserOutput stateless transforms
We still set the state in many cases for benefit of extensions, but all
calls within core should no longer be using non-default state.

Change-Id: I78b62ec33fcb8273acb9b3b4e9012215442be94c
Depends-On: I140ff32373430b61b92226689ef9b58cca317450
2017-11-30 14:27:49 -05:00
jdlrobson
4e7021a231 Provide message/warning/error box abstraction
This will help us consolidate the various uses into one single
method which will help us drive standardisation of these defacto
widgets.

Hopefully, by being a method of the Html class, which has a very
low barrier for use will drive down the inconsistent display of
warning/error boxes across MediaWiki's products

Various usages of warningbox and errorbox have been ported over.
I've retained some more complicated usages which make use of the
parser (wrapWikiMsg) and any where id and class are medled with
- we'll probably want to consider whether we want to encourage
those going forward as they encourage adjusting the styling.

Bug: T166915
Change-Id: I2757e1f4ff2599e93a7257fc644cab69063896d2
2017-11-13 23:19:45 +00:00
vinithegit
7df7fe1727 Article: Show moveddeleted on 404s for all pages if the user has a session
Add a check for user session and show movedelete message for this case as well.

Bug: T178099
Change-Id: Id42f27a19e85b608a734c7fedb4e016d8cdc163e
2017-10-30 18:00:37 +05:30
Brad Jorsch
7d93d1d1cd Remove Article static methods deprecated in 1.24
The Article::selectFields(), Article::onArticleCreate(),
Article::onArticleDelete(), and Article::onArticleEdit() methods have
been deprecated in favor of the correponding WikiPage methods since
1.24. Remove them.

Change-Id: I30f3d88f8d28ccaebf5a858058e183112d29a1a7
2017-10-26 12:22:01 -04:00
James D. Forrester
1dc2f02b36 Article: Drop partial purge code and constants, deprecated in 1.29
Change-Id: I4f20d823e6c9206121212b8a73ecc28f91e68b45
2017-10-25 08:42:38 -07:00
Bartosz Dziewoński
a5c3d029c5 Reduce code duplication for parsing messages into dropdown menus
The same behavior was implemented by Xml::listDropDown(),
Article::confirmDelete() and HTMLFormField::getOptions().
A new function Xml::listDropDownOptions() is added and
all three are changed to use it.

Additionally:
* Xml::listDropDown() now uses XmlSelect internally to generate the
  dropdown HTML.
* Xml::listDropDownOptionsOoui() is introduced to handle converting
  the existing format to the OOUI format, which was previously
  duplicated in Article::confirmDelete() and HTMLFormField::getOptionsOOUI().
* This change allows HTMLForm 'select' fields (HTMLSelectField) to
  support nested options (optgroups) in OOUI mode. This is a
  prerequisite for T117781.

Bug: T117781
Change-Id: I0a088f61eb32ec59677113583c7ecdcbc3fd2af0
2017-09-12 20:49:20 +02:00
Kunal Mehta
1fd095ec1c Avoid using the deprecated ParserCache::singleton()
Change-Id: I0da6d9cbfad26c89bf5dab564071ef97acaf44f9
2017-09-09 14:20:10 -07:00
Umherirrender
3f1a52805e Use short type bool/int in param documentation
Enable the phpcs sniffs for this and used phpcbf

Change-Id: Iaa36687154ddd2bf663b9dd519f5c99409d37925
2017-08-20 13:20:59 +02:00
Umherirrender
a9007e8baf Add missing & to @param documentation to match functon call
Change-Id: I81e68310abcbc59964b22e0e74842d509f6b1fb9
2017-08-11 18:47:46 +02:00
jenkins-bot
956c2430c7 Merge "Show protection log on creation-protected pages" 2017-08-07 22:12:44 +00:00
Étienne Beaulé
d22eeb8441 Show protection log on creation-protected pages
This change would add the message 'titleprotectedwarning'
to pages that have been protected against creation, just
like how deleted pages have their log visible beforere-creation.
It is visible to everyone, whether or not they are allowed to
recreate the page.

Bug: T171338
Change-Id: I5acf1bee9cea056b20b77fd386bc9df65033cded
2017-08-07 21:32:16 +00:00
Bartosz Dziewoński
6348b10a50 Article: Remove unused variable
Follow-up to 97a8fb78fa.

Change-Id: I8822742f15c3972cec3ac2ec47a2f594453b8672
2017-07-24 11:18:54 +02:00
Kunal Mehta
50ea235528 [SECURITY] Restore ability to suppress pages while deleting
The OOUI refactor in 97a8fb78fa lost the ability to suppress pages while
deleting.

This converts the suppress checkbox into a OOUI one, and then modifies
the detection of whether the checkbox was used to use
WebRequest::getCheck().

Bug: T171405
Change-Id: I8c388808c08b8804689b41876fd2bcdeff7f0e70
2017-07-23 15:50:35 -07:00