… and replace them with more trivial `function …() {}`. I
believe this does not make any difference. But I feel this
makes the code a little more straightforward.
The motivation for this patch is because a few other patches
change some of these function declarations, leaving a (in my
opinion) confusing mixture of styles behind.
Change-Id: Ib8928c4176a963afcf1fee1c785dd7bdc86c9706
FIXME: Reusing HelpDialog as a module entrypoint creates a circular
reference. It's harmless because the dependencies are added at
different times, but also easy to refactor away.
Change-Id: I3608a78baddf2376cc9eb4524625f4911c130c06
Approach followed:
- Include tags as an additional parameter in rvprop field to fetch revision tags
- Use API Tags to fetch available change tags for a wiki along with their display names
- At the time of fetching revision data rebuild the revision list with tags containing display names
- Display tags one in each line on the tooltip
Bug: T180429
Change-Id: Ieba8b79ed408ff50b3f7d4bcfd7b2fa8cca83278
Added show() and hide() for mw-revslider-auto-expand-button in collapse and expand function.
Bug: T200263
Change-Id: Ic24a175dfe8d19853e32669f12b9f17e26730d6b
The arrow in Revision Slider flips on expand and collapse which is not according to the standard of OOUI.
Bug: T198626
Change-Id: I4205a2260e8507a09f2950566e5033bd58a74345
This patch improves screenreader support by applying some basic
rules and improving the OOjs UI usage. Things done here:
- make use of 'aria-label' attribute to label interactive buttons
- use connect method on help button to allow keyboard interaction
- give hint on help button that it opens a dialog
- communicate state of autoexpand button
- add attributes to make screenreaders understand the accordion
mechanism if the slider widget
See:
https://www.w3.org/TR/wai-aria-practices/#buttonhttps://www.w3.org/TR/wai-aria-practices/#accordion
Bug: T165489
Change-Id: I7a174e5971a751ec54d4d5115d5441f0a577c103
Adding a new class for an alternative slider view with
one slider for each pointer. The new class will be used
when the extension is installed as a beta feature.
Each pointer has now its own pointer container visualized
with a thin line. Pointers can not change places anymore
and methods doing so where overwritten in the patch.
Selected revisions are not colored atm to better distinguish
between pointers and bars. Poiner lines are now shown above
the bars. ( as from feedback in the last PM session )
Some issues with the design might remain. But since we plan
the deployment anyway next week this could be merged if reviewed.
Bug: T160410
Change-Id: If00c31e30f8a01f3525b191c70605b9c9381671d
This patch changes the way OOjs UI tooltips are constructed.
Until now we did not use the full potential of the widget.
Some strange behaviour remains and it seems we can not use
'horizontalPosition' here. Therefore the direction is passed
down to the RevisionsListView to center the tooltip manually
and margins are set for the help and arrow tooltips.
Bug: T159428
Change-Id: I0a67340da4d94f2f6b29e507f94fc695b44b71f9
With the parent of this commit (current master)
Loading the RevisionSlider JS without it expanded increases
the request size by roughly 767KB on first request and 242KB
on subsequent requests.
The large size of the first request is mainly down the to
dependancies of the slider.
This lazy loading patch means the RevisionSlider JS
only causes an increase of 184 KB per request.
If the user has the bar expand by default the main JS will
be loaded straight away (and the lazy JS will not be).
This patch also means that when only the bar is loaded the
pin button to set auto expand will not be shown.
This will be added once the RevsionSlider is loaded.
Bug: T151668
Change-Id: I054a82e9ea2aa89326464632e744497239f7adba
.'s in a metric name can essentially be thought of
as directories.
When building graphs from this data an * can be used to
match everything in a directory, for example:
MediaWiki.RevisionSlider.event.*
As these 2 events held another . in their name they
would ont be matched by the abov wild card, so instead use
a _ so that they will!
Change-Id: I1dce9253eb9d4ccb99516683897564e14bb9a577
- The first case is when the slider is collapsed and the auto
expand is switched on, the slider expands and now the toggle
switches.
- The second case is when the slider is loaded expanded, the toggle
now loads in the correct direction
Bug: T150846
Change-Id: I75610308c9f169fb926953a12dc5108e0fba23bf
Introducing a new class that draws lines between the pointers
and the related diff columns. Lines are redrawn when pointers
were moved. A colored border is added to the diff columns and
readded when the diff changes.
Bug: T149175
Change-Id: Iadf779368c58da7779c769bda8e9bd3fc5afcffa
Introducing the Settings class handling settings for all users.
Use hidden user prefs for logged-in users and localStorage or
cookies for anonymous users.
Bug: T145494
Change-Id: I8676873c87d5656c55365706f1ccefa604caae4d
Drag-resizing a window results in hundreds of events being fired,
so limit this to one event every 250ms.
Change-Id: Ie3ace9001cd840a5d790cd269c4ae3c77649079a
When the extension is used without the BetaFeatures
extension it is possible to use while not logged in.
Anon users can not have a user preference set.
Thus anon users should not be shown the pin icon.
It may be an idea to add a cookie for anon users
later down the line.
Change-Id: Iafeacf6ae9e24b3134f1c180d390cfad4245719a
First I jumped on replacing both jscs and jshint with eslint but
it might be premature decision. Although linting with eslint
is possible (like in there is wikimedia config for eslint)
it is still not clear should it
But in case the change happens we will be ready.
Apart from config stuff this changes few bits spotted by eslint:
improves some indentation, removes weird spaces, completes some
doc blocks, changes IIFE forms in tests. These changes do not
seem controversial.
Change-Id: I9f8bf0f5745da8e662685f4cd879ea4baa609c01
This adds a button which allows a user to make revision slider
automatically expand on each diff page (disabled by default).
User's choice is stored as a hidden user preference.
This is a bit hacky as it squeezes a button on top
of another button (100% wide expand/collapse button).
This also adjusts styles of ToggleButtonWidget so
the button looks more like a frameless button, although
it is created as a framed one (to have inverted behaviour
when button is in its "on" state).
The button only gets visible when Resource Loader finishes
loading JS and CSS to avoid button jumping around the top
of slider window before "right" styles are applied.
Bug: T142196
Change-Id: Id561485344cba9b136666fe31b086151467de19e
Instead of loading RevisionSlider only add a little button
to expand RevisionSlider on top of the diff page.
This makes RevisionSlider only steal a bit of space over the
diff, and only inserts quite a big slider to users that want
to have it visible for the particular diff.
API calls are only made once RevisionSlider has been expanded.
This is re-submit of b0f229d75f
that was reverted in I26427faaa00b38c2aa1377a66224c9062dcca302.
Bug: T141871
Change-Id: I879de5774b2cce7b908e73cbbe869fd48d6afa23
Instead of loading RevisionSlider only add a little button
to expand RevisionSlider on top of the diff page.
This makes RevisionSlider only steal a bit of space over the
diff, and only inserts quite a big slider to users that want
to have it visible for the particular diff.
API calls are only made once RevisionSlider has been expanded.
Bug: T141871
Change-Id: Ib312f6225b85b9ebdf4ac5d16e254a57d5cf6411
This changes the previous behaviour of fetching always up to
500 most recent revisions.
Now the extensions fetches N revisions including the newer
revision selected to diff as the most recent revision.
N is number of revisions that would fit in the current
window when rendered as bars.
When user is close to either "end" of the slider, extensions
fetches another batch of up to N older or newer revisions,
as long as user does not reach the oldest or the newest
revision of the page.
Among others, this removes the limitations of the previous
approach: showing only 500 revisions, and failing to show
anything when any of selected revisions was older than
500 recent revisions.
This change also simplifies usage of Api class.
Bug: T135005
Change-Id: Ib3f4a6ac57ff17008f9d8784c4716bd294443096
After fetching a batch of revision data, user names are extracted
and another API query is made to get gender preferences for users.
This change also moves a code responsible for MediaWiki API calls
to its own class.
Bug: T136367
Change-Id: Id11fe14e9ca37829141ae92b13b51f10f992eb96