Sn1per has uploaded a new change for review.
https://gerrit.wikimedia.org/r/293892
Change subject: [WIP] Unwatch link for pages in Special:Watchlist
......................................................................
[WIP] Unwatch link for pages in Special:Watchlist
Bug: T2424
Change-Id: I450b2901413d7e75c11de2a446829fdbb22d31e1
---
M includes/changes/EnhancedChangesList.php
M includes/specials/SpecialWatchlist.php
M resources/Resources.php
A resources/src/mediawiki.special/mediawiki.special.watchlist.autoReload.js
M resources/src/mediawiki.special/mediawiki.special.watchlist.js
5 files changed, 48 insertions(+), 12 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/92/293892/1
diff --git a/includes/changes/EnhancedChangesList.php
b/includes/changes/EnhancedChangesList.php
index 099a295..ff4e1ee 100644
--- a/includes/changes/EnhancedChangesList.php
+++ b/includes/changes/EnhancedChangesList.php
@@ -585,7 +585,12 @@
* @return string A HTML formatted line (generated using $r)
*/
protected function recentChangesBlockLine( $rcObj ) {
- $data = [];
+ $data = [ Linker::linkKnown(
+ $rcObj->getTitle(),
+ 'x',
+ [ 'class' => 'mw-unwatch-link' ],
+ [ 'action' => 'unwatch' ]
+ ) ];
$query['curid'] = $rcObj->mAttribs['rc_cur_id'];
diff --git a/includes/specials/SpecialWatchlist.php
b/includes/specials/SpecialWatchlist.php
index 58cde7e..4c06186 100644
--- a/includes/specials/SpecialWatchlist.php
+++ b/includes/specials/SpecialWatchlist.php
@@ -421,10 +421,13 @@
$user = $this->getUser();
$out = $this->getOutput();
+ // JavaScript
+ $out->addModules( [ 'mediawiki.special.watchlist' ] );
+
// if the user wishes, that the watchlist is reloaded, whenever
a filter changes,
// add the module for that
if ( $user->getBoolOption( 'watchlistreloadautomatically' ) ) {
- $out->addModules( [ 'mediawiki.special.watchlist' ] );
+ $out->addModules( [
'mediawiki.special.watchlist.autoReload' ] );
}
$out->addSubtitle(
diff --git a/resources/Resources.php b/resources/Resources.php
index b591b28..b5afa19 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1985,6 +1985,10 @@
],
'mediawiki.special.watchlist' => [
'scripts' =>
'resources/src/mediawiki.special/mediawiki.special.watchlist.js',
+ 'dependencies' => 'mediawiki.api.watch',
+ ],
+ 'mediawiki.special.watchlist.autoReload' => [
+ 'scripts' =>
'resources/src/mediawiki.special/mediawiki.special.watchlist.autoReload.js',
],
'mediawiki.special.version' => [
'styles' =>
'resources/src/mediawiki.special/mediawiki.special.version.css',
diff --git
a/resources/src/mediawiki.special/mediawiki.special.watchlist.autoReload.js
b/resources/src/mediawiki.special/mediawiki.special.watchlist.autoReload.js
new file mode 100644
index 0000000..1304922
--- /dev/null
+++ b/resources/src/mediawiki.special/mediawiki.special.watchlist.autoReload.js
@@ -0,0 +1,15 @@
+/*
+ * JavaScript for Special:Watchlist reload on filter option change function
+ *
+ * This script is only loaded, if the user opt-in a setting in
Special:Preferences,
+ * that the watchlist should be automatically reloaded, when a filter option is
+ * changed in the header form.
+ */
+jQuery( function ( $ ) {
+ // add a listener on all form elements in the header form
+ $( '#mw-watchlist-form input, #mw-watchlist-form select' ).on(
'change', function () {
+ // submit the form, when one of the input fields was changed
+ $( '#mw-watchlist-form' ).submit();
+ } );
+
+} );
diff --git a/resources/src/mediawiki.special/mediawiki.special.watchlist.js
b/resources/src/mediawiki.special/mediawiki.special.watchlist.js
index a35f4d1..57cb4ff 100644
--- a/resources/src/mediawiki.special/mediawiki.special.watchlist.js
+++ b/resources/src/mediawiki.special/mediawiki.special.watchlist.js
@@ -1,15 +1,24 @@
-/*!
+/*
* JavaScript for Special:Watchlist
- *
- * This script is only loaded, if the user opt-in a setting in
Special:Preferences,
- * that the watchlist should be automatically reloaded, when a filter option is
- * changed in the header form.
*/
-jQuery( function ( $ ) {
+( function ( mw, $ ) {
// add a listener on all form elements in the header form
- $( '#mw-watchlist-form input, #mw-watchlist-form select' ).on(
'change', function () {
- // submit the form, when one of the input fields was changed
- $( '#mw-watchlist-form' ).submit();
+ $( '.mw-unwatch-link' ).click( function ( event ) {
+ var $unwatchLink = $( event.toElement ),
+ $watchlistLine = $unwatchLink.parent(),
+ $title = $watchlistLine.find( '.mw-title' ),
+ pageTitle = $title.text(),
+ api = new mw.Api();
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ api[ 'unwatch' ]( pageTitle )
+ .done( function () {
+ $watchlistLine.text( 'Removed' );
+ } );
+
+
} );
-} );
+}( mediaWiki, jQuery ) );
--
To view, visit https://gerrit.wikimedia.org/r/293892
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I450b2901413d7e75c11de2a446829fdbb22d31e1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Sn1per <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits