Commit graph

82 commits

Author SHA1 Message Date
WMDE-Fisch 37dc0b5adb [QUnit] Avoid manipulating the global history
Also introducing sinon to mock some parts.

Bug: T370573
Change-Id: I5a7573bcac9501a7b37a12b86bb0d4f46055f70e
2024-07-23 22:19:58 +02:00
libraryupgrader 18c3b0a87a build: Updating npm dependencies
* eslint-config-wikimedia: 0.28.0 → 0.28.2
* grunt-stylelint: 0.20.0 → 0.20.1
* stylelint-config-wikimedia: 0.17.1 → 0.17.2

Change-Id: I798f739b5b2f12e5c6eedc88ecac557de28be129
2024-06-21 20:28:54 +00:00
libraryupgrader f5de8ee108 build: Updating npm dependencies
* eslint-config-wikimedia: 0.27.0 → 0.28.0
  The following rules are failing and were disabled:
  * modules:
    * no-mixed-spaces-and-tabs
    * no-jquery/no-extend
    * implicit-arrow-linebreak
  * tests/qunit:
    * no-jquery/no-extend

* grunt-stylelint: 0.19.0 → 0.20.0
* stylelint-config-wikimedia: 0.16.1 → 0.17.1

Change-Id: I3fd3c4a2cbb03d3aa4c8efb658e33d14d24cd518
2024-06-08 12:04:26 +00:00
jenkins-bot bc3d1b7868 Merge "Fire mw.hook 'wikipage.diff' like in core module 'mediawiki.page.ready'" 2024-05-28 14:46:34 +00:00
WMDE-Fisch ff555fb62c Streamline element replacement when updating the view
I mostly refactored what's there. Instead of replacing parameters in specific links,
I'm going for the parent menues where these links live in and replace them completely.

Thereby I could also merge the edit and ve-edit selectors.

Also adding the footer that includes the link to the mobile view and seemed missing.

Bug: T211557
Change-Id: I263c82e80c675918683340d1bb01291213797f9f
2024-05-27 07:10:51 +00:00
Fomafix dd4f849805 Fire hook 'wikipage.categories' before change of the catlinks DOM
Also use the selector
	'.catlinks[data-mw="interface"]'
instead of
	'#catlinks'
like in mediawiki.page.preview.js. This prevents selector injection by
the wiki content.

This change allows consuments of the hook 'wikipage.categories' to work
together with RevisionSlider.

Change-Id: I274e3d3b8ac94cc21c7b0878425c9a785a09b964
2024-05-05 08:13:37 +00:00
Fomafix a8d1a07c0c Use $( '#t-permalink' ).parent() instead of $( '#mw-panel' )
The selector '#mw-panel' from skin Vector and some other skins is not
stable to use and not available on other skins like Vector-2022.

The update of '#mw-panel' breaks CollapsibleVector: T211557.

Using $( '#t-permalink' ).parent() is also a dirty hack but it probably
works on all skins.

The .parent() also updates siblings like '#t-urlshortener' from
extension UrlShortener.

Also add $( '#ca-delete' ).parent() to update the other portlet links.

Bug: T211557
Change-Id: I084c93e8fe7c7663d9de8a39433a9e92a3827196
2024-05-04 09:45:53 +00:00
Fomafix 008cf562e4 Fire mw.hook 'wikipage.diff' like in core module 'mediawiki.page.ready'
The `[data-mw="interface"]` in the selector prevents selector injection
by the wiki content.

The `.length` prevents unneccessary calls with emtpy list.

Change-Id: I434371539355e305d9faf569371ab5a686b2caff
2024-04-26 09:00:02 +00:00
thiemowmde e482005b2e Remove dead code for "colored diff column top borders"
This code was added in 2016 via Iadf7793. The two CSS classes
.mw-revslider-older-diff-column and .mw-revslider-newer-diff-column
became unused only one month later via I317a2fc. Since then all
this is apparently dead code. There are no "top borders" on these
columns any more. Lines still appear in the same position, but as
"border-bottom" on other elements.

It really looks like we just forgot to remove this.

Change-Id: I627628fa44da96ca1f1301d3a879919e4a021e5b
2024-04-18 12:04:10 +02:00
thiemowmde 2c0532033e Mark private methods with @private tags
I might have missed some. These are easy to validate and I wanted to
start somewhere.

Change-Id: I8e4c2de884439f3793738a5270749ff663bbda1f
2023-10-26 14:05:12 +02:00
thiemowmde 9f2f774cc4 Remove obsolete IE9 safe guard
Change-Id: I350cc395cb0ab673699cda03f6da19c9470ee7bb
2023-08-25 16:19:14 +02:00
Adam Wight b900446572 Migrate JS to ES6
Reintroduces IIFE closures in test files because variables were
declared in the global namespace, and "const" now causes hard errors.

Bug: T339323
Change-Id: I69e9d7a29591137f185f3e5ab02dea590ec4dff6
2023-06-23 08:01:31 +02:00
thiemowmde fdc1b1212a Dramatically simplify a forEach loop
I'm not sure why it was done like this. It looks like we can skip
both the extra conditional as well as the extra function scope.

Change-Id: I9aebd17bece0b9a573fc1f9697e79b759741751e
2023-06-15 12:16:59 +02:00
Fomafix 65d1dfefbf Use document.body instead of 'body' as jQuery selector
Change-Id: I2e74d31b61f5f46d1bbb1a0283a7468af9c4e856
2023-04-21 08:52:25 +00:00
WMDE-Fisch 1fa153aeab Fix issues to prepare for lint update
The new mw eslint config comes with node 12 and the change will be
quite big due to the lock file. I wanted to keep the diff of actual
code changes seperate.

- Applied all code style recommendations
- Removed one test that's not giving any value
- Changed regex .match to .test for performance and convinience

Change-Id: I578be8c6460c7a4d1220354c028a9bfd9bb86d13
2022-01-13 13:59:53 +01:00
Ed Sanders dcf19784eb Define documentable types in eslintrc instead of inline
Change-Id: I20e805839a13697ffea8d4a2f92b1c3a4b023175
2021-10-17 15:35:14 +01:00
Ed Sanders 64effa6e42 Move var declarations inline
Change-Id: If1256b01f6ac8237c79b5ba62f20ad65f1dc7691
2021-10-07 14:55:44 +01:00
Adam Wight 8132e43a20 Migrate Slider module to packageFiles
Change-Id: Idf1cc799ab37ec8f49b3a28d161b6cd53090f707
2020-11-19 09:13:45 +00:00
Thiemo Kreuz 4ac1ff57f1 Remove closure wrappers from all JavaScript code
These are not needed any more, because the code runs in a
seperate scope anyway.

Change-Id: I939a06102f194a0c98021accb2f62be73dd0562f
2020-11-18 11:16:04 +01:00
Thiemo Kreuz c57fe0f2b6 Get rid of all var … = function () {} declarations
… 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
2020-11-12 19:23:40 +00:00
Ed Sanders 49d6f1ef8f build: Update eslint-config-wikimedia to 0.17.0
Fix instances of variable shadowing.

Change-Id: I9f8d4dcab8cb400d04600e7bb543ddda2705d1df
2020-09-11 16:28:52 +01:00
Ed Sanders eaa7966710 build: Update eslint-config-wikimedia to 0.16.1
Mostly documentation style fixes

Change-Id: I75262aead377f7f41931de44c5208b7b7d06930d
2020-06-16 15:13:36 +01:00
Thiemo Kreuz 7f38c9c579 Improve discoverability of JS code with @class tags
In my PHPStorm IDE, this makes it possible to follow all methods and
properties in these classes, even these that are later defined.
Otherwise only the empty stub of each class is found.

This might be different in other IDEs.

Basically: PHPStorm does not understand the meaning of the $.extend()
syntax from jQuery without these hints.

Change-Id: I4aa76db183122f6669dc72561441f46f0056d793
2020-01-24 17:21:23 +01:00
Ed Sanders 57f9876e27 build: Update eslint-config-wikimedia to 0.10.1
Change-Id: I8aeddc384d25318e8618bb617884205f1c0c1f00
2019-02-10 16:54:28 +00:00
Ed Sanders e62f46dd80 Remove obsolete aliases from closures
Bug: T208951
Change-Id: Icf10ea6bbc09542e69c0cd583a4ee4f2f76a3f43
2018-11-16 16:33:52 +00:00
Thiemo Kreuz 48396b78c7 Rework and cleanup ext.RevisionSlider.DiffPage code
This is a direct follow up to the change done in I885f8e7. I found the
code very hard to read after the change, and tried to rearrange it a
little bit. This is what I came up with. What the code does is entirely
untouched.

This also rearranges the replaceWith calls so the replacements are done
from top to bottom.

This patch also avoids calling mw.config.set multiple times.

Change-Id: I1cbce8e8aa030d6ba5cd7d19ab26fa363e13474b
2018-09-04 10:52:16 +02:00
Bartek Łukawski a7b966162e Run hook with actual (non-detached) content node
`$.fn.replaceWith` removes content from the DOM. Therefore, the
new content object was not being passed on by the hook.

Change-Id: I885f8e789b806a9ae09de1ed31a19a3f9db8144f
2018-08-30 15:08:51 +00: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 ab874bdd57 Improve doc, naming and pointer updates
Several improvments including documentation, naming and refactoring:
- bundeling of methods setting, redrawing and loading new diffs
- renamed and improved documentation around some methods in that area
- fixed some leftovers from past refactoring not using new methods

Change-Id: Idf1afcd6ce9210951d28655128a47150f6b7a2aa
2017-07-14 10:19:33 +00:00
WMDE-Fisch ada6498b81 Move data pos attr to PointerView
Change-Id: I46c3dceaddae84b279625caec3349aa10d931048
2017-07-14 12:18:51 +02:00
WMDE-Fisch c6f24f2100 Merge container and pointer building and dependencies
Change-Id: I52ac8b42e39b3a37c0bac6b7fff5a676d7c2ecfe
2017-07-04 14:02:58 +02:00
WMDE-Fisch 0525f0bdb2 Do not assume that revIds increase in time
This patch fixes issues with the RevisonSlider assuming that the higher
revision id belongs to the newer revision. Min/Max methods to decide what
the diff and what the oldid is are removed and the usage of methods is
adjusted accordingly.

Also the test for switchover pointers is removed since this will not work
with the patch.

Bug: T164455
Change-Id: If5d9cbb8ebd872aee376d249942e6881c8edb984
2017-06-01 18:29:22 +02:00
Ed Sanders c6465dee07 build: Update eslint to 0.4.0 and make pass
Change-Id: I6e3e2f30615996c57650127cde9738d3a6dd9ae5
2017-05-04 21:06:08 +00:00
WMDE-Fisch 66ca836e1c Fix JS trigger for the thanks links
Bug: T142636
Change-Id: Idd550f83c02ab50f7c9c10e4224d394ddb39cdb3
2017-04-12 11:57:56 +02:00
WMDE-Fisch b0227f24b4 Renamed firstVisibleRevision to oldestVisibleRevison
The meaning of first in this context was totally unclear and not
very usefull. It turns out, that the "first" revision is always
the oldest and the last is always the newest revision.

Change-Id: I009438777908a5f4a8833f8f5cb7d3041057741c
2017-03-27 21:04:31 +02:00
Ed Sanders b00f11ebd2 Update wgRevisionId when changed by slider
Bug: T161257
Change-Id: I1ede31dc9ce67fdc596f117f48ce4bfdde54c2cc
2017-03-23 21:48:11 +00:00
WMDE-Fisch 89345e9e8c Drop IE8 hint
Since IE8 support is dropped, remove hint for incompatibility.
Hint for IE9 is kept to keep track of possible issues.

Bug: T123218
Change-Id: I0fd066dbc22f603da733dcfa339e5af3ffbde41f
2017-02-22 14:00:13 +01:00
addshore ce4bc18569 Attach to Newer / Older edit links
This now attaches the revisionslider to the
older and new links that are by default in the
diff.

This means when clicking them the revision slider
will use an ajax call to reload the diff (while moving
its own pointes) rather than reloading the whole page

Change-Id: I11fa92828140f980ca8edee27403a4e2a5f5a6a7
2017-02-03 15:06:20 +00:00
addshore 4225951117 Remove WikEdDiff logging code
Change-Id: I898234d72f496d0ce7299f18c121faf2fe174645
2017-02-02 16:26:09 +00:00
Ed Sanders e9eabd00ef Don't replace all tabs on update
Tabs are hooked up to JS events which will break
if they are replaced, just switch out the oldid
in the edit link as that is all that changes.

Change-Id: Iea073f8d435a511ba91cdc0c7bdb9e8f1ec1d4ac
2016-11-23 13:25:32 +00:00
WMDE-Fisch f17850d6e6 Clean up logging in code
Change-Id: Iad9f6846f9a80e7c6e82d930f643a92c8f42cab6
2016-11-16 15:42:04 +01:00
James D. Forrester 3269f791f5 build: Bump eslint-config-wikimedia to v0.3.0 and make pass
Change-Id: I774e05c4393eca8b4719f335a124efcb3d2a6dd5
2016-11-15 16:48:38 -08:00
addshore 1e1c2f5943 Don't nest mw-content-text element when reloading diff
Bug: T144391
Change-Id: I5763c6c4288bfcfef03df0cd949715d21430c9af
2016-10-24 09:53:08 +01:00
Tobias Gritschacher 70ea8fafda Always apply data-pos attribute to pointers as well
Adding position data-attribute to the pointer elements and always
apply the same value as for the revision bars they are pointing to.

This will allow us to reduce the complexity of browsertests.

Bug: T146276
Change-Id: I6e6db55204b0c45fe94a5173e297a67a7ed38d00
2016-10-10 14:52:45 +00:00
addshore 5fbe86fc0f Fire wikipage.diff instead of revslider.diffreload
Also add a note to the console about WikEdDiff
& RevisionSlider interaction and the required code
change.

As the code change uses the wikipage.diff hook the code
change will actually have no effect until this patch
is deployed, which includes the removal of the hack
for WikEdDiff.

Bug: T142636
Change-Id: Ie88021abb2325cc6259cf2fb041fbdca4ae9ca89
Depends-On: Ie488021f5d0e314a8ad6c8d1f1f3d936c427d719
2016-09-13 10:37:51 +02:00
jenkins-bot f068f9b684 Merge "Revert "Do not nest mw-content-text element when reloading a diff"" 2016-09-07 07:58:45 +00:00
Addshore b6906e70f1 Revert "Do not nest mw-content-text element when reloading a diff"
This reverts commit a6c5c5a81c.

Change-Id: Iba8e287e200ece043fe6e0ebed960b5d9e522236
2016-09-07 07:15:28 +00:00
jenkins-bot 90455594e6 Merge "Temporarily trigger revslider.diffreload to re-add Thanks JS code" 2016-09-06 16:42:32 +00:00
jenkins-bot 86f62f85c5 Merge "Do not nest mw-content-text element when reloading a diff" 2016-09-06 16:42:31 +00:00
Leszek Manicki a6c5c5a81c Do not nest mw-content-text element when reloading a diff
Bug: T144391
Change-Id: I1ac8c5f31a5e0c34913ba37676f5b3a89aa4db35
2016-09-06 18:01:12 +02:00