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
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
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
Make the reloadButton into a class member so that it's
accessible in doRealtimePreview().
Bug: T304568
Change-Id: I81c1870becd81884894353921f878653cd690d7a
After three slow preview requests, switch to showing a bar at the
top of the preview area that contains a manual 'reload' button.
The manual bar will be hidden when an error message is show, but
re-shown again after the error is dismissed. Closing and
re-opening the preview pane doesn't reset the manual mode.
Bug: T304568
Change-Id: Ia72bd1ceab68fdaed5de53137bd8ac5961db4714
Add a 'reload' button to the right-side preview pane (that shows
on hover, and stays in the same place when the preview is
scrolled), and also an accesskey to trigger the preview. If the
preview is not open when the accesskey is pressed, it'll be
opened.
Bug: T303532
Change-Id: Ifa77ad7cf6d2ed6a8b955f9a324986d1c6f9a993
Change from a pseudoelement ::before the left pane, to its own
element. This is so that when we introduce the top manual-reload
bar the blue bouncing loading bar can be shifted down below it.
Also moves the CSS out of TwoPaneLayout.less and into
RealtimePreview.less where it more properly belongs.
Bug: T304568
Change-Id: I540f68d528d92b7db8594d729985e5dad3d90ac1
Instead of exposing a way of adding event listeners, just expose
the event handler and let consumers (i.e. CodeMirror) add it
to whatever events it wants.
Bug: T303767
Follow-Up: I8c8c25fe56be55a61f4b8d1d2ef8cf74483aa241
Change-Id: Iee4c885f92dd9ec985a3f9fd92a2fafc00f2e9ff
Store the current state (enabled/disabled) of Realtime Preview in
a new user preference `wikieditor-realtimepreview` and set it
when enabling or disabling the preview pane.
Bug: T294599
Change-Id: Id5f51c6d77ed0077906d5d5178cbfa785cc04dcf
$wgWikiEditorRealtimeDisableDuration is introduced which allows
sysadmins to control the average time after which Realtime Preview
should be disabled. For now, this shows a simple error message that is
intentionally not localized. In a future patch, we will force the
user into a 'manual preview' workflow. See T304568 for more.
Bug: T302282
Change-Id: I2f01eef19fe81c19efedcc0073a28884f0055359
If a preview is requested before one finishes, one final request is
fired off to ensure the preview is up-to-date.
Bug: T302282
Change-Id: I2399fc7cc08cd0987d2d689ca9f297db1ec5edf0
* Toolbar button to toggle a two-pane layout on and off.
* Resizable bar for the width of the two panes.
* Resizable bar for the edit box height, even when realtime preview is off.
* Only enabled when $wgWikiEditorRealtimePreview = true.
* Fires JS hooks when enabled, resized, and disabled.
Bug: T293347
Change-Id: Id09d44519249c0b7f5c33d48d524b7c92a5a9106