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 <geof...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits