Commit graph

94 commits

Author SHA1 Message Date
gopavasanth e4c31f762b Replace custom 'pin' by 'pushPin' icon
Modified CSS of the pushPin

Bug: T194613
Change-Id: Ifdaa2567c67a45fd44bea7cc4718f29c4e1a58fd
2018-08-30 20:31:04 +05:30
Thiemo Kreuz 3520a606c9 Limit fetchUserGenderData to maximum 50 users
The 50 is the default. The worst-case scenario here is that users
beyond this limit don't have a gender for a while, until the next call
to the same API endpoint fetches the next 50 users with an unknown
gender.

Doing multiple API calls in advance is not worth it, in my opinion.

Bug: T197858
Change-Id: I0fdcc7ea96a6a5ee3934600c6f0fdc65263276e8
2018-07-04 10:44:27 +00:00
Fomafix 33b2b584a2 Remove dependencies on deprecated modules 'mediawiki.api.*'
In core, modules 'mediawiki.api.*' got merged into 'mediawiki.api' and
deprecated in I0afdc8ab50bc1354bb5099bf39923c07eab0b665.

This change increases the requirement to MediaWiki 1.32 or higher.

Change-Id: I60601c8fe97b251e8e2a186dec0149bbc1169f01
2018-05-31 14:28:38 +00:00
zoranzoki21 c6e469ddc5 Removed deprecated position statements from resource loader module
Bug: T184257
Change-Id: I7b1fc3cf8e92d31b77b6cd69c832652b47873046
2018-02-03 17:35:56 +01:00
WMDE-Fisch ad760e90d7 Use SPDX 3.0 license identifier
SPDX released version 3 of their license list (<https://spdx.org/licenses/>),
which changed the FSF licenses to explicitly end in -only or -or-later
instead of relying on an easy to miss + symbol.

Bug: T183858
Change-Id: I66f232a6a0fd03ff51cc0b4c87ee7b6f50edf439
2018-01-04 11:42:37 +01:00
Volker E e868a33116 Refactor RevisionSlider toggle button CSS
including:
- Using LESS for nested CSS
- Overrule `margin` of frameless OOUI `mw-revslider-toggle-button`
- Removing CSS that had no effect since some time
- Removing `!important` where not longer needed

Change-Id: I1ba01061ebafe799ca62dbb6ce5e79459612af23
2017-11-17 12:06:06 +00:00
Ed Sanders 684c6c4b0c Use LESS color calculation for blue/yellow slider styling
Change-Id: I7220acf4b5c4a70f56cde67269c09cd3bf757f19
2017-10-27 19:54:43 +01:00
Fomafix 82427b09bc Fix dependencies to core modules
Add dependency on module 'mediawiki.util' for module
'ext.RevisionSlider.DiffPage' because
modules/ext.RevisionSlider.DiffPage.js uses mw.util.wikiScript.

Remove dependency on module 'mediawiki.util' for module
'ext.RevisionSlider.RevisionList' because this module does not use any
functions from mw.util directly.

Remove dependency on module 'mediawiki.user' for module
'ext.RevisionSlider.init' because this module uses only mw.user.options
which is generated in core module 'mediawiki' and not in
'mediawiki.user'.

Change-Id: Ifc6a20de667a410b9890fdc1fcba3319beb061de
2017-08-27 16:55:29 +02:00
mdew192837 d665c03e0a Monobook uses x-small and a globalWrapper to make everything inside
of it appear normal. However, the revslider-tooltips are not inside
this globalWrapper, and thus need a separate CSS rule.

Bug: T166231
Change-Id: I2115688fee75145349e062b9586713a56541afa0
2017-08-09 10:49:24 -05:00
Ed Sanders b1f2613d79 Use core wgDiffOldId/wgDiffNewId JS config values
Newly introduced in a469795efc5bc1c585c9f84ee289ee099833661d.
This will require MediaWiki 1.30.

Change-Id: I9897a77b24e258bf037f8ec6cafa1d0684bf867d
2017-07-18 16:16:05 +00:00
WMDE-Fisch edfd885543 Remove last SliderViewTwo parts
Bug: T165747
Change-Id: I9ac410613361e567bd825f096eb12bbb3edc5cde
2017-07-05 10:22:33 +02:00
Andrew-WMDE 80ab1408ac Remove BetaFeature Code
Bug: T167276
Change-Id: Iad2e34e2f906777c7ba0e22e245dc55891f211ae
2017-06-23 14:45:48 +02:00
WMDE-Fisch 12e34322bc Merge SliderViewTwo CSS into main CSS
Bug: T165747
Change-Id: I1949591063bb8d2df7ddf3bc0c33247ece1bd522
2017-06-21 10:13:32 +02:00
WMDE-Fisch 9e977cec67 Add icon styles to extension.json
The used icons are not loaded in core by default anymore so we need
to load them manualy.

Change-Id: Ic55bf7c3ce531472153c10e75dbbc6a623ad4eb2
2017-06-01 17:05:36 +02:00
Florian Schmidt 5173fe59d4 Do not use the main config for extension configuration options
This currently just works, because the currently used backend are
global variables. Once the main config uses a more scoped/focused
backend, such as a HashConfig or a database-based config, requesting
extension configurations from it will not work anymore.

Therefore, use the extensions Config object to request configuration
options for the extension.

Change-Id: Iea02d3c284f9a0e12abff33e3624dce9585ab51c
2017-05-20 11:54:52 +02:00
addshore ed48f4ef3b Split ext.RevisionSlider.lazy into Js and Css modules
Bug: T164893
Change-Id: Ideb82a24aa852067acc60e512318a26f88f2d395
2017-05-11 10:45:57 +02:00
Andrew-WMDE 96a366ddb0 Update help dialogue to explain new sliding mechanism
- works with the setting var to switch help text
 - minified new SVGs with svgo
 - adjusted new SVGs dimensions
 - updated accompanying text

Bug: T162773
Change-Id: I3da66a006977fa6b1999686ba4f415e891f4ea02
2017-05-09 19:50:39 +02:00
WMDE-Fisch 31b9fe31ef Convert touch events to mouse events on pointers
This will make the pointers work on touch devices. The events responsible
for the touch drag and move are converted to mouse actions that will
trigger the draggable.

When using Chrome on touch devices and zooming the offset of elements
calculated by jQuery is wrong. There is a workaround that seems to work
and also seems to not break behavior with normal browsers and on other
devices. Since this only seems to be a problem in Chrome the fix will
only applied to Chrome browsers to avoid performance los on others.

Also introduced a script file for static utility methods.

Bug: T164249
Change-Id: I245f77eb836afded249f3b5ebb7129dab08d0017
2017-05-08 12:55:31 +02:00
WMDE-Fisch e6d28dc19d Use a new config var to activate the alternate SliderView
Change-Id: I7e2dd04c333d3b8daf9f009898f8f80b4e7aad3d
2017-04-07 11:58:19 +02:00
WMDE-Fisch b8ccbfa763 Improve SliderViewTwo load stability
In some cases there seemed to be a race condition where the SliderViewTwo
class was not loaded when the Slider class tried to use it.

Change-Id: I3f161e024bb3ed0e035cb55bd698124be31e8aa1
2017-04-06 11:23:37 +02:00
WMDE-Fisch c52c657516 Introduce alternate SliderView
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
2017-04-06 07:29:19 +00:00
WMDE-Fisch 268944a0b3 Remove browser tests for beta feature setting
The browser tests do not gain very much from the beta
feature tests and the default setting having the extension
only availible as a beta feature slows down the tests in
general.

Furthermore removing this will make it easier to let tests
pass for the temporary change in the slider logic.

Change-Id: I7377a6f11aa103af76d14fea3cbb34572495192a
2017-04-05 11:24:40 +02:00
WMDE-Fisch 97c85abdf2 Move arrow button logic to own class
Change-Id: I56e52d8b11f8557d759dc495512d9754e8f441f6
2017-03-27 18:56:59 +00:00
WMDE-Fisch 7e277fbd9d Move helper button logic to own class
Change-Id: I8fdfeb3344974b3cee7ce07bcf2ceea9308fffe6
2017-03-27 18:56:34 +00:00
addshore b3c42837b1 Document RevisionSliderBetaFeature setting
Change-Id: If7041f8e540701f2d81a3e8279d47db07db19049
2017-03-17 12:06:10 +00:00
addshore e530fa7ef9 Order & add extension.json authors
Order is based on number of commits.

Change-Id: Ia94cbc188c5f451b1d38ee43ddc665c05003d9e3
2017-03-08 19:55:15 +00:00
addshore 12c6010de5 Require MW 1.25+
This extension uses extension registration...

Change-Id: Ice7a7ba6b69a2fcb3c9f6ebcf5ef89a1dd8589bf
2017-01-06 14:54:15 +00:00
addshore 6755c1b0ce Move RevisionSliderHooks class to src dir
Change-Id: I57a52c8f82180c715cbe97f4f4dd8a765992e482
2017-01-03 19:26:33 +00:00
addshore 2cf768f7b7 Lazy load most of the JS
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
2016-11-30 11:59:16 +01:00
Leszek Manicki f97b572c27 Add missing dependency on mw.Uri
Bug: T151747
Change-Id: Ibefeb151661727b817482207ae043f2361e0190b
2016-11-28 12:40:32 +01:00
addshore 0d4323c4a1 User preference to disable the Extension
Bug: T151452
Change-Id: I35a50a411006dca6919a50ba2d0c5f2e8bc1b2e9
2016-11-23 17:58:13 +00:00
WMDE-Fisch df9d94ca60 Draw lines between pointers and related columns
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
2016-11-08 13:46:14 +01:00
WMDE-Fisch 300c552334 Store settings for anonymous users
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
2016-10-24 16:46:42 +02:00
jenkins-bot 530295db60 Merge "Add a betaFeature switch" 2016-10-24 14:46:00 +00:00
addshore 02991a7bd0 Add a betaFeature switch
This config option allows the extension to be deployed
on a site that has the BF extension enabled while not using
it (ie, being a default feature)

Bug: T148644
Change-Id: I2539e4762d7c1c34ea24f98fdf24c2aecb3d27b0
2016-10-24 13:08:58 +00:00
addshore 066d905d33 Fix my author entry
Change-Id: I8bbdc9b4a39c235170ba3bfba71c78b453a3176a
2016-10-22 14:43:59 +00:00
addshore c8cd4c5fb4 Only show pin button to logged in users
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
2016-09-12 12:45:35 +02:00
Fomafix d33ef6e515 Add missing dependencies to core modules
Change-Id: I53174e3d437b4d12525c1cf915027cb26f87bedc
2016-09-09 07:08:42 +02:00
Leszek Manicki 6502728184 Add button to have revision slider expanded automatically
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
2016-08-30 13:57:12 +02:00
Jakob Warkotsch 2a25f73fc5 Remove unused message.
Change-Id: I3a266e1576aeec50c618568d7a05ab3ad29d39f1
2016-08-18 15:26:54 +02:00
Leszek Manicki e243ca2746 Do not load RevisionSlider initially, add a button to show/hide it
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
2016-08-10 16:26:54 +02:00
Leszek Manicki 796a971118 Make backward/forward arrows OO.ui.ButtonWidgets
Bug: T142206
Change-Id: I25c98e32c74235a2b70ac1d02c221f1898ba9958
2016-08-08 16:17:35 +00:00
Leszek Manicki 77095bfa65 Use OOjs Popup Widgets instead of tipsy
Bug: T141983
Change-Id: I4b4ea427f82b15625537d859623461eceb1eb52b
2016-08-08 18:11:23 +02:00
Leszek Manicki 0af4fe35d5 Make the "show help" button a OOjs ButtonWidget
This also adjusts position of the help icon so it better fits
the available space.

Bug: T139150
Change-Id: Iec7ec31a83a1a847cd68a994ecac12acf960d699
2016-08-08 13:14:31 +00:00
Leszek Manicki 3cc218391c Include a number in messages showing a number with a unit
Extension should not enforce English order with number being followed
by unit "bytes" in messages related to byte size.
This also splits a message into two messages: one for page size value,
and other for change size. The latter size is signed and value to be
shown is colour-coded HTML element so it is a bit more complicated
case than the page size.

Bug: T141507
Change-Id: I96992eafd4cd8a5aed3fcd5944129bcd83139a16
2016-07-28 15:04:25 +02:00
jenkins-bot 6aea17b627 Merge "Fetch more revisions as the user moves back and forward" 2016-07-28 11:38:53 +00:00
Leszek Manicki dc838bc87d Fetch more revisions as the user moves back and forward
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
2016-07-28 12:58:35 +02:00
Leszek Manicki 633e7421e1 Remove HTML tags from i18n messages
This moves all HTML formatting out of messages and makes all
formatting happen in code. This should make work of translator
easier and the UI of the extension no longer rely on HTML tags
being included or not in i18n messages.

In particular "tooltip" rows are now generated in code, with
only their labels being translatable.

Change-Id: I2af9b9f0e231a7b2827a202d9ac7161b8c95855a
2016-07-27 10:28:37 +02:00
Leszek Manicki c7190cf97d Add support for GENDER to the username label in the tooltip
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
2016-07-26 11:50:59 +02:00
Ed Sanders a5f36af0f3 Prefix all classes and IDs with mw-revslider
Bug: T139105
Change-Id: Ia92396ec4f8acea39398173c81842d66257dc519
2016-07-01 11:27:23 +01:00