The following are now available in all browsers we support:
* mix-blend-mode in CSS
* Node#contains
Change-Id: I324948f0bceac6d86999300e2b2c8756613e56d2
Unsubscribing was already available from Special:TopicSubscriptions
when JavaScript is disabled.
* Add links to subscribe/unsubscribe in CommentFormatter
* Update links in skin navigation
* Add support for subscribing in the actions
Bug: T321431
Change-Id: If3c4bf7df309d0d98237c3b7b9c129cc2f72cda3
* Remove the hook we used to disable that feature
* Remove CSS that only applied when it was enabled
* Update code comments that referred to it
Bug: T319145
Change-Id: If21a04f6a087289d8249a786f7c991e5e12c9bed
Replacing 'mediawiki.ui/variables.less' @import with
new skin-aware 'mediawiki.skin.variables.less' standard.
Also
- replacing several static values with new Codex design token featuring
skin variables – `background-color` `color`, `border-*`, `box-shadow`.
- removing skin overrides like `.skin-monobook`, they are now covered
by the skin variables.
Patch requires MediaWiki core version >= v1.41.0.
Bug: T332541
Co-Authored-by: Volker E. <volker.e@wikimedia.org>
Change-Id: I36c7a0f5ed06c3eccd792b19b6a1972663f20df6
This can be done within sections using CSS:
* mw-notalk
Or at a page level using a magic word:
* __NOTALK__
"notalk" suppresses all comment detection, treating the content as
not containing any comments even if there are signatures present.
Bug: T295553
Bug: T249293
Change-Id: Ic1d7294bafcf7071e16838e70684ecadd7bc6fd3
This can be done within sections using CSS:
* mw-archivedtalk
Or at a page level using a magic word:
* __ARCHIVEDTALK__
"archivedtalk" still detects the comments, but disables features
as appropriate for an archived conversion, i.e. the reply tool.
Bug: T295553
Bug: T249293
Change-Id: Ic47693e9a2f53f92563ccdd50203fb55c12d0493
It demonstrates how the DiscussionTools extension recognizes
the threads and comments present on a page, to help in debugging
or understanding its behavior.
Co-Authored-By: Ed Sanders <esanders@wikimedia.org>
Change-Id: Idbc90bd8d7742615178331889daae5f94a007fcc
Minerva uses block placement for the buttons only on pages where
usability improvements are available.
Follow-up to 869520a6d0.
Bug: T325416
Change-Id: I9e828197aea7bbaff86489f3ef6e256e0a0845ff
PHP logging code is not moved.
* Use the new mw.track() handlers from WikimediaEvents
* Ensure that 'integration' and 'editor_interface' are set on init
events, since they're not hard-coded in the handler any more
* Remove the setting of 'editingStatsId' tracking parameter,
now happens in WikimediaEvents (by way of VE ArticleTargetSaver)
* Remove code connecting ve.track to mw.track, now happens in VE
This must be merged together with WikimediaEvents change
Iace4d53a972396ca5b8713000570cc47c9986034 (but we can't use
Depends-On, because CI requires code here to be removed first).
Bug: T332438
Change-Id: I0ef0a96aafdf89a4ebe32131a85b18c25744bb2c
Also make our filter function match any substring of
the suggestion index (username + display names), as display
names often contain leading punctuation.
Bug: T266401
Depends-On: I69e5f54f7a8b7ca4126cc3ea513fc96e0a8606fb
Change-Id: I4e7429f8a88c3a82e981f37eb107c2b011482d73
The ellipsis buttons in sections on mobile weren't able to properly show
their dropdowns or parts of their highlight because of the section
overflow we applied with visual enhancements. Because this was added for
a block context to contain the floating subscribe links, scope this to
mobile where that shouldn't be a concern.
Bug: T330536
Bug: T330537
Change-Id: Ic9787d6ca622a8f8bfbf9797353129e7fa40f4b7
Not used anywhere, not even in gadgets. I guess it was for other
planned features, but it can be added back when needed.
Change-Id: I858e8854567ffae6ff11ba61d99b4b09b12dc7d7
There's no need for this PanelLayout to be scrollable, as the dialog
body itself is scrollable, and this is causing an unnecessary
horizontal scrollbar to appear on some pages (for example
https://de.m.wikipedia.org/wiki/Wikipedia_Diskussion:Hauptseite).
Change-Id: I516cae8ca006b57360fe85a2eba099913b38ce84
To avoid affecting existing preload forms, the new topic tool is only
used when the 'dtpreload' query parameter is also set.
Bug: T269310
Change-Id: I4ee024cc4760542790319f302f42b1b2389ac897
These buttons require JS to do anything. We can consider
providing a fallback action for subscriptions at a later date.
Change-Id: I9da546b2968e06d80c515eb5a05656a462b8201d
Previously we only did it when re-initializing after saving a reply
using our tools, but it could happen for a different reason, such as a
NWE edit.
Bug: T317035
Change-Id: Ia8152fc83f74689802f8dbbc20607c9026a2a5ab
Previously, we would restore the title and the summary generated from
it, but we wouldn't restore `prevTitleText`, so we would lose track of
the fact that it was automatically generated, and stop updating it
because of that.
Instead of adding it to the stored data, let's instead stop storing
automatically generated summaries, and tweak the code to support
generating them when restoring.
Bug: T315730
Change-Id: I96420bc0a3e34373190d2c2c0db2e2175ad3156d
After T314714, they are no longer needed for Vector, MonoBook etc. –
the elements will just use the normal body font size.
This changes the font size slightly on some skins (MonoBook, Timeless),
but I think that's okay.
We still want to customize the font-size for mobile (Minerva), and
we can do that with `em` now.
Bug: T325104
Change-Id: I3fab8588b1b0e3a43aac4c32a3610f64fb3d3fb3
We already have code to hide it (added in a98cd369ba),
but this code (added in b132522fa9) made it reappear.
I think this rule was added in the development of that
change when the class was placed on a ButtonWidget,
to override `display: inline-block` on it, but it was
then moved to another element, removing that need.
Bug: T327536
Change-Id: I2a162dde93d04d76f6d5540edf6d3c4719a67f92
* Detect comment separators at the end of comments too
* Consider TemplateStyles associated with ignored templates
This unexpectedly improves a lot of cases other than T313097 too,
mostly where <br> or {{outdent}} was used within a paragraph:
splitting comments that were previously jumbled together, or restoring
content that was previously ignored for apps / notifications.
Bug: T313097
Change-Id: I9b2ef6b760f2ffd97141ad7000f70919aeab7803
Instead of doing them right after page load, only do them on
hover/touch/focus, when we can expect that the user is about to
click/tap/activate a reply link, but which lets us start the work a
fraction of a second earlier.
Bug: T325598
Change-Id: Ida4cb70d8e9ab423ad2dabca7258f92e9fca3157
This should avoid hitting the API if the DT JS is loaded off of talk
pages. At worst, if this is overly restrictive, later calls should still
load it when someone actually interacts with a reply widget.
Bug: T325477
Change-Id: If898dd4a21f1d2620c5a1e79908647070c441854
New config: DiscussionTools_visualenhancements_reply_icon_languages
Config is set up with a provide_default merge strategy so we can remove
items from it quickly if need be.
Bug: T323537
Change-Id: Ib748897a2162bb233000f7364e30b268932f4c4a
* Increase selector specificity to make it work
* Tweak colors, they were lighter than intended
* Use color rather than opacity on text to avoid making it blurry
(opacity disables subpixel rendering)
Bug: T324702
Change-Id: Ie32a7481ea90b983cd33e6eae981d47db8612c9f
The .always() callback can be called after .teardown(), and would
previously restart the polling.
Bug: T313096
Change-Id: I6e4c0f7d47e13bd4a259282a508afcdf0c1bd949
Can be merged once I85ee8e6ed6 has been deployed long enough
for all the caches to have been purged.
Change-Id: Ic9773c2e45a4aa796cb6bca52e58d7db1016a977
Also fix a CSS selector to handle content added in multiple
'OutputPageBeforeHTML' hook calls.
Bug: T323376
Bug: T323833
Change-Id: I480d9bf544d61f0cb7bfd04cadfbf053e7e1b70e
(Also fix some related CSS that was accidentally moved in
Ie5198e902ec3fa7a7eba56cef6c6f0ef71ef7314)
Bug: T323241
Change-Id: I1fa67965a1b6b827c500a9de63f5b5295bee840d
We wrap a `<div>` tag around the `<h2>`, and move some elements there.
The markup is inspired by and compatible with my proposal for T13555.
The "ext-discussiontools-init-section" class is moved to the `<div>`.
A small patch is needed in MobileFrontend to preserve the section
collapsing functionality: I11bff21e81046898ca63f3f432797129fa70ad88.
The following elements are now outside of `<h2>`:
* Metadata bar
* Subscribe button
* Ellipsis menu (only shown on mobile)
The following elements are sadly still inside of `<h2>`:
* Subscribe links (only shown on desktop)
* Section edit links from MediaWiki core
Trying to move them mucks up the CSS too much. I hope we can resolve
this later as a part of the work on T13555.
Depends-On: I11bff21e81046898ca63f3f432797129fa70ad88
Bug: T314714
Change-Id: I0bbdcfa02c334858737855349d7a35746de1d8f2
This allows it to be re-used for other features, such as the
upcoming floating "Add topic" button.
Add some support for Android, although not used in this patch.
Change-Id: Ibd1e1ee087ac607c88a7402d0422c633700d1992
Add brackets around the existing shortcut key labels, so that they
don't look quite so out-of-place next to the automatically added
accesskey label.
Bug: T278249
Change-Id: Icc0df5ba036080807ea0eb215f5526c93da78ef1
For preview parsing, the span containers are empty.
Not sure why not strip the container along with all generated
contents, but this should be the easiest fix.
Bug: T321185
Change-Id: I9afb2d0f543b79dbac8a652236fe55284de542a8
The VisualEditorFeatureUsage instrument is a candidate for migration to
the Metrics Platform [0]. The first step of the migration is to log
events both using the Event Platform directly (i.e. via
mw.eventLog.submit()) and using the Metrics Platform client (i.e. via
mw.eventLog.dispatch()).
The Metrics Platform Client can mix in additional information -
so-called context attributes [1] - based on the stream configuration.
The majority of the default values mixed into each event via the
mw.eventLog.Schema defaults mechanism are already known to the Metrics
Platform Client.
Note well that the Metrics Platform client will not log an event without
one or more streams being configured to receive that event. Therefore,
this change is a NOP.
An example stream configuration is given in [2].
[0] https://wikitech.wikimedia.org/wiki/Metrics_Platform
[1] https://gerrit.wikimedia.org/g/mediawiki/libs/metrics-platform/+/aed6738b845/js/src/StreamConfig.d.ts#31
[2] https://phabricator.wikimedia.org/T309602#7973206
Bug: T309602
Change-Id: Ib919ae0e3f404c85cef17637ea91bb95d5030cf1
... for the sampling rate for the VisualEditorFeatureUse schema.
Bug: T312016
Depends-On: I259757db0c4441a3fcfce505d5bc82dcf2acf58c
Change-Id: I1c7f9c06384549deac2787f5df93c0078b6402af
Pages can be empty (blanked) without outputting the noarticletext
class, so just suppress the top border if the banner is the first
child of the document.
Change-Id: I808160a7f73a9a976d25e77f4bd47727a57b70c0
If the widget has just been opened, it should already be in view,
but when we are recovering from auto-save it might not be.
Scrolling it into view lets the user know sooner that a draft is
about to be recovered.
Change-Id: I2b8232edc20e71b04a3f106107c0c7bc6333f66a
Also ensure that when we click the button, we scroll the widget fully
into view below the sticky header.
Bug: T318474
Change-Id: I394f02912cd6ab2773552a7364691ef89a17369c
Computing the name, for headings, requires determining the oldest
comment. This must not be done before all the replies are added to the
thread.
Follow-up to e24550fae9. It was
already *technically* incorrect before then because it was generating
the name based on the first comment in the thread, but that was only
not the oldest in very unusual cases so it was fine. That commit caused
the thread summary to be cached when first requested, however, which
made future requests for oldest/newest comment and authors to be
incorrect.
Bug: T318057
Change-Id: If0bd6caf88e72cd3f91e7f0633c40b445f5e2246
* Make "X comments" appear on a new line deliberately
* Remove parentheses around "X comments"
Bug: T309463
Change-Id: I803eee9db59c633f129f15e436242a12bcc627f0
When using ReplyWidgetVisual, this would just crashes in #getValue.
When using ReplyWidgetPlain, if the timing is right, this might update
our auto-save after the value was cleared in the teardown code,
breaking the way we restore the reply after showing new comments.
Bug: T316074
Change-Id: I23c5f17a6ff9a6ec9c73a176e4cc60e3ad96e7f1
The implementation in Parser doesn't descend into sub-thread.
Re-use the getThreadSummary method in ThreadItem and traverse
the thread properly.
Bug: T298617
Change-Id: I318d9012eb83f37ccbe463923524ef2e9f995ced
We already do this while editing so that users can quickly see which
tabs they are actively working on.
This extends the functionality to the reply and new topic tools.
Bug: T262066
Change-Id: Iae662ad26072617aad71e519bb6c3cbb19ef1246
The subtitle prop and some others were missing from the action=parse
request. Use the same props as the VE edit API.
Change-Id: I8e9cc735d3ee50dfe0fbe0349713d88654ad9fd1
We can no longer change IDs so easily, because they're stored in the
permalink database, so remove this mechanism to make sure it's not
accidentally used in the future.
Change-Id: I392ee1f49c48fc2f23d05e9a37c643438b4f2b9a
The bottom margin used to collapse into the next heading, but
MobileFrontend changed how section hiding was done.
Change-Id: Ide10e9f17ad38d672958e2c3a43c2eb2cfdd82ae
Relying on :target getting set means we can't use
history.pushState to change the URL without scrolling.
Should conform to https://url.spec.whatwg.org/#percent-decode
Change-Id: I4ccc3fd745884849a781a9f7fc8b00b8b689e20a
Follow-up to 31c57d594a. This was
causing an exception, preventing the page contents from updating after
saving changes.
Change-Id: I8c9ab51385172056be9032ec0087f64ff34b6709
It should appear below any page content, at full width.
Currently it gets squished by floats on some pages.
Change-Id: I4c4107d438dfd06eec21badce5f216aa2c137272
Rather than setting it on both the reply link and the reply button,
set it on their parent element.
Update ReplyLinksController to handle this.
Change-Id: I650e9c0ebd354a82b8f66a63c5b4c02b2e29b105
This improves the behavior when replying to these comments
and the message snippets shown in notifications.
Bug: T313097
Change-Id: Ia10400472c9e999fa526c7437a03b72461c37b74
They were only disabled in the reply tool, because their wikitext
markup doesn't work when indented. This is not a concern in the new
topic tool.
Rename our sequences that display the wikitext warning to avoid these
items showing up in the command help dialog, and remove overrides for
global ve.ui.commandHelpRegistry. (As a result, the dialog now lists
the blockquote command, which was previously missing even though it
was enabled, but only with the 'Ctrl+8' shortcut and not 'Type ":"'.)
Also remove filtering rules for external paste.
Bug: T311653
Change-Id: I4557c376fcf099d81e91ae5c2b18301d97921180
Since writing this feature we added the ability to update
the page dynamically on mobile, so this shoud just work now.
Bug: T301929
Change-Id: Iceb5d8c90a892807745ba7133b7dd389293d3327
In general we are hiding non-content elements in the preview
and this matches the behvaviour of the article editor.
Change-Id: I6669d8cc737214d464b662ccc6900ccce229b3d7
:first-of-type selectors refer to the node name, so just
use :first-child and :last-child for the open and close brackets.
Change-Id: I2e8ca7e99d1262522ed2d3b5133093817af8ad29
If some content is loaded without re-initializing DiscussionTools
(this currently happens on live preview), then a link to a comment is
clicked, we will not find the comment, which previously caused an
exception. Just ignore this, other code paths in highlighter already
handled this situation in this way.
Bug: T309423
Change-Id: Ie46fd782b8a45907dc6fc604691575c4b55d08ce
Unlike PHP DateTime, and unlike the .toISOString() method,
the Moment.js .format() method will output localized digits.
Bug: T312828
Change-Id: I49a250b1ad74d9395bf3f994379613cc121b5be4
When the input to moment() doesn't define a timezone, it
defaults to the local timezone (as defined on the device,
not in user preferences).
Bug: T312828
Change-Id: I8d2e1c2f6feb5584af4bbf9fef39567eb87780ff
We remove the [reply] and [subscribe] links when they should not be
visible (controlled by 'enableSectionEditLinks' option, which is
disabled when previewing).
Bug: T309423
Change-Id: Ie0d3fba2c4d166daac3ea2e117a246c9584284ca
Use 12.8px for interface, and 12.7px for content.
Move mode tabs away from the reply body so the underline can be seen.
Change-Id: I9cb9a611ca64595152f800e1e15b640402f6cb74
Previously this was reverted in I28a5c774f5f after the initial
commit I3736b488046 caused T312177.
Bug: T311760
Change-Id: Iba65615378b183f0c970afff565f45cc878f1d71
Vertical space is at a premium on mobile with the virtual keyboard.
The widget will auto-size when more text is entered.
Bug: T311836
Change-Id: I03ff7217f9ffe217f93a3dc95db2df018bd0d221
We tried to align the buttons with the far edge of the page, but due
to skin styles setting `overflow: hidden` on the content, this is not
possible without causing the focus outline to be cut off.
Bug: T311662
Change-Id: Ie7c10c7564450c06231632892341c7fb232e7041
The icon element should be aligned with the right side
of the content area, like the expand/collapse button, and
the edit pencil in the main namespace.
Change-Id: I191a5984bafc6a478674dd5dccff0594a743ff18
* Use sibling selector instead of negative margin to reduce
space between hint and reply widget.
* Remove upstreamed right-padding for close button.
Change-Id: Ie51cd2208c2bebcbfeff08c249389085523193f0
For comments posted on or after 2022-07-12 (configurable), use a
shorter format, identical to the timestamps MediaWiki uses in URLs.
Changing the format for already existing comments would involve
difficult migrations, therefore we elect not to do it.
Bug: T304595
Change-Id: I387051a6a3a1d84cfae45c3e1516db870cc8b977
We cleared the highlight outside the setTimeout(), then set a new one
inside the setTimeout(). If this method was called twice quickly, two
highlights would be created, and the first one of them would become
impossible to clear.
Move the setTimeout() outside of the method to avoid this.
Bug: T311021
Change-Id: Ic8b2cf2a782a429c4ea073871efd215f4b300ed8
* Fix math and styling for RTL
* Make highlights for headings and framed comments cover them fully
* Align the far edges of wide comments
Bug: T309444
Change-Id: Iadbf83e02801fd9bd6336c84015994ee2819ce51
It's needed for the fix for T303396 to work correctly (in the case
where there's exactly 1 thread item on the page), and for the
highlight improvements in Iadbf83e02801fd9bd6336c84015994ee2819ce51.
Change-Id: I2b2f5535ebbf792910133622a271ac1491c74de6
Rather than making our own ThreadItem objects from scratch,
reuse those used by the rest of the code.
Change-Id: I67f5ea3ad26baffe51b66d0c75467ac00185dd0a