Steps to reproduce:
* Start making changes to a page in the classic editor.
* Use the normal "Show preview" or "Show diff" button at the bottom
of the editor. The page reloads and now shows a preview/diff at
the top, above the editor.
* Now start using the realtime preview feature on the right side of
the editor.
You will notice that the preview/diff above the editor starts to
flicker, but is never updated. (There is no need to update it. The
realtime preview that is updated is the one in the right pane.)
The original code was added via T293347. I believe the flicker
exists since then. It's effectively a misconfiguration. I hope the
comments make this clear.
This is also a direct follow up to T307046 where the diff view was
fixed (it just disappeared before), but flickers since then.
Bug: T293347
Bug: T307046
Change-Id: I481610389cec902268a8fd09f6b0452131752d54
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.
- reinstate static values only on resizeable drag bar. This is not a
standardized component yet and will be revisited with further Codex
component definitions in future.
Bump required MediaWiki core version to v1.41.0.
Bug: T319381
Bug: T332541
Change-Id: I323561894ddf23aa89f51439fc9df2b7642eaca5
Delete almost all code realting to the onboarding popup (blue
pulsating dot) and Beta Feature. Leave only one line to delete
any existing localStorage item that was used to remember the
dismissal of the onboarding popup.
Bug: T327515
Change-Id: I8d05e143858a2269dd6f3302dcc6cee6b0855ffd
The #wikiPreview element can contain other child elements such
as the already-removed one of .previewnote but also (on category
pages) category lists, which we don't want.
This changes to only clone the specific content element. We could
just create this in JS, but don't at this point have access to
the lang direction.
Bug: T315558
Change-Id: Ifcd02e9cf005e00c8dd69df162893fb673117231
Add `position: relative` to .ext-WikiEditor-realtimepreview-preview`
per this suggestion (T315049#8174670) by Matma Rex.
Bug: T315049
Change-Id: I70813f68ffd74fab4978127ecee9bd557d467ebb
Set inManualMode to the result of the current prefers-reduced-motion
setting.
Add another property (reducedMotion) for later UI/message work
Bug: T314787
Change-Id: Ifeb8b996430830499945e73eca2dcfe0355c8046
Because the manual-mode bar gets hidden when an error message
is displayed, it's necessary to re-show it after the preview
is reloaded from the error message. This was done in the
below patch, but that didn't account for all conditions.
Follow-Up: I26150c190a9d3816e35ba369536e6d0ac11e4b1a
Bug: T307240
Change-Id: I0e9698faebd3f4df41221d6ba0b0f5f82ae3ae5b
Add following logging events:
* preview-realtime-error-stopped: triggered when realtime preview
auto-load is stopped.
* preview-realtime-reload-error: triggered when realtime preview pane
shows an error message and the reload button shown in this message is clicked.
* preview-realtime-reload-hover: triggered when the reload button
that shows on hover in the realtime preview pane is clicked.
* preview-realtime-reload-manual: triggered when the reload button in
the realtime preview pane manual bar is clicked.
Bug: T306176
Change-Id: I0785b0a8e88125a9bb30ff5c64c8a7c50b556c63
* Call the parent constructor.
* Add CSS class to the widget's existing $element, rather than
creating a new one. Doesn't really change anything, just looks
neater.
Change-Id: I67a72b5e2ef0912c7c7f7a44c87b31c08e1f7fcb
Move the resize handler from the RealtimePreview constructor to the
getToolbarButton() method, to prevent it being used when the button
is not used (e.g. if the gadget is misconfigured).
Bug: T309330
Change-Id: I7abc335112648605404785528b37a81d946e900e
Save the current caret position in the textarea before enabling
or disabling Realtime Preview, and restore it afterwards.
Bug: T311496
Change-Id: Ib906e96e4e8b94b4e1fd82f6201005394c8a27c5
It doesn't work well when there are infoboxes etc. and the actual
scroll behaviour is jerky and not very pleasing.
Bug: T294977
Change-Id: I8fbba61ddd902c16b3c63b41fc361afb5d1c1a1b
* Prevent the realtimepreview module loading on anything
other than wikitext pages (as is already done PHP-side
but that is bypassed when loaded as a gadget).
* Give the #wpTextbox1 a class so we don't always style it.
Bug: T307039
Bug: T308176
Bug: T309330
Change-Id: I26111a61c8cf37520b3619faf09d76445973edd3
When either the textarea or the preview pane is scrolled, match the
other to the same vertical scroll percentage.
Bug: T294977
Change-Id: Ieda15868162caf06ef9099065ba55cfd8d8bfd0f
Because the DOM and layout changes reset the scroll position of the
editing text area, it must be manually saved before enabling/disabling
and reset afterwards.
Bug: T294977
Change-Id: I7722213e682401d29b6b53d672a487da042be6a9
Add a pulsating blue dot to the Realtime Preview toolbar button
that displays an onboarding popup when clicked and disappears
forever when dismissed.
Bug: T294589
Change-Id: I7f4dd0858349b0e7c4f4bedea5c7a62a51c6fa3a
Set both drag element lengths to 52px (@affordance-length)
Set the margin on (.ext-WikiEditor-ResizingDragBar span) to 2px
Set (.ext-WikiEditor-ResizingDragBar-ew) background-color to
@colorGray15 (i.e. #F8F9FA)
Remove legacy comment.
Bug: T307105
Change-Id: If0087398920c7ad92e5a2cd1ee5c178644f8d95b
Change the handling of the manual reload button's accessKey to
only refresh the preview if the pane is currently open.
Duplicate change to ManualWidget's handler.
Bug: T307805
Change-Id: I0f07ff346eef4bd93d13d55548381a71c0f660d3
* Always hide the error message after a successful preview.
* Before previewing, make sure the preview node is un-hidden, in
case it was previously hidden by showError().
* Stop checkResponseTimes() from hiding any error (it only handles the
manual mode).
* Stop showError() from hiding the manual bar (it's okay to see both).
Bug: T306965
Change-Id: Ic2ad52fea41070adb196ef2fbd740e808d373e5e
Make the manual-mode loading bar clickable by turing it all into
an anchor element with various mixins for functionality.
Also adds a tooltip to the whole bar, and makes the same accesskey
work (including when the preview pane is closed).
Bug: T306590
Bug: T306906
Bug: T306880
Change-Id: I915a430300c75256d89b929e3925d0ea714807bb
Add a minimal resize limit on the preview pane (`.ext-WikiEditor-twopanes-pane2`) to 248px
Bug: T307105
Change-Id: If05376571bb0b223edac48adecbe124e01293c7a
To make it clearer that setEnabled(true) enables the feature, and
setEnabled(false) disables it, invert the function of the first
parameter. Also improve jsDoc parameter documentation.
Follow-up: I4615f629a0c97fb325721bbddee5c9eb074c3a5c
Change-Id: Icb84bcf0624774b9a7002110f1fac31bf48ebd1d
When the error layout is shown, hide the hover reload button,
and only re-show it if the preview is successful.
Bug: T306866
Change-Id: I5e72295069ee9e8279c5786c3959db5902da0e25
* Add hover and active styles to match normal toolbar state styling.
* Move border from right to left on `.section-secondary .group`.
* Add a skinStyle for MonoBook so it doesn't get the button style,
because it provides its own.
Bug: T303991
Change-Id: I6f08906156a9768729d779b6c50c9e804f51fb98