Page MenuHomePhabricator

With two messages in Abusefilter errorbox, second box is indented
Closed, ResolvedPublic

Description

If there are two error messages (abuse filter) in the error box, the list is as follows (Russian Wikipedia):

image.png (568×1 px, 108 KB)

Code from browser:

<div class="errorbox">
	<p>Ошибки:</p>
	<ul>
			<li>
				<div class="mw-parser-output"><style data-mw-deduplicate="TemplateStyles:r101514853">.mw-parser-output .ts-editnotice{padding:1em 1.25em;margin-bottom:.25em}.mw-parser-output .ts-editnotice .mbox-image{vertical-align:top;padding:0 .5em 0 .25em}.mw-parser-output .ts-editnotice .mbox-text{padding:0}.mw-parser-output .ts-editnotice-error{background:#fee7e6;border:1px solid #d33}.mw-parser-output .ts-editnotice-warning{background:#fef6e7;border:1px solid #fc3}.mw-parser-output .ts-editnotice-neutral{background:#eaecf0;border:1px solid #c8ccd1}.mw-parser-output .ts-editnotice-success{background:#d5fdf4;border:1px solid #00af89}.mw-parser-output .errorbox .ts-editnotice-error,.mw-parser-output .errorbox .ts-editnotice-warning,.mw-parser-output .errorbox .ts-editnotice-neutral,.mw-parser-output .errorbox .ts-editnotice-success,.mw-parser-output .ts-editnotice-included{border:0;padding:0;background:0}.mw-parser-output .errorbox .ts-editnotice-error .mbox-image,.mw-parser-output .errorbox .ts-editnotice-warning .mbox-image,.mw-parser-output .errorbox .ts-editnotice-neutral .mbox-image,.mw-parser-output .errorbox .ts-editnotice-success .mbox-image,.mw-parser-output .ts-editnotice-included .mbox-image{padding:0 .25em 0 0;vertical-align:top}.mw-parser-output .errorbox .ts-editnotice-error .mbox-text,.mw-parser-output .errorbox .ts-editnotice-warning .mbox-text,.mw-parser-output .errorbox .ts-editnotice-neutral .mbox-text,.mw-parser-output .errorbox .ts-editnotice-success .mbox-text,.mw-parser-output .ts-editnotice-included .mbox-text{padding:0}.mw-parser-output .fmbox-editnotice h2{margin:0;padding:0;border-bottom:0;font-family:inherit;font-size:115%;font-weight:bold;line-height:1.6}</style>
					<table class="plainlinks fmbox fmbox-editnotice ts-editnotice ts-editnotice-error" role="presentation" style="color: #222 !important;">
						<tbody>
							<tr>
								<td class="mbox-image">
									<img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4e/OOjs_UI_icon_error-destructive.svg/20px-OOjs_UI_icon_error-destructive.svg.png" decoding="async" elementtiming="thumbnail" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4e/OOjs_UI_icon_error-destructive.svg/30px-OOjs_UI_icon_error-destructive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4e/OOjs_UI_icon_error-destructive.svg/40px-OOjs_UI_icon_error-destructive.svg.png 2x" data-file-width="20" data-file-height="20"></td><td class="mbox-text">
										<div style="font-weight: bold;"><a href="/wiki/Википедия:Добро_пожаловать_в_Википедию" title="Википедия:Добро пожаловать в Википедию">Добро пожаловать в Википедию!</a></div>Ваша правка <b>не может быть сохранена</b>, поскольку замена словосочетания <b>«на Украине»</b> на словосочетание <b>«в Украине»</b> в статьях Википедии признана неконструктивной.
										<p>На сегодняшний день в сообществе в результате многочисленных обсуждений сложился консенсус о том, что в статьях Википедии принято писать «на Украине». Этот консенсус отражён в руководстве <b><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9D%D0%B0%D0%A3%D0%BA%D1%80" class="mw-redirect" title="Википедия:НаУкр">Википедия:Имена</a></b>. Поэтому использование словосочетания <b>«в Украине»</b> допустимо только в ряде исключений, например, при цитировании.</p>
										<b><big>Вы можете обсудить текущие стандарты на странице <a href="/wiki/Обсуждение_Википедии:Имена" class="mw-redirect" title="Обсуждение Википедии:Имена">Обсуждение Википедии:Имена</a></big></b> или задать вопрос на странице <a href="/wiki/Википедия:Форум/Вопросы" title="Википедия:Форум/Вопросы">Википедия:Форум/Вопросы</a>.
									</td>
								</tr>
							</tbody>
						</table>
					</div>
	<ul>
		<li>
			<div class="mw-parser-output"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101514853">
				<table class="plainlinks fmbox fmbox-editnotice ts-editnotice ts-editnotice-error" role="presentation" style="color: #222 !important;">
					<tbody>
						<tr>
							<td class="mbox-image">
								<img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f6/OOjs_UI_icon_alert-destructive.svg/20px-OOjs_UI_icon_alert-destructive.svg.png" decoding="async" elementtiming="thumbnail" width="20" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f6/OOjs_UI_icon_alert-destructive.svg/30px-OOjs_UI_icon_alert-destructive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f6/OOjs_UI_icon_alert-destructive.svg/40px-OOjs_UI_icon_alert-destructive.svg.png 2x" data-file-width="20" data-file-height="20">
							</td>
							<td class="mbox-text">Ваша правка была распознана механизмом <b>автоматической</b> проверки как попытка исправления орфографической ошибки. Пожалуйста, перед её сохранением перечитайте редактируемую статью, пройдите по вики-ссылкам, загляните в словарь или иным способом <i>убедитесь, что в исправляемом вами тексте действительно есть ошибка.</i> Так, например:
								<li>порядок награждения орденом описывается в его <a href="/wiki/Статут_(описание)" title="Статут (описание)">стату<span style="color:#ff0000"><b>т</b></span>е</a>, а не стату<i>с</i>е</li>
								<li>творческий коллектив театра или цирка называется <a href="/wiki/Труппа" title="Труппа"><span style="color:#ff0000"><b>т</b></span>руппа</a>, а не <i>г</i>руппа</li>
								<li>совокупность мероприятий, военный поход, время непрерывного действия агрегата и т. п. называется <a href="/wiki/Кампания" class="mw-disambig" title="Кампания">к<span style="color:#ff0000"><b>а</b></span>мпания</a>, а не к<i>о</i>мпания</li>
								<li>мероприятия по поиску преступников <a href="https://ru.wiktionary.org/wiki/%D1%80%D0%B0%D0%B7%D1%8B%D1%81%D0%BA%D0%BD%D0%BE%D0%B9" class="extiw" title="wikt:разыскной">р<span style="color:#ff0000"><b>а</b></span>зыскные</a>, а не р<i>о</i>зыскные.</li>
								<li>произведение Афанасия Никитина называется «<span style="color:#ff0000">Хожение</span> за три моря», а не хождение.</li>
								<li>план Нирна, в честь которого названа игра, называется <span style="color:#ff0000">Обливион</span>, а не Забвение.</li>
							</td>
						</tr>
					</tbody>
				</table>
			</div>
		</li>
	</ul>
		</li>
	</ul>
</div>

Event Timeline

Aklapper renamed this task from Problems with two messages in errorbox to With two messages in Abusefilter errorbox, second box is indented.Aug 9 2019, 7:12 PM
Aklapper removed a project: MediaWiki-Parser.
Daimona subscribed.

AF is not responsible of the display. It just aborts the edit with an error message, but it's core which decides how to display it.

Anomie subscribed.

The problem here is that the Status class takes the messages from ru:MediaWiki:Abusefilter-warning-Ukraine and ru:MediaWiki:Abusefilter-warning-orfo and puts them in a bulleted list with some wrapping wikitext, resulting in wikitext like

<div class="errorbox">
Ошибки:

* {{Уведомление фильтра злоупотреблений
|action=disallow 
|friendly=
|filter=5
|complain=
|welcome=yes
|text=
Ваша правка '''не может быть сохранена''', поскольку замена словосочетания '''«на Украине»''' на словосочетание '''«в Украине»''' в статьях Википедии признана неконструктивной. 

На сегодняшний день в сообществе в результате многочисленных обсуждений сложился консенсус о том, что в статьях Википедии принято писать «на Украине». Этот консенсус отражён в руководстве '''[[ВП:НаУкр|Википедия:Имена]]'''. Поэтому использование словосочетания '''«в Украине»''' допустимо только в ряде исключений, например, при цитировании.

'''<big>Вы можете обсудить текущие стандарты на странице [[Обсуждение Википедии:Имена]]</big>''' или задать вопрос на странице [[Википедия:Форум/Вопросы]].
}}
* {{Уведомление фильтра злоупотреблений
|action=warn
|friendly=yes
|text=
Ваша правка была распознана механизмом '''автоматической''' проверки как попытка исправления орфографической ошибки. Пожалуйста, перед её сохранением перечитайте редактируемую статью, пройдите по вики-ссылкам, загляните в словарь или иным способом ''убедитесь, что в исправляемом вами тексте действительно есть ошибка.'' Так, например:
* порядок награждения орденом описывается в его [[Статут (описание)|стату<span style="color:#ff0000">'''т'''</span>е]], а не стату''с''е
* творческий коллектив театра или цирка называется [[труппа|<span style="color:#ff0000">'''т'''</span>руппа]], а не ''г''руппа
* совокупность мероприятий, военный поход, время непрерывного действия агрегата и т. п. называется [[кампания|к<span style="color:#ff0000">'''а'''</span>мпания]], а не к''о''мпания
* мероприятия по поиску преступников [[wikt:разыскной|р<span style="color:#ff0000">'''а'''</span>зыскные]], а не р''о''зыскные.
* произведение Афанасия Никитина называется «<span style="color:#ff0000">Хожение</span> за три моря», а не хождение.
* план Нирна, в честь которого названа игра, называется <span style="color:#ff0000">Обливион</span>, а не Забвение.
}}
</div>

The wikitext list markup doesn't mesh very well with the notification-box markup used as the contents of the AbuseFilter warnings.

Possibly the solution is to have Status::getWikiText() and similar methods use HTML-style list markup instead of wikitext list markup. There would still be bullets floating around there, but at least it wouldn't wind up as weird misnested HTML.

See also T228526#5411494 for the case where one of the messages contains a table.

Change 771993 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Improve error messages in EditFilterMergedContentHookConstraint

https://gerrit.wikimedia.org/r/771993

Change 771993 merged by jenkins-bot:

[mediawiki/core@master] Improve error messages in EditFilterMergedContentHookConstraint

https://gerrit.wikimedia.org/r/771993